diff -aNrc2 readline-4.3-patched/CHANGELOG readline-5.0/CHANGELOG *** readline-4.3-patched/CHANGELOG Mon May 20 12:55:41 2002 --- readline-5.0/CHANGELOG Thu Apr 22 16:54:10 2004 *************** *** 698,699 **** --- 698,810 ---- the build directory differs from the source directory - distclean target now depends on maybe-clean + + 7/17 + ---- + [readline-4.3 released] + + 7/18 + ---- + shlib/Makefile.in + - fix bad dependency: text.so: terminal.c, make it depend on text.c + + 8/7 + --- + support/shlib-install + - break `linux' out into its own stanza: it seems that linux + distributions are all moving to the following scheme: + + libreadline.so.4.3 installed version + libreadline.so.4 -> libreadline.so.4.3 symlink + libreadline.so -> libreadline.so.4 symlink + + 10/29 + ----- + support/shlib-install + - change INSTALL_LINK[12] to use `&&' instead of `;' so it only + tries the link if the cd succeeds; put ${echo} in there, too + - use $LN instead of `ln -s' so it works on machines without symlinks + - change special linux stanza to use cd before ln also + - change to use $INSTALL_LINK1 and $INSTALL_LINK2 appropriately + instead of explicit commands in various stanzas + + 2/1 + --- + config.h.in + - add HAVE_MBRTOWC and HAVE_MBRLEN + - add NO_MULTIBYTE_SUPPORT for new configure argument + - add STDC_HEADERS + + configure.in + - new argument --enable-multibyte (enabled by default), allows + multibyte support to be turned off even on systems that support it + - add check for ansi stdc headers with call to AC_HEADER_STDC + + 2/3 + --- + configure.in + - add call to BASH_FUNC_CTYPE_NONASCII + + config.h.in + - add CTYPE_NON_ASCII + + 2/20 + ---- + + doc/manvers.texinfo + - renamed to version.texi to match other GNU software + - UPDATE-MONTH variable is now `UPDATED-MONTH' + + doc/{hist,rlman,rluserman}.texinfo + - include version.texi + + doc/{rltech,rluser,hstech,hsuser}.texi + - changed the suffix from `texinfo' to `texi' + + doc/Makefile.in + - made appropriate changes for {{rl,hs}tech,{rl,hs}user}.texi + + doc/{rlman,rluserman}.texinfo + - changed the suffix from `texinfo' to `texi' + + doc/hist.texinfo + - renamed to history.texi to be more consistent + + 6/11 + ---- + shlib/Makefile.in + - have configure substitute value of `@LDFLAGS@' into the assignment + to SHLIB_XLDFLAGS + + 6/16 + ---- + configure.in + - readline and history libraries are now at version 5.0 + + 8/18 + ---- + support/shlib-install + - support for FreeBSD-gnu (from Robert Millan) + + 12/4 + ---- + Makefile.in + - add variables for localedir and the PACKAGE_* variables, auto-set + by configure + + 12/9 + ---- + Makefile.in + - use mkinstalldirs instead of mkdirs + + 4/22 + ---- + Makefile.in + - separate doc install/uninstall out into two new targets: + install-doc and uninstall-doc + - make install-doc and uninstall-doc prerequisites of appropriate + install and uninstall targets + + examples/rl-fgets.c + - new example from Harold Levy that wraps fgets replacement functions + that call readline in a shared library that can be interposed with + LD_PRELOAD diff -aNrc2 readline-4.3-patched/CHANGES readline-5.0/CHANGES *** readline-4.3-patched/CHANGES Tue Jul 9 15:53:40 2002 --- readline-5.0/CHANGES Mon Jul 19 16:02:48 2004 *************** *** 1,2 **** --- 1,182 ---- + This document details the changes between this version, readline-5.0, + and the previous version, readline-4.3. + + 1. Changes to Readline + + a. Fixes to avoid core dumps because of null pointer references in the + multibyte character code. + + b. Fix to avoid infinite recursion caused by certain key combinations. + + c. Fixed a bug that caused the vi-mode `last command' to be set incorrectly. + + d. Readline no longer tries to read ahead more than one line of input, even + when more is available. + + e. Fixed the code that adjusts the point to not mishandle null wide + characters. + + f. Fixed a bug in the history expansion `g' modifier that caused it to skip + every other match. + + g. Fixed a bug that caused the prompt to overwrite previous output when the + output doesn't contain a newline and the locale supports multibyte + characters. This same change fixes the problem of readline redisplay + slowing down dramatically as the line gets longer in multibyte locales. + + h. History traversal with arrow keys in vi insertion mode causes the cursor + to be placed at the end of the new line, like in emacs mode. + + i. The locale initialization code does a better job of using the right + precedence and defaulting when checking the appropriate environment + variables. + + j. Fixed the history word tokenizer to handle <( and >( better when used as + part of bash. + + k. The overwrite mode code received several bug fixes to improve undo. + + l. Many speedups to the multibyte character redisplay code. + + m. The callback character reading interface should not hang waiting to read + keyboard input. + + n. Fixed a bug with redoing vi-mode `s' command. + + o. The code that initializes the terminal tracks changes made to the terminal + special characters with stty(1) (or equivalent), so that these changes + are reflected in the readline bindings. New application-callable function + to make it work: rl_tty_unset_default_bindings(). + + p. Fixed a bug that could cause garbage to be inserted in the buffer when + changing character case in vi mode when using a multibyte locale. + + q. Fixed a bug in the redisplay code that caused problems on systems + supporting multibyte characters when moving between history lines when the + new line has more glyphs but fewer bytes. + + r. Undo and redo now work better after exiting vi insertion mode. + + s. Make sure system calls are restarted after a SIGWINCH is received using + SA_RESTART. + + t. Improvements to the code that displays possible completions when using + multibyte characters. + + u. Fixed a problem when parsing nested if statements in inputrc files. + + v. The completer now takes multibyte characters into account when looking for + quoted substrings on which to perform completion. + + w. The history search functions now perform better bounds checking on the + history list. + + x. Change to history expansion functions to treat `^' as equivalent to word + one, as the documention states. + + y. Some changes to the display code to improve display and redisplay of + multibyte characters. + + z. Changes to speed up the multibyte character redisplay code. + + aa. Fixed a bug in the vi-mode `E' command that caused it to skip over the + last character of a word if invoked while point was on the word's + next-to-last character. + + bb. Fixed a bug that could cause incorrect filename quoting when + case-insensitive completion was enabled and the word being completed + contained backslashes quoting word break characters. + + cc. Fixed a bug in redisplay triggered when the prompt string contains + invisible characters. + + dd. Fixed some display (and other) bugs encountered in multibyte locales + when a non-ascii character was the last character on a line. + + ee. Fixed some display bugs caused by multibyte characters in prompt strings. + + ff. Fixed a problem with history expansion caused by non-whitespace characters + used as history word delimiters. + + gg. Fixed a problem that could cause readline to refer to freed memory when + moving between history lines while doing searches. + + hh. Improvements to the code that expands and displays prompt strings + containing multibyte characters. + + ii. Fixed a problem with vi-mode not correctly remembering the numeric argument + to the last `c'hange command for later use with `.'. + + jj. Fixed a bug in vi-mode that caused multi-digit count arguments to work + incorrectly. + + kk. Fixed a problem in vi-mode that caused the last text modification command + to not be remembered across different command lines. + + ll. Fixed problems with changing characters and changing case at the end of + the line. + + mm. Fixed a problem with readline saving the contents of the current line + before beginning a non-interactive search. + + nn. Fixed a problem with EOF detection when using rl_event_hook. + + oo. Fixed a problem with the vi mode `p' and `P' commands ignoring numeric + arguments. + + 2. New Features in Readline + + a. History expansion has a new `a' modifier equivalent to the `g' modifier + for compatibility with the BSD csh. + + b. History expansion has a new `G' modifier equivalent to the BSD csh `g' + modifier, which performs a substitution once per word. + + c. All non-incremental search operations may now undo the operation of + replacing the current line with the history line. + + d. The text inserted by an `a' command in vi mode can be reinserted with + `.'. + + e. New bindable variable, `show-all-if-unmodified'. If set, the readline + completer will list possible completions immediately if there is more + than one completion and partial completion cannot be performed. + + f. There is a new application-callable `free_history_entry()' function. + + g. History list entries now contain timestamp information; the history file + functions know how to read and write timestamp information associated + with each entry. + + h. Four new key binding functions have been added: + + rl_bind_key_if_unbound() + rl_bind_key_if_unbound_in_map() + rl_bind_keyseq_if_unbound() + rl_bind_keyseq_if_unbound_in_map() + + i. New application variable, rl_completion_quote_character, set to any + quote character readline finds before it calls the application completion + function. + + j. New application variable, rl_completion_suppress_quote, settable by an + application completion function. If set to non-zero, readline does not + attempt to append a closing quote to a completed word. + + k. New application variable, rl_completion_found_quote, set to a non-zero + value if readline determines that the word to be completed is quoted. + Set before readline calls any application completion function. + + l. New function hook, rl_completion_word_break_hook, called when readline + needs to break a line into words when completion is attempted. Allows + the word break characters to vary based on position in the line. + + m. New bindable command: unix-filename-rubout. Does the same thing as + unix-word-rubout, but adds `/' to the set of word delimiters. + + n. When listing completions, directories have a `/' appended if the + `mark-directories' option has been enabled. + + ------------------------------------------------------------------------------- This document details the changes between this version, readline-4.3, and the previous version, readline-4.2a. diff -aNrc2 readline-4.3-patched/INSTALL readline-5.0/INSTALL *** readline-4.3-patched/INSTALL Wed Jul 3 17:29:50 2002 --- readline-5.0/INSTALL Fri Sep 26 16:27:57 2003 *************** *** 2,6 **** ================== ! These are installation instructions for Readline-4.3. The simplest way to compile readline is: --- 2,6 ---- ================== ! These are installation instructions for Readline-5.0. The simplest way to compile readline is: diff -aNrc2 readline-4.3-patched/MANIFEST readline-5.0/MANIFEST *** readline-4.3-patched/MANIFEST Thu Jan 24 09:40:24 2002 --- readline-5.0/MANIFEST Wed Jul 21 08:56:08 2004 *************** *** 12,15 **** --- 12,16 ---- CHANGELOG f CHANGES f + NEWS f USAGE f aclocal.m4 f *************** *** 75,82 **** --- 76,85 ---- shlib/Makefile.in f support/config.guess f + support/config.rpath f support/config.sub f support/install.sh f support/mkdirs f support/mkdist f + support/mkinstalldirs f support/shobj-conf f support/shlib-install f *************** *** 84,95 **** doc/Makefile.in f doc/texinfo.tex f ! doc/manvers.texinfo f ! doc/rlman.texinfo f ! doc/rltech.texinfo f ! doc/rluser.texinfo f ! doc/rluserman.texinfo f ! doc/hist.texinfo f ! doc/hstech.texinfo f ! doc/hsuser.texinfo f doc/readline.3 f doc/history.3 f --- 87,99 ---- doc/Makefile.in f doc/texinfo.tex f ! doc/version.texi f ! doc/fdl.texi f ! doc/rlman.texi f ! doc/rltech.texi f ! doc/rluser.texi f ! doc/rluserman.texi f ! doc/history.texi f ! doc/hstech.texi f ! doc/hsuser.texi f doc/readline.3 f doc/history.3 f *************** *** 101,104 **** --- 105,109 ---- examples/manexamp.c f examples/readlinebuf.h f + examples/rl-fgets.c f examples/rlcat.c f examples/rlfe.c f *************** *** 125,126 **** --- 130,134 ---- doc/readline_3.ps f doc/history_3.ps f + doc/history.pdf f + doc/readline.pdf f + doc/rluserman.pdf f diff -aNrc2 readline-4.3-patched/Makefile.in readline-5.0/Makefile.in *** readline-4.3-patched/Makefile.in Thu Jan 24 10:15:24 2002 --- readline-5.0/Makefile.in Thu Apr 22 16:44:37 2004 *************** *** 1,5 **** ## -*- text -*- ## # Master Makefile for the GNU readline library. ! # Copyright (C) 1994 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify --- 1,5 ---- ## -*- text -*- ## # Master Makefile for the GNU readline library. ! # Copyright (C) 1994-2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify *************** *** 19,22 **** --- 19,30 ---- RL_LIBRARY_NAME = readline + PACKAGE = @PACKAGE_NAME@ + VERSION = @PACKAGE_VERSION@ + + PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + PACKAGE_NAME = @PACKAGE_NAME@ + PACKAGE_STRING = @PACKAGE_STRING@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + srcdir = @srcdir@ VPATH = .:@srcdir@ *************** *** 46,49 **** --- 54,59 ---- mandir = @mandir@ includedir = @includedir@ + datadir = @datadir@ + localedir = $(datadir)/locale infodir = @infodir@ *************** *** 208,212 **** install: $(INSTALL_TARGETS) ! install-static: installdirs $(STATIC_LIBS) install-headers -$(MV) $(DESTDIR)$(libdir)/libreadline.a $(DESTDIR)$(libdir)/libreadline.old $(INSTALL_DATA) libreadline.a $(DESTDIR)$(libdir)/libreadline.a --- 218,222 ---- install: $(INSTALL_TARGETS) ! install-static: installdirs $(STATIC_LIBS) install-headers install-doc -$(MV) $(DESTDIR)$(libdir)/libreadline.a $(DESTDIR)$(libdir)/libreadline.old $(INSTALL_DATA) libreadline.a $(DESTDIR)$(libdir)/libreadline.a *************** *** 215,242 **** $(INSTALL_DATA) libhistory.a $(DESTDIR)$(libdir)/libhistory.a -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libhistory.a - -( if test -d doc ; then \ - cd doc && \ - ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} install; \ - fi ) ! installdirs: $(srcdir)/support/mkdirs ! -$(SHELL) $(srcdir)/support/mkdirs $(DESTDIR)$(includedir) \ $(DESTDIR)$(includedir)/readline $(DESTDIR)$(libdir) \ $(DESTDIR)$(infodir) $(DESTDIR)$(man3dir) ! uninstall: uninstall-headers -test -n "$(DESTDIR)$(libdir)" && cd $(DESTDIR)$(libdir) && \ ${RM} libreadline.a libreadline.old libhistory.a libhistory.old $(SHARED_LIBS) - -( if test -d doc ; then \ - cd doc && \ - ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} $@; \ - fi ) -( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall ) ! install-shared: installdirs install-headers shared -( cd shlib ; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} install ) ! uninstall-shared: maybe-uninstall-headers -( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall ) TAGS: force --- 225,256 ---- $(INSTALL_DATA) libhistory.a $(DESTDIR)$(libdir)/libhistory.a -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libhistory.a ! installdirs: $(srcdir)/support/mkinstalldirs ! -$(SHELL) $(srcdir)/support/mkinstalldirs $(DESTDIR)$(includedir) \ $(DESTDIR)$(includedir)/readline $(DESTDIR)$(libdir) \ $(DESTDIR)$(infodir) $(DESTDIR)$(man3dir) ! uninstall: uninstall-headers uninstall-doc -test -n "$(DESTDIR)$(libdir)" && cd $(DESTDIR)$(libdir) && \ ${RM} libreadline.a libreadline.old libhistory.a libhistory.old $(SHARED_LIBS) -( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall ) ! install-shared: installdirs install-headers shared install-doc -( cd shlib ; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} install ) ! uninstall-shared: maybe-uninstall-headers -( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall ) + + install-doc: installdirs + -( if test -d doc ; then \ + cd doc && \ + ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} install; \ + fi ) + + uninstall-doc: + -( if test -d doc ; then \ + cd doc && \ + ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} uninstall; \ + fi ) TAGS: force diff -aNrc2 readline-4.3-patched/NEWS readline-5.0/NEWS *** readline-4.3-patched/NEWS Wed Dec 31 19:00:00 1969 --- readline-5.0/NEWS Tue Jun 29 10:57:06 2004 *************** *** 0 **** --- 1,55 ---- + This is a terse description of the new features added to readline-5.0 since + the release of readline-4.3. + + 1. New Features in Readline + + a. History expansion has a new `a' modifier equivalent to the `g' modifier + for compatibility with the BSD csh. + + b. History expansion has a new `G' modifier equivalent to the BSD csh `g' + modifier, which performs a substitution once per word. + + c. All non-incremental search operations may now undo the operation of + replacing the current line with the history line. + + d. The text inserted by an `a' command in vi mode can be reinserted with + `.'. + + e. New bindable variable, `show-all-if-unmodified'. If set, the readline + completer will list possible completions immediately if there is more + than one completion and partial completion cannot be performed. + + f. There is a new application-callable `free_history_entry()' function. + + g. History list entries now contain timestamp information; the history file + functions know how to read and write timestamp information associated + with each entry. + + h. Four new key binding functions have been added: + + rl_bind_key_if_unbound() + rl_bind_key_if_unbound_in_map() + rl_bind_keyseq_if_unbound() + rl_bind_keyseq_if_unbound_in_map() + + i. New application variable, rl_completion_quote_character, set to any + quote character readline finds before it calls the application completion + function. + + j. New application variable, rl_completion_suppress_quote, settable by an + application completion function. If set to non-zero, readline does not + attempt to append a closing quote to a completed word. + + k. New application variable, rl_completion_found_quote, set to a non-zero + value if readline determines that the word to be completed is quoted. + Set before readline calls any application completion function. + + l. New function hook, rl_completion_word_break_hook, called when readline + needs to break a line into words when completion is attempted. Allows + the word break characters to vary based on position in the line. + + m. New bindable command: unix-filename-rubout. Does the same thing as + unix-word-rubout, but adds `/' to the set of word delimiters. + + n. When listing completions, directories have a `/' appended if the + `mark-directories' option has been enabled. diff -aNrc2 readline-4.3-patched/README readline-5.0/README *** readline-4.3-patched/README Tue Apr 2 09:41:22 2002 --- readline-5.0/README Mon Sep 22 09:10:55 2003 *************** *** 2,6 **** ============ ! This is the Gnu Readline library, version 4.3. The Readline library provides a set of functions for use by applications --- 2,6 ---- ============ ! This is the Gnu Readline library, version 5.0. The Readline library provides a set of functions for use by applications diff -aNrc2 readline-4.3-patched/aclocal.m4 readline-5.0/aclocal.m4 *** readline-4.3-patched/aclocal.m4 Tue Jun 25 09:45:43 2002 --- readline-5.0/aclocal.m4 Thu May 13 13:37:25 2004 *************** *** 686,691 **** AC_DEFUN(BASH_FUNC_GETCWD, ! [AC_MSG_CHECKING([if getcwd() calls popen()]) ! AC_CACHE_VAL(bash_cv_getcwd_calls_popen, [AC_TRY_RUN([ #include --- 686,691 ---- AC_DEFUN(BASH_FUNC_GETCWD, ! [AC_MSG_CHECKING([if getcwd() will dynamically allocate memory]) ! AC_CACHE_VAL(bash_cv_getcwd_malloc, [AC_TRY_RUN([ #include *************** *** 694,748 **** #endif - #ifndef __STDC__ - #ifndef const - #define const - #endif - #endif - - int popen_called; - - FILE * - popen(command, type) - const char *command; - const char *type; - { - popen_called = 1; - return (FILE *)NULL; - } - - FILE *_popen(command, type) - const char *command; - const char *type; - { - return (popen (command, type)); - } - - int - pclose(stream) - FILE *stream; - { - return 0; - } - - int - _pclose(stream) - FILE *stream; - { - return 0; - } - main() { ! char lbuf[32]; ! popen_called = 0; ! getcwd(lbuf, 32); ! exit (popen_called); } ! ], bash_cv_getcwd_calls_popen=no, bash_cv_getcwd_calls_popen=yes, ! [AC_MSG_WARN(cannot check whether getcwd calls popen if cross compiling -- defaulting to no) ! bash_cv_getcwd_calls_popen=no] )]) ! AC_MSG_RESULT($bash_cv_getcwd_calls_popen) ! if test $bash_cv_getcwd_calls_popen = yes; then AC_DEFINE(GETCWD_BROKEN) AC_LIBOBJ(getcwd) --- 694,709 ---- #endif main() { ! char *xpwd; ! xpwd = getcwd(0, 0); ! exit (xpwd == 0); } ! ], bash_cv_getcwd_malloc=yes, bash_cv_getcwd_malloc=no, ! [AC_MSG_WARN(cannot check whether getcwd allocates memory when cross-compiling -- defaulting to no) ! bash_cv_getcwd_malloc=no] )]) ! AC_MSG_RESULT($bash_cv_getcwd_malloc) ! if test $bash_cv_getcwd_malloc = no; then AC_DEFINE(GETCWD_BROKEN) AC_LIBOBJ(getcwd) *************** *** 982,990 **** fi AC_CACHE_VAL(bash_cv_termcap_lib, ! [AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap, [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo, [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses, [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses, ! bash_cv_termcap_lib=gnutermcap)])])])]) if test "X$_bash_needmsg" = "Xyes"; then AC_MSG_CHECKING(which library has the termcap functions) --- 943,952 ---- fi AC_CACHE_VAL(bash_cv_termcap_lib, ! [AC_CHECK_FUNC(tgetent, bash_cv_termcap_lib=libc, ! [AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap, [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo, [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses, [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses, ! bash_cv_termcap_lib=gnutermcap)])])])])]) if test "X$_bash_needmsg" = "Xyes"; then AC_MSG_CHECKING(which library has the termcap functions) *************** *** 1004,1007 **** --- 966,972 ---- TERMCAP_LIB=-lncurses TERMCAP_DEP= + elif test $bash_cv_termcap_lib = libc; then + TERMCAP_LIB= + TERMCAP_DEP= else TERMCAP_LIB=-lcurses *************** *** 1062,1066 **** AC_DEFUN(BASH_STRUCT_DIRENT_D_INO, [AC_REQUIRE([AC_HEADER_DIRENT]) ! AC_MSG_CHECKING(if struct dirent has a d_ino member) AC_CACHE_VAL(bash_cv_dirent_has_dino, [AC_TRY_COMPILE([ --- 1027,1031 ---- AC_DEFUN(BASH_STRUCT_DIRENT_D_INO, [AC_REQUIRE([AC_HEADER_DIRENT]) ! AC_MSG_CHECKING(for struct dirent.d_ino) AC_CACHE_VAL(bash_cv_dirent_has_dino, [AC_TRY_COMPILE([ *************** *** 1089,1093 **** AC_MSG_RESULT($bash_cv_dirent_has_dino) if test $bash_cv_dirent_has_dino = yes; then ! AC_DEFINE(STRUCT_DIRENT_HAS_D_INO) fi ]) --- 1054,1058 ---- AC_MSG_RESULT($bash_cv_dirent_has_dino) if test $bash_cv_dirent_has_dino = yes; then ! AC_DEFINE(HAVE_STRUCT_DIRENT_D_INO) fi ]) *************** *** 1095,1099 **** AC_DEFUN(BASH_STRUCT_DIRENT_D_FILENO, [AC_REQUIRE([AC_HEADER_DIRENT]) ! AC_MSG_CHECKING(if struct dirent has a d_fileno member) AC_CACHE_VAL(bash_cv_dirent_has_d_fileno, [AC_TRY_COMPILE([ --- 1060,1064 ---- AC_DEFUN(BASH_STRUCT_DIRENT_D_FILENO, [AC_REQUIRE([AC_HEADER_DIRENT]) ! AC_MSG_CHECKING(for struct dirent.d_fileno) AC_CACHE_VAL(bash_cv_dirent_has_d_fileno, [AC_TRY_COMPILE([ *************** *** 1122,1126 **** AC_MSG_RESULT($bash_cv_dirent_has_d_fileno) if test $bash_cv_dirent_has_d_fileno = yes; then ! AC_DEFINE(STRUCT_DIRENT_HAS_D_FILENO) fi ]) --- 1087,1124 ---- AC_MSG_RESULT($bash_cv_dirent_has_d_fileno) if test $bash_cv_dirent_has_d_fileno = yes; then ! AC_DEFINE(HAVE_STRUCT_DIRENT_D_FILENO) ! fi ! ]) ! ! AC_DEFUN(BASH_STRUCT_DIRENT_D_NAMLEN, ! [AC_REQUIRE([AC_HEADER_DIRENT]) ! AC_MSG_CHECKING(for struct dirent.d_namlen) ! AC_CACHE_VAL(bash_cv_dirent_has_d_namlen, ! [AC_TRY_COMPILE([ ! #include ! #include ! #ifdef HAVE_UNISTD_H ! # include ! #endif /* HAVE_UNISTD_H */ ! #if defined(HAVE_DIRENT_H) ! # include ! #else ! # define dirent direct ! # ifdef HAVE_SYS_NDIR_H ! # include ! # endif /* SYSNDIR */ ! # ifdef HAVE_SYS_DIR_H ! # include ! # endif /* SYSDIR */ ! # ifdef HAVE_NDIR_H ! # include ! # endif ! #endif /* HAVE_DIRENT_H */ ! ],[ ! struct dirent d; int z; z = d.d_namlen; ! ], bash_cv_dirent_has_d_namlen=yes, bash_cv_dirent_has_d_namlen=no)]) ! AC_MSG_RESULT($bash_cv_dirent_has_d_namlen) ! if test $bash_cv_dirent_has_d_namlen = yes; then ! AC_DEFINE(HAVE_STRUCT_DIRENT_D_NAMLEN) fi ]) *************** *** 1142,1145 **** --- 1140,1159 ---- ]) + AC_DEFUN(BASH_STRUCT_TIMEZONE, + [AC_MSG_CHECKING(for struct timezone in sys/time.h and time.h) + AC_CACHE_VAL(bash_cv_struct_timezone, + [ + AC_EGREP_HEADER(struct timezone, sys/time.h, + bash_cv_struct_timezone=yes, + AC_EGREP_HEADER(struct timezone, time.h, + bash_cv_struct_timezone=yes, + bash_cv_struct_timezone=no)) + ]) + AC_MSG_RESULT($bash_cv_struct_timezone) + if test $bash_cv_struct_timezone = yes; then + AC_DEFINE(HAVE_STRUCT_TIMEZONE) + fi + ]) + AC_DEFUN(BASH_STRUCT_WINSIZE, [AC_MSG_CHECKING(for struct winsize in sys/ioctl.h and termios.h) *************** *** 1527,1533 **** [AC_MSG_CHECKING(whether /dev/fd is available) AC_CACHE_VAL(bash_cv_dev_fd, ! [if test -d /dev/fd && test -r /dev/fd/0; then bash_cv_dev_fd=standard ! elif test -d /proc/self/fd && test -r /proc/self/fd/0; then bash_cv_dev_fd=whacky else --- 1541,1547 ---- [AC_MSG_CHECKING(whether /dev/fd is available) AC_CACHE_VAL(bash_cv_dev_fd, ! [if test -d /dev/fd && test -r /dev/fd/0 < /dev/null; then bash_cv_dev_fd=standard ! elif test -d /proc/self/fd && test -r /proc/self/fd/0 < /dev/null; then bash_cv_dev_fd=whacky else *************** *** 1548,1554 **** [AC_MSG_CHECKING(whether /dev/stdin stdout stderr are available) AC_CACHE_VAL(bash_cv_dev_stdin, ! [if test -d /dev/fd && test -r /dev/stdin; then bash_cv_dev_stdin=present ! elif test -d /proc/self/fd && test -r /dev/stdin; then bash_cv_dev_stdin=present else --- 1562,1568 ---- [AC_MSG_CHECKING(whether /dev/stdin stdout stderr are available) AC_CACHE_VAL(bash_cv_dev_stdin, ! [if test -d /dev/fd && test -r /dev/stdin < /dev/null; then bash_cv_dev_stdin=present ! elif test -d /proc/self/fd && test -r /dev/stdin < /dev/null; then bash_cv_dev_stdin=present else *************** *** 1654,1668 **** AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS)) AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH)) AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t, ! [AC_TRY_RUN([ ! #include ! int ! main () ! { mbstate_t ps; ! return 0; ! }], bash_cv_have_mbstate_t=yes, bash_cv_have_mbstate_t=no)]) if test $bash_cv_have_mbstate_t = yes; then AC_DEFINE(HAVE_MBSTATE_T) --- 1668,1684 ---- AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS)) + AC_CHECK_FUNC(mbrtowc, AC_DEFINE(HAVE_MBRTOWC)) + AC_CHECK_FUNC(mbrlen, AC_DEFINE(HAVE_MBRLEN)) + AC_CHECK_FUNC(wctomb, AC_DEFINE(HAVE_WCTOMB)) AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH)) + AC_CHECK_FUNC(wcsdup, AC_DEFINE(HAVE_WCSDUP)) AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t, ! [AC_TRY_COMPILE([ ! #include ], [ mbstate_t ps; ! mbstate_t *psp; ! psp = (mbstate_t *)0; ! ], bash_cv_have_mbstate_t=yes, bash_cv_have_mbstate_t=no)]) if test $bash_cv_have_mbstate_t = yes; then AC_DEFINE(HAVE_MBSTATE_T) *************** *** 1713,1717 **** LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}" ! AC_TRY_RUN([ #include #include --- 1729,1734 ---- LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}" ! AC_CACHE_VAL(ac_cv_rl_version, ! [AC_TRY_RUN([ #include #include *************** *** 1729,1733 **** ac_cv_rl_version=`cat conftest.rlv`, ac_cv_rl_version='0.0', ! ac_cv_rl_version='4.2') CFLAGS="$_save_CFLAGS" --- 1746,1750 ---- ac_cv_rl_version=`cat conftest.rlv`, ac_cv_rl_version='0.0', ! ac_cv_rl_version='4.2')]) CFLAGS="$_save_CFLAGS" *************** *** 1790,1792 **** --- 1807,3913 ---- fi + ]) + + AC_DEFUN(BASH_FUNC_CTYPE_NONASCII, + [ + AC_MSG_CHECKING(whether the ctype macros accept non-ascii characters) + AC_CACHE_VAL(bash_cv_func_ctype_nonascii, + [AC_TRY_RUN([ + #ifdef HAVE_LOCALE_H + #include + #endif + #include + #include + + main(c, v) + int c; + char *v[]; + { + char *deflocale; + unsigned char x; + int r1, r2; + + #ifdef HAVE_SETLOCALE + /* We take a shot here. If that locale is not known, try the + system default. We try this one because '\342' (226) is + known to be a printable character in that locale. */ + deflocale = setlocale(LC_ALL, "en_US.ISO8859-1"); + if (deflocale == 0) + deflocale = setlocale(LC_ALL, ""); + #endif + + x = '\342'; + r1 = isprint(x); + x -= 128; + r2 = isprint(x); + exit (r1 == 0 || r2 == 0); + } + ], bash_cv_func_ctype_nonascii=yes, bash_cv_func_ctype_nonascii=no, + [AC_MSG_WARN(cannot check ctype macros if cross compiling -- defaulting to no) + bash_cv_func_ctype_nonascii=no] + )]) + AC_MSG_RESULT($bash_cv_func_ctype_nonascii) + if test $bash_cv_func_ctype_nonascii = yes; then + AC_DEFINE(CTYPE_NON_ASCII) + fi + ]) + + dnl + dnl tests added for bashdb + dnl + + + AC_DEFUN([AM_PATH_LISPDIR], + [AC_ARG_WITH(lispdir, AC_HELP_STRING([--with-lispdir], [override the default lisp directory]), + [ lispdir="$withval" + AC_MSG_CHECKING([where .elc files should go]) + AC_MSG_RESULT([$lispdir])], + [ + # If set to t, that means we are running in a shell under Emacs. + # If you have an Emacs named "t", then use the full path. + test x"$EMACS" = xt && EMACS= + AC_CHECK_PROGS(EMACS, emacs xemacs, no) + if test $EMACS != "no"; then + if test x${lispdir+set} != xset; then + AC_CACHE_CHECK([where .elc files should go], [am_cv_lispdir], [dnl + am_cv_lispdir=`$EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' | sed -n -e 's,/$,,' -e '/.*\/lib\/\(x\?emacs\/site-lisp\)$/{s,,${libdir}/\1,;p;q;}' -e '/.*\/share\/\(x\?emacs\/site-lisp\)$/{s,,${datadir}/\1,;p;q;}'` + if test -z "$am_cv_lispdir"; then + am_cv_lispdir='${datadir}/emacs/site-lisp' + fi + ]) + lispdir="$am_cv_lispdir" + fi + fi + ]) + AC_SUBST(lispdir) + ]) + + dnl + dnl tests added for gettext + dnl + # codeset.m4 serial AM1 (gettext-0.10.40) + dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + dnl From Bruno Haible. + + AC_DEFUN([AM_LANGINFO_CODESET], + [ + AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, + [AC_TRY_LINK([#include ], + [char* cs = nl_langinfo(CODESET);], + am_cv_langinfo_codeset=yes, + am_cv_langinfo_codeset=no) + ]) + if test $am_cv_langinfo_codeset = yes; then + AC_DEFINE(HAVE_LANGINFO_CODESET, 1, + [Define if you have and nl_langinfo(CODESET).]) + fi + ]) + # gettext.m4 serial 20 (gettext-0.12) + dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + dnl + dnl This file can can be used in projects which are not available under + dnl the GNU General Public License or the GNU Library General Public + dnl License but which still want to provide support for the GNU gettext + dnl functionality. + dnl Please note that the actual code of the GNU gettext library is covered + dnl by the GNU Library General Public License, and the rest of the GNU + dnl gettext package package is covered by the GNU General Public License. + dnl They are *not* in the public domain. + + dnl Authors: + dnl Ulrich Drepper , 1995-2000. + dnl Bruno Haible , 2000-2003. + + dnl Macro to add for using GNU gettext. + + dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). + dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The + dnl default (if it is not specified or empty) is 'no-libtool'. + dnl INTLSYMBOL should be 'external' for packages with no intl directory, + dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. + dnl If INTLSYMBOL is 'use-libtool', then a libtool library + dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, + dnl depending on --{enable,disable}-{shared,static} and on the presence of + dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library + dnl $(top_builddir)/intl/libintl.a will be created. + dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext + dnl implementations (in libc or libintl) without the ngettext() function + dnl will be ignored. If NEEDSYMBOL is specified and is + dnl 'need-formatstring-macros', then GNU gettext implementations that don't + dnl support the ISO C 99 formatstring macros will be ignored. + dnl INTLDIR is used to find the intl libraries. If empty, + dnl the value `$(top_builddir)/intl/' is used. + dnl + dnl The result of the configuration is one of three cases: + dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled + dnl and used. + dnl Catalog format: GNU --> install in $(datadir) + dnl Catalog extension: .mo after installation, .gmo in source tree + dnl 2) GNU gettext has been found in the system's C library. + dnl Catalog format: GNU --> install in $(datadir) + dnl Catalog extension: .mo after installation, .gmo in source tree + dnl 3) No internationalization, always use English msgid. + dnl Catalog format: none + dnl Catalog extension: none + dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. + dnl The use of .gmo is historical (it was needed to avoid overwriting the + dnl GNU format catalogs when building on a platform with an X/Open gettext), + dnl but we keep it in order not to force irrelevant filename changes on the + dnl maintainers. + dnl + AC_DEFUN([AM_GNU_GETTEXT], + [ + dnl Argument checking. + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT + ])])])])]) + ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT + ])])])]) + define(gt_included_intl, ifelse([$1], [external], [no], [yes])) + define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], [])) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + ifelse(gt_included_intl, yes, [ + AC_REQUIRE([AM_INTL_SUBDIR])dnl + ]) + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then + dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not + dnl documented, we avoid it. + ifelse(gt_included_intl, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Set USE_NLS. + AM_NLS + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + ifelse(gt_included_intl, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH(included-gettext, + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + dnl Add a version number to the cache macros. + define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1))) + define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) + define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) + + AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, + [AC_TRY_LINK([#include + ]ifelse([$2], [need-formatstring-macros], + [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION + #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) + #endif + changequote(,)dnl + typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; + changequote([,])dnl + ], [])[extern int _nl_msg_cat_cntr; + extern int *_nl_domain_bindings;], + [bindtextdomain ("", ""); + return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], + gt_cv_func_gnugettext_libc=yes, + gt_cv_func_gnugettext_libc=no)]) + + if test "$gt_cv_func_gnugettext_libc" != "yes"; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + ifelse(gt_included_intl, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + gt_cv_func_gnugettext_libintl, + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_TRY_LINK([#include + ]ifelse([$2], [need-formatstring-macros], + [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION + #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) + #endif + changequote(,)dnl + typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; + changequote([,])dnl + ], [])[extern int _nl_msg_cat_cntr; + extern + #ifdef __cplusplus + "C" + #endif + const char *_nl_expand_alias ();], + [bindtextdomain ("", ""); + return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], + gt_cv_func_gnugettext_libintl=yes, + gt_cv_func_gnugettext_libintl=no) + dnl Now see whether libintl exists and depends on libiconv. + if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include + ]ifelse([$2], [need-formatstring-macros], + [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION + #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) + #endif + changequote(,)dnl + typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; + changequote([,])dnl + ], [])[extern int _nl_msg_cat_cntr; + extern + #ifdef __cplusplus + "C" + #endif + const char *_nl_expand_alias ();], + [bindtextdomain ("", ""); + return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + gt_cv_func_gnugettext_libintl=yes + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if test "$gt_cv_func_gnugettext_libc" = "yes" \ + || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + ifelse(gt_included_intl, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE(ENABLE_NLS, 1, + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext_libintl" = "yes"; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if test "$gt_cv_func_gnugettext_libintl" = "yes"; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE(HAVE_GETTEXT, 1, + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE(HAVE_DCGETTEXT, 1, + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + ifelse(gt_included_intl, yes, [ + dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL + dnl to 'yes' because some of the testsuite requires it. + if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then + BUILD_INCLUDED_LIBINTL=yes + fi + + dnl Make all variables we use known to autoconf. + AC_SUBST(BUILD_INCLUDED_LIBINTL) + AC_SUBST(USE_INCLUDED_LIBINTL) + AC_SUBST(CATOBJEXT) + + dnl For backward compatibility. Some configure.ins may be using this. + nls_cv_header_intl= + nls_cv_header_libgt= + + dnl For backward compatibility. Some Makefiles may be using this. + DATADIRNAME=share + AC_SUBST(DATADIRNAME) + + dnl For backward compatibility. Some Makefiles may be using this. + INSTOBJEXT=.mo + AC_SUBST(INSTOBJEXT) + + dnl For backward compatibility. Some Makefiles may be using this. + GENCAT=gencat + AC_SUBST(GENCAT) + + dnl For backward compatibility. Some Makefiles may be using this. + if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLOBJS="\$(GETTOBJS)" + fi + AC_SUBST(INTLOBJS) + + dnl Enable libtool support if the surrounding package wishes it. + INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix + AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) + ]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST(INTLLIBS) + + dnl Make all documented variables known to autoconf. + AC_SUBST(LIBINTL) + AC_SUBST(LTLIBINTL) + AC_SUBST(POSUB) + ]) + + + dnl Checks for all prerequisites of the intl subdirectory, + dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, + dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. + AC_DEFUN([AM_INTL_SUBDIR], + [ + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_MKINSTALLDIRS])dnl + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([AC_ISC_POSIX])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + AC_REQUIRE([AC_C_CONST])dnl + AC_REQUIRE([AC_C_INLINE])dnl + AC_REQUIRE([AC_TYPE_OFF_T])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + AC_REQUIRE([jm_GLIBC21])dnl + AC_REQUIRE([gt_INTDIV0])dnl + AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl + AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl + AC_REQUIRE([gt_INTTYPES_PRI])dnl + + AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ + stdlib.h string.h unistd.h sys/param.h]) + AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ + geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ + strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \ + __fsetlocking]) + + AM_ICONV + AM_LANGINFO_CODESET + if test $ac_cv_header_locale_h = yes; then + AM_LC_MESSAGES + fi + + dnl intl/plural.c is generated from intl/plural.y. It requires bison, + dnl because plural.y uses bison specific features. It requires at least + dnl bison-1.26 because earlier versions generate a plural.c that doesn't + dnl compile. + dnl bison is only needed for the maintainer (who touches plural.y). But in + dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put + dnl the rule in general Makefile. Now, some people carelessly touch the + dnl files or have a broken "make" program, hence the plural.c rule will + dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not + dnl present or too old. + AC_CHECK_PROGS([INTLBISON], [bison]) + if test -z "$INTLBISON"; then + ac_verc_fail=yes + else + dnl Found it, now check the version. + AC_MSG_CHECKING([version of bison]) + changequote(<<,>>)dnl + ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; + 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) + changequote([,])dnl + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + esac + AC_MSG_RESULT([$ac_prog_version]) + fi + if test $ac_verc_fail = yes; then + INTLBISON=: + fi + ]) + + + dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) + AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) + # glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40) + dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + # Test for the GNU C Library, version 2.1 or newer. + # From Bruno Haible. + + AC_DEFUN([jm_GLIBC21], + [ + AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, + ac_cv_gnu_library_2_1, + [AC_EGREP_CPP([Lucky GNU user], + [ + #include + #ifdef __GNU_LIBRARY__ + #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) + Lucky GNU user + #endif + #endif + ], + ac_cv_gnu_library_2_1=yes, + ac_cv_gnu_library_2_1=no) + ] + ) + AC_SUBST(GLIBC21) + GLIBC21="$ac_cv_gnu_library_2_1" + ] + ) + # iconv.m4 serial AM4 (gettext-0.11.3) + dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + dnl From Bruno Haible. + + AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], + [ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) + ]) + + AC_DEFUN([AM_ICONV_LINK], + [ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_TRY_LINK([#include + #include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_func_iconv=yes) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include + #include ], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_lib_iconv=yes + am_cv_func_iconv=yes) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST(LIBICONV) + AC_SUBST(LTLIBICONV) + ]) + + AC_DEFUN([AM_ICONV], + [ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL(am_cv_proto_iconv, [ + AC_TRY_COMPILE([ + #include + #include + extern + #ifdef __cplusplus + "C" + #endif + #if defined(__STDC__) || defined(__cplusplus) + size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); + #else + size_t iconv(); + #endif + ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([$]{ac_t:- + }[$]am_cv_proto_iconv) + AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, + [Define as const if the declaration of iconv() needs const.]) + fi + ]) + # intdiv0.m4 serial 1 (gettext-0.11.3) + dnl Copyright (C) 2002 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + dnl From Bruno Haible. + + AC_DEFUN([gt_INTDIV0], + [ + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + + AC_CACHE_CHECK([whether integer division by zero raises SIGFPE], + gt_cv_int_divbyzero_sigfpe, + [ + AC_TRY_RUN([ + #include + #include + + static void + #ifdef __cplusplus + sigfpe_handler (int sig) + #else + sigfpe_handler (sig) int sig; + #endif + { + /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ + exit (sig != SIGFPE); + } + + int x = 1; + int y = 0; + int z; + int nan; + + int main () + { + signal (SIGFPE, sigfpe_handler); + /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ + #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) + signal (SIGTRAP, sigfpe_handler); + #endif + /* Linux/SPARC yields signal SIGILL. */ + #if defined (__sparc__) && defined (__linux__) + signal (SIGILL, sigfpe_handler); + #endif + + z = x / y; + nan = y / y; + exit (1); + } + ], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no, + [ + # Guess based on the CPU. + case "$host_cpu" in + alpha* | i[34567]86 | m68k | s390*) + gt_cv_int_divbyzero_sigfpe="guessing yes";; + *) + gt_cv_int_divbyzero_sigfpe="guessing no";; + esac + ]) + ]) + case "$gt_cv_int_divbyzero_sigfpe" in + *yes) value=1;; + *) value=0;; + esac + AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value, + [Define if integer division by zero raises signal SIGFPE.]) + ]) + # inttypes.m4 serial 1 (gettext-0.11.4) + dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + dnl From Paul Eggert. + + # Define HAVE_INTTYPES_H if exists and doesn't clash with + # . + + AC_DEFUN([gt_HEADER_INTTYPES_H], + [ + AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h, + [ + AC_TRY_COMPILE( + [#include + #include ], + [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no) + ]) + if test $gt_cv_header_inttypes_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1, + [Define if exists and doesn't clash with .]) + fi + ]) + # inttypes_h.m4 serial 5 (gettext-0.12) + dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + dnl From Paul Eggert. + + # Define HAVE_INTTYPES_H_WITH_UINTMAX if exists, + # doesn't clash with , and declares uintmax_t. + + AC_DEFUN([jm_AC_HEADER_INTTYPES_H], + [ + AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h, + [AC_TRY_COMPILE( + [#include + #include ], + [uintmax_t i = (uintmax_t) -1;], + jm_ac_cv_header_inttypes_h=yes, + jm_ac_cv_header_inttypes_h=no)]) + if test $jm_ac_cv_header_inttypes_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1, + [Define if exists, doesn't clash with , + and declares uintmax_t. ]) + fi + ]) + # inttypes-pri.m4 serial 1 (gettext-0.11.4) + dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + dnl From Bruno Haible. + + # Define PRI_MACROS_BROKEN if exists and defines the PRI* + # macros to non-string values. This is the case on AIX 4.3.3. + + AC_DEFUN([gt_INTTYPES_PRI], + [ + AC_REQUIRE([gt_HEADER_INTTYPES_H]) + if test $gt_cv_header_inttypes_h = yes; then + AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], + gt_cv_inttypes_pri_broken, + [ + AC_TRY_COMPILE([#include + #ifdef PRId32 + char *p = PRId32; + #endif + ], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes) + ]) + fi + if test "$gt_cv_inttypes_pri_broken" = yes; then + AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1, + [Define if exists and defines unusable PRI* macros.]) + fi + ]) + # isc-posix.m4 serial 2 (gettext-0.11.2) + dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + # This file is not needed with autoconf-2.53 and newer. Remove it in 2005. + + # This test replaces the one in autoconf. + # Currently this macro should have the same name as the autoconf macro + # because gettext's gettext.m4 (distributed in the automake package) + # still uses it. Otherwise, the use in gettext.m4 makes autoheader + # give these diagnostics: + # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX + # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX + + undefine([AC_ISC_POSIX]) + + AC_DEFUN([AC_ISC_POSIX], + [ + dnl This test replaces the obsolescent AC_ISC_POSIX kludge. + AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) + ] + ) + # lcmessage.m4 serial 3 (gettext-0.11.3) + dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + dnl + dnl This file can can be used in projects which are not available under + dnl the GNU General Public License or the GNU Library General Public + dnl License but which still want to provide support for the GNU gettext + dnl functionality. + dnl Please note that the actual code of the GNU gettext library is covered + dnl by the GNU Library General Public License, and the rest of the GNU + dnl gettext package package is covered by the GNU General Public License. + dnl They are *not* in the public domain. + + dnl Authors: + dnl Ulrich Drepper , 1995. + + # Check whether LC_MESSAGES is available in . + + AC_DEFUN([AM_LC_MESSAGES], + [ + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include ], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, + [Define if your file defines LC_MESSAGES.]) + fi + ]) + # lib-ld.m4 serial 2 (gettext-0.12) + dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + dnl Subroutines of libtool.m4, + dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision + dnl with libtool.m4. + + dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. + AC_DEFUN([AC_LIB_PROG_LD_GNU], + [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, + [# I'd rather use --version here, but apparently some GNU ld's only accept -v. + if $LD -v 2>&1 &5; then + acl_cv_prog_gnu_ld=yes + else + acl_cv_prog_gnu_ld=no + fi]) + with_gnu_ld=$acl_cv_prog_gnu_ld + ]) + + dnl From libtool-1.4. Sets the variable LD. + AC_DEFUN([AC_LIB_PROG_LD], + [AC_ARG_WITH(gnu-ld, + [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], + test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + # Prepare PATH_SEPARATOR. + # The user is always right. + if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh + fi + ac_prog=ld + if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by GCC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]* | [A-Za-z]:[\\/]*)] + [re_direlt='/[^/][^/]*/\.\./'] + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac + elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) + else + AC_MSG_CHECKING([for non-GNU ld]) + fi + AC_CACHE_VAL(acl_cv_path_LD, + [if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then + test "$with_gnu_ld" != no && break + else + test "$with_gnu_ld" != yes && break + fi + fi + done + IFS="$ac_save_ifs" + else + acl_cv_path_LD="$LD" # Let the user override the test with a path. + fi]) + LD="$acl_cv_path_LD" + if test -n "$LD"; then + AC_MSG_RESULT($LD) + else + AC_MSG_RESULT(no) + fi + test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) + AC_LIB_PROG_LD_GNU + ]) + # lib-link.m4 serial 4 (gettext-0.12) + dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + dnl From Bruno Haible. + + dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and + dnl the libraries corresponding to explicit and implicit dependencies. + dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and + dnl augments the CPPFLAGS variable. + AC_DEFUN([AC_LIB_LINKFLAGS], + [ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + define([Name],[translit([$1],[./-], [___])]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + ac_cv_lib[]Name[]_libs="$LIB[]NAME" + ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" + ac_cv_lib[]Name[]_cppflags="$INC[]NAME" + ]) + LIB[]NAME="$ac_cv_lib[]Name[]_libs" + LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" + INC[]NAME="$ac_cv_lib[]Name[]_cppflags" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the + dnl results of this search when this library appears as a dependency. + HAVE_LIB[]NAME=yes + undefine([Name]) + undefine([NAME]) + ]) + + dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) + dnl searches for libname and the libraries corresponding to explicit and + dnl implicit dependencies, together with the specified include files and + dnl the ability to compile and link the specified testcode. If found, it + dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and + dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and + dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs + dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. + AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], + [ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + define([Name],[translit([$1],[./-], [___])]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + + dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + + dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, + dnl because if the user has installed lib[]Name and not disabled its use + dnl via --without-lib[]Name-prefix, he wants to use it. + ac_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + + AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ + ac_save_LIBS="$LIBS" + LIBS="$LIBS $LIB[]NAME" + AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) + LIBS="$ac_save_LIBS" + ]) + if test "$ac_cv_lib[]Name" = yes; then + HAVE_LIB[]NAME=yes + AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) + AC_MSG_CHECKING([how to link with lib[]$1]) + AC_MSG_RESULT([$LIB[]NAME]) + else + HAVE_LIB[]NAME=no + dnl If $LIB[]NAME didn't lead to a usable library, we don't need + dnl $INC[]NAME either. + CPPFLAGS="$ac_save_CPPFLAGS" + LIB[]NAME= + LTLIB[]NAME= + fi + AC_SUBST([HAVE_LIB]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + undefine([Name]) + undefine([NAME]) + ]) + + dnl Determine the platform dependent parameters needed to use rpath: + dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, + dnl hardcode_direct, hardcode_minus_L. + AC_DEFUN([AC_LIB_RPATH], + [ + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + libext="$acl_cv_libext" + shlibext="$acl_cv_shlibext" + hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + hardcode_direct="$acl_cv_hardcode_direct" + hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE(rpath, + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) + ]) + + dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and + dnl the libraries corresponding to explicit and implicit dependencies. + dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. + AC_DEFUN([AC_LIB_LINKFLAGS_BODY], + [ + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib$1-prefix], + [ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib + --without-lib$1-prefix don't search for lib$1 in includedir and libdir], + [ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi + ]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + found_dir="$dir" + found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */lib | */lib/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi + ]) + + dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, + dnl unless already present in VAR. + dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes + dnl contains two or three consecutive elements that belong together. + AC_DEFUN([AC_LIB_APPENDTOVAR], + [ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done + ]) + # lib-prefix.m4 serial 2 (gettext-0.12) + dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + dnl From Bruno Haible. + + dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and + dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't + dnl require excessive bracketing. + ifdef([AC_HELP_STRING], + [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], + [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + + dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed + dnl to access previously installed libraries. The basic assumption is that + dnl a user will want packages to use other packages he previously installed + dnl with the same --prefix option. + dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate + dnl libraries, but is otherwise very convenient. + AC_DEFUN([AC_LIB_PREFIX], + [ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib-prefix], + [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], + [ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/lib" + fi + fi + ]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/lib"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/lib"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi + ]) + + dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, + dnl acl_final_exec_prefix, containing the values to which $prefix and + dnl $exec_prefix will expand at the end of the configure script. + AC_DEFUN([AC_LIB_PREPARE_PREFIX], + [ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" + ]) + + dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the + dnl variables prefix and exec_prefix bound to the values they will have + dnl at the end of the configure script. + AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], + [ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + ]) + # nls.m4 serial 1 (gettext-0.12) + dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + dnl + dnl This file can can be used in projects which are not available under + dnl the GNU General Public License or the GNU Library General Public + dnl License but which still want to provide support for the GNU gettext + dnl functionality. + dnl Please note that the actual code of the GNU gettext library is covered + dnl by the GNU Library General Public License, and the rest of the GNU + dnl gettext package package is covered by the GNU General Public License. + dnl They are *not* in the public domain. + + dnl Authors: + dnl Ulrich Drepper , 1995-2000. + dnl Bruno Haible , 2000-2003. + + AC_DEFUN([AM_NLS], + [ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE(nls, + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT($USE_NLS) + AC_SUBST(USE_NLS) + ]) + + AC_DEFUN([AM_MKINSTALLDIRS], + [ + dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly + dnl find the mkinstalldirs script in another subdir but $(top_srcdir). + dnl Try to locate it. + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + case "$ac_aux_dir" in + /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;; + *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;; + esac + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + AC_SUBST(MKINSTALLDIRS) + ]) + # po.m4 serial 1 (gettext-0.12) + dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + dnl + dnl This file can can be used in projects which are not available under + dnl the GNU General Public License or the GNU Library General Public + dnl License but which still want to provide support for the GNU gettext + dnl functionality. + dnl Please note that the actual code of the GNU gettext library is covered + dnl by the GNU Library General Public License, and the rest of the GNU + dnl gettext package package is covered by the GNU General Public License. + dnl They are *not* in the public domain. + + dnl Authors: + dnl Ulrich Drepper , 1995-2000. + dnl Bruno Haible , 2000-2003. + + dnl Checks for all prerequisites of the po subdirectory. + AC_DEFUN([AM_PO_SUBDIRS], + [ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_MKINSTALLDIRS])dnl + AC_REQUIRE([AM_NLS])dnl + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + + dnl Search for GNU xgettext 0.12 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) + + dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. + dnl Test whether we really found GNU msgfmt. + if test "$GMSGFMT" != ":"; then + dnl If it is no GNU msgfmt we define it as : so that the + dnl Makefiles still can work. + if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && + (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + : ; + else + GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` + AC_MSG_RESULT( + [found $GMSGFMT program is not GNU msgfmt; ignore it]) + GMSGFMT=":" + fi + fi + + dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is no GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && + (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + : ; + else + AC_MSG_RESULT( + [found xgettext program is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + fi + + AC_OUTPUT_COMMANDS([ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + GMOFILES= + UPDATEPOFILES= + DUMMYPOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it + # from automake. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) + ]) + # progtest.m4 serial 3 (gettext-0.12) + dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + dnl + dnl This file can can be used in projects which are not available under + dnl the GNU General Public License or the GNU Library General Public + dnl License but which still want to provide support for the GNU gettext + dnl functionality. + dnl Please note that the actual code of the GNU gettext library is covered + dnl by the GNU Library General Public License, and the rest of the GNU + dnl gettext package package is covered by the GNU General Public License. + dnl They are *not* in the public domain. + + dnl Authors: + dnl Ulrich Drepper , 1996. + + # Search path for a program which passes the given test. + + dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, + dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) + AC_DEFUN([AM_PATH_PROG_WITH_TEST], + [ + # Prepare PATH_SEPARATOR. + # The user is always right. + if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh + fi + + # Find out how to test for executable files. Don't use a zero-byte file, + # as systems may use methods other than mode bits to determine executability. + cat >conf$$.file <<_ASEOF + #! /bin/sh + exit 0 + _ASEOF + chmod +x conf$$.file + if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" + else + ac_executable_p="test -f" + fi + rm -f conf$$.file + + # Extract the first word of "$2", so it can be a program name with args. + set dummy $2; ac_word=[$]2 + AC_MSG_CHECKING([for $ac_word]) + AC_CACHE_VAL(ac_cv_path_$1, + [case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in ifelse([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + dnl If no 4th arg is given, leave the cache variable unset, + dnl so AC_PATH_PROGS will keep looking. + ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" + ])dnl + ;; + esac])dnl + $1="$ac_cv_path_$1" + if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) + else + AC_MSG_RESULT(no) + fi + AC_SUBST($1)dnl + ]) + # stdint_h.m4 serial 3 (gettext-0.12) + dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + dnl From Paul Eggert. + + # Define HAVE_STDINT_H_WITH_UINTMAX if exists, + # doesn't clash with , and declares uintmax_t. + + AC_DEFUN([jm_AC_HEADER_STDINT_H], + [ + AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h, + [AC_TRY_COMPILE( + [#include + #include ], + [uintmax_t i = (uintmax_t) -1;], + jm_ac_cv_header_stdint_h=yes, + jm_ac_cv_header_stdint_h=no)]) + if test $jm_ac_cv_header_stdint_h = yes; then + AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1, + [Define if exists, doesn't clash with , + and declares uintmax_t. ]) + fi + ]) + # uintmax_t.m4 serial 7 (gettext-0.12) + dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + dnl From Paul Eggert. + + AC_PREREQ(2.13) + + # Define uintmax_t to 'unsigned long' or 'unsigned long long' + # if it is not already defined in or . + + AC_DEFUN([jm_AC_TYPE_UINTMAX_T], + [ + AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) + AC_REQUIRE([jm_AC_HEADER_STDINT_H]) + if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then + AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) + test $ac_cv_type_unsigned_long_long = yes \ + && ac_type='unsigned long long' \ + || ac_type='unsigned long' + AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, + [Define to unsigned long or unsigned long long + if and don't define.]) + else + AC_DEFINE(HAVE_UINTMAX_T, 1, + [Define if you have the 'uintmax_t' type in or .]) + fi + ]) + # ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40) + dnl Copyright (C) 1999-2002 Free Software Foundation, Inc. + dnl This file is free software, distributed under the terms of the GNU + dnl General Public License. As a special exception to the GNU General + dnl Public License, this file may be distributed as part of a program + dnl that contains a configuration script generated by Autoconf, under + dnl the same distribution terms as the rest of that program. + + dnl From Paul Eggert. + + AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG], + [ + AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, + [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;], + [unsigned long long ullmax = (unsigned long long) -1; + return ull << i | ull >> i | ullmax / ull | ullmax % ull;], + ac_cv_type_unsigned_long_long=yes, + ac_cv_type_unsigned_long_long=no)]) + if test $ac_cv_type_unsigned_long_long = yes; then + AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, + [Define if you have the unsigned long long type.]) + fi ]) diff -aNrc2 readline-4.3-patched/bind.c readline-5.0/bind.c *** readline-4.3-patched/bind.c Thu Sep 5 11:04:54 2002 --- readline-5.0/bind.c Wed Mar 3 22:39:32 2004 *************** *** 20,25 **** --- 20,30 ---- have a copy of the license, write to the Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + #define READLINE_LIBRARY + #if defined (__TANDEM) + # include + #endif + #if defined (HAVE_CONFIG_H) # include *************** *** 149,152 **** --- 154,185 ---- } + /* Bind key sequence KEYSEQ to DEFAULT_FUNC if KEYSEQ is unbound. Right + now, this is always used to attempt to bind the arrow keys, hence the + check for rl_vi_movement_mode. */ + int + rl_bind_key_if_unbound_in_map (key, default_func, kmap) + int key; + rl_command_func_t *default_func; + Keymap kmap; + { + char keyseq[2]; + + keyseq[0] = (unsigned char)key; + keyseq[1] = '\0'; + return (rl_bind_keyseq_if_unbound_in_map (keyseq, default_func, kmap)); + } + + int + rl_bind_key_if_unbound (key, default_func) + int key; + rl_command_func_t *default_func; + { + char keyseq[2]; + + keyseq[0] = (unsigned char)key; + keyseq[1] = '\0'; + return (rl_bind_keyseq_if_unbound_in_map (keyseq, default_func, _rl_keymap)); + } + /* Make KEY do nothing in the currently selected keymap. Returns non-zero in case of error. */ *************** *** 201,207 **** --- 234,261 ---- /* Bind the key sequence represented by the string KEYSEQ to + FUNCTION, starting in the current keymap. This makes new + keymaps as necessary. */ + int + rl_bind_keyseq (keyseq, function) + const char *keyseq; + rl_command_func_t *function; + { + return (rl_generic_bind (ISFUNC, keyseq, (char *)function, _rl_keymap)); + } + + /* Bind the key sequence represented by the string KEYSEQ to FUNCTION. This makes new keymaps as necessary. The initial place to do bindings is in MAP. */ int + rl_bind_keyseq_in_map (keyseq, function, map) + const char *keyseq; + rl_command_func_t *function; + Keymap map; + { + return (rl_generic_bind (ISFUNC, keyseq, (char *)function, map)); + } + + /* Backwards compatibility; equivalent to rl_bind_keyseq_in_map() */ + int rl_set_key (keyseq, function, map) const char *keyseq; *************** *** 212,215 **** --- 266,303 ---- } + /* Bind key sequence KEYSEQ to DEFAULT_FUNC if KEYSEQ is unbound. Right + now, this is always used to attempt to bind the arrow keys, hence the + check for rl_vi_movement_mode. */ + int + rl_bind_keyseq_if_unbound_in_map (keyseq, default_func, kmap) + const char *keyseq; + rl_command_func_t *default_func; + Keymap kmap; + { + rl_command_func_t *func; + + if (keyseq) + { + func = rl_function_of_keyseq (keyseq, kmap, (int *)NULL); + #if defined (VI_MODE) + if (!func || func == rl_do_lowercase_version || func == rl_vi_movement_mode) + #else + if (!func || func == rl_do_lowercase_version) + #endif + return (rl_bind_keyseq_in_map (keyseq, default_func, kmap)); + else + return 1; + } + return 0; + } + + int + rl_bind_keyseq_if_unbound (keyseq, default_func) + const char *keyseq; + rl_command_func_t *default_func; + { + return (rl_bind_keyseq_if_unbound_in_map (keyseq, default_func, _rl_keymap)); + } + /* Bind the key sequence represented by the string KEYSEQ to the string of characters MACRO. This makes new keymaps as *************** *** 913,919 **** --- 1001,1013 ---- } + #if 0 /* Check the previous (n - 1) levels of the stack to make sure that we haven't previously turned off parsing. */ for (i = 0; i < if_stack_depth - 1; i++) + #else + /* Check the previous (n) levels of the stack to make sure that + we haven't previously turned off parsing. */ + for (i = 0; i < if_stack_depth; i++) + #endif if (if_stack[i] == 1) return 0; *************** *** 1162,1166 **** /* If this is a new-style key-binding, then do the binding with ! rl_set_key (). Otherwise, let the older code deal with it. */ if (*string == '"') { --- 1256,1260 ---- /* If this is a new-style key-binding, then do the binding with ! rl_bind_keyseq (). Otherwise, let the older code deal with it. */ if (*string == '"') { *************** *** 1201,1205 **** } else ! rl_set_key (seq, rl_named_function (funname), _rl_keymap); free (seq); --- 1295,1299 ---- } else ! rl_bind_keyseq (seq, rl_named_function (funname)); free (seq); *************** *** 1282,1285 **** --- 1376,1380 ---- { "print-completions-horizontally", &_rl_print_completions_horizontally, 0 }, { "show-all-if-ambiguous", &_rl_complete_show_all, 0 }, + { "show-all-if-unmodified", &_rl_complete_show_unmodified, 0 }, #if defined (VISIBLE_STATS) { "visible-stats", &rl_visible_stats, 0 }, *************** *** 1651,1655 **** state of keybindings and functions known to Readline. The info is always printed to rl_outstream, and in such a way that it can ! be read back in (i.e., passed to rl_parse_and_bind (). */ /* Print the names of functions known to Readline. */ --- 1746,1750 ---- state of keybindings and functions known to Readline. The info is always printed to rl_outstream, and in such a way that it can ! be read back in (i.e., passed to rl_parse_and_bind ()). */ /* Print the names of functions known to Readline. */ *************** *** 2111,2136 **** rl_on_new_line (); return (0); - } - - /* Bind key sequence KEYSEQ to DEFAULT_FUNC if KEYSEQ is unbound. Right - now, this is always used to attempt to bind the arrow keys, hence the - check for rl_vi_movement_mode. */ - void - _rl_bind_if_unbound (keyseq, default_func) - const char *keyseq; - rl_command_func_t *default_func; - { - rl_command_func_t *func; - - if (keyseq) - { - func = rl_function_of_keyseq (keyseq, _rl_keymap, (int *)NULL); - #if defined (VI_MODE) - if (!func || func == rl_do_lowercase_version || func == rl_vi_movement_mode) - #else - if (!func || func == rl_do_lowercase_version) - #endif - rl_set_key (keyseq, default_func, _rl_keymap); - } } --- 2206,2209 ---- diff -aNrc2 readline-4.3-patched/callback.c readline-5.0/callback.c *** readline-4.3-patched/callback.c Mon Sep 10 10:05:28 2001 --- readline-5.0/callback.c Fri Jan 31 13:14:31 2003 *************** *** 132,136 **** _rl_callback_newline (); } ! if (rl_pending_input) eof = readline_internal_char (); else --- 132,136 ---- _rl_callback_newline (); } ! if (rl_pending_input || _rl_pushed_input_available ()) eof = readline_internal_char (); else diff -aNrc2 readline-4.3-patched/chardefs.h readline-5.0/chardefs.h *** readline-4.3-patched/chardefs.h Thu Feb 14 11:38:18 2002 --- readline-5.0/chardefs.h Sat Feb 1 17:43:47 2003 *************** *** 78,82 **** #endif ! #define NON_NEGATIVE(c) ((unsigned char)(c) == (c)) /* Some systems define these; we want our definitions. */ --- 78,86 ---- #endif ! #if defined (CTYPE_NON_ASCII) ! # define NON_NEGATIVE(c) 1 ! #else ! # define NON_NEGATIVE(c) ((unsigned char)(c) == (c)) ! #endif /* Some systems define these; we want our definitions. */ diff -aNrc2 readline-4.3-patched/complete.c readline-5.0/complete.c *** readline-4.3-patched/complete.c Tue May 7 15:39:32 2002 --- readline-5.0/complete.c Thu Jul 1 13:57:58 2004 *************** *** 1,5 **** /* complete.c -- filename completion for readline. */ ! /* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for --- 1,5 ---- /* complete.c -- filename completion for readline. */ ! /* Copyright (C) 1987-2004 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for *************** *** 29,33 **** #include #if defined (HAVE_SYS_FILE_H) ! #include #endif --- 29,33 ---- #include #if defined (HAVE_SYS_FILE_H) ! # include #endif *************** *** 100,103 **** --- 100,105 ---- #endif + static int path_isdir PARAMS((const char *)); + static char *rl_quote_filename PARAMS((char *, int, char *)); *************** *** 106,109 **** --- 108,113 ---- static int _rl_internal_pager PARAMS((int)); static char *printable_part PARAMS((char *)); + static int fnwidth PARAMS((const char *)); + static int fnprint PARAMS((const char *)); static int print_filename PARAMS((char *, char *)); *************** *** 131,134 **** --- 135,142 ---- int _rl_complete_show_all = 0; + /* If non-zero, non-unique completions show the list of matches, unless it + is not possible to do partial completion and modify the line. */ + int _rl_complete_show_unmodified = 0; + /* If non-zero, completed directory names have a slash appended. */ int _rl_complete_mark_directories = 1; *************** *** 215,219 **** rl_complete_internal. The default list is the contents of rl_basic_word_break_characters. */ ! const char *rl_completer_word_break_characters = (const char *)NULL; /* List of characters which can be used to quote a substring of the line. --- 223,232 ---- rl_complete_internal. The default list is the contents of rl_basic_word_break_characters. */ ! /*const*/ char *rl_completer_word_break_characters = (/*const*/ char *)NULL; ! ! /* Hook function to allow an application to set the completion word ! break characters before readline breaks up the line. Allows ! position-dependent word break characters. */ ! rl_cpvfunc_t *rl_completion_word_break_hook = (rl_cpvfunc_t *)NULL; /* List of characters which can be used to quote a substring of the line. *************** *** 283,286 **** --- 296,312 ---- int rl_completion_append_character = ' '; + /* If non-zero, the completion functions don't append any closing quote. + This is set to 0 by rl_complete_internal and may be changed by an + application-specific completion function. */ + int rl_completion_suppress_quote = 0; + + /* Set to any quote character readline thinks it finds before any application + completion function is called. */ + int rl_completion_quote_character; + + /* Set to a non-zero value if readline found quoting anywhere in the word to + be completed; set before any application completion function is called. */ + int rl_completion_found_quote; + /* If non-zero, a slash will be appended to completed filenames that are symbolic links to directory names, subject to the value of the *************** *** 321,324 **** --- 347,352 ---- else if (_rl_complete_show_all) return (rl_complete_internal ('!')); + else if (_rl_complete_show_unmodified) + return (rl_complete_internal ('@')); else return (rl_complete_internal (TAB)); *************** *** 353,356 **** --- 381,386 ---- else if (_rl_complete_show_all) return '!'; + else if (_rl_complete_show_unmodified) + return '@'; else return TAB; *************** *** 373,377 **** rl_filename_quoting_desired = 1; rl_completion_type = what_to_do; ! rl_completion_suppress_append = 0; /* The completion entry function may optionally change this. */ --- 403,407 ---- rl_filename_quoting_desired = 1; rl_completion_type = what_to_do; ! rl_completion_suppress_append = rl_completion_suppress_quote = 0; /* The completion entry function may optionally change this. */ *************** *** 424,427 **** --- 454,466 ---- } + static int + path_isdir (filename) + const char *filename; + { + struct stat finfo; + + return (stat (filename, &finfo) == 0 && S_ISDIR (finfo.st_mode)); + } + #if defined (VISIBLE_STATS) /* Return the character which best describes FILENAME. *************** *** 521,571 **** } /* Output TO_PRINT to rl_outstream. If VISIBLE_STATS is defined and we are using it, check for and output a single character for `special' filenames. Return the number of characters we output. */ - #define PUTX(c) \ - do { \ - if (CTRL_CHAR (c)) \ - { \ - putc ('^', rl_outstream); \ - putc (UNCTRL (c), rl_outstream); \ - printed_len += 2; \ - } \ - else if (c == RUBOUT) \ - { \ - putc ('^', rl_outstream); \ - putc ('?', rl_outstream); \ - printed_len += 2; \ - } \ - else \ - { \ - putc (c, rl_outstream); \ - printed_len++; \ - } \ - } while (0) - static int print_filename (to_print, full_pathname) char *to_print, *full_pathname; { ! int printed_len = 0; ! #if !defined (VISIBLE_STATS) ! char *s; ! ! for (s = to_print; *s; s++) ! { ! PUTX (*s); ! } ! #else char *s, c, *new_full_pathname; - int extension_char, slen, tlen; ! for (s = to_print; *s; s++) ! { ! PUTX (*s); ! } ! if (rl_filename_completion_desired && rl_visible_stats) { /* If to_print != full_pathname, to_print is the basename of the --- 560,697 ---- } + /* Compute width of STRING when displayed on screen by print_filename */ + static int + fnwidth (string) + const char *string; + { + int width, pos; + #if defined (HANDLE_MULTIBYTE) + mbstate_t ps; + int left, w; + size_t clen; + wchar_t wc; + + left = strlen (string) + 1; + memset (&ps, 0, sizeof (mbstate_t)); + #endif + + width = pos = 0; + while (string[pos]) + { + if (CTRL_CHAR (*string) || *string == RUBOUT) + { + width += 2; + pos++; + } + else + { + #if defined (HANDLE_MULTIBYTE) + clen = mbrtowc (&wc, string + pos, left - pos, &ps); + if (MB_INVALIDCH (clen)) + { + width++; + pos++; + memset (&ps, 0, sizeof (mbstate_t)); + } + else if (MB_NULLWCH (clen)) + break; + else + { + pos += clen; + w = wcwidth (wc); + width += (w >= 0) ? w : 1; + } + #else + width++; + pos++; + #endif + } + } + + return width; + } + + static int + fnprint (to_print) + const char *to_print; + { + int printed_len; + const char *s; + #if defined (HANDLE_MULTIBYTE) + mbstate_t ps; + const char *end; + size_t tlen; + + end = to_print + strlen (to_print) + 1; + memset (&ps, 0, sizeof (mbstate_t)); + #endif + + printed_len = 0; + s = to_print; + while (*s) + { + if (CTRL_CHAR (*s)) + { + putc ('^', rl_outstream); + putc (UNCTRL (*s), rl_outstream); + printed_len += 2; + s++; + #if defined (HANDLE_MULTIBYTE) + memset (&ps, 0, sizeof (mbstate_t)); + #endif + } + else if (*s == RUBOUT) + { + putc ('^', rl_outstream); + putc ('?', rl_outstream); + printed_len += 2; + s++; + #if defined (HANDLE_MULTIBYTE) + memset (&ps, 0, sizeof (mbstate_t)); + #endif + } + else + { + #if defined (HANDLE_MULTIBYTE) + tlen = mbrlen (s, end - s, &ps); + if (MB_INVALIDCH (tlen)) + { + tlen = 1; + memset (&ps, 0, sizeof (mbstate_t)); + } + else if (MB_NULLWCH (tlen)) + break; + fwrite (s, 1, tlen, rl_outstream); + s += tlen; + #else + putc (*s, rl_outstream); + s++; + #endif + printed_len++; + } + } + + return printed_len; + } + /* Output TO_PRINT to rl_outstream. If VISIBLE_STATS is defined and we are using it, check for and output a single character for `special' filenames. Return the number of characters we output. */ static int print_filename (to_print, full_pathname) char *to_print, *full_pathname; { ! int printed_len, extension_char, slen, tlen; char *s, c, *new_full_pathname; ! extension_char = 0; ! printed_len = fnprint (to_print); ! #if defined (VISIBLE_STATS) ! if (rl_filename_completion_desired && (rl_visible_stats || _rl_complete_mark_directories)) ! #else ! if (rl_filename_completion_desired && _rl_complete_mark_directories) ! #endif { /* If to_print != full_pathname, to_print is the basename of the *************** *** 594,598 **** strcpy (new_full_pathname + slen + 1, to_print); ! extension_char = stat_char (new_full_pathname); free (new_full_pathname); --- 720,730 ---- strcpy (new_full_pathname + slen + 1, to_print); ! #if defined (VISIBLE_STATS) ! if (rl_visible_stats) ! extension_char = stat_char (new_full_pathname); ! else ! #endif ! if (path_isdir (new_full_pathname)) ! extension_char = '/'; free (new_full_pathname); *************** *** 602,606 **** { s = tilde_expand (full_pathname); ! extension_char = stat_char (s); } --- 734,744 ---- { s = tilde_expand (full_pathname); ! #if defined (VISIBLE_STATS) ! if (rl_visible_stats) ! extension_char = stat_char (s); ! else ! #endif ! if (path_isdir (s)) ! extension_char = '/'; } *************** *** 612,616 **** } } ! #endif /* VISIBLE_STATS */ return printed_len; } --- 750,754 ---- } } ! return printed_len; } *************** *** 652,656 **** { int scan, end, found_quote, delimiter, pass_next, isbrk; ! char quote_char; end = rl_point; --- 790,794 ---- { int scan, end, found_quote, delimiter, pass_next, isbrk; ! char quote_char, *brkchars; end = rl_point; *************** *** 658,661 **** --- 796,805 ---- quote_char = '\0'; + brkchars = 0; + if (rl_completion_word_break_hook) + brkchars = (*rl_completion_word_break_hook) (); + if (brkchars == 0) + brkchars = rl_completer_word_break_characters; + if (rl_completer_quote_characters) { *************** *** 664,668 **** --- 808,819 ---- of an unclosed quoted substring. */ /* FOUND_QUOTE is set so we know what kind of quotes we found. */ + #if defined (HANDLE_MULTIBYTE) + for (scan = pass_next = 0; scan < end; + scan = ((MB_CUR_MAX == 1 || rl_byte_oriented) + ? (scan + 1) + : _rl_find_next_mbchar (rl_line_buffer, scan, 1, MB_FIND_ANY))) + #else for (scan = pass_next = 0; scan < end; scan++) + #endif { if (pass_next) *************** *** 722,726 **** scan = rl_line_buffer[rl_point]; ! if (strchr (rl_completer_word_break_characters, scan) == 0) continue; --- 873,877 ---- scan = rl_line_buffer[rl_point]; ! if (strchr (brkchars, scan) == 0) continue; *************** *** 750,756 **** isbrk = (found_quote == 0 || (*rl_char_is_quoted_p) (rl_line_buffer, rl_point) == 0) && ! strchr (rl_completer_word_break_characters, scan) != 0; else ! isbrk = strchr (rl_completer_word_break_characters, scan) != 0; if (isbrk) --- 901,907 ---- isbrk = (found_quote == 0 || (*rl_char_is_quoted_p) (rl_line_buffer, rl_point) == 0) && ! strchr (brkchars, scan) != 0; else ! isbrk = strchr (brkchars, scan) != 0; if (isbrk) *************** *** 787,790 **** --- 938,944 ---- char **matches, *temp; + rl_completion_found_quote = found_quote; + rl_completion_quote_character = quote_char; + /* If the user wants to TRY to complete, but then wants to give up and use the default completion function, they set the *************** *** 890,893 **** --- 1044,1048 ---- register int i, c1, c2, si; int low; /* Count of max-matched characters. */ + char *dtext; /* dequoted TEXT, if needed */ #if defined (HANDLE_MULTIBYTE) int v; *************** *** 981,984 **** --- 1136,1159 ---- if (_rl_completion_case_fold) { + /* We're making an assumption here: + IF we're completing filenames AND + the application has defined a filename dequoting function AND + we found a quote character AND + the application has requested filename quoting + THEN + we assume that TEXT was dequoted before checking against + the file system and needs to be dequoted here before we + check against the list of matches + FI */ + dtext = (char *)NULL; + if (rl_filename_completion_desired && + rl_filename_dequoting_function && + rl_completion_found_quote && + rl_filename_quoting_desired) + { + dtext = (*rl_filename_dequoting_function) (text, rl_completion_quote_character); + text = dtext; + } + /* sort the list to get consistent answers. */ qsort (match_list+1, matches, sizeof(char *), (QSFUNC *)_rl_qsort_string_compare); *************** *** 1000,1003 **** --- 1175,1180 ---- /* otherwise, just use the text the user typed. */ strncpy (match_list[0], text, low); + + FREE (dtext); } else *************** *** 1204,1208 **** { temp = printable_part (matches[i]); ! len = strlen (temp); if (len > max) --- 1381,1385 ---- { temp = printable_part (matches[i]); ! len = fnwidth (temp); if (len > max) *************** *** 1339,1343 **** temp_string_index = 0; ! if (quote_char && rl_point && rl_line_buffer[rl_point - 1] != quote_char) temp_string[temp_string_index++] = quote_char; --- 1516,1521 ---- temp_string_index = 0; ! if (quote_char && rl_point && rl_completion_suppress_quote == 0 && ! rl_line_buffer[rl_point - 1] != quote_char) temp_string[temp_string_index++] = quote_char; *************** *** 1450,1454 **** `*' means insert all of the possible completions. `!' means to do standard completion, and list all possible completions if ! there is more than one. */ int rl_complete_internal (what_to_do) --- 1628,1634 ---- `*' means insert all of the possible completions. `!' means to do standard completion, and list all possible completions if ! there is more than one. ! `@' means to do standard completion, and list all possible completions if ! there is more than one and partial completion is not possible. */ int rl_complete_internal (what_to_do) *************** *** 1469,1473 **** ? rl_completion_entry_function : rl_filename_completion_function; - /* We now look backwards for the start of a filename/variable word. */ end = rl_point; --- 1649,1652 ---- *************** *** 1517,1520 **** --- 1696,1700 ---- case TAB: case '!': + case '@': /* Insert the first match with proper quoting. */ if (*matches[0]) *************** *** 1534,1537 **** --- 1714,1723 ---- { display_matches (matches); + break; + } + else if (what_to_do == '@') + { + if (nontrivial_lcd == 0) + display_matches (matches); break; } diff -aNrc2 readline-4.3-patched/config.h.in readline-5.0/config.h.in *** readline-4.3-patched/config.h.in Wed Feb 20 10:04:55 2002 --- readline-5.0/config.h.in Mon Feb 3 16:49:38 2003 *************** *** 1,4 **** --- 1,8 ---- /* config.h.in. Maintained by hand. */ + /* Define NO_MULTIBYTE_SUPPORT to not compile in support for multibyte + characters, even if the OS supports them. */ + #undef NO_MULTIBYTE_SUPPORT + /* Define if on MINIX. */ #undef _MINIX *************** *** 7,10 **** --- 11,16 ---- #undef RETSIGTYPE + #undef VOID_SIGHANDLER + /* Characteristics of the compiler. */ #undef const *************** *** 21,26 **** #undef STAT_MACROS_BROKEN - #undef VOID_SIGHANDLER - /* Define if you have the isascii function. */ #undef HAVE_ISASCII --- 27,30 ---- *************** *** 32,35 **** --- 36,45 ---- #undef HAVE_LSTAT + /* Define if you have the mbrlen function. */ + #undef HAVE_MBRLEN + + /* Define if you have the mbrtowc function. */ + #undef HAVE_MBRTOWC + /* Define if you have the mbsrtowcs function. */ #undef HAVE_MBSRTOWCS *************** *** 67,73 **** --- 77,88 ---- #undef HAVE_VSNPRINTF + /* Define if you have the wctomb function. */ + #undef HAVE_WCTOMB + /* Define if you have the wcwidth function. */ #undef HAVE_WCWIDTH + #undef STDC_HEADERS + /* Define if you have the header file. */ #undef HAVE_DIRENT_H *************** *** 177,180 **** --- 192,197 ---- #undef HAVE_POSIX_SIGSETJMP + + #undef CTYPE_NON_ASCII /* modify settings or make new ones based on what autoconf tells us. */ diff -aNrc2 readline-4.3-patched/configure readline-5.0/configure *** readline-4.3-patched/configure Thu Jun 27 13:54:29 2002 --- readline-5.0/configure Tue Jun 29 10:58:50 2004 *************** *** 1,14 **** #! /bin/sh ! # From configure.in for Readline 4.3, version 2.45, from autoconf version 2.52. # Guess values for system-dependent variables and create Makefiles. ! # Generated by Autoconf 2.52 for readline 4.3. # # Report bugs to . # ! # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' --- 1,83 ---- #! /bin/sh ! # From configure.in for Readline 5.0, version 2.52, from autoconf version AC_ACVERSION. # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.57 for readline 5.0-rc1. # # Report bugs to . # ! # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. + ## --------------------- ## + ## M4sh Initialization. ## + ## --------------------- ## + # Be Bourne compatible + if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix + fi + + # Support unset when possible. + if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset + else + as_unset=false + fi + + + # Work around bugs in pre-3.0 UWIN ksh. + $as_unset ENV MAIL MAILPATH + PS1='$ ' + PS2='> ' + PS4='+ ' + + # NLS nuisances. + for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME + do + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi + done + + # Required to use basename. + if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr + else + as_expr=false + fi + + if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename + else + as_basename=false + fi + + + # Name of the executable. + as_me=`$as_basename "$0" || + $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || + echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + + + # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' *************** *** 18,37 **** as_cr_alnum=$as_cr_Letters$as_cr_digits ! # Sed expression to map a string onto a valid variable name. ! as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - # Sed expression to map a string onto a valid CPP name. - as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" ! # Be Bourne compatible ! if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then ! emulate sh ! NULLCMD=: ! elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then ! set -o posix ! fi ! # Name of the executable. ! as_me=`echo "$0" |sed 's,.*[\\/],,'` if expr a : '\(a\)' >/dev/null 2>&1; then --- 87,197 ---- as_cr_alnum=$as_cr_Letters$as_cr_digits ! # The user is always right. ! if test "${PATH_SEPARATOR+set}" != set; then ! echo "#! /bin/sh" >conf$$.sh ! echo "exit 0" >>conf$$.sh ! chmod +x conf$$.sh ! if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then ! PATH_SEPARATOR=';' ! else ! PATH_SEPARATOR=: ! fi ! rm -f conf$$.sh ! fi ! as_lineno_1=$LINENO ! as_lineno_2=$LINENO ! as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` ! test "x$as_lineno_1" != "x$as_lineno_2" && ! test "x$as_lineno_3" = "x$as_lineno_2" || { ! # Find who we are. Look in the path if we contain no path at all ! # relative or not. ! case $0 in ! *[\\/]* ) as_myself=$0 ;; ! *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break ! done ! ;; ! esac ! # We did not find ourselves, most probably we were run as `sh COMMAND' ! # in which case we are not to be found in the path. ! if test "x$as_myself" = x; then ! as_myself=$0 ! fi ! if test ! -f "$as_myself"; then ! { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 ! { (exit 1); exit 1; }; } ! fi ! case $CONFIG_SHELL in ! '') ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for as_base in sh bash ksh sh5; do ! case $as_dir in ! /*) ! if ("$as_dir/$as_base" -c ' ! as_lineno_1=$LINENO ! as_lineno_2=$LINENO ! as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` ! test "x$as_lineno_1" != "x$as_lineno_2" && ! test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then ! $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } ! $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } ! CONFIG_SHELL=$as_dir/$as_base ! export CONFIG_SHELL ! exec "$CONFIG_SHELL" "$0" ${1+"$@"} ! fi;; ! esac ! done ! done ! ;; ! esac ! ! # Create $as_me.lineno as a copy of $as_myself, but with $LINENO ! # uniformly replaced by the line number. The first 'sed' inserts a ! # line-number line before each line; the second 'sed' does the real ! # work. The second script uses 'N' to pair each line-number line ! # with the numbered line, and appends trailing '-' during ! # substitution so that $LINENO is not a special case at line end. ! # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the ! # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) ! sed '=' <$as_myself | ! sed ' ! N ! s,$,-, ! : loop ! s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, ! t loop ! s,-$,, ! s,^['$as_cr_digits']*\n,, ! ' >$as_me.lineno && ! chmod +x $as_me.lineno || ! { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 ! { (exit 1); exit 1; }; } ! ! # Don't try to exec as it changes $[0], causing all sort of problems ! # (the dirname of $[0] is not the place where we might find the ! # original and so on. Autoconf is especially sensible to this). ! . ./$as_me.lineno ! # Exit status is that of the last command. ! exit ! } ! ! ! case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in ! *c*,-n*) ECHO_N= ECHO_C=' ! ' ECHO_T=' ' ;; ! *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; ! *) ECHO_N= ECHO_C='\c' ECHO_T= ;; ! esac if expr a : '\(a\)' >/dev/null 2>&1; then *************** *** 59,80 **** rm -f conf$$ conf$$.exe conf$$.file ! as_executable_p="test -f" ! ! # Support unset when possible. ! if (FOO=FOO; unset FOO) >/dev/null 2>&1; then ! as_unset=unset else ! as_unset=false fi ! # NLS nuisances. ! $as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; } ! $as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; } ! $as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; } ! $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; } ! $as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; } ! $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; } ! $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; } ! $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; } # IFS --- 219,236 ---- rm -f conf$$ conf$$.exe conf$$.file ! if mkdir -p . 2>/dev/null; then ! as_mkdir_p=: else ! as_mkdir_p=false fi ! as_executable_p="test -f" ! ! # Sed expression to map a string onto a valid CPP name. ! as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" ! ! # Sed expression to map a string onto a valid variable name. ! as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" ! # IFS *************** *** 85,89 **** # CDPATH. ! $as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; } # Name of the host. --- 241,246 ---- # CDPATH. ! $as_unset CDPATH ! # Name of the host. *************** *** 98,104 **** # ac_default_prefix=/usr/local cross_compiling=no subdirs= ! MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} --- 255,263 ---- # ac_default_prefix=/usr/local + ac_config_libobj_dir=. cross_compiling=no subdirs= ! MFLAGS= ! MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} *************** *** 108,111 **** --- 267,277 ---- : ${ac_max_here_lines=38} + # Identity of this package. + PACKAGE_NAME='readline' + PACKAGE_TARNAME='readline' + PACKAGE_VERSION='5.0-rc1' + PACKAGE_STRING='readline 5.0-rc1' + PACKAGE_BUGREPORT='bug-readline@gnu.org' + ac_unique_file="readline.h" # Factoring default headers for most tests. *************** *** 146,149 **** --- 312,318 ---- #endif" + ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR RANLIB ac_ct_RANLIB MAKE_SHELL SHOBJ_CC SHOBJ_CFLAGS SHOBJ_LD SHOBJ_LDFLAGS SHOBJ_XLDFLAGS SHOBJ_LIBS SHOBJ_STATUS SHLIB_STATUS SHLIB_XLDFLAGS SHLIB_LIBSUFF SHLIB_LIBVERSION SHLIB_LIBS SHLIB_MAJOR SHLIB_MINOR STATIC_TARGET SHARED_TARGET STATIC_INSTALL_TARGET SHARED_INSTALL_TARGET BUILD_DIR LOCAL_CFLAGS LOCAL_LDFLAGS LOCAL_DEFS ARFLAGS LIBVERSION TERMCAP_LIB LIBOBJS LTLIBOBJS' + ac_subst_files='' + # Initialize some variables set by options. ac_init_help= *************** *** 184,194 **** mandir='${prefix}/man' - # Identity of this package. - PACKAGE_NAME='readline' - PACKAGE_TARNAME='readline' - PACKAGE_VERSION='4.3' - PACKAGE_STRING='readline 4.3' - PACKAGE_BUGREPORT='bug-readline@gnu.org' - ac_prev= for ac_option --- 353,356 ---- *************** *** 323,327 **** -no-create | --no-create | --no-creat | --no-crea | --no-cre \ ! | --no-cr | --no-c) no_create=yes ;; --- 485,489 ---- -no-create | --no-create | --no-creat | --no-crea | --no-cre \ ! | --no-cr | --no-c | -n) no_create=yes ;; *************** *** 502,506 **** case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; ! *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac --- 664,668 ---- case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; ! *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac *************** *** 514,518 **** case $ac_val in [\\/$]* | ?:[\\/]* ) ;; ! *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac --- 676,680 ---- case $ac_val in [\\/$]* | ?:[\\/]* ) ;; ! *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac *************** *** 521,529 **** # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. build=$build_alias host=$host_alias target=$target_alias ! # FIXME: should be removed in autoconf 3.0. if test "x$host_alias" != x; then if test "x$build_alias" = x; then --- 683,692 ---- # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. + # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias ! # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then *************** *** 541,551 **** test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ! ac_prog=$0 ! ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'` ! test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then --- 704,724 ---- test "$silent" = yes && exec 6>/dev/null + # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ! ac_confdir=`(dirname "$0") 2>/dev/null || ! $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$0" : 'X\(//\)[^/]' \| \ ! X"$0" : 'X\(//\)$' \| \ ! X"$0" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || ! echo X"$0" | ! sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ! /^X\(\/\/\)[^/].*/{ s//\1/; q; } ! /^X\(\/\/\)$/{ s//\1/; q; } ! /^X\(\/\).*/{ s//\1/; q; } ! s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then *************** *** 557,567 **** if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then ! { echo "$as_me: error: cannot find sources in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else ! { echo "$as_me: error: cannot find sources in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} --- 730,743 ---- if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then ! { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else ! { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi + (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 + { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} *************** *** 604,609 **** # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. ! cat <. ! EOF fi --- 872,876 ---- Report bugs to . ! _ACEOF fi *************** *** 701,732 **** # If there are subdirs, report their specific --help. ac_popdir=`pwd` ! for ac_subdir in : $ac_subdirs_all; do test "x$ac_subdir" = x: && continue ! cd $ac_subdir ! # A "../" for each directory in /$ac_subdir. ! ac_dots=`echo $ac_subdir | ! sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` ! ! case $srcdir in ! .) # No --srcdir option. We are building in place. ! ac_sub_srcdir=$srcdir ;; ! [\\/]* | ?:[\\/]* ) # Absolute path. ! ac_sub_srcdir=$srcdir/$ac_subdir ;; ! *) # Relative path. ! ac_sub_srcdir=$ac_dots$srcdir/$ac_subdir ;; ! esac # Check for guested configure; otherwise get Cygnus style configure. ! if test -f $ac_sub_srcdir/configure.gnu; then echo ! $SHELL $ac_sub_srcdir/configure.gnu --help=recursive ! elif test -f $ac_sub_srcdir/configure; then echo ! $SHELL $ac_sub_srcdir/configure --help=recursive ! elif test -f $ac_sub_srcdir/configure.ac || ! test -f $ac_sub_srcdir/configure.in; then echo $ac_configure --help else ! echo "$as_me: WARNING: no configuration information is in $ac_subdir" >&2 fi cd $ac_popdir --- 878,929 ---- # If there are subdirs, report their specific --help. ac_popdir=`pwd` ! for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue ! test -d $ac_dir || continue ! ac_builddir=. ! ! if test "$ac_dir" != .; then ! ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` ! # A "../" for each directory in $ac_dir_suffix. ! ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` ! else ! ac_dir_suffix= ac_top_builddir= ! fi ! ! case $srcdir in ! .) # No --srcdir option. We are building in place. ! ac_srcdir=. ! if test -z "$ac_top_builddir"; then ! ac_top_srcdir=. ! else ! ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` ! fi ;; ! [\\/]* | ?:[\\/]* ) # Absolute path. ! ac_srcdir=$srcdir$ac_dir_suffix; ! ac_top_srcdir=$srcdir ;; ! *) # Relative path. ! ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ! ac_top_srcdir=$ac_top_builddir$srcdir ;; ! esac ! # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be ! # absolute. ! ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` ! ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ! ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. ! if test -f $ac_srcdir/configure.gnu; then echo ! $SHELL $ac_srcdir/configure.gnu --help=recursive ! elif test -f $ac_srcdir/configure; then echo ! $SHELL $ac_srcdir/configure --help=recursive ! elif test -f $ac_srcdir/configure.ac || ! test -f $ac_srcdir/configure.in; then echo $ac_configure --help else ! echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir *************** *** 736,766 **** test -n "$ac_init_help" && exit 0 if $ac_init_version; then ! cat <<\EOF ! readline configure 4.3 ! generated by GNU Autoconf 2.52 ! Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. ! EOF exit 0 fi exec 5>config.log ! cat >&5 </dev/null | sed 1q` --- 933,963 ---- test -n "$ac_init_help" && exit 0 if $ac_init_version; then ! cat <<\_ACEOF ! readline configure 5.0-rc1 ! generated by GNU Autoconf 2.57 ! Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. ! _ACEOF exit 0 fi exec 5>config.log ! cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. ! It was created by readline $as_me 5.0-rc1, which was ! generated by GNU Autoconf 2.57. Invocation command line was $ $0 $@ ! _ACEOF { cat <<_ASUNAME ! ## --------- ## ! ## Platform. ## ! ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` *************** *** 781,829 **** /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - PATH = $PATH - _ASUNAME } >&5 ! cat >&5 <\?\"\']*) ! ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ! ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" ! ac_sep=" " ;; ! *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg" ! ac_sep=" " ;; ! esac ! # Get rid of the leading space. done # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. trap 'exit_status=$? # Save into config.log some information that might help in debugging. ! echo >&5 ! echo "## ----------------- ##" >&5 ! echo "## Cache variables. ##" >&5 ! echo "## ----------------- ##" >&5 ! echo >&5 ! # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | --- 978,1071 ---- /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME + + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + for as_dir in $PATH + do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" + done + } >&5 ! cat >&5 <<_ACEOF ! ! ! ## ----------- ## ! ## Core tests. ## ! ## ----------- ## ! ! _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. + # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. + # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= + ac_configure_args0= + ac_configure_args1= ac_sep= ! ac_must_keep_next=false ! for ac_pass in 1 2 do ! for ac_arg ! do ! case $ac_arg in ! -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; ! -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ! | -silent | --silent | --silen | --sile | --sil) ! continue ;; ! *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ! ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; ! esac ! case $ac_pass in ! 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; ! 2) ! ac_configure_args1="$ac_configure_args1 '$ac_arg'" ! if test $ac_must_keep_next = true; then ! ac_must_keep_next=false # Got value, back to normal. ! else ! case $ac_arg in ! *=* | --config-cache | -C | -disable-* | --disable-* \ ! | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ ! | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ ! | -with-* | --with-* | -without-* | --without-* | --x) ! case "$ac_configure_args0 " in ! "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; ! esac ! ;; ! -* ) ac_must_keep_next=true ;; ! esac ! fi ! ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" ! # Get rid of the leading space. ! ac_sep=" " ! ;; ! esac ! done done + $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } + $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. + # WARNING: Be sure not to use single quotes in there, as some shells, + # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. ! { ! echo ! ! cat <<\_ASBOX ! ## ---------------- ## ! ## Cache variables. ## ! ## ---------------- ## ! _ASBOX ! echo ! # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | *************** *** 839,857 **** ;; esac; ! } >&5 ! sed "/^$/d" confdefs.h >conftest.log ! if test -s conftest.log; then ! echo >&5 ! echo "## ------------ ##" >&5 ! echo "## confdefs.h. ##" >&5 ! echo "## ------------ ##" >&5 ! echo >&5 ! cat conftest.log >&5 ! fi ! (echo; echo) >&5 ! test "$ac_signal" != 0 && ! echo "$as_me: caught signal $ac_signal" >&5 ! echo "$as_me: exit $exit_status" >&5 ! rm -rf conftest* confdefs* core core.* *.core conf$$* $ac_clean_files && exit $exit_status ' 0 --- 1081,1131 ---- ;; esac; ! } ! echo ! ! cat <<\_ASBOX ! ## ----------------- ## ! ## Output variables. ## ! ## ----------------- ## ! _ASBOX ! echo ! for ac_var in $ac_subst_vars ! do ! eval ac_val=$`echo $ac_var` ! echo "$ac_var='"'"'$ac_val'"'"'" ! done | sort ! echo ! ! if test -n "$ac_subst_files"; then ! cat <<\_ASBOX ! ## ------------- ## ! ## Output files. ## ! ## ------------- ## ! _ASBOX ! echo ! for ac_var in $ac_subst_files ! do ! eval ac_val=$`echo $ac_var` ! echo "$ac_var='"'"'$ac_val'"'"'" ! done | sort ! echo ! fi ! ! if test -s confdefs.h; then ! cat <<\_ASBOX ! ## ----------- ## ! ## confdefs.h. ## ! ## ----------- ## ! _ASBOX ! echo ! sed "/^$/d" confdefs.h | sort ! echo ! fi ! test "$ac_signal" != 0 && ! echo "$as_me: caught signal $ac_signal" ! echo "$as_me: exit $exit_status" ! } >&5 ! rm -f core core.* *.core && ! rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 *************** *** 866,869 **** --- 1140,1170 ---- echo >confdefs.h + # Predefined preprocessor variables. + + cat >>confdefs.h <<_ACEOF + #define PACKAGE_NAME "$PACKAGE_NAME" + _ACEOF + + + cat >>confdefs.h <<_ACEOF + #define PACKAGE_TARNAME "$PACKAGE_TARNAME" + _ACEOF + + + cat >>confdefs.h <<_ACEOF + #define PACKAGE_VERSION "$PACKAGE_VERSION" + _ACEOF + + + cat >>confdefs.h <<_ACEOF + #define PACKAGE_STRING "$PACKAGE_STRING" + _ACEOF + + + cat >>confdefs.h <<_ACEOF + #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" + _ACEOF + + # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. *************** *** 877,883 **** for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then ! { echo "$as_me:879: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} ! cat "$ac_site_file" >&5 . "$ac_site_file" fi --- 1178,1184 ---- for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then ! { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} ! sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi *************** *** 888,892 **** # files actually), so we avoid doing that. if test -f "$cache_file"; then ! { echo "$as_me:890: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in --- 1189,1193 ---- # files actually), so we avoid doing that. if test -f "$cache_file"; then ! { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in *************** *** 896,900 **** fi else ! { echo "$as_me:898: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file --- 1197,1201 ---- fi else ! { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file *************** *** 912,920 **** case $ac_old_set,$ac_new_set in set,) ! { echo "$as_me:914: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) ! { echo "$as_me:918: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; --- 1213,1221 ---- case $ac_old_set,$ac_new_set in set,) ! { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) ! { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; *************** *** 922,951 **** *) if test "x$ac_old_val" != "x$ac_new_val"; then ! { echo "$as_me:924: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ! { echo "$as_me:926: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} ! { echo "$as_me:928: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac ! # Pass precious variables to config.status. It doesn't matter if ! # we pass some twice (in addition to the command line arguments). if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ! ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ! ac_configure_args="$ac_configure_args '$ac_arg'" ! ;; ! *) ac_configure_args="$ac_configure_args $ac_var=$ac_new_val" ! ;; esac fi done if $ac_cache_corrupted; then ! { echo "$as_me:947: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} ! { { echo "$as_me:949: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } --- 1223,1252 ---- *) if test "x$ac_old_val" != "x$ac_new_val"; then ! { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ! { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} ! { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac ! # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ! ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; ! *) ac_arg=$ac_var=$ac_new_val ;; ! esac ! case " $ac_configure_args " in ! *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. ! *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then ! { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} ! { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } *************** *** 958,981 **** ac_compiler_gnu=$ac_cv_c_compiler_gnu ! case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in ! *c*,-n*) ECHO_N= ECHO_C=' ! ' ECHO_T=' ' ;; ! *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; ! *) ECHO_N= ECHO_C='\c' ECHO_T= ;; ! esac ! echo "#! $SHELL" >conftest.sh ! echo "exit 0" >>conftest.sh ! chmod +x conftest.sh ! if { (echo "$as_me:969: PATH=\".;.\"; conftest.sh") >&5 ! (PATH=".;."; conftest.sh) 2>&5 ! ac_status=$? ! echo "$as_me:972: \$? = $ac_status" >&5 ! (exit $ac_status); }; then ! ac_path_separator=';' ! else ! ac_path_separator=: ! fi ! PATH_SEPARATOR="$ac_path_separator" ! rm -f conftest.sh ac_aux_dir= --- 1259,1291 ---- ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ac_aux_dir= *************** *** 996,1000 **** done if test -z "$ac_aux_dir"; then ! { { echo "$as_me:998: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&5 echo "$as_me: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&2;} { (exit 1); exit 1; }; } --- 1306,1310 ---- done if test -z "$ac_aux_dir"; then ! { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&5 echo "$as_me: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&2;} { (exit 1); exit 1; }; } *************** *** 1004,1018 **** ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. ! ac_config_headers="$ac_config_headers config.h" ! LIBVERSION=4.3 # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || ! { { echo "$as_me:1012: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } ! echo "$as_me:1016: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then --- 1314,1329 ---- ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. ! ac_config_headers="$ac_config_headers config.h" ! ! LIBVERSION=5.0 # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || ! { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } ! echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then *************** *** 1023,1036 **** ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && ! { { echo "$as_me:1025: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || ! { { echo "$as_me:1029: error: $ac_config_sub $ac_cv_build_alias failed." >&5 ! echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;} { (exit 1); exit 1; }; } fi ! echo "$as_me:1034: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build --- 1334,1347 ---- ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && ! { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || ! { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 ! echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi ! echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build *************** *** 1039,1043 **** build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` ! echo "$as_me:1041: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then --- 1350,1355 ---- build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` ! ! echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then *************** *** 1048,1057 **** ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || ! { { echo "$as_me:1050: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi ! echo "$as_me:1055: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host --- 1360,1369 ---- ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || ! { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi ! echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host *************** *** 1060,1065 **** --- 1372,1380 ---- host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + + opt_curses=no + # Check whether --with-curses or --without-curses was given. if test "${with_curses+set}" = set; then *************** *** 1072,1078 **** --- 1387,1399 ---- fi + opt_multibyte=yes opt_static_libs=yes opt_shared_libs=yes + # Check whether --enable-multibyte or --disable-multibyte was given. + if test "${enable_multibyte+set}" = set; then + enableval="$enable_multibyte" + opt_multibyte=$enableval + fi; # Check whether --enable-shared or --disable-shared was given. if test "${enable_shared+set}" = set; then *************** *** 1086,1089 **** --- 1407,1417 ---- fi; + if test $opt_multibyte = no; then + cat >>confdefs.h <<\_ACEOF + #define NO_MULTIBYTE_SUPPORT 1 + _ACEOF + + fi + echo "" echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_vendor}-${host_os}" *************** *** 1093,1106 **** test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1 ! echo "$as_me:1095: checking whether ${MAKE-make} sets \${MAKE}" >&5 ! echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! cat >conftest.make <<\EOF all: ! @echo 'ac_maketemp="${MAKE}"' ! EOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` --- 1421,1434 ---- test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1 ! echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 ! echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! cat >conftest.make <<\_ACEOF all: ! @echo 'ac_maketemp="$(MAKE)"' ! _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` *************** *** 1113,1121 **** fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then ! echo "$as_me:1115: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else ! echo "$as_me:1119: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" --- 1441,1449 ---- fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then ! echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else ! echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" *************** *** 1130,1134 **** # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 ! echo "$as_me:1132: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then --- 1458,1462 ---- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 ! echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then *************** *** 1138,1150 **** ac_cv_prog_CC="$CC" # Let the user override the test. else ! ac_save_IFS=$IFS; IFS=$ac_path_separator ! ac_dummy="$PATH" ! for ac_dir in $ac_dummy; do ! IFS=$ac_save_IFS ! test -z "$ac_dir" && ac_dir=. ! $as_executable_p "$ac_dir/$ac_word" || continue ! ac_cv_prog_CC="${ac_tool_prefix}gcc" ! echo "$as_me:1147: found $ac_dir/$ac_word" >&5 ! break done --- 1466,1481 ---- ac_cv_prog_CC="$CC" # Let the user override the test. else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_CC="${ac_tool_prefix}gcc" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done done *************** *** 1153,1160 **** CC=$ac_cv_prog_CC if test -n "$CC"; then ! echo "$as_me:1155: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else ! echo "$as_me:1158: result: no" >&5 echo "${ECHO_T}no" >&6 fi --- 1484,1491 ---- CC=$ac_cv_prog_CC if test -n "$CC"; then ! echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else ! echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi *************** *** 1165,1169 **** # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 ! echo "$as_me:1167: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then --- 1496,1500 ---- # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 ! echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then *************** *** 1173,1185 **** ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else ! ac_save_IFS=$IFS; IFS=$ac_path_separator ! ac_dummy="$PATH" ! for ac_dir in $ac_dummy; do ! IFS=$ac_save_IFS ! test -z "$ac_dir" && ac_dir=. ! $as_executable_p "$ac_dir/$ac_word" || continue ! ac_cv_prog_ac_ct_CC="gcc" ! echo "$as_me:1182: found $ac_dir/$ac_word" >&5 ! break done --- 1504,1519 ---- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_ac_ct_CC="gcc" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done done *************** *** 1188,1195 **** ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then ! echo "$as_me:1190: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else ! echo "$as_me:1193: result: no" >&5 echo "${ECHO_T}no" >&6 fi --- 1522,1529 ---- ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then ! echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else ! echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi *************** *** 1204,1208 **** # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 ! echo "$as_me:1206: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then --- 1538,1542 ---- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 ! echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then *************** *** 1212,1224 **** ac_cv_prog_CC="$CC" # Let the user override the test. else ! ac_save_IFS=$IFS; IFS=$ac_path_separator ! ac_dummy="$PATH" ! for ac_dir in $ac_dummy; do ! IFS=$ac_save_IFS ! test -z "$ac_dir" && ac_dir=. ! $as_executable_p "$ac_dir/$ac_word" || continue ! ac_cv_prog_CC="${ac_tool_prefix}cc" ! echo "$as_me:1221: found $ac_dir/$ac_word" >&5 ! break done --- 1546,1561 ---- ac_cv_prog_CC="$CC" # Let the user override the test. else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_CC="${ac_tool_prefix}cc" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done done *************** *** 1227,1234 **** CC=$ac_cv_prog_CC if test -n "$CC"; then ! echo "$as_me:1229: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else ! echo "$as_me:1232: result: no" >&5 echo "${ECHO_T}no" >&6 fi --- 1564,1571 ---- CC=$ac_cv_prog_CC if test -n "$CC"; then ! echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else ! echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi *************** *** 1239,1243 **** # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 ! echo "$as_me:1241: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then --- 1576,1580 ---- # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 ! echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then *************** *** 1247,1259 **** ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else ! ac_save_IFS=$IFS; IFS=$ac_path_separator ! ac_dummy="$PATH" ! for ac_dir in $ac_dummy; do ! IFS=$ac_save_IFS ! test -z "$ac_dir" && ac_dir=. ! $as_executable_p "$ac_dir/$ac_word" || continue ! ac_cv_prog_ac_ct_CC="cc" ! echo "$as_me:1256: found $ac_dir/$ac_word" >&5 ! break done --- 1584,1599 ---- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_ac_ct_CC="cc" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done done *************** *** 1262,1269 **** ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then ! echo "$as_me:1264: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else ! echo "$as_me:1267: result: no" >&5 echo "${ECHO_T}no" >&6 fi --- 1602,1609 ---- ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then ! echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else ! echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi *************** *** 1278,1282 **** # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 ! echo "$as_me:1280: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then --- 1618,1622 ---- # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 ! echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then *************** *** 1287,1303 **** else ac_prog_rejected=no ! ac_save_IFS=$IFS; IFS=$ac_path_separator ! ac_dummy="$PATH" ! for ac_dir in $ac_dummy; do ! IFS=$ac_save_IFS ! test -z "$ac_dir" && ac_dir=. ! $as_executable_p "$ac_dir/$ac_word" || continue ! if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then ! ac_prog_rejected=yes ! continue ! fi ! ac_cv_prog_CC="cc" ! echo "$as_me:1300: found $ac_dir/$ac_word" >&5 ! break done --- 1627,1646 ---- else ac_prog_rejected=no ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ! ac_prog_rejected=yes ! continue ! fi ! ac_cv_prog_CC="cc" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done done *************** *** 1311,1317 **** # first if we set CC to just the basename; use the full file name. shift ! set dummy "$ac_dir/$ac_word" ${1+"$@"} ! shift ! ac_cv_prog_CC="$@" fi fi --- 1654,1658 ---- # first if we set CC to just the basename; use the full file name. shift ! ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi *************** *** 1320,1327 **** CC=$ac_cv_prog_CC if test -n "$CC"; then ! echo "$as_me:1322: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else ! echo "$as_me:1325: result: no" >&5 echo "${ECHO_T}no" >&6 fi --- 1661,1668 ---- CC=$ac_cv_prog_CC if test -n "$CC"; then ! echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else ! echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi *************** *** 1334,1338 **** # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 ! echo "$as_me:1336: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then --- 1675,1679 ---- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 ! echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then *************** *** 1342,1354 **** ac_cv_prog_CC="$CC" # Let the user override the test. else ! ac_save_IFS=$IFS; IFS=$ac_path_separator ! ac_dummy="$PATH" ! for ac_dir in $ac_dummy; do ! IFS=$ac_save_IFS ! test -z "$ac_dir" && ac_dir=. ! $as_executable_p "$ac_dir/$ac_word" || continue ! ac_cv_prog_CC="$ac_tool_prefix$ac_prog" ! echo "$as_me:1351: found $ac_dir/$ac_word" >&5 ! break done --- 1683,1698 ---- ac_cv_prog_CC="$CC" # Let the user override the test. else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_CC="$ac_tool_prefix$ac_prog" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done done *************** *** 1357,1364 **** CC=$ac_cv_prog_CC if test -n "$CC"; then ! echo "$as_me:1359: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else ! echo "$as_me:1362: result: no" >&5 echo "${ECHO_T}no" >&6 fi --- 1701,1708 ---- CC=$ac_cv_prog_CC if test -n "$CC"; then ! echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else ! echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi *************** *** 1373,1377 **** # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 ! echo "$as_me:1375: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then --- 1717,1721 ---- # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 ! echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then *************** *** 1381,1393 **** ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else ! ac_save_IFS=$IFS; IFS=$ac_path_separator ! ac_dummy="$PATH" ! for ac_dir in $ac_dummy; do ! IFS=$ac_save_IFS ! test -z "$ac_dir" && ac_dir=. ! $as_executable_p "$ac_dir/$ac_word" || continue ! ac_cv_prog_ac_ct_CC="$ac_prog" ! echo "$as_me:1390: found $ac_dir/$ac_word" >&5 ! break done --- 1725,1740 ---- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_ac_ct_CC="$ac_prog" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done done *************** *** 1396,1403 **** ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then ! echo "$as_me:1398: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else ! echo "$as_me:1401: result: no" >&5 echo "${ECHO_T}no" >&6 fi --- 1743,1750 ---- ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then ! echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else ! echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi *************** *** 1411,1441 **** fi ! test -z "$CC" && { { echo "$as_me:1413: error: no acceptable cc found in \$PATH" >&5 ! echo "$as_me: error: no acceptable cc found in \$PATH" >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. ! echo "$as_me:1418:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` ! { (eval echo "$as_me:1421: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? ! echo "$as_me:1424: \$? = $ac_status" >&5 (exit $ac_status); } ! { (eval echo "$as_me:1426: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? ! echo "$as_me:1429: \$? = $ac_status" >&5 (exit $ac_status); } ! { (eval echo "$as_me:1431: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? ! echo "$as_me:1434: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF ! #line 1438 "configure" ! #include "confdefs.h" int --- 1758,1795 ---- fi ! ! test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH ! See \`config.log' for more details." >&5 ! echo "$as_me: error: no acceptable C compiler found in \$PATH ! See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. ! echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` ! { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } ! { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } ! { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int *************** *** 1448,1496 **** _ACEOF ac_clean_files_save=$ac_clean_files ! ac_clean_files="$ac_clean_files a.out a.exe" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. ! echo "$as_me:1454: checking for C compiler default output" >&5 echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` ! if { (eval echo "$as_me:1457: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? ! echo "$as_me:1460: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. ! for ac_file in `ls a.exe conftest.exe 2>/dev/null; ! ls a.out conftest 2>/dev/null; ! ls a.* conftest.* 2>/dev/null`; do case $ac_file in ! *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;; ! a.out ) # We found the default executable, but exeext='' is most ! # certainly right. ! break;; ! *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ! # FIXME: I believe we export ac_cv_exeext for Libtool --akim. ! export ac_cv_exeext ! break;; ! * ) break;; esac done else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! { { echo "$as_me:1483: error: C compiler cannot create executables" >&5 ! echo "$as_me: error: C compiler cannot create executables" >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext ! echo "$as_me:1489: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. ! echo "$as_me:1494: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 --- 1802,1867 ---- _ACEOF ac_clean_files_save=$ac_clean_files ! ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. ! echo "$as_me:$LINENO: checking for C compiler default output" >&5 echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` ! if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. ! ! # Be careful to initialize this variable, since it used to be cached. ! # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ! ac_cv_exeext= ! # b.out is created by i960 compilers. ! for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out ! do ! test -f "$ac_file" || continue case $ac_file in ! *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ! ;; ! conftest.$ac_ext ) ! # This is the source file. ! ;; ! [ab].out ) ! # We found the default executable, but exeext='' is most ! # certainly right. ! break;; ! *.* ) ! ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ! # FIXME: I believe we export ac_cv_exeext for Libtool, ! # but it would be cool to find out if it's true. Does anybody ! # maintain Libtool? --akim. ! export ac_cv_exeext ! break;; ! * ) ! break;; esac done else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! { { echo "$as_me:$LINENO: error: C compiler cannot create executables ! See \`config.log' for more details." >&5 ! echo "$as_me: error: C compiler cannot create executables ! See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext ! echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. ! echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 *************** *** 1498,1505 **** if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' ! { (eval echo "$as_me:1500: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:1503: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no --- 1869,1876 ---- if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no *************** *** 1508,1537 **** cross_compiling=yes else ! { { echo "$as_me:1510: error: cannot run C compiled programs. ! If you meant to cross compile, use \`--host'." >&5 echo "$as_me: error: cannot run C compiled programs. ! If you meant to cross compile, use \`--host'." >&2;} { (exit 1); exit 1; }; } fi fi fi ! echo "$as_me:1518: result: yes" >&5 echo "${ECHO_T}yes" >&6 ! rm -f a.out a.exe conftest$ac_cv_exeext ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. ! echo "$as_me:1525: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 ! echo "$as_me:1527: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 ! echo "$as_me:1530: checking for executable suffix" >&5 ! echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6 ! if { (eval echo "$as_me:1532: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:1535: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) --- 1879,1910 ---- cross_compiling=yes else ! { { echo "$as_me:$LINENO: error: cannot run C compiled programs. ! If you meant to cross compile, use \`--host'. ! See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. ! If you meant to cross compile, use \`--host'. ! See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi ! echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 ! rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. ! echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 ! echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 ! echo "$as_me:$LINENO: checking for suffix of executables" >&5 ! echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) *************** *** 1539,1545 **** # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. ! for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do case $ac_file in ! *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext --- 1912,1919 ---- # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. ! for ac_file in conftest.exe conftest conftest.*; do ! test -f "$ac_file" || continue case $ac_file in ! *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext *************** *** 1549,1559 **** done else ! { { echo "$as_me:1551: error: cannot compute EXEEXT: cannot compile and link" >&5 ! echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext ! echo "$as_me:1557: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 --- 1923,1935 ---- done else ! { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link ! See \`config.log' for more details." >&5 ! echo "$as_me: error: cannot compute suffix of executables: cannot compile and link ! See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext ! echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 *************** *** 1561,1572 **** EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT ! echo "$as_me:1563: checking for object suffix" >&5 ! echo $ECHO_N "checking for object suffix... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line 1569 "configure" ! #include "confdefs.h" int --- 1937,1952 ---- EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT ! echo "$as_me:$LINENO: checking for suffix of object files" >&5 ! echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int *************** *** 1579,1590 **** _ACEOF rm -f conftest.o conftest.obj ! if { (eval echo "$as_me:1581: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:1584: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in ! *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; --- 1959,1970 ---- _ACEOF rm -f conftest.o conftest.obj ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in ! *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; *************** *** 1593,1599 **** else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! { { echo "$as_me:1596: error: cannot compute OBJEXT: cannot compile" >&5 ! echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;} { (exit 1); exit 1; }; } fi --- 1973,1982 ---- else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile ! See \`config.log' for more details." >&5 ! echo "$as_me: error: cannot compute suffix of object files: cannot compile ! See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi *************** *** 1601,1609 **** rm -f conftest.$ac_cv_objext conftest.$ac_ext fi ! echo "$as_me:1603: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT ! echo "$as_me:1607: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then --- 1984,1992 ---- rm -f conftest.$ac_cv_objext conftest.$ac_ext fi ! echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT ! echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then *************** *** 1611,1616 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 1613 "configure" ! #include "confdefs.h" int --- 1994,2003 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int *************** *** 1626,1644 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:1628: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:1631: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:1634: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:1637: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_compiler_gnu=no fi --- 2013,2032 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_compiler_gnu=no fi *************** *** 1647,1651 **** fi ! echo "$as_me:1649: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` --- 2035,2039 ---- fi ! echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` *************** *** 1653,1657 **** ac_save_CFLAGS=$CFLAGS CFLAGS="-g" ! echo "$as_me:1655: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then --- 2041,2045 ---- ac_save_CFLAGS=$CFLAGS CFLAGS="-g" ! echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then *************** *** 1659,1664 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 1661 "configure" ! #include "confdefs.h" int --- 2047,2056 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int *************** *** 1671,1694 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:1673: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:1676: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:1679: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:1682: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:1692: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then --- 2063,2087 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_prog_cc_g=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then *************** *** 1707,1710 **** --- 2100,2199 ---- fi fi + echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 + echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 + if test "${ac_cv_prog_cc_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_cv_prog_cc_stdc=no + ac_save_CC=$CC + cat >conftest.$ac_ext <<_ACEOF + #line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + #include + #include + #include + #include + /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ + struct buf { int x; }; + FILE * (*rcsopen) (struct buf *, struct stat *, int); + static char *e (p, i) + char **p; + int i; + { + return p[i]; + } + static char *f (char * (*g) (char **, int), char **p, ...) + { + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; + } + int test (int i, double x); + struct s1 {int (*f) (int a);}; + struct s2 {int (*f) (double a);}; + int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); + int argc; + char **argv; + int + main () + { + return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; + } + _ACEOF + # Don't try gcc -ansi; that turns off useful extensions and + # breaks some systems' header files. + # AIX -qlanglvl=ansi + # Ultrix and OSF/1 -std1 + # HP-UX 10.20 and later -Ae + # HP-UX older versions -Aa -D_HPUX_SOURCE + # SVR4 -Xc -D__EXTENSIONS__ + for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" + do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_stdc=$ac_arg + break + else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + fi + rm -f conftest.$ac_objext + done + rm -f conftest.$ac_ext conftest.$ac_objext + CC=$ac_save_CC + + fi + + case "x$ac_cv_prog_cc_stdc" in + x|xno) + echo "$as_me:$LINENO: result: none needed" >&5 + echo "${ECHO_T}none needed" >&6 ;; + *) + echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 + echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 + CC="$CC $ac_cv_prog_cc_stdc" ;; + esac + # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler *************** *** 1717,1730 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:1719: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:1722: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:1725: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:1728: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ --- 2206,2219 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ *************** *** 1738,1743 **** do cat >conftest.$ac_ext <<_ACEOF ! #line 1740 "configure" ! #include "confdefs.h" #include $ac_declaration --- 2227,2236 ---- do cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include $ac_declaration *************** *** 1751,1775 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:1753: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:1756: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:1759: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:1762: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 continue fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF ! #line 1772 "configure" ! #include "confdefs.h" $ac_declaration int --- 2244,2273 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! continue fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ $ac_declaration int *************** *** 1782,1800 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:1784: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:1787: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:1790: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:1793: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext --- 2280,2299 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 1809,1813 **** else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 fi rm -f conftest.$ac_objext conftest.$ac_ext --- 2308,2313 ---- else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext conftest.$ac_ext *************** *** 1818,1821 **** --- 2318,2322 ---- ac_compiler_gnu=$ac_cv_c_compiler_gnu + ac_ext=c ac_cpp='$CPP $CPPFLAGS' *************** *** 1823,1827 **** ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ! echo "$as_me:1825: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. --- 2324,2328 ---- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ! echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. *************** *** 1841,1859 **** # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF ! #line 1846 "configure" ! #include "confdefs.h" ! #include Syntax error _ACEOF ! if { (eval echo "$as_me:1851: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:1857: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then --- 2342,2370 ---- # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif Syntax error _ACEOF ! if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then *************** *** 1869,1873 **** else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 # Broken: fails on valid input. continue --- 2380,2385 ---- else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! # Broken: fails on valid input. continue *************** *** 1878,1892 **** # can be detected and how. cat >conftest.$ac_ext <<_ACEOF ! #line 1880 "configure" ! #include "confdefs.h" #include _ACEOF ! if { (eval echo "$as_me:1884: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:1890: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then --- 2390,2408 ---- # can be detected and how. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include _ACEOF ! if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then *************** *** 1903,1907 **** else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: --- 2419,2424 ---- else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! # Passes both tests. ac_preproc_ok=: *************** *** 1925,1929 **** ac_cv_prog_CPP=$CPP fi ! echo "$as_me:1927: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false --- 2442,2446 ---- ac_cv_prog_CPP=$CPP fi ! echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false *************** *** 1932,1950 **** # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF ! #line 1937 "configure" ! #include "confdefs.h" ! #include Syntax error _ACEOF ! if { (eval echo "$as_me:1942: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:1948: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then --- 2449,2477 ---- # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif Syntax error _ACEOF ! if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then *************** *** 1960,1964 **** else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 # Broken: fails on valid input. continue --- 2487,2492 ---- else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! # Broken: fails on valid input. continue *************** *** 1969,1983 **** # can be detected and how. cat >conftest.$ac_ext <<_ACEOF ! #line 1971 "configure" ! #include "confdefs.h" #include _ACEOF ! if { (eval echo "$as_me:1975: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:1981: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then --- 2497,2515 ---- # can be detected and how. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include _ACEOF ! if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then *************** *** 1994,1998 **** else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: --- 2526,2531 ---- else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! # Passes both tests. ac_preproc_ok=: *************** *** 2007,2012 **** : else ! { { echo "$as_me:2009: error: C preprocessor \"$CPP\" fails sanity check" >&5 ! echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;} { (exit 1); exit 1; }; } fi --- 2540,2547 ---- : else ! { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check ! See \`config.log' for more details." >&5 ! echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check ! See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi *************** *** 2018,2180 **** ac_compiler_gnu=$ac_cv_c_compiler_gnu ! echo "$as_me:2020: checking for minix/config.h" >&5 ! echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6 ! if test "${ac_cv_header_minix_config_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! cat >conftest.$ac_ext <<_ACEOF ! #line 2026 "configure" ! #include "confdefs.h" ! #include ! _ACEOF ! if { (eval echo "$as_me:2030: \"$ac_cpp conftest.$ac_ext\"") >&5 ! (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ! ac_status=$? ! egrep -v '^ *\+' conftest.er1 >conftest.err ! rm -f conftest.er1 ! cat conftest.err >&5 ! echo "$as_me:2036: \$? = $ac_status" >&5 ! (exit $ac_status); } >/dev/null; then ! if test -s conftest.err; then ! ac_cpp_err=$ac_c_preproc_warn_flag ! else ! ac_cpp_err= ! fi ! else ! ac_cpp_err=yes ! fi ! if test -z "$ac_cpp_err"; then ! ac_cv_header_minix_config_h=yes ! else ! echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! ac_cv_header_minix_config_h=no ! fi ! rm -f conftest.err conftest.$ac_ext ! fi ! echo "$as_me:2055: result: $ac_cv_header_minix_config_h" >&5 ! echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6 ! if test $ac_cv_header_minix_config_h = yes; then ! MINIX=yes ! else ! MINIX= fi - if test "$MINIX" = yes; then ! cat >>confdefs.h <<\EOF ! #define _POSIX_SOURCE 1 ! EOF ! cat >>confdefs.h <<\EOF ! #define _POSIX_1_SOURCE 2 ! EOF ! cat >>confdefs.h <<\EOF ! #define _MINIX 1 ! EOF fi ! # If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS. ! test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O" ! ! if test $ac_cv_c_compiler_gnu = yes; then ! echo "$as_me:2083: checking whether $CC needs -traditional" >&5 ! echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6 ! if test "${ac_cv_prog_gcc_traditional+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! ac_pattern="Autoconf.*'x'" cat >conftest.$ac_ext <<_ACEOF ! #line 2090 "configure" ! #include "confdefs.h" ! #include ! Autoconf TIOCGETP _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! egrep "$ac_pattern" >/dev/null 2>&1; then ! ac_cv_prog_gcc_traditional=yes else ! ac_cv_prog_gcc_traditional=no fi rm -f conftest* ! if test $ac_cv_prog_gcc_traditional = no; then ! cat >conftest.$ac_ext <<_ACEOF ! #line 2105 "configure" ! #include "confdefs.h" ! #include ! Autoconf TCGETA _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! egrep "$ac_pattern" >/dev/null 2>&1; then ! ac_cv_prog_gcc_traditional=yes fi rm -f conftest* - fi - fi - echo "$as_me:2118: result: $ac_cv_prog_gcc_traditional" >&5 - echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6 - if test $ac_cv_prog_gcc_traditional = yes; then - CC="$CC -traditional" - fi fi ! # Find a good install program. We prefer a C program (faster), ! # so one script is as good as another. But avoid the broken or ! # incompatible versions: ! # SysV /etc/install, /usr/sbin/install ! # SunOS /usr/etc/install ! # IRIX /sbin/install ! # AIX /bin/install ! # AmigaOS /C/install, which installs bootblocks on floppy discs ! # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag ! # AFS /usr/afsws/bin/install, which mishandles nonexistent args ! # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ! # ./install, which can be erroneously created by make from ./install.sh. ! echo "$as_me:2137: checking for a BSD compatible install" >&5 ! echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6 ! if test -z "$INSTALL"; then ! if test "${ac_cv_path_install+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 else ! ac_save_IFS=$IFS; IFS=$ac_path_separator ! for ac_dir in $PATH; do ! IFS=$ac_save_IFS ! # Account for people who put trailing slashes in PATH elements. ! case $ac_dir/ in ! / | ./ | .// | /cC/* \ ! | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* \ ! | /usr/ucb/* ) ;; ! *) ! # OSF1 and SCO ODT 3.0 have their own names for install. ! # Don't use installbsd from OSF since it installs stuff as root ! # by default. ! for ac_prog in ginstall scoinst install; do ! if $as_executable_p "$ac_dir/$ac_prog"; then ! if test $ac_prog = install && ! grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then ! # AIX install. It has an incompatible calling convention. ! : ! elif test $ac_prog = install && ! grep pwplus "$ac_dir/$ac_prog" >/dev/null 2>&1; then ! # program-specific install script used by HP pwplus--don't use. ! : ! else ! ac_cv_path_install="$ac_dir/$ac_prog -c" ! break 2 ! fi ! fi ! done ! ;; ! esac ! done ! fi ! if test "${ac_cv_path_install+set}" = set; then ! INSTALL=$ac_cv_path_install ! else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will --- 2553,3064 ---- ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! echo "$as_me:$LINENO: checking for egrep" >&5 ! echo $ECHO_N "checking for egrep... $ECHO_C" >&6 ! if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! if echo a | (grep -E '(a|b)') >/dev/null 2>&1 ! then ac_cv_prog_egrep='grep -E' ! else ac_cv_prog_egrep='egrep' ! fi fi + echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 + echo "${ECHO_T}$ac_cv_prog_egrep" >&6 + EGREP=$ac_cv_prog_egrep ! echo "$as_me:$LINENO: checking for ANSI C header files" >&5 ! echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 ! if test "${ac_cv_header_stdc+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #include ! #include ! #include ! #include ! int ! main () ! { ! ; ! return 0; ! } ! _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! ac_cv_header_stdc=yes ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 + ac_cv_header_stdc=no fi + rm -f conftest.$ac_objext conftest.$ac_ext ! if test $ac_cv_header_stdc = yes; then ! # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #include ! _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! $EGREP "memchr" >/dev/null 2>&1; then ! : else ! ac_cv_header_stdc=no fi rm -f conftest* ! fi ! ! if test $ac_cv_header_stdc = yes; then ! # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #include ! _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! $EGREP "free" >/dev/null 2>&1; then ! : ! else ! ac_cv_header_stdc=no fi rm -f conftest* fi ! if test $ac_cv_header_stdc = yes; then ! # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. ! if test "$cross_compiling" = yes; then ! : else ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #include ! #if ((' ' & 0x0FF) == 0x020) ! # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') ! # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) ! #else ! # define ISLOWER(c) \ ! (('a' <= (c) && (c) <= 'i') \ ! || ('j' <= (c) && (c) <= 'r') \ ! || ('s' <= (c) && (c) <= 'z')) ! # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) ! #endif ! #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) ! int ! main () ! { ! int i; ! for (i = 0; i < 256; i++) ! if (XOR (islower (i), ISLOWER (i)) ! || toupper (i) != TOUPPER (i)) ! exit(2); ! exit (0); ! } ! _ACEOF ! rm -f conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! : ! else ! echo "$as_me: program exited with status $ac_status" >&5 ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ( exit $ac_status ) ! ac_cv_header_stdc=no ! fi ! rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ! fi ! fi ! fi ! echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 ! echo "${ECHO_T}$ac_cv_header_stdc" >&6 ! if test $ac_cv_header_stdc = yes; then ! ! cat >>confdefs.h <<\_ACEOF ! #define STDC_HEADERS 1 ! _ACEOF ! ! fi ! ! # On IRIX 5.3, sys/types and inttypes.h are conflicting. ! ! ! ! ! ! ! ! ! ! for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ ! inttypes.h stdint.h unistd.h ! do ! as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ! echo "$as_me:$LINENO: checking for $ac_header" >&5 ! echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 ! if eval "test \"\${$as_ac_Header+set}\" = set"; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! $ac_includes_default ! ! #include <$ac_header> ! _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! eval "$as_ac_Header=yes" ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! eval "$as_ac_Header=no" ! fi ! rm -f conftest.$ac_objext conftest.$ac_ext ! fi ! echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 ! echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ! if test `eval echo '${'$as_ac_Header'}'` = yes; then ! cat >>confdefs.h <<_ACEOF ! #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ! _ACEOF ! ! fi ! ! done ! ! ! if test "${ac_cv_header_minix_config_h+set}" = set; then ! echo "$as_me:$LINENO: checking for minix/config.h" >&5 ! echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6 ! if test "${ac_cv_header_minix_config_h+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! fi ! echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 ! echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6 ! else ! # Is the header compilable? ! echo "$as_me:$LINENO: checking minix/config.h usability" >&5 ! echo $ECHO_N "checking minix/config.h usability... $ECHO_C" >&6 ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! $ac_includes_default ! #include ! _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! ac_header_compiler=yes ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_header_compiler=no ! fi ! rm -f conftest.$ac_objext conftest.$ac_ext ! echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ! echo "${ECHO_T}$ac_header_compiler" >&6 ! ! # Is the header present? ! echo "$as_me:$LINENO: checking minix/config.h presence" >&5 ! echo $ECHO_N "checking minix/config.h presence... $ECHO_C" >&6 ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #include ! _ACEOF ! if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ! (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ! ac_status=$? ! grep -v '^ *+' conftest.er1 >conftest.err ! rm -f conftest.er1 ! cat conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } >/dev/null; then ! if test -s conftest.err; then ! ac_cpp_err=$ac_c_preproc_warn_flag ! else ! ac_cpp_err= ! fi ! else ! ac_cpp_err=yes ! fi ! if test -z "$ac_cpp_err"; then ! ac_header_preproc=yes ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_header_preproc=no ! fi ! rm -f conftest.err conftest.$ac_ext ! echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 ! echo "${ECHO_T}$ac_header_preproc" >&6 ! ! # So? What about this header? ! case $ac_header_compiler:$ac_header_preproc in ! yes:no ) ! { echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5 ! echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;} ! { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ! ;; ! no:yes ) ! { echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5 ! echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;} ! { echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5 ! echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;} ! { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 ! echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;} ! ( ! cat <<\_ASBOX ! ## ------------------------------------ ## ! ## Report this to bug-autoconf@gnu.org. ## ! ## ------------------------------------ ## ! _ASBOX ! ) | ! sed "s/^/$as_me: WARNING: /" >&2 ! ;; ! esac ! echo "$as_me:$LINENO: checking for minix/config.h" >&5 ! echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6 ! if test "${ac_cv_header_minix_config_h+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! ac_cv_header_minix_config_h=$ac_header_preproc ! fi ! echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 ! echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6 ! ! fi ! if test $ac_cv_header_minix_config_h = yes; then ! MINIX=yes ! else ! MINIX= ! fi ! ! ! if test "$MINIX" = yes; then ! ! cat >>confdefs.h <<\_ACEOF ! #define _POSIX_SOURCE 1 ! _ACEOF ! ! ! cat >>confdefs.h <<\_ACEOF ! #define _POSIX_1_SOURCE 2 ! _ACEOF ! ! ! cat >>confdefs.h <<\_ACEOF ! #define _MINIX 1 ! _ACEOF ! ! fi ! ! ! # If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS. ! test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O" ! ! if test $ac_cv_c_compiler_gnu = yes; then ! echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 ! echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6 ! if test "${ac_cv_prog_gcc_traditional+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! ac_pattern="Autoconf.*'x'" ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #include ! Autoconf TIOCGETP ! _ACEOF ! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! $EGREP "$ac_pattern" >/dev/null 2>&1; then ! ac_cv_prog_gcc_traditional=yes ! else ! ac_cv_prog_gcc_traditional=no ! fi ! rm -f conftest* ! ! ! if test $ac_cv_prog_gcc_traditional = no; then ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #include ! Autoconf TCGETA ! _ACEOF ! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! $EGREP "$ac_pattern" >/dev/null 2>&1; then ! ac_cv_prog_gcc_traditional=yes ! fi ! rm -f conftest* ! ! fi ! fi ! echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 ! echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6 ! if test $ac_cv_prog_gcc_traditional = yes; then ! CC="$CC -traditional" ! fi ! fi ! ! # Find a good install program. We prefer a C program (faster), ! # so one script is as good as another. But avoid the broken or ! # incompatible versions: ! # SysV /etc/install, /usr/sbin/install ! # SunOS /usr/etc/install ! # IRIX /sbin/install ! # AIX /bin/install ! # AmigaOS /C/install, which installs bootblocks on floppy discs ! # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag ! # AFS /usr/afsws/bin/install, which mishandles nonexistent args ! # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ! # ./install, which can be erroneously created by make from ./install.sh. ! echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 ! echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 ! if test -z "$INSTALL"; then ! if test "${ac_cv_path_install+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! # Account for people who put trailing slashes in PATH elements. ! case $as_dir/ in ! ./ | .// | /cC/* | \ ! /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ! /usr/ucb/* ) ;; ! *) ! # OSF1 and SCO ODT 3.0 have their own names for install. ! # Don't use installbsd from OSF since it installs stuff as root ! # by default. ! for ac_prog in ginstall scoinst install; do ! for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ! if test $ac_prog = install && ! grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # AIX install. It has an incompatible calling convention. ! : ! elif test $ac_prog = install && ! grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ! # program-specific install script used by HP pwplus--don't use. ! : ! else ! ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ! break 3 ! fi ! fi ! done ! done ! ;; ! esac ! done ! ! ! fi ! if test "${ac_cv_path_install+set}" = set; then ! INSTALL=$ac_cv_path_install ! else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will *************** *** 2184,2188 **** fi fi ! echo "$as_me:2186: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 --- 3068,3072 ---- fi fi ! echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 *************** *** 2197,2201 **** # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 ! echo "$as_me:2199: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then --- 3081,3085 ---- # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 ! echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AR+set}" = set; then *************** *** 2205,2217 **** ac_cv_prog_AR="$AR" # Let the user override the test. else ! ac_save_IFS=$IFS; IFS=$ac_path_separator ! ac_dummy="$PATH" ! for ac_dir in $ac_dummy; do ! IFS=$ac_save_IFS ! test -z "$ac_dir" && ac_dir=. ! $as_executable_p "$ac_dir/$ac_word" || continue ! ac_cv_prog_AR="" ! echo "$as_me:2214: found $ac_dir/$ac_word" >&5 ! break done --- 3089,3104 ---- ac_cv_prog_AR="$AR" # Let the user override the test. else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_AR="" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done done *************** *** 2221,2228 **** AR=$ac_cv_prog_AR if test -n "$AR"; then ! echo "$as_me:2223: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else ! echo "$as_me:2226: result: no" >&5 echo "${ECHO_T}no" >&6 fi --- 3108,3115 ---- AR=$ac_cv_prog_AR if test -n "$AR"; then ! echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else ! echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi *************** *** 2232,2236 **** # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 ! echo "$as_me:2234: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then --- 3119,3123 ---- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 ! echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_RANLIB+set}" = set; then *************** *** 2240,2252 **** ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else ! ac_save_IFS=$IFS; IFS=$ac_path_separator ! ac_dummy="$PATH" ! for ac_dir in $ac_dummy; do ! IFS=$ac_save_IFS ! test -z "$ac_dir" && ac_dir=. ! $as_executable_p "$ac_dir/$ac_word" || continue ! ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" ! echo "$as_me:2249: found $ac_dir/$ac_word" >&5 ! break done --- 3127,3142 ---- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done done *************** *** 2255,2262 **** RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then ! echo "$as_me:2257: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else ! echo "$as_me:2260: result: no" >&5 echo "${ECHO_T}no" >&6 fi --- 3145,3152 ---- RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then ! echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else ! echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi *************** *** 2267,2271 **** # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 ! echo "$as_me:2269: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then --- 3157,3161 ---- # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 ! echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then *************** *** 2275,2287 **** ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else ! ac_save_IFS=$IFS; IFS=$ac_path_separator ! ac_dummy="$PATH" ! for ac_dir in $ac_dummy; do ! IFS=$ac_save_IFS ! test -z "$ac_dir" && ac_dir=. ! $as_executable_p "$ac_dir/$ac_word" || continue ! ac_cv_prog_ac_ct_RANLIB="ranlib" ! echo "$as_me:2284: found $ac_dir/$ac_word" >&5 ! break done --- 3165,3180 ---- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_ac_ct_RANLIB="ranlib" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done done *************** *** 2291,2298 **** ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then ! echo "$as_me:2293: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else ! echo "$as_me:2296: result: no" >&5 echo "${ECHO_T}no" >&6 fi --- 3184,3191 ---- ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then ! echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else ! echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi *************** *** 2303,2400 **** fi - MAKE_SHELL=/bin/sh ! echo "$as_me:2307: checking for $CC option to accept ANSI C" >&5 ! echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 ! if test "${ac_cv_prog_cc_stdc+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! ac_cv_prog_cc_stdc=no ! ac_save_CC=$CC ! cat >conftest.$ac_ext <<_ACEOF ! #line 2315 "configure" ! #include "confdefs.h" ! #include ! #include ! #include ! #include ! /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ ! struct buf { int x; }; ! FILE * (*rcsopen) (struct buf *, struct stat *, int); ! static char *e (p, i) ! char **p; ! int i; ! { ! return p[i]; ! } ! static char *f (char * (*g) (char **, int), char **p, ...) ! { ! char *s; ! va_list v; ! va_start (v,p); ! s = g (p, va_arg (v,int)); ! va_end (v); ! return s; ! } ! int test (int i, double x); ! struct s1 {int (*f) (int a);}; ! struct s2 {int (*f) (double a);}; ! int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); ! int argc; ! char **argv; ! int ! main () ! { ! return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ! ; ! return 0; ! } ! _ACEOF ! # Don't try gcc -ansi; that turns off useful extensions and ! # breaks some systems' header files. ! # AIX -qlanglvl=ansi ! # Ultrix and OSF/1 -std1 ! # HP-UX 10.20 and later -Ae ! # HP-UX older versions -Aa -D_HPUX_SOURCE ! # SVR4 -Xc -D__EXTENSIONS__ ! for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" ! do ! CC="$ac_save_CC $ac_arg" ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:2364: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:2367: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:2370: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:2373: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! ac_cv_prog_cc_stdc=$ac_arg ! break ! else ! echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! fi ! rm -f conftest.$ac_objext ! done ! rm -f conftest.$ac_ext conftest.$ac_objext ! CC=$ac_save_CC - fi ! case "x$ac_cv_prog_cc_stdc" in ! x|xno) ! echo "$as_me:2390: result: none needed" >&5 ! echo "${ECHO_T}none needed" >&6 ;; ! *) ! echo "$as_me:2393: result: $ac_cv_prog_cc_stdc" >&5 ! echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 ! CC="$CC $ac_cv_prog_cc_stdc" ;; ! esac ! ! echo "$as_me:2398: checking for an ANSI C-conforming const" >&5 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 if test "${ac_cv_c_const+set}" = set; then --- 3196,3204 ---- fi ! MAKE_SHELL=/bin/sh ! echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 if test "${ac_cv_c_const+set}" = set; then *************** *** 2402,2407 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 2404 "configure" ! #include "confdefs.h" int --- 3206,3215 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ int *************** *** 2451,2693 **** } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ ! const int foo = 10; ! } ! #endif ! ! ; ! return 0; ! } ! _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:2462: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:2465: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:2468: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:2471: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! ac_cv_c_const=yes ! else ! echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! ac_cv_c_const=no ! fi ! rm -f conftest.$ac_objext conftest.$ac_ext ! fi ! echo "$as_me:2481: result: $ac_cv_c_const" >&5 ! echo "${ECHO_T}$ac_cv_c_const" >&6 ! if test $ac_cv_c_const = no; then ! ! cat >>confdefs.h <<\EOF ! #define const ! EOF ! ! fi ! ! echo "$as_me:2491: checking for function prototypes" >&5 ! echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6 ! if test "$ac_cv_prog_cc_stdc" != no; then ! echo "$as_me:2494: result: yes" >&5 ! echo "${ECHO_T}yes" >&6 ! ! cat >>confdefs.h <<\EOF ! #define PROTOTYPES 1 ! EOF ! ! else ! echo "$as_me:2502: result: no" >&5 ! echo "${ECHO_T}no" >&6 ! fi ! ! echo "$as_me:2506: checking for ANSI C header files" >&5 ! echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 ! if test "${ac_cv_header_stdc+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! cat >conftest.$ac_ext <<_ACEOF ! #line 2512 "configure" ! #include "confdefs.h" ! #include ! #include ! #include ! #include ! ! _ACEOF ! if { (eval echo "$as_me:2520: \"$ac_cpp conftest.$ac_ext\"") >&5 ! (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ! ac_status=$? ! egrep -v '^ *\+' conftest.er1 >conftest.err ! rm -f conftest.er1 ! cat conftest.err >&5 ! echo "$as_me:2526: \$? = $ac_status" >&5 ! (exit $ac_status); } >/dev/null; then ! if test -s conftest.err; then ! ac_cpp_err=$ac_c_preproc_warn_flag ! else ! ac_cpp_err= ! fi ! else ! ac_cpp_err=yes ! fi ! if test -z "$ac_cpp_err"; then ! ac_cv_header_stdc=yes ! else ! echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! ac_cv_header_stdc=no ! fi ! rm -f conftest.err conftest.$ac_ext ! ! if test $ac_cv_header_stdc = yes; then ! # SunOS 4.x string.h does not declare mem*, contrary to ANSI. ! cat >conftest.$ac_ext <<_ACEOF ! #line 2548 "configure" ! #include "confdefs.h" ! #include ! ! _ACEOF ! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! egrep "memchr" >/dev/null 2>&1; then ! : ! else ! ac_cv_header_stdc=no ! fi ! rm -f conftest* ! ! fi ! ! if test $ac_cv_header_stdc = yes; then ! # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. ! cat >conftest.$ac_ext <<_ACEOF ! #line 2566 "configure" ! #include "confdefs.h" ! #include ! ! _ACEOF ! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! egrep "free" >/dev/null 2>&1; then ! : ! else ! ac_cv_header_stdc=no ! fi ! rm -f conftest* ! ! fi ! ! if test $ac_cv_header_stdc = yes; then ! # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. ! if test "$cross_compiling" = yes; then ! : ! else ! cat >conftest.$ac_ext <<_ACEOF ! #line 2587 "configure" ! #include "confdefs.h" ! #include ! #if ((' ' & 0x0FF) == 0x020) ! # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') ! # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) ! #else ! # define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ ! || ('j' <= (c) && (c) <= 'r') \ ! || ('s' <= (c) && (c) <= 'z')) ! # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) ! #endif ! ! #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) ! int ! main () ! { ! int i; ! for (i = 0; i < 256; i++) ! if (XOR (islower (i), ISLOWER (i)) ! || toupper (i) != TOUPPER (i)) ! exit(2); ! exit (0); ! } ! _ACEOF ! rm -f conftest$ac_exeext ! if { (eval echo "$as_me:2613: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ! ac_status=$? ! echo "$as_me:2616: \$? = $ac_status" >&5 ! (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ! { (eval echo "$as_me:2618: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:2621: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! : ! else ! echo "$as_me: program exited with status $ac_status" >&5 ! echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! ac_cv_header_stdc=no ! fi ! rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ! fi ! fi ! fi ! echo "$as_me:2634: result: $ac_cv_header_stdc" >&5 ! echo "${ECHO_T}$ac_cv_header_stdc" >&6 ! if test $ac_cv_header_stdc = yes; then ! ! cat >>confdefs.h <<\EOF ! #define STDC_HEADERS 1 ! EOF ! ! fi ! ! # On IRIX 5.3, sys/types and inttypes.h are conflicting. ! ! for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ ! inttypes.h stdint.h unistd.h ! do ! as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ! echo "$as_me:2650: checking for $ac_header" >&5 ! echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 ! if eval "test \"\${$as_ac_Header+set}\" = set"; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! cat >conftest.$ac_ext <<_ACEOF ! #line 2656 "configure" ! #include "confdefs.h" ! $ac_includes_default ! #include <$ac_header> _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:2662: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:2665: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:2668: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:2671: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ! eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! eval "$as_ac_Header=no" fi rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:2681: result: `eval echo '${'$as_ac_Header'}'`" >&5 ! echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ! if test `eval echo '${'$as_ac_Header'}'` = yes; then ! cat >>confdefs.h <&5 echo $ECHO_N "checking whether char is unsigned... $ECHO_C" >&6 if test "${ac_cv_c_char_unsigned+set}" = set; then --- 3259,3323 ---- } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ ! const int foo = 10; ! } ! #endif ! ! ; ! return 0; ! } _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ! ac_cv_c_const=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_cv_c_const=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 ! echo "${ECHO_T}$ac_cv_c_const" >&6 ! if test $ac_cv_c_const = no; then ! ! cat >>confdefs.h <<\_ACEOF ! #define const ! _ACEOF fi ! echo "$as_me:$LINENO: checking for function prototypes" >&5 ! echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6 ! if test "$ac_cv_prog_cc_stdc" != no; then ! echo "$as_me:$LINENO: result: yes" >&5 ! echo "${ECHO_T}yes" >&6 ! ! cat >>confdefs.h <<\_ACEOF ! #define PROTOTYPES 1 ! _ACEOF ! ! ! cat >>confdefs.h <<\_ACEOF ! #define __PROTOTYPES 1 ! _ACEOF ! ! else ! echo "$as_me:$LINENO: result: no" >&5 ! echo "${ECHO_T}no" >&6 ! fi ! ! ! echo "$as_me:$LINENO: checking whether char is unsigned" >&5 echo $ECHO_N "checking whether char is unsigned... $ECHO_C" >&6 if test "${ac_cv_c_char_unsigned+set}" = set; then *************** *** 2695,2705 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 2697 "configure" ! #include "confdefs.h" $ac_includes_default int main () { ! int _array_ [1 - 2 * !(((char) -1) < 0)] ; return 0; --- 3325,3341 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ $ac_includes_default int main () { ! static int test_array [1 - 2 * !(((char) -1) < 0)]; ! test_array [0] = 0 ! ; return 0; *************** *** 2707,2739 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:2709: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:2712: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:2715: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:2718: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_char_unsigned=no else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_c_char_unsigned=yes fi rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:2728: result: $ac_cv_c_char_unsigned" >&5 echo "${ECHO_T}$ac_cv_c_char_unsigned" >&6 if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then ! cat >>confdefs.h <<\EOF #define __CHAR_UNSIGNED__ 1 ! EOF fi ! echo "$as_me:2737: checking return type of signal handlers" >&5 echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 if test "${ac_cv_type_signal+set}" = set; then --- 3343,3377 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_char_unsigned=no else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_c_char_unsigned=yes fi rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:$LINENO: result: $ac_cv_c_char_unsigned" >&5 echo "${ECHO_T}$ac_cv_c_char_unsigned" >&6 if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then ! cat >>confdefs.h <<\_ACEOF #define __CHAR_UNSIGNED__ 1 ! _ACEOF fi ! ! echo "$as_me:$LINENO: checking return type of signal handlers" >&5 echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 if test "${ac_cv_type_signal+set}" = set; then *************** *** 2741,2746 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 2743 "configure" ! #include "confdefs.h" #include #include --- 3379,3388 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include *************** *** 2763,2793 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:2765: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:2768: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:2771: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:2774: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_signal=void else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_type_signal=int fi rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:2784: result: $ac_cv_type_signal" >&5 echo "${ECHO_T}$ac_cv_type_signal" >&6 ! cat >>confdefs.h <&5 echo $ECHO_N "checking for size_t... $ECHO_C" >&6 if test "${ac_cv_type_size_t+set}" = set; then --- 3405,3438 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_signal=void else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_type_signal=int fi rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 echo "${ECHO_T}$ac_cv_type_signal" >&6 ! cat >>confdefs.h <<_ACEOF #define RETSIGTYPE $ac_cv_type_signal ! _ACEOF ! ! ! echo "$as_me:$LINENO: checking for size_t" >&5 echo $ECHO_N "checking for size_t... $ECHO_C" >&6 if test "${ac_cv_type_size_t+set}" = set; then *************** *** 2795,2800 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 2797 "configure" ! #include "confdefs.h" $ac_includes_default int --- 3440,3449 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ $ac_includes_default int *************** *** 2810,2833 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:2812: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:2815: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:2818: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:2821: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_size_t=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_type_size_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:2831: result: $ac_cv_type_size_t" >&5 echo "${ECHO_T}$ac_cv_type_size_t" >&6 if test $ac_cv_type_size_t = yes; then --- 3459,3483 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_size_t=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_type_size_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 echo "${ECHO_T}$ac_cv_type_size_t" >&6 if test $ac_cv_type_size_t = yes; then *************** *** 2835,2845 **** else ! cat >>confdefs.h <&5 echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6 if test "${ac_cv_type_ssize_t+set}" = set; then --- 3485,3495 ---- else ! cat >>confdefs.h <<_ACEOF #define size_t unsigned ! _ACEOF fi ! echo "$as_me:$LINENO: checking for ssize_t" >&5 echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6 if test "${ac_cv_type_ssize_t+set}" = set; then *************** *** 2847,2852 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 2849 "configure" ! #include "confdefs.h" $ac_includes_default int --- 3497,3506 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ $ac_includes_default int *************** *** 2862,2885 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:2864: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:2867: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:2870: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:2873: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_ssize_t=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_type_ssize_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:2883: result: $ac_cv_type_ssize_t" >&5 echo "${ECHO_T}$ac_cv_type_ssize_t" >&6 if test $ac_cv_type_ssize_t = yes; then --- 3516,3540 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_ssize_t=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_type_ssize_t=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 echo "${ECHO_T}$ac_cv_type_ssize_t" >&6 if test $ac_cv_type_ssize_t = yes; then *************** *** 2887,2897 **** else ! cat >>confdefs.h <&5 echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6 if test "${ac_cv_header_stat_broken+set}" = set; then --- 3542,3714 ---- else ! cat >>confdefs.h <<_ACEOF #define ssize_t int ! _ACEOF ! ! fi ! ! ! echo "$as_me:$LINENO: checking for ANSI C header files" >&5 ! echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 ! if test "${ac_cv_header_stdc+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #include ! #include ! #include ! #include ! ! int ! main () ! { ! ! ; ! return 0; ! } ! _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! ac_cv_header_stdc=yes ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_cv_header_stdc=no ! fi ! rm -f conftest.$ac_objext conftest.$ac_ext ! ! if test $ac_cv_header_stdc = yes; then ! # SunOS 4.x string.h does not declare mem*, contrary to ANSI. ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #include ! ! _ACEOF ! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! $EGREP "memchr" >/dev/null 2>&1; then ! : ! else ! ac_cv_header_stdc=no ! fi ! rm -f conftest* ! ! fi ! ! if test $ac_cv_header_stdc = yes; then ! # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #include ! ! _ACEOF ! if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! $EGREP "free" >/dev/null 2>&1; then ! : ! else ! ac_cv_header_stdc=no ! fi ! rm -f conftest* ! ! fi ! ! if test $ac_cv_header_stdc = yes; then ! # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. ! if test "$cross_compiling" = yes; then ! : ! else ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #include ! #if ((' ' & 0x0FF) == 0x020) ! # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') ! # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) ! #else ! # define ISLOWER(c) \ ! (('a' <= (c) && (c) <= 'i') \ ! || ('j' <= (c) && (c) <= 'r') \ ! || ('s' <= (c) && (c) <= 'z')) ! # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) ! #endif ! ! #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) ! int ! main () ! { ! int i; ! for (i = 0; i < 256; i++) ! if (XOR (islower (i), ISLOWER (i)) ! || toupper (i) != TOUPPER (i)) ! exit(2); ! exit (0); ! } ! _ACEOF ! rm -f conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! : ! else ! echo "$as_me: program exited with status $ac_status" >&5 ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ( exit $ac_status ) ! ac_cv_header_stdc=no ! fi ! rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ! fi ! fi ! fi ! echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 ! echo "${ECHO_T}$ac_cv_header_stdc" >&6 ! if test $ac_cv_header_stdc = yes; then ! ! cat >>confdefs.h <<\_ACEOF ! #define STDC_HEADERS 1 ! _ACEOF fi ! ! echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5 echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6 if test "${ac_cv_header_stat_broken+set}" = set; then *************** *** 2899,2904 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 2901 "configure" ! #include "confdefs.h" #include #include --- 3716,3725 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include *************** *** 2930,2934 **** _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! egrep "You lose" >/dev/null 2>&1; then ac_cv_header_stat_broken=yes else --- 3751,3755 ---- _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! $EGREP "You lose" >/dev/null 2>&1; then ac_cv_header_stat_broken=yes else *************** *** 2938,3017 **** fi ! echo "$as_me:2940: result: $ac_cv_header_stat_broken" >&5 echo "${ECHO_T}$ac_cv_header_stat_broken" >&6 if test $ac_cv_header_stat_broken = yes; then ! cat >>confdefs.h <<\EOF #define STAT_MACROS_BROKEN 1 ! EOF fi ! ac_header_dirent=no ! for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do ! as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` ! echo "$as_me:2953: checking for $ac_hdr that defines DIR" >&5 ! echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6 ! if eval "test \"\${$as_ac_Header+set}\" = set"; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! cat >conftest.$ac_ext <<_ACEOF ! #line 2959 "configure" ! #include "confdefs.h" ! #include ! #include <$ac_hdr> ! int main () { ! if ((DIR *) 0) ! return 0; ; return 0; } _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:2974: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:2977: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:2980: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:2983: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ! eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! eval "$as_ac_Header=no" fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:2993: result: `eval echo '${'$as_ac_Header'}'`" >&5 ! echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ! if test `eval echo '${'$as_ac_Header'}'` = yes; then ! cat >>confdefs.h <&5 ! echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6 ! if test "${ac_cv_lib_dir_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-ldir $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line 3014 "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ --- 3759,3959 ---- fi ! echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5 echo "${ECHO_T}$ac_cv_header_stat_broken" >&6 if test $ac_cv_header_stat_broken = yes; then ! cat >>confdefs.h <<\_ACEOF #define STAT_MACROS_BROKEN 1 ! _ACEOF ! ! fi ! ! ! ! ! ! ! ac_header_dirent=no ! for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do ! as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` ! echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 ! echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6 ! if eval "test \"\${$as_ac_Header+set}\" = set"; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #include ! #include <$ac_hdr> ! ! int ! main () ! { ! if ((DIR *) 0) ! return 0; ! ; ! return 0; ! } ! _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! eval "$as_ac_Header=yes" ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! eval "$as_ac_Header=no" ! fi ! rm -f conftest.$ac_objext conftest.$ac_ext ! fi ! echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 ! echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ! if test `eval echo '${'$as_ac_Header'}'` = yes; then ! cat >>confdefs.h <<_ACEOF ! #define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 ! _ACEOF ! ! ac_header_dirent=$ac_hdr; break ! fi ! ! done ! # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. ! if test $ac_header_dirent = dirent.h; then ! echo "$as_me:$LINENO: checking for library containing opendir" >&5 ! echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 ! if test "${ac_cv_search_opendir+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! ac_func_search_save_LIBS=$LIBS ! ac_cv_search_opendir=no ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! ! /* Override any gcc2 internal prototype to avoid an error. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! /* We use char because int might match the return type of a gcc2 ! builtin and then its argument prototype would still apply. */ ! char opendir (); ! int ! main () ! { ! opendir (); ! ; ! return 0; ! } ! _ACEOF ! rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! ac_cv_search_opendir="none required" ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + if test "$ac_cv_search_opendir" = no; then + for ac_lib in dir; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF + #line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ! /* Override any gcc2 internal prototype to avoid an error. */ ! #ifdef __cplusplus ! extern "C" ! #endif ! /* We use char because int might match the return type of a gcc2 ! builtin and then its argument prototype would still apply. */ ! char opendir (); int main () { ! opendir (); ; return 0; } _ACEOF ! rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ! ac_cv_search_opendir="-l$ac_lib" ! break else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ! done fi ! LIBS=$ac_func_search_save_LIBS ! fi ! echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 ! echo "${ECHO_T}$ac_cv_search_opendir" >&6 ! if test "$ac_cv_search_opendir" != no; then ! test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" fi ! else ! echo "$as_me:$LINENO: checking for library containing opendir" >&5 ! echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 ! if test "${ac_cv_search_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! ac_func_search_save_LIBS=$LIBS ! ac_cv_search_opendir=no cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ *************** *** 3031,3071 **** _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:3033: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:3036: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:3039: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:3042: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ! ac_cv_lib_dir_opendir=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! ac_cv_lib_dir_opendir=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS ! fi ! echo "$as_me:3053: result: $ac_cv_lib_dir_opendir" >&5 ! echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6 ! if test $ac_cv_lib_dir_opendir = yes; then ! LIBS="$LIBS -ldir" ! fi ! ! else ! echo "$as_me:3060: checking for opendir in -lx" >&5 ! echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6 ! if test "${ac_cv_lib_x_opendir+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! ac_check_lib_save_LIBS=$LIBS ! LIBS="-lx $LIBS" ! cat >conftest.$ac_ext <<_ACEOF ! #line 3068 "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ --- 3973,4004 ---- _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ! ac_cv_search_opendir="none required" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ! if test "$ac_cv_search_opendir" = no; then ! for ac_lib in x; do ! LIBS="-l$ac_lib $ac_func_search_save_LIBS" ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ *************** *** 3085,3121 **** _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:3087: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:3090: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:3093: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:3096: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ! ac_cv_lib_x_opendir=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! ac_cv_lib_x_opendir=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ! LIBS=$ac_check_lib_save_LIBS fi ! echo "$as_me:3107: result: $ac_cv_lib_x_opendir" >&5 ! echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6 ! if test $ac_cv_lib_x_opendir = yes; then ! LIBS="$LIBS -lx" fi fi for ac_func in lstat memmove putenv select setenv setlocale \ strcasecmp strpbrk tcgetattr vsnprintf isascii isxdigit do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ! echo "$as_me:3119: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then --- 4018,4071 ---- _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ! ac_cv_search_opendir="-l$ac_lib" ! break else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ! done ! fi ! LIBS=$ac_func_search_save_LIBS fi ! echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 ! echo "${ECHO_T}$ac_cv_search_opendir" >&6 ! if test "$ac_cv_search_opendir" != no; then ! test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" ! fi fi + + + + + + + + + + + + + for ac_func in lstat memmove putenv select setenv setlocale \ strcasecmp strpbrk tcgetattr vsnprintf isascii isxdigit do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ! echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then *************** *** 3123,3143 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 3125 "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); - char (*f) (); - - int - main () - { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named --- 4073,4099 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char $ac_func (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" + { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named *************** *** 3146,3152 **** choke me #else ! f = $ac_func; #endif ; return 0; --- 4102,4115 ---- choke me #else ! char (*f) () = $ac_func; ! #endif ! #ifdef __cplusplus ! } #endif + int + main () + { + return f != $ac_func; ; return 0; *************** *** 3154,3187 **** _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:3156: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:3159: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:3162: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:3165: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi ! echo "$as_me:3175: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then ! cat >>confdefs.h <&5 echo $ECHO_N "checking for working strcoll... $ECHO_C" >&6 if test "${ac_cv_func_strcoll_works+set}" = set; then --- 4117,4152 ---- _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! eval "$as_ac_var=no" fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi ! echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then ! cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 ! _ACEOF fi done ! ! echo "$as_me:$LINENO: checking for working strcoll" >&5 echo $ECHO_N "checking for working strcoll... $ECHO_C" >&6 if test "${ac_cv_func_strcoll_works+set}" = set; then *************** *** 3192,3197 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 3194 "configure" ! #include "confdefs.h" $ac_includes_default int --- 4157,4166 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ $ac_includes_default int *************** *** 3206,3218 **** _ACEOF rm -f conftest$ac_exeext ! if { (eval echo "$as_me:3208: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:3211: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ! { (eval echo "$as_me:3213: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:3216: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_strcoll_works=yes --- 4175,4187 ---- _ACEOF rm -f conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_strcoll_works=yes *************** *** 3220,3239 **** echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_func_strcoll_works=no fi ! rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi ! echo "$as_me:3228: result: $ac_cv_func_strcoll_works" >&5 echo "${ECHO_T}$ac_cv_func_strcoll_works" >&6 if test $ac_cv_func_strcoll_works = yes; then ! cat >>confdefs.h <<\EOF #define HAVE_STRCOLL 1 ! EOF fi for ac_header in unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \ limits.h sys/ptem.h sys/pte.h sys/stream.h sys/select.h \ --- 4189,4228 ---- echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ( exit $ac_status ) ac_cv_func_strcoll_works=no fi ! rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi ! echo "$as_me:$LINENO: result: $ac_cv_func_strcoll_works" >&5 echo "${ECHO_T}$ac_cv_func_strcoll_works" >&6 if test $ac_cv_func_strcoll_works = yes; then ! cat >>confdefs.h <<\_ACEOF #define HAVE_STRCOLL 1 ! _ACEOF fi + + + + + + + + + + + + + + + + + + for ac_header in unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \ limits.h sys/ptem.h sys/pte.h sys/stream.h sys/select.h \ *************** *** 3241,3261 **** do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ! echo "$as_me:3243: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! cat >conftest.$ac_ext <<_ACEOF ! #line 3249 "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF ! if { (eval echo "$as_me:3253: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:3259: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then --- 4230,4297 ---- do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ! if eval "test \"\${$as_ac_Header+set}\" = set"; then ! echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else ! # Is the header compilable? ! echo "$as_me:$LINENO: checking $ac_header usability" >&5 ! echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! $ac_includes_default ! #include <$ac_header> ! _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! ac_header_compiler=yes ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_header_compiler=no ! fi ! rm -f conftest.$ac_objext conftest.$ac_ext ! echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ! echo "${ECHO_T}$ac_header_compiler" >&6 ! ! # Is the header present? ! echo "$as_me:$LINENO: checking $ac_header presence" >&5 ! echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include <$ac_header> _ACEOF ! if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then *************** *** 3268,3290 **** fi if test -z "$ac_cpp_err"; then ! eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_ext fi ! echo "$as_me:3278: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then ! cat >>confdefs.h <&5 echo $ECHO_N "checking for type of signal functions... $ECHO_C" >&6 if test "${bash_cv_signal_vintage+set}" = set; then --- 4304,4374 ---- fi if test -z "$ac_cpp_err"; then ! ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? + case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX + ## ------------------------------------ ## + ## Report this to bug-autoconf@gnu.org. ## + ## ------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 + echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX + ## ------------------------------------ ## + ## Report this to bug-autoconf@gnu.org. ## + ## ------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + esac + echo "$as_me:$LINENO: checking for $ac_header" >&5 + echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + eval "$as_ac_Header=$ac_header_preproc" fi ! echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + + fi if test `eval echo '${'$as_ac_Header'}'` = yes; then ! cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ! _ACEOF fi + done ! ! ! echo "$as_me:$LINENO: checking for type of signal functions" >&5 echo $ECHO_N "checking for type of signal functions... $ECHO_C" >&6 if test "${bash_cv_signal_vintage+set}" = set; then *************** *** 3293,3298 **** cat >conftest.$ac_ext <<_ACEOF ! #line 3295 "configure" ! #include "confdefs.h" #include int --- 4377,4386 ---- cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int *************** *** 3311,3333 **** _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:3313: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:3316: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:3319: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:3322: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_signal_vintage=posix else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF ! #line 3330 "configure" ! #include "confdefs.h" #include int --- 4399,4426 ---- _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_signal_vintage=posix else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int *************** *** 3343,3365 **** _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:3345: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:3348: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:3351: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:3354: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_signal_vintage=4.2bsd else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF ! #line 3362 "configure" ! #include "confdefs.h" #include --- 4436,4463 ---- _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_signal_vintage=4.2bsd else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include *************** *** 3378,3396 **** _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:3380: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:3383: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:3386: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:3389: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_signal_vintage=svr3 else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 bash_cv_signal_vintage=v7 --- 4476,4495 ---- _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_signal_vintage=svr3 else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! bash_cv_signal_vintage=v7 *************** *** 3406,3429 **** fi ! echo "$as_me:3408: result: $bash_cv_signal_vintage" >&5 echo "${ECHO_T}$bash_cv_signal_vintage" >&6 if test "$bash_cv_signal_vintage" = posix; then ! cat >>confdefs.h <<\EOF #define HAVE_POSIX_SIGNALS 1 ! EOF elif test "$bash_cv_signal_vintage" = "4.2bsd"; then ! cat >>confdefs.h <<\EOF #define HAVE_BSD_SIGNALS 1 ! EOF elif test "$bash_cv_signal_vintage" = svr3; then ! cat >>confdefs.h <<\EOF #define HAVE_USG_SIGHOLD 1 ! EOF fi ! echo "$as_me:3427: checking if signal handlers must be reinstalled when invoked" >&5 echo $ECHO_N "checking if signal handlers must be reinstalled when invoked... $ECHO_C" >&6 if test "${bash_cv_must_reinstall_sighandlers+set}" = set; then --- 4505,4530 ---- fi ! echo "$as_me:$LINENO: result: $bash_cv_signal_vintage" >&5 echo "${ECHO_T}$bash_cv_signal_vintage" >&6 if test "$bash_cv_signal_vintage" = posix; then ! cat >>confdefs.h <<\_ACEOF #define HAVE_POSIX_SIGNALS 1 ! _ACEOF elif test "$bash_cv_signal_vintage" = "4.2bsd"; then ! cat >>confdefs.h <<\_ACEOF #define HAVE_BSD_SIGNALS 1 ! _ACEOF elif test "$bash_cv_signal_vintage" = svr3; then ! cat >>confdefs.h <<\_ACEOF #define HAVE_USG_SIGHOLD 1 ! _ACEOF fi ! ! ! echo "$as_me:$LINENO: checking if signal handlers must be reinstalled when invoked" >&5 echo $ECHO_N "checking if signal handlers must be reinstalled when invoked... $ECHO_C" >&6 if test "${bash_cv_must_reinstall_sighandlers+set}" = set; then *************** *** 3431,3435 **** else if test "$cross_compiling" = yes; then ! { echo "$as_me:3433: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&5 echo "$as_me: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&2;} bash_cv_must_reinstall_sighandlers=no --- 4532,4536 ---- else if test "$cross_compiling" = yes; then ! { echo "$as_me:$LINENO: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&5 echo "$as_me: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&2;} bash_cv_must_reinstall_sighandlers=no *************** *** 3437,3442 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 3439 "configure" ! #include "confdefs.h" #include --- 4538,4547 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include *************** *** 3485,3497 **** _ACEOF rm -f conftest$ac_exeext ! if { (eval echo "$as_me:3487: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:3490: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ! { (eval echo "$as_me:3492: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:3495: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_must_reinstall_sighandlers=no --- 4590,4602 ---- _ACEOF rm -f conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_must_reinstall_sighandlers=no *************** *** 3499,3519 **** echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 bash_cv_must_reinstall_sighandlers=yes fi ! rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi ! echo "$as_me:3508: result: $bash_cv_must_reinstall_sighandlers" >&5 echo "${ECHO_T}$bash_cv_must_reinstall_sighandlers" >&6 if test $bash_cv_must_reinstall_sighandlers = yes; then ! cat >>confdefs.h <<\EOF #define MUST_REINSTALL_SIGHANDLERS 1 ! EOF fi ! echo "$as_me:3517: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5 echo $ECHO_N "checking for presence of POSIX-style sigsetjmp/siglongjmp... $ECHO_C" >&6 if test "${bash_cv_func_sigsetjmp+set}" = set; then --- 4604,4628 ---- echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ( exit $ac_status ) bash_cv_must_reinstall_sighandlers=yes fi ! rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi ! echo "$as_me:$LINENO: result: $bash_cv_must_reinstall_sighandlers" >&5 echo "${ECHO_T}$bash_cv_must_reinstall_sighandlers" >&6 if test $bash_cv_must_reinstall_sighandlers = yes; then ! cat >>confdefs.h <<\_ACEOF #define MUST_REINSTALL_SIGHANDLERS 1 ! _ACEOF fi ! ! ! echo "$as_me:$LINENO: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5 echo $ECHO_N "checking for presence of POSIX-style sigsetjmp/siglongjmp... $ECHO_C" >&6 if test "${bash_cv_func_sigsetjmp+set}" = set; then *************** *** 3521,3525 **** else if test "$cross_compiling" = yes; then ! { echo "$as_me:3523: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&5 echo "$as_me: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&2;} bash_cv_func_sigsetjmp=missing --- 4630,4634 ---- else if test "$cross_compiling" = yes; then ! { echo "$as_me:$LINENO: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&5 echo "$as_me: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&2;} bash_cv_func_sigsetjmp=missing *************** *** 3527,3532 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 3529 "configure" ! #include "confdefs.h" #ifdef HAVE_UNISTD_H --- 4636,4645 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #ifdef HAVE_UNISTD_H *************** *** 3569,3581 **** _ACEOF rm -f conftest$ac_exeext ! if { (eval echo "$as_me:3571: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:3574: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ! { (eval echo "$as_me:3576: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:3579: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_func_sigsetjmp=present --- 4682,4694 ---- _ACEOF rm -f conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_func_sigsetjmp=present *************** *** 3583,3603 **** echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 bash_cv_func_sigsetjmp=missing fi ! rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi ! echo "$as_me:3592: result: $bash_cv_func_sigsetjmp" >&5 echo "${ECHO_T}$bash_cv_func_sigsetjmp" >&6 if test $bash_cv_func_sigsetjmp = present; then ! cat >>confdefs.h <<\EOF #define HAVE_POSIX_SIGSETJMP 1 ! EOF fi ! echo "$as_me:3601: checking for lstat" >&5 echo $ECHO_N "checking for lstat... $ECHO_C" >&6 if test "${bash_cv_func_lstat+set}" = set; then --- 4696,4718 ---- echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ( exit $ac_status ) bash_cv_func_sigsetjmp=missing fi ! rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi ! echo "$as_me:$LINENO: result: $bash_cv_func_sigsetjmp" >&5 echo "${ECHO_T}$bash_cv_func_sigsetjmp" >&6 if test $bash_cv_func_sigsetjmp = present; then ! cat >>confdefs.h <<\_ACEOF #define HAVE_POSIX_SIGSETJMP 1 ! _ACEOF fi ! echo "$as_me:$LINENO: checking for lstat" >&5 echo $ECHO_N "checking for lstat... $ECHO_C" >&6 if test "${bash_cv_func_lstat+set}" = set; then *************** *** 3605,3610 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 3607 "configure" ! #include "confdefs.h" #include --- 4720,4729 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include *************** *** 3620,3652 **** _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:3622: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:3625: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:3628: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:3631: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_func_lstat=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 bash_cv_func_lstat=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi ! echo "$as_me:3641: result: $bash_cv_func_lstat" >&5 echo "${ECHO_T}$bash_cv_func_lstat" >&6 if test $bash_cv_func_lstat = yes; then ! cat >>confdefs.h <<\EOF #define HAVE_LSTAT 1 ! EOF fi ! echo "$as_me:3650: checking whether or not strcoll and strcmp differ" >&5 echo $ECHO_N "checking whether or not strcoll and strcmp differ... $ECHO_C" >&6 if test "${bash_cv_func_strcoll_broken+set}" = set; then --- 4739,4773 ---- _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_func_lstat=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! bash_cv_func_lstat=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi ! echo "$as_me:$LINENO: result: $bash_cv_func_lstat" >&5 echo "${ECHO_T}$bash_cv_func_lstat" >&6 if test $bash_cv_func_lstat = yes; then ! cat >>confdefs.h <<\_ACEOF #define HAVE_LSTAT 1 ! _ACEOF fi ! ! echo "$as_me:$LINENO: checking whether or not strcoll and strcmp differ" >&5 echo $ECHO_N "checking whether or not strcoll and strcmp differ... $ECHO_C" >&6 if test "${bash_cv_func_strcoll_broken+set}" = set; then *************** *** 3654,3658 **** else if test "$cross_compiling" = yes; then ! { echo "$as_me:3656: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&5 echo "$as_me: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&2;} bash_cv_func_strcoll_broken=no --- 4775,4779 ---- else if test "$cross_compiling" = yes; then ! { echo "$as_me:$LINENO: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&5 echo "$as_me: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&2;} bash_cv_func_strcoll_broken=no *************** *** 3660,3734 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 3662 "configure" ! #include "confdefs.h" ! #include ! #if defined (HAVE_LOCALE_H) #include #endif main(c, v) ! int c; ! char *v[]; { ! int r1, r2; ! char *deflocale, *defcoll; #ifdef HAVE_SETLOCALE ! deflocale = setlocale(LC_ALL, ""); ! defcoll = setlocale(LC_COLLATE, ""); ! #endif ! ! #ifdef HAVE_STRCOLL ! /* These two values are taken from tests/glob-test. */ ! r1 = strcoll("abd", "aXd"); ! #else ! r1 = 0; #endif - r2 = strcmp("abd", "aXd"); - - /* These two should both be greater than 0. It is permissible for - a system to return different values, as long as the sign is the - same. */ ! /* Exit with 1 (failure) if these two values are both > 0, since ! this tests whether strcoll(3) is broken with respect to strcmp(3) ! in the default locale. */ ! exit (r1 > 0 && r2 > 0); } _ACEOF rm -f conftest$ac_exeext ! if { (eval echo "$as_me:3702: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:3705: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ! { (eval echo "$as_me:3707: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:3710: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ! bash_cv_func_strcoll_broken=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! bash_cv_func_strcoll_broken=no fi ! rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi ! echo "$as_me:3723: result: $bash_cv_func_strcoll_broken" >&5 ! echo "${ECHO_T}$bash_cv_func_strcoll_broken" >&6 ! if test $bash_cv_func_strcoll_broken = yes; then ! cat >>confdefs.h <<\EOF ! #define STRCOLL_BROKEN 1 ! EOF fi ! echo "$as_me:3732: checking whether getpw functions are declared in pwd.h" >&5 echo $ECHO_N "checking whether getpw functions are declared in pwd.h... $ECHO_C" >&6 if test "${bash_cv_getpw_declared+set}" = set; then --- 4781,4946 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! ! #include ! #if defined (HAVE_LOCALE_H) ! #include ! #endif ! ! main(c, v) ! int c; ! char *v[]; ! { ! int r1, r2; ! char *deflocale, *defcoll; ! ! #ifdef HAVE_SETLOCALE ! deflocale = setlocale(LC_ALL, ""); ! defcoll = setlocale(LC_COLLATE, ""); ! #endif ! ! #ifdef HAVE_STRCOLL ! /* These two values are taken from tests/glob-test. */ ! r1 = strcoll("abd", "aXd"); ! #else ! r1 = 0; ! #endif ! r2 = strcmp("abd", "aXd"); ! ! /* These two should both be greater than 0. It is permissible for ! a system to return different values, as long as the sign is the ! same. */ ! ! /* Exit with 1 (failure) if these two values are both > 0, since ! this tests whether strcoll(3) is broken with respect to strcmp(3) ! in the default locale. */ ! exit (r1 > 0 && r2 > 0); ! } ! ! _ACEOF ! rm -f conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! bash_cv_func_strcoll_broken=yes ! else ! echo "$as_me: program exited with status $ac_status" >&5 ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ( exit $ac_status ) ! bash_cv_func_strcoll_broken=no ! fi ! rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ! fi ! fi ! ! echo "$as_me:$LINENO: result: $bash_cv_func_strcoll_broken" >&5 ! echo "${ECHO_T}$bash_cv_func_strcoll_broken" >&6 ! if test $bash_cv_func_strcoll_broken = yes; then ! cat >>confdefs.h <<\_ACEOF ! #define STRCOLL_BROKEN 1 ! _ACEOF ! ! fi ! ! ! echo "$as_me:$LINENO: checking whether the ctype macros accept non-ascii characters" >&5 ! echo $ECHO_N "checking whether the ctype macros accept non-ascii characters... $ECHO_C" >&6 ! if test "${bash_cv_func_ctype_nonascii+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! if test "$cross_compiling" = yes; then ! { echo "$as_me:$LINENO: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&5 ! echo "$as_me: WARNING: cannot check ctype macros if cross compiling -- defaulting to no" >&2;} ! bash_cv_func_ctype_nonascii=no ! ! else ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! #ifdef HAVE_LOCALE_H #include #endif + #include + #include main(c, v) ! int c; ! char *v[]; { ! char *deflocale; ! unsigned char x; ! int r1, r2; #ifdef HAVE_SETLOCALE ! /* We take a shot here. If that locale is not known, try the ! system default. We try this one because '\342' (226) is ! known to be a printable character in that locale. */ ! deflocale = setlocale(LC_ALL, "en_US.ISO8859-1"); ! if (deflocale == 0) ! deflocale = setlocale(LC_ALL, ""); #endif ! x = '\342'; ! r1 = isprint(x); ! x -= 128; ! r2 = isprint(x); ! exit (r1 == 0 || r2 == 0); } _ACEOF rm -f conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ! bash_cv_func_ctype_nonascii=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ( exit $ac_status ) ! bash_cv_func_ctype_nonascii=no fi ! rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi ! echo "$as_me:$LINENO: result: $bash_cv_func_ctype_nonascii" >&5 ! echo "${ECHO_T}$bash_cv_func_ctype_nonascii" >&6 ! if test $bash_cv_func_ctype_nonascii = yes; then ! cat >>confdefs.h <<\_ACEOF ! #define CTYPE_NON_ASCII 1 ! _ACEOF fi ! ! echo "$as_me:$LINENO: checking whether getpw functions are declared in pwd.h" >&5 echo $ECHO_N "checking whether getpw functions are declared in pwd.h... $ECHO_C" >&6 if test "${bash_cv_getpw_declared+set}" = set; then *************** *** 3736,3741 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 3738 "configure" ! #include "confdefs.h" #include --- 4948,4957 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include *************** *** 3747,3751 **** _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! egrep "getpwuid" >/dev/null 2>&1; then bash_cv_getpw_declared=yes else --- 4963,4967 ---- _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! $EGREP "getpwuid" >/dev/null 2>&1; then bash_cv_getpw_declared=yes else *************** *** 3756,3813 **** fi ! echo "$as_me:3758: result: $bash_cv_getpw_declared" >&5 echo "${ECHO_T}$bash_cv_getpw_declared" >&6 if test $bash_cv_getpw_declared = yes; then ! cat >>confdefs.h <<\EOF #define HAVE_GETPW_DECLS 1 ! EOF fi - echo "$as_me:3767: checking POSIX termios" >&5 - echo $ECHO_N "checking POSIX termios... $ECHO_C" >&6 - if test "${ac_cv_sys_posix_termios+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 - else - cat >conftest.$ac_ext <<_ACEOF - #line 3773 "configure" - #include "confdefs.h" - #include - #include - #include - int - main () - { - /* SunOS 4.0.3 has termios.h but not the library calls. */ - tcgetattr(0, 0); - ; - return 0; - } - _ACEOF - rm -f conftest.$ac_objext conftest$ac_exeext - if { (eval echo "$as_me:3788: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:3791: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:3794: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:3797: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sys_posix_termios=yes - else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_sys_posix_termios=no - fi - rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - fi - echo "$as_me:3807: result: $ac_cv_sys_posix_termios" >&5 - echo "${ECHO_T}$ac_cv_sys_posix_termios" >&6 ! if test $ac_cv_sys_posix_termios = yes; then ! echo "$as_me:3811: checking whether termios.h defines TIOCGWINSZ" >&5 echo $ECHO_N "checking whether termios.h defines TIOCGWINSZ... $ECHO_C" >&6 if test "${ac_cv_sys_tiocgwinsz_in_termios_h+set}" = set; then --- 4972,4986 ---- fi ! echo "$as_me:$LINENO: result: $bash_cv_getpw_declared" >&5 echo "${ECHO_T}$bash_cv_getpw_declared" >&6 if test $bash_cv_getpw_declared = yes; then ! cat >>confdefs.h <<\_ACEOF #define HAVE_GETPW_DECLS 1 ! _ACEOF fi ! echo "$as_me:$LINENO: checking whether termios.h defines TIOCGWINSZ" >&5 echo $ECHO_N "checking whether termios.h defines TIOCGWINSZ... $ECHO_C" >&6 if test "${ac_cv_sys_tiocgwinsz_in_termios_h+set}" = set; then *************** *** 3815,3820 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 3817 "configure" ! #include "confdefs.h" #include #include --- 4988,4997 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include *************** *** 3825,3829 **** _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! egrep "yes" >/dev/null 2>&1; then ac_cv_sys_tiocgwinsz_in_termios_h=yes else --- 5002,5006 ---- _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! $EGREP "yes" >/dev/null 2>&1; then ac_cv_sys_tiocgwinsz_in_termios_h=yes else *************** *** 3833,3842 **** fi ! echo "$as_me:3835: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5 echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_termios_h" >&6 - fi if test $ac_cv_sys_tiocgwinsz_in_termios_h != yes; then ! echo "$as_me:3840: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5 echo $ECHO_N "checking whether sys/ioctl.h defines TIOCGWINSZ... $ECHO_C" >&6 if test "${ac_cv_sys_tiocgwinsz_in_sys_ioctl_h+set}" = set; then --- 5010,5018 ---- fi ! echo "$as_me:$LINENO: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5 echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_termios_h" >&6 if test $ac_cv_sys_tiocgwinsz_in_termios_h != yes; then ! echo "$as_me:$LINENO: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5 echo $ECHO_N "checking whether sys/ioctl.h defines TIOCGWINSZ... $ECHO_C" >&6 if test "${ac_cv_sys_tiocgwinsz_in_sys_ioctl_h+set}" = set; then *************** *** 3844,3849 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 3846 "configure" ! #include "confdefs.h" #include #include --- 5020,5029 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include *************** *** 3854,3858 **** _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! egrep "yes" >/dev/null 2>&1; then ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=yes else --- 5034,5038 ---- _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ! $EGREP "yes" >/dev/null 2>&1; then ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=yes else *************** *** 3862,3878 **** fi ! echo "$as_me:3864: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5 echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6 if test $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h = yes; then ! cat >>confdefs.h <<\EOF #define GWINSZ_IN_SYS_IOCTL 1 ! EOF fi fi ! echo "$as_me:3876: checking whether signal handlers are of type void" >&5 echo $ECHO_N "checking whether signal handlers are of type void... $ECHO_C" >&6 if test "${bash_cv_void_sighandler+set}" = set; then --- 5042,5059 ---- fi ! echo "$as_me:$LINENO: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5 echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6 if test $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h = yes; then ! cat >>confdefs.h <<\_ACEOF #define GWINSZ_IN_SYS_IOCTL 1 ! _ACEOF fi fi ! ! echo "$as_me:$LINENO: checking whether signal handlers are of type void" >&5 echo $ECHO_N "checking whether signal handlers are of type void... $ECHO_C" >&6 if test "${bash_cv_void_sighandler+set}" = set; then *************** *** 3880,3885 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 3882 "configure" ! #include "confdefs.h" #include #include --- 5061,5070 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include *************** *** 3900,3932 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:3902: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:3905: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:3908: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:3911: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_void_sighandler=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 bash_cv_void_sighandler=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:3921: result: $bash_cv_void_sighandler" >&5 echo "${ECHO_T}$bash_cv_void_sighandler" >&6 if test $bash_cv_void_sighandler = yes; then ! cat >>confdefs.h <<\EOF #define VOID_SIGHANDLER 1 ! EOF fi ! echo "$as_me:3930: checking for TIOCSTAT in sys/ioctl.h" >&5 echo $ECHO_N "checking for TIOCSTAT in sys/ioctl.h... $ECHO_C" >&6 if test "${bash_cv_tiocstat_in_ioctl+set}" = set; then --- 5085,5118 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_void_sighandler=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! bash_cv_void_sighandler=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:$LINENO: result: $bash_cv_void_sighandler" >&5 echo "${ECHO_T}$bash_cv_void_sighandler" >&6 if test $bash_cv_void_sighandler = yes; then ! cat >>confdefs.h <<\_ACEOF #define VOID_SIGHANDLER 1 ! _ACEOF fi ! echo "$as_me:$LINENO: checking for TIOCSTAT in sys/ioctl.h" >&5 echo $ECHO_N "checking for TIOCSTAT in sys/ioctl.h... $ECHO_C" >&6 if test "${bash_cv_tiocstat_in_ioctl+set}" = set; then *************** *** 3934,3939 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 3936 "configure" ! #include "confdefs.h" #include #include --- 5120,5129 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include *************** *** 3947,3965 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:3949: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:3952: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:3955: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:3958: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_tiocstat_in_ioctl=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 bash_cv_tiocstat_in_ioctl=no fi --- 5137,5156 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_tiocstat_in_ioctl=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! bash_cv_tiocstat_in_ioctl=no fi *************** *** 3967,3980 **** fi ! echo "$as_me:3969: result: $bash_cv_tiocstat_in_ioctl" >&5 echo "${ECHO_T}$bash_cv_tiocstat_in_ioctl" >&6 if test $bash_cv_tiocstat_in_ioctl = yes; then ! cat >>confdefs.h <<\EOF #define TIOCSTAT_IN_SYS_IOCTL 1 ! EOF fi ! echo "$as_me:3978: checking for FIONREAD in sys/ioctl.h" >&5 echo $ECHO_N "checking for FIONREAD in sys/ioctl.h... $ECHO_C" >&6 if test "${bash_cv_fionread_in_ioctl+set}" = set; then --- 5158,5171 ---- fi ! echo "$as_me:$LINENO: result: $bash_cv_tiocstat_in_ioctl" >&5 echo "${ECHO_T}$bash_cv_tiocstat_in_ioctl" >&6 if test $bash_cv_tiocstat_in_ioctl = yes; then ! cat >>confdefs.h <<\_ACEOF #define TIOCSTAT_IN_SYS_IOCTL 1 ! _ACEOF fi ! echo "$as_me:$LINENO: checking for FIONREAD in sys/ioctl.h" >&5 echo $ECHO_N "checking for FIONREAD in sys/ioctl.h... $ECHO_C" >&6 if test "${bash_cv_fionread_in_ioctl+set}" = set; then *************** *** 3982,3987 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 3984 "configure" ! #include "confdefs.h" #include #include --- 5173,5182 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include *************** *** 3995,4013 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:3997: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:4000: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:4003: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:4006: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_fionread_in_ioctl=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 bash_cv_fionread_in_ioctl=no fi --- 5190,5209 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_fionread_in_ioctl=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! bash_cv_fionread_in_ioctl=no fi *************** *** 4015,4028 **** fi ! echo "$as_me:4017: result: $bash_cv_fionread_in_ioctl" >&5 echo "${ECHO_T}$bash_cv_fionread_in_ioctl" >&6 if test $bash_cv_fionread_in_ioctl = yes; then ! cat >>confdefs.h <<\EOF #define FIONREAD_IN_SYS_IOCTL 1 ! EOF fi ! echo "$as_me:4026: checking for speed_t in sys/types.h" >&5 echo $ECHO_N "checking for speed_t in sys/types.h... $ECHO_C" >&6 if test "${bash_cv_speed_t_in_sys_types+set}" = set; then --- 5211,5224 ---- fi ! echo "$as_me:$LINENO: result: $bash_cv_fionread_in_ioctl" >&5 echo "${ECHO_T}$bash_cv_fionread_in_ioctl" >&6 if test $bash_cv_fionread_in_ioctl = yes; then ! cat >>confdefs.h <<\_ACEOF #define FIONREAD_IN_SYS_IOCTL 1 ! _ACEOF fi ! echo "$as_me:$LINENO: checking for speed_t in sys/types.h" >&5 echo $ECHO_N "checking for speed_t in sys/types.h... $ECHO_C" >&6 if test "${bash_cv_speed_t_in_sys_types+set}" = set; then *************** *** 4030,4035 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 4032 "configure" ! #include "confdefs.h" #include int --- 5226,5235 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int *************** *** 4042,4060 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:4044: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:4047: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:4050: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:4053: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_speed_t_in_sys_types=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 bash_cv_speed_t_in_sys_types=no fi --- 5242,5261 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_speed_t_in_sys_types=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! bash_cv_speed_t_in_sys_types=no fi *************** *** 4062,4075 **** fi ! echo "$as_me:4064: result: $bash_cv_speed_t_in_sys_types" >&5 echo "${ECHO_T}$bash_cv_speed_t_in_sys_types" >&6 if test $bash_cv_speed_t_in_sys_types = yes; then ! cat >>confdefs.h <<\EOF #define SPEED_T_IN_SYS_TYPES 1 ! EOF fi ! echo "$as_me:4073: checking for struct winsize in sys/ioctl.h and termios.h" >&5 echo $ECHO_N "checking for struct winsize in sys/ioctl.h and termios.h... $ECHO_C" >&6 if test "${bash_cv_struct_winsize_header+set}" = set; then --- 5263,5276 ---- fi ! echo "$as_me:$LINENO: result: $bash_cv_speed_t_in_sys_types" >&5 echo "${ECHO_T}$bash_cv_speed_t_in_sys_types" >&6 if test $bash_cv_speed_t_in_sys_types = yes; then ! cat >>confdefs.h <<\_ACEOF #define SPEED_T_IN_SYS_TYPES 1 ! _ACEOF fi ! echo "$as_me:$LINENO: checking for struct winsize in sys/ioctl.h and termios.h" >&5 echo $ECHO_N "checking for struct winsize in sys/ioctl.h and termios.h... $ECHO_C" >&6 if test "${bash_cv_struct_winsize_header+set}" = set; then *************** *** 4077,4082 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 4079 "configure" ! #include "confdefs.h" #include #include --- 5278,5287 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include *************** *** 4090,4111 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:4092: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:4095: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:4098: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:4101: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_struct_winsize_header=ioctl_h else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF ! #line 4108 "configure" ! #include "confdefs.h" #include #include --- 5295,5321 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_struct_winsize_header=ioctl_h else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include #include *************** *** 4119,4137 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:4121: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:4124: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:4127: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:4130: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_struct_winsize_header=termios_h else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 bash_cv_struct_winsize_header=other fi --- 5329,5348 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_struct_winsize_header=termios_h else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! bash_cv_struct_winsize_header=other fi *************** *** 4143,4172 **** if test $bash_cv_struct_winsize_header = ioctl_h; then ! echo "$as_me:4145: result: sys/ioctl.h" >&5 echo "${ECHO_T}sys/ioctl.h" >&6 ! cat >>confdefs.h <<\EOF #define STRUCT_WINSIZE_IN_SYS_IOCTL 1 ! EOF elif test $bash_cv_struct_winsize_header = termios_h; then ! echo "$as_me:4152: result: termios.h" >&5 echo "${ECHO_T}termios.h" >&6 ! cat >>confdefs.h <<\EOF #define STRUCT_WINSIZE_IN_TERMIOS 1 ! EOF else ! echo "$as_me:4159: result: not found" >&5 echo "${ECHO_T}not found" >&6 fi ! echo "$as_me:4163: checking if struct dirent has a d_ino member" >&5 ! echo $ECHO_N "checking if struct dirent has a d_ino member... $ECHO_C" >&6 if test "${bash_cv_dirent_has_dino+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line 4169 "configure" ! #include "confdefs.h" #include --- 5354,5388 ---- if test $bash_cv_struct_winsize_header = ioctl_h; then ! echo "$as_me:$LINENO: result: sys/ioctl.h" >&5 echo "${ECHO_T}sys/ioctl.h" >&6 ! cat >>confdefs.h <<\_ACEOF #define STRUCT_WINSIZE_IN_SYS_IOCTL 1 ! _ACEOF elif test $bash_cv_struct_winsize_header = termios_h; then ! echo "$as_me:$LINENO: result: termios.h" >&5 echo "${ECHO_T}termios.h" >&6 ! cat >>confdefs.h <<\_ACEOF #define STRUCT_WINSIZE_IN_TERMIOS 1 ! _ACEOF else ! echo "$as_me:$LINENO: result: not found" >&5 echo "${ECHO_T}not found" >&6 fi ! ! echo "$as_me:$LINENO: checking for struct dirent.d_ino" >&5 ! echo $ECHO_N "checking for struct dirent.d_ino... $ECHO_C" >&6 if test "${bash_cv_dirent_has_dino+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include *************** *** 4201,4219 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:4203: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:4206: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:4209: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:4212: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_dirent_has_dino=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 bash_cv_dirent_has_dino=no fi --- 5417,5436 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_dirent_has_dino=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! bash_cv_dirent_has_dino=no fi *************** *** 4221,4241 **** fi ! echo "$as_me:4223: result: $bash_cv_dirent_has_dino" >&5 echo "${ECHO_T}$bash_cv_dirent_has_dino" >&6 if test $bash_cv_dirent_has_dino = yes; then ! cat >>confdefs.h <<\EOF ! #define STRUCT_DIRENT_HAS_D_INO 1 ! EOF fi ! echo "$as_me:4232: checking if struct dirent has a d_fileno member" >&5 ! echo $ECHO_N "checking if struct dirent has a d_fileno member... $ECHO_C" >&6 if test "${bash_cv_dirent_has_d_fileno+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line 4238 "configure" ! #include "confdefs.h" #include --- 5438,5463 ---- fi ! echo "$as_me:$LINENO: result: $bash_cv_dirent_has_dino" >&5 echo "${ECHO_T}$bash_cv_dirent_has_dino" >&6 if test $bash_cv_dirent_has_dino = yes; then ! cat >>confdefs.h <<\_ACEOF ! #define HAVE_STRUCT_DIRENT_D_INO 1 ! _ACEOF fi ! ! echo "$as_me:$LINENO: checking for struct dirent.d_fileno" >&5 ! echo $ECHO_N "checking for struct dirent.d_fileno... $ECHO_C" >&6 if test "${bash_cv_dirent_has_d_fileno+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include *************** *** 4270,4288 **** _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:4272: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:4275: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:4278: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:4281: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_dirent_has_d_fileno=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 bash_cv_dirent_has_d_fileno=no fi --- 5492,5511 ---- _ACEOF rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_dirent_has_d_fileno=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! bash_cv_dirent_has_d_fileno=no fi *************** *** 4290,4302 **** fi ! echo "$as_me:4292: result: $bash_cv_dirent_has_d_fileno" >&5 echo "${ECHO_T}$bash_cv_dirent_has_d_fileno" >&6 if test $bash_cv_dirent_has_d_fileno = yes; then ! cat >>confdefs.h <<\EOF ! #define STRUCT_DIRENT_HAS_D_FILENO 1 ! EOF fi case "$host_os" in aix*) prefer_curses=yes ;; --- 5513,5526 ---- fi ! echo "$as_me:$LINENO: result: $bash_cv_dirent_has_d_fileno" >&5 echo "${ECHO_T}$bash_cv_dirent_has_d_fileno" >&6 if test $bash_cv_dirent_has_d_fileno = yes; then ! cat >>confdefs.h <<\_ACEOF ! #define HAVE_STRUCT_DIRENT_D_FILENO 1 ! _ACEOF fi + case "$host_os" in aix*) prefer_curses=yes ;; *************** *** 4306,4310 **** _bash_needmsg=yes else ! echo "$as_me:4308: checking which library has the termcap functions" >&5 echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6 _bash_needmsg= --- 5530,5534 ---- _bash_needmsg=yes else ! echo "$as_me:$LINENO: checking which library has the termcap functions" >&5 echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6 _bash_needmsg= *************** *** 4313,4317 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else ! echo "$as_me:4315: checking for tgetent in -ltermcap" >&5 echo $ECHO_N "checking for tgetent in -ltermcap... $ECHO_C" >&6 if test "${ac_cv_lib_termcap_tgetent+set}" = set; then --- 5537,5616 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else ! echo "$as_me:$LINENO: checking for tgetent" >&5 ! echo $ECHO_N "checking for tgetent... $ECHO_C" >&6 ! if test "${ac_cv_func_tgetent+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char tgetent (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! /* Override any gcc2 internal prototype to avoid an error. */ ! #ifdef __cplusplus ! extern "C" ! { ! #endif ! /* We use char because int might match the return type of a gcc2 ! builtin and then its argument prototype would still apply. */ ! char tgetent (); ! /* The GNU C library defines this for functions which it implements ! to always fail with ENOSYS. Some functions are actually named ! something starting with __ and the normal name is an alias. */ ! #if defined (__stub_tgetent) || defined (__stub___tgetent) ! choke me ! #else ! char (*f) () = tgetent; ! #endif ! #ifdef __cplusplus ! } ! #endif ! ! int ! main () ! { ! return f != tgetent; ! ; ! return 0; ! } ! _ACEOF ! rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! ac_cv_func_tgetent=yes ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_cv_func_tgetent=no ! fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ! fi ! echo "$as_me:$LINENO: result: $ac_cv_func_tgetent" >&5 ! echo "${ECHO_T}$ac_cv_func_tgetent" >&6 ! if test $ac_cv_func_tgetent = yes; then ! bash_cv_termcap_lib=libc ! else ! echo "$as_me:$LINENO: checking for tgetent in -ltermcap" >&5 echo $ECHO_N "checking for tgetent in -ltermcap... $ECHO_C" >&6 if test "${ac_cv_lib_termcap_tgetent+set}" = set; then *************** *** 4321,4326 **** LIBS="-ltermcap $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line 4323 "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ --- 5620,5629 ---- LIBS="-ltermcap $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ *************** *** 4340,4358 **** _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:4342: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:4345: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:4348: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:4351: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_termcap_tgetent=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_termcap_tgetent=no fi --- 5643,5662 ---- _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_termcap_tgetent=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_termcap_tgetent=no fi *************** *** 4360,4369 **** LIBS=$ac_check_lib_save_LIBS fi ! echo "$as_me:4362: result: $ac_cv_lib_termcap_tgetent" >&5 echo "${ECHO_T}$ac_cv_lib_termcap_tgetent" >&6 if test $ac_cv_lib_termcap_tgetent = yes; then bash_cv_termcap_lib=libtermcap else ! echo "$as_me:4367: checking for tgetent in -ltinfo" >&5 echo $ECHO_N "checking for tgetent in -ltinfo... $ECHO_C" >&6 if test "${ac_cv_lib_tinfo_tgetent+set}" = set; then --- 5664,5673 ---- LIBS=$ac_check_lib_save_LIBS fi ! echo "$as_me:$LINENO: result: $ac_cv_lib_termcap_tgetent" >&5 echo "${ECHO_T}$ac_cv_lib_termcap_tgetent" >&6 if test $ac_cv_lib_termcap_tgetent = yes; then bash_cv_termcap_lib=libtermcap else ! echo "$as_me:$LINENO: checking for tgetent in -ltinfo" >&5 echo $ECHO_N "checking for tgetent in -ltinfo... $ECHO_C" >&6 if test "${ac_cv_lib_tinfo_tgetent+set}" = set; then *************** *** 4373,4378 **** LIBS="-ltinfo $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line 4375 "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ --- 5677,5686 ---- LIBS="-ltinfo $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ *************** *** 4392,4410 **** _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:4394: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:4397: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:4400: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:4403: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_tinfo_tgetent=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_tinfo_tgetent=no fi --- 5700,5719 ---- _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_tinfo_tgetent=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_tinfo_tgetent=no fi *************** *** 4412,4421 **** LIBS=$ac_check_lib_save_LIBS fi ! echo "$as_me:4414: result: $ac_cv_lib_tinfo_tgetent" >&5 echo "${ECHO_T}$ac_cv_lib_tinfo_tgetent" >&6 if test $ac_cv_lib_tinfo_tgetent = yes; then bash_cv_termcap_lib=libtinfo else ! echo "$as_me:4419: checking for tgetent in -lcurses" >&5 echo $ECHO_N "checking for tgetent in -lcurses... $ECHO_C" >&6 if test "${ac_cv_lib_curses_tgetent+set}" = set; then --- 5721,5730 ---- LIBS=$ac_check_lib_save_LIBS fi ! echo "$as_me:$LINENO: result: $ac_cv_lib_tinfo_tgetent" >&5 echo "${ECHO_T}$ac_cv_lib_tinfo_tgetent" >&6 if test $ac_cv_lib_tinfo_tgetent = yes; then bash_cv_termcap_lib=libtinfo else ! echo "$as_me:$LINENO: checking for tgetent in -lcurses" >&5 echo $ECHO_N "checking for tgetent in -lcurses... $ECHO_C" >&6 if test "${ac_cv_lib_curses_tgetent+set}" = set; then *************** *** 4425,4430 **** LIBS="-lcurses $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line 4427 "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ --- 5734,5743 ---- LIBS="-lcurses $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ *************** *** 4444,4462 **** _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:4446: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:4449: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:4452: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:4455: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_curses_tgetent=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_curses_tgetent=no fi --- 5757,5776 ---- _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_curses_tgetent=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_curses_tgetent=no fi *************** *** 4464,4473 **** LIBS=$ac_check_lib_save_LIBS fi ! echo "$as_me:4466: result: $ac_cv_lib_curses_tgetent" >&5 echo "${ECHO_T}$ac_cv_lib_curses_tgetent" >&6 if test $ac_cv_lib_curses_tgetent = yes; then bash_cv_termcap_lib=libcurses else ! echo "$as_me:4471: checking for tgetent in -lncurses" >&5 echo $ECHO_N "checking for tgetent in -lncurses... $ECHO_C" >&6 if test "${ac_cv_lib_ncurses_tgetent+set}" = set; then --- 5778,5787 ---- LIBS=$ac_check_lib_save_LIBS fi ! echo "$as_me:$LINENO: result: $ac_cv_lib_curses_tgetent" >&5 echo "${ECHO_T}$ac_cv_lib_curses_tgetent" >&6 if test $ac_cv_lib_curses_tgetent = yes; then bash_cv_termcap_lib=libcurses else ! echo "$as_me:$LINENO: checking for tgetent in -lncurses" >&5 echo $ECHO_N "checking for tgetent in -lncurses... $ECHO_C" >&6 if test "${ac_cv_lib_ncurses_tgetent+set}" = set; then *************** *** 4477,4482 **** LIBS="-lncurses $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line 4479 "configure" ! #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ --- 5791,5800 ---- LIBS="-lncurses $LIBS" cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ *************** *** 4496,4514 **** _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:4498: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:4501: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:4504: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:4507: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_ncurses_tgetent=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_lib_ncurses_tgetent=no fi --- 5814,5833 ---- _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_ncurses_tgetent=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_lib_ncurses_tgetent=no fi *************** *** 4516,4520 **** LIBS=$ac_check_lib_save_LIBS fi ! echo "$as_me:4518: result: $ac_cv_lib_ncurses_tgetent" >&5 echo "${ECHO_T}$ac_cv_lib_ncurses_tgetent" >&6 if test $ac_cv_lib_ncurses_tgetent = yes; then --- 5835,5839 ---- LIBS=$ac_check_lib_save_LIBS fi ! echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_tgetent" >&5 echo "${ECHO_T}$ac_cv_lib_ncurses_tgetent" >&6 if test $ac_cv_lib_ncurses_tgetent = yes; then *************** *** 4532,4540 **** fi if test "X$_bash_needmsg" = "Xyes"; then ! echo "$as_me:4535: checking which library has the termcap functions" >&5 echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6 fi ! echo "$as_me:4538: result: using $bash_cv_termcap_lib" >&5 echo "${ECHO_T}using $bash_cv_termcap_lib" >&6 if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then --- 5851,5861 ---- fi + fi + if test "X$_bash_needmsg" = "Xyes"; then ! echo "$as_me:$LINENO: checking which library has the termcap functions" >&5 echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6 fi ! echo "$as_me:$LINENO: result: using $bash_cv_termcap_lib" >&5 echo "${ECHO_T}using $bash_cv_termcap_lib" >&6 if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then *************** *** 4551,4554 **** --- 5872,5878 ---- TERMCAP_LIB=-lncurses TERMCAP_DEP= + elif test $bash_cv_termcap_lib = libc; then + TERMCAP_LIB= + TERMCAP_DEP= else TERMCAP_LIB=-lcurses *************** *** 4564,4587 **** fi for ac_header in wctype.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ! echo "$as_me:4569: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! cat >conftest.$ac_ext <<_ACEOF ! #line 4575 "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF ! if { (eval echo "$as_me:4579: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:4585: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then --- 5888,5960 ---- fi + + for ac_header in wctype.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ! if eval "test \"\${$as_ac_Header+set}\" = set"; then ! echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else ! # Is the header compilable? ! echo "$as_me:$LINENO: checking $ac_header usability" >&5 ! echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! $ac_includes_default ! #include <$ac_header> ! _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! ac_header_compiler=yes ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_header_compiler=no ! fi ! rm -f conftest.$ac_objext conftest.$ac_ext ! echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ! echo "${ECHO_T}$ac_header_compiler" >&6 ! ! # Is the header present? ! echo "$as_me:$LINENO: checking $ac_header presence" >&5 ! echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include <$ac_header> _ACEOF ! if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then *************** *** 4594,4635 **** fi if test -z "$ac_cpp_err"; then ! eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_ext fi ! echo "$as_me:4604: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then ! cat >>confdefs.h <&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! cat >conftest.$ac_ext <<_ACEOF ! #line 4623 "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF ! if { (eval echo "$as_me:4627: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:4633: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then --- 5967,6102 ---- fi if test -z "$ac_cpp_err"; then ! ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? + case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX + ## ------------------------------------ ## + ## Report this to bug-autoconf@gnu.org. ## + ## ------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 + echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX + ## ------------------------------------ ## + ## Report this to bug-autoconf@gnu.org. ## + ## ------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + esac + echo "$as_me:$LINENO: checking for $ac_header" >&5 + echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + eval "$as_ac_Header=$ac_header_preproc" fi ! echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + + fi if test `eval echo '${'$as_ac_Header'}'` = yes; then ! cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ! _ACEOF fi + done + for ac_header in wchar.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ! if eval "test \"\${$as_ac_Header+set}\" = set"; then ! echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else ! # Is the header compilable? ! echo "$as_me:$LINENO: checking $ac_header usability" >&5 ! echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! $ac_includes_default ! #include <$ac_header> ! _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! ac_header_compiler=yes ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_header_compiler=no ! fi ! rm -f conftest.$ac_objext conftest.$ac_ext ! echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ! echo "${ECHO_T}$ac_header_compiler" >&6 ! ! # Is the header present? ! echo "$as_me:$LINENO: checking $ac_header presence" >&5 ! echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include <$ac_header> _ACEOF ! if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then *************** *** 4642,4683 **** fi if test -z "$ac_cpp_err"; then ! eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_ext fi ! echo "$as_me:4652: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then ! cat >>confdefs.h <&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! cat >conftest.$ac_ext <<_ACEOF ! #line 4671 "configure" ! #include "confdefs.h" #include <$ac_header> _ACEOF ! if { (eval echo "$as_me:4675: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! egrep -v '^ *\+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:4681: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then --- 6109,6244 ---- fi if test -z "$ac_cpp_err"; then ! ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? + case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX + ## ------------------------------------ ## + ## Report this to bug-autoconf@gnu.org. ## + ## ------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 + echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX + ## ------------------------------------ ## + ## Report this to bug-autoconf@gnu.org. ## + ## ------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + esac + echo "$as_me:$LINENO: checking for $ac_header" >&5 + echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + eval "$as_ac_Header=$ac_header_preproc" fi ! echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + + fi if test `eval echo '${'$as_ac_Header'}'` = yes; then ! cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ! _ACEOF fi + done + for ac_header in langinfo.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ! if eval "test \"\${$as_ac_Header+set}\" = set"; then ! echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else ! # Is the header compilable? ! echo "$as_me:$LINENO: checking $ac_header usability" >&5 ! echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! $ac_includes_default ! #include <$ac_header> ! _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! ac_header_compiler=yes ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_header_compiler=no ! fi ! rm -f conftest.$ac_objext conftest.$ac_ext ! echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ! echo "${ECHO_T}$ac_header_compiler" >&6 ! ! # Is the header present? ! echo "$as_me:$LINENO: checking $ac_header presence" >&5 ! echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include <$ac_header> _ACEOF ! if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? ! grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then *************** *** 4690,4712 **** fi if test -z "$ac_cpp_err"; then ! eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_ext fi ! echo "$as_me:4700: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then ! cat >>confdefs.h <&5 echo $ECHO_N "checking for mbsrtowcs... $ECHO_C" >&6 if test "${ac_cv_func_mbsrtowcs+set}" = set; then --- 6251,6320 ---- fi if test -z "$ac_cpp_err"; then ! ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? + case $ac_header_compiler:$ac_header_preproc in + yes:no ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX + ## ------------------------------------ ## + ## Report this to bug-autoconf@gnu.org. ## + ## ------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + no:yes ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 + echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + ( + cat <<\_ASBOX + ## ------------------------------------ ## + ## Report this to bug-autoconf@gnu.org. ## + ## ------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 + ;; + esac + echo "$as_me:$LINENO: checking for $ac_header" >&5 + echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + eval "$as_ac_Header=$ac_header_preproc" fi ! echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 + + fi if test `eval echo '${'$as_ac_Header'}'` = yes; then ! cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ! _ACEOF fi + done ! ! echo "$as_me:$LINENO: checking for mbsrtowcs" >&5 echo $ECHO_N "checking for mbsrtowcs... $ECHO_C" >&6 if test "${ac_cv_func_mbsrtowcs+set}" = set; then *************** *** 4714,4734 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 4716 "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char mbsrtowcs (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char mbsrtowcs (); - char (*f) (); - - int - main () - { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named --- 6322,6348 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char mbsrtowcs (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" + { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char mbsrtowcs (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named *************** *** 4737,4743 **** choke me #else ! f = mbsrtowcs; #endif ; return 0; --- 6351,6364 ---- choke me #else ! char (*f) () = mbsrtowcs; ! #endif ! #ifdef __cplusplus ! } #endif + int + main () + { + return f != mbsrtowcs; ; return 0; *************** *** 4745,4799 **** _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:4747: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:4750: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:4753: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:4756: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_mbsrtowcs=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_func_mbsrtowcs=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi ! echo "$as_me:4766: result: $ac_cv_func_mbsrtowcs" >&5 echo "${ECHO_T}$ac_cv_func_mbsrtowcs" >&6 if test $ac_cv_func_mbsrtowcs = yes; then ! cat >>confdefs.h <<\EOF #define HAVE_MBSRTOWCS 1 ! EOF fi ! echo "$as_me:4775: checking for wcwidth" >&5 ! echo $ECHO_N "checking for wcwidth... $ECHO_C" >&6 ! if test "${ac_cv_func_wcwidth+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line 4781 "configure" ! #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char wcwidth (); below. */ ! #include /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ ! char wcwidth (); ! char (*f) (); int main () { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named --- 6366,6664 ---- _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_mbsrtowcs=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_func_mbsrtowcs=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi ! echo "$as_me:$LINENO: result: $ac_cv_func_mbsrtowcs" >&5 echo "${ECHO_T}$ac_cv_func_mbsrtowcs" >&6 if test $ac_cv_func_mbsrtowcs = yes; then ! cat >>confdefs.h <<\_ACEOF #define HAVE_MBSRTOWCS 1 ! _ACEOF fi ! echo "$as_me:$LINENO: checking for mbrtowc" >&5 ! echo $ECHO_N "checking for mbrtowc... $ECHO_C" >&6 ! if test "${ac_cv_func_mbrtowc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char mbrtowc (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" + { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ ! char mbrtowc (); ! /* The GNU C library defines this for functions which it implements ! to always fail with ENOSYS. Some functions are actually named ! something starting with __ and the normal name is an alias. */ ! #if defined (__stub_mbrtowc) || defined (__stub___mbrtowc) ! choke me ! #else ! char (*f) () = mbrtowc; ! #endif ! #ifdef __cplusplus ! } ! #endif ! ! int ! main () ! { ! return f != mbrtowc; ! ; ! return 0; ! } ! _ACEOF ! rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! ac_cv_func_mbrtowc=yes ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_cv_func_mbrtowc=no ! fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ! fi ! echo "$as_me:$LINENO: result: $ac_cv_func_mbrtowc" >&5 ! echo "${ECHO_T}$ac_cv_func_mbrtowc" >&6 ! if test $ac_cv_func_mbrtowc = yes; then ! cat >>confdefs.h <<\_ACEOF ! #define HAVE_MBRTOWC 1 ! _ACEOF ! ! fi ! ! echo "$as_me:$LINENO: checking for mbrlen" >&5 ! echo $ECHO_N "checking for mbrlen... $ECHO_C" >&6 ! if test "${ac_cv_func_mbrlen+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char mbrlen (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! /* Override any gcc2 internal prototype to avoid an error. */ ! #ifdef __cplusplus ! extern "C" ! { ! #endif ! /* We use char because int might match the return type of a gcc2 ! builtin and then its argument prototype would still apply. */ ! char mbrlen (); ! /* The GNU C library defines this for functions which it implements ! to always fail with ENOSYS. Some functions are actually named ! something starting with __ and the normal name is an alias. */ ! #if defined (__stub_mbrlen) || defined (__stub___mbrlen) ! choke me ! #else ! char (*f) () = mbrlen; ! #endif ! #ifdef __cplusplus ! } ! #endif ! ! int ! main () ! { ! return f != mbrlen; ! ; ! return 0; ! } ! _ACEOF ! rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! ac_cv_func_mbrlen=yes ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_cv_func_mbrlen=no ! fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ! fi ! echo "$as_me:$LINENO: result: $ac_cv_func_mbrlen" >&5 ! echo "${ECHO_T}$ac_cv_func_mbrlen" >&6 ! if test $ac_cv_func_mbrlen = yes; then ! cat >>confdefs.h <<\_ACEOF ! #define HAVE_MBRLEN 1 ! _ACEOF ! ! fi ! ! echo "$as_me:$LINENO: checking for wctomb" >&5 ! echo $ECHO_N "checking for wctomb... $ECHO_C" >&6 ! if test "${ac_cv_func_wctomb+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char wctomb (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! /* Override any gcc2 internal prototype to avoid an error. */ ! #ifdef __cplusplus ! extern "C" ! { ! #endif ! /* We use char because int might match the return type of a gcc2 ! builtin and then its argument prototype would still apply. */ ! char wctomb (); ! /* The GNU C library defines this for functions which it implements ! to always fail with ENOSYS. Some functions are actually named ! something starting with __ and the normal name is an alias. */ ! #if defined (__stub_wctomb) || defined (__stub___wctomb) ! choke me ! #else ! char (*f) () = wctomb; ! #endif ! #ifdef __cplusplus ! } ! #endif int main () { + return f != wctomb; + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_wctomb=yes + else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_wctomb=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_func_wctomb" >&5 + echo "${ECHO_T}$ac_cv_func_wctomb" >&6 + if test $ac_cv_func_wctomb = yes; then + cat >>confdefs.h <<\_ACEOF + #define HAVE_WCTOMB 1 + _ACEOF + + fi + + echo "$as_me:$LINENO: checking for wcwidth" >&5 + echo $ECHO_N "checking for wcwidth... $ECHO_C" >&6 + if test "${ac_cv_func_wcwidth+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF + #line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char wcwidth (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + #ifdef __STDC__ + # include + #else + # include + #endif + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" + { + #endif + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char wcwidth (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named *************** *** 4802,4808 **** choke me #else ! f = wcwidth; #endif ; return 0; --- 6667,6680 ---- choke me #else ! char (*f) () = wcwidth; ! #endif ! #ifdef __cplusplus ! } #endif + int + main () + { + return f != wcwidth; ; return 0; *************** *** 4810,4854 **** _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:4812: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:4815: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:4818: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:4821: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_wcwidth=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ac_cv_func_wcwidth=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi ! echo "$as_me:4831: result: $ac_cv_func_wcwidth" >&5 echo "${ECHO_T}$ac_cv_func_wcwidth" >&6 if test $ac_cv_func_wcwidth = yes; then ! cat >>confdefs.h <<\EOF #define HAVE_WCWIDTH 1 ! EOF fi ! echo "$as_me:4840: checking for mbstate_t" >&5 echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 if test "${bash_cv_have_mbstate_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test "$cross_compiling" = yes; then - { { echo "$as_me:4846: error: cannot run test program while cross compiling" >&5 - echo "$as_me: error: cannot run test program while cross compiling" >&2;} - { (exit 1); exit 1; }; } - else cat >conftest.$ac_ext <<_ACEOF ! #line 4851 "configure" ! #include "confdefs.h" #include --- 6682,6806 ---- _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_wcwidth=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ac_cv_func_wcwidth=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi ! echo "$as_me:$LINENO: result: $ac_cv_func_wcwidth" >&5 echo "${ECHO_T}$ac_cv_func_wcwidth" >&6 if test $ac_cv_func_wcwidth = yes; then ! cat >>confdefs.h <<\_ACEOF #define HAVE_WCWIDTH 1 ! _ACEOF ! ! fi ! ! echo "$as_me:$LINENO: checking for wcsdup" >&5 ! echo $ECHO_N "checking for wcsdup... $ECHO_C" >&6 ! if test "${ac_cv_func_wcsdup+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! /* System header to define __stub macros and hopefully few prototypes, ! which can conflict with char wcsdup (); below. ! Prefer to if __STDC__ is defined, since ! exists even on freestanding compilers. */ ! #ifdef __STDC__ ! # include ! #else ! # include ! #endif ! /* Override any gcc2 internal prototype to avoid an error. */ ! #ifdef __cplusplus ! extern "C" ! { ! #endif ! /* We use char because int might match the return type of a gcc2 ! builtin and then its argument prototype would still apply. */ ! char wcsdup (); ! /* The GNU C library defines this for functions which it implements ! to always fail with ENOSYS. Some functions are actually named ! something starting with __ and the normal name is an alias. */ ! #if defined (__stub_wcsdup) || defined (__stub___wcsdup) ! choke me ! #else ! char (*f) () = wcsdup; ! #endif ! #ifdef __cplusplus ! } ! #endif ! ! int ! main () ! { ! return f != wcsdup; ! ; ! return 0; ! } ! _ACEOF ! rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! ac_cv_func_wcsdup=yes ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! ! ac_cv_func_wcsdup=no ! fi ! rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ! fi ! echo "$as_me:$LINENO: result: $ac_cv_func_wcsdup" >&5 ! echo "${ECHO_T}$ac_cv_func_wcsdup" >&6 ! if test $ac_cv_func_wcsdup = yes; then ! cat >>confdefs.h <<\_ACEOF ! #define HAVE_WCSDUP 1 ! _ACEOF fi ! ! echo "$as_me:$LINENO: checking for mbstate_t" >&5 echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 if test "${bash_cv_have_mbstate_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include *************** *** 4856,4894 **** main () { mbstate_t ps; return 0; } _ACEOF ! rm -f conftest$ac_exeext ! if { (eval echo "$as_me:4863: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:4866: \$? = $ac_status" >&5 ! (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ! { (eval echo "$as_me:4868: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:4871: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_have_mbstate_t=yes else ! echo "$as_me: program exited with status $ac_status" >&5 ! echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 bash_cv_have_mbstate_t=no fi ! rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ! fi fi ! echo "$as_me:4883: result: $bash_cv_have_mbstate_t" >&5 echo "${ECHO_T}$bash_cv_have_mbstate_t" >&6 if test $bash_cv_have_mbstate_t = yes; then ! cat >>confdefs.h <<\EOF #define HAVE_MBSTATE_T 1 ! EOF fi ! echo "$as_me:4892: checking for nl_langinfo and CODESET" >&5 echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6 if test "${bash_cv_langinfo_codeset+set}" = set; then --- 6808,6851 ---- main () { + mbstate_t ps; + mbstate_t *psp; + psp = (mbstate_t *)0; + + ; return 0; } _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_have_mbstate_t=yes else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! bash_cv_have_mbstate_t=no fi ! rm -f conftest.$ac_objext conftest.$ac_ext fi ! echo "$as_me:$LINENO: result: $bash_cv_have_mbstate_t" >&5 echo "${ECHO_T}$bash_cv_have_mbstate_t" >&6 if test $bash_cv_have_mbstate_t = yes; then ! cat >>confdefs.h <<\_ACEOF #define HAVE_MBSTATE_T 1 ! _ACEOF fi ! echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5 echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6 if test "${bash_cv_langinfo_codeset+set}" = set; then *************** *** 4896,4901 **** else cat >conftest.$ac_ext <<_ACEOF ! #line 4898 "configure" ! #include "confdefs.h" #include int --- 6853,6862 ---- else cat >conftest.$ac_ext <<_ACEOF ! #line $LINENO "configure" ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ #include int *************** *** 4908,4939 **** _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:4910: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:4913: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:4916: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:4919: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_langinfo_codeset=yes else echo "$as_me: failed program was:" >&5 ! cat conftest.$ac_ext >&5 bash_cv_langinfo_codeset=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi ! echo "$as_me:4929: result: $bash_cv_langinfo_codeset" >&5 echo "${ECHO_T}$bash_cv_langinfo_codeset" >&6 if test $bash_cv_langinfo_codeset = yes; then ! cat >>confdefs.h <<\EOF #define HAVE_LANGINFO_CODESET 1 ! EOF fi case "$host_cpu" in *cray*) LOCAL_CFLAGS=-DCRAY ;; --- 6869,6903 ---- _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then bash_cv_langinfo_codeset=yes else echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! bash_cv_langinfo_codeset=no fi rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi ! echo "$as_me:$LINENO: result: $bash_cv_langinfo_codeset" >&5 echo "${ECHO_T}$bash_cv_langinfo_codeset" >&6 if test $bash_cv_langinfo_codeset = yes; then ! cat >>confdefs.h <<\_ACEOF #define HAVE_LANGINFO_CODESET 1 ! _ACEOF fi + + case "$host_cpu" in *cray*) LOCAL_CFLAGS=-DCRAY ;; *************** *** 4951,4959 **** # if test -f ${srcdir}/support/shobj-conf; then ! echo "$as_me:4953: checking configuration for building shared libraries" >&5 echo $ECHO_N "checking configuration for building shared libraries... $ECHO_C" >&6 eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}` ! echo "$as_me:4957: result: $SHLIB_STATUS" >&5 echo "${ECHO_T}$SHLIB_STATUS" >&6 --- 6915,6934 ---- # if test -f ${srcdir}/support/shobj-conf; then ! echo "$as_me:$LINENO: checking configuration for building shared libraries" >&5 echo $ECHO_N "checking configuration for building shared libraries... $ECHO_C" >&6 eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}` ! ! ! ! ! ! ! ! ! ! ! ! echo "$as_me:$LINENO: result: $SHLIB_STATUS" >&5 echo "${ECHO_T}$SHLIB_STATUS" >&6 *************** *** 4969,4972 **** --- 6944,6948 ---- SHLIB_MINOR=`expr "$LIBVERSION" : '[0-9]\.\([0-9]\).*'` + fi *************** *** 4980,4983 **** --- 6956,6964 ---- fi + + + + + case "$host_os" in msdosdjgpp*) BUILD_DIR=`pwd.exe` ;; # to prevent //d/path/file *************** *** 4985,4990 **** esac ! ac_config_files="$ac_config_files Makefile doc/Makefile examples/Makefile shlib/Makefile" ! ac_config_commands="$ac_config_commands default" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure --- 6966,6988 ---- esac ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ac_config_files="$ac_config_files Makefile doc/Makefile examples/Makefile shlib/Makefile" ! ac_config_commands="$ac_config_commands default" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure *************** *** 4997,5001 **** # the --recheck option to rerun configure. # ! # `ac_cv_env_foo' variables (set or unset) will be overriden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. --- 6995,6999 ---- # the --recheck option to rerun configure. # ! # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. *************** *** 5032,5036 **** /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache ! if cmp -s $cache_file confcache; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" --- 7030,7034 ---- /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache ! if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" *************** *** 5063,5074 **** DEFS=-DHAVE_CONFIG_H : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" ! { echo "$as_me:5068: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL ! # Generated automatically by configure. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging --- 7061,7088 ---- DEFS=-DHAVE_CONFIG_H + ac_libobjs= + ac_ltlibobjs= + for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_i=`echo "$ac_i" | + sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' + done + LIBOBJS=$ac_libobjs + + LTLIBOBJS=$ac_ltlibobjs + + + : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" ! { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL ! # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging *************** *** 5076,5095 **** debug=false SHELL=\${CONFIG_SHELL-$SHELL} - ac_cs_invocation="\$0 \$@" - _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi # Name of the executable. ! as_me=`echo "$0" |sed 's,.*[\\/],,'` if expr a : '\(a\)' >/dev/null 2>&1; then --- 7090,7285 ---- debug=false + ac_cs_recheck=false + ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF + ## --------------------- ## + ## M4sh Initialization. ## + ## --------------------- ## + # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi + # Support unset when possible. + if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset + else + as_unset=false + fi + + + # Work around bugs in pre-3.0 UWIN ksh. + $as_unset ENV MAIL MAILPATH + PS1='$ ' + PS2='> ' + PS4='+ ' + + # NLS nuisances. + for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME + do + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi + done + + # Required to use basename. + if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr + else + as_expr=false + fi + + if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename + else + as_basename=false + fi + + # Name of the executable. ! as_me=`$as_basename "$0" || ! $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ ! X"$0" : 'X\(//\)$' \| \ ! X"$0" : 'X\(/\)$' \| \ ! . : '\(.\)' 2>/dev/null || ! echo X/"$0" | ! sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } ! /^X\/\(\/\/\)$/{ s//\1/; q; } ! /^X\/\(\/\).*/{ s//\1/; q; } ! s/.*/./; q'` ! ! ! # PATH needs CR, and LINENO needs CR and PATH. ! # Avoid depending upon Character Ranges. ! as_cr_letters='abcdefghijklmnopqrstuvwxyz' ! as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' ! as_cr_Letters=$as_cr_letters$as_cr_LETTERS ! as_cr_digits='0123456789' ! as_cr_alnum=$as_cr_Letters$as_cr_digits ! ! # The user is always right. ! if test "${PATH_SEPARATOR+set}" != set; then ! echo "#! /bin/sh" >conf$$.sh ! echo "exit 0" >>conf$$.sh ! chmod +x conf$$.sh ! if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then ! PATH_SEPARATOR=';' ! else ! PATH_SEPARATOR=: ! fi ! rm -f conf$$.sh ! fi ! ! ! as_lineno_1=$LINENO ! as_lineno_2=$LINENO ! as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` ! test "x$as_lineno_1" != "x$as_lineno_2" && ! test "x$as_lineno_3" = "x$as_lineno_2" || { ! # Find who we are. Look in the path if we contain no path at all ! # relative or not. ! case $0 in ! *[\\/]* ) as_myself=$0 ;; ! *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break ! done ! ! ;; ! esac ! # We did not find ourselves, most probably we were run as `sh COMMAND' ! # in which case we are not to be found in the path. ! if test "x$as_myself" = x; then ! as_myself=$0 ! fi ! if test ! -f "$as_myself"; then ! { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 ! echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} ! { (exit 1); exit 1; }; } ! fi ! case $CONFIG_SHELL in ! '') ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for as_base in sh bash ksh sh5; do ! case $as_dir in ! /*) ! if ("$as_dir/$as_base" -c ' ! as_lineno_1=$LINENO ! as_lineno_2=$LINENO ! as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` ! test "x$as_lineno_1" != "x$as_lineno_2" && ! test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then ! $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } ! $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } ! CONFIG_SHELL=$as_dir/$as_base ! export CONFIG_SHELL ! exec "$CONFIG_SHELL" "$0" ${1+"$@"} ! fi;; ! esac ! done ! done ! ;; ! esac ! ! # Create $as_me.lineno as a copy of $as_myself, but with $LINENO ! # uniformly replaced by the line number. The first 'sed' inserts a ! # line-number line before each line; the second 'sed' does the real ! # work. The second script uses 'N' to pair each line-number line ! # with the numbered line, and appends trailing '-' during ! # substitution so that $LINENO is not a special case at line end. ! # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the ! # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) ! sed '=' <$as_myself | ! sed ' ! N ! s,$,-, ! : loop ! s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, ! t loop ! s,-$,, ! s,^['$as_cr_digits']*\n,, ! ' >$as_me.lineno && ! chmod +x $as_me.lineno || ! { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 ! echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} ! { (exit 1); exit 1; }; } ! ! # Don't try to exec as it changes $[0], causing all sort of problems ! # (the dirname of $[0] is not the place where we might find the ! # original and so on. Autoconf is especially sensible to this). ! . ./$as_me.lineno ! # Exit status is that of the last command. ! exit ! } ! ! ! case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in ! *c*,-n*) ECHO_N= ECHO_C=' ! ' ECHO_T=' ' ;; ! *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; ! *) ECHO_N= ECHO_C='\c' ECHO_T= ;; ! esac if expr a : '\(a\)' >/dev/null 2>&1; then *************** *** 5117,5138 **** rm -f conf$$ conf$$.exe conf$$.file ! as_executable_p="test -f" ! ! # Support unset when possible. ! if (FOO=FOO; unset FOO) >/dev/null 2>&1; then ! as_unset=unset else ! as_unset=false fi ! # NLS nuisances. ! $as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; } ! $as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; } ! $as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; } ! $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; } ! $as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; } ! $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; } ! $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; } ! $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; } # IFS --- 7307,7324 ---- rm -f conf$$ conf$$.exe conf$$.file ! if mkdir -p . 2>/dev/null; then ! as_mkdir_p=: else ! as_mkdir_p=false fi ! as_executable_p="test -f" ! ! # Sed expression to map a string onto a valid CPP name. ! as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" ! ! # Sed expression to map a string onto a valid variable name. ! as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" ! # IFS *************** *** 5143,5150 **** # CDPATH. ! $as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; } exec 6>&1 _ACEOF --- 7329,7360 ---- # CDPATH. ! $as_unset CDPATH exec 6>&1 + # Open the log real soon, to keep \$[0] and so on meaningful, and to + # report actual input values of CONFIG_FILES etc. instead of their + # values after options handling. Logging --version etc. is OK. + exec 5>>config.log + { + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX + ## Running $as_me. ## + _ASBOX + } >&5 + cat >&5 <<_CSEOF + + This file was extended by readline $as_me 5.0-rc1, which was + generated by GNU Autoconf 2.57. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + + _CSEOF + echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 + echo >&5 _ACEOF *************** *** 5166,5170 **** fi ! cat >>$CONFIG_STATUS <<\EOF ac_cs_usage="\ --- 7376,7380 ---- fi ! cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ *************** *** 5176,5179 **** --- 7386,7390 ---- -h, --help print this help, then exit -V, --version print version number, then exit + -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions *************** *** 5193,5202 **** Report bugs to ." ! EOF ! cat >>$CONFIG_STATUS <." ! _ACEOF ! cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ ! readline config.status 5.0-rc1 ! configured by $0, generated by GNU Autoconf 2.57, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" *************** *** 5207,5213 **** srcdir=$srcdir INSTALL="$INSTALL" ! EOF ! cat >>$CONFIG_STATUS <<\EOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. --- 7418,7424 ---- srcdir=$srcdir INSTALL="$INSTALL" ! _ACEOF ! cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. *************** *** 5219,5246 **** ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ! shift ! set dummy "$ac_option" "$ac_optarg" ${1+"$@"} ! shift ;; - -*);; *) # This is not an option, so the user has probably given explicit # arguments. ac_need_defaults=false;; esac ! case $1 in # Handling of the options. ! EOF ! cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header ! { { echo "$as_me:5244: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 --- 7430,7457 ---- ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ! ac_shift=: ! ;; ! -*) ! ac_option=$1 ! ac_optarg=$2 ! ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. + ac_option=$1 ac_need_defaults=false;; esac ! case $ac_option in # Handling of the options. ! _ACEOF ! cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ! ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header ! { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 *************** *** 5252,5265 **** debug=: ;; --file | --fil | --fi | --f ) ! shift ! CONFIG_FILES="$CONFIG_FILES $1" ac_need_defaults=false;; --header | --heade | --head | --hea ) ! shift ! CONFIG_HEADERS="$CONFIG_HEADERS $1" ac_need_defaults=false;; # This is an error. ! -*) { { echo "$as_me:5263: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 --- 7463,7479 ---- debug=: ;; --file | --fil | --fi | --f ) ! $ac_shift ! CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) ! $ac_shift ! CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; # This is an error. ! -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 *************** *** 5273,5295 **** done ! exec 5>>config.log ! cat >&5 << _ACEOF ! ## ----------------------- ## ! ## Running config.status. ## ! ## ----------------------- ## ! This file was extended by $as_me (readline 4.3) 2.52, executed with ! CONFIG_FILES = $CONFIG_FILES ! CONFIG_HEADERS = $CONFIG_HEADERS ! CONFIG_LINKS = $CONFIG_LINKS ! CONFIG_COMMANDS = $CONFIG_COMMANDS ! > $ac_cs_invocation ! on `(hostname || uname -n) 2>/dev/null | sed 1q` _ACEOF - EOF ! cat >>$CONFIG_STATUS <<\EOF for ac_config_target in $ac_config_targets do --- 7487,7511 ---- done ! ac_configure_extra_args= ! if $ac_cs_silent; then ! exec 6>/dev/null ! ac_configure_extra_args="$ac_configure_extra_args --silent" ! fi ! _ACEOF ! cat >>$CONFIG_STATUS <<_ACEOF ! if \$ac_cs_recheck; then ! echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 ! exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion ! fi _ACEOF ! ! ! ! ! cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do *************** *** 5302,5306 **** "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; ! *) { { echo "$as_me:5304: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; --- 7518,7522 ---- "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; ! *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; *************** *** 5318,5321 **** --- 7534,7540 ---- fi + # Have a temporary directory for convenience. Make it in the build tree + # simply because there is no reason to put it here, and in addition, + # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || *************** *** 5326,5346 **** # Create a (secure) tmp directory for tmp files. ! : ${TMPDIR=/tmp} { ! tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { ! tmp=$TMPDIR/cs$$-$RANDOM (umask 077 && mkdir $tmp) } || { ! echo "$me: cannot create a temporary directory in $TMPDIR" >&2 { (exit 1); exit 1; } } ! EOF ! cat >>$CONFIG_STATUS </dev/null` && test -n "$tmp" && test -d "$tmp" } || { ! tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { ! echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } ! _ACEOF ! cat >>$CONFIG_STATUS <<_ACEOF # *************** *** 5355,5358 **** --- 7574,7583 ---- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t + s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t + s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t + s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t + s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t + s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t + s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t *************** *** 5370,5386 **** s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t - s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t - s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t - s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t - s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t - s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t - s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t - s,@DEFS@,$DEFS,;t t s,@LIBS@,$LIBS,;t t s,@build@,$build,;t t --- 7595,7605 ---- s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t + s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@build@,$build,;t t *************** *** 5401,5404 **** --- 7620,7624 ---- s,@OBJEXT@,$OBJEXT,;t t s,@CPP@,$CPP,;t t + s,@EGREP@,$EGREP,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t *************** *** 5433,5441 **** s,@LIBVERSION@,$LIBVERSION,;t t s,@TERMCAP_LIB@,$TERMCAP_LIB,;t t CEOF ! EOF ! cat >>$CONFIG_STATUS <<\EOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. --- 7653,7663 ---- s,@LIBVERSION@,$LIBVERSION,;t t s,@TERMCAP_LIB@,$TERMCAP_LIB,;t t + s,@LIBOBJS@,$LIBOBJS,;t t + s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF ! _ACEOF ! cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. *************** *** 5476,5481 **** fi # test -n "$CONFIG_FILES" ! EOF ! cat >>$CONFIG_STATUS <<\EOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". --- 7698,7703 ---- fi # test -n "$CONFIG_FILES" ! _ACEOF ! cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". *************** *** 5491,5495 **** # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ! ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ --- 7713,7718 ---- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ! ac_dir=`(dirname "$ac_file") 2>/dev/null || ! $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ *************** *** 5502,5551 **** /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` ! if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then ! { case "$ac_dir" in ! [\\/]* | ?:[\\/]* ) as_incr_dir=;; ! *) as_incr_dir=.;; ! esac ! as_dummy="$ac_dir" ! for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do ! case $as_mkdir_dir in ! # Skip DOS drivespec ! ?:) as_incr_dir=$as_mkdir_dir ;; ! *) ! as_incr_dir=$as_incr_dir/$as_mkdir_dir ! test -d "$as_incr_dir" || mkdir "$as_incr_dir" ! ;; ! esac ! done; } ! ! ac_dir_suffix="/`echo $ac_dir|sed 's,^\./,,'`" ! # A "../" for each directory in $ac_dir_suffix. ! ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'` else ! ac_dir_suffix= ac_dots= ! fi ! ! case $srcdir in ! .) ac_srcdir=. ! if test -z "$ac_dots"; then ! ac_top_srcdir=. ! else ! ac_top_srcdir=`echo $ac_dots | sed 's,/$,,'` ! fi ;; ! [\\/]* | ?:[\\/]* ) ! ac_srcdir=$srcdir$ac_dir_suffix; ! ac_top_srcdir=$srcdir ;; *) # Relative path. ! ac_srcdir=$ac_dots$srcdir$ac_dir_suffix ! ac_top_srcdir=$ac_dots$srcdir ;; ! esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; ! *) ac_INSTALL=$ac_dots$INSTALL ;; esac if test x"$ac_file" != x-; then ! { echo "$as_me:5549: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" --- 7725,7793 ---- /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` ! { if $as_mkdir_p; then ! mkdir -p "$ac_dir" else ! as_dir="$ac_dir" ! as_dirs= ! while test ! -d "$as_dir"; do ! as_dirs="$as_dir $as_dirs" ! as_dir=`(dirname "$as_dir") 2>/dev/null || ! $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || ! echo X"$as_dir" | ! sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ! /^X\(\/\/\)[^/].*/{ s//\1/; q; } ! /^X\(\/\/\)$/{ s//\1/; q; } ! /^X\(\/\).*/{ s//\1/; q; } ! s/.*/./; q'` ! done ! test ! -n "$as_dirs" || mkdir $as_dirs ! fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 ! echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} ! { (exit 1); exit 1; }; }; } ! ! ac_builddir=. ! ! if test "$ac_dir" != .; then ! ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` ! # A "../" for each directory in $ac_dir_suffix. ! ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` ! else ! ac_dir_suffix= ac_top_builddir= ! fi ! ! case $srcdir in ! .) # No --srcdir option. We are building in place. ! ac_srcdir=. ! if test -z "$ac_top_builddir"; then ! ac_top_srcdir=. ! else ! ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` ! fi ;; ! [\\/]* | ?:[\\/]* ) # Absolute path. ! ac_srcdir=$srcdir$ac_dir_suffix; ! ac_top_srcdir=$srcdir ;; *) # Relative path. ! ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ! ac_top_srcdir=$ac_top_builddir$srcdir ;; ! esac ! # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be ! # absolute. ! ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` ! ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` ! ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` ! ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` ! case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; ! *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then ! { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" *************** *** 5553,5559 **** # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: ! # /* config.h. Generated automatically by config.status. */ ! configure_input="Generated automatically from `echo $ac_file_in | ! sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the --- 7795,7806 ---- # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: ! # /* config.h. Generated by config.status. */ ! if test x"$ac_file" = x-; then ! configure_input= ! else ! configure_input="$ac_file. " ! fi ! configure_input=$configure_input"Generated from `echo $ac_file_in | ! sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the *************** *** 5565,5569 **** [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:5567: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } --- 7812,7816 ---- [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } *************** *** 5578,5582 **** else # /dev/null tree ! { { echo "$as_me:5580: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } --- 7825,7829 ---- else # /dev/null tree ! { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } *************** *** 5584,5598 **** esac done` || { (exit 1); exit 1; } ! EOF ! cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out --- 7831,7851 ---- esac done` || { (exit 1); exit 1; } ! _ACEOF ! cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub ! _ACEOF ! cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t + s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t + s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t + s,@builddir@,$ac_builddir,;t t + s,@abs_builddir@,$ac_abs_builddir,;t t + s,@top_builddir@,$ac_top_builddir,;t t + s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out *************** *** 5606,5611 **** done ! EOF ! cat >>$CONFIG_STATUS <<\EOF # --- 7859,7864 ---- done ! _ACEOF ! cat >>$CONFIG_STATUS <<\_ACEOF # *************** *** 5639,5643 **** esac ! test x"$ac_file" != x- && { echo "$as_me:5641: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} --- 7892,7896 ---- esac ! test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} *************** *** 5650,5654 **** [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:5652: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } --- 7903,7907 ---- [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) ! test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } *************** *** 5663,5667 **** else # /dev/null tree ! { { echo "$as_me:5665: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } --- 7916,7920 ---- else # /dev/null tree ! { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } *************** *** 5672,5676 **** sed 's/[ ]*$//' $ac_file_inputs >$tmp/in ! EOF # Transform confdefs.h into two sed scripts, `conftest.defines' and --- 7925,7929 ---- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in ! _ACEOF # Transform confdefs.h into two sed scripts, `conftest.defines' and *************** *** 5688,5701 **** # 0-ary CPP macros) applies to n-ary macro definitions. # See the Autoconf documentation for `clear'. ! cat >confdef2sed.sed <<\EOF s/[\\&,]/\\&/g s,[\\$`],\\&,g t clear : clear ! s,^[ ]*#[ ]*define[ ][ ]*\(\([^ (][^ (]*\)([^)]*)\)[ ]*\(.*\)$,${ac_dA}\2${ac_dB}\1${ac_dC}\3${ac_dD},gp t end s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end ! EOF # If some macros were called several times there might be several times # the same #defines, which is useless. Nevertheless, we may not want to --- 7941,7954 ---- # 0-ary CPP macros) applies to n-ary macro definitions. # See the Autoconf documentation for `clear'. ! cat >confdef2sed.sed <<\_ACEOF s/[\\&,]/\\&/g s,[\\$`],\\&,g t clear : clear ! s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end ! _ACEOF # If some macros were called several times there might be several times # the same #defines, which is useless. Nevertheless, we may not want to *************** *** 5708,5719 **** # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. ! cat >>conftest.undefs <<\EOF s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, ! EOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS ! echo ' if egrep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS --- 7961,7972 ---- # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. ! cat >>conftest.undefs <<\_ACEOF s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, ! _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS ! echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS *************** *** 5739,5743 **** done rm -f conftest.defines ! echo ' fi # egrep' >>$CONFIG_STATUS echo >>$CONFIG_STATUS --- 7992,7996 ---- done rm -f conftest.defines ! echo ' fi # grep' >>$CONFIG_STATUS echo >>$CONFIG_STATUS *************** *** 5767,5787 **** rm -f conftest.undefs ! cat >>$CONFIG_STATUS <<\EOF # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: ! # /* config.h. Generated automatically by config.status. */ if test x"$ac_file" = x-; then ! echo "/* Generated automatically by configure. */" >$tmp/config.h else ! echo "/* $ac_file. Generated automatically by configure. */" >$tmp/config.h fi cat $tmp/in >>$tmp/config.h rm -f $tmp/in if test x"$ac_file" != x-; then ! if cmp -s $ac_file $tmp/config.h 2>/dev/null; then ! { echo "$as_me:5782: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ! ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ --- 8020,8041 ---- rm -f conftest.undefs ! cat >>$CONFIG_STATUS <<\_ACEOF # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: ! # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then ! echo "/* Generated by configure. */" >$tmp/config.h else ! echo "/* $ac_file. Generated by configure. */" >$tmp/config.h fi cat $tmp/in >>$tmp/config.h rm -f $tmp/in if test x"$ac_file" != x-; then ! if diff $ac_file $tmp/config.h >/dev/null 2>&1; then ! { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ! ac_dir=`(dirname "$ac_file") 2>/dev/null || ! $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ *************** *** 5794,5815 **** /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` ! if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then ! { case "$ac_dir" in ! [\\/]* | ?:[\\/]* ) as_incr_dir=;; ! *) as_incr_dir=.;; ! esac ! as_dummy="$ac_dir" ! for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do ! case $as_mkdir_dir in ! # Skip DOS drivespec ! ?:) as_incr_dir=$as_mkdir_dir ;; ! *) ! as_incr_dir=$as_incr_dir/$as_mkdir_dir ! test -d "$as_incr_dir" || mkdir "$as_incr_dir" ! ;; ! esac ! done; } - fi rm -f $ac_file mv $tmp/config.h $ac_file --- 8048,8076 ---- /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` ! { if $as_mkdir_p; then ! mkdir -p "$ac_dir" ! else ! as_dir="$ac_dir" ! as_dirs= ! while test ! -d "$as_dir"; do ! as_dirs="$as_dir $as_dirs" ! as_dir=`(dirname "$as_dir") 2>/dev/null || ! $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ! X"$as_dir" : 'X\(//\)[^/]' \| \ ! X"$as_dir" : 'X\(//\)$' \| \ ! X"$as_dir" : 'X\(/\)' \| \ ! . : '\(.\)' 2>/dev/null || ! echo X"$as_dir" | ! sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ! /^X\(\/\/\)[^/].*/{ s//\1/; q; } ! /^X\(\/\/\)$/{ s//\1/; q; } ! /^X\(\/\).*/{ s//\1/; q; } ! s/.*/./; q'` ! done ! test ! -n "$as_dirs" || mkdir $as_dirs ! fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 ! echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} ! { (exit 1); exit 1; }; }; } rm -f $ac_file mv $tmp/config.h $ac_file *************** *** 5820,5825 **** fi done ! EOF ! cat >>$CONFIG_STATUS <<\EOF # --- 8081,8086 ---- fi done ! _ACEOF ! cat >>$CONFIG_STATUS <<\_ACEOF # *************** *** 5829,5833 **** --- 8090,8140 ---- ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_dir=`(dirname "$ac_dest") 2>/dev/null || + $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_dest" : 'X\(//\)[^/]' \| \ + X"$ac_dest" : 'X\(//\)$' \| \ + X"$ac_dest" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || + echo X"$ac_dest" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + ac_builddir=. + + if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` + else + ac_dir_suffix= ac_top_builddir= + fi + + case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; + esac + # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be + # absolute. + ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` + ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` + ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` + ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 + echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in default ) *************** *** 5837,5849 **** esac done ! EOF ! cat >>$CONFIG_STATUS <<\EOF { (exit 0); exit 0; } ! EOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. --- 8144,8157 ---- esac done ! _ACEOF ! cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } ! _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save + # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. *************** *** 5856,5861 **** if test "$no_create" != yes; then ac_cs_success=: exec 5>/dev/null ! $SHELL $CONFIG_STATUS || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which --- 8164,8172 ---- if test "$no_create" != yes; then ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null ! $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which diff -aNrc2 readline-4.3-patched/configure.in readline-5.0/configure.in *** readline-4.3-patched/configure.in Wed Feb 20 10:05:17 2002 --- readline-5.0/configure.in Tue Jun 29 10:58:33 2004 *************** *** 5,11 **** dnl dnl Process this file with autoconf to produce a configure script. ! AC_REVISION([for Readline 4.3, version 2.45, from autoconf version] AC_ACVERSION) ! AC_INIT(readline, 4.3, bug-readline@gnu.org) dnl make sure we are using a recent autoconf version --- 5,11 ---- dnl dnl Process this file with autoconf to produce a configure script. ! AC_REVISION([for Readline 5.0, version 2.52, from autoconf version] AC_ACVERSION) ! AC_INIT(readline, 5.0-rc1, bug-readline@gnu.org) dnl make sure we are using a recent autoconf version *************** *** 17,21 **** dnl update the value of RL_READLINE_VERSION in readline.h when this changes ! LIBVERSION=4.3 AC_CANONICAL_HOST --- 17,21 ---- dnl update the value of RL_READLINE_VERSION in readline.h when this changes ! LIBVERSION=5.0 AC_CANONICAL_HOST *************** *** 32,41 **** --- 32,47 ---- dnl option parsing for optional features + opt_multibyte=yes opt_static_libs=yes opt_shared_libs=yes + AC_ARG_ENABLE(multibyte, AC_HELP_STRING([--enable-multibyte], [enable multibyte characters if OS supports them]), opt_multibyte=$enableval) AC_ARG_ENABLE(shared, AC_HELP_STRING([--enable-shared], [build shared libraries [[default=YES]]]), opt_shared_libs=$enableval) AC_ARG_ENABLE(static, AC_HELP_STRING([--enable-static], [build static libraries [[default=YES]]]), opt_static_libs=$enableval) + if test $opt_multibyte = no; then + AC_DEFINE(NO_MULTIBYTE_SUPPORT) + fi + echo "" echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_vendor}-${host_os}" *************** *** 73,76 **** --- 79,84 ---- AC_CHECK_TYPE(ssize_t, int) + AC_HEADER_STDC + AC_HEADER_STAT AC_HEADER_DIRENT *************** *** 91,94 **** --- 99,103 ---- BASH_FUNC_LSTAT BASH_FUNC_STRCOLL + BASH_FUNC_CTYPE_NONASCII BASH_CHECK_GETPW_FUNCS diff -aNrc2 readline-4.3-patched/display.c readline-5.0/display.c *** readline-4.3-patched/display.c Wed May 7 15:19:59 2003 --- readline-5.0/display.c Thu May 27 22:57:51 2004 *************** *** 1,5 **** /* display.c -- readline redisplay facility. */ ! /* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for --- 1,5 ---- /* display.c -- readline redisplay facility. */ ! /* Copyright (C) 1987-2004 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for *************** *** 179,182 **** --- 179,184 ---- static int prompt_last_screen_line; + static int prompt_physical_chars; + /* Expand the prompt string S and return the number of visible characters in *LP, if LP is not null. This is currently more-or-less *************** *** 184,188 **** index of the last invisible character in the returned string. NIFLP, if non-zero, is a place to store the number of invisible characters in ! the first prompt line. */ /* Current implementation: --- 186,191 ---- index of the last invisible character in the returned string. NIFLP, if non-zero, is a place to store the number of invisible characters in ! the first prompt line. The previous are used as byte counts -- indexes ! into a character buffer. */ /* Current implementation: *************** *** 194,210 **** static char * ! expand_prompt (pmt, lp, lip, niflp) char *pmt; ! int *lp, *lip, *niflp; { char *r, *ret, *p; ! int l, rl, last, ignoring, ninvis, invfl; /* Short-circuit if we can. */ ! if (strchr (pmt, RL_PROMPT_START_IGNORE) == 0) { r = savestring (pmt); if (lp) *lp = strlen (r); return r; } --- 197,219 ---- static char * ! expand_prompt (pmt, lp, lip, niflp, vlp) char *pmt; ! int *lp, *lip, *niflp, *vlp; { char *r, *ret, *p; ! int l, rl, last, ignoring, ninvis, invfl, ind, pind, physchars; /* Short-circuit if we can. */ ! if ((MB_CUR_MAX <= 1 || rl_byte_oriented) && strchr (pmt, RL_PROMPT_START_IGNORE) == 0) { r = savestring (pmt); if (lp) *lp = strlen (r); + if (lip) + *lip = 0; + if (niflp) + *niflp = 0; + if (vlp) + *vlp = lp ? *lp : strlen (r); return r; } *************** *** 215,219 **** invfl = 0; /* invisible chars in first line of prompt */ ! for (rl = ignoring = last = ninvis = 0, p = pmt; p && *p; p++) { /* This code strips the invisible character string markers --- 224,228 ---- invfl = 0; /* invisible chars in first line of prompt */ ! for (rl = ignoring = last = ninvis = physchars = 0, p = pmt; p && *p; p++) { /* This code strips the invisible character string markers *************** *** 232,242 **** else { ! *r++ = *p; ! if (!ignoring) ! rl++; else ! ninvis++; ! if (rl == _rl_screenwidth) invfl = ninvis; } } --- 241,273 ---- else { ! #if defined (HANDLE_MULTIBYTE) ! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) ! { ! pind = p - pmt; ! ind = _rl_find_next_mbchar (pmt, pind, 1, MB_FIND_NONZERO); ! l = ind - pind; ! while (l--) ! *r++ = *p++; ! if (!ignoring) ! rl += ind - pind; ! else ! ninvis += ind - pind; ! p--; /* compensate for later increment */ ! } else ! #endif ! { ! *r++ = *p; ! if (!ignoring) ! rl++; /* visible length byte counter */ ! else ! ninvis++; /* invisible chars byte counter */ ! } ! ! if (rl >= _rl_screenwidth) invfl = ninvis; + + if (ignoring == 0) + physchars++; } } *************** *** 252,255 **** --- 283,288 ---- if (niflp) *niflp = invfl; + if (vlp) + *vlp = physchars; return ret; } *************** *** 263,267 **** char *ret; ! ret = expand_prompt (pmt, (int *)NULL, (int *)NULL, (int *)NULL); return ret; } --- 296,300 ---- char *ret; ! ret = expand_prompt (pmt, (int *)NULL, (int *)NULL, (int *)NULL, (int *)NULL); return ret; } *************** *** 307,311 **** local_prompt = expand_prompt (prompt, &prompt_visible_length, &prompt_last_invisible, ! &prompt_invis_chars_first_line); local_prompt_prefix = (char *)0; return (prompt_visible_length); --- 340,345 ---- local_prompt = expand_prompt (prompt, &prompt_visible_length, &prompt_last_invisible, ! &prompt_invis_chars_first_line, ! &prompt_physical_chars); local_prompt_prefix = (char *)0; return (prompt_visible_length); *************** *** 317,321 **** local_prompt = expand_prompt (p, &prompt_visible_length, &prompt_last_invisible, ! &prompt_invis_chars_first_line); c = *t; *t = '\0'; /* The portion of the prompt string up to and including the --- 351,356 ---- local_prompt = expand_prompt (p, &prompt_visible_length, &prompt_last_invisible, ! (int *)NULL, ! (int *)NULL); c = *t; *t = '\0'; /* The portion of the prompt string up to and including the *************** *** 323,327 **** local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, (int *)NULL, ! &prompt_invis_chars_first_line); *t = c; return (prompt_prefix_length); --- 358,363 ---- local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, (int *)NULL, ! &prompt_invis_chars_first_line, ! &prompt_physical_chars); *t = c; return (prompt_prefix_length); *************** *** 382,386 **** register char *line; int c_pos, inv_botlin, lb_botlin, lb_linenum; ! int newlines, lpos, temp; char *prompt_this_line; #if defined (HANDLE_MULTIBYTE) --- 418,422 ---- register char *line; int c_pos, inv_botlin, lb_botlin, lb_linenum; ! int newlines, lpos, temp, modmark; char *prompt_this_line; #if defined (HANDLE_MULTIBYTE) *************** *** 412,419 **** --- 448,457 ---- /* Mark the line as modified or not. We only do this for history lines. */ + modmark = 0; if (_rl_mark_modified_lines && current_history () && rl_undo_list) { line[out++] = '*'; line[out] = '\0'; + modmark = 1; } *************** *** 469,473 **** } ! pmtlen = strlen (prompt_this_line); temp = pmtlen + out + 2; if (temp >= line_size) --- 507,511 ---- } ! prompt_physical_chars = pmtlen = strlen (prompt_this_line); temp = pmtlen + out + 2; if (temp >= line_size) *************** *** 528,532 **** --- 566,575 ---- /* inv_lbreaks[i] is where line i starts in the buffer. */ inv_lbreaks[newlines = 0] = 0; + #if 0 lpos = out - wrap_offset; + #else + lpos = prompt_physical_chars + modmark; + #endif + #if defined (HANDLE_MULTIBYTE) memset (_rl_wrapped_line, 0, vis_lbsize); *************** *** 547,559 **** saying how many invisible characters there are per line, but that's probably too much work for the benefit gained. How many people have ! prompts that exceed two physical lines? */ temp = ((newlines + 1) * _rl_screenwidth) + ! #if 0 ! ((newlines == 0) ? prompt_invis_chars_first_line : 0) + ! #else ! ((newlines == 0 && local_prompt_prefix == 0) ? prompt_invis_chars_first_line : 0) + ! #endif ! ((newlines == 1) ? wrap_offset : 0); ! inv_lbreaks[++newlines] = temp; lpos -= _rl_screenwidth; --- 590,600 ---- saying how many invisible characters there are per line, but that's probably too much work for the benefit gained. How many people have ! prompts that exceed two physical lines? ! Additional logic fix from Edward Catmur */ temp = ((newlines + 1) * _rl_screenwidth) + ! ((local_prompt_prefix == 0) ? ((newlines == 0) ? prompt_invis_chars_first_line ! : ((newlines == 1) ? wrap_offset : 0)) ! : ((newlines == 0) ? wrap_offset :0)); ! inv_lbreaks[++newlines] = temp; lpos -= _rl_screenwidth; *************** *** 587,591 **** if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) { ! if (wc_bytes == (size_t)-1 || wc_bytes == (size_t)-2) { /* Byte sequence is invalid or shortened. Assume that the --- 628,632 ---- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) { ! if (MB_INVALIDCH (wc_bytes)) { /* Byte sequence is invalid or shortened. Assume that the *************** *** 596,605 **** memset (&ps, 0, sizeof (mbstate_t)); } ! else if (wc_bytes == (size_t)0) break; /* Found '\0' */ else { temp = wcwidth (wc); ! wc_width = (temp < 0) ? 1 : temp; } } --- 637,646 ---- memset (&ps, 0, sizeof (mbstate_t)); } ! else if (MB_NULLWCH (wc_bytes)) break; /* Found '\0' */ else { temp = wcwidth (wc); ! wc_width = (temp >= 0) ? temp : 1; } } *************** *** 868,872 **** _rl_output_some_chars (local_prompt, nleft); if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) ! _rl_last_c_pos = _rl_col_width(local_prompt, 0, nleft); else _rl_last_c_pos = nleft; --- 909,913 ---- _rl_output_some_chars (local_prompt, nleft); if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) ! _rl_last_c_pos = _rl_col_width (local_prompt, 0, nleft); else _rl_last_c_pos = nleft; *************** *** 1070,1079 **** memset (&ps, 0, sizeof (mbstate_t)); ret = mbrtowc (&wc, new, MB_CUR_MAX, &ps); ! if (ret == (size_t)-1 || ret == (size_t)-2) { tempwidth = 1; ret = 1; } ! else if (ret == 0) tempwidth = 0; else --- 1111,1120 ---- memset (&ps, 0, sizeof (mbstate_t)); ret = mbrtowc (&wc, new, MB_CUR_MAX, &ps); ! if (MB_INVALIDCH (ret)) { tempwidth = 1; ret = 1; } ! else if (MB_NULLWCH (ret)) tempwidth = 0; else *************** *** 1092,1096 **** if (ret != 0 && bytes != 0) { ! if (ret == (size_t)-1 || ret == (size_t)-2) memmove (old+bytes, old+1, strlen (old+1)); else --- 1133,1137 ---- if (ret != 0 && bytes != 0) { ! if (MB_INVALIDCH (ret)) memmove (old+bytes, old+1, strlen (old+1)); else *************** *** 1127,1142 **** if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) { ! memset (&ps_new, 0, sizeof(mbstate_t)); ! memset (&ps_old, 0, sizeof(mbstate_t)); ! new_offset = old_offset = 0; ! for (ofd = old, nfd = new; ! (ofd - old < omax) && *ofd && ! _rl_compare_chars(old, old_offset, &ps_old, new, new_offset, &ps_new); ) ! { ! old_offset = _rl_find_next_mbchar (old, old_offset, 1, MB_FIND_ANY); ! new_offset = _rl_find_next_mbchar (new, new_offset, 1, MB_FIND_ANY); ! ofd = old + old_offset; ! nfd = new + new_offset; } } --- 1168,1202 ---- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) { ! /* See if the old line is a subset of the new line, so that the ! only change is adding characters. */ ! temp = (omax < nmax) ? omax : nmax; ! if (memcmp (old, new, temp) == 0) ! { ! ofd = old + temp; ! nfd = new + temp; ! } ! else ! { ! memset (&ps_new, 0, sizeof(mbstate_t)); ! memset (&ps_old, 0, sizeof(mbstate_t)); ! if (omax == nmax && STREQN (new, old, omax)) ! { ! ofd = old + omax; ! nfd = new + nmax; ! } ! else ! { ! new_offset = old_offset = 0; ! for (ofd = old, nfd = new; ! (ofd - old < omax) && *ofd && ! _rl_compare_chars(old, old_offset, &ps_old, new, new_offset, &ps_new); ) ! { ! old_offset = _rl_find_next_mbchar (old, old_offset, 1, MB_FIND_ANY); ! new_offset = _rl_find_next_mbchar (new, new_offset, 1, MB_FIND_ANY); ! ofd = old + old_offset; ! nfd = new + new_offset; ! } ! } } } *************** *** 1170,1175 **** --- 1230,1238 ---- memset (&ps_new, 0, sizeof (mbstate_t)); + #if 0 + /* On advice from jir@yamato.ibm.com */ _rl_adjust_point (old, ols - old, &ps_old); _rl_adjust_point (new, nls - new, &ps_new); + #endif if (_rl_compare_chars (old, ols - old, &ps_old, new, nls - new, &ps_new) == 0) *************** *** 1325,1329 **** _rl_last_c_pos += col_lendiff; } ! else if (*ols == 0) { /* At the end of a line the characters do not have to --- 1388,1392 ---- _rl_last_c_pos += col_lendiff; } ! else if (*ols == 0 && lendiff > 0) { /* At the end of a line the characters do not have to *************** *** 1348,1352 **** { _rl_output_some_chars (nfd + lendiff, temp - lendiff); ! #if 0 _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); #else --- 1411,1419 ---- { _rl_output_some_chars (nfd + lendiff, temp - lendiff); ! #if 1 ! /* XXX -- this bears closer inspection. Fixes a redisplay bug ! reported against bash-3.0-alpha by Andreas Schwab involving ! multibyte characters and prompt strings with invisible ! characters, but was previously disabled. */ _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); #else *************** *** 1427,1436 **** /* Tell the update routines that we have moved onto a new line with the prompt already displayed. Code originally from the version of readline ! distributed with CLISP. */ int rl_on_new_line_with_prompt () { int prompt_size, i, l, real_screenwidth, newlines; ! char *prompt_last_line; /* Initialize visible_line and invisible_line to ensure that they can hold --- 1494,1504 ---- /* Tell the update routines that we have moved onto a new line with the prompt already displayed. Code originally from the version of readline ! distributed with CLISP. rl_expand_prompt must have already been called ! (explicitly or implicitly). This still doesn't work exactly right. */ int rl_on_new_line_with_prompt () { int prompt_size, i, l, real_screenwidth, newlines; ! char *prompt_last_line, *lprompt; /* Initialize visible_line and invisible_line to ensure that they can hold *************** *** 1441,1446 **** /* Make sure the line structures hold the already-displayed prompt for redisplay. */ ! strcpy (visible_line, rl_prompt); ! strcpy (invisible_line, rl_prompt); /* If the prompt contains newlines, take the last tail. */ --- 1509,1515 ---- /* Make sure the line structures hold the already-displayed prompt for redisplay. */ ! lprompt = local_prompt ? local_prompt : rl_prompt; ! strcpy (visible_line, lprompt); ! strcpy (invisible_line, lprompt); /* If the prompt contains newlines, take the last tail. */ *************** *** 1477,1480 **** --- 1546,1551 ---- visible_wrap_offset = 0; + rl_display_prompt = rl_prompt; /* XXX - make sure it's set */ + return 0; } *************** *** 1768,1775 **** --- 1839,1850 ---- } + /* These are getting numerous enough that it's time to create a struct. */ + static char *saved_local_prompt; static char *saved_local_prefix; static int saved_last_invisible; static int saved_visible_length; + static int saved_invis_chars_first_line; + static int saved_physical_chars; void *************** *** 1780,1786 **** --- 1855,1864 ---- saved_last_invisible = prompt_last_invisible; saved_visible_length = prompt_visible_length; + saved_invis_chars_first_line = prompt_invis_chars_first_line; + saved_physical_chars = prompt_physical_chars; local_prompt = local_prompt_prefix = (char *)0; prompt_last_invisible = prompt_visible_length = 0; + prompt_invis_chars_first_line = prompt_physical_chars = 0; } *************** *** 1795,1798 **** --- 1873,1878 ---- prompt_last_invisible = saved_last_invisible; prompt_visible_length = saved_visible_length; + prompt_invis_chars_first_line = saved_invis_chars_first_line; + prompt_physical_chars = saved_physical_chars; } *************** *** 1827,1830 **** --- 1907,1911 ---- prompt_visible_length = saved_visible_length + 1; } + return pmt; } *************** *** 2003,2007 **** { char *oldp, *oldl, *oldlprefix; ! int oldlen, oldlast, oldplen, oldninvis; /* Geez, I should make this a struct. */ --- 2084,2088 ---- { char *oldp, *oldl, *oldlprefix; ! int oldlen, oldlast, oldplen, oldninvis, oldphyschars; /* Geez, I should make this a struct. */ *************** *** 2013,2021 **** oldlast = prompt_last_invisible; oldninvis = prompt_invis_chars_first_line; rl_display_prompt = t; local_prompt = expand_prompt (t, &prompt_visible_length, &prompt_last_invisible, ! &prompt_invis_chars_first_line); local_prompt_prefix = (char *)NULL; rl_forced_update_display (); --- 2094,2104 ---- oldlast = prompt_last_invisible; oldninvis = prompt_invis_chars_first_line; + oldphyschars = prompt_physical_chars; rl_display_prompt = t; local_prompt = expand_prompt (t, &prompt_visible_length, &prompt_last_invisible, ! &prompt_invis_chars_first_line, ! &prompt_physical_chars); local_prompt_prefix = (char *)NULL; rl_forced_update_display (); *************** *** 2028,2031 **** --- 2111,2115 ---- prompt_last_invisible = oldlast; prompt_invis_chars_first_line = oldninvis; + prompt_physical_chars = oldphyschars; } *************** *** 2137,2141 **** { tmp = mbrlen (str + point, max, &ps); ! if ((size_t)tmp == (size_t)-1 || (size_t)tmp == (size_t)-2) { /* In this case, the bytes are invalid or too short to compose a --- 2221,2225 ---- { tmp = mbrlen (str + point, max, &ps); ! if (MB_INVALIDCH ((size_t)tmp)) { /* In this case, the bytes are invalid or too short to compose a *************** *** 2149,2154 **** memset (&ps, 0, sizeof (mbstate_t)); } ! else if (tmp == 0) ! break; /* Found '\0' */ else { --- 2233,2238 ---- memset (&ps, 0, sizeof (mbstate_t)); } ! else if (MB_NULLWCH (tmp)) ! break; /* Found '\0' */ else { *************** *** 2166,2170 **** { tmp = mbrtowc (&wc, str + point, max, &ps); ! if ((size_t)tmp == (size_t)-1 || (size_t)tmp == (size_t)-2) { /* In this case, the bytes are invalid or too short to compose a --- 2250,2254 ---- { tmp = mbrtowc (&wc, str + point, max, &ps); ! if (MB_INVALIDCH ((size_t)tmp)) { /* In this case, the bytes are invalid or too short to compose a *************** *** 2181,2186 **** memset (&ps, 0, sizeof (mbstate_t)); } ! else if (tmp == 0) ! break; /* Found '\0' */ else { --- 2265,2270 ---- memset (&ps, 0, sizeof (mbstate_t)); } ! else if (MB_NULLWCH (tmp)) ! break; /* Found '\0' */ else { diff -aNrc2 readline-4.3-patched/doc/Makefile.in readline-5.0/doc/Makefile.in *** readline-4.3-patched/doc/Makefile.in Mon May 20 12:54:51 2002 --- readline-5.0/doc/Makefile.in Thu Jan 8 10:42:54 2004 *************** *** 2,6 **** # Emacs likes it that way. ! # Copyright (C) 1996 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify --- 2,6 ---- # Emacs likes it that way. ! # Copyright (C) 1996-2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify *************** *** 53,64 **** QUIETPS = #set this to -q to shut up dvips PAPERSIZE = letter ! PSDPI = 300 # I don't have any 600-dpi printers DVIPS = dvips -D ${PSDPI} $(QUIETPS) -t ${PAPERSIZE} -o $@ # tricky ! RLSRC = $(srcdir)/rlman.texinfo $(srcdir)/rluser.texinfo \ ! $(srcdir)/rltech.texinfo $(srcdir)/manvers.texinfo \ ! $(srcdir)/rluserman.texinfo ! HISTSRC = $(srcdir)/hist.texinfo $(srcdir)/hsuser.texinfo \ ! $(srcdir)/hstech.texinfo $(srcdir)/manvers.texinfo # This should be a program that converts troff to an ascii-readable format --- 53,68 ---- QUIETPS = #set this to -q to shut up dvips PAPERSIZE = letter ! PSDPI = 600 DVIPS = dvips -D ${PSDPI} $(QUIETPS) -t ${PAPERSIZE} -o $@ # tricky ! # These tools might not be available; they're not required ! DVIPDF = dvipdfm -o $@ -p ${PAPERSIZE} ! PSPDF = gs -sPAPERSIZE=${PAPERSIZE} -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sOutputFile=$@ ! ! RLSRC = $(srcdir)/rlman.texi $(srcdir)/rluser.texi \ ! $(srcdir)/rltech.texi $(srcdir)/version.texi \ ! $(srcdir)/rluserman.texi ! HISTSRC = $(srcdir)/history.texi $(srcdir)/hsuser.texi \ ! $(srcdir)/hstech.texi $(srcdir)/version.texi # This should be a program that converts troff to an ascii-readable format *************** *** 73,82 **** HTMLOBJ = readline.html history.html rluserman.html TEXTOBJ = readline.0 history.0 ! INTERMEDIATE_OBJ = rlman.dvi hist.dvi rluserman.dvi DIST_DOCS = $(DVIOBJ) $(PSOBJ) $(HTMLOBJ) $(INFOOBJ) $(TEXTOBJ) ! .SUFFIXES: .0 .3 .ps .txt .dvi .3.0: --- 77,87 ---- HTMLOBJ = readline.html history.html rluserman.html TEXTOBJ = readline.0 history.0 + PDFOBJ = readline.pdf history.pdf rluserman.pdf ! INTERMEDIATE_OBJ = rlman.dvi DIST_DOCS = $(DVIOBJ) $(PSOBJ) $(HTMLOBJ) $(INFOOBJ) $(TEXTOBJ) ! .SUFFIXES: .0 .3 .ps .txt .dvi .html .pdf .3.0: *************** *** 84,109 **** -${NROFF} -man $< > $@ all: info dvi html ps text nodvi: info html text readline.dvi: $(RLSRC) ! TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/rlman.texinfo mv rlman.dvi readline.dvi readline.info: $(RLSRC) ! $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/rlman.texinfo rluserman.dvi: $(RLSRC) ! TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/rluserman.texinfo rluserman.info: $(RLSRC) ! $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/rluserman.texinfo history.dvi: ${HISTSRC} ! TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/hist.texinfo ! mv hist.dvi history.dvi history.info: ${HISTSRC} ! $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/hist.texinfo readline.ps: readline.dvi --- 89,128 ---- -${NROFF} -man $< > $@ + .ps.pdf: + $(RM) $@ + -${PSPDF} $< + + .dvi.pdf: + $(RM) $@ + -${DVIPDF} $< + all: info dvi html ps text nodvi: info html text + info: $(INFOOBJ) + dvi: $(DVIOBJ) + ps: $(PSOBJ) + html: $(HTMLOBJ) + text: $(TEXTOBJ) + pdf: $(PDFOBJ) + readline.dvi: $(RLSRC) ! TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/rlman.texi mv rlman.dvi readline.dvi readline.info: $(RLSRC) ! $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/rlman.texi rluserman.dvi: $(RLSRC) ! TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/rluserman.texi rluserman.info: $(RLSRC) ! $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/rluserman.texi history.dvi: ${HISTSRC} ! TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/history.texi history.info: ${HISTSRC} ! $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/history.texi readline.ps: readline.dvi *************** *** 123,142 **** # readline.html: ${RLSRC} ! $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rlman.texinfo sed -e 's:rlman.html:readline.html:g' rlman.html > readline.html rluserman.html: ${RLSRC} ! $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rluserman.texinfo history.html: ${HISTSRC} ! $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/hist.texinfo ! sed -e 's:hist.html:history.html:g' hist.html > history.html ! $(RM) hist.html ! ! info: $(INFOOBJ) ! dvi: $(DVIOBJ) ! ps: $(PSOBJ) ! html: $(HTMLOBJ) ! text: $(TEXTOBJ) readline.0: readline.3 --- 142,154 ---- # readline.html: ${RLSRC} ! $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rlman.texi sed -e 's:rlman.html:readline.html:g' rlman.html > readline.html + $(RM) rlman.html rluserman.html: ${RLSRC} ! $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rluserman.texi history.html: ${HISTSRC} ! $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/history.texi readline.0: readline.3 *************** *** 152,158 **** ${GROFF} -man < $(srcdir)/history.3 > $@ clean: ! $(RM) *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps *.pgs \ ! *.fns *.kys *.tps *.vrs *.bt *.bts *.o core *.core mostlyclean: clean --- 164,175 ---- ${GROFF} -man < $(srcdir)/history.3 > $@ + readline.pdf: readline.dvi + history.pdf: history.dvi + rluserman.pdf: rluserman.dvi + clean: ! $(RM) *.aux *.bak *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps \ ! *.pgs *.bt *.bts *.rw *.rws *.fns *.kys *.tps *.vrs *.o \ ! core *.core mostlyclean: clean *************** *** 170,173 **** --- 187,191 ---- $(RM) $(DIST_DOCS) $(RM) $(INTERMEDIATE_OBJ) + $(RM) $(PDFOBJ) $(RM) Makefile diff -aNrc2 readline-4.3-patched/doc/fdl.texi readline-5.0/doc/fdl.texi *** readline-4.3-patched/doc/fdl.texi Wed Dec 31 19:00:00 1969 --- readline-5.0/doc/fdl.texi Tue Feb 18 08:47:52 2003 *************** *** 0 **** --- 1,452 ---- + + @node GNU Free Documentation License + @appendixsec GNU Free Documentation License + + @cindex FDL, GNU Free Documentation License + @center Version 1.2, November 2002 + + @display + Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + @end display + + @enumerate 0 + @item + PREAMBLE + + The purpose of this License is to make a manual, textbook, or other + functional and useful document @dfn{free} in the sense of freedom: to + assure everyone the effective freedom to copy and redistribute it, + with or without modifying it, either commercially or noncommercially. + Secondarily, this License preserves for the author and publisher a way + to get credit for their work, while not being considered responsible + for modifications made by others. + + This License is a kind of ``copyleft'', which means that derivative + works of the document must themselves be free in the same sense. It + complements the GNU General Public License, which is a copyleft + license designed for free software. + + We have designed this License in order to use it for manuals for free + software, because free software needs free documentation: a free + program should come with manuals providing the same freedoms that the + software does. But this License is not limited to software manuals; + it can be used for any textual work, regardless of subject matter or + whether it is published as a printed book. We recommend this License + principally for works whose purpose is instruction or reference. + + @item + APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work, in any medium, that + contains a notice placed by the copyright holder saying it can be + distributed under the terms of this License. Such a notice grants a + world-wide, royalty-free license, unlimited in duration, to use that + work under the conditions stated herein. The ``Document'', below, + refers to any such manual or work. Any member of the public is a + licensee, and is addressed as ``you''. You accept the license if you + copy, modify or distribute the work in a way requiring permission + under copyright law. + + A ``Modified Version'' of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. + + A ``Secondary Section'' is a named appendix or a front-matter section + of the Document that deals exclusively with the relationship of the + publishers or authors of the Document to the Document's overall + subject (or to related matters) and contains nothing that could fall + directly within that overall subject. (Thus, if the Document is in + part a textbook of mathematics, a Secondary Section may not explain + any mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of legal, + commercial, philosophical, ethical or political position regarding + them. + + The ``Invariant Sections'' are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the notice + that says that the Document is released under this License. If a + section does not fit the above definition of Secondary then it is not + allowed to be designated as Invariant. The Document may contain zero + Invariant Sections. If the Document does not identify any Invariant + Sections then there are none. + + The ``Cover Texts'' are certain short passages of text that are listed, + as Front-Cover Texts or Back-Cover Texts, in the notice that says that + the Document is released under this License. A Front-Cover Text may + be at most 5 words, and a Back-Cover Text may be at most 25 words. + + A ``Transparent'' copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, that is suitable for revising the document + straightforwardly with generic text editors or (for images composed of + pixels) generic paint programs or (for drawings) some widely available + drawing editor, and that is suitable for input to text formatters or + for automatic translation to a variety of formats suitable for input + to text formatters. A copy made in an otherwise Transparent file + format whose markup, or absence of markup, has been arranged to thwart + or discourage subsequent modification by readers is not Transparent. + An image format is not Transparent if used for any substantial amount + of text. A copy that is not ``Transparent'' is called ``Opaque''. + + Examples of suitable formats for Transparent copies include plain + @sc{ascii} without markup, Texinfo input format, La@TeX{} input + format, @acronym{SGML} or @acronym{XML} using a publicly available + @acronym{DTD}, and standard-conforming simple @acronym{HTML}, + PostScript or @acronym{PDF} designed for human modification. Examples + of transparent image formats include @acronym{PNG}, @acronym{XCF} and + @acronym{JPG}. Opaque formats include proprietary formats that can be + read and edited only by proprietary word processors, @acronym{SGML} or + @acronym{XML} for which the @acronym{DTD} and/or processing tools are + not generally available, and the machine-generated @acronym{HTML}, + PostScript or @acronym{PDF} produced by some word processors for + output purposes only. + + The ``Title Page'' means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the material + this License requires to appear in the title page. For works in + formats which do not have any title page as such, ``Title Page'' means + the text near the most prominent appearance of the work's title, + preceding the beginning of the body of the text. + + A section ``Entitled XYZ'' means a named subunit of the Document whose + title either is precisely XYZ or contains XYZ in parentheses following + text that translates XYZ in another language. (Here XYZ stands for a + specific section name mentioned below, such as ``Acknowledgements'', + ``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' + of such a section when you modify the Document means that it remains a + section ``Entitled XYZ'' according to this definition. + + The Document may include Warranty Disclaimers next to the notice which + states that this License applies to the Document. These Warranty + Disclaimers are considered to be included by reference in this + License, but only as regards disclaiming warranties: any other + implication that these Warranty Disclaimers may have is void and has + no effect on the meaning of this License. + + @item + VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License applies + to the Document are reproduced in all copies, and that you add no other + conditions whatsoever to those of this License. You may not use + technical measures to obstruct or control the reading or further + copying of the copies you make or distribute. However, you may accept + compensation in exchange for copies. If you distribute a large enough + number of copies you must also follow the conditions in section 3. + + You may also lend copies, under the same conditions stated above, and + you may publicly display copies. + + @item + COPYING IN QUANTITY + + If you publish printed copies (or copies in media that commonly have + printed covers) of the Document, numbering more than 100, and the + Document's license notice requires Cover Texts, you must enclose the + copies in covers that carry, clearly and legibly, all these Cover + Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on + the back cover. Both covers must also clearly and legibly identify + you as the publisher of these copies. The front cover must present + the full title with all words of the title equally prominent and + visible. You may add other material on the covers in addition. + Copying with changes limited to the covers, as long as they preserve + the title of the Document and satisfy these conditions, can be treated + as verbatim copying in other respects. + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto adjacent + pages. + + If you publish or distribute Opaque copies of the Document numbering + more than 100, you must either include a machine-readable Transparent + copy along with each Opaque copy, or state in or with each Opaque copy + a computer-network location from which the general network-using + public has access to download using public-standard network protocols + a complete Transparent copy of the Document, free of added material. + If you use the latter option, you must take reasonably prudent steps, + when you begin distribution of Opaque copies in quantity, to ensure + that this Transparent copy will remain thus accessible at the stated + location until at least one year after the last time you distribute an + Opaque copy (directly or through your agents or retailers) of that + edition to the public. + + It is requested, but not required, that you contact the authors of the + Document well before redistributing any large number of copies, to give + them a chance to provide you with an updated version of the Document. + + @item + MODIFICATIONS + + You may copy and distribute a Modified Version of the Document under + the conditions of sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the Modified + Version filling the role of the Document, thus licensing distribution + and modification of the Modified Version to whoever possesses a copy + of it. In addition, you must do these things in the Modified Version: + + @enumerate A + @item + Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. + + @item + List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. + + @item + State on the Title page the name of the publisher of the + Modified Version, as the publisher. + + @item + Preserve all the copyright notices of the Document. + + @item + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + @item + Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. + + @item + Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. + + @item + Include an unaltered copy of this License. + + @item + Preserve the section Entitled ``History'', Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled ``History'' in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. + + @item + Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the ``History'' section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. + + @item + For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve + the Title of the section, and preserve in the section all the + substance and tone of each of the contributor acknowledgements and/or + dedications given therein. + + @item + Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. + + @item + Delete any section Entitled ``Endorsements''. Such a section + may not be included in the Modified Version. + + @item + Do not retitle any existing section to be Entitled ``Endorsements'' or + to conflict in title with any Invariant Section. + + @item + Preserve any Warranty Disclaimers. + @end enumerate + + If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no material + copied from the Document, you may at your option designate some or all + of these sections as invariant. To do this, add their titles to the + list of Invariant Sections in the Modified Version's license notice. + These titles must be distinct from any other section titles. + + You may add a section Entitled ``Endorsements'', provided it contains + nothing but endorsements of your Modified Version by various + parties---for example, statements of peer review or that the text has + been approved by an organization as the authoritative definition of a + standard. + + You may add a passage of up to five words as a Front-Cover Text, and a + passage of up to 25 words as a Back-Cover Text, to the end of the list + of Cover Texts in the Modified Version. Only one passage of + Front-Cover Text and one of Back-Cover Text may be added by (or + through arrangements made by) any one entity. If the Document already + includes a cover text for the same cover, previously added by you or + by arrangement made by the same entity you are acting on behalf of, + you may not add another; but you may replace the old one, on explicit + permission from the previous publisher that added the old one. + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to assert or + imply endorsement of any Modified Version. + + @item + COMBINING DOCUMENTS + + You may combine the Document with other documents released under this + License, under the terms defined in section 4 above for modified + versions, provided that you include in the combination all of the + Invariant Sections of all of the original documents, unmodified, and + list them all as Invariant Sections of your combined work in its + license notice, and that you preserve all their Warranty Disclaimers. + + The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name but + different contents, make the title of each such section unique by + adding at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique number. + Make the same adjustment to the section titles in the list of + Invariant Sections in the license notice of the combined work. + + In the combination, you must combine any sections Entitled ``History'' + in the various original documents, forming one section Entitled + ``History''; likewise combine any sections Entitled ``Acknowledgements'', + and any sections Entitled ``Dedications''. You must delete all + sections Entitled ``Endorsements.'' + + @item + COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies of this + License in the various documents with a single copy that is included in + the collection, provided that you follow the rules of this License for + verbatim copying of each of the documents in all other respects. + + You may extract a single document from such a collection, and distribute + it individually under this License, provided you insert a copy of this + License into the extracted document, and follow this License in all + other respects regarding verbatim copying of that document. + + @item + AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with other separate + and independent documents or works, in or on a volume of a storage or + distribution medium, is called an ``aggregate'' if the copyright + resulting from the compilation is not used to limit the legal rights + of the compilation's users beyond what the individual works permit. + When the Document is included an aggregate, this License does not + apply to the other works in the aggregate which are not themselves + derivative works of the Document. + + If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one half of + the entire aggregate, the Document's Cover Texts may be placed on + covers that bracket the Document within the aggregate, or the + electronic equivalent of covers if the Document is in electronic form. + Otherwise they must appear on printed covers that bracket the whole + aggregate. + + @item + TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. + Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License, and all the license notices in the + Document, and any Warranty Disclaimers, provided that you also include + the original English version of this License and the original versions + of those notices and disclaimers. In case of a disagreement between + the translation and the original version of this License or a notice + or disclaimer, the original version will prevail. + + If a section in the Document is Entitled ``Acknowledgements'', + ``Dedications'', or ``History'', the requirement (section 4) to Preserve + its Title (section 1) will typically require changing the actual + title. + + @item + TERMINATION + + You may not copy, modify, sublicense, or distribute the Document except + as expressly provided for under this License. Any other attempt to + copy, modify, sublicense or distribute the Document is void, and will + automatically terminate your rights under this License. However, + parties who have received copies, or rights, from you under this + License will not have their licenses terminated so long as such + parties remain in full compliance. + + @item + FUTURE REVISIONS OF THIS LICENSE + + The Free Software Foundation may publish new, revised versions + of the GNU Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + @uref{http://www.gnu.org/copyleft/}. + + Each version of the License is given a distinguishing version number. + If the Document specifies that a particular numbered version of this + License ``or any later version'' applies to it, you have the option of + following the terms and conditions either of that specified version or + of any later version that has been published (not as a draft) by the + Free Software Foundation. If the Document does not specify a version + number of this License, you may choose any version ever published (not + as a draft) by the Free Software Foundation. + @end enumerate + + @page + @appendixsubsec ADDENDUM: How to use this License for your documents + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: + + @smallexample + @group + Copyright (C) @var{year} @var{your name}. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.2 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + A copy of the license is included in the section entitled ``GNU + Free Documentation License''. + @end group + @end smallexample + + If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, + replace the ``with...Texts.'' line with this: + + @smallexample + @group + with the Invariant Sections being @var{list their titles}, with + the Front-Cover Texts being @var{list}, and with the Back-Cover Texts + being @var{list}. + @end group + @end smallexample + + If you have Invariant Sections without Cover Texts, or some other + combination of the three, merge those two alternatives to suit the + situation. + + If your document contains nontrivial examples of program code, we + recommend releasing these examples in parallel under your choice of + free software license, such as the GNU General Public License, + to permit their use in free software. + + @c Local Variables: + @c ispell-local-pdict: "ispell-dict" + @c End: + diff -aNrc2 readline-4.3-patched/doc/hist.texinfo readline-5.0/doc/hist.texinfo *** readline-4.3-patched/doc/hist.texinfo Tue Apr 16 17:11:02 2002 --- readline-5.0/doc/hist.texinfo Wed Dec 31 19:00:00 1969 *************** *** 1,110 **** - \input texinfo @c -*-texinfo-*- - @c %**start of header (This is for running Texinfo on a region.) - @setfilename history.info - @settitle GNU History Library - @c %**end of header (This is for running Texinfo on a region.) - - @setchapternewpage odd - - @include manvers.texinfo - - @ifinfo - @dircategory Libraries - @direntry - * History: (history). The GNU history library API - @end direntry - - This document describes the GNU History library, a programming tool that - provides a consistent user interface for recalling lines of previously - typed input. - - Copyright (C) 1988-2002 Free Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of - this manual provided the copyright notice and this permission notice - pare preserved on all copies. - - @ignore - Permission is granted to process this file through TeX and print the - results, provided the printed document carries copying permission - notice identical to this one except for the removal of this paragraph - (this paragraph not being relevant to the printed manual). - @end ignore - - Permission is granted to copy and distribute modified versions of this - manual under the conditions for verbatim copying, provided that the entire - resulting derived work is distributed under the terms of a permission - notice identical to this one. - - Permission is granted to copy and distribute translations of this manual - into another language, under the above conditions for modified versions, - except that this permission notice may be stated in a translation approved - by the Free Software Foundation. - @end ifinfo - - @titlepage - @title GNU History Library - @subtitle Edition @value{EDITION}, for @code{History Library} Version @value{VERSION}. - @subtitle @value{UPDATE-MONTH} - @author Brian Fox, Free Software Foundation - @author Chet Ramey, Case Western Reserve University - - @page - This document describes the GNU History library, a programming tool that - provides a consistent user interface for recalling lines of previously - typed input. - - Published by the Free Software Foundation @* - 59 Temple Place, Suite 330, @* - Boston, MA 02111 USA - - Permission is granted to make and distribute verbatim copies of - this manual provided the copyright notice and this permission notice - are preserved on all copies. - - Permission is granted to copy and distribute modified versions of this - manual under the conditions for verbatim copying, provided that the entire - resulting derived work is distributed under the terms of a permission - notice identical to this one. - - Permission is granted to copy and distribute translations of this manual - into another language, under the above conditions for modified versions, - except that this permission notice may be stated in a translation approved - by the Free Software Foundation. - - @vskip 0pt plus 1filll - Copyright @copyright{} 1988-2002 Free Software Foundation, Inc. - @end titlepage - - @ifinfo - @node Top - @top GNU History Library - - This document describes the GNU History library, a programming tool that - provides a consistent user interface for recalling lines of previously - typed input. - - @menu - * Using History Interactively:: GNU History User's Manual. - * Programming with GNU History:: GNU History Programmer's Manual. - * Concept Index:: Index of concepts described in this manual. - * Function and Variable Index:: Index of externally visible functions - and variables. - @end menu - @end ifinfo - - @syncodeindex fn vr - - @include hsuser.texinfo - @include hstech.texinfo - - @node Concept Index - @appendix Concept Index - @printindex cp - - @node Function and Variable Index - @appendix Function and Variable Index - @printindex vr - - @contents - @bye --- 0 ---- diff -aNrc2 readline-4.3-patched/doc/history.0 readline-5.0/doc/history.0 *** readline-4.3-patched/doc/history.0 Mon Mar 18 10:17:27 2002 --- readline-5.0/doc/history.0 Mon Sep 22 09:15:45 2003 *************** *** 1,213 **** - HISTORY(3) HISTORY(3) - - NNAAMMEE history - GNU History Library CCOOPPYYRRIIGGHHTT ! The GNU History Library is Copyright (C) 1989-2002 by the ! Free Software Foundation, Inc. DDEESSCCRRIIPPTTIIOONN ! Many programs read input from the user a line at a time. ! The GNU History library is able to keep track of those ! lines, associate arbitrary data with each line, and uti- ! lize information from previous lines in composing new ! ones. HHIISSTTOORRYY EEXXPPAANNSSIIOONN ! The history library supports a history expansion feature ! that is identical to the history expansion in bbaasshh.. This ! section describes what syntax features are available. ! ! History expansions introduce words from the history list ! into the input stream, making it easy to repeat commands, ! insert the arguments to a previous command into the cur- ! rent input line, or fix errors in previous commands ! quickly. ! ! History expansion is usually performed immediately after a ! complete line is read. It takes place in two parts. The ! first is to determine which line from the history list to ! use during substitution. The second is to select portions ! of that line for inclusion into the current one. The line ! selected from the history is the _e_v_e_n_t, and the portions ! of that line that are acted upon are _w_o_r_d_s. Various _m_o_d_i_- ! _f_i_e_r_s are available to manipulate the selected words. The ! line is broken into words in the same fashion as bbaasshh does ! when reading input, so that several words that would oth- ! erwise be separated are considered one word when sur- ! rounded by quotes (see the description of hhiissttoorryy__ttookk-- ! eenniizzee(()) below). History expansions are introduced by the ! appearance of the history expansion character, which is !! ! by default. Only backslash (\\) and single quotes can ! quote the history expansion character. EEvveenntt DDeessiiggnnaattoorrss ! An event designator is a reference to a command line entry ! in the history list. ! !! Start a history substitution, except when followed ! by a bbllaannkk, newline, = or (. !!_n Refer to command line _n. !!--_n Refer to the current command line minus _n. ! !!!! Refer to the previous command. This is a synonym ! for `!-1'. ! ! ! ! ! GNU History 4.3 2002 January 31 1 ! ! ! ! ! ! HISTORY(3) HISTORY(3) ! ! !!_s_t_r_i_n_g ! Refer to the most recent command starting with ! _s_t_r_i_n_g. !!??_s_t_r_i_n_g[[??]] ! Refer to the most recent command containing _s_t_r_i_n_g. ! The trailing ?? may be omitted if _s_t_r_i_n_g is followed ! immediately by a newline. ^^_s_t_r_i_n_g_1^^_s_t_r_i_n_g_2^^ ! Quick substitution. Repeat the last command, ! replacing _s_t_r_i_n_g_1 with _s_t_r_i_n_g_2. Equivalent to ! ``!!:s/_s_t_r_i_n_g_1/_s_t_r_i_n_g_2/'' (see MMooddiiffiieerrss below). !!## The entire command line typed so far. WWoorrdd DDeessiiggnnaattoorrss ! Word designators are used to select desired words from the ! event. A :: separates the event specification from the ! word designator. It may be omitted if the word designator ! begins with a ^^, $$, **, --, or %%. Words are numbered from ! the beginning of the line, with the first word being ! denoted by 0 (zero). Words are inserted into the current ! line separated by single spaces. 00 ((zzeerroo)) ! The zeroth word. For the shell, this is the com- ! mand word. _n The _nth word. ^^ The first argument. That is, word 1. $$ The last argument. ! %% The word matched by the most recent `?_s_t_r_i_n_g?' ! search. _x--_y A range of words; `-_y' abbreviates `0-_y'. ! ** All of the words but the zeroth. This is a synonym ! for `_1_-_$'. It is not an error to use ** if there is ! just one word in the event; the empty string is ! returned in that case. xx** Abbreviates _x_-_$. xx-- Abbreviates _x_-_$ like xx**, but omits the last word. ! If a word designator is supplied without an event specifi- ! cation, the previous command is used as the event. MMooddiiffiieerrss ! After the optional word designator, there may appear a ! sequence of one or more of the following modifiers, each ! preceded by a `:'. ! ! hh Remove a trailing file name component, leaving only ! the head. ! tt Remove all leading file name components, leaving ! the tail. ! rr Remove a trailing suffix of the form _._x_x_x, leaving ! the basename. ee Remove all but the trailing suffix. pp Print the new command but do not execute it. ! ! ! ! GNU History 4.3 2002 January 31 2 ! ! ! ! ! ! HISTORY(3) HISTORY(3) ! ! ! qq Quote the substituted words, escaping further sub- ! stitutions. ! xx Quote the substituted words as with qq, but break ! into words at bbllaannkkss and newlines. ss//_o_l_d//_n_e_w// ! Substitute _n_e_w for the first occurrence of _o_l_d in ! the event line. Any delimiter can be used in place ! of /. The final delimiter is optional if it is the ! last character of the event line. The delimiter ! may be quoted in _o_l_d and _n_e_w with a single back- ! slash. If & appears in _n_e_w, it is replaced by _o_l_d. ! A single backslash will quote the &. If _o_l_d is ! null, it is set to the last _o_l_d substituted, or, if ! no previous history substitutions took place, the ! last _s_t_r_i_n_g in a !!??_s_t_r_i_n_g[[??]] search. && Repeat the previous substitution. ! gg Cause changes to be applied over the entire event ! line. This is used in conjunction with `::ss' (e.g., ! `::ggss//_o_l_d//_n_e_w//') or `::&&'. If used with `::ss', any ! delimiter can be used in place of /, and the final ! delimiter is optional if it is the last character ! of the event line. PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIISSTTOORRYY FFUUNNCCTTIIOONNSS ! This section describes how to use the History library in ! other programs. IInnttrroodduuccttiioonn ttoo HHiissttoorryy ! The programmer using the History library has available ! functions for remembering lines on a history list, associ- ! ating arbitrary data with a line, removing lines from the ! list, searching through the list for a line containing an ! arbitrary text string, and referencing any line in the ! list directly. In addition, a history _e_x_p_a_n_s_i_o_n function ! is available which provides for a consistent user inter- ! face across different programs. ! ! The user using programs written with the History library ! has the benefit of a consistent user interface with a set ! of well-known commands for manipulating the text of previ- ! ous lines and using that text in new commands. The basic ! history manipulation commands are identical to the history ! substitution provided by bbaasshh. ! ! If the programmer desires, he can use the Readline ! library, which includes some history manipulation by ! default, and has the added advantage of command line edit- ! ing. ! ! Before declaring any functions using any functionality the ! History library provides in other code, an application ! writer should include the file _<_r_e_a_d_l_i_n_e_/_h_i_s_t_o_r_y_._h_> in any ! file that uses the History library's features. It sup- ! plies extern declarations for all of the library's public ! ! ! ! GNU History 4.3 2002 January 31 3 ! ! ! ! ! ! HISTORY(3) HISTORY(3) ! ! ! functions and variables, and declares all of the public ! data structures. HHiissttoorryy SSttoorraaggee ! The history list is an array of history entries. A his- ! tory entry is declared as follows: _t_y_p_e_d_e_f _v_o_i_d _* hhiissttddaattaa__tt;; --- 1,153 ---- + HISTORY(3) HISTORY(3) NNAAMMEE history - GNU History Library CCOOPPYYRRIIGGHHTT ! The GNU History Library is Copyright (C) 1989-2002 by the Free Software ! Foundation, Inc. DDEESSCCRRIIPPTTIIOONN ! Many programs read input from the user a line at a time. The GNU His- ! tory library is able to keep track of those lines, associate arbitrary ! data with each line, and utilize information from previous lines in ! composing new ones. HHIISSTTOORRYY EEXXPPAANNSSIIOONN ! The history library supports a history expansion feature that is iden- ! tical to the history expansion in bbaasshh.. This section describes what ! syntax features are available. ! ! History expansions introduce words from the history list into the input ! stream, making it easy to repeat commands, insert the arguments to a ! previous command into the current input line, or fix errors in previous ! commands quickly. ! ! History expansion is usually performed immediately after a complete ! line is read. It takes place in two parts. The first is to determine ! which line from the history list to use during substitution. The sec- ! ond is to select portions of that line for inclusion into the current ! one. The line selected from the history is the _e_v_e_n_t, and the portions ! of that line that are acted upon are _w_o_r_d_s. Various _m_o_d_i_f_i_e_r_s are ! available to manipulate the selected words. The line is broken into ! words in the same fashion as bbaasshh does when reading input, so that sev- ! eral words that would otherwise be separated are considered one word ! when surrounded by quotes (see the description of hhiissttoorryy__ttookkeenniizzee(()) ! below). History expansions are introduced by the appearance of the ! history expansion character, which is !! by default. Only backslash (\\) ! and single quotes can quote the history expansion character. EEvveenntt DDeessiiggnnaattoorrss ! An event designator is a reference to a command line entry in the his- ! tory list. ! !! Start a history substitution, except when followed by a bbllaannkk, ! newline, = or (. !!_n Refer to command line _n. !!--_n Refer to the current command line minus _n. ! !!!! Refer to the previous command. This is a synonym for `!-1'. !!_s_t_r_i_n_g ! Refer to the most recent command starting with _s_t_r_i_n_g. !!??_s_t_r_i_n_g[[??]] ! Refer to the most recent command containing _s_t_r_i_n_g. The trail- ! ing ?? may be omitted if _s_t_r_i_n_g is followed immediately by a new- ! line. ^^_s_t_r_i_n_g_1^^_s_t_r_i_n_g_2^^ ! Quick substitution. Repeat the last command, replacing _s_t_r_i_n_g_1 ! with _s_t_r_i_n_g_2. Equivalent to ``!!:s/_s_t_r_i_n_g_1/_s_t_r_i_n_g_2/'' (see MMoodd-- ! iiffiieerrss below). !!## The entire command line typed so far. WWoorrdd DDeessiiggnnaattoorrss ! Word designators are used to select desired words from the event. A :: ! separates the event specification from the word designator. It may be ! omitted if the word designator begins with a ^^, $$, **, --, or %%. Words ! are numbered from the beginning of the line, with the first word being ! denoted by 0 (zero). Words are inserted into the current line sepa- ! rated by single spaces. 00 ((zzeerroo)) ! The zeroth word. For the shell, this is the command word. _n The _nth word. ^^ The first argument. That is, word 1. $$ The last argument. ! %% The word matched by the most recent `?_s_t_r_i_n_g?' search. _x--_y A range of words; `-_y' abbreviates `0-_y'. ! ** All of the words but the zeroth. This is a synonym for `_1_-_$'. ! It is not an error to use ** if there is just one word in the ! event; the empty string is returned in that case. xx** Abbreviates _x_-_$. xx-- Abbreviates _x_-_$ like xx**, but omits the last word. ! If a word designator is supplied without an event specification, the ! previous command is used as the event. MMooddiiffiieerrss ! After the optional word designator, there may appear a sequence of one ! or more of the following modifiers, each preceded by a `:'. ! ! hh Remove a trailing file name component, leaving only the head. ! tt Remove all leading file name components, leaving the tail. ! rr Remove a trailing suffix of the form _._x_x_x, leaving the basename. ee Remove all but the trailing suffix. pp Print the new command but do not execute it. ! qq Quote the substituted words, escaping further substitutions. ! xx Quote the substituted words as with qq, but break into words at ! bbllaannkkss and newlines. ss//_o_l_d//_n_e_w// ! Substitute _n_e_w for the first occurrence of _o_l_d in the event ! line. Any delimiter can be used in place of /. The final ! delimiter is optional if it is the last character of the event ! line. The delimiter may be quoted in _o_l_d and _n_e_w with a single ! backslash. If & appears in _n_e_w, it is replaced by _o_l_d. A sin- ! gle backslash will quote the &. If _o_l_d is null, it is set to ! the last _o_l_d substituted, or, if no previous history substitu- ! tions took place, the last _s_t_r_i_n_g in a !!??_s_t_r_i_n_g[[??]] search. && Repeat the previous substitution. ! gg Cause changes to be applied over the entire event line. This is ! used in conjunction with `::ss' (e.g., `::ggss//_o_l_d//_n_e_w//') or `::&&'. ! If used with `::ss', any delimiter can be used in place of /, and ! the final delimiter is optional if it is the last character of ! the event line. An aa may be used as a synonym for gg. ! GG Apply the following `ss' modifier once to each word in the event ! line. PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIISSTTOORRYY FFUUNNCCTTIIOONNSS ! This section describes how to use the History library in other pro- ! grams. IInnttrroodduuccttiioonn ttoo HHiissttoorryy ! The programmer using the History library has available functions for ! remembering lines on a history list, associating arbitrary data with a ! line, removing lines from the list, searching through the list for a ! line containing an arbitrary text string, and referencing any line in ! the list directly. In addition, a history _e_x_p_a_n_s_i_o_n function is avail- ! able which provides for a consistent user interface across different ! programs. ! ! The user using programs written with the History library has the bene- ! fit of a consistent user interface with a set of well-known commands ! for manipulating the text of previous lines and using that text in new ! commands. The basic history manipulation commands are identical to the ! history substitution provided by bbaasshh. ! ! If the programmer desires, he can use the Readline library, which ! includes some history manipulation by default, and has the added advan- ! tage of command line editing. ! ! Before declaring any functions using any functionality the History ! library provides in other code, an application writer should include ! the file _<_r_e_a_d_l_i_n_e_/_h_i_s_t_o_r_y_._h_> in any file that uses the History ! library's features. It supplies extern declarations for all of the ! library's public functions and variables, and declares all of the pub- ! lic data structures. HHiissttoorryy SSttoorraaggee ! The history list is an array of history entries. A history entry is ! declared as follows: _t_y_p_e_d_e_f _v_o_i_d _* hhiissttddaattaa__tt;; *************** *** 215,218 **** --- 155,159 ---- typedef struct _hist_entry { char *line; + char *timestamp; histdata_t data; } HIST_ENTRY; *************** *** 222,227 **** _H_I_S_T___E_N_T_R_Y _*_* tthhee__hhiissttoorryy__lliisstt;; ! The state of the History library is encapsulated into a ! single structure: /* --- 163,168 ---- _H_I_S_T___E_N_T_R_Y _*_* tthhee__hhiissttoorryy__lliisstt;; ! The state of the History library is encapsulated into a single struc- ! ture: /* *************** *** 236,293 **** } HISTORY_STATE; ! If the flags member includes HHSS__SSTTIIFFLLEEDD, the history has ! been stifled. HHiissttoorryy FFuunnccttiioonnss ! This section describes the calling sequence for the vari- ! ous functions exported by the GNU History library. IInniittiiaalliizziinngg HHiissttoorryy aanndd SSttaattee MMaannaaggeemmeenntt ! This section describes functions used to initialize and ! manage the state of the History library when you want to ! use the history functions in your program. _v_o_i_d uussiinngg__hhiissttoorryy (_v_o_i_d) ! Begin a session in which the history functions might be ! used. This initializes the interactive variables. _H_I_S_T_O_R_Y___S_T_A_T_E _* hhiissttoorryy__ggeett__hhiissttoorryy__ssttaattee (_v_o_i_d) ! Return a structure describing the current state of the ! input history. _v_o_i_d hhiissttoorryy__sseett__hhiissttoorryy__ssttaattee (_H_I_S_T_O_R_Y___S_T_A_T_E _*_s_t_a_t_e) - - - - GNU History 4.3 2002 January 31 4 - - - - - - HISTORY(3) HISTORY(3) - - Set the state of the history list according to _s_t_a_t_e. HHiissttoorryy LLiisstt MMaannaaggeemmeenntt ! These functions manage individual entries on the history ! list, or set parameters managing the list itself. _v_o_i_d aadddd__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g) ! Place _s_t_r_i_n_g at the end of the history list. The associ- ! ated data field (if any) is set to NNUULLLL. _H_I_S_T___E_N_T_R_Y _* rreemmoovvee__hhiissttoorryy (_i_n_t _w_h_i_c_h) ! Remove history entry at offset _w_h_i_c_h from the history. ! The removed element is returned so you can free the line, ! data, and containing structure. ! ! _H_I_S_T___E_N_T_R_Y _* rreeppllaaccee__hhiissttoorryy__eennttrryy (_i_n_t _w_h_i_c_h_, _c_o_n_s_t _c_h_a_r ! _*_l_i_n_e_, _h_i_s_t_d_a_t_a___t _d_a_t_a) ! Make the history entry at offset _w_h_i_c_h have _l_i_n_e and _d_a_t_a. ! This returns the old entry so you can dispose of the data. ! In the case of an invalid _w_h_i_c_h, a NNUULLLL pointer is returned. --- 177,229 ---- } HISTORY_STATE; ! If the flags member includes HHSS__SSTTIIFFLLEEDD, the history has been stifled. HHiissttoorryy FFuunnccttiioonnss ! This section describes the calling sequence for the various functions ! exported by the GNU History library. IInniittiiaalliizziinngg HHiissttoorryy aanndd SSttaattee MMaannaaggeemmeenntt ! This section describes functions used to initialize and manage the ! state of the History library when you want to use the history functions ! in your program. _v_o_i_d uussiinngg__hhiissttoorryy (_v_o_i_d) ! Begin a session in which the history functions might be used. This ! initializes the interactive variables. _H_I_S_T_O_R_Y___S_T_A_T_E _* hhiissttoorryy__ggeett__hhiissttoorryy__ssttaattee (_v_o_i_d) ! Return a structure describing the current state of the input history. _v_o_i_d hhiissttoorryy__sseett__hhiissttoorryy__ssttaattee (_H_I_S_T_O_R_Y___S_T_A_T_E _*_s_t_a_t_e) Set the state of the history list according to _s_t_a_t_e. HHiissttoorryy LLiisstt MMaannaaggeemmeenntt ! These functions manage individual entries on the history list, or set ! parameters managing the list itself. _v_o_i_d aadddd__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g) ! Place _s_t_r_i_n_g at the end of the history list. The associated data field ! (if any) is set to NNUULLLL. ! ! _v_o_i_d aadddd__hhiissttoorryy__ttiimmee (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g) ! Change the time stamp associated with the most recent history entry to ! _s_t_r_i_n_g. _H_I_S_T___E_N_T_R_Y _* rreemmoovvee__hhiissttoorryy (_i_n_t _w_h_i_c_h) ! Remove history entry at offset _w_h_i_c_h from the history. The removed ! element is returned so you can free the line, data, and containing ! structure. ! ! _h_i_s_t_d_a_t_a___t ffrreeee__hhiissttoorryy__eennttrryy (_H_I_S_T___E_N_T_R_Y _*_h_i_s_t_e_n_t) ! Free the history entry _h_i_s_t_e_n_t and any history library private data ! associated with it. Returns the application-specific data so the ! caller can dispose of it. ! ! _H_I_S_T___E_N_T_R_Y _* rreeppllaaccee__hhiissttoorryy__eennttrryy (_i_n_t _w_h_i_c_h_, _c_o_n_s_t _c_h_a_r _*_l_i_n_e_, _h_i_s_t_- ! _d_a_t_a___t _d_a_t_a) ! Make the history entry at offset _w_h_i_c_h have _l_i_n_e and _d_a_t_a. This ! returns the old entry so the caller can dispose of any application-spe- ! cific data. In the case of an invalid _w_h_i_c_h, a NNUULLLL pointer is returned. *************** *** 296,321 **** _v_o_i_d ssttiiffllee__hhiissttoorryy (_i_n_t _m_a_x) ! Stifle the history list, remembering only the last _m_a_x ! entries. _i_n_t uunnssttiiffllee__hhiissttoorryy (_v_o_i_d) ! Stop stifling the history. This returns the previously- ! set maximum number of history entries (as set by ssttii-- ! ffllee__hhiissttoorryy(())). history was stifled. The value is posi- ! tive if the history was stifled, negative if it wasn't. _i_n_t hhiissttoorryy__iiss__ssttiifflleedd (_v_o_i_d) ! Returns non-zero if the history is stifled, zero if it is ! not. IInnffoorrmmaattiioonn AAbboouutt tthhee HHiissttoorryy LLiisstt ! These functions return information about the entire his- ! tory list or individual list entries. _H_I_S_T___E_N_T_R_Y _*_* hhiissttoorryy__lliisstt (_v_o_i_d) ! Return a NNUULLLL terminated array of _H_I_S_T___E_N_T_R_Y _* which is ! the current input history. Element 0 of this list is the ! beginning of time. If there is no history, return NNUULLLL. _i_n_t wwhheerree__hhiissttoorryy (_v_o_i_d) --- 232,255 ---- _v_o_i_d ssttiiffllee__hhiissttoorryy (_i_n_t _m_a_x) ! Stifle the history list, remembering only the last _m_a_x entries. _i_n_t uunnssttiiffllee__hhiissttoorryy (_v_o_i_d) ! Stop stifling the history. This returns the previously-set maximum ! number of history entries (as set by ssttiiffllee__hhiissttoorryy(())). history was ! stifled. The value is positive if the history was stifled, negative if ! it wasn't. _i_n_t hhiissttoorryy__iiss__ssttiifflleedd (_v_o_i_d) ! Returns non-zero if the history is stifled, zero if it is not. IInnffoorrmmaattiioonn AAbboouutt tthhee HHiissttoorryy LLiisstt ! These functions return information about the entire history list or ! individual list entries. _H_I_S_T___E_N_T_R_Y _*_* hhiissttoorryy__lliisstt (_v_o_i_d) ! Return a NNUULLLL terminated array of _H_I_S_T___E_N_T_R_Y _* which is the current ! input history. Element 0 of this list is the beginning of time. If ! there is no history, return NNUULLLL. _i_n_t wwhheerree__hhiissttoorryy (_v_o_i_d) *************** *** 323,471 **** _H_I_S_T___E_N_T_R_Y _* ccuurrrreenntt__hhiissttoorryy (_v_o_i_d) ! ! ! ! GNU History 4.3 2002 January 31 5 ! ! ! ! ! ! HISTORY(3) HISTORY(3) ! ! ! Return the history entry at the current position, as ! determined by wwhheerree__hhiissttoorryy(()). If there is no entry ! there, return a NNUULLLL pointer. _H_I_S_T___E_N_T_R_Y _* hhiissttoorryy__ggeett (_i_n_t _o_f_f_s_e_t) ! Return the history entry at position _o_f_f_s_e_t, starting from ! hhiissttoorryy__bbaassee. If there is no entry there, or if _o_f_f_s_e_t is ! greater than the history length, return a NNUULLLL pointer. _i_n_t hhiissttoorryy__ttoottaall__bbyytteess (_v_o_i_d) ! Return the number of bytes that the primary history ! entries are using. This function returns the sum of the ! lengths of all the lines in the history. MMoovviinngg AArroouunndd tthhee HHiissttoorryy LLiisstt ! These functions allow the current index into the history ! list to be set or changed. _i_n_t hhiissttoorryy__sseett__ppooss (_i_n_t _p_o_s) ! Set the current history offset to _p_o_s, an absolute index ! into the list. Returns 1 on success, 0 if _p_o_s is less ! than zero or greater than the number of history entries. _H_I_S_T___E_N_T_R_Y _* pprreevviioouuss__hhiissttoorryy (_v_o_i_d) ! Back up the current history offset to the previous history ! entry, and return a pointer to that entry. If there is no ! previous entry, return a NNUULLLL pointer. _H_I_S_T___E_N_T_R_Y _* nneexxtt__hhiissttoorryy (_v_o_i_d) ! Move the current history offset forward to the next his- ! tory entry, and return the a pointer to that entry. If ! there is no next entry, return a NNUULLLL pointer. SSeeaarrcchhiinngg tthhee HHiissttoorryy LLiisstt ! These functions allow searching of the history list for ! entries containing a specific string. Searching may be ! performed both forward and backward from the current his- ! tory position. The search may be _a_n_c_h_o_r_e_d, meaning that ! the string must match at the beginning of the history ! entry. _i_n_t hhiissttoorryy__sseeaarrcchh (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n) ! Search the history for _s_t_r_i_n_g, starting at the current ! history offset. If _d_i_r_e_c_t_i_o_n is less than 0, then the ! search is through previous entries, otherwise through sub- ! sequent entries. If _s_t_r_i_n_g is found, then the current ! history index is set to that history entry, and the value ! returned is the offset in the line of the entry where ! _s_t_r_i_n_g was found. Otherwise, nothing is changed, and a -1 ! is returned. ! ! _i_n_t hhiissttoorryy__sseeaarrcchh__pprreeffiixx (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t ! ! ! ! GNU History 4.3 2002 January 31 6 ! ! ! ! ! ! HISTORY(3) HISTORY(3) ! ! ! _d_i_r_e_c_t_i_o_n) ! Search the history for _s_t_r_i_n_g, starting at the current ! history offset. The search is anchored: matching lines ! must begin with _s_t_r_i_n_g. If _d_i_r_e_c_t_i_o_n is less than 0, then ! the search is through previous entries, otherwise through ! subsequent entries. If _s_t_r_i_n_g is found, then the current ! history index is set to that entry, and the return value ! is 0. Otherwise, nothing is changed, and a -1 is ! returned. ! ! _i_n_t hhiissttoorryy__sseeaarrcchh__ppooss (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n_, ! _i_n_t _p_o_s) ! Search for _s_t_r_i_n_g in the history list, starting at _p_o_s, an ! absolute index into the list. If _d_i_r_e_c_t_i_o_n is negative, ! the search proceeds backward from _p_o_s, otherwise forward. ! Returns the absolute index of the history element where ! _s_t_r_i_n_g was found, or -1 otherwise. MMaannaaggiinngg tthhee HHiissttoorryy FFiillee ! The History library can read the history from and write it ! to a file. This section documents the functions for man- ! aging a history file. _i_n_t rreeaadd__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e) ! Add the contents of _f_i_l_e_n_a_m_e to the history list, a line ! at a time. If _f_i_l_e_n_a_m_e is NNUULLLL, then read from _~_/_._h_i_s_- ! _t_o_r_y. Returns 0 if successful, or eerrrrnnoo if not. ! ! _i_n_t rreeaadd__hhiissttoorryy__rraannggee (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e_, _i_n_t _f_r_o_m_, ! _i_n_t _t_o) ! Read a range of lines from _f_i_l_e_n_a_m_e, adding them to the ! history list. Start reading at line _f_r_o_m and end at _t_o. ! If _f_r_o_m is zero, start at the beginning. If _t_o is less ! than _f_r_o_m, then read until the end of the file. If _f_i_l_e_- ! _n_a_m_e is NNUULLLL, then read from _~_/_._h_i_s_t_o_r_y. Returns 0 if successful, or eerrrrnnoo if not. _i_n_t wwrriittee__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e) ! Write the current history to _f_i_l_e_n_a_m_e, overwriting _f_i_l_e_- ! _n_a_m_e if necessary. If _f_i_l_e_n_a_m_e is NNUULLLL, then write the ! history list to _~_/_._h_i_s_t_o_r_y. Returns 0 on success, or ! eerrrrnnoo on a read or write error. _i_n_t aappppeenndd__hhiissttoorryy (_i_n_t _n_e_l_e_m_e_n_t_s_, _c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e) ! Append the last _n_e_l_e_m_e_n_t_s of the history list to _f_i_l_e_n_a_m_e. ! If _f_i_l_e_n_a_m_e is NNUULLLL, then append to _~_/_._h_i_s_t_o_r_y. Returns 0 ! on success, or eerrrrnnoo on a read or write error. ! ! _i_n_t hhiissttoorryy__ttrruunnccaattee__ffiillee (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e_, _i_n_t ! _n_l_i_n_e_s) ! Truncate the history file _f_i_l_e_n_a_m_e, leaving only the last ! _n_l_i_n_e_s lines. If _f_i_l_e_n_a_m_e is NNUULLLL, then _~_/_._h_i_s_t_o_r_y is ! ! ! ! GNU History 4.3 2002 January 31 7 ! ! ! ! ! ! HISTORY(3) HISTORY(3) ! ! ! truncated. Returns 0 on success, or eerrrrnnoo on failure. --- 257,359 ---- _H_I_S_T___E_N_T_R_Y _* ccuurrrreenntt__hhiissttoorryy (_v_o_i_d) ! Return the history entry at the current position, as determined by ! wwhheerree__hhiissttoorryy(()). If there is no entry there, return a NNUULLLL pointer. _H_I_S_T___E_N_T_R_Y _* hhiissttoorryy__ggeett (_i_n_t _o_f_f_s_e_t) ! Return the history entry at position _o_f_f_s_e_t, starting from hhiiss-- ! ttoorryy__bbaassee. If there is no entry there, or if _o_f_f_s_e_t is greater than ! the history length, return a NNUULLLL pointer. ! ! _t_i_m_e___t hhiissttoorryy__ggeett__ttiimmee (_H_I_S_T___E_N_T_R_Y _*) ! Return the time stamp associated with the history entry passed as the ! argument. _i_n_t hhiissttoorryy__ttoottaall__bbyytteess (_v_o_i_d) ! Return the number of bytes that the primary history entries are using. ! This function returns the sum of the lengths of all the lines in the ! history. MMoovviinngg AArroouunndd tthhee HHiissttoorryy LLiisstt ! These functions allow the current index into the history list to be set ! or changed. _i_n_t hhiissttoorryy__sseett__ppooss (_i_n_t _p_o_s) ! Set the current history offset to _p_o_s, an absolute index into the list. ! Returns 1 on success, 0 if _p_o_s is less than zero or greater than the ! number of history entries. _H_I_S_T___E_N_T_R_Y _* pprreevviioouuss__hhiissttoorryy (_v_o_i_d) ! Back up the current history offset to the previous history entry, and ! return a pointer to that entry. If there is no previous entry, return ! a NNUULLLL pointer. _H_I_S_T___E_N_T_R_Y _* nneexxtt__hhiissttoorryy (_v_o_i_d) ! Move the current history offset forward to the next history entry, and ! return the a pointer to that entry. If there is no next entry, return ! a NNUULLLL pointer. SSeeaarrcchhiinngg tthhee HHiissttoorryy LLiisstt ! These functions allow searching of the history list for entries con- ! taining a specific string. Searching may be performed both forward and ! backward from the current history position. The search may be ! _a_n_c_h_o_r_e_d, meaning that the string must match at the beginning of the ! history entry. _i_n_t hhiissttoorryy__sseeaarrcchh (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n) ! Search the history for _s_t_r_i_n_g, starting at the current history offset. ! If _d_i_r_e_c_t_i_o_n is less than 0, then the search is through previous ! entries, otherwise through subsequent entries. If _s_t_r_i_n_g is found, ! then the current history index is set to that history entry, and the ! value returned is the offset in the line of the entry where _s_t_r_i_n_g was ! found. Otherwise, nothing is changed, and a -1 is returned. ! ! _i_n_t hhiissttoorryy__sseeaarrcchh__pprreeffiixx (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n) ! Search the history for _s_t_r_i_n_g, starting at the current history offset. ! The search is anchored: matching lines must begin with _s_t_r_i_n_g. If ! _d_i_r_e_c_t_i_o_n is less than 0, then the search is through previous entries, ! otherwise through subsequent entries. If _s_t_r_i_n_g is found, then the ! current history index is set to that entry, and the return value is 0. ! Otherwise, nothing is changed, and a -1 is returned. ! ! _i_n_t hhiissttoorryy__sseeaarrcchh__ppooss (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n_, _i_n_t _p_o_s) ! Search for _s_t_r_i_n_g in the history list, starting at _p_o_s, an absolute ! index into the list. If _d_i_r_e_c_t_i_o_n is negative, the search proceeds ! backward from _p_o_s, otherwise forward. Returns the absolute index of ! the history element where _s_t_r_i_n_g was found, or -1 otherwise. MMaannaaggiinngg tthhee HHiissttoorryy FFiillee ! The History library can read the history from and write it to a file. ! This section documents the functions for managing a history file. _i_n_t rreeaadd__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e) ! Add the contents of _f_i_l_e_n_a_m_e to the history list, a line at a time. If ! _f_i_l_e_n_a_m_e is NNUULLLL, then read from _~_/_._h_i_s_t_o_r_y. Returns 0 if successful, ! or eerrrrnnoo if not. ! ! _i_n_t rreeaadd__hhiissttoorryy__rraannggee (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e_, _i_n_t _f_r_o_m_, _i_n_t _t_o) ! Read a range of lines from _f_i_l_e_n_a_m_e, adding them to the history list. ! Start reading at line _f_r_o_m and end at _t_o. If _f_r_o_m is zero, start at ! the beginning. If _t_o is less than _f_r_o_m, then read until the end of the ! file. If _f_i_l_e_n_a_m_e is NNUULLLL, then read from _~_/_._h_i_s_t_o_r_y. Returns 0 if successful, or eerrrrnnoo if not. _i_n_t wwrriittee__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e) ! Write the current history to _f_i_l_e_n_a_m_e, overwriting _f_i_l_e_n_a_m_e if neces- ! sary. If _f_i_l_e_n_a_m_e is NNUULLLL, then write the history list to _~_/_._h_i_s_t_o_r_y. ! Returns 0 on success, or eerrrrnnoo on a read or write error. _i_n_t aappppeenndd__hhiissttoorryy (_i_n_t _n_e_l_e_m_e_n_t_s_, _c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e) ! Append the last _n_e_l_e_m_e_n_t_s of the history list to _f_i_l_e_n_a_m_e. If _f_i_l_e_n_a_m_e ! is NNUULLLL, then append to _~_/_._h_i_s_t_o_r_y. Returns 0 on success, or eerrrrnnoo on ! a read or write error. ! ! _i_n_t hhiissttoorryy__ttrruunnccaattee__ffiillee (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e_, _i_n_t _n_l_i_n_e_s) ! Truncate the history file _f_i_l_e_n_a_m_e, leaving only the last _n_l_i_n_e_s lines. ! If _f_i_l_e_n_a_m_e is NNUULLLL, then _~_/_._h_i_s_t_o_r_y is truncated. Returns 0 on suc- ! cess, or eerrrrnnoo on failure. *************** *** 474,516 **** _i_n_t hhiissttoorryy__eexxppaanndd (_c_h_a_r _*_s_t_r_i_n_g_, _c_h_a_r _*_*_o_u_t_p_u_t) ! Expand _s_t_r_i_n_g, placing the result into _o_u_t_p_u_t, a pointer ! to a string. Returns: ! 0 If no expansions took place (or, if the only ! change in the text was the removal of escape ! characters preceding the history expansion ! character); 1 if expansions did take place; -1 if there was an error in expansion; ! 2 if the returned line should be displayed, ! but not executed, as with the ::pp modifier. ! If an error ocurred in expansion, then _o_u_t_p_u_t contains a ! descriptive error message. ! ! _c_h_a_r _* ggeett__hhiissttoorryy__eevveenntt (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _*_c_i_n_d_e_x_, ! _i_n_t _q_c_h_a_r) ! Returns the text of the history event beginning at _s_t_r_i_n_g ! + _*_c_i_n_d_e_x. _*_c_i_n_d_e_x is modified to point to after the ! event specifier. At function entry, _c_i_n_d_e_x points to the ! index into _s_t_r_i_n_g where the history event specification ! begins. _q_c_h_a_r is a character that is allowed to end the ! event specification in addition to the ``normal'' termi- ! nating characters. _c_h_a_r _*_* hhiissttoorryy__ttookkeenniizzee (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g) ! Return an array of tokens parsed out of _s_t_r_i_n_g, much as ! the shell might. The tokens are split on the characters ! in the hhiissttoorryy__wwoorrdd__ddeelliimmiitteerrss variable, and shell quoting ! conventions are obeyed. ! ! _c_h_a_r _* hhiissttoorryy__aarrgg__eexxttrraacctt (_i_n_t _f_i_r_s_t_, _i_n_t _l_a_s_t_, _c_o_n_s_t ! _c_h_a_r _*_s_t_r_i_n_g) ! Extract a string segment consisting of the _f_i_r_s_t through ! _l_a_s_t arguments present in _s_t_r_i_n_g. Arguments are split ! using hhiissttoorryy__ttookkeenniizzee(()). HHiissttoorryy VVaarriiaabblleess ! This section describes the externally-visible variables ! exported by the GNU History Library. _i_n_t hhiissttoorryy__bbaassee --- 362,399 ---- _i_n_t hhiissttoorryy__eexxppaanndd (_c_h_a_r _*_s_t_r_i_n_g_, _c_h_a_r _*_*_o_u_t_p_u_t) ! Expand _s_t_r_i_n_g, placing the result into _o_u_t_p_u_t, a pointer to a string. ! Returns: ! 0 If no expansions took place (or, if the only change in ! the text was the removal of escape characters preceding ! the history expansion character); 1 if expansions did take place; -1 if there was an error in expansion; ! 2 if the returned line should be displayed, but not exe- ! cuted, as with the ::pp modifier. ! If an error ocurred in expansion, then _o_u_t_p_u_t contains a descriptive ! error message. ! ! _c_h_a_r _* ggeett__hhiissttoorryy__eevveenntt (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _*_c_i_n_d_e_x_, _i_n_t _q_c_h_a_r) ! Returns the text of the history event beginning at _s_t_r_i_n_g + _*_c_i_n_d_e_x. ! _*_c_i_n_d_e_x is modified to point to after the event specifier. At function ! entry, _c_i_n_d_e_x points to the index into _s_t_r_i_n_g where the history event ! specification begins. _q_c_h_a_r is a character that is allowed to end the ! event specification in addition to the ``normal'' terminating charac- ! ters. _c_h_a_r _*_* hhiissttoorryy__ttookkeenniizzee (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g) ! Return an array of tokens parsed out of _s_t_r_i_n_g, much as the shell ! might. The tokens are split on the characters in the hhiiss-- ! ttoorryy__wwoorrdd__ddeelliimmiitteerrss variable, and shell quoting conventions are ! obeyed. ! ! _c_h_a_r _* hhiissttoorryy__aarrgg__eexxttrraacctt (_i_n_t _f_i_r_s_t_, _i_n_t _l_a_s_t_, _c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g) ! Extract a string segment consisting of the _f_i_r_s_t through _l_a_s_t arguments ! present in _s_t_r_i_n_g. Arguments are split using hhiissttoorryy__ttookkeenniizzee(()). HHiissttoorryy VVaarriiaabblleess ! This section describes the externally-visible variables exported by the ! GNU History Library. _i_n_t hhiissttoorryy__bbaassee *************** *** 518,601 **** _i_n_t hhiissttoorryy__lleennggtthh ! The number of entries currently stored in the history ! list. ! ! ! ! ! GNU History 4.3 2002 January 31 8 ! ! ! ! ! ! HISTORY(3) HISTORY(3) ! _i_n_t hhiissttoorryy__mmaaxx__eennttrriieess ! The maximum number of history entries. This must be ! changed using ssttiiffllee__hhiissttoorryy(()). _c_h_a_r hhiissttoorryy__eexxppaannssiioonn__cchhaarr ! The character that introduces a history event. The ! default is !!. Setting this to 0 inhibits history expan- ! sion. _c_h_a_r hhiissttoorryy__ssuubbsstt__cchhaarr ! The character that invokes word substitution if found at ! the start of a line. The default is ^^. _c_h_a_r hhiissttoorryy__ccoommmmeenntt__cchhaarr ! During tokenization, if this character is seen as the ! first character of a word, then it and all subsequent ! characters up to a newline are ignored, suppressing his- ! tory expansion for the remainder of the line. This is ! disabled by default. _c_h_a_r _* hhiissttoorryy__wwoorrdd__ddeelliimmiitteerrss ! The characters that separate tokens for hhiissttoorryy__ttookk-- ! eenniizzee(()). The default value is "" \\tt\\nn(())<<>>;;&&||"". _c_h_a_r _* hhiissttoorryy__nnoo__eexxppaanndd__cchhaarrss ! The list of characters which inhibit history expansion if ! found immediately following hhiissttoorryy__eexxppaannssiioonn__cchhaarr. The ! default is space, tab, newline, \\rr, and ==. _c_h_a_r _* hhiissttoorryy__sseeaarrcchh__ddeelliimmiitteerr__cchhaarrss ! The list of additional characters which can delimit a his- ! tory search string, in addition to space, tab, _: and _? in ! the case of a substring search. The default is empty. _i_n_t hhiissttoorryy__qquuootteess__iinnhhiibbiitt__eexxppaannssiioonn ! If non-zero, single-quoted words are not scanned for the ! history expansion character. The default value is 0. _r_l___l_i_n_e_b_u_f___f_u_n_c___t _* hhiissttoorryy__iinnhhiibbiitt__eexxppaannssiioonn__ffuunnccttiioonn ! This should be set to the address of a function that takes ! two arguments: a cchhaarr ** (_s_t_r_i_n_g) and an iinntt index into ! that string (_i). It should return a non-zero value if the ! history expansion starting at _s_t_r_i_n_g_[_i_] should not be per- ! formed; zero if the expansion should be done. It is ! intended for use by applications like bbaasshh that use the ! history expansion character for additional purposes. By ! default, this variable is set to NNUULLLL. FFIILLEESS _~_/_._h_i_s_t_o_r_y ! Default filename for reading and writing saved his- ! tory ! ! ! ! ! ! GNU History 4.3 2002 January 31 9 ! ! ! ! ! ! HISTORY(3) HISTORY(3) ! SSEEEE AALLSSOO --- 401,459 ---- _i_n_t hhiissttoorryy__lleennggtthh ! The number of entries currently stored in the history list. _i_n_t hhiissttoorryy__mmaaxx__eennttrriieess ! The maximum number of history entries. This must be changed using ssttii-- ! ffllee__hhiissttoorryy(()). ! ! _i_n_t hhiissttoorryy__wwrriittee__ttiimmeessttaammppss ! If non-zero, timestamps are written to the history file, so they can be ! preserved between sessions. The default value is 0, meaning that ! timestamps are not saved. _c_h_a_r hhiissttoorryy__eexxppaannssiioonn__cchhaarr ! The character that introduces a history event. The default is !!. Set- ! ting this to 0 inhibits history expansion. _c_h_a_r hhiissttoorryy__ssuubbsstt__cchhaarr ! The character that invokes word substitution if found at the start of a ! line. The default is ^^. _c_h_a_r hhiissttoorryy__ccoommmmeenntt__cchhaarr ! During tokenization, if this character is seen as the first character ! of a word, then it and all subsequent characters up to a newline are ! ignored, suppressing history expansion for the remainder of the line. ! This is disabled by default. _c_h_a_r _* hhiissttoorryy__wwoorrdd__ddeelliimmiitteerrss ! The characters that separate tokens for hhiissttoorryy__ttookkeenniizzee(()). The ! default value is "" \\tt\\nn(())<<>>;;&&||"". _c_h_a_r _* hhiissttoorryy__nnoo__eexxppaanndd__cchhaarrss ! The list of characters which inhibit history expansion if found immedi- ! ately following hhiissttoorryy__eexxppaannssiioonn__cchhaarr. The default is space, tab, ! newline, \\rr, and ==. _c_h_a_r _* hhiissttoorryy__sseeaarrcchh__ddeelliimmiitteerr__cchhaarrss ! The list of additional characters which can delimit a history search ! string, in addition to space, tab, _: and _? in the case of a substring ! search. The default is empty. _i_n_t hhiissttoorryy__qquuootteess__iinnhhiibbiitt__eexxppaannssiioonn ! If non-zero, single-quoted words are not scanned for the history expan- ! sion character. The default value is 0. _r_l___l_i_n_e_b_u_f___f_u_n_c___t _* hhiissttoorryy__iinnhhiibbiitt__eexxppaannssiioonn__ffuunnccttiioonn ! This should be set to the address of a function that takes two argu- ! ments: a cchhaarr ** (_s_t_r_i_n_g) and an iinntt index into that string (_i). It ! should return a non-zero value if the history expansion starting at ! _s_t_r_i_n_g_[_i_] should not be performed; zero if the expansion should be ! done. It is intended for use by applications like bbaasshh that use the ! history expansion character for additional purposes. By default, this ! variable is set to NNUULLLL. FFIILLEESS _~_/_._h_i_s_t_o_r_y ! Default filename for reading and writing saved history SSEEEE AALLSSOO *************** *** 613,660 **** BBUUGG RREEPPOORRTTSS ! If you find a bug in the hhiissttoorryy library, you should ! report it. But first, you should make sure that it really ! is a bug, and that it appears in the latest version of the ! hhiissttoorryy library that you have. ! ! Once you have determined that a bug actually exists, mail ! a bug report to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g. If you have a fix, ! you are welcome to mail that as well! Suggestions and ! `philosophical' bug reports may be mailed to _b_u_g_-_r_e_a_d_- ! _l_i_n_e@_g_n_u_._o_r_g or posted to the Usenet newsgroup ggnnuu..bbaasshh..bbuugg. ! Comments and bug reports concerning this manual page ! should be directed to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u. ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! - GNU History 4.3 2002 January 31 10 --- 471,488 ---- BBUUGG RREEPPOORRTTSS ! If you find a bug in the hhiissttoorryy library, you should report it. But ! first, you should make sure that it really is a bug, and that it ! appears in the latest version of the hhiissttoorryy library that you have. ! ! Once you have determined that a bug actually exists, mail a bug report ! to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g. If you have a fix, you are welcome to mail ! that as well! Suggestions and `philosophical' bug reports may be ! mailed to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g or posted to the Usenet newsgroup ggnnuu..bbaasshh..bbuugg. ! Comments and bug reports concerning this manual page should be directed ! to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u. + GNU History 5.0 2003 July 31 HISTORY(3) diff -aNrc2 readline-4.3-patched/doc/history.3 readline-5.0/doc/history.3 *** readline-4.3-patched/doc/history.3 Thu Jan 31 16:11:05 2002 --- readline-5.0/doc/history.3 Thu Jul 31 08:47:13 2003 *************** *** 7,13 **** .\" chet@ins.CWRU.Edu .\" ! .\" Last Change: Thu Jan 31 16:08:07 EST 2002 .\" ! .TH HISTORY 3 "2002 January 31" "GNU History 4.3" .\" .\" File Name macro. This used to be `.PN', for Path Name, --- 7,13 ---- .\" chet@ins.CWRU.Edu .\" ! .\" Last Change: Thu Jul 31 08:46:08 EDT 2003 .\" ! .TH HISTORY 3 "2003 July 31" "GNU History 5.0" .\" .\" File Name macro. This used to be `.PN', for Path Name, *************** *** 250,253 **** --- 250,257 ---- in place of /, and the final delimiter is optional if it is the last character of the event line. + An \fBa\fP may be used as a synonym for \fBg\fP. + .TP + .B G + Apply the following `\fBs\fP' modifier once to each word in the event line. .PD .SH "PROGRAMMING WITH HISTORY FUNCTIONS" *************** *** 293,296 **** --- 297,301 ---- typedef struct _hist_entry { char *line; + char *timestamp; histdata_t data; } HIST_ENTRY; *************** *** 346,349 **** --- 351,358 ---- field (if any) is set to \fBNULL\fP. + .Fn1 void add_history_time "const char *string" + Change the time stamp associated with the most recent history entry to + \fIstring\fP. + .Fn1 "HIST_ENTRY *" remove_history "int which" Remove history entry at offset \fIwhich\fP from the history. The *************** *** 351,357 **** and containing structure. .Fn3 "HIST_ENTRY *" replace_history_entry "int which" "const char *line" "histdata_t data" Make the history entry at offset \fIwhich\fP have \fIline\fP and \fIdata\fP. ! This returns the old entry so you can dispose of the data. In the case of an invalid \fIwhich\fP, a \fBNULL\fP pointer is returned. --- 360,372 ---- and containing structure. + .Fn1 "histdata_t" free_history_entry "HIST_ENTRY *histent" + Free the history entry \fIhistent\fP and any history library private + data associated with it. Returns the application-specific data + so the caller can dispose of it. + .Fn3 "HIST_ENTRY *" replace_history_entry "int which" "const char *line" "histdata_t data" Make the history entry at offset \fIwhich\fP have \fIline\fP and \fIdata\fP. ! This returns the old entry so the caller can dispose of any ! application-specific data. In the case of an invalid \fIwhich\fP, a \fBNULL\fP pointer is returned. *************** *** 395,398 **** --- 410,416 ---- is greater than the history length, return a \fBNULL\fP pointer. + .Fn1 "time_t" history_get_time "HIST_ENTRY *" + Return the time stamp associated with the history entry passed as the argument. + .Fn1 int history_total_bytes "void" Return the number of bytes that the primary history entries are using. *************** *** 551,554 **** --- 569,577 ---- The maximum number of history entries. This must be changed using \fBstifle_history()\fP. + + .Vb int history_write_timestamps + If non-zero, timestamps are written to the history file, so they can be + preserved between sessions. The default value is 0, meaning that + timestamps are not saved. .Vb char history_expansion_char diff -aNrc2 readline-4.3-patched/doc/history.dvi readline-5.0/doc/history.dvi *** readline-4.3-patched/doc/history.dvi Thu Jun 27 13:54:37 2002 --- readline-5.0/doc/history.dvi Tue Jul 27 09:31:32 2004 *************** *** 1,25 **** ! ÷ƒ’À;è TeX output 2002.06.27:1354‹ÿÿÿÿŸòŽ ƒ3* þšé‘GóBÂÖN ¼j cmbx12ëBGNU–ƧHistory“LibraryŽ‘GŸ 0‰±ž¸Ÿ šª’Õ@„ó2Kñ`y ó3 ! cmr10ÝEdition–¦f4.3,“for“ó3ßê“Ýin“an²!y“ leŽ¡‘Gthat–ß?uses“the“History“library's“features.‘›{It“supplies“extern“declarations“for“all“of“the“library'sŽ¡‘Gpublic–¦ffunctions“and“v‘ÿdDariables,“and“declares“all“of“the“public“data“structures.ŽŸƒ^‘GëT2.2‘™History‘f@StorageŽŽŸg¿‘!GÝThe–¦fhistory“list“is“an“arraš²!y“of“history“en˜tries.‘ÝÝA“history“en˜try“is“declared“as“follo˜ws:ŽŸ´Œ‘.ùœÞtypedef–¿ªvoid“*histdata_t;ŽŸ‘.ùœtypedef–¿ªstruct“_hist_entry“{Ž¤ €‘:xðchar‘¿ª*line;Ž¡‘:xðhistdata_t‘¿ªdata;Ž¡‘.ùœ}‘¿ªHIST_ENTRY;Ž¦‘!GÝThe–¦fhistory“list“itself“migh²!t“therefore“bMÞe“declared“asŽ¤´Œ‘.ùœÞHIST_ENTRY‘¿ª**the_history_list;Ž¦‘!GÝThe–¦fstate“of“the“History“library“is“encapsulated“in²!to“a“single“structure:Ž¡‘.ùœÞ/*Ž¤ €‘4¹F*–¿ªA“structure“used“to“pass“around“the“current“state“of“the“history.Ž¡‘4¹F*/Ž¡‘.ùœtypedef–¿ªstruct“_hist_state“{Ž¡‘:xðHIST_ENTRY–¿ª**entries;“/*“Pointer“to“the“entries“themselves.“*/Ž¡‘:xðint–¿ªoffset;‘?ûÝwhere“the“history“ev˜en˜t“spšMÞeci cation“b˜egins.‘×Uáqcš²!har‘ Ýis“a“c˜haracterŽ¡‘.ùœthat–:Xis“allo•²!w“ed–:Xto“end“the“ev•²!en“t–:XspMÞeci cation“in“addition“to“the“\normal"“terminatingŽ¡‘.ùœc²!haracters.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèchar–™˜**“çhistory‘Óõ‰ˆŠ#ØŽ‘÷ÍtokÞenize‘yšâ(Þconst–¦fchar“*stringâ)Ž¡‘.ùœÝReturn–µ‘an“arraš²!y“of“tok˜ens“parsed“out“of“ástringÝ,‘¹\m˜uc˜h“as“the“shell“migh˜t.‘ _The“tok˜ensŽ¡‘.ùœare–Ósplit“on“the“cš²!haracters“in“the“áhistory‘¨/‰x³HøŽ–ñ'w˜ord‘¨/‰x³HøŽ“delimiters‘F™Ýv‘ÿdDariable,‘ÞCand–Óshell“quotingŽ¡‘.ùœcon•²!v“en“tions–¦fare“obMÞey²!ed.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèchar–™˜*“çhistory‘Óõ‰ˆŠ#ØŽ–÷Íarg‘Óõ‰ˆŠ#ØŽ“extract‘yšâ(Þint–¦ffirst,“int“last,“const“charŽ¡‘DG*stringâ)Ž¡‘.ùœÝExtract–ÙHa“string“segmen²!t“consisting“of“the“á rst›HÝthrough“álast˜Ýargumenš²!ts“presen˜t“inŽ¡‘.ùœástringÝ.‘ÝÝArgumen²!ts–¦fare“split“using“Þhistory_tokenizeÝ.ŽŽŒ‹ ! T™Ÿò‘GÝ10’?-WGNU–¦fHistory“LibraryŽŽŽ ƒ3* ý ÌÖ‘GëT2.4‘™History‘f@V‘þ¦fariablesŽŽŸm‘!GÝThis–#section“describšMÞes“the“externally-visible“v‘ÿdDariables“exp˜orted“b²!y“the“ãgnu“ÝHistory“Li-Ž¤ 33‘Gbrary‘ÿe.Ž©à’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çhistory‘Óõ‰ˆŠ#ØŽ‘÷ÍbaseŽ¡‘.ùœÝThe–¦flogical“o set“of“the“ rst“en²!try“in“the“history“list.Ž¦’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çhistory‘Óõ‰ˆŠ#ØŽ‘÷ÍlengthŽ¡‘.ùœÝThe›¦fn•²!um“bMÞer˜of˜en“tries˜curren“tly˜stored˜in˜the˜history˜list.Ž¦’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çhistory‘Óõ‰ˆŠ#ØŽ–÷Ímax‘Óõ‰ˆŠ#ØŽ“enÞtriesŽ¡‘.ùœÝThe–…Zmaximš²!um“n˜um˜bMÞer“of“history“en˜tries.‘ ! z¸This“m˜ust“bMÞe“c˜hanged“using“Þstifle_Ž¡‘.ùœhistory()Ý.Ž¦’«‰V‘ÿeariableŽŽ‘Gèchar‘™˜çhistory‘Óõ‰ˆŠ#ØŽ–÷Íexpansion‘Óõ‰ˆŠ#ØŽ“cÞharŽ¡‘.ùœÝThe–;ycš²!haracter“that“in˜troMÞduces“a“history“ev˜en˜t.›The“default“is“`Þ!Ý'.˜Setting“this“to“0Ž¡‘.ùœinhibits–¦fhistory“expansion.Ž¦’«‰V‘ÿeariableŽŽ‘Gèchar‘™˜çhistory‘Óõ‰ˆŠ#ØŽ–÷Ísubst‘Óõ‰ˆŠ#ØŽ“cÞharŽ¡‘.ùœÝThe–ä|cš²!haracter“that“in˜v˜ok˜es“w˜ord“substitution“if“found“at“the“start“of“a“line.‘˜ TheŽ¡‘.ùœdefault–¦fis“`Þ^Ý'.Ž¦’«‰V‘ÿeariableŽŽ‘Gèchar‘™˜çhistory‘Óõ‰ˆŠ#ØŽ–÷ÍcommenšÞt‘Óõ‰ˆŠ#ØŽ“c˜harŽ¡‘.ùœÝDuring–‰átokš²!enization,‘¿if“this“c˜haracter“is“seen“as“the“ rst“c˜haracter“of“a“w˜ord,‘¿thenŽ¡‘.ùœit–4and“all“subsequenš²!t“c˜haracters“up“to“a“newline“are“ignored,‘—ysuppressing“historyŽ¡‘.ùœexpansion–¦ffor“the“remainder“of“the“line.‘ÝÝThis“is“disabled“b²!y“default.Ž¦’«‰V‘ÿeariableŽŽ‘Gèchar–™˜*“çhistory‘Óõ‰ˆŠ#ØŽ–÷ÍwÞord‘Óõ‰ˆŠ#ØŽ“delimitersŽ¡‘.ùœÝThe–M÷cš²!haracters“that“separate“tok˜ens“for“Þhistory_tokenize()Ý.‘ÀcThe“default“v‘ÿdDalue“is“Þ"Ž¡‘.ùœ\t\n()<>;&|"Ý.Ž¦’«‰V‘ÿeariableŽŽ‘Gèchar–™˜*“çhistory‘Óõ‰ˆŠ#ØŽ–÷Íno‘Óõ‰ˆŠ#ØŽ“expand‘Óõ‰ˆŠ#ØŽ“cÞharsŽ¡‘.ùœÝThe–”klist“of“cš²!haracters“whic˜h“inhibit“history“expansion“if“found“immediately“follo˜wingŽ¡‘.ùœáhistory‘¨/‰x³HøŽ–ñ'expansion‘¨/‰x³HøŽ“c²!harÝ.‘ÝÝThe–¦fdefault“is“space,“tab,“newline,“carriage“return,“and“`Þ=Ý'.Ž¦’«‰V‘ÿeariableŽŽ‘Gèchar–™˜*“çhistory‘Óõ‰ˆŠ#ØŽ–÷ÍsearcšÞh‘Óõ‰ˆŠ#ØŽ“delimiter‘Óõ‰ˆŠ#ØŽ“c˜harsŽ¡‘.ùœÝThe– îlist“of“additional“cš²!haracters“whic˜h“can“delimit“a“history“searc˜h“string,‘; in“additionŽ¡‘.ùœto–¦fspace,“T‘ÿeAB,“`Þ:Ý'“and“`Þ?Ý'“in“the“case“of“a“substring“searcš²!h.‘ÝÝThe“default“is“empt˜y‘ÿe.Ž¦’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çhistory‘Óõ‰ˆŠ#ØŽ–÷Íquotes‘Óõ‰ˆŠ#ØŽ“inhibit‘Óõ‰ˆŠ#ØŽ“expansionŽ¡‘.ùœÝIf–Wnon-zero,‘ˆÁsingle-quoted“wš²!ords“are“not“scanned“for“the“history“expansion“c˜haracter.Ž¡‘.ùœThe–¦fdefault“v‘ÿdDalue“is“0.ŽŽŒ‹ `öŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“History’лî11ŽŽŽ ƒ3* ý ÌÖ’«‰V‘ÿeariableŽŽ‘Gèrl_linebuf_func_t–™˜*“çhistory‘Óõ‰ˆŠ#ØŽ–÷Íinhibit‘Óõ‰ˆŠ#ØŽ“expansion‘Óõ‰ˆŠ#ØŽ“functionŽ¤ 33‘.ùœÝThis–?should“bMÞe“set“to“the“address“of“a“function“that“takš²!es“t˜w˜o“argumen˜ts:‘‘Ža“Þchar‘¦f*Ž¡‘.ùœÝ(ástring‘ðÝ)–0nand“an“Þint“Ýindex“in²!to“that“string“(ái‘”ƒÝ).‘¶‹It“should“return“a“non-zero“v‘ÿdDalue“if“theŽ¡‘.ùœhistory–õexpansion“starting“at“ástring[i]‘àöÝshould“not“bšMÞe“p˜erformed;‘Žzero“if“the“expansionŽ¡‘.ùœshould–ÖObMÞe“done.‘m™It“is“inš²!tended“for“use“b˜y“applications“lik˜e“Bash“that“use“the“historyŽ¡‘.ùœexpansion–¦fc²!haracter“for“additional“purpMÞoses.‘ÝÝBy“default,“this“v‘ÿdDariable“is“set“to“ÞNULLÝ.ŽŸæb‘GëT2.5‘™History–f@Programming“ExampleŽŽŸþ‘!GÝThe–¦ffollo²!wing“program“demonstrates“simple“use“of“the“ãgnu“ÝHistory“Library‘ÿe.ŽŸÌË‘.ùœÞ#include‘¿ªŽ¤ €‘.ùœ#include‘¿ªŽ©‘.ùœmain–¿ª(argc,“argv)Ž¡‘K·îint‘¿ªargc;Ž¡‘K·îchar‘¿ª**argv;Ž¡‘.ùœ{Ž¡‘:xðchar–¿ªline[1024],“*t;Ž¡‘:xðint–¿ªlen,“done“=“0;Ž¦‘:xðline[0]–¿ª=“0;Ž¦‘:xðusing_history‘¿ª();Ž¡‘:xðwhile‘¿ª(!done)Ž¡‘EøD{Ž¡‘Qw˜printf–¿ª("history$“");Ž¡‘Qw˜fflush‘¿ª(stdout);Ž¡‘Qw˜t–¿ª=“fgets“(line,“sizeof“(line)“-“1,“stdin);Ž¡‘Qw˜if–¿ª(t“&&“*t)Ž¡‘\öì{Ž¡‘hv@len–¿ª=“strlen“(t);Ž¡‘hv@if–¿ª(t[len“-“1]“==“'\n')Ž¡‘sõ”t[len–¿ª-“1]“=“'\0';Ž¡‘\öì}Ž¦‘Qw˜if‘¿ª(!t)Ž¡‘\öìstrcpy–¿ª(line,“"quit");Ž¦‘Qw˜if‘¿ª(line[0])Ž¡‘\öì{Ž¡‘hv@char‘¿ª*expansion;Ž¡‘hv@int‘¿ªresult;Ž¦‘hv@result–¿ª=“history_expand“(line,“&expansion);Ž¡‘hv@if‘¿ª(result)Ž¡‘sõ”fprintf–¿ª(stderr,“"%s\n",“expansion);Ž¦‘hv@if–¿ª(result“<“0“||“result“==“2)Ž¡‘sõ”{ŽŽŒ‹ kéŸò‘GÝ12’?-WGNU–¦fHistory“LibraryŽŽŽ ƒ3* ý ÌÖ‘tèÞfree‘¿ª(expansion);Ž¤ €‘tècontinue;Ž¡‘sõ”}Ž©‘hv@add_history‘¿ª(expansion);Ž¡‘hv@strncpy–¿ª(line,“expansion,“sizeof“(line)“-“1);Ž¡‘hv@free‘¿ª(expansion);Ž¡‘\öì}Ž¦‘Qw˜if–¿ª(strcmp“(line,“"quit")“==“0)Ž¡‘\öìdone–¿ª=“1;Ž¡‘Qw˜else–¿ªif“(strcmp“(line,“"save")“==“0)Ž¡‘\öìwrite_history‘¿ª("history_file");Ž¡‘Qw˜else–¿ªif“(strcmp“(line,“"read")“==“0)Ž¡‘\öìread_history‘¿ª("history_file");Ž¡‘Qw˜else–¿ªif“(strcmp“(line,“"list")“==“0)Ž¡‘\öì{Ž¡‘hv@register–¿ªHIST_ENTRY“**the_list;Ž¡‘hv@register–¿ªint“i;Ž¦‘hv@the_list–¿ª=“history_list“();Ž¡‘hv@if‘¿ª(the_list)Ž¡‘sõ”for–¿ª(i“=“0;“the_list[i];“i++)Ž¡‘tèprintf–¿ª("%d:“%s\n",“i“+“history_base,“the_list[i]->line);Ž¡‘\öì}Ž¡‘Qw˜else–¿ªif“(strncmp“(line,“"delete",“6)“==“0)Ž¡‘\öì{Ž¡‘hv@int‘¿ªwhich;Ž¡‘hv@if–¿ª((sscanf“(line“+“6,“"%d",“&which))“==“1)Ž¡‘sõ”{Ž¡‘tèHIST_ENTRY–¿ª*entry“=“remove_history“(which);Ž¡‘tèif‘¿ª(!entry)Ž¡’Šôline);Ž¡’–sfree‘¿ª(entry);Ž¡’Šô<}Ž¡‘sõ”}Ž¡‘hv@elseŽ¡‘sõ”{Ž¡‘tèfprintf–¿ª(stderr,“"non-numeric“arg“given“to“`delete'\n");Ž¡‘sõ”}Ž¡‘\öì}Ž¡‘EøD}Ž¡‘.ùœ}ŽŽŒ‹ räŸò‘GÝAppMÞendix–¦fA:“Concept“Index’ž¬13ŽŽŽ ƒ3* ý ÌÖ‘GëKApp‘Š=endix‘záA‘ ¸QConcept‘z³IndexŽŽŸdòßÄie‘GëTAŽ¤Öe‘Góo´‹Ç cmr9¬anc•¾9hored‘Tsearc“hM‘ÅUó%¼j‘¹ cmti9Ð.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘†š¬8ŽŸéБGëTEŽ¡‘G¬ev•¾9en“t‘Tdesignators‘ºK‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ /—¬1ŽŽŸÄie’óáðëTHŽŸc«’óáð¬history‘Tev•¾9en“ts‘ùÓ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ o¬1Ž¤™x’óáðhistory‘Texpansion‘¼‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Œ ¬1Ž¡’óáðHistory‘TSearc¾9hing‘¸)‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘-v¬8ŽŽŽŽŒ‹wîŸò‘GÝ14’?-WGNU–¦fHistory“LibraryŽŽŽ ƒ3*Œ‹~wŸò‘GÝAppMÞendix–¦fB:“F›ÿeunction“and“V˜ariable“Index’Üú15ŽŽŽ ƒ3* ý ÌÖ‘GëKApp‘Š=endix‘záB‘ ¸QF›þaGunction–z³and“V˜ariable“IndexŽŽ ¨Â{ þ€™­‘GëTAŽ¤¥¼‘GóߤN cmtt9Éadd_history‘߉‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ TÖ¬6Ž© ‘GÉappend_history‘Y+‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Îx¬9ŽŸ6L‘GëTCŽ¡‘GÉclear_history‘…õ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûB¬6Ž¦‘GÉcurrent_history‘,a‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¡®¬7Ž©6L‘GëTGŽ¡‘GÉget_history_event‘ÒÍ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘H¬9Ž¦‘GëTHŽ¡‘GÉhistory_arg_extracty9‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘9Ž¤ ‘GÉhistory_base‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬10Ž¡‘GÉhistory_comment_char,q‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¡¾¬10Ž¡‘GÉhistory_expand‘Y+‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Îx¬9Ž¡‘GÉhistory_expansion_char‘Þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ x+¬10Ž¡‘GÉhistory_get‘߉‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ TÖ¬7Ž¡‘GÉhistory_get_history_state‘œ~‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ˬ6Ž¡‘GÉhistory_inhibit_expansion_function‘g‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Ž´¬11Ž¡‘GÉhistory_is_stifled‘¦‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘P¬7Ž¡‘GÉhistory_length‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬10Ž¡‘GÉhistory_list‘²¿‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ( ¬7Ž¡‘GÉhistory_max_entriesY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬10Ž¡‘GÉhistory_no_expand_chars‘Ö‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Ka¬10Ž¡‘GÉhistory_quotes_inhibit_expansionBú‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¸G¬10Ž¡‘GÉhistory_search‘Y+‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Îx¬8Ž¡‘GÉhistory_search_delimiter_chars‘œŽ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Û¬10Ž¡‘GÉhistory_search_pos‘¦‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘P¬8Ž¡‘GÉhistory_search_prefix¥‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘”ò¬8Ž¡‘GÉhistory_set_history_state‘œ~‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ˬ6Ž¡‘GÉhistory_set_pos‘,a‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¡®¬7ŽŽ þ€™­’óáðÉhistory_subst_char‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬10Ž¤ -’óáðÉhistory_tokenize‘ÿ—‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘tä¬9Ž¡’óáðÉhistory_total_bytesy9‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘7Ž¡’óáðÉhistory_truncate_file¥‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘”ò¬9Ž¡’óáðÉhistory_word_delimiters‘Ö‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Ka¬10Ž¤ "¹’óáðëTNŽ©’óáðÉnext_history‘²¿‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ( ¬7Ž¡’óáðëTPŽ¦’óáðÉprevious_history‘ÿ—‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘tä¬7Ž¡’óáðëTRŽ¦’óáðÉread_history‘²¿‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ( ¬8Ž¤ -’óáðÉread_history_range‘¦‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘P¬8Ž¡’óáðÉremove_history‘Y+‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Îx¬6Ž¡’óáðÉreplace_history_entry¥‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘”ò¬6Ž¤ "¹’óáðëTSŽ¦’óáðÉstifle_history‘Y+‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Îx¬7Ž¡’óáðëTUŽ¦’óáðÉunstifle_history‘ÿ—‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘tä¬7ŽŸ -’óáðÉusing_history‘…õ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûB¬6Ž¡’óáðëTWŽ¦’óáðÉwhere_history‘…õ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûB¬7ŽŸ -’óáðÉwrite_history‘…õ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûB¬8ŽŽŽŽŒ‹~ÖŸò‘GÝ16’?-WGNU–¦fHistory“LibraryŽŽŽ ƒ3*Œ‹ÿÿÿÿ§ŸŸò’À¥TÝiŽŽŽ ƒ3* ý ÌÖ‘GëKT‘þaGable–z³of“Con–ÿuÂten“tsŽŽŸ)33‘GëT1‘32Using–ffHistory“In•ŒÌteractiv“ely‘%‘32óUF C–ff ! cmbxti10ëU.Ž–…‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž‘ ð›ëT1Ž©ÿ‘6GÝ1.1‘ ó5History‘¦fExpansion*•‘é˜ó5ý': ó3 --- 1,10 ---- ! ÷ƒ’À;è TeX output 2004.07.27:0931‹ÿÿÿÿŸòŽ ƒ3* þšé‘GóFÂÖN ¼j cmbx12ëFGNU–ƧHistory“LibraryŽ‘GŸ 0‰±ž¸Ÿ šª’Õ@„ó2Kñ`y ó3 ! cmr10ÝEdition–¦f5.0,“for“ó3ßê“Ýin“an²!y“ leŽ¡‘Gthat–ß?uses“the“History“library's“features.‘›{It“supplies“extern“declarations“for“all“of“the“library'sŽ¡‘Gpublic–¦ffunctions“and“v‘ÿdDariables,“and“declares“all“of“the“public“data“structures.ŽŸff‘GëX2.2‘™History‘f@StorageŽŽŸ33‘!GÝThe–¦fhistory“list“is“an“arraš²!y“of“history“en˜tries.‘ÝÝA“history“en˜try“is“declared“as“follo˜ws:Ž¦‘.ùœÞtypedef–¿ªvoid“*histdata_t;ŽŸff‘.ùœtypedef–¿ªstruct“_hist_entry“{Ž¡‘:xðchar‘¿ª*line;Ž¡‘:xðchar‘¿ª*timestamp;Ž¡‘:xðhistdata_t‘¿ªdata;Ž¡‘.ùœ}‘¿ªHIST_ENTRY;Ž¦‘!GÝThe–¦fhistory“list“itself“migh²!t“therefore“bMÞe“declared“asŽ¦‘.ùœÞHIST_ENTRY‘¿ª**the_history_list;Ž¦‘!GÝThe–¦fstate“of“the“History“library“is“encapsulated“in²!to“a“single“structure:Ž¦‘.ùœÞ/*Ž¡‘4¹F*–¿ªA“structure“used“to“pass“around“the“current“state“of“the“history.Ž¡‘4¹F*/Ž¡‘.ùœtypedef–¿ªstruct“_hist_state“{ŽŽŒ‹;IŸò‘GÝ6’D¦ñGNU–¦fHistory“LibraryŽŽŽ ƒ3* ý ÌÖ‘:xðÞHIST_ENTRY–¿ª**entries;“/*“Pointer“to“the“entries“themselves.“*/Ž¤ 33‘:xðint–¿ªoffset;‘?ûÝwhere“the“history“ev˜en˜t“spšMÞeci cation“b˜egins.‘×Uáqcš²!har‘ Ýis“a“c˜haracterŽ¡‘.ùœthat–:Xis“allo•²!w“ed–:Xto“end“the“ev•²!en“t–:XspMÞeci cation“in“addition“to“the“\normal"“terminatingŽ¡‘.ùœc²!haracters.ŽŽŒ‹ ! m`Ÿò‘GÝ10’?-WGNU–¦fHistory“LibraryŽŽŽ ƒ3* ý ÌÖ’“z[F‘ÿeunction]ŽŽ‘Gèchar–™˜**“çhistory‘÷R‰ˆŠ#ØŽ‘|tokÞenize‘yšâ(Þconst–¦fchar“*stringâ)Ž¤ 33‘.ùœÝReturn–µ‘an“arraš²!y“of“tok˜ens“parsed“out“of“ástringÝ,‘¹\m˜uc˜h“as“the“shell“migh˜t.‘ _The“tok˜ensŽ¡‘.ùœare–«6split“on“the“cš²!haracters“in“the“áhistory‘Ä>‰x³HøŽ–Ñtw˜ord‘Ä>‰x³HøŽ“delimiters‘¸Ýv‘ÿdDariable,‘¬kand–«6shell“quotingŽ¡‘.ùœcon•²!v“en“tions–¦fare“obMÞey²!ed.Ž©á’“z[F‘ÿeunction]ŽŽ‘Gèchar–™˜*“çhistory‘÷R‰ˆŠ#ØŽ–|arg‘÷R‰ˆŠ#ØŽ“extract‘yšâ(Þint–¦ffirst,“int“last,“const“charŽ¡‘DG*stringâ)Ž¡‘.ùœÝExtract–ÙHa“string“segmen²!t“consisting“of“the“á rst›HÝthrough“álast˜Ýargumenš²!ts“presen˜t“inŽ¡‘.ùœástringÝ.‘ÝÝArgumen²!ts–¦fare“split“using“Þhistory_tokenizeÝ.ŽŸÙß‘GëX2.4‘™History‘f@V‘þ¦fariablesŽŽŸ½Œ‘!GÝThis–#section“describšMÞes“the“externally-visible“v‘ÿdDariables“exp˜orted“b²!y“the“ãgnu“ÝHistory“Li-Ž¡‘Gbrary‘ÿe.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çhistory‘÷R‰ˆŠ#ØŽ‘|baseŽ¡‘.ùœÝThe–¦flogical“o set“of“the“ rst“en²!try“in“the“history“list.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çhistory‘÷R‰ˆŠ#ØŽ‘|lengthŽ¡‘.ùœÝThe›¦fn•²!um“bMÞer˜of˜en“tries˜curren“tly˜stored˜in˜the˜history˜list.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çhistory‘÷R‰ˆŠ#ØŽ–|max‘÷R‰ˆŠ#ØŽ“enÞtriesŽ¡‘.ùœÝThe–…Zmaximš²!um“n˜um˜bMÞer“of“history“en˜tries.‘ ! z¸This“m˜ust“bMÞe“c˜hanged“using“Þstifle_Ž¡‘.ùœhistory()Ý.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çhistory‘÷R‰ˆŠ#ØŽ–|write‘÷R‰ˆŠ#ØŽ“timestampsŽ¡‘.ùœÝIf–\ˆnon-zero,›Êtimestamps“are“written“to“the“history“ le,˜so“they“can“bMÞe“preserv²!edŽ¡‘.ùœbMÞet•²!w“een–¦fsessions.‘ÝÝThe“default“v‘ÿdDalue“is“0,“meaning“that“timestamps“are“not“sa•²!v“ed.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèchar‘™˜çhistory‘÷R‰ˆŠ#ØŽ–|expansion‘÷R‰ˆŠ#ØŽ“cÞharŽ¡‘.ùœÝThe–;ycš²!haracter“that“in˜troMÞduces“a“history“ev˜en˜t.›The“default“is“`Þ!Ý'.˜Setting“this“to“0Ž¡‘.ùœinhibits–¦fhistory“expansion.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèchar‘™˜çhistory‘÷R‰ˆŠ#ØŽ–|subst‘÷R‰ˆŠ#ØŽ“cÞharŽ¡‘.ùœÝThe–ä|cš²!haracter“that“in˜v˜ok˜es“w˜ord“substitution“if“found“at“the“start“of“a“line.‘˜ TheŽ¡‘.ùœdefault–¦fis“`Þ^Ý'.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèchar‘™˜çhistory‘÷R‰ˆŠ#ØŽ–|commenšÞt‘÷R‰ˆŠ#ØŽ“c˜harŽ¡‘.ùœÝDuring–‰átokš²!enization,‘¿if“this“c˜haracter“is“seen“as“the“ rst“c˜haracter“of“a“w˜ord,‘¿thenŽ¡‘.ùœit–4and“all“subsequenš²!t“c˜haracters“up“to“a“newline“are“ignored,‘—ysuppressing“historyŽ¡‘.ùœexpansion–¦ffor“the“remainder“of“the“line.‘ÝÝThis“is“disabled“b²!y“default.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèchar–™˜*“çhistory‘÷R‰ˆŠ#ØŽ–|wÞord‘÷R‰ˆŠ#ØŽ“delimitersŽ¡‘.ùœÝThe–M÷cš²!haracters“that“separate“tok˜ens“for“Þhistory_tokenize()Ý.‘ÀcThe“default“v‘ÿdDalue“is“Þ"Ž¡‘.ùœ\t\n()<>;&|"Ý.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèchar–™˜*“çhistory‘÷R‰ˆŠ#ØŽ–|searcšÞh‘÷R‰ˆŠ#ØŽ“delimiter‘÷R‰ˆŠ#ØŽ“c˜harsŽ¡‘.ùœÝThe– îlist“of“additional“cš²!haracters“whic˜h“can“delimit“a“history“searc˜h“string,‘; in“additionŽ¡‘.ùœto–¦fspace,“T‘ÿeAB,“`Þ:Ý'“and“`Þ?Ý'“in“the“case“of“a“substring“searcš²!h.‘ÝÝThe“default“is“empt˜y‘ÿe.ŽŽŒ‹ {—Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“History’лî11ŽŽŽ ƒ3* ý ÌÖ’–3[V‘ÿeariable]ŽŽ‘Gèchar–™˜*“çhistory‘÷R‰ˆŠ#ØŽ–|no‘÷R‰ˆŠ#ØŽ“expand‘÷R‰ˆŠ#ØŽ“cÞharsŽ¤ 33‘.ùœÝThe–”klist“of“cš²!haracters“whic˜h“inhibit“history“expansion“if“found“immediately“follo˜wingŽ¡‘.ùœáhistory‘Ä>‰x³HøŽ–Ñtexpansion‘Ä>‰x³HøŽ“c²!harÝ.‘ÝÝThe–¦fdefault“is“space,“tab,“newline,“carriage“return,“and“`Þ=Ý'.Ž©ÏÏ’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çhistory‘÷R‰ˆŠ#ØŽ–|quotes‘÷R‰ˆŠ#ØŽ“inhibit‘÷R‰ˆŠ#ØŽ“expansionŽ¡‘.ùœÝIf–Wnon-zero,‘ˆÁsingle-quoted“wš²!ords“are“not“scanned“for“the“history“expansion“c˜haracter.Ž¡‘.ùœThe–¦fdefault“v‘ÿdDalue“is“0.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèrl_linebuf_func_t–™˜*“çhistory‘÷R‰ˆŠ#ØŽ–|inhibit‘÷R‰ˆŠ#ØŽ“expansion‘÷R‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝThis–?should“bMÞe“set“to“the“address“of“a“function“that“takš²!es“t˜w˜o“argumen˜ts:‘‘Ža“Þchar‘¦f*Ž¡‘.ùœÝ(ástring‘ðÝ)–0nand“an“Þint“Ýindex“in²!to“that“string“(ái‘”ƒÝ).‘¶‹It“should“return“a“non-zero“v‘ÿdDalue“if“theŽ¡‘.ùœhistory–õexpansion“starting“at“ástring[i]‘àöÝshould“not“bšMÞe“p˜erformed;‘Žzero“if“the“expansionŽ¡‘.ùœshould–ÖObMÞe“done.‘m™It“is“inš²!tended“for“use“b˜y“applications“lik˜e“Bash“that“use“the“historyŽ¡‘.ùœexpansion–¦fc²!haracter“for“additional“purpMÞoses.‘ÝÝBy“default,“this“v‘ÿdDariable“is“set“to“ÞNULLÝ.ŽŸÑGëX2.5‘™History–f@Programming“ExampleŽŽŸ´´‘!GÝThe–¦ffollo²!wing“program“demonstrates“simple“use“of“the“ãgnu“ÝHistory“Library‘ÿe.ŽŸ ÎN‘.ùœóߤN cmtt9É#include‘¹–Ž¤ ! €‘.ùœ#include‘¹–Ž©‘.ùœmain–¹–(argc,“argv)Ž¡‘F™Šint‘¹–argc;Ž¡‘F™Šchar‘¹–**argv;Ž¡‘.ùœ{Ž¡‘8lÈchar–¹–line[1024],“*t;Ž¡‘8lÈint–¹–len,“done“=“0;Ž¦‘8lÈline[0]–¹–=“0;Ž¦‘8lÈusing_history‘¹–();Ž¡‘8lÈwhile‘¹–(!done)Ž¡‘Aßô{Ž¡‘KS printf–¹–("history$“");Ž¡‘KS fflush‘¹–(stdout);Ž¡‘KS t–¹–=“fgets“(line,“sizeof“(line)“-“1,“stdin);Ž¡‘KS if–¹–(t“&&“*t)Ž¡‘TÆL{Ž¡‘^9xlen–¹–=“strlen“(t);Ž¡‘^9xif–¹–(t[len“-“1]“==“'\n')Ž¡‘g¬¤t[len–¹–-“1]“=“'\0';Ž¡‘TÆL}Ž¦‘KS if‘¹–(!t)Ž¡‘TÆLstrcpy–¹–(line,“"quit");Ž¦‘KS if‘¹–(line[0])Ž¡‘TÆL{Ž¡‘^9xchar‘¹–*expansion;Ž¡‘^9xint‘¹–result;Ž¦‘^9xresult–¹–=“history_expand“(line,“&expansion);Ž¡‘^9xif‘¹–(result)Ž¡‘g¬¤fprintf–¹–(stderr,“"%s\n",“expansion);ŽŽŒ‹ ˆOŸò‘GÝ12’?-WGNU–¦fHistory“LibraryŽŽŽ ƒ3* ý«LÖ‘^9xÉif–¹–(result“<“0“||“result“==“2)Ž¤ ! €‘g¬¤{Ž¡‘qÐfree‘¹–(expansion);Ž¡‘qÐcontinue;Ž¡‘g¬¤}Ž©‘^9xadd_history‘¹–(expansion);Ž¡‘^9xstrncpy–¹–(line,“expansion,“sizeof“(line)“-“1);Ž¡‘^9xfree‘¹–(expansion);Ž¡‘TÆL}Ž¦‘KS if–¹–(strcmp“(line,“"quit")“==“0)Ž¡‘TÆLdone–¹–=“1;Ž¡‘KS else–¹–if“(strcmp“(line,“"save")“==“0)Ž¡‘TÆLwrite_history‘¹–("history_file");Ž¡‘KS else–¹–if“(strcmp“(line,“"read")“==“0)Ž¡‘TÆLread_history‘¹–("history_file");Ž¡‘KS else–¹–if“(strcmp“(line,“"list")“==“0)Ž¡‘TÆL{Ž¡‘^9xregister–¹–HIST_ENTRY“**the_list;Ž¡‘^9xregister–¹–int“i;Ž¦‘^9xthe_list–¹–=“history_list“();Ž¡‘^9xif‘¹–(the_list)Ž¡‘g¬¤for–¹–(i“=“0;“the_list[i];“i++)Ž¡‘qÐprintf–¹–("%d:“%s\n",“i“+“history_base,“the_list[i]->line);Ž¡‘TÆL}Ž¡‘KS else–¹–if“(strncmp“(line,“"delete",“6)“==“0)Ž¡‘TÆL{Ž¡‘^9xint‘¹–which;Ž¡‘^9xif–¹–((sscanf“(line“+“6,“"%d",“&which))“==“1)Ž¡‘g¬¤{Ž¡‘qÐHIST_ENTRY–¹–*entry“=“remove_history“(which);Ž¡‘qÐif‘¹–(!entry)Ž¡‘z’üfprintf–¹–(stderr,“"No“such“entry“%d\n",“which);Ž¡‘qÐelseŽ¡‘z’ü{Ž¡’„(free‘¹–(entry->line);Ž¡’„(free‘¹–(entry);Ž¡‘z’ü}Ž¡‘g¬¤}Ž¡‘^9xelseŽ¡‘g¬¤{Ž¡‘qÐfprintf–¹–(stderr,“"non-numeric“arg“given“to“`delete'\n");Ž¡‘g¬¤}Ž¡‘TÆL}Ž¡‘Aßô}Ž¡‘.ùœ}ŽŽŒ‹ ‘šŸò‘GÝAppMÞendix–¦fA:“Copš²!ying“This“Man˜ual’ý~13ŽŽŽ ƒ3* ý ÌÖ‘GëOApp‘Š=endix‘záAŽ‘~ïùCop›ÿuÂying–z³This“Man˜ualŽŽŸ/#בGëXA.1‘™GNU–f@F‘þ¦free“Dos3cumenŒÌtation“LicenseŽŽ¤ff’¨4AÝV‘ÿeersion–¦f1.2,“No•²!v“em“bMÞer‘¦f2002ŽŸ¸‘.ùœCop•²!yrigh“t‘±ž«‚cŽŽŽ‘¦fæ ŽŽŽŽ‘@Ý2000,2001,2002–¦fF›ÿeree“Soft•²!w“are–¦fF˜oundation,“Inc.Ž© 33‘.ùœ59–¦fT‘ÿeemple“Place,“Suite“330,“Boston,“MA‘LÌ02111-1307,“USAŽ¡‘.ùœEv•²!ery“one–¦fis“pMÞermitted“to“copš²!y“and“distribute“v˜erbatim“copiesŽ¦‘.ùœof–¦fthis“license“doMÞcumenš²!t,“but“c˜hanging“it“is“not“allo˜w˜ed.ŽŸ¸‘-0.Ž‘'¿«PREAMBLEŽ¤¨ö‘'¿«The–vQpurpMÞose“of“this“License“is“to“makš²!e“a“man˜ual,›ªLtextb•MÞo“ok,˜or–vQother“functional“andŽ¦‘'¿«useful–žïdoMÞcumenš²!t“áfree‘;öÝin“the“sense“of“freedom:‘Ú!to“assure“ev˜ery˜one“the“e ectiv˜e“freedomŽ¦‘'¿«to–Æ9cop²!y“and“redistribute“it,›Î.with“or“without“moMÞdifying“it,˜either“commercially“or“non-Ž¦‘'¿«commercially–ÿe.‘cÏSecondarily“,‘Hàthis–(aLicense“preservš²!es“for“the“author“and“publisher“a“w˜a˜yŽ¦‘'¿«to–W9get“credit“for“their“w²!ork,‘ƒmwhile“not“bšMÞeing“considered“resp˜onsible“for“mo˜di cationsŽ¦‘'¿«made–¦fb²!y“others.Ž¡‘'¿«This–È/License“is“a“kind“of“\cop•²!yleft",‘ô¡whic“h–È/means“that“deriv‘ÿdDativš²!e“w˜orks“of“the“doMÞcumen˜tŽ¦‘'¿«m•²!ust›õthemselv“es˜bMÞe˜free˜in˜the˜same˜sense.‘ ‰It˜complemen“ts˜the˜GNU‘ÙGeneral˜PublicŽ¦‘'¿«License,–¦fwhicš²!h“is“a“cop˜yleft“license“designed“for“free“soft˜w˜are.Ž¡‘'¿«W‘ÿee›‹#ha•²!v“e˜designed˜this˜License˜in˜order˜to˜use˜it˜for˜man“uals˜for˜free˜soft“w“are,‘—bMÞecauseŽ¦‘'¿«free›?soft•²!w“are˜needs˜free˜doMÞcumen“tation:‘³a˜free˜program˜should˜come˜with˜man“ualsŽ¦‘'¿«proš²!viding–urthe“same“freedoms“that“the“soft˜w˜are“doMÞes.‘ÍŒBut“this“License“is“not“limited“toŽ¦‘'¿«soft•²!w“are›­âman“uals;‘±¡it˜can˜bMÞe˜used˜for˜an“y˜textual˜w“ork,‘¯Âregardless˜of˜sub‘›»ject˜matter˜orŽ¦‘'¿«whether–Ç2it“is“published“as“a“prin²!ted“b•MÞo“ok.‘@AW‘ÿee–Ç2recommend“this“License“principally“forŽ¦‘'¿«w²!orks–¦fwhose“purpMÞose“is“instruction“or“reference.Ž¡‘-1.Ž‘'¿«APPLICABILITY–¦fAND“DEFINITIONSŽ¡‘'¿«This–Ì>License“applies“to“anš²!y“man˜ual“or“other“w˜ork,‘³in“an˜y“medium,‘³that“con˜tains“aŽ¦‘'¿«notice–ýplaced“bš²!y“the“cop˜yrigh˜t“holder“sa˜ying“it“can“bMÞe“distributed“under“the“termsŽ¦‘'¿«of–€†this“License.‘l=Sucš²!h“a“notice“gran˜ts“a“w˜orld-wide,‘·ro˜y˜alt˜y-free“license,‘·unlimited“inŽ¦‘'¿«duration,‘â ! to–o·use“that“wš²!ork“under“the“conditions“stated“herein.‘ ! 9ÏThe“\DoMÞcumen˜t",Ž¦‘'¿«bMÞeloš²!w,‘tkrefers–gìto“an˜y“suc˜h“man˜ual“or“w˜ork.‘É ! An˜y“mem˜bMÞer“of“the“public“is“a“licensee,‘tkandŽ¦‘'¿«is–ÿaddressed“as“\yš²!ou".‘¦@Y‘ÿeou“accept“the“license“if“y˜ou“cop˜y‘ÿe,‘ îmoMÞdify“or“distribute“the“w˜orkŽ¦‘'¿«in–¦fa“w•²!a“y–¦frequiring“pMÞermission“under“cop•²!yrigh“t‘¦fla“w.Ž¡‘'¿«A‘ ¦\MošMÞdi ed– ÀV‘ÿeersion"“of“the“Do˜cumenš²!t“means“an˜y“w˜ork“con˜taining“the“DoMÞcumen˜t“orŽ¦‘'¿«a–‚hpMÞortion“of“it,›¹heither“copied“v²!erbatim,˜or“with“moMÞdi cations“and/or“translated“in²!toŽ¦‘'¿«another‘¦flanguage.Ž¡‘'¿«A‘ž\Secondary–ÀSection"“is“a“named“appšMÞendix“or“a“fron²!t-matter“section“of“the“Do˜cumen²!tŽ¦‘'¿«that–Ž/deals“exclusivš²!ely“with“the“relationship“of“the“publishers“or“authors“of“the“DoMÞcumen˜tŽ¦‘'¿«to–z the“DoMÞcumenš²!t's“o˜v˜erall“sub‘›»ject“(or“to“related“matters)“and“con˜tains“nothing“thatŽ¦‘'¿«could–Ø®fall“directly“within“that“o•²!v“erall›Ø®sub‘›»ject.‘t¶(Th“us,‘%@if˜the˜DoMÞcumen“t˜is˜in˜part˜aŽ¦‘'¿«textb•MÞo“ok–Õ†of“mathematics,‘ÿLa“Secondary“Section“maš²!y“not“explain“an˜y“mathematics.)‘˜=TheŽ¦‘'¿«relationship–GÞcould“bMÞe“a“matter“of“historical“connection“with“the“sub‘›»ject“or“with“relatedŽŽŒ‹–ÑŸò‘GÝ14’?-WGNU–¦fHistory“LibraryŽŽŽ ƒ3* ý ÌÖ‘'¿«matters,›jor–B÷of“legal,˜commercial,˜philosophical,˜ethical“or“pšMÞolitical“p˜osition“regardingŽ¤ 33‘'¿«them.Ž©ø¯‘'¿«The›r\In•²!v‘ÿdDarian“t˜Sections"˜are˜certain˜Secondary˜Sections˜whose˜titles˜are˜designated,‘0ÖasŽ¡‘'¿«bšMÞeing–2Dthose“of“In•²!v‘ÿdDarian“t–2DSections,‘I~in“the“notice“that“sa²!ys“that“the“Do˜cumen²!t“is“releasedŽ¡‘'¿«under–S5this“License.‘Â"If“a“section“došMÞes“not“ t“the“ab˜o•²!v“e–S5de nition“of“Secondary“then“it“isŽ¡‘'¿«not›Óallo•²!w“ed˜to˜bMÞe˜designated˜as˜In“v‘ÿdDarian“t.‘eSThe˜DoMÞcumen“t˜ma“y˜con“tain˜zero˜In“v‘ÿdDarian“tŽ¡‘'¿«Sections.‘¢ÄIf–õthe“DošMÞcumen²!t“do˜es“not“idenš²!tify“an˜y“In˜v‘ÿdDarian˜t“Sections“then“there“are“none.Ž¦‘'¿«The›f­\Co•²!v“er˜T–ÿeexts"˜are˜certain˜short˜passages˜of˜text˜that˜are˜listed,‘–¾as˜F“ron•²!t-Co“v“erŽ¡‘'¿«T›ÿeexts–-or“Bac•²!k-Co“v“er–-T˜exts,‘"8in“the“notice“that“saš²!ys“that“the“DoMÞcumen˜t“is“released“underŽ¡‘'¿«this›’License.‘¯AA‘nF‘ÿeron•²!t-Co“v“er˜T‘ÿeext˜ma“y˜bMÞe˜at˜most˜5˜w“ords,‘6‰and˜a˜Bac“k-Co“v“er˜T‘ÿeext˜ma“yŽ¡‘'¿«bMÞe–¦fat“most“25“w²!ords.Ž¦‘'¿«A‘C¦\T‘ÿeransparen•²!t"›CÎcop“y˜of˜the˜DoMÞcumen“t˜means˜a˜mac“hine-readable˜cop“y‘ÿe,‘k(represen“tedŽ¡‘'¿«in–Jma“format“whose“spMÞeci cation“is“a²!v‘ÿdDailable“to“the“general“public,‘sothat“is“suitable“forŽ¡‘'¿«revising–Îàthe“doMÞcumenš²!t“straigh˜tforw˜ardly“with“generic“text“editors“or“(for“images“com-Ž¡‘'¿«pMÞosed–ÚÃof“pixels)“generic“painš²!t“programs“or“(for“dra˜wings)“some“widely“a˜v‘ÿdDailable“dra˜wingŽ¡‘'¿«editor,‘…úand–}ßthat“is“suitable“for“input“to“text“formatters“or“for“automatic“translation“toŽ¡‘'¿«a–9Ov‘ÿdDarietš²!y“of“formats“suitable“for“input“to“text“formatters.‘¹€A‘93cop˜y“made“in“an“otherwiseŽ¡‘'¿«T‘ÿeransparen²!t–„æ le“format“whose“markup,›¼…or“absence“of“markup,˜has“bMÞeen“arranged“toŽ¡‘'¿«th•²!w“art–0ûor“discourage“subsequenš²!t“moMÞdi cation“b˜y“readers“is“not“T‘ÿeransparen˜t.‘¶ºAn“imageŽ¡‘'¿«format– Éis“not“T‘ÿeransparenš²!t“if“used“for“an˜y“substan˜tial“amoun˜t“of“text.‘MA‘ ©cop˜y“that“isŽ¡‘'¿«not–¦f\T‘ÿeransparen²!t"“is“called“\Opaque".Ž¦‘'¿«Examples–cXof“suitable“formats“for“T‘ÿeransparen²!t“copies“include“plain“ãasci>Ki“ÝwithoutŽ¡‘'¿«markup,› 'T‘ÿeexinfo–Ä›input“format,˜LaT‘þ,³Ÿ[wEŽ‘B X‘ÄQinput“format,˜ãsgml“Ýor“ãxml“Ýusing“a“publiclyŽ¡‘'¿«a²!v‘ÿdDailable–ÉeãdtdÝ,›Ò%and“standard-conforming“simple“ãhtmlÝ,˜P²!ostScript“or“ãpdf“Ýdesigned“forŽ¡‘'¿«hš²!uman––ëmoMÞdi cation.‘¯mExamples“of“transparen˜t“image“formats“include“ãpngÝ,‘Ó ãxÁ´cf“ÝandŽ¡‘'¿«ãjpgÝ.‘©QOpaque–”âformats“include“proprietary“formats“that“can“bMÞe“read“and“edited“onlyŽ¡‘'¿«bš²!y–¼Mproprietary“w˜ord“proMÞcessors,‘Æãsgml“Ýor“ãxml“Ýfor“whic˜h“the“ãdtd“Ýand/or“proMÞcessingŽ¡‘'¿«toMÞols–¶_are“not“generally“aš²!v‘ÿdDailable,‘º]and“the“mac˜hine-generated“ãhtmlÝ,‘º]P˜ostScript“or“ãpdfŽ¡‘'¿«ÝproMÞduced–¦fbš²!y“some“w˜ord“prošMÞcessors“for“output“purp˜oses“only‘ÿe.Ž¦‘'¿«The–Ü\Title“Pš²!age"“means,‘<ùfor“a“prin˜ted“b•MÞo“ok,›<ùthe–Ütitle“page“itself,˜plus“sucš²!h“follo˜wingŽ¡‘'¿«pages–RÃas“are“needed“to“hold,–c}legibly‘ÿe,“the–RÃmaterial“this“License“requires“to“appMÞear“in“theŽ¡‘'¿«title–1.page.‘¶ÊF‘ÿeor“wš²!orks“in“formats“whic˜h“do“not“ha˜v˜e“an˜y“title“page“as“suc˜h,‘HŸ\Title“P˜age"Ž¡‘'¿«means–­Žthe“text“near“the“most“prominenš²!t“appMÞearance“of“the“w˜ork's“title,‘¯Xpreceding“theŽ¡‘'¿«bšMÞeginning–¦fof“the“b˜o˜dy“of“the“text.Ž¦‘'¿«A›ísection–ò\En²!titled“XYZ"˜means“a“named“subunit“of“the“DoMÞcumen²!t“whose“title“eitherŽ¡‘'¿«is–Uªprecisely“XYZ›U•or“con²!tains“XYZ˜in“parenš²!theses“follo˜wing“text“that“translates“XYZ‘U•inŽ¡‘'¿«another–þ¯language.‘¥ö(Here“XYZ‘þ„stands“for“a“spšMÞeci c“section“name“men²!tioned“b˜elo•²!w,‘ :suc“hŽ¡‘'¿«as›aa\Ac•²!kno“wledgemen“ts",–o/\Dedications",“\Endorsemen²!ts",“or˜\History".)‘ÆÛT‘ÿeo˜\Preserv²!eŽ¡‘'¿«the–›Title"“of“sucš²!h“a“section“when“y˜ou“mošMÞdify“the“Do˜cumen²!t“means“that“it“remains“aŽ¡‘'¿«section–¦f\En²!titled“XYZ"“according“to“this“de nition.Ž¦‘'¿«The–SuDoMÞcumenš²!t“ma˜y“include“W‘ÿearran˜t˜y“Disclaimers“next“to“the“notice“whic˜h“states“thatŽ¡‘'¿«this–¹License“applies“to“the“DoMÞcumenš²!t.‘×These“W‘ÿearran˜t˜y“Disclaimers“are“considered“toŽ¡‘'¿«bMÞe–„ýincluded“bš²!y“reference“in“this“License,‘¼£but“only“as“regards“disclaiming“w˜arran˜ties:Ž¡‘'¿«anš²!y–nother“implication“that“these“W‘ÿearran˜t˜y“Disclaimers“ma˜y“ha˜v˜e“is“v˜oid“and“has“noŽ¡‘'¿«e ect–¦fon“the“meaning“of“this“License.ŽŽŒ‹¥ÌŸò‘GÝAppMÞendix–¦fA:“Copš²!ying“This“Man˜ual’ý~15ŽŽŽ ƒ3* ý ÌÖ‘-2.Ž‘'¿«VERBA‘ÿeTIM‘¦fCOPYINGŽ©™™‘'¿«Y‘ÿeou–’ùmaš²!y“cop˜y“and“distribute“the“DoMÞcumen˜t“in“an˜y“medium,‘Îeither“commercially“orŽ¤ 33‘'¿«noncommercially‘ÿe,›zªpro²!vided–that“this“License,˜the“cop•²!yrigh“t–notices,˜and“the“licenseŽ¡‘'¿«notice–Ksaš²!ying“this“License“applies“to“the“DoMÞcumen˜t“are“reproMÞduced“in“all“copies,‘t7andŽ¡‘'¿«that–1'yš²!ou“add“no“other“conditions“whatsoMÞev˜er“to“those“of“this“License.‘¶ÈY‘ÿeou“ma˜y“not“useŽ¡‘'¿«tecš²!hnical–ò“measures“to“obstruct“or“con˜trol“the“reading“or“further“cop˜ying“of“the“copiesŽ¡‘'¿«y•²!ou›òÇmak“e˜or˜distribute.‘¡þHo“w“ev“er,‘´y“ou˜ma“y˜accept˜compMÞensation˜in˜exc“hange˜for˜copies.Ž¡‘'¿«If–Þyš²!ou“distribute“a“large“enough“n˜um˜bMÞer“of“copies“y˜ou“m˜ust“also“follo˜w“the“conditionsŽ¡‘'¿«in–¦fsection“3.Ž¦‘'¿«Y‘ÿeou–}ìmaš²!y“also“lend“copies,‘¹7under“the“same“conditions“stated“abMÞo˜v˜e,‘¹7and“y˜ou“ma˜y“publiclyŽ¡‘'¿«displa²!y‘¦fcopies.Ž¦‘-3.Ž‘'¿«COPYING–¦fIN“QUANTITYŽ¦‘'¿«If–Ãyš²!ou“publish“prin˜ted“copies“(or“copies“in“media“that“commonly“ha˜v˜e“prin˜ted“co˜v˜ers)“ofŽ¡‘'¿«the‘Ñ.DošMÞcumen•²!t,‘Ûàn“um“b˜ering–Ñ.more“than“100,‘Ûàand“the“Do˜cumen²!t's“license“notice“requiresŽ¡‘'¿«Co•²!v“er›ÜT‘ÿeexts,‘<ùy“ou˜m“ust˜enclose˜the˜copies˜in˜co“v“ers˜that˜carry–ÿe,‘<ùclearly˜and˜legibly“,‘<ùallŽ¡‘'¿«these›´@Co•²!v“er˜T–ÿeexts:‘ù‘F“ron•²!t-Co“v“er˜T‘ÿeexts˜on˜the˜fron“t˜co“v“er,‘÷¶and˜Bac“k-Co“v“er˜T‘ÿeexts˜onŽ¡‘'¿«the–öbacš²!k“co˜v˜er.‘Ñ Both“co˜v˜ers“m˜ust“also“clearly“and“legibly“iden˜tify“y˜ou“as“the“publisherŽ¡‘'¿«of–,these“copies.‘H.The“fronš²!t“co˜v˜er“m˜ust“presen˜t“the“full“title“with“all“w˜ords“of“the“titleŽ¡‘'¿«equally–³xprominenš²!t“and“visible.‘Y‘ÿeou“ma˜y“add“other“material“on“the“co˜v˜ers“in“addition.Ž¡‘'¿«Copš²!ying–Y4with“c˜hanges“limited“to“the“co˜v˜ers,‘…ças“long“as“they“preserv˜e“the“title“of“theŽ¡‘'¿«DošMÞcumen²!t–uand“satisfy“these“conditions,‘¨Åcan“b˜e“treated“as“vš²!erbatim“cop˜ying“in“otherŽ¡‘'¿«respMÞects.Ž¦‘'¿«If–î|the“required“texts“for“either“co•²!v“er–î|are“toMÞo“vš²!oluminous“to“ t“legibly‘ÿe,‘‚y˜ou“should“putŽ¡‘'¿«the–ò rst“ones“listed“(as“manš²!y“as“ t“reasonably)“on“the“actual“co˜v˜er,‘ùand“con˜tin˜ue“theŽ¡‘'¿«rest–¦fonš²!to“adjacen˜t“pages.Ž¦‘'¿«If–?|yš²!ou“publish“or“distribute“Opaque“copies“of“the“DoMÞcumen˜t“n˜um˜bMÞering“more“than“100,Ž¡‘'¿«y•²!ou›\3m“ust˜either˜include˜a˜mac“hine-readable˜T‘ÿeransparen“t˜cop“y˜along˜with˜eac“h˜OpaqueŽ¡‘'¿«copš²!y‘ÿe,‘[>or–7state“in“or“with“eac˜h“Opaque“cop˜y“a“computer-net˜w˜ork“loMÞcation“from“whic˜hŽ¡‘'¿«the–éSgeneral“net•²!w“ork-using–éSpublic“has“access“to“doš²!wnload“using“public-standard“net˜w˜orkŽ¡‘'¿«protoMÞcols–¬=a“complete“T‘ÿeransparenš²!t“cop˜y“of“the“DoMÞcumen˜t,‘í³free“of“added“material.‘ïcIfŽ¡‘'¿«yš²!ou–ªuse“the“latter“option,‘êùy˜ou“m˜ust“tak˜e“reasonably“pruden˜t“steps,‘êùwhen“y˜ou“bMÞeginŽ¡‘'¿«distribution–—lof“Opaque“copies“in“quan•²!tit“y›ÿe,‘Ó®to–—lensure“that“this“T˜ransparenš²!t“cop˜y“willŽ¡‘'¿«remain– Cthš²!us“accessible“at“the“stated“loMÞcation“un˜til“at“least“one“y˜ear“after“the“last“timeŽ¡‘'¿«yš²!ou–k‘distribute“an“Opaque“cop˜y“(directly“or“through“y˜our“agen˜ts“or“retailers)“of“thatŽ¡‘'¿«edition–¦fto“the“public.Ž¦‘'¿«It–&Nis“requested,›FHbut“not“required,˜that“yš²!ou“con˜tact“the“authors“of“the“DoMÞcumen˜t“w˜ellŽ¡‘'¿«bMÞefore–oÅredistributing“anš²!y“large“n˜um˜bMÞer“of“copies,‘z²to“giv˜e“them“a“c˜hance“to“pro˜vide“y˜ouŽ¡‘'¿«with–¦fan“upšMÞdated“v²!ersion“of“the“Do˜cumen²!t.Ž¦‘-4.Ž‘'¿«MODIFICA‘ÿeTIONSŽ¦‘'¿«Y‘ÿeou–*maš²!y“cop˜y“and“distribute“a“MošMÞdi ed“V‘ÿeersion“of“the“Do˜cumen²!t“under“the“conditionsŽ¡‘'¿«of–…šsections“2“and“3“abšMÞo•²!v“e,‘¿]pro“vided–…šthat“y²!ou“release“the“Mo˜di ed“V‘ÿeersion“under“preciselyŽ¡‘'¿«this–{ÞLicense,‘„`with“the“MošMÞdi ed“V‘ÿeersion“ lling“the“role“of“the“Do˜cumen•²!t,‘„`th“us‘{ÞlicensingŽ¡‘'¿«distribution–¸and“mošMÞdi cation“of“the“Mo˜di ed“V‘ÿeersion“to“who˜ev²!er“p˜ossesses“a“cop²!y“ofŽ¡‘'¿«it.‘ÝÝIn–¦faddition,“yš²!ou“m˜ust“do“these“things“in“the“MoMÞdi ed“V‘ÿeersion:ŽŽŒ‹·èŸò‘GÝ16’?-WGNU–¦fHistory“LibraryŽŽŽ ƒ3* ý ÌÖ‘*òÄA.Ž‘=nUse–ípin“the“Title“Pš²!age“(and“on“the“co˜v˜ers,‘ÿ2if“an˜y)“a“title“distinct“from“that“of“theŽ¤ 33‘=nDoMÞcumenš²!t,‘+and–ˆfrom“those“of“previous“v˜ersions“(whic˜h“should,‘+if“there“w˜ere“an˜y‘ÿe,Ž¡‘=nbšMÞe–Âølisted“in“the“History“section“of“the“Do˜cumenš²!t).‘3“Y‘ÿeou“ma˜y“use“the“same“title“asŽ¡‘=na–¦fprevious“vš²!ersion“if“the“original“publisher“of“that“v˜ersion“giv˜es“pMÞermission.Ž©¬Í‘+gB.Ž‘=nList–ª\on“the“Title“P²!age,›«Yas“authors,˜one“or“more“pšMÞersons“or“en²!tities“resp˜onsible“forŽ¡‘=nauthorship–"of“the“mošMÞdi cations“in“the“Mo˜di ed“V‘ÿeersion,‘<|together“with“at“least“ v²!eŽ¡‘=nof–߸the“principal“authors“of“the“DoMÞcumenš²!t“(all“of“its“principal“authors,‘tif“it“has“few˜erŽ¡‘=nthan–¦f vš²!e),“unless“they“release“y˜ou“from“this“requiremen˜t.Ž¦‘+@¢C.Ž‘=nState–±Óon“the“Title“page“the“name“of“the“publisher“of“the“MoMÞdi ed“V‘ÿeersion,‘´®as“theŽ¡‘=npublisher.Ž¦‘*ËÕD.Ž‘=nPreservš²!e–¦fall“the“cop˜yrigh˜t“notices“of“the“DoMÞcumen˜t.Ž¦‘+µoE.Ž‘=nAdd–Äean“appropriate“cop•²!yrigh“t–Äenotice“for“yš²!our“moMÞdi cations“adjacen˜t“to“the“otherŽ¡‘=ncop•²!yrigh“t‘¦fnotices.Ž¦‘,LF.Ž‘=nInclude,›hSimmediately–XÎafter“the“cop•²!yrigh“t–XÎnotices,˜a“license“notice“giving“the“publicŽ¡‘=npšMÞermission–ïËto“use“the“Mo˜di ed“V‘ÿeersion“under“the“terms“of“this“License,‘Pin“the“formŽ¡‘=nshoš²!wn–¦fin“the“Addendum“bMÞelo˜w.Ž¦‘*‘nG.Ž‘=nPreservš²!e–¼min“that“license“notice“the“full“lists“of“In˜v‘ÿdDarian˜t“Sections“and“required“Co˜v˜erŽ¡‘=nT‘ÿeexts–¦fgivš²!en“in“the“DoMÞcumen˜t's“license“notice.Ž¦‘*òÄH.Ž‘=nInclude–¦fan“unaltered“cop²!y“of“this“License.Ž¦‘/4çI.Ž‘=nPreservš²!e–Ú†the“section“En˜titled“\History",‘çŽPreserv˜e“its“Title,‘çŽand“add“to“it“an“itemŽ¡‘=nstating–_ at“least“the“title,–mQy²!ear,“new›_ authors,“and˜publisher˜of˜the˜MoMÞdi ed˜V‘ÿeersionŽ¡‘=nas–ÄXgivš²!en“on“the“Title“P˜age.‘7²If“there“is“no“section“En˜titled“\History"“in“the“DoMÞcu-Ž¡‘=nmen²!t,›O#create–-done“stating“the“title,˜y²!ear,˜authors,˜and“publisher“of“the“DoMÞcumen²!tŽ¡‘=nas–Wgivš²!en“on“its“Title“P˜age,‘ƒGthen“add“an“item“describing“the“MoMÞdi ed“V‘ÿeersion“asŽ¡‘=nstated–¦fin“the“previous“sen²!tence.Ž¦‘-ˆ¢J.Ž‘=nPreservš²!e–æthe“net˜w˜ork“loMÞcation,‘õúif“an˜y‘ÿe,‘õúgiv˜en“in“the“DoMÞcumen˜t“for“public“access“toŽ¡‘=na–½…T‘ÿeransparenš²!t“cop˜y“of“the“DoMÞcumen˜t,‘ÃMand“lik˜ewise“the“net˜w˜ork“loMÞcations“giv˜en“inŽ¡‘=nthe–Í„DoMÞcumenš²!t“for“previous“v˜ersions“it“w˜as“based“on.‘S6These“ma˜y“bMÞe“placed“in“theŽ¡‘=n\History"–8section.‘¦ÎY‘ÿeou“maš²!y“omit“a“net˜w˜ork“loMÞcation“for“a“w˜ork“that“w˜as“publishedŽ¡‘=nat–Kleast“four“y²!ears“bšMÞefore“the“Do˜cumen²!t“itself,‘t?or“if“the“original“publisher“of“theŽ¡‘=nvš²!ersion–¦fit“refers“to“giv˜es“pMÞermission.Ž¦‘*¤åK.Ž‘=nF‘ÿeor–Ùranš²!y“section“En˜titled“\Ac˜kno˜wledgemen˜ts"“or“\Dedications",‘pPreserv˜e“the“TitleŽ¡‘=nof–/Rthe“section,‘G#and“preservš²!e“in“the“section“all“the“substance“and“tone“of“eac˜h“of“theŽ¡‘=ncon•²!tributor›¦fac“kno“wledgemen“ts˜and/or˜dedications˜giv“en˜therein.Ž¦‘,Q*L.Ž‘=nPreservš²!e–?Ôall“the“In˜v‘ÿdDarian˜t“Sections“of“the“DoMÞcumen˜t,‘f/unaltered“in“their“text“andŽ¡‘=nin–PÜtheir“titles.‘Ý@Section“n•²!um“bMÞers–PÜor“the“equiv‘ÿdDalen²!t“are“not“considered“part“of“theŽ¡‘=nsection‘¦ftitles.Ž¦‘)M.Ž‘=nDelete–°5anš²!y“section“En˜titled“\Endorsemen˜ts".‘ûJSuc˜h“a“section“ma˜y“not“bMÞe“includedŽ¡‘=nin–¦fthe“MoMÞdi ed“V‘ÿeersion.Ž¦‘*òÄN.Ž‘=nDo–g!not“retitle“anš²!y“existing“section“to“bMÞe“En˜titled“\Endorsemen˜ts"“or“to“con ict“inŽ¡‘=ntitle–¦fwith“anš²!y“In˜v‘ÿdDarian˜t“Section.Ž¦‘*¤åO.Ž‘=nPreserv•²!e›¦fan“y˜W‘ÿearran“t“y˜Disclaimers.ŽŸ&g‘'¿«If–Øthe“MošMÞdi ed“V‘ÿeersion“includes“new“fron²!t-matter“sections“or“app˜endices“that“qualifyŽ¡‘'¿«as–XSecondary“Sections“and“conš²!tain“no“material“copied“from“the“DoMÞcumen˜t,‘gµy˜ou“ma˜y“atŽŽŒ‹ȉŸò‘GÝAppMÞendix–¦fA:“Copš²!ying“This“Man˜ual’ý~17ŽŽŽ ƒ3* ý ÌÖ‘'¿«yš²!our–ãkoption“designate“some“or“all“of“these“sections“as“in˜v‘ÿdDarian˜t.‘”íT‘ÿeo“do“this,‘ò­add“theirŽ¤ 33‘'¿«titles–@«to“the“list“of“In•²!v‘ÿdDarian“t–@«Sections“in“the“MoMÞdi ed“V‘ÿeersion's“license“notice.‘¬¬TheseŽ¡‘'¿«titles–¦fmš²!ust“bMÞe“distinct“from“an˜y“other“section“titles.Ž©× ! ‘'¿«Y‘ÿeou–pmaš²!y“add“a“section“En˜titled“\Endorsemen˜ts",‘s²pro˜vided“it“con˜tains“nothing“butŽ¡‘'¿«endorsemenš²!ts–‘of“y˜our“MoMÞdi ed“V‘ÿeersion“b˜y“v‘ÿdDarious“parties|for“example,‘•Ystatemen˜ts“ofŽ¡‘'¿«pšMÞeer–D review“or“that“the“text“has“b˜een“appro•²!v“ed›D b“y˜an˜organization˜as˜the˜authoritativ“eŽ¡‘'¿«de nition–¦fof“a“standard.Ž¦‘'¿«Y‘ÿeou–f,maš²!y“add“a“passage“of“up“to“ v˜e“w˜ords“as“a“F‘ÿeron˜t-Co˜v˜er“T‘ÿeext,‘sand“a“passage“of“upŽ¡‘'¿«to–@25“wš²!ords“as“a“Bac˜k-Co˜v˜er“T‘ÿeext,‘Tìto“the“end“of“the“list“of“Co˜v˜er“T‘ÿeexts“in“the“MoMÞdi edŽ¡‘'¿«V›ÿeersion.‘Õ+Only–N+one“passage“of“F˜ron•²!t-Co“v“er–N+T˜ext“and“one“of“Bac•²!k-Co“v“er–N+T˜ext“ma²!y“bMÞeŽ¡‘'¿«added–NÁbš²!y“(or“through“arrangemen˜ts“made“b˜y)“an˜y“one“en˜tit˜y‘ÿe.‘À¦If“the“DoMÞcumen˜t“alreadyŽ¡‘'¿«includes–Éa“co•²!v“er–Étext“for“the“same“co•²!v“er,‘/!previously–Éadded“bš²!y“y˜ou“or“b˜y“arrangemen˜tŽ¡‘'¿«made–:Çbš²!y“the“same“en˜tit˜y“y˜ou“are“acting“on“bMÞehalf“of,‘_ßy˜ou“ma˜y“not“add“another;‘„÷butŽ¡‘'¿«y•²!ou›)ma“y˜replace˜the˜old˜one,‘2on˜explicit˜pMÞermission˜from˜the˜previous˜publisher˜thatŽ¡‘'¿«added–¦fthe“old“one.Ž¦‘'¿«The–^author(s)“and“publisher(s)“of“the“DoMÞcumenš²!t“do“not“b˜y“this“License“giv˜e“pMÞermissionŽ¡‘'¿«to–¤juse“their“names“for“publicitš²!y“for“or“to“assert“or“imply“endorsemen˜t“of“an˜y“MoMÞdi edŽ¡‘'¿«V‘ÿeersion.Ž¦‘-5.Ž‘'¿«COMBINING‘¦fDOCUMENTSŽ¦‘'¿«Y‘ÿeou–¦Çmaš²!y“com˜bine“the“DoMÞcumen˜t“with“other“doMÞcumen˜ts“released“under“this“License,Ž¡‘'¿«under–—sthe“terms“de ned“in“section“4“abšMÞo•²!v“e–—sfor“mo˜di ed“v•²!ersions,‘Ó¶pro“vided–—sthat“y²!ouŽ¡‘'¿«include– in“the“comš²!bination“all“of“the“In˜v‘ÿdDarian˜t“Sections“of“all“of“the“original“doMÞcumen˜ts,Ž¡‘'¿«unmoMÞdi ed,‘L3and–5¦list“them“all“as“In•²!v‘ÿdDarian“t–5¦Sections“of“yš²!our“com˜bined“w˜ork“in“its“licenseŽ¡‘'¿«notice,–¦fand“that“yš²!ou“preserv˜e“all“their“W‘ÿearran˜t˜y“Disclaimers.Ž¦‘'¿«The–¢@comš²!bined“w˜ork“need“only“con˜tain“one“cop˜y“of“this“License,‘£and“m˜ultiple“iden˜ticalŽ¡‘'¿«In•²!v‘ÿdDarian“t–æÝSections“maš²!y“bMÞe“replaced“with“a“single“cop˜y‘ÿe.‘ŸBIf“there“are“m˜ultiple“In˜v‘ÿdDarian˜tŽ¡‘'¿«Sections–6Çwith“the“same“name“but“di erenš²!t“con˜ten˜ts,‘Mmak˜e“the“title“of“eac˜h“suc˜h“sectionŽ¡‘'¿«unique–bbš²!y“adding“at“the“end“of“it,‘1!in“paren˜theses,‘1!the“name“of“the“original“author“orŽ¡‘'¿«publisher–of“that“section“if“knoš²!wn,‘!­or“else“a“unique“n˜um˜bMÞer.‘¦Mak˜e“the“same“adjustmen˜tŽ¡‘'¿«to–î‡the“section“titles“in“the“list“of“In•²!v‘ÿdDarian“t–î‡Sections“in“the“license“notice“of“the“com²!binedŽ¡‘'¿«w²!ork.Ž¦‘'¿«In–ö"the“com•²!bination,‘Jy“ou›ö"m“ust˜com“bine˜an“y˜sections˜En“titled˜\History"˜in˜the˜v‘ÿdDari-Ž¡‘'¿«ous–ÜÛoriginal“doMÞcumenš²!ts,‘êxforming“one“section“En˜titled“\History";‘ølik˜ewise“com˜bine“an˜yŽ¡‘'¿«sections–ÑEnš²!titled“\Ac˜kno˜wledgemen˜ts",‘Û¿and“an˜y“sections“En˜titled“\Dedications".‘]çY‘ÿeouŽ¡‘'¿«mš²!ust–¦fdelete“all“sections“En˜titled“\Endorsemen˜ts."Ž¦‘-6.Ž‘'¿«COLLECTIONS–¦fOF“DOCUMENTSŽ¦‘'¿«Y‘ÿeou–Ò¤maš²!y“mak˜e“a“collection“consisting“of“the“DoMÞcumen˜t“and“other“doMÞcumen˜ts“releasedŽ¡‘'¿«under–this“License,‘sÚand“replace“the“individual“copies“of“this“License“in“the“v‘ÿdDariousŽ¡‘'¿«doMÞcumenš²!ts–Dwith“a“single“cop˜y“that“is“included“in“the“collection,‘yºpro˜vided“that“y˜ouŽ¡‘'¿«folloš²!w–t”the“rules“of“this“License“for“v˜erbatim“cop˜ying“of“eac˜h“of“the“doMÞcumen˜ts“in“allŽ¡‘'¿«other‘¦frespMÞects.Ž¦‘'¿«Y‘ÿeou–Æ=maš²!y“extract“a“single“doMÞcumen˜t“from“suc˜h“a“collection,‘Î3and“distribute“it“individu-Ž¡‘'¿«ally–4under“this“License,‘Wmproš²!vided“y˜ou“insert“a“cop˜y“of“this“License“in˜to“the“extractedŽ¡‘'¿«doMÞcumen•²!t,‘ùøand›éAfollo“w˜this˜License˜in˜all˜other˜respMÞects˜regarding˜v“erbatim˜cop“ying˜ofŽ¡‘'¿«that‘¦fdoMÞcumen²!t.ŽŽŒ‹Ø|Ÿò‘GÝ18’?-WGNU–¦fHistory“LibraryŽŽŽ ƒ3* ý ÌÖ‘-7.Ž‘'¿«Aš²!GGREGA‘ÿeTION–¦fWITH“INDEPENDENT“W˜ORKSŽ©™™‘'¿«A‘]Æcompilation–]Øof“the“DoMÞcumenš²!t“or“its“deriv‘ÿdDativ˜es“with“other“separate“and“indepMÞenden˜tŽ¤ 33‘'¿«doMÞcumenš²!ts–ÿhor“w˜orks,‘©in“or“on“a“v˜olume“of“a“storage“or“distribution“medium,‘©is“calledŽ¡‘'¿«an– \aggregate"“if“the“cop•²!yrigh“t– resulting“from“the“compilation“is“not“used“to“limit“theŽ¡‘'¿«legal–1 righš²!ts“of“the“compilation's“users“bMÞey˜ond“what“the“individual“w˜orks“pMÞermit.‘¶¾WhenŽ¡‘'¿«the–QÝDošMÞcumen²!t“is“included“an“aggregate,‘bÅthis“License“do˜es“not“apply“to“the“other“w²!orksŽ¡‘'¿«in–¦fthe“aggregate“whicš²!h“are“not“themselv˜es“deriv‘ÿdDativ˜e“w˜orks“of“the“DoMÞcumen˜t.Ž¦‘'¿«If–»Vthe“Co•²!v“er–»VT‘ÿeext“requiremenš²!t“of“section“3“is“applicable“to“these“copies“of“the“DoMÞcumen˜t,Ž¡‘'¿«then–°Dif“the“DoMÞcumenš²!t“is“less“than“one“half“of“the“en˜tire“aggregate,‘á~the“DoMÞcumen˜t's“Co˜v˜erŽ¡‘'¿«T‘ÿeexts–0maš²!y“bMÞe“placed“on“co˜v˜ers“that“brac˜k˜et“the“DoMÞcumen˜t“within“the“aggregate,‘G°or“theŽ¡‘'¿«electronic–5qequiv‘ÿdDalenš²!t“of“co˜v˜ers“if“the“DoMÞcumen˜t“is“in“electronic“form.‘ŠýOtherwise“theyŽ¡‘'¿«mš²!ust–¦fappMÞear“on“prin˜ted“co˜v˜ers“that“brac˜k˜et“the“whole“aggregate.Ž¦‘-8.Ž‘'¿«TRANSLA‘ÿeTIONŽ¦‘'¿«T‘ÿeranslation–̯is“considered“a“kind“of“moMÞdi cation,‘Aso“yš²!ou“ma˜y“distribute“translationsŽ¡‘'¿«of–Tþthe“DoMÞcumenš²!t“under“the“terms“of“section“4.‘ é¤Replacing“In˜v‘ÿdDarian˜t“Sections“withŽ¡‘'¿«translations–v²requires“spšMÞecial“p˜ermission“from“their“cop•²!yrigh“t–v²holders,‘êÅbut“yš²!ou“ma˜yŽ¡‘'¿«include–ðktranslations“of“some“or“all“In•²!v‘ÿdDarian“t–ðkSections“in“addition“to“the“original“v²!ersionsŽ¡‘'¿«of–Æthese“In•²!v‘ÿdDarian“t–ÆSections.‘=Y‘ÿeou“ma²!y“include“a“translation“of“this“License,‘Î ! and“all“theŽ¡‘'¿«license–òúnotices“in“the“DoMÞcumenš²!t,‘Fand“an˜y“W‘ÿearran˜t˜y“Disclaimers,‘Fpro˜vided“that“y˜ouŽ¡‘'¿«also–Ïinclude“the“original“English“vš²!ersion“of“this“License“and“the“original“v˜ersions“ofŽ¡‘'¿«those–notices“and“disclaimers.‘5äIn“case“of“a“disagreemenš²!t“bMÞet˜w˜een“the“translation“andŽ¡‘'¿«the–:•original“vš²!ersion“of“this“License“or“a“notice“or“disclaimer,‘_ the“original“v˜ersion“willŽ¡‘'¿«prev‘ÿdDail.Ž¦‘'¿«If–pèa“section“in“the“DoMÞcumenš²!t“is“En˜titled“\Ac˜kno˜wledgemen˜ts",–{›\Dedications",“or‘pè\His-Ž¡‘'¿«tory",‘A¿the–(•requiremenš²!t“(section“4)“to“Preserv˜e“its“Title“(section“1)“will“t˜ypically“requireŽ¡‘'¿«c²!hanging–¦fthe“actual“title.Ž¦‘-9.Ž‘'¿«TERMINA‘ÿeTIONŽ¦‘'¿«Y‘ÿeou–”maš²!y“not“cop˜y–ÿe,›—¾moMÞdify“,˜sublicense,˜or–”distribute“the“DoMÞcumen²!t“except“as“expresslyŽ¡‘'¿«proš²!vided–=for“under“this“License.‘ýbAn˜y“other“attempt“to“cop˜y–ÿe,›^2moMÞdify“,˜sublicense‘=orŽ¡‘'¿«distribute–f?the“DoMÞcumenš²!t“is“v˜oid,‘–5and“will“automatically“terminate“y˜our“righ˜ts“underŽ¡‘'¿«this›V8License.‘Ã#Ho•²!w“ev“er,‘fAparties˜who˜ha“v“e˜receiv“ed˜copies,‘fAor˜righ“ts,‘fAfrom˜y“ou˜under˜thisŽ¡‘'¿«License–i+will“not“ha•²!v“e–i+their“licenses“terminated“so“long“as“suc²!h“parties“remain“in“fullŽ¡‘'¿«compliance.Ž¦‘‡“10.Ž‘'¿«FUTURE–¦fREVISIONS“OF“THIS“LICENSEŽ¦‘'¿«The–ÿaF›ÿeree“Soft•²!w“are–ÿaF˜oundation“maš²!y“publish“new,‘U revised“v˜ersions“of“the“GNU‘ÿ F‘ÿereeŽ¡‘'¿«DoMÞcumenš²!tation–ÙâLicense“from“time“to“time.‘xRSuc˜h“new“v˜ersions“will“bMÞe“similar“in“spiritŽ¡‘'¿«to– æthe“presenš²!t“v˜ersion,‘?†but“ma˜y“di er“in“detail“to“address“new“problems“or“concerns.Ž¡‘'¿«See‘¦fÞhttp://www.gnu.org/copyleft/Ý.Ž¦‘'¿«Eac•²!h›ˆ×v“ersion˜of˜the˜License˜is˜giv“en˜a˜distinguishing˜v“ersion˜n“um“b•MÞer.‘ÔIf˜the˜Do“cumen²!tŽ¡‘'¿«spšMÞeci es–r”that“a“particular“n•²!um“b˜ered›r”v“ersion˜of˜this˜License˜\or˜an“y˜later˜v“ersion"Ž¡‘'¿«applies–æQto“it,‘öKyš²!ou“ha˜v˜e“the“option“of“follo˜wing“the“terms“and“conditions“either“of“thatŽ¡‘'¿«spMÞeci ed–Žvš²!ersion“or“of“an˜y“later“v˜ersion“that“has“bMÞeen“published“(not“as“a“draft)“b˜yŽ¡‘'¿«the–î!F›ÿeree“Soft•²!w“are–î!F˜oundation.‘µIf“the“DošMÞcumen²!t“do˜es“not“sp˜ecify“a“vš²!ersion“n˜um˜bMÞer“ofŽ¡‘'¿«this–$œLicense,‘D)yš²!ou“ma˜y“c˜hoMÞose“an˜y“v˜ersion“ev˜er“published“(not“as“a“draft)“b˜y“the“F‘ÿereeŽ¡‘'¿«Soft•²!w“are‘¦fF‘ÿeoundation.ŽŽŒ‹édŸò‘GÝAppMÞendix–¦fA:“Copš²!ying“This“Man˜ual’ý~19ŽŽŽ ƒ3* ý ÌÖ‘GëaA.1.1‘d(ADDENDUM:–íMHoš–áw“to“use“this“License“for“y˜our“doicumen˜tsŽŽŸff‘!GÝT‘ÿeo–FØuse“this“License“in“a“doMÞcumenš²!t“y˜ou“ha˜v˜e“written,‘Yôinclude“a“cop˜y“of“the“License“in“theŽ¤ 33‘GdoMÞcumenš²!t–¦fand“put“the“follo˜wing“cop˜yrigh˜t“and“license“notices“just“after“the“title“page:Ž© €‘8lÈÉCopyright‘¹–(C)‘ s,óAßê ! ! !
Jump to:   A   E   H   --- 1263,1841 ----   [ << ] [ Up ][ >> ]         [Top] [Contents][Index] [ ? ]
!

A. Copying This Manual

+

+ +

+ +
A.1 GNU Free Documentation License  License for copying this manual.
+

+ + +


+ + + + + + + + + + + +
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
+

A.1 GNU Free Documentation License

+ +

+ + +

+ Version 1.2, November 2002 +
+

+ +
 
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
+ 
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+ 

+ +

    +
  1. + PREAMBLE +

    + + The purpose of this License is to make a manual, textbook, or other + functional and useful document free in the sense of freedom: to + assure everyone the effective freedom to copy and redistribute it, + with or without modifying it, either commercially or noncommercially. + Secondarily, this License preserves for the author and publisher a way + to get credit for their work, while not being considered responsible + for modifications made by others. +

    + + This License is a kind of "copyleft", which means that derivative + works of the document must themselves be free in the same sense. It + complements the GNU General Public License, which is a copyleft + license designed for free software. +

    + + We have designed this License in order to use it for manuals for free + software, because free software needs free documentation: a free + program should come with manuals providing the same freedoms that the + software does. But this License is not limited to software manuals; + it can be used for any textual work, regardless of subject matter or + whether it is published as a printed book. We recommend this License + principally for works whose purpose is instruction or reference. +

    + +

  2. + APPLICABILITY AND DEFINITIONS +

    + + This License applies to any manual or other work, in any medium, that + contains a notice placed by the copyright holder saying it can be + distributed under the terms of this License. Such a notice grants a + world-wide, royalty-free license, unlimited in duration, to use that + work under the conditions stated herein. The "Document", below, + refers to any such manual or work. Any member of the public is a + licensee, and is addressed as "you". You accept the license if you + copy, modify or distribute the work in a way requiring permission + under copyright law. +

    + + A "Modified Version" of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. +

    + + A "Secondary Section" is a named appendix or a front-matter section + of the Document that deals exclusively with the relationship of the + publishers or authors of the Document to the Document's overall + subject (or to related matters) and contains nothing that could fall + directly within that overall subject. (Thus, if the Document is in + part a textbook of mathematics, a Secondary Section may not explain + any mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of legal, + commercial, philosophical, ethical or political position regarding + them. +

    + + The "Invariant Sections" are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the notice + that says that the Document is released under this License. If a + section does not fit the above definition of Secondary then it is not + allowed to be designated as Invariant. The Document may contain zero + Invariant Sections. If the Document does not identify any Invariant + Sections then there are none. +

    + + The "Cover Texts" are certain short passages of text that are listed, + as Front-Cover Texts or Back-Cover Texts, in the notice that says that + the Document is released under this License. A Front-Cover Text may + be at most 5 words, and a Back-Cover Text may be at most 25 words. +

    + + A "Transparent" copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, that is suitable for revising the document + straightforwardly with generic text editors or (for images composed of + pixels) generic paint programs or (for drawings) some widely available + drawing editor, and that is suitable for input to text formatters or + for automatic translation to a variety of formats suitable for input + to text formatters. A copy made in an otherwise Transparent file + format whose markup, or absence of markup, has been arranged to thwart + or discourage subsequent modification by readers is not Transparent. + An image format is not Transparent if used for any substantial amount + of text. A copy that is not "Transparent" is called "Opaque". +

    + + Examples of suitable formats for Transparent copies include plain + ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available + DTD, and standard-conforming simple HTML, + PostScript or PDF designed for human modification. Examples + of transparent image formats include PNG, XCF and + JPG. Opaque formats include proprietary formats that can be + read and edited only by proprietary word processors, SGML or + XML for which the DTD and/or processing tools are + not generally available, and the machine-generated HTML, + PostScript or PDF produced by some word processors for + output purposes only. +

    + + The "Title Page" means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the material + this License requires to appear in the title page. For works in + formats which do not have any title page as such, "Title Page" means + the text near the most prominent appearance of the work's title, + preceding the beginning of the body of the text. +

    + + A section "Entitled XYZ" means a named subunit of the Document whose + title either is precisely XYZ or contains XYZ in parentheses following + text that translates XYZ in another language. (Here XYZ stands for a + specific section name mentioned below, such as "Acknowledgements", + "Dedications", "Endorsements", or "History".) To "Preserve the Title" + of such a section when you modify the Document means that it remains a + section "Entitled XYZ" according to this definition. +

    + + The Document may include Warranty Disclaimers next to the notice which + states that this License applies to the Document. These Warranty + Disclaimers are considered to be included by reference in this + License, but only as regards disclaiming warranties: any other + implication that these Warranty Disclaimers may have is void and has + no effect on the meaning of this License. +

    + +

  3. + VERBATIM COPYING +

    + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License applies + to the Document are reproduced in all copies, and that you add no other + conditions whatsoever to those of this License. You may not use + technical measures to obstruct or control the reading or further + copying of the copies you make or distribute. However, you may accept + compensation in exchange for copies. If you distribute a large enough + number of copies you must also follow the conditions in section 3. +

    + + You may also lend copies, under the same conditions stated above, and + you may publicly display copies. +

    + +

  4. + COPYING IN QUANTITY +

    + + If you publish printed copies (or copies in media that commonly have + printed covers) of the Document, numbering more than 100, and the + Document's license notice requires Cover Texts, you must enclose the + copies in covers that carry, clearly and legibly, all these Cover + Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on + the back cover. Both covers must also clearly and legibly identify + you as the publisher of these copies. The front cover must present + the full title with all words of the title equally prominent and + visible. You may add other material on the covers in addition. + Copying with changes limited to the covers, as long as they preserve + the title of the Document and satisfy these conditions, can be treated + as verbatim copying in other respects. +

    + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto adjacent + pages. +

    + + If you publish or distribute Opaque copies of the Document numbering + more than 100, you must either include a machine-readable Transparent + copy along with each Opaque copy, or state in or with each Opaque copy + a computer-network location from which the general network-using + public has access to download using public-standard network protocols + a complete Transparent copy of the Document, free of added material. + If you use the latter option, you must take reasonably prudent steps, + when you begin distribution of Opaque copies in quantity, to ensure + that this Transparent copy will remain thus accessible at the stated + location until at least one year after the last time you distribute an + Opaque copy (directly or through your agents or retailers) of that + edition to the public. +

    + + It is requested, but not required, that you contact the authors of the + Document well before redistributing any large number of copies, to give + them a chance to provide you with an updated version of the Document. +

    + +

  5. + MODIFICATIONS +

    + + You may copy and distribute a Modified Version of the Document under + the conditions of sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the Modified + Version filling the role of the Document, thus licensing distribution + and modification of the Modified Version to whoever possesses a copy + of it. In addition, you must do these things in the Modified Version: +

    + +

      +
    1. + Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +

      + +

    2. + List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. +

      + +

    3. + State on the Title page the name of the publisher of the + Modified Version, as the publisher. +

      + +

    4. + Preserve all the copyright notices of the Document. +

      + +

    5. + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +

      + +

    6. + Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +

      + +

    7. + Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +

      + +

    8. + Include an unaltered copy of this License. +

      + +

    9. + Preserve the section Entitled "History", Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +

      + +

    10. + Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +

      + +

    11. + For any section Entitled "Acknowledgements" or "Dedications", Preserve + the Title of the section, and preserve in the section all the + substance and tone of each of the contributor acknowledgements and/or + dedications given therein. +

      + +

    12. + Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +

      + +

    13. + Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. +

      + +

    14. + Do not retitle any existing section to be Entitled "Endorsements" or + to conflict in title with any Invariant Section. +

      + +

    15. + Preserve any Warranty Disclaimers. +
    +

    + + If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no material + copied from the Document, you may at your option designate some or all + of these sections as invariant. To do this, add their titles to the + list of Invariant Sections in the Modified Version's license notice. + These titles must be distinct from any other section titles. +

    + + You may add a section Entitled "Endorsements", provided it contains + nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text has + been approved by an organization as the authoritative definition of a + standard. +

    + + You may add a passage of up to five words as a Front-Cover Text, and a + passage of up to 25 words as a Back-Cover Text, to the end of the list + of Cover Texts in the Modified Version. Only one passage of + Front-Cover Text and one of Back-Cover Text may be added by (or + through arrangements made by) any one entity. If the Document already + includes a cover text for the same cover, previously added by you or + by arrangement made by the same entity you are acting on behalf of, + you may not add another; but you may replace the old one, on explicit + permission from the previous publisher that added the old one. +

    + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to assert or + imply endorsement of any Modified Version. +

    + +

  6. + COMBINING DOCUMENTS +

    + + You may combine the Document with other documents released under this + License, under the terms defined in section 4 above for modified + versions, provided that you include in the combination all of the + Invariant Sections of all of the original documents, unmodified, and + list them all as Invariant Sections of your combined work in its + license notice, and that you preserve all their Warranty Disclaimers. +

    + + The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name but + different contents, make the title of each such section unique by + adding at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique number. + Make the same adjustment to the section titles in the list of + Invariant Sections in the license notice of the combined work. +

    + + In the combination, you must combine any sections Entitled "History" + in the various original documents, forming one section Entitled + "History"; likewise combine any sections Entitled "Acknowledgements", + and any sections Entitled "Dedications". You must delete all + sections Entitled "Endorsements." +

    + +

  7. + COLLECTIONS OF DOCUMENTS +

    + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies of this + License in the various documents with a single copy that is included in + the collection, provided that you follow the rules of this License for + verbatim copying of each of the documents in all other respects. +

    + + You may extract a single document from such a collection, and distribute + it individually under this License, provided you insert a copy of this + License into the extracted document, and follow this License in all + other respects regarding verbatim copying of that document. +

    + +

  8. + AGGREGATION WITH INDEPENDENT WORKS +

    + + A compilation of the Document or its derivatives with other separate + and independent documents or works, in or on a volume of a storage or + distribution medium, is called an "aggregate" if the copyright + resulting from the compilation is not used to limit the legal rights + of the compilation's users beyond what the individual works permit. + When the Document is included an aggregate, this License does not + apply to the other works in the aggregate which are not themselves + derivative works of the Document. +

    + + If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one half of + the entire aggregate, the Document's Cover Texts may be placed on + covers that bracket the Document within the aggregate, or the + electronic equivalent of covers if the Document is in electronic form. + Otherwise they must appear on printed covers that bracket the whole + aggregate. +

    + +

  9. + TRANSLATION +

    + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. + Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License, and all the license notices in the + Document, and any Warranty Disclaimers, provided that you also include + the original English version of this License and the original versions + of those notices and disclaimers. In case of a disagreement between + the translation and the original version of this License or a notice + or disclaimer, the original version will prevail. +

    + + If a section in the Document is Entitled "Acknowledgements", + "Dedications", or "History", the requirement (section 4) to Preserve + its Title (section 1) will typically require changing the actual + title. +

    + +

  10. + TERMINATION +

    + + You may not copy, modify, sublicense, or distribute the Document except + as expressly provided for under this License. Any other attempt to + copy, modify, sublicense or distribute the Document is void, and will + automatically terminate your rights under this License. However, + parties who have received copies, or rights, from you under this + License will not have their licenses terminated so long as such + parties remain in full compliance. +

    + +

  11. + FUTURE REVISIONS OF THIS LICENSE +

    + + The Free Software Foundation may publish new, revised versions + of the GNU Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + http://www.gnu.org/copyleft/. +

    + + Each version of the License is given a distinguishing version number. + If the Document specifies that a particular numbered version of this + License "or any later version" applies to it, you have the option of + following the terms and conditions either of that specified version or + of any later version that has been published (not as a draft) by the + Free Software Foundation. If the Document does not specify a version + number of this License, you may choose any version ever published (not + as a draft) by the Free Software Foundation. +

+

+ +


+ + + + + + + + + + + +
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
+

A.1.1 ADDENDUM: How to use this License for your documents

+ +

+ + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: +

+ +
 
  Copyright (C)  year  your name.
+   Permission is granted to copy, distribute and/or modify this document
+   under the terms of the GNU Free Documentation License, Version 1.2
+   or any later version published by the Free Software Foundation;
+   with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+   A copy of the license is included in the section entitled ``GNU
+   Free Documentation License''.
+ 

+ + If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, + replace the "with...Texts." line with this: +

+ +
 
    with the Invariant Sections being list their titles, with
+     the Front-Cover Texts being list, and with the Back-Cover Texts
+     being list.
+ 

+ + If you have Invariant Sections without Cover Texts, or some other + combination of the three, merge those two alternatives to suit the + situation. +

+ + If your document contains nontrivial examples of program code, we + recommend releasing these examples in parallel under your choice of + free software license, such as the GNU General Public License, + to permit their use in free software. +

+ + +


+ + + + + + + + + + + +
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
+

B. Concept Index

+ ! --- 1845,1856 ---- ! + + + *************** *** 1255,1258 **** --- 1862,1867 ---- E   + F +   H   *************** *** 1261,1267 ****
!
Jump to:   A   E   + F +   H   *************** *** 1241,1249 ****

A
anchored search2.3.5 Searching the History List

E
event designators1.1.1 Event Designators

H
history events1.1.1 Event Designators

A
anchored search2.3.5 Searching the History List

E
event designators1.1.1 Event Designators

F
FDL, GNU Free Documentation LicenseA.1 GNU Free Documentation License

H
history events1.1.1 Event Designators
! --- 1870,1876 ----
!
[ < ] [ > ]   [ << ]
! *************** *** 1270,1282 **** !
[ < ] [ > ]   [ << ]         [Top] [Contents][Index] [ ? ]
!

B. Function and Variable Index

! !
Jump to:   A   C   G   --- 1879,1893 ----         [Top] [Contents][Index] [ ? ]
!

C. Function and Variable Index

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
Jump to:   A   C   + F +   G   *************** *** 1301,1362 ****
A
add_history2.3.2 History List Management
append_history2.3.6 Managing the History File

C
clear_history2.3.2 History List Management
current_history2.3.3 Information About the History List

G
get_history_event2.3.7 History Expansion

H
history_arg_extract2.3.7 History Expansion
history_base2.4 History Variables
history_comment_char2.4 History Variables
history_expand2.3.7 History Expansion
history_expansion_char2.4 History Variables
history_get2.3.3 Information About the History List
history_get_history_state2.3.1 Initializing History and State Management
history_inhibit_expansion_function2.4 History Variables
history_is_stifled2.3.2 History List Management
history_length2.4 History Variables
history_list2.3.3 Information About the History List
history_max_entries2.4 History Variables
history_no_expand_chars2.4 History Variables
history_quotes_inhibit_expansion2.4 History Variables
history_search2.3.5 Searching the History List
history_search_delimiter_chars2.4 History Variables
history_search_pos2.3.5 Searching the History List
history_search_prefix2.3.5 Searching the History List
history_set_history_state2.3.1 Initializing History and State Management
history_set_pos2.3.4 Moving Around the History List
history_subst_char2.4 History Variables
history_tokenize2.3.7 History Expansion
history_total_bytes2.3.3 Information About the History List
history_truncate_file2.3.6 Managing the History File
history_word_delimiters2.4 History Variables

N
next_history2.3.4 Moving Around the History List

P
previous_history2.3.4 Moving Around the History List

R
read_history2.3.6 Managing the History File
read_history_range2.3.6 Managing the History File
remove_history2.3.2 History List Management
replace_history_entry2.3.2 History List Management

S
stifle_history2.3.2 History List Management

U
unstifle_history2.3.2 History List Management
using_history2.3.1 Initializing History and State Management

W
where_history2.3.3 Information About the History List
write_history2.3.6 Managing the History File

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
Jump to:   A --- 1912,1979 ----
A
add_history2.3.2 History List Management
add_history_time2.3.2 History List Management
append_history2.3.6 Managing the History File

C
clear_history2.3.2 History List Management
current_history2.3.3 Information About the History List

F
free_history_entry2.3.2 History List Management

G
get_history_event2.3.7 History Expansion

H
history_arg_extract2.3.7 History Expansion
history_base2.4 History Variables
history_comment_char2.4 History Variables
history_expand2.3.7 History Expansion
history_expansion_char2.4 History Variables
history_get2.3.3 Information About the History List
history_get_history_state2.3.1 Initializing History and State Management
history_get_time2.3.3 Information About the History List
history_inhibit_expansion_function2.4 History Variables
history_is_stifled2.3.2 History List Management
history_length2.4 History Variables
history_list2.3.3 Information About the History List
history_max_entries2.4 History Variables
history_no_expand_chars2.4 History Variables
history_quotes_inhibit_expansion2.4 History Variables
history_search2.3.5 Searching the History List
history_search_delimiter_chars2.4 History Variables
history_search_pos2.3.5 Searching the History List
history_search_prefix2.3.5 Searching the History List
history_set_history_state2.3.1 Initializing History and State Management
history_set_pos2.3.4 Moving Around the History List
history_subst_char2.4 History Variables
history_tokenize2.3.7 History Expansion
history_total_bytes2.3.3 Information About the History List
history_truncate_file2.3.6 Managing the History File
history_word_delimiters2.4 History Variables
history_write_timestamps2.4 History Variables

N
next_history2.3.4 Moving Around the History List

P
previous_history2.3.4 Moving Around the History List

R
read_history2.3.6 Managing the History File
read_history_range2.3.6 Managing the History File
remove_history2.3.2 History List Management
replace_history_entry2.3.2 History List Management

S
stifle_history2.3.2 History List Management

U
unstifle_history2.3.2 History List Management
using_history2.3.1 Initializing History and State Management

W
where_history2.3.3 Information About the History List
write_history2.3.6 Managing the History File

!
Jump to:   A *************** *** 1364,1367 **** --- 1981,1986 ---- C   + F +   G   *************** *** 1387,1391 ****
[Top] [Contents][Index] [ ? ]
--- 2006,2010 ---- [Top] [Contents] ! [Index] [ ? ] *************** *** 1436,1442 ****
! A. Concept Index
! B. Function and Variable Index
--- 2055,2071 ----
! A. Copying This Manual
! ! B. Concept Index !
! C. Function and Variable Index
*************** *** 1446,1450 **** [Top] [Contents] ! [Index] [ ? ] --- 2075,2079 ---- [Top] [Contents] ! [Index] [ ? ] *************** *** 1455,1461 **** 2. Programming with GNU History
! A. Concept Index
! B. Function and Variable Index
--- 2084,2092 ---- 2. Programming with GNU History
! A. Copying This Manual !
! B. Concept Index
! C. Function and Variable Index
*************** *** 1466,1474 **** [Top] [Contents] ! [Index] [ ? ]

About this document

! This document was generated by Chet Ramey on June, 27 2002 using texi2html --- 2097,2105 ---- [Top] [Contents] ! [Index] [ ? ]

About this document

! This document was generated by Chet Ramey on July, 27 2004 using texi2html *************** *** 1632,1636 **** This document was generated ! by Chet Ramey on June, 27 2002 using texi2html --- 2263,2267 ---- This document was generated ! by Chet Ramey on July, 27 2004 using texi2html diff -aNrc2 readline-4.3-patched/doc/history.info readline-5.0/doc/history.info *** readline-4.3-patched/doc/history.info Thu Jun 27 13:54:34 2002 --- readline-5.0/doc/history.info Tue Jul 27 09:31:29 2004 *************** *** 1,29 **** ! This is history.info, produced by makeinfo version 4.1 from ! /usr/homes/chet/src/bash/readline-src/doc/hist.texinfo. ! INFO-DIR-SECTION Libraries ! START-INFO-DIR-ENTRY ! * History: (history). The GNU history library API ! END-INFO-DIR-ENTRY ! This document describes the GNU History library, a programming tool ! that provides a consistent user interface for recalling lines of ! previously typed input. ! ! Copyright (C) 1988-2002 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this ! manual provided the copyright notice and this permission notice pare preserved on all copies. ! Permission is granted to copy and distribute modified versions of ! this manual under the conditions for verbatim copying, provided that ! the entire resulting derived work is distributed under the terms of a ! permission notice identical to this one. ! ! Permission is granted to copy and distribute translations of this ! manual into another language, under the above conditions for modified ! versions, except that this permission notice may be stated in a ! translation approved by the Free Software Foundation.  --- 1,31 ---- ! This is history.info, produced by makeinfo version 4.5 from ! /usr/homes/chet/src/bash/readline-src/doc/history.texi. ! This document describes the GNU History library (version 5.0, 28 ! January 2004), a programming tool that provides a consistent user ! interface for recalling lines of previously typed input. ! Copyright (C) 1988-2004 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this ! manual provided the copyright notice and this permission notice are preserved on all copies. ! Permission is granted to copy, distribute and/or modify this ! document under the terms of the GNU Free Documentation License, ! Version 1.1 or any later version published by the Free Software ! Foundation; with no Invariant Sections, with the Front-Cover texts ! being "A GNU Manual," and with the Back-Cover Texts as in (a) ! below. A copy of the license is included in the section entitled ! "GNU Free Documentation License." ! ! (a) The FSF's Back-Cover Text is: "You have freedom to copy and ! modify this GNU Manual, like GNU software. Copies published by ! the Free Software Foundation raise funds for GNU development." ! ! INFO-DIR-SECTION Libraries ! START-INFO-DIR-ENTRY ! * History: (history). The GNU history library API. ! END-INFO-DIR-ENTRY  *************** *** 41,44 **** --- 43,47 ---- * Using History Interactively:: GNU History User's Manual. * Programming with GNU History:: GNU History Programmer's Manual. + * Copying This Manual:: Copying This Manual. * Concept Index:: Index of concepts described in this manual. * Function and Variable Index:: Index of externally visible functions *************** *** 103,107 **** `!' Start a history substitution, except when followed by a space, tab, ! the end of the line, `=' or `('. `!N' --- 106,110 ---- `!' Start a history substitution, except when followed by a space, tab, ! the end of the line, or `='. `!N' *************** *** 129,132 **** --- 132,136 ---- The entire command line typed so far. +  File: history.info, Node: Word Designators, Next: Modifiers, Prev: Event Designators, Up: History Interaction *************** *** 187,190 **** --- 191,195 ---- Abbreviates `X-$' like `X*', but omits the last word. + If a word designator is supplied without an event specification, the previous command is used as the event. *************** *** 227,235 **** `g' Cause changes to be applied over the entire event line. Used in conjunction with `s', as in `gs/OLD/NEW/', or with `&'.  ! File: history.info, Node: Programming with GNU History, Next: Concept Index, Prev: Using History Interactively, Up: Top Programming with GNU History --- 232,245 ---- `g' + `a' Cause changes to be applied over the entire event line. Used in conjunction with `s', as in `gs/OLD/NEW/', or with `&'. + `G' + Apply the following `s' modifier once to each word in the event. + +  ! File: history.info, Node: Programming with GNU History, Next: Copying This Manual, Prev: Using History Interactively, Up: Top Programming with GNU History *************** *** 298,301 **** --- 308,312 ---- typedef struct _hist_entry { char *line; + char *timestamp; histdata_t data; } HIST_ENTRY; *************** *** 383,386 **** --- 394,401 ---- field (if any) is set to `NULL'. + - Function: void add_history_time (const char *string) + Change the time stamp associated with the most recent history + entry to STRING. + - Function: HIST_ENTRY * remove_history (int which) Remove history entry at offset WHICH from the history. The *************** *** 388,396 **** containing structure. - Function: HIST_ENTRY * replace_history_entry (int which, const char *line, histdata_t data) Make the history entry at offset WHICH have LINE and DATA. This ! returns the old entry so you can dispose of the data. In the case ! of an invalid WHICH, a `NULL' pointer is returned. - Function: void clear_history (void) --- 403,417 ---- containing structure. + - Function: histdata_t free_history_entry (HIST_ENTRY *histent) + Free the history entry HISTENT and any history library private + data associated with it. Returns the application-specific data so + the caller can dispose of it. + - Function: HIST_ENTRY * replace_history_entry (int which, const char *line, histdata_t data) Make the history entry at offset WHICH have LINE and DATA. This ! returns the old entry so the caller can dispose of any ! application-specific data. In the case of an invalid WHICH, a ! `NULL' pointer is returned. - Function: void clear_history (void) *************** *** 437,440 **** --- 458,464 ---- `NULL' pointer. + - Function: time_t history_get_time (HIST_ENTRY *entry) + Return the time stamp associated with the history entry ENTRY. + - Function: int history_total_bytes (void) Return the number of bytes that the primary history entries are *************** *** 613,616 **** --- 637,645 ---- `stifle_history()'. + - Variable: int history_write_timestamps + If non-zero, timestamps are written to the history file, so they + can be preserved between sessions. The default value is 0, + meaning that timestamps are not saved. + - Variable: char history_expansion_char The character that introduces a history event. The default is `!'. *************** *** 631,639 **** default value is `" \t\n()<>;&|"'. - - Variable: char * history_no_expand_chars - The list of characters which inhibit history expansion if found - immediately following HISTORY_EXPANSION_CHAR. The default is - space, tab, newline, carriage return, and `='. - - Variable: char * history_search_delimiter_chars The list of additional characters which can delimit a history --- 660,663 ---- *************** *** 641,644 **** --- 665,673 ---- of a substring search. The default is empty. + - Variable: char * history_no_expand_chars + The list of characters which inhibit history expansion if found + immediately following HISTORY_EXPANSION_CHAR. The default is + space, tab, newline, carriage return, and `='. + - Variable: int history_quotes_inhibit_expansion If non-zero, single-quoted words are not scanned for the history *************** *** 750,754 ****  ! File: history.info, Node: Concept Index, Next: Function and Variable Index, Prev: Programming with GNU History, Up: Top Concept Index --- 779,1224 ----  ! File: history.info, Node: Copying This Manual, Next: Concept Index, Prev: Programming with GNU History, Up: Top ! ! Copying This Manual ! ******************* ! ! * Menu: ! ! * GNU Free Documentation License:: License for copying this manual. ! !  ! File: history.info, Node: GNU Free Documentation License, Up: Copying This Manual ! ! GNU Free Documentation License ! ============================== ! ! Version 1.2, November 2002 ! Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. ! 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA ! ! Everyone is permitted to copy and distribute verbatim copies ! of this license document, but changing it is not allowed. ! ! 0. PREAMBLE ! ! The purpose of this License is to make a manual, textbook, or other ! functional and useful document "free" in the sense of freedom: to ! assure everyone the effective freedom to copy and redistribute it, ! with or without modifying it, either commercially or ! noncommercially. Secondarily, this License preserves for the ! author and publisher a way to get credit for their work, while not ! being considered responsible for modifications made by others. ! ! This License is a kind of "copyleft", which means that derivative ! works of the document must themselves be free in the same sense. ! It complements the GNU General Public License, which is a copyleft ! license designed for free software. ! ! We have designed this License in order to use it for manuals for ! free software, because free software needs free documentation: a ! free program should come with manuals providing the same freedoms ! that the software does. But this License is not limited to ! software manuals; it can be used for any textual work, regardless ! of subject matter or whether it is published as a printed book. ! We recommend this License principally for works whose purpose is ! instruction or reference. ! ! 1. APPLICABILITY AND DEFINITIONS ! ! This License applies to any manual or other work, in any medium, ! that contains a notice placed by the copyright holder saying it ! can be distributed under the terms of this License. Such a notice ! grants a world-wide, royalty-free license, unlimited in duration, ! to use that work under the conditions stated herein. The ! "Document", below, refers to any such manual or work. Any member ! of the public is a licensee, and is addressed as "you". You ! accept the license if you copy, modify or distribute the work in a ! way requiring permission under copyright law. ! ! A "Modified Version" of the Document means any work containing the ! Document or a portion of it, either copied verbatim, or with ! modifications and/or translated into another language. ! ! A "Secondary Section" is a named appendix or a front-matter section ! of the Document that deals exclusively with the relationship of the ! publishers or authors of the Document to the Document's overall ! subject (or to related matters) and contains nothing that could ! fall directly within that overall subject. (Thus, if the Document ! is in part a textbook of mathematics, a Secondary Section may not ! explain any mathematics.) The relationship could be a matter of ! historical connection with the subject or with related matters, or ! of legal, commercial, philosophical, ethical or political position ! regarding them. ! ! The "Invariant Sections" are certain Secondary Sections whose ! titles are designated, as being those of Invariant Sections, in ! the notice that says that the Document is released under this ! License. If a section does not fit the above definition of ! Secondary then it is not allowed to be designated as Invariant. ! The Document may contain zero Invariant Sections. If the Document ! does not identify any Invariant Sections then there are none. ! ! The "Cover Texts" are certain short passages of text that are ! listed, as Front-Cover Texts or Back-Cover Texts, in the notice ! that says that the Document is released under this License. A ! Front-Cover Text may be at most 5 words, and a Back-Cover Text may ! be at most 25 words. ! ! A "Transparent" copy of the Document means a machine-readable copy, ! represented in a format whose specification is available to the ! general public, that is suitable for revising the document ! straightforwardly with generic text editors or (for images ! composed of pixels) generic paint programs or (for drawings) some ! widely available drawing editor, and that is suitable for input to ! text formatters or for automatic translation to a variety of ! formats suitable for input to text formatters. A copy made in an ! otherwise Transparent file format whose markup, or absence of ! markup, has been arranged to thwart or discourage subsequent ! modification by readers is not Transparent. An image format is ! not Transparent if used for any substantial amount of text. A ! copy that is not "Transparent" is called "Opaque". ! ! Examples of suitable formats for Transparent copies include plain ! ASCII without markup, Texinfo input format, LaTeX input format, ! SGML or XML using a publicly available DTD, and ! standard-conforming simple HTML, PostScript or PDF designed for ! human modification. Examples of transparent image formats include ! PNG, XCF and JPG. Opaque formats include proprietary formats that ! can be read and edited only by proprietary word processors, SGML or ! XML for which the DTD and/or processing tools are not generally ! available, and the machine-generated HTML, PostScript or PDF ! produced by some word processors for output purposes only. ! ! The "Title Page" means, for a printed book, the title page itself, ! plus such following pages as are needed to hold, legibly, the ! material this License requires to appear in the title page. For ! works in formats which do not have any title page as such, "Title ! Page" means the text near the most prominent appearance of the ! work's title, preceding the beginning of the body of the text. ! ! A section "Entitled XYZ" means a named subunit of the Document ! whose title either is precisely XYZ or contains XYZ in parentheses ! following text that translates XYZ in another language. (Here XYZ ! stands for a specific section name mentioned below, such as ! "Acknowledgements", "Dedications", "Endorsements", or "History".) ! To "Preserve the Title" of such a section when you modify the ! Document means that it remains a section "Entitled XYZ" according ! to this definition. ! ! The Document may include Warranty Disclaimers next to the notice ! which states that this License applies to the Document. These ! Warranty Disclaimers are considered to be included by reference in ! this License, but only as regards disclaiming warranties: any other ! implication that these Warranty Disclaimers may have is void and ! has no effect on the meaning of this License. ! ! 2. VERBATIM COPYING ! ! You may copy and distribute the Document in any medium, either ! commercially or noncommercially, provided that this License, the ! copyright notices, and the license notice saying this License ! applies to the Document are reproduced in all copies, and that you ! add no other conditions whatsoever to those of this License. You ! may not use technical measures to obstruct or control the reading ! or further copying of the copies you make or distribute. However, ! you may accept compensation in exchange for copies. If you ! distribute a large enough number of copies you must also follow ! the conditions in section 3. ! ! You may also lend copies, under the same conditions stated above, ! and you may publicly display copies. ! ! 3. COPYING IN QUANTITY ! ! If you publish printed copies (or copies in media that commonly ! have printed covers) of the Document, numbering more than 100, and ! the Document's license notice requires Cover Texts, you must ! enclose the copies in covers that carry, clearly and legibly, all ! these Cover Texts: Front-Cover Texts on the front cover, and ! Back-Cover Texts on the back cover. Both covers must also clearly ! and legibly identify you as the publisher of these copies. The ! front cover must present the full title with all words of the ! title equally prominent and visible. You may add other material ! on the covers in addition. Copying with changes limited to the ! covers, as long as they preserve the title of the Document and ! satisfy these conditions, can be treated as verbatim copying in ! other respects. ! ! If the required texts for either cover are too voluminous to fit ! legibly, you should put the first ones listed (as many as fit ! reasonably) on the actual cover, and continue the rest onto ! adjacent pages. ! ! If you publish or distribute Opaque copies of the Document ! numbering more than 100, you must either include a ! machine-readable Transparent copy along with each Opaque copy, or ! state in or with each Opaque copy a computer-network location from ! which the general network-using public has access to download ! using public-standard network protocols a complete Transparent ! copy of the Document, free of added material. If you use the ! latter option, you must take reasonably prudent steps, when you ! begin distribution of Opaque copies in quantity, to ensure that ! this Transparent copy will remain thus accessible at the stated ! location until at least one year after the last time you ! distribute an Opaque copy (directly or through your agents or ! retailers) of that edition to the public. ! ! It is requested, but not required, that you contact the authors of ! the Document well before redistributing any large number of ! copies, to give them a chance to provide you with an updated ! version of the Document. ! ! 4. MODIFICATIONS ! ! You may copy and distribute a Modified Version of the Document ! under the conditions of sections 2 and 3 above, provided that you ! release the Modified Version under precisely this License, with ! the Modified Version filling the role of the Document, thus ! licensing distribution and modification of the Modified Version to ! whoever possesses a copy of it. In addition, you must do these ! things in the Modified Version: ! ! A. Use in the Title Page (and on the covers, if any) a title ! distinct from that of the Document, and from those of ! previous versions (which should, if there were any, be listed ! in the History section of the Document). You may use the ! same title as a previous version if the original publisher of ! that version gives permission. ! ! B. List on the Title Page, as authors, one or more persons or ! entities responsible for authorship of the modifications in ! the Modified Version, together with at least five of the ! principal authors of the Document (all of its principal ! authors, if it has fewer than five), unless they release you ! from this requirement. ! ! C. State on the Title page the name of the publisher of the ! Modified Version, as the publisher. ! ! D. Preserve all the copyright notices of the Document. ! ! E. Add an appropriate copyright notice for your modifications ! adjacent to the other copyright notices. ! ! F. Include, immediately after the copyright notices, a license ! notice giving the public permission to use the Modified ! Version under the terms of this License, in the form shown in ! the Addendum below. ! ! G. Preserve in that license notice the full lists of Invariant ! Sections and required Cover Texts given in the Document's ! license notice. ! ! H. Include an unaltered copy of this License. ! ! I. Preserve the section Entitled "History", Preserve its Title, ! and add to it an item stating at least the title, year, new ! authors, and publisher of the Modified Version as given on ! the Title Page. If there is no section Entitled "History" in ! the Document, create one stating the title, year, authors, ! and publisher of the Document as given on its Title Page, ! then add an item describing the Modified Version as stated in ! the previous sentence. ! ! J. Preserve the network location, if any, given in the Document ! for public access to a Transparent copy of the Document, and ! likewise the network locations given in the Document for ! previous versions it was based on. These may be placed in ! the "History" section. You may omit a network location for a ! work that was published at least four years before the ! Document itself, or if the original publisher of the version ! it refers to gives permission. ! ! K. For any section Entitled "Acknowledgements" or "Dedications", ! Preserve the Title of the section, and preserve in the ! section all the substance and tone of each of the contributor ! acknowledgements and/or dedications given therein. ! ! L. Preserve all the Invariant Sections of the Document, ! unaltered in their text and in their titles. Section numbers ! or the equivalent are not considered part of the section ! titles. ! ! M. Delete any section Entitled "Endorsements". Such a section ! may not be included in the Modified Version. ! ! N. Do not retitle any existing section to be Entitled ! "Endorsements" or to conflict in title with any Invariant ! Section. ! ! O. Preserve any Warranty Disclaimers. ! ! If the Modified Version includes new front-matter sections or ! appendices that qualify as Secondary Sections and contain no ! material copied from the Document, you may at your option ! designate some or all of these sections as invariant. To do this, ! add their titles to the list of Invariant Sections in the Modified ! Version's license notice. These titles must be distinct from any ! other section titles. ! ! You may add a section Entitled "Endorsements", provided it contains ! nothing but endorsements of your Modified Version by various ! parties--for example, statements of peer review or that the text ! has been approved by an organization as the authoritative ! definition of a standard. ! ! You may add a passage of up to five words as a Front-Cover Text, ! and a passage of up to 25 words as a Back-Cover Text, to the end ! of the list of Cover Texts in the Modified Version. Only one ! passage of Front-Cover Text and one of Back-Cover Text may be ! added by (or through arrangements made by) any one entity. If the ! Document already includes a cover text for the same cover, ! previously added by you or by arrangement made by the same entity ! you are acting on behalf of, you may not add another; but you may ! replace the old one, on explicit permission from the previous ! publisher that added the old one. ! ! The author(s) and publisher(s) of the Document do not by this ! License give permission to use their names for publicity for or to ! assert or imply endorsement of any Modified Version. ! ! 5. COMBINING DOCUMENTS ! ! You may combine the Document with other documents released under ! this License, under the terms defined in section 4 above for ! modified versions, provided that you include in the combination ! all of the Invariant Sections of all of the original documents, ! unmodified, and list them all as Invariant Sections of your ! combined work in its license notice, and that you preserve all ! their Warranty Disclaimers. ! ! The combined work need only contain one copy of this License, and ! multiple identical Invariant Sections may be replaced with a single ! copy. If there are multiple Invariant Sections with the same name ! but different contents, make the title of each such section unique ! by adding at the end of it, in parentheses, the name of the ! original author or publisher of that section if known, or else a ! unique number. Make the same adjustment to the section titles in ! the list of Invariant Sections in the license notice of the ! combined work. ! ! In the combination, you must combine any sections Entitled ! "History" in the various original documents, forming one section ! Entitled "History"; likewise combine any sections Entitled ! "Acknowledgements", and any sections Entitled "Dedications". You ! must delete all sections Entitled "Endorsements." ! ! 6. COLLECTIONS OF DOCUMENTS ! ! You may make a collection consisting of the Document and other ! documents released under this License, and replace the individual ! copies of this License in the various documents with a single copy ! that is included in the collection, provided that you follow the ! rules of this License for verbatim copying of each of the ! documents in all other respects. ! ! You may extract a single document from such a collection, and ! distribute it individually under this License, provided you insert ! a copy of this License into the extracted document, and follow ! this License in all other respects regarding verbatim copying of ! that document. ! ! 7. AGGREGATION WITH INDEPENDENT WORKS ! ! A compilation of the Document or its derivatives with other ! separate and independent documents or works, in or on a volume of ! a storage or distribution medium, is called an "aggregate" if the ! copyright resulting from the compilation is not used to limit the ! legal rights of the compilation's users beyond what the individual ! works permit. When the Document is included an aggregate, this ! License does not apply to the other works in the aggregate which ! are not themselves derivative works of the Document. ! ! If the Cover Text requirement of section 3 is applicable to these ! copies of the Document, then if the Document is less than one half ! of the entire aggregate, the Document's Cover Texts may be placed ! on covers that bracket the Document within the aggregate, or the ! electronic equivalent of covers if the Document is in electronic ! form. Otherwise they must appear on printed covers that bracket ! the whole aggregate. ! ! 8. TRANSLATION ! ! Translation is considered a kind of modification, so you may ! distribute translations of the Document under the terms of section ! 4. Replacing Invariant Sections with translations requires special ! permission from their copyright holders, but you may include ! translations of some or all Invariant Sections in addition to the ! original versions of these Invariant Sections. You may include a ! translation of this License, and all the license notices in the ! Document, and any Warranty Disclaimers, provided that you also ! include the original English version of this License and the ! original versions of those notices and disclaimers. In case of a ! disagreement between the translation and the original version of ! this License or a notice or disclaimer, the original version will ! prevail. ! ! If a section in the Document is Entitled "Acknowledgements", ! "Dedications", or "History", the requirement (section 4) to ! Preserve its Title (section 1) will typically require changing the ! actual title. ! ! 9. TERMINATION ! ! You may not copy, modify, sublicense, or distribute the Document ! except as expressly provided for under this License. Any other ! attempt to copy, modify, sublicense or distribute the Document is ! void, and will automatically terminate your rights under this ! License. However, parties who have received copies, or rights, ! from you under this License will not have their licenses ! terminated so long as such parties remain in full compliance. ! ! 10. FUTURE REVISIONS OF THIS LICENSE ! ! The Free Software Foundation may publish new, revised versions of ! the GNU Free Documentation License from time to time. Such new ! versions will be similar in spirit to the present version, but may ! differ in detail to address new problems or concerns. See ! `http://www.gnu.org/copyleft/'. ! ! Each version of the License is given a distinguishing version ! number. If the Document specifies that a particular numbered ! version of this License "or any later version" applies to it, you ! have the option of following the terms and conditions either of ! that specified version or of any later version that has been ! published (not as a draft) by the Free Software Foundation. If ! the Document does not specify a version number of this License, ! you may choose any version ever published (not as a draft) by the ! Free Software Foundation. ! ! ADDENDUM: How to use this License for your documents ! ---------------------------------------------------- ! ! To use this License in a document you have written, include a copy of ! the License in the document and put the following copyright and license ! notices just after the title page: ! ! Copyright (C) YEAR YOUR NAME. ! Permission is granted to copy, distribute and/or modify this document ! under the terms of the GNU Free Documentation License, Version 1.2 ! or any later version published by the Free Software Foundation; ! with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. ! A copy of the license is included in the section entitled ``GNU ! Free Documentation License''. ! ! If you have Invariant Sections, Front-Cover Texts and Back-Cover ! Texts, replace the "with...Texts." line with this: ! ! with the Invariant Sections being LIST THEIR TITLES, with ! the Front-Cover Texts being LIST, and with the Back-Cover Texts ! being LIST. ! ! If you have Invariant Sections without Cover Texts, or some other ! combination of the three, merge those two alternatives to suit the ! situation. ! ! If your document contains nontrivial examples of program code, we ! recommend releasing these examples in parallel under your choice of ! free software license, such as the GNU General Public License, to ! permit their use in free software. ! !  ! File: history.info, Node: Concept Index, Next: Function and Variable Index, Prev: Copying This Manual, Up: Top Concept Index *************** *** 759,762 **** --- 1229,1233 ---- * anchored search: Searching the History List. * event designators: Event Designators. + * FDL, GNU Free Documentation License: GNU Free Documentation License. * history events: Event Designators. * history expansion: History Interaction. *************** *** 772,778 **** --- 1243,1251 ---- * add_history: History List Management. + * add_history_time: History List Management. * append_history: Managing the History File. * clear_history: History List Management. * current_history: Information About the History List. + * free_history_entry: History List Management. * get_history_event: History Expansion. * history_arg_extract: History Expansion. *************** *** 783,786 **** --- 1256,1260 ---- * history_get: Information About the History List. * history_get_history_state: Initializing History and State Management. + * history_get_time: Information About the History List. * history_inhibit_expansion_function: History Variables. * history_is_stifled: History List Management. *************** *** 801,804 **** --- 1275,1279 ---- * history_truncate_file: Managing the History File. * history_word_delimiters: History Variables. + * history_write_timestamps: History Variables. * next_history: Moving Around the History List. * previous_history: Moving Around the History List. *************** *** 816,840 ****  Tag Table: ! Node: Top1136 ! Node: Using History Interactively1716 ! Node: History Interaction2223 ! Node: Event Designators3642 ! Node: Word Designators4569 ! Node: Modifiers6198 ! Node: Programming with GNU History7336 ! Node: Introduction to History8061 ! Node: History Storage9746 ! Node: History Functions10857 ! Node: Initializing History and State Management11841 ! Node: History List Management12641 ! Node: Information About the History List14235 ! Node: Moving Around the History List15591 ! Node: Searching the History List16580 ! Node: Managing the History File18498 ! Node: History Expansion20304 ! Node: History Variables22199 ! Node: History Programming Example24766 ! Node: Concept Index27488 ! Node: Function and Variable Index27974  End Tag Table --- 1291,1317 ----  Tag Table: ! Node: Top1320 ! Node: Using History Interactively1948 ! Node: History Interaction2455 ! Node: Event Designators3874 ! Node: Word Designators4798 ! Node: Modifiers6428 ! Node: Programming with GNU History7646 ! Node: Introduction to History8377 ! Node: History Storage10062 ! Node: History Functions11197 ! Node: Initializing History and State Management12181 ! Node: History List Management12981 ! Node: Information About the History List14995 ! Node: Moving Around the History List16477 ! Node: Searching the History List17466 ! Node: Managing the History File19384 ! Node: History Expansion21190 ! Node: History Variables23085 ! Node: History Programming Example25874 ! Node: Copying This Manual28596 ! Node: GNU Free Documentation License28834 ! Node: Concept Index51227 ! Node: Function and Variable Index51777  End Tag Table diff -aNrc2 readline-4.3-patched/doc/history.pdf readline-5.0/doc/history.pdf *** readline-4.3-patched/doc/history.pdf Wed Dec 31 19:00:00 1969 --- readline-5.0/doc/history.pdf Tue Jul 27 10:56:42 2004 *************** *** 0 **** --- 1,2464 ---- + %PDF-1.2 + 7 0 obj + << + /Type/Encoding + /Differences[33/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi + 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis + 255/dieresis] + >> + endobj + 10 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F1 + /FontDescriptor 9 0 R + /BaseFont/ERYRED+CMBX12 + /FirstChar 33 + /LastChar 196 + /Widths[342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 + 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 + 875 531.3 531.3 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 + 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 + 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.8 562.5 625 312.5 + 343.8 593.8 312.5 937.5 625 562.5 625 593.8 459.5 443.8 437.5 625 593.8 812.5 593.8 + 593.8 500 562.5 1125 562.5 562.5 562.5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 675.9 937.5 875 787 750 879.6 812.5 875 812.5 875 0 0 812.5 + 656.3 625 625 937.5 937.5 312.5 343.8 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 + 812.5 875 562.5 1018.5 1143.5 875 312.5 562.5] + >> + endobj + 13 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F2 + /FontDescriptor 12 0 R + /BaseFont/QPEPED+CMR10 + /FirstChar 33 + /LastChar 196 + /Widths[277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 + 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 + 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 + 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 + 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 + 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 + 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 833.3 + 777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 0 0 722.2 583.3 555.6 555.6 833.3 833.3 + 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 + 277.8 500] + >> + endobj + 16 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F3 + /FontDescriptor 15 0 R + /BaseFont/AXQRSV+CMTT10 + /FirstChar 33 + /LastChar 196 + /Widths[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 0 0 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525] + >> + endobj + 18 0 obj + << + /Filter[/FlateDecode] + /Length 340 + >> + stream + xÚUQËNÃ0¼ó{t¤fk{“8¾¶´EâÐ8 Au!M$'¥ôïñ#RÃ)ÙñÎÌîpä>!|6°¨æk’c‘CuQB*ò…‚êþmžž“”TÆš~èìÕ9{l>líŠ÷j « + u —H-µ€d™Æò|Ã>8IµðN’8’v¥@%‚ÛêÐ M×:"–#ŸÅ¿cg½Õ|M7¶*PJàv›Í5OfûgW*Ìh$¼$%1cû©†mR…Z¹™$ê<´në6‘Šë¨/™ä<‹âD†”yñ”ܚܭKZ!¹ü2C<×®>™k¢‰Íâ-—uoâË«GM?ÛƧéýIˆ3綉¥›vHH°xužðA¡¦`¶°M=J¬½fç[gÄšQq߯xñ-µ5SÖ¹=Ô!1YZÉÎLÉI²#à’½ûu¨‘~ + endstream + endobj + 20 0 obj + << + /F1 10 0 R + /F2 13 0 R + /F3 16 0 R + >> + endobj + 6 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 20 0 R + >> + endobj + 25 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F4 + /FontDescriptor 24 0 R + /BaseFont/GFGVUD+CMSY10 + /FirstChar 33 + /LastChar 196 + /Widths[1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 + 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 + 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 + 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 + 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 + 500 500 611.1 500 277.8 833.3 750 833.3 416.7 666.7 666.7 777.8 777.8 444.4 444.4 + 444.4 611.1 777.8 777.8 777.8 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 0 0 777.8 + 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 + 777.8 777.8 1000 1000 777.8 777.8 1000 777.8] + >> + endobj + 26 0 obj + << + /Filter[/FlateDecode] + /Length 1134 + >> + stream + xÚVKÛ6¾÷W¹”,­$êåô´:mÐìâdI^‘DCÝøßw†3’e¯{éE"g†óüfHËs=Ïz¶Ìïƒõ°¹[–ï¹KßÚì-?µnZ›§obsPíÈe + m;A*ò¡.;HDd)Š²Ë[µ^"J#ŠþPóÃß_hñ‡êzÝžˆ]©]›ÑFŠ­xAmeÛ)Ý¥Èõ¶zK¤$ô13&‡éTàyáÖ6R©Èˆvlµcß|´ˆÌ·_º~d‚xn³ºVÍ38F¢§@tÅÛCÖÓ +  •U` A¢fdäºé Œ;=±†®l‰«(e»Ïò’˜{ͼ¶Ì³ªšLÊTGBïG£å‹ÒCWØ´q:Â&eaâ9‡C5QÍqèÝ‹Pã‘÷¨èÍ©UÏ¢ìXºA z¤4B9ïVá¹êŽt=‰ÚXbÄ Í¡ºQhyFÀ_¦©ƒU€ÜK)Vv@°XvˆµÞ÷èÅ+~²–©FFM‘õPêÿlrŽ$ŽÜ$¡Pȇτ‹Zu H + FøCE9ë°¨ø¯³æí²†Ù”P:ô†Ž˜Û+5R¨ñQükc”F{ufj?dIÏ 2:˜¿,a/Ç‚¤ó‚˜„5ºWyIkòRNöd(Ž¢óà¯ÏPVCÄ ‘â)(§£< d(6ÊsºÉò*Í—–Ò˜Ò ÿË4§Ô;2M(*€™†+¹\^¦ÎBTwظ®©å + µ?#Mf¬$ãX1í…†&Ð_&¡ólšÉú1¶[ÝÑ«úÉ™g¦Rq’P‰ä§ëfpˆ¼Hü‰mºŠLÅ?xnœHxÔw}¶Õ’fJˉWYË×J,gÕóÄqØUª;˜\ÂvÇ*pMçF + §³FJ¹ä£ÌÔH¿Ñ÷Ä«êÄn°Fž­e jGP‹V¡Ç„>Y—9ío½f=rœâ2æ4jJšó¨QÇ’åÏÞ7;®™x¸ßnïI ]@ù4ÎòjñŽ(Œÿh²m?d9Jÿ¸2;s›ï)S2r:83ÿg3üÁ ‘mm"ñUUiDÛ«k;\4÷Ä›`=1;áø6(aÕU“W³ÁéLG©&.OõÕ8Úç©ßn9Ir†\Ü=]÷#›‘ë¾›ôMÍA#^7ÔÐëÕ¯¦oÒÿJ-É#Ä „zÕ½·Ø‡ËzûÓI2B$Ê|.tÍ ©ÉÐ9«Ô:-æCáF£+.!å$JçÀ±ñ‰å8Ïúd”KDwÕ4XbâqðÉE'ÂvêÄ( —̯4ðâM'¾ñxE™á®¤â´™êxNïÓQ9Íë\îQ4À+}4%†Få‚B†\x‘K7Hi\Ï\;ó\ kÜ4ÿç6¾yuEK%0ÔÇŠ~®à¡³ Ï׃êÙª”ÞâöûëAÃën|)>ÝÓI/ð}„¼äæ#çËúÞÐßüò/àÐË~ + endstream + endobj + 27 0 obj + << + /F2 13 0 R + /F4 25 0 R + >> + endobj + 22 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 27 0 R + >> + endobj + 30 0 obj + << + /Type/Encoding + /Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/sterling/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi + 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis + 255/dieresis] + >> + endobj + 33 0 obj + << + /Encoding 30 0 R + /Type/Font + /Subtype/Type1 + /Name/F5 + /FontDescriptor 32 0 R + /BaseFont/CJUJUB+CMBXTI10 + /FirstChar 33 + /LastChar 196 + /Widths[386.1 620.6 944.4 868.5 944.4 885.5 355.6 473.3 473.3 591.1 885.5 355.6 414.4 + 355.6 591.1 591.1 591.1 591.1 591.1 591.1 591.1 591.1 591.1 591.1 591.1 355.6 355.6 + 386.1 885.5 591.1 591.1 885.5 865.5 816.7 826.7 875.5 756.7 727.2 895.3 896.1 471.7 + 610.5 895 697.8 1072.8 896.1 855 787.2 855 859.4 650 796.1 880.8 865.5 1160 865.5 + 865.5 708.9 356.1 620.6 356.1 591.1 355.6 355.6 591.1 532.2 532.2 591.1 532.2 400 + 532.2 591.1 355.6 355.6 532.2 296.7 944.4 650 591.1 591.1 532.2 501.7 486.9 385 620.6 + 532.2 767.8 560.6 561.7 490.6 591.1 1182.2 591.1 591.1 591.1 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 697.8 944.4 885.5 806.7 767.8 896.1 + 826.7 885.5 826.7 885.5 0 0 826.7 755.6 674.4 703.9 1044.7 1059.4 355.6 385 591.1 + 591.1 591.1 591.1 591.1 948.9 532.2 665 826.7 826.7 591.1 1022.8 1140.5 885.5 296.7 + 591.1] + >> + endobj + 36 0 obj + << + /Encoding 30 0 R + /Type/Font + /Subtype/Type1 + /Name/F6 + /FontDescriptor 35 0 R + /BaseFont/IXQBGN+CMTI10 + /FirstChar 33 + /LastChar 196 + /Widths[306.7 514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8 + 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 + 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 + 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 + 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 + 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 + 460 664.4 463.9 485.6 408.9 511.1 1022.2 511.1 511.1 511.1 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 627.2 817.8 766.7 692.2 664.4 743.3 715.6 + 766.7 715.6 766.7 0 0 715.6 613.3 562.2 587.8 881.7 894.4 306.7 332.2 511.1 511.1 + 511.1 511.1 511.1 831.3 460 536.7 715.6 715.6 511.1 882.8 985 766.7 255.6 511.1] + >> + endobj + 37 0 obj + << + /Filter[/FlateDecode] + /Length 1173 + >> + stream + xÚíYMsÛ6½÷Wð„à“zS,;u§Ît&rzHz`$ZæŒDj(ʱûë» ŠiUN¢Xöôb&r߾ݷ» &$˜Õò.x;~sÁJ°¡Áø&"ÂZ”c#‚ñèJÿǿ¿¹ U˜U· ÓXG°¬«{Æ¡á(þ2OÂWå7v•è,ÏBNP™ÀÂP¹jv˜ »¼…m(&¼Ú‡†J™@׫4›¹=~KWe^<¸“Ëz¿"ž”é]È)JænW¹Ù•Qƒy@ª1ìEnQ[˱þ¹k#å Kÿ:Ô]ná=àTb£ø55 + Øâ@iÏ9:¿_ÆÙ*L«=¢ÍÔ>L?nññíÿ©?Ñ-°–Ã-_¦Vðç˜J¿õ€1ß…L!à/ü-­%«t–Åà—U׌c¶E½×ö.’T,’9 ÿ + 5Cy1=Cˆ^-zÈ|¢û~(#†µ9Kî°¼ÊC¸MÓÏLª¤B¥qÄM¯ÖoLÔ§ÖÉÜ.¼a0ÑõMV $ú³ÈgE¼X42õ5-oÝÑ»÷×ÛÊÕ‘'ðwd~p¶Þ}wm,qÜ3ä!¢ÃѹtÙ®°,Shº©Í©$¨ÌݺeZ;v¹±Šþ=¦½†€Vu| ¸ÆÒ´šÙÔØUùpÏ’.´„aNŸSã_„”uBÎðïóÅ…­uV@ŸPAŽ¦ÏVgžnuÓ¬ÄÚû ê + œð>ðU×e––i†¦Qvw©nP‡UŽ»¯ ²ñjÄ\„žùŒûüî + endstream + endobj + 38 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F5 33 0 R + /F6 36 0 R + >> + endobj + 29 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 38 0 R + >> + endobj + 41 0 obj + << + /Filter[/FlateDecode] + /Length 92 + >> + stream + xÚS0Ð30PHWSî + N!únF + †z–† + !i + † + †Æz–& + !.Ñ™™šºF–¦–Fî~¡šºÆÆÆ™Å%ùE• Ž‰†OfRQ"â¥àÂé + endstream + endobj + 42 0 obj + << + /F2 13 0 R + >> + endobj + 40 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 42 0 R + >> + endobj + 47 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F7 + /FontDescriptor 46 0 R + /BaseFont/KZEBQT+CMCSC10 + /FirstChar 0 + /LastChar 127 + /Widths[683.3 902.8 844.4 755.5 727.8 813.9 786.1 844.4 786.1 844.4 786.1 552.8 552.8 + 319.4 319.4 523.6 302.2 424.4 552.8 552.8 552.8 552.8 552.8 813.9 494.4 915.6 735.6 + 824.4 635.6 975 1091.7 844.4 319.4 319.4 552.8 902.8 552.8 902.8 844.4 319.4 436.1 + 436.1 552.8 844.4 319.4 377.8 319.4 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 + 552.8 552.8 552.8 319.4 319.4 844.4 844.4 844.4 523.6 844.4 813.9 770.8 786.1 829.2 + 741.7 712.5 851.4 813.9 405.6 566.7 843 683.3 988.9 813.9 844.4 741.7 844.4 800 611.1 + 786.1 813.9 813.9 1105.5 813.9 813.9 669.4 319.4 552.8 319.4 552.8 319.4 319.4 613.3 + 580 591.1 624.4 557.8 535.6 641.1 613.3 302.2 424.4 635.6 513.3 746.7 613.3 635.6 + 557.8 635.6 602.2 457.8 591.1 613.3 613.3 835.6 613.3 613.3 502.2 552.8 1105.5 552.8 + 552.8 552.8] + >> + endobj + 50 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F8 + /FontDescriptor 49 0 R + /BaseFont/GRMJWT+CMSL10 + /FirstChar 33 + /LastChar 196 + /Widths[277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 + 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 + 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 + 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 + 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 + 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 + 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 833.3 + 777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 0 0 722.2 583.3 555.6 555.6 833.3 833.3 + 277.8 305.6 500 500 500 500 500 808.6 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 + 277.8 500] + >> + endobj + 53 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F9 + /FontDescriptor 52 0 R + /BaseFont/OZGXQD+CMSLTT10 + /FirstChar 0 + /LastChar 127 + /Widths[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525] + >> + endobj + 54 0 obj + << + /Filter[/FlateDecode] + /Length 2148 + >> + stream + xÚ•XÝÛ¸ï_á '1#Q¤>(‚^/¹»¢(ÚÞ^_ÒåÚôZˆ,9”´›ýï;Ã!%ÊÒú’'‰œÑp>~óAmbÇ›‡}ü´ùáîÍ{¾IbV&›»ã&)6IÊJ±¹ûñCô—“ºôÚlwiÊ£äûíNýÖUÍn¥ÑÏU׷晿4[žEÀ®ö}õ¸åE¤k qž¤2J¶ïþúæ}²IrÆíA;8?ÙìDÉ + {V²ÝÉŒÒsH‡HOãIzšXéVh¨½@ÕwiÂdf¥Þªdi´GíF{ःîö¦º ASÇtj·<žhÑ·ô:/"êOšNÌCeL”›ØžöÐ •¸`©pôÉ"û·êÞ(¿¨<øÚyE½FóãèhÚ3q*Ò”2ßuxÚ\,Yžov¸DÚƒº^5‡‹5­u¢ÙvW@é!Š ¦;µC} wôAiZìÛ¦«ÚhGTôpçÙ÷‡¬¼4zJ¶ ¬8¶æ¬úªmˆÓ?Š*¾®9Q$0~É;ÇaMW¾,DàËB¢/íæ3F¼0ܨ£¬#]Lû`Ô¹Cï–yÔiMûàA§½ÿ æ3OU"ÚOÿ¶œ6_Ûˆ´§p\Ôƒ¦$’lL‹‹)Òch3¹\˜%À»/‘¾ú˜ á@§•I õ裒£ÐH„~[\×)üDgÚŽZõƒq²û“êéÍf<»ê\ÕÊ8rKßô^/Ø"Ö©å HC˃œ±ØðáÄBY^!=“£:Z»ì6­Íáð״ÿ„Û­9tTœ]ýH… ¼œB±5,f[ún䮚Ëà8ºÞhu~M‹³ú„y±Õª')Zuî/×hªNZ9–}{lF¦X¡Þô3¡™‡á¬I?g——§èq1ú±jç'ÓKœìâ“]ûÁ'r5uG»9ø¨ÑÎêÖÐÿp™q6Óš)( u&‰çóPíñØOTç§Ø§«±1“—½ú„«"†œ©)•çÀ + ø„ݤu<Êô¤A&ªÈ…F ¿ý´sŸ¶ô‘¼z$X€­£ÀúZÈqB¦q¸=¶"xŸZ‘.Éðí0j ða7Üw}Õ”1»"Îœ)HÓоÜ7ÖI#Z éN{®5šž Éíñ*þÂ)¯zŸ"ÅL)üØiöõàê£]Ú ¨ÁVŽ’COƒÝSÈØUjé…K§¦>ÐÊçm6‰ òVRíê^Õµÿfì°EÐ@¯q­-vG¿Z$òQÕDÈÇ2²‰ÄËÂ6x¹r"/Kt¢ãA¯á†´iO'A‘¡H.6ò¶Ãrdq†]ÛË‚~b˜jÝÂèYPý!‹ÿ½-8ˆ·iy-Ud¬ð³Ú¹µæ*Lm–²¡ïLÌÆ.«uš%PŽ Ú[™E + Zâ}m·c7QòY¯@vŠ-‚àÃöh¨.A—;ÏæÐ’¹Þ ;÷¦ýäjO + ª](h$ÚܱÐÝÔY¯¢ÿ¨º“kc¶?À6½Z×/%<Ë¢®¥ý‰·C¤ePUMbepÙAv´CC^ŽÞÒ>mo[1ì"à%PqÝ6ŽàS)] >(¥ó6Šk+]Ä©ÏaÛO3ÛOÄáõB&ªhøÙÅ·1£š½I€Ä‘ë´z2-©š*œûµYŸ©æXsm#síä‹aH@Öú«È«^áŽ:âw$Á›„Íí j¨ûið óY*CëçåD ”~²V1°”!’þûû9”,§–dúAúøטé“2ôõ?ýÍ „ðÿ:¿OŠ¢¨†'„*L¤µêÜ–&vIÉñ\¿WA™KVk>C–ãMÂÝfVó^âP¸â‡PgEæ=Øž'ŒÏ®(ï>\Là>WûËýi~Ír–{y¯^}ß½Y‡,û–ð¾Y /ÿŠðʹ€õ´[(öñ°ØýñfS»ó%Û¡Êè•Bí'Êÿ°@ÂÐÝÕgUçfÑ£2†wwø?¡·™$ + endstream + endobj + 55 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F7 47 0 R + /F3 16 0 R + /F8 50 0 R + /F9 53 0 R + >> + endobj + 44 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 55 0 R + >> + endobj + 58 0 obj + << + /Filter[/FlateDecode] + /Length 1918 + >> + stream + xÚÅXÛŽÛ6}ïW8@‚ÈÁšI]7Åm.E[ÅyhDkÓkµ¶äJò^úõáeɪè“(QÎœ93œáÌg¾?»éÇ›Ù7×/_‹÷YÊg×ëOf\²4˜]û›'æ ‘FAâ½ùé×ùBJé½Í리éå‡ü¦Êàå÷ëï_¾æ¸ÎOQÆDóÙ"HY¢Åpƈ + #Ὗ§Â+«ˆï[Uç·Ekâ* °?ã±–ò~ž´KSoå,]ÈÄ÷²Já€{‡Z­èSSÒ³V[µlh×Uö‡û¹ˆQ¤±®ÊY¹Q4Pwsyª˜‹ÄkØÞIúD*ËNeÀ(žùZÝËE!‹¥™|nÛgUÖ¨ºÛÍ2â,ãQê¨Glõ˜/xõ¼ß–ùÆˬÉËgBcþ£íÀµ”Þ:ðÀ¤8ˆ½wFæ.Ãÿéå†ä“Ìr—72ëóõP|dÅKG¼6‡Ø€¶«ŒÜÛ¼¨‰÷y³¡Q†9mÌ;d?Ž!+,²ˆe0"‰ùëé¤s´yB„ÕâÅ—‹°Z,Î1@ÔÐ E‰˜ùVÔ³Im¸QØFPM(SÄ€è~Ø!·Œo(B`Ê„Dl|ƒÎ}E^ÜÒ·r}ôÓ6/Ô‘™G1 …Kfò7²Ê(ôÂUÝÐKŸ¬¸_â)½ήTQ&†0ÙñÕ7¢¼¿UU~˜kj§®Ñø“6ö©ª•“k 0a8¼½å¡ªMÑ ÚuDj²É†2â&êy4®Aõ­¢”Yï³¥ª™N">ÌZÆkR•V©‡l·ßˆ=·/Lfä‰þëž<z0Oûm8ê4“Jã¤4ðö•Zª9^—ån—+À-åßoÀpýýQ÷_à€†aê‰<#¦Ùä55ðÓ)Ñ ‚ÍÅ w#Xòšž•Ú“·-’=OØ¥lJ6ƒ Õ`,.Ÿž† q°Í8ʪÛîu»ˆß"ˆºŸûðµƒ.à¡w½Ép̧š(Ä™fêM ì+ÀÊ,À‘¬!m4?ÚÇ9 B3=‚Q"˜Œ]ŒÖù¥8Ÿ2‚¿Â VËR; Æ}˜ð‹Nîﻲ6SˆW`èwß"f¤6YÕYàÍB´bž­‚ƒÈ îé+YÀþë|£ÈÅp1‰© ¤·ª2qJ¹Ñ¦üÒ%%ŒN§ü¸œŒP-×'63MBM6÷3½`=ü©CCç(‹„æAb‘&±HŒ:“4Ñl¿ßæT<`“É6íÓ€8^ëm¢5J]ÆéÓÇA¶8ÏædÜæájÈ™QÏfÑÖ c¿»ðñ_µ!ÙC‰ѱý•…%k,P-&QÇ>°ø©ZdLJOÇšœ³Á³ó6è|—5K´eãœh-iZ>˜øÖ™{Ù¥9Zù$i_8ãÔ+uSa2xÈ"Þ_ººÆ³VeÕUÚŒ0T¤ãÂáÄÃ`?GâbJÝÇ.Aĸ½2ødÅ­ZgI‡+õ+BuYÊ™äS*ˆ“*D,Mûpd77•ºËMRuTj‘=Güá†î13½ã-E³Ø¥å‹IZ^m· ¥oÐòm"ö;žêƒšC=,Õ¾¡¹f$yr°PNeOÙfFUà(žÔ˜À£~,JÊžXûÂ[ë¬êö"ÂúŽDóÅÈ©ckÛ•è¸ó»†ÄÙ}¡Ô%E²‚>¨ª2m“‘ÛYé†W„ØÓàÓXù⬆$äkz²•ªuƒç:Ü¡9,ôTäæPé&B[„ýnYù¢ÜMŽÅ& h±vÇJ5‡ªÐIèš]ã]wö + ¨6//³Zÿ EƒßaóL>³‰ìêDT9ÛE’Å6ŠG³ŒõÇâédÕò|h— ’ÏÌb®!œ%ÿ‹%:ámó?ç¦èÒŸ³HY”œÜnÚCG½8˜ss0¤À«Œã¦;]{U vgáQ·õN÷º‚î*„Kù˜»WzV3¾×¬³¨«ºÂ-µ:(§ çÑ^eº!÷Šç‚nŸL§-°¹ËËCMo¶@#ÝMÚ†­ç̶Ã} äñ…×ñÕµ½Ù¨½Ú“tµ÷#&@@ëªNÜèI÷Fïj …> + endobj + 57 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 59 0 R + >> + endobj + 62 0 obj + << + /Filter[/FlateDecode] + /Length 900 + >> + stream + xÚ¥VK“œ6¾çWpJ4U;ZôBàÛÚ‰瘌O‰«Ì2šA ÄxÊÿÞjµXØe–rÅ„ÔR?¾þº¥$¥iš“0¼K^ïnßò„¥´`Éî°> + endobj + 61 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 63 0 R + >> + endobj + 66 0 obj + << + /Filter[/FlateDecode] + /Length 89 + >> + stream + xÚS0Ð30PHWSî + N!únF + †z–† + !i + † + †Æz–& + !.Ñ&šºF–f&î~¡šºÆÆÆ™Å%ùE•ŽOfRQ"â¥àÂhxc + endstream + endobj + 67 0 obj + << + /F2 13 0 R + >> + endobj + 65 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 67 0 R + >> + endobj + 70 0 obj + << + /Filter[/FlateDecode] + /Length 2050 + >> + stream + xÚX[ë¶~ï¯ð[åűV¢nö9E¤ÍÉÙ  ŠÄy(Ò`AËôŠ8²dHÔžl‹þ÷κØÛMžÄËp8œù¾áP«(Œ¢ÕÓŠ>ß®¾ÞßT«8 + wñjZÅÛUœ„»tµÿëÏÁ_*}q¦[o’Dêýz“¦Yð®}êôùl›'œH‚/ÖUÜúöûŸ°‘ŸlïÚîe½‰wY®‚lýËþ»ûñ*.BEÛl`÷xµIwá–vRë + .u™× -Ö ¯›TÎ-OÑì*ÂhG:÷•íaI–åZåÁx–, Ž¦/;{XoÔ60"TµkU_¸ãZþÚ—º“. ¯½°²ÊUÚa+^py;ðð—Î:#M>ɶº˜¬N²"L‹UD?5ÃͱTªTægG_m’]æÙjáŠ9\³‡NÃôV!øS%ÁÚ–ÇA_µC}Ävà©‹ÀðDÙ6½=šÎȤæ3%ž¦jl©k4~< Gj³à#nÑvÚ&Á;Feo 7fpN‚˜‘úóOýäµØy¸5º~ùåsᢟDgŽØNÃ$%l'y˜&ð‰B%ècÆ7(MÀ1¢+ + ŽC)^+q¿Þ»0b¥×d!˜«Òí •*ÝÑGnÙæ28nžºöÌ-Š 6 à•Qàq ¶LiY%Ξ1úiœ¯na¬vq¸Ý½Ÿí^†Hvdвµb¿>ÔFPÞ-ÀAŽ3>SLÌ{)øTË?sDB®j{ŒTœÑÑzŒ_ úû¾%ò—VOATwëØ?j§yB c†÷¨xTèõ5G–œ­í¿eÇ93^ƒ9„ðÔ™gÛ=c’,exÙ†¿e{¾Áí×Æ|aùÄ †@^œá‡s ÚÅg‚¤ ò¬¦˜§06áFǸàL¥{Õèôç5$3mkŠ GÁihÊ=‹Ÿ(7€xgÎæŒ.䓦“M•œ‘B,Ȟѭ@\ó§á{×Ðy‡ )–A$Å´h + #Êsq‚Ã8ê-|üPØIÙÿyT#1À¦ðïâÍÒŠÞ莓%®}-Ì®êÚá A³É–Up‹½ Í"ÌA€ìL׶ ;n ~oDx×-&ª_E]ïÐË`] + a`nñ„'ÈòM)zŠ`ÌË--Cu3"•CPÂí†ÖÑv¦tµ¿oRÅCÃSúx´ˆJ—[:XRŒ¤Ü°×€Wš_/î$¦Ì"…dQ˜ûãÇŠéžÇm_Ag‘¯,Gˆ»@Žõ‘Y–KH^AÏóy éžìáKùÇÉSXÊw…T Àh]vm/|>Ú©,G÷«Õ˜°'â¦LÜtNÜÜïB-aO>¯A ‡ÅšÆÎVQæyÏyÏy{^瓬ÔD“ Çc”L#â ~®|qÍa¶ŸÍNAוspˆmÄ–æOo7p+’@Ü›ºÞ|n XÐopq>¦{–¢¸aÆìe¨% ¤J®8œbbÌuÉö5²úÜ‹¹Ž¸%“ã•/÷°Å„ƒåèÈçcðF") ü{Ÿ_º rBB’̬'@Ï4pOwæš”lloÏ€s!Ý‹°05™íEÐpèuƒ'M:§Á‘!yàŒ@¼KfW·Ê°žaâ•}u[šaìé + ƒ  '7Ñ‚HyóTº¼‘ ¨6BB¡“¾H•”ï 1Ð=®²IÁPäHâRéˆkHFïXpN{…$-ë)“}{–…Õ¼¨¾¹‹®bž< 4_ØcGsÒCí¤ÐdÀ€k™V HˆF&õ‘3Tƒ¸vc!I$ã›þ,ŠŸ—a•Á„Ú<Ýd vîר€€·`S ˜`"ij<Ù=¢l/–³X>ŠéÚºÙjæ¬ + ŽŽ g–¹§ý…r{˃ºŽ ¥²¥7Éq*§x\_.5¼@Ä÷PrѳJoª´(¶Üa§ƒ4¦°ÚÜâ9§'"ãõO è^pV¾8 |çVl=–ÄÉl«ÞÒa”,+ª¦s,»¨ªÈ84UùòÎücÏÝ“Ñnè eÓs‡ûã5A"2]Ã3|-1&˜#QL×5 Òð;Z0múZF¼ ‡šÒà}^ç!”=NÑÅ;·_²!›|EKfPÕzºâÈ´Qê«oL\®ƒg;áæ¥Å¶âC«‡–üH˜®> + endobj + 69 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 71 0 R + >> + endobj + 76 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F10 + /FontDescriptor 75 0 R + /BaseFont/EVWJKR+CMBX10 + /FirstChar 33 + /LastChar 196 + /Widths[350 602.8 958.3 575 958.3 894.4 319.4 447.2 447.2 575 894.4 319.4 383.3 319.4 + 575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 + 869.4 818.1 830.6 881.9 755.6 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 + 863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 + 319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 + 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9 + 511.1 575 1150 575 575 575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 691.7 958.3 894.4 805.6 766.7 900 830.6 894.4 830.6 894.4 0 0 830.6 670.8 + 638.9 638.9 958.3 958.3 319.4 351.4 575 575 575 575 575 869.4 511.1 597.2 830.6 894.4 + 575 1041.7 1169.4 894.4 319.4 575] + >> + endobj + 79 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F11 + /FontDescriptor 78 0 R + /BaseFont/SHIXAJ+CMSS10 + /FirstChar 33 + /LastChar 196 + /Widths[319.4 500 833.3 500 833.3 758.3 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 + 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 319.4 777.8 472.2 472.2 666.7 + 666.7 666.7 638.9 722.2 597.2 569.4 666.7 708.3 277.8 472.2 694.4 541.7 875 708.3 + 736.1 638.9 736.1 645.8 555.6 680.6 687.5 666.7 944.4 666.7 666.7 611.1 288.9 500 + 288.9 500 277.8 277.8 480.6 516.7 444.4 516.7 444.4 305.6 500 516.7 238.9 266.7 488.9 + 238.9 794.4 516.7 500 516.7 516.7 341.7 383.3 361.1 516.7 461.1 683.3 461.1 461.1 + 434.7 500 1000 500 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 541.7 833.3 777.8 611.1 666.7 708.3 722.2 777.8 722.2 777.8 0 0 722.2 + 583.3 536.1 536.1 813.9 813.9 238.9 266.7 500 500 500 500 500 666.7 444.4 480.6 722.2 + 777.8 500 861.1 972.2 777.8 238.9 500] + >> + endobj + 80 0 obj + << + /Filter[/FlateDecode] + /Length 2084 + >> + stream + xÚÅYÝo¤6ï_Á#u}ØêS?’öªôZ]¶USëÝEba l®©Ôÿ½36¹êzU_²xlÏŒg~óaÇ Xx{Ïü|ë}µyu#<°”{›ÇK–†Þæ›_}µZ‹T…‰ÿ훟Wk)¥ÿ]ÑvuóDƒÛâ¡É`ðÛæûW7räL„Þ:LYbØ|÷únóîúÍæí/«u$BÿêJW]Sèö Gþ«+úý©.ªN74èjû{Ðôa÷ Ôc«ËGÝ2"\½B5¼À[ƒúœÔn$°ÞíZÝ¡´8ÅmzÎeg]QW4:¹Z¼/ºCQõ2 +=kšìé¢àh*¸ÔÕ¾;Ì¿9zõΞ®ÔG8aûIĶş„ªD¼,´-ë^bV+èíÜú>3ö®ÌöàY\°æœ…‘«â_´ñãÛ_ÞÝm¾Ü\Ar@ˆ?Š)nö½Þä ¤ ý{¡CÔ£>®Dì?\c‰Ä¢ÊËó3‡'— “ ¼æèðúæöú›…QÌ„²Ë>ŸH—þÁ ƒCÖ’NV¾®hØvj©·Œxs‡L†æ€Ä€a¤`F0 ¦Q‰0@ÌÍ*þ¹ÊíBC` + !Êbe˜lŒ·Dø­Î ÑB¥>!o + Ô.ñµ]`Ž‚9x¾¨ö´²Õ¿Ÿu•Û©]ÝÌ?®"DBQŸ[Ú°”3óú“±AÝ$!é=óD«‘9D<B¦ŠE‰µó¾:/ÁŠ"ábm’…J›…ᆖ,Hq3$9ŠYöffœ ýº*º"+‹?ÍéÑÚÓgÕ?Bÿ®ƒ° ÚY•í1NWŒrÑ’ü9þq:ús Í1¤LÿÜê-M`$âoÑ««iLúÁÒ£QÊ.>ضW:5ÁŽë†¹þ˜¡„¡1B{sÛ¾?ô`~B7Ögÿ=² + ÿvD1ZÂЛÖ_÷”°¨¨ˆl™ÛÀ=5õ¾ÉŽÆ™žL Ä`TÙGʯ7«DöAñÛÝœ¥‘‹ÝA€z¬‹­E0®©Ô®8·èu½¸DÒ{ï%œH ÿ$ÞÑKBD^?.½;¨š^1ΉhËåa4,ÈãNAŒYا’{Y/±\.ôuö ÁzuïW²%‡yá:ñ+½Gۆ܄? °m ‘Fs ¸·ÈÑô"Ÿ!}ðRŸáܱجãqÖ¢˜ˆZ(q”Xèㆸí(æBíZ¨»{DšÕ§œì¡Äbo0E,øxLLŠƆô¯–IcLÁܱJ8TˆÔR!\ŽW‚ñalaÂh©ˆ*RÊrº›³J‹B—BM-x%1SbÂë²jBÂGêð2d±˜ó2B@»ü(q,Û£ðEGÿÁ" + °8xx«»scÓCF?mלs ÚÄb³(eo7ãäç¦Ñnrê“¡ )º•¼¨NçŽæzS> Î>œ{.;/ ˜B,Ä‚ ¾KÁuñ0¶®K#K"†ÖsKT9cåpâ + a2gÅy‚åÑåõ àg wù©ÈT?qªÚó ŠþQZœ‡,8õꦘ CñÖbÎä$[Þén†Š1Ò"湂V€æ³<¯›­E£Ä‚h$'N `šîSŠ£½£"­ï…–Í ôP…”ú9ô3âBãxKzý³žeÖCj¬á&ÍTC£SEµ-‹í9+iŒñ¦|{AhMP뻳!Í=µ€ÔnzL !|ÍÂSÅ_C%hiˆík´Û¯PÑü2º¢èàj¸[ö꿈ál»…IL¹7ŒSÆDI NãÃØIL™‰¡üTÝC¾²PΙm§ Pk¾)ß4ÁdðB[ºÅ®­*³\/q çJX²^’¢2Ôk½qœH;[ú0¡&Òqf 5 ¡¹CI7w䑵mm¼ »+.Üf]F_÷"ŠuiÉ÷~aùSçúg6LL.RB ‘_/Œ¼†Ô‡U|Lo~¾½]ÆïXæ,üà†ÇÿøE"aágÇSø!1N^JùPTäpãpD¬FSv·åÈá×ÇK)Vü?`s/Ä™ƒå¯Yµ×³¼o”î+Àñd3;,AD|¡™m>Ö}jt>i@œ’úv††âR¡a:–g" + J€T¨ÁѶ 5÷‘î™–8Nïq×èc½’Ús8ƒž£_¡ÄFÊ`Pš—žÐ£&Œ˜$bšüÛØ7æÊ\Rárs¸À ’ZøRÖKSÓyHy‹G…<ÑßJÂÔ¹!EAàzç0Á!¹†ô£lW6ñ/^¢þj¼ƒ-’¦ÄVVíšúˆÜmrÄ¡]Åwu + û  ’s€ç#ªˆÅõôÂØ_ÝR“÷¨¤BÃM^éÓ|Ô!êÉ-¬›göa`×èy•E¥?§YÌÅöñŒ,0œkj2¸R»$ÆÞ~Ùy–Ñ4(ù]·±‚À‘ƒUõºd°ó}ˆ¢¦ŸÄ†žYb f¨R¾xIT,qÙ©ÀÜÕgì°³N'ì°aTË$ê¼L~¸o‚ó'*©«îBÛ(¿”@á;ÉŸÆäû@YßN›'ƒØ ŒE€¸É5¨Gæ"šÉÖ:ƒ b ø‰ãë NMA¯UÎv0µÌé@´9¾ŠŽõí¦ÀǼÅÅ´A>;Ê‚þ‹°nOô&’Øäö¶J¢‡prï«YYöÖCXm‹Ö>¥¶³«k¯Ûõ泿mJŒò + endstream + endobj + 81 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F1 10 0 R + /F7 47 0 R + /F10 76 0 R + /F11 79 0 R + /F8 50 0 R + >> + endobj + 73 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 81 0 R + >> + endobj + 84 0 obj + << + /Filter[/FlateDecode] + /Length 2284 + >> + stream + xÚÅÛ’Û¶õ½_¡·RžBÜ°omj'L¼ÉLÇöx¸µâT"w(jÝí×÷€EJqœlóDÎý†EÊÒtq¿pŸï»ýæ•Xð”å|q»]p»à’åjqû÷÷É·»â¡+ÛåJJ‘ˆ¿,WJé䇶¹o‹Ã¡ªïñ‡L>WÝŽFß½ý *ù¾:vMû´\ñ\g"1Ë·ÿXH+™Í+•3ëÀ¿µ´29Õë®jê¸ç›WrÁ9Ë5¢²rÌ"u›¿ýîöÓË··?þk‰?’´Ÿ§ÃcÏýö¶|ØëÒ]üòˆÕrñHËY¦²f:_\IfL˜ï¨˜‘nÐE`;OÎ0k˜‰`åœYq+Ìä1¬²^3;‚øó÷Ò0‘yü?$=?ÂoÅ„ò«ºó¼ßUëÝ ×M}ìˆÿë]Ñ:lW<Ë 2å$Óûª.ý ¤kStÅ' ÇS´¸àHƒÇkI"•YqEDâ%Úíúgñ殺I `S vç²ç£›#„qŒp›ŠŽ–›BgDz£kl„†–ÈXBéÆã» 62tfWàžGBåžPÌr¿y2$’õŠz3ý8àLøÿ l|  2Û²;µµŸx‰¤ÙoΙã¤(Œ`BÆ>61Íè¨JM².ö{4U×4ØTLJå + ÈoŽ~[³¥oá.xò“‡‡}µ.Ð Wî€IÊu‚0kȲ,K^{ÐÑÅ3°Ý·ª‰ýZ'žš20õ’$jg$* ÓÁ,¼âãàš™°éíOoÞL¡€ó!¯wpN4 $M¹aŽ÷Âj&8ˆ cê×{­Ç&Ð;*^(hòz_z[<‹1îJÎÓ\‹åLÊ~î]‹•ÈiѪs75¶`e˜ú2ÇáW 9Õó[G•“)·Œ­&û*øª;¯ˆ(‚M¹/»>°€FÓ–D0‹ª<’t¤Ö,5N:2ñ;°ƒ,-§âʸVŒ ’°ý<’¢Ei/ õ®ÿPüg6„äW]µÐhp‘¤ÞAX7Á8å…pGn¢í¥ÕÔû§•ì‹ãÔ )Kì‰#Çœ¿:xž1«¿ZÞȼ©¸%SA»OõÛ ùŒdYÏS8ͽÀ!p‡Å\<¿I^µÈœ¥z,çÝ^ž•&Á¥iˆ>i¬¯D¯Ò8^E'Úò±jNÇýÓ + C¶"­@C²ät 'B˜€sJC§1^Ä÷"ÇÓg”¾%é#( œ*ÜH%þ:ÜÇ9­ x»/?ù;>Ìq Ä– îÍ‘Îô’.€ø¥ÀÜ”¢"âjÕUˆBø½¥ßWƒ!!¬Ï¸³ðÄMÛÜøTÍ(Ä#¢¿.ï žR)0-ï¾!ÿCFÇúÏÝïâÑ>æ3a /Õ9äšà -Sy˜_˜£¾»5C‰00r %ÏÑ”z(<…ÜÜžá)äæj§g㌑ł}Ž¸l6#‰ýØ› §†tê¿eÛŒE×{Ç‘‹­ü™H)ܦéùÊÇͪ¿…d¨cé–æ5a¡ÈZIθqˆ &™\®°{]o›öà²=€`tòW0K0öæÔÑœ0„A_ÆI£’7Upæq¹¨°VÄ{”t÷€Ù`:(,O¶^éŽ4%Bã*FŠ;2'Dçd>0ð jÝ<Ì ~R£¦ €7Õcµ9ûóÓÔ!³,—_m*“zt¦ »èü…Ri¦°hÌ@U•«HAÛu¿Ô^Ã~N«¹¯X‚4F + +1:^Sxý›¢ + d2FLõrš”«l¸ðbR6@~¨ê¢+7\Û}j(1Xœƒ‡\ÀÌŠ”ùÅä.“ÕõP>FƧÓ\ŸÚÖ+Œ7¶úáÔÍÖEIªÎdÎì¨:{¹‡4‰‚ÝöDxŠ G‚L¢¼¯êzH²€êP2êǼüJ[Æ ¸†q2(ß{¼1žsTf®¨¸&±AC<õPpCÊûlç³#ë,û¶ŒƒwSà} .:`¢-y?G2ahQçp2ÆYj/†‰>çî[‘¨£âçL)E@TRz•ƒ¿“T@={»ÍãyS7ñpÜÕ†J;èçò°—áú¦[†Ð`U…ŽÀWÎB"–ò¸9Üœ0¾›…ƒ!™Q7 ÿa7+Ú|&?<Îi˜?yŒ;†¥Ž:‚vØ6îö@jñ9›…W›!QC7ÄÏÇ팃F’Ø›jÖ3âÖy¨‡Ì%;Å%mbXwøÂøÔ•ÇÙþp*ž3uR)2jNk†‡@-Ál¦%(|K0d> + endobj + 83 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 85 0 R + >> + endobj + 88 0 obj + << + /Filter[/FlateDecode] + /Length 2379 + >> + stream + xÚÝYK䶾çWôQmLÓâC$•[Œxm› àÛ0´ÝšiÁ=ÒFRï¬ýëSÅ"EJêéï1“ÄWñõUÕWÅMÎò|s¿qŸo6_Ý~ùJlxÎJ¾¹½Ûp»á’•jsû÷3»Ý‰R+›}óæ‡íNJ™}Û c×ÿF…×Í»¾‚ÂÏ·ÿøòÇqy‰2v šovªdÖ‰L2µÝZdÿì¶2Ï>4í=ˆ0*û[ßÛþÙx¬é'N…×P ÒU*\",ŽI㦸=ÖCM«º;·û±éÚ‹*«N§n+LöˆEá'nûsß×íVèl¤–¦=Ô©­¡ún1ä7¯²®ËUS?™½ƒÓ²™ï;Ô#õëz?.âXµ÷õá~6R[VJØÛï¶Vf~õ?Óžå†sVîT¥•ÌšMî:7­?žÇ.Ιûa±8Õ×·pÛ…Ü'–R + €°ÔòÈ- â–oëªß#½> + endobj + 87 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 89 0 R + >> + endobj + 92 0 obj + << + /Filter[/FlateDecode] + /Length 2650 + >> + stream + xÚÍZÝ“Û¶ï_¡éK(÷ã‹$è>¹­8“f:±3}ðy¦ŒD8‘H…¤|Nú·w  ÈÓ霸Ó'‚´»XìþöƒZpÆùâna_/þòîùk¹œebñn»f!ËôâÝßÞGÝåÇ®h–+¥d$_,WZÇÑ?šú®É‡²ºÃÝ—ÝŽF_ÿ#tôMÙvuóër%²8‘Q¶üðîÛ…2Š™d±Ò3–üû×K£¢Sµîʺú€{ž¿V !X£(+ûƒtÁíæ²êh‡àé˜nCSäËçÕ;8[¬÷‹Ä°D˜ÅÙâ°H%Kÿº_¼…³/RÅReç@4$³s¢/1hF§L'Ž×mÔKÛ/3©Ý꺮ڎ4²Þå žmË}Qå‡bJYÀH)OzI‚;Y cX–ÂS1A7ór³²RGÝ®ÀAŒL—2º&êZZ®·DÍ Ô²”/é­ŒÓPª€©V¨CÚÖÕÄÃ1Ó½’ìì^np˜F9-ïËÊI•wî锇‚¡‰èÍT2aSéu¢ù”íä&`Ð[Í÷?~÷Ýä÷Râ€6ÜX“Yiî†c:ó4ioΖm›ú@£M¸¦é@ô?ÏÙÈŒÞqʤ·¢¯¬*tôCÑšª%Êœ<¨ÜÒk{Z¯‹¶Ýžö74Q7Ó«”©Ì-š¦ª'l•ØzÒUÝ1{ú˜3/VàLFþOÓÄ,üҾݦÀîÏÜ2 #D¿ñt„äx‚!!KMH©É«»'T Òçz·¼ÛÝ*¥7™w¥~®«§ì%×0@Õš4´ÐÈ.9yOÜÉìL½¥)ôÄ–†Öx'.' òq—SÙ`ax!¢|³¡À-0ˆ‹… + |Z¨€Áœ ^%ÑÛ.o:šEq¤D ë‘"IY,B̳¨r~¸rogÃC_™4nC^¾¤I£‚Æ1Œšf{çô2æíÏH;‹cL<*T6˜•éßESƒfe–D-©Æ hŸV¸í'|DÅ]YU 2+C6+2ŸÔÚ/{ö44êvy5Õ X¨ºx,‰¦y®‚ÔW ]åžÈv`ÞÞ“RœÌžn…;Suø9w|€cc® + %ÉÅH’©Ç"Ià ²¼?ïƘ FYÅõaÃêVA$‡ !Ây Q=Hd´ùü@"²IĈ$÷MÙg! µëî€q’ÿîÉa1Í©ôÿ7ËË èéð>ÿ‰Ê³gE gýFFëSÓä3´2€,¬zoÝð;M¯ƒytf‚l>bNY4¨êsòIÌÄ5Φ™Ù[h•9ÈGŽ3>çÏ) ¦xœÃJ%Š‚äœW &²'xul¼WÇÚ™ ÒuÄa6kâp¤(ÂÌÔéE,¤|B²C°|HszÔN8çãVèl>S·J.:øJ¥’Ö.ÎÏóáÚe?^)0Dë†Ð@aÀH¿äÇ#f"6JŒ1Á$L"cˆ³ + ÃŒcöâß&dPlÄ4™¨ß + + q ´­–«b_ŠªkÚ>-29DÛ9´€¬€Àÿ%ªCºäF,a°ÏÛižc½ª°PÚ© + –xÛ@Ò‡{ÛÇõ âÍáI©&Ú¼™ ð”ê_9—JEÁôJEDá)ƒ§Ä&¼ƒ|tÊa€šÃ€X3£~¯zQ9AÀCÅ"²Ó‡c¼× + Ñ•äûzâûjð}ú¾áW}±Šr¾„TJ¡×C¬€$æ°ÑYÿî¼ÞdÜp2u ib哼BhÀh:¦2yDOhÀ9"Hæ8Sâ)&‡Ì⼚¬¨Æ›"X§I.U”\Ø"{¨°ÞÙ|é* —rh©?×RŽN8*&¡¨Hžœe Iï‹|)“è£-‘q]í³^„YBö`¨‰±9÷ììp£TÌv  èþ˨r¡j”°¶àÂUŃ + zNS¼Pzhz=‚>}å*‡ÞÐ7Œ¹¿ F ¦^_)ø b›—ûSS0g­X…òÌ%n ‹Ñ»° ƒ?Kc)À"‡n²JãèÕ§c^µ€"Ó’Vcßz…øæÌyW´.-Ù:èióŽCÄ#€f1ž‰ËdƒvñÅ2™‹x¦ð©>Åà"-½ãIQ?Ó+ÞCAÃ[À„yÅmÕg7ïÜšƒy­ñ0;ê`"Pd¸RÊâSGS÷x9òåÔ,BuñPQMqpuk ;][É7‘ŠvÓm´°Fz`۠Ǣ±NÀŽ(L]W2l<0ÁЫ;ѹ]þyH¡Péûf´¸¨sß` uï›rC~Øå?#ÏÂÝ<êü2Wú𶺎-ºq¦tlrÇ>¯‚ZÏ÷»] + è%½F ù¸\úN²„KE#.6ôæ¾1Á¨ÝÕ§½U¶=JúਦT‚’ÿjûôžF?:ÚPÕ‘(>ëSç6:(ï¿l:!&B2÷ðóâ8“`цÀ.µ•oSbrQ80õ@j€Ý—A…J[Þÿ}üÃöƒËg—èì7œž{¿~³}ðÚÈgm;ióÀE†©É´Ñ 1:{1c–eCbk!+/É’¥o)lÀ'›òØ•Ñ9r°GtW¸.£²íóÏ­.\ƒ<›Fe:}–uWtç½FÈqbËƃ­¡Uÿî#2Ü6Í¥úÒ§+™ØîHOÌfÙ95ìØ€ñ„ôŠKÛõX‚Žf"°J‡·WÖ2 í£ßWÏ ªnŠOAñA_ixlU0Ô¿XRÓâÇ`—åá´@g¸>×ËÖ™ûü¡³ÌŒÐÜÎø¥™cÎQG¶ ·ß‰ÆøË ýfæûŒ³!o óŽ‘çcáD[þ4“G §¶©W$t°™v-SÐr¸GªAæêŽ1ÞØ¿ ÷5_že,8Çûµ|K)Œ/qîL§¸½uqtípÉ}ÛPô™·£ĄÝ{398 3“þè©.(k©ÛâІç}f°R ,(3®°¥ + ³€'Ó¹t0–˜ì_Ì?!ìÃÕ½ –™rË‚¢éçêƒõÖu‹H}P›‘ž`ó`¬íÔ<¤C¿ýŸuL¥A»½%Ž9‘e*NI€ãn@·³_a»ý@˜ÅIímZuOá”mâ‹ôQ5sÿ‘îÄÉpbœš?1þªtOü¬<Ìzâ=ÍÛÛªnùþn¾he•û¯ã,pŒû¼Ž9þÃøDµ + endstream + endobj + 93 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F10 76 0 R + /F11 79 0 R + /F8 50 0 R + /F1 10 0 R + >> + endobj + 91 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 93 0 R + >> + endobj + 96 0 obj + << + /Filter[/FlateDecode] + /Length 2404 + >> + stream + xÚÍYKãƾçW(>$ÔbÕf¿Ød$°á]'AC¬øâqŽÄ‘ˆH¤LR3žE~|êÑ$›¤fÀÖ'ª›Åê¿zh‹8^VôørõùöÓ÷j%c‘ÉÕöa%Ó•Ô"3«íßD2^oT&M}ù÷®7ZëèÏeÛÕÍ3þVÞ79 ¾Ýþu¥S-Òdµ1™HéãoÞ¯S]«]WÖÕ·(óé{½’RdÚÐn“ðî˜7kœŠÞ¼aQ²&©ò’G¿\óÝNaõê öï„KA©6[áSø¶žV_Á1aNÑa¨««ÿ³Ö2*ªòCáW•£)¬NúUï¢áýk#”éw_WmÇ&ñ_oÚ®)«ÃRo–Š4íõ®ù}àR÷nì†ݵ©PkåôÌ¢¼iòµrÑ3O×üÄ©NÔâØE—¼i‹=R_;ÿãM·gWãM…6¦œÐ‰y˚θØu·VitôûkýFŽ‹´ÇâtòÒåáˆ{îÄzc’8Úö2´kG»F·‚¤°lKËå Iš¨½œJ:…ꊟ~%íp3`þ|×MËòe ´8³ÍD–½+ãVÊÄ"È$¿9Ã\£û±Ç•2F$à°DõÛ}ÂÓÔÍ~®-ÏË@›S"ÎæÚ`2µ¡¶}q*Ï%iî£,Ÿàqm-ªÌïOÅ[>}^íùøƒlôýµî¼wÁÐ.AM¥ÊèÍGöþÄëKÖT£ê{ x&°í3€µ"vè=ᲟD7î¹ù Ìd© ¶"Qý¸g€8A>ØÀ Œ3¬Ã\J„KElœÍiIN?t¼åm7)šöÿa‘²òòP6m÷–“§ÜÏ™Ý+¥L„±!m¼H@`Ìø5<Âûïüá6Æð¡{’àßÅáŒ`«Í2¸Cð’PDO(xë*I·ÀoGY‡_rÅ$–éŽM}&™+2J˜>J µ–J‚…Àñ×~Ï-oòÒíä@ó56:&$Æy…-{¿#ß}6]ýço”‰ îK;è €"5„#;½ßqÁ+X=“"‘Ãꌀ•4B1©î=ÀØ)Û­76QA€w6úz©žS–ìúÀ)!àMC%[Ø~ˆˆ ;σ}ÑîšÒS†`Ö†pqŠ¦ÊO§çÍcÙ–°χtFß(½€vMG1 ¤îû¯p¹q‹]„ÓÞ‡êºt“¦Vpt¹Í†/–v™Žä¤'U‘ç½nžœðÞ×È{~ó7y¾¯ý‚ïïƒÀm¾KÁ™H¶ Àãy•¦ÂdÃØóTš “ð$Ú{Þ.Ѳ«“¸;|hÚ©å.?ñ †ë™´…Ç)ç¦Àz¸¼4ð8ïSEÄz>Ž‰¤‰N0胈Cä~$c:ˆÔi`LÏŒ “Ž­t*ªCw|ÕœvjN2ÊõŒqÕ߇&4&›-³•…¹»kÓx[ž¼-ñœÔ-ìjB»ê_Š]uLª»úñÔ®8™pépΘGei)u4I™Q&6U%ë@ØR|6èÂQ²Þ…Ÿl¬q%'·gž¸é8r>»ÛØà‡Eû3›xjDÁ3iÂk‚zï‰Ñ + ~å3Øê€ÞÅ··CN´ˆå¬—§â;ÏUü&¸È~[w·½•hÜ H¬Ðnú?J ´Hh8ÃÌ9®ÝžH‰¹›ÄL{Ð$ÕSU˜àY;ÑÕ•ç¢íòóåD2JGŒüs™4‹ªºÚ|(š’2«²P½¦Èn²˜6Ú h¶«y’®+þ`ƒo‘@)yG…í(ê_ï°øé48KiKóÈ™8$ž+Fk‡¨{Bø…§Œ¶h[Ìí}v²íd_<äד§qç«ç¯Òç-±OOÏE^Q–Ç ÷_…ÆÒFó-U¯´¡ýÏBQ}*ðó¡¾V{þÙëìú•1?W{ñœ§²*0нå,¿'9ã[$eõµ„§Ÿô%Ô¿~%Yôã@ÇÆ + +¾:~<…d ñ¹us>ûlgÁIóØQ#’T2×(-F7Uù"~dœQÃuÐWßflè•rÄD ƒÝ¸ÿšî¹‘v6ÉîÃW-*Ïý &†Bã„x•³xMÚ¥ÊÕ2Nbõmœï™‰3ãÌÅ÷×±5àÌtÑ–å®~RŒw¼:<ªâ áëç(+íå¡Â$c½Œa‰ †ñ– r!0&H÷ŠêfVW5Å9/«=×f¨+†÷þ*á-õåzpeöe‹ÀÞó·Cq ð7ìç£ÔŸÜ鳉Y´úüĬ×g‹w˜Û²pI[–õi'T*4Rèl¡ª:m' + _éÌBÒ/l²¬c¹ÀÎù˜+€ý^u‚Î8É¡¿!HŽÝ ¡›y¿Ä ž½)ÝGúXT + ƒ0ûƒÕËv¹8ä/½ªO|°Îè‚àèwwÝÝ]…{ùÃÿ›ÿ~²ØQ’'`„)(²°Ò®8 æ'fÃYí£w‘7Ì™s äB•&r¡TœL4›)T°%*T@È*›kT`b5ÕØsú ÌJ(Ͳ¤ ìb'%Ä(8“ï÷%r;6‡Ô<mYæéXò4©€Q”NÒ©¼"žr8°!Ç/¹ÉúÿŽ´Ôó@¡~K2§ô‘ºªù®ð¥Ê;vŸ}þ–ùl™¸Ót†Åï^M|MSí_Ê34üðº¥IO5-zc;lÒMè;÷çÁ¼ª + ®ÑJ‚ûë·k¸žÝ‹ó¥ÃPø¼N¿gﶿú7Q‹\ + endstream + endobj + 97 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F10 76 0 R + /F11 79 0 R + /F8 50 0 R + /F1 10 0 R + /F7 47 0 R + >> + endobj + 95 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 97 0 R + >> + endobj + 102 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F12 + /FontDescriptor 101 0 R + /BaseFont/AHMRWX+CMTT9 + /FirstChar 33 + /LastChar 196 + /Widths[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 0 0 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525] + >> + endobj + 103 0 obj + << + /Filter[/FlateDecode] + /Length 1745 + >> + stream + xÚXÝsÜ4ç¯0Z_¦§Jò7¡<ÚR¦Óa†”—$œ;_΃ϾÚrÓ”ágW+ù;éÀK,­V?í÷îÅáŒsçÆÑŸ×΋³g¯¤#8K„s¶sDì%¾söó¹ûÓ>=ª¬^­=OºòûÕÚ÷÷·ºº©ÓÃ!/oðÀsosµ§Õëwïqỿäªê»ÕZ$<”®«Ë³_/™ï¬ý„ÅþüUì¹i§×Ev‰,Ï^yŽ, P”µæ×Ì›}Š‚À…â¼gõ9 |ø7oã‹/Ï@ÍÀsnAAÁ€ X8Ø,”v_8¿ƒ€â‰q¨±Êj + #%ãáG† L6Á‘þ'ûtLËí+LeŠæES¬(dž7ÄÚ¬<á‚12ÃÀwk!´Ã<(ȃgû Œ&C·«à*r«}7+ø8é\Ü×í>'2mórŸ_çæžµ«Þh…š¼*i›Ì]Õ‚šD:²mžª¬¸³gEQ!ø-FŽ–=îeç$u°ìB?{Åœ…`úPà•ƒC˜zvk¬û J Ô‹9†žd~Üc 0oLÀ„á †pÖd3ËKŽN¢øc˜&¾±<$Å6Û¥m¡(1ò†ˆÍ1ÝdOi­Òë§tZf·E^Zú&­!5n L©¶. cª­ Ô?»¬éD€‰­,Ïg’‚žöð ÓVÐrÖÖ‘üïI™—jžŒÒë–“Ü„Ÿ3?1;ëÇ„ù¡&Å‘ÆùÐV*kfɘè28ÂózØ·¾NŸÉÆô48Q„œà@ðñdˆ3 + ­I¢ Ãx~ƒé!('åúsVWèE A‰Pdk­›ÎîÞb„Uõ¶¡mZg´(+E‹f“–¥åÞU5-ÔÞð ’”“”cô†]“ïù¼VŒ#Ös?®‚ÀM‹ÖœÙæà ÅÿŽŸº¸Â€¿nwW»¶Ü\©{+<^ñpT ¨<"óCmGÆ“ݾódÌDHÔ8~ $¤Œ1‘z8 E„™àIØ߇x U‡Ÿ‰bëž &ÖcD4ŽZŒ5@%“Ã`;Ûk…Û쫶ØÒúzµ–±›™ƒ †®ªˆ@ñ‹t»­³¦¡SÝ)HŸNººO•¹œþ…Q›™W•®ñ+xÍ€§õM{ÈJ$«†ˆ€G9­[^ÄY,ÇÍÞëBa¨²á¨|áÎú‰Ï¤UwgX³Áö‰a¹XyAu•3}Éâ`Z÷&= ?ßfŸ)'Å+Ú‘Õpe¤Òëù1h Üì1³ÎÊŽÇãî‹lÜŽk긖èF$Ù"D;Hoߤ·L¸nä$gFÍAò+ÞBs^*1JkEƒ!V/5W &µÎŠd‚óür¦pYÝ» VÁ>š¥p°ð«¡ÂÈqŠÄÀ% ‘—fÑ×Èqz®E,PµA!ìž è¥H¿w[•; µ±ñ\ç~K¬®*ÇãM?1ÅŽÚÆ\¿ÆH¸#bz<ù&Å|2ENiD»i³§•I´!©ðQ!MPC¿à(1œõhœ'ñà R>G1Ò‚f‹c[µy«&kÌ0óânÔÌ¢ö¶P“ š?îTjpÊ©Rf[›òïÞ¿};Ï)¨¸ÝXE=Bˆy¾.>¤0Ç!^°<'Yõ~qt?@¼hú‹/?¥‡c‘Ížhøå³Æ):·ÄñðªIGBµ†9€#UªÌ*žë'´¡Èq@Ô±7G]aÎL¬¶7e;7†Ï¸Mú^?@{›_×)l sZ+I'fIH"ÒÁQp|“—›¢Ý‚LôݵÍ+¶ÿ±‹"ŽÃ×c¥[l×ÏLØ î@ñK¨ÿRHÍ•ó7º |„*‹ì0Þð¬¦úòŸÅÝNNçÔ”¦)Îßšžàx1 ö·QösÁ¥i„:Q§s¥;iŠ¬4|˜÷´zN~:T\è{_ÒÝE>2P‹cßUWEÉR«Ià×X‘YŽ¯QcÁ^ÅàÅP]ÕŽ¹p™¿%£Åw»¢ÅºCW 0ªV-2ª‘9v7™jì-ó 7Mþ9«vÃl´¸[ÓGXFÁrñ¡¼»nž|üØúîKÆCpæÈ3«†¤±x¯Î;f+ù¥±€Á{rqQ>™IdŒuÞ½>½Ý]æONm;¢©³Óç¢hF½a¾V÷¼ :nŽw ~yô¡ÍUh161}þ²¥ÙÚu¡‡Ò æMh) E#¯™¾2ÿO™kö¸{ò %ð{Ûõ©ãSdumm÷]®~dv³ç^ž}õ/k{î + endstream + endobj + 104 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F10 76 0 R + /F8 50 0 R + /F1 10 0 R + /F7 47 0 R + /F12 102 0 R + >> + endobj + 99 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 104 0 R + >> + endobj + 107 0 obj + << + /Filter[/FlateDecode] + /Length 669 + >> + stream + xÚ½UM›0½÷W¸‘Ò’Ma±)é6=TÝVU-=TË*eÁ$–ˆÉ’íÇî/Æ6VDªzlÆoÞ̼±i˜&X€Â\‚÷îéÐ4&¸€€#cb÷õÑ@Gh9ÚåìÛ@FÚI³„ý‹Ïä–ùùâÆýtzpŒÉ˜ƒ¼¶ ÇúØ4]‘h ÛÈÒ<átg|eko…1…yx¶ê1 + ‹¼&†ž“µÆîŸÆ݈a,Îyþ¹öiJê Î + g³ê$4#tƒÅ/}$h?V·Q^"Tlûa8_ª:ˆ´ž“fŒëÒ9&¿Ësr’ß8‰yî˜g^¬ta`c•q#ÎuH‹”qs¾Áj]e!éõî6$ë)Jª;fKw„Ê>HGxPgáˆãT:váú[܃Èõž‘ W»ÅÑzr=HÌ¡þ -†ý°si¸óaç˜Y•ãT“ Ë3!°«_ÝùùÌýò]`œdK<çatY?J¨kRºîÔ§P„«$ª*¢~ðìö`ÿ‚Q8-)F Sž¤¦MóLXuþšÜÈ2¶€­YžRÙ„^?|#¾û©çÑžl 3¬gt맪G•ˆú;1ò²õÈ1U øx”$h‹&Bã +~㮣´¯[6ÕÒî—$X6h`ךœTø´v½ÕŠ3V û¡b÷¢€õû$áQ/Âh1ÍÔàMÕ³³J¶7…ŒÞª8îó¼kÓ[]#ibÆTš³DÞú›`)߃¯~XQGsÿ»TÃ>|yÀºìÌÖ·TäÙBBj:†ƒºjöI™u¯#M¨N7+ÌH v|¶ ²ÅTŽ™,ö!ÿ—¼º]’‘de¿úÔž»Ïþ·cp/ + endstream + endobj + 108 0 obj + << + /F2 13 0 R + /F12 102 0 R + >> + endobj + 106 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 108 0 R + >> + endobj + 111 0 obj + << + /Filter[/FlateDecode] + /Length 2561 + >> + stream + xÚYKs㸾çW¨æªÊâð¾’“½žÙrjÆ늽»µå@“… E*9ÿûô $ei«rF 4úñ5´ + ü X½¬èóóêæéãçh~®žv«0_…±_¨ÕÓí¿¼ëãq½‰2O·µù±ÞÄqì]ÿ¿?uÇu”zo¦}ABä=í塯e‹CcÙÀä8T…Æë?ýããçpf~Dr6 >\mTá糨8œDe‰w²’NR¦œ$BI0„’ÜúÊ®/˧~‘ðú~¸Þ$iäý|ÿ+Oþ¼.b¯×š½íH|54­9”ƒéZûb*ÝZÍ2–º‚Ý'ñj¥~T”ßÖyìéÞòTÐJèGWØRÞ}·M~_G¹§øû̪íy8 + ‚¬6aø™‚oæ¼wÒuî½õæe‹ Ę(?JàœqLLoOÍÛÛÄ~£¢…c¥Á…3ø ¬B °‡à + ~Â+Ú àó:DKÐ{ìvÞí+î§ìõ‚§ÛštvÅÄ»¶òù@iâgœ'öC>OR°¡<‘¶ÇFsÿ¡)+}ÅíÇÑ BŽã@txÓÙA€™}¤iæQ†°zÉÀ¯×$8XÞÌ'Ö|ÿ† + ìZÙ¹3Y4s=˜aÐ5Ó†Ž…V¨ýÌ{ãe[3¹6vèÍóèvù}M·ù :80&mÝVæãw;0yL#Fº£Í°%âm˱@”¬‹Ô}Ù¾L¾gÞ“[¯í„µlšnº/]Ë…D‘ŸçK |PeRxÿütýõæË'b ?E®ÔOX…O{Ø¡ + 2ï8ö¬°Î + ¤‚\Ž„ç3DvDT)öå7ÒöR¯tD:.83XE‰7èÃ3Ëáßo4z]/R‡½îyònl+4>Œ98„×t¦øÑêÝØ f‚s-³gä³g䡯 + ñŒzÀ{׉B?‰„Á´¼ì°§[ =ë.4”ûh‘º;@UÊ™Wè•ÖŽ½pj1¢7¼.1ÒiÍÀÓÛ(I5œó;Þ)£Â­*±#ˆ)îÍg&1êÄŠ¡ÇV¬ðì;†!Cö¦rïÕ {fB}ãR:²B XµÙId^ÎÕ†¯«îpÐ}eÀEz'#m×nÎoé„ØfŸG]uazÃTT„·²b6¸8¼c¯­îY›2¾#©¹S'PÊŽ#DVΟcyóÈÃÔW\©d.6¬f©÷¢nT¨Ujg"ˆ ÖHóuMFLæ†ÞëÞP„v\˜&É5 }8»5µî)8#œO\èÏ<}!lº°˜¬¢°|!ÊZbÎó"‘WYb_ø?ê:JâY×Q’xLT¨*ü|3¨Jl¡Ýãw»uÆ×èÝðN¥žš/yÐe+ ûràl×&›Ï=ÍÌt @ÙŽD7Kó.9÷»³S¬±¨îŒlâ`uÃ~e™Æ¡‡l%â­=(bF‘g˃k¡RÐ\!”Þ Lk†üæöay ™:0¨D·ºÇà…´Áê|Ï¢vÉ ΩŒ®A’ϤòKIF[óÒºTÇv“å˜@²”é³)Ó_°‡ß)}cŠ!Íè†) Ñ”ë"µðSè2a¸ëkò8 ‘7iœxþò&adN– 22m?rÛŸÊ3ÈVåÈpîT¿<]H\œ>cœ£ÒÐk!Òb&Kã‰õBº&oƒ Ÿ¥¶îcß½ôå;¢iS³D°aḋ­åAÏ¢¬D*75‰0³‚†˜d˜ºì`¹ÇžÅ-axϼ€JCب¸ðn(ê“#kÍ÷GäøÆ”¢ËGaݹ®/È“å‰ÿŽ”T  ÄÔ²åÆì–Ðk¬¹%& h¢bCªCpdvq¬×/e_7ÚZæ4 Ÿ±Rðþ™–)‡P¡,bÎÎòº×.݉¹*‹±J§„" ·´òåϱ7l5<î,´£ðß}CõCúù¶äç^S‚t \.Zó…Ⱥ•9ºœ›~Î7>ÇQ !¯ûÎŇSˆ‡_L xa¬¤:ŠcÎæ1–R;ÈOm%¡bs†CA™×_î~º¾¹ûr÷ô/z}Ë‹Ü~ú|w÷t÷ËýãŸP“q¾@˜Ð)ÇÁ6uf"Ñ™‚Š36-©J±O ˜ˆ„¦Sæ唃Óù2ÚÇq$âOÈù™ß´–ËsuƒwÀža²ækôý$²¯r9 ‰.€sчâyû®¡P‰,– ù?Î5ƒLE_á…7³¡3= ¯”ÌRÁÎR² T|-Ñ>^i–CµæR‘ + ŠzÀ2Úô¦ ˆ}a7õæÐ j`.6ÂÀe3P廑 + ‹7ST€˜ÇvŠ4¸\ÙY ¬ÇÞÕ¥I,5H‘r~Qšä—Ñý ƒ¨§h©†²#4E¢=Ɇ10#Àk "VR+Çv{û>A:S°ÜTCG½â`KE‘5ä´ˆŠ›Âè¢ÚSBЛƒ'÷É1g%S0v½\á€ol()¿E„R°„¦„Ç°Š‰F6TòG®CË–/Ö]„3¨Fëp+…ì(S + ñ»ÝrQ>~ÀB–þE7ʤªÒÇ9àAcÂ2Ø1;æ|£ø.Ó¦z'WX+DùIÅÂQAø]–@8w3Ä™Q ~‚¶–õ…Ò^ÿw4½èË÷k§À)¶|cX8;®Ò”„a–Ø+å×, ½Ý~]}Ê!@þÒ½B}@JÎ7š¹ÚXÎŒ’ɂ±9‚õÉ3°·v|Â4w6¸¼rþ.o²%H¢é9¥(°77דè殞D"=«ÔÜ^>ºHôè„M`´.C4Öú‘ùÁØ!BÙFÜeóî/@—²•œA¨ºl_Æòå>Æ÷ËÍÛ•®oLxÔ”=?pœ#çò Œ´èV å(fÃO¢H"‹üwå&6¢ ÕjÉÎ4cÇ_¶é\]¸Ÿ³JFellêU3ZÃGTDVr;Ÿ‰Ÿ4¬â½9òmaÉ2Õز4 + ‰ + rËLïfÅÿ×Æ;÷ EOKÌü¯–9±Pv5LÝNXPJ>Sú;k- + w qÌð ;%&G+øHHP4t½©èZ¢mÝîq\^Ò‰¿Èrjj´XÿžÙ™núÓÓ_þÂdá“ + endstream + endobj + 112 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F4 25 0 R + /F8 50 0 R + >> + endobj + 110 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 112 0 R + >> + endobj + 115 0 obj + << + /Filter[/FlateDecode] + /Length 3024 + >> + stream + xÚ•Ùrä¶ñ=_1¥—PU—÷‘·uv×vÊ•¸ÊJÅI”hÍ Ë+i­òõé $gHíVž4F£o?§}¾?|÷ðîSt¿ χ°8„±_&‡‡ÿôÂäö>*äð¾ÿó_oïã8ö~0vì†Wžüdž“=üé…~Zî“Ò/ho£ÆQöîö> b¯`GQzÝ3k}Rµ¬»¦ÑÃÑÌ€þlêÎvð9Î0=Ò v—ÁL­ö + ¯«Í(k ̬k4ÀaCeÚ1îá†!ßp<ëÆŸÁ ÀgdïññÇö6ʼßnÓÌSƒQ0+¼‘ÑG<ÄÞà4„e̓£FeZžR×V(%7¥=<{9wV6f¬µ½ x•¶æÔªQWwø‘§ìöO°”{ïG8£…!Š¿x‰/‘^^¢\‚â ðˆm""$Ú„«P<² + ¾Z¦±Àe[è}èèŽS£él9ÍXÆt­•ÕÕú6)Ýfj+Ï oOnq”€¢ukµº'ÞÏ Uü±|ÞSñ¹Z6÷ ŒÒ|dñHûYr?0î±[³PíäÄÕc + %A0BÛØ혇¤ôT]w(‹:«bàØñ÷‰ùæÉòî0O|v‚ï*#JDJ:‹H;¢GpÃO†X숫)þ«‡ŽÏšuåBá7ZçôObz“(D`°§Y¹~Ä"ÙàÀT‚fž_S‡2ÙgŠv®,ŠÏoçÑ ¼(7h»V¿eîI‚¹ÿq¥ n ð?_F´sœµ$ˆ;lj=wÃÈÃ^Y«NxEœ¡îàw2"sÁÑLª·JFž„%½6?áÁCÇr¹GΊ™³Í{Ì\âMÙáFyê}§Ž¸ýó²=§‹!l‰h :—"eÛÏ÷†ébû$‡Ú~ƶŸÇ+ø¼mïé“l–gÛ§]lï£aÛŠxmû@ô=?!ë$šb#BpwÃY´è>.‰¿Ä ø€‘MgG†¤ xÁÝP‘pÊÔ±âÅh[Á~ëðÍgFâ˜Á˜ÊŒà(JyeæäBs‰Â{ptâ ZÛƒJ±Tnp -½wv¿Š¿ìË]3Å]VhQˆ¡xGƒ÷ͼ³iõý U¥žj}uÜüŽ5wÐý ­f³çåÉí@<@âໞ»¡!ÀXb"-s}4èJ²ÄÄP‹?4µ°„©ãe¹fät«NB¯Ÿžjs$VsÑ_Äq4ídÆ…°¶eпK7Nr9œhµçysÏŽƒ2§3A€¹HHêW^~1ã™÷—æÈöˆ +9—e0å>ð}$Îhhö6ˆ ÉÔýÖ9ôèØè²óøöæ‹®íã-΂åxZBÏæüvàõCwTceÿÀPaAÕ@jþR™ ڮѼúþ½~e¨Zr÷f^Ø + œE€9J²)ÆaéÞFôvð]½ÌXB¸Üöa¬¸—ÅËX’¬òÜmšw«iìƒw¢ÕNC + á†ÑK”ÉœréÑ9 2–¬,‘ƒ)#JWœËƒ…s„!çôeÏ‹ ç”…ä¾Ø<רJ;bLAµ<ï0F¾0·ýpréP08E”H!—IÏf‹p1[7jø<õh_1"\WOàŽ‚A1ñ3òÎ÷ÂØ¥BÈqªàㄪ‹tö„=žç´J $®0Ó¬Œ=vÓ¨€‘ÿLYiÃv[]¸\xšÅzèôHGÖy,ç/eèí8`ŠX¥÷^2j²Ò-ï³ëË3Öâ<—Œ;Tó™&2i±¶Â@µÎßÞväLj4äÿ¨šnšýÌ;!†ŠL§£ß3d<OÌ ào§¹ðâ.”'çh‹(×jââÛãã_z/r³o¿¨¦§²(-Xkð»˜JZ¬¬—H + © Áגø’qM{¬§Jó¤¯Ñãï>åK='pDm^îÀH«¢9ý84ôæÝÄ 3È*Æ••”—'y‚iŸ;®lÄÚ“8“kbèý¤ˆ`ˆô²Ã}äÇl¦ œùAv˜a¿¾IëúrEìîzöÔÔÛ‹~’ ÇÁ‹ýa²,ÙÙ¥~XÈúÄñ2‰SôȇáúUDG~š­]ZR~‰×ç'‰_ºó«±Úžø[¿ãXɱ#˳€J®º‡Rå#Ñ ªÜö®Yâg©;{·Íü¢XŸVz?SêfÇ_Žƒé)š§{r„WÍþôÕó–2ˆÆ]“*C.Ó99Â-ò‹µž‘GœE>´Øóp`é9T3‹‰%Q ŽYbÜb½L„=­ÏF—Pte3ÚÚNè¡»‡õËfSéçËûl¤âN(_nÁîŽ;‚spæÙV + ˜Îùy¸–Ë¿û6rßqBÉÊÒc‡´¹j±x \œ¨ÇÐNý\½ŠTy>ºW˜k|\ÇxÂ`ÒI`–Ãq²ÖY±wÑïa—Œÿ’…x)[æeÎHµµ6ã6Z–~˜}Ë$_wÉ7\€Ó]rÎé_ΆŠ§3O1¾¦›•~}Í´?/–§çH¯oì2IHc¿(/2†Ž3âšâQÉ…8$Š•®b $® ;“?‰]E•\(å\(1©€.î9ƒ–ÿ—; ¶î$.Þp'Iñw‚uŸ¦ky°Ør¯šŽ.,;5ð͉|Ìú•±~ÅWÒæ + %–Œƒœvµ~\gV i8ÀmØçVdJ`[”'t{ð@7<¥SÌÉOFõ$|À&Øqqv”‰åÉ£–]üd˜ø,‡ôäâ(Å­®Ÿµ¯'ÉÍìäT7ÎÑ»žÞnÙÒKaÄÜÂÃï ÝÇVëŠØÃNgÇ°sWWÔˆ¥¹yb Dú–˜5CÊÏÙ5!–N OHrÍàú |œÞKI­iX¶®×º“›Š\0¿Å›P‘pï…ÓëÐù›Ï–³n×>^•6¡˜{†2Cª’×¹óY"½te°çЮï+.æF¸¤óLšº4å¢0¸¶(̦¼qý ÈFX¬qæ*Bµ,„¹E×–AÝê YX + |Lh©*ªq²ê5}1Ï¿·lt/r# _ƒÃãDŽ}«]t2m+ˆ‰»Câ•¢C´—ß4WH‰$ú{ͤ(]µÓ#4ÀÒ–9_„_ÿþ9)FlxðiUãРô˜Zê‹G"ŒÈÉ3Úí"Ø5¨^a£¨6X¨ît‘D»QzPÅÖÒ–qr%¤ÜíΩÛ-¦2£°þ ÎuˆCëlöÒºÙXI×E®!àŒmM|Ûh©êæ–h …í$–A%äý =k!‚8”¨Zr[ ç&$¶b/d²Á= bàƒ0Ø –¸÷:ÚrÇ;nl:‹Ú »°”â=÷>[ÞšqÒTYöU@£9×`BúTA¤ÐŽY‘?„Z°üb¼ñ±„…•IäÀrXþ;‹ƒx‹VêLVxänxLÚ—•kß夲°¸è;`¼ð¿’c›x2§Ïøsó1{zœ-ýSBU$cÈ0ókD¨¶wX8¢júÊ!ìŠb×øxìç7$ŽÄóŸ3@XÿËz+Ђ¦ï]ƒ"K‚UµŒ:þ7,ñ©3ÃèQÁh‘÷ÁØ#”Ò ÷Ó(ÐÍ&Ó]ü‹ç \%…¸j?‰ð_q®_¡3®©ÂÇ:1w`|à@.šQ—&M ”ñj‘»¶ \$¸ºZ.ÿopxk*0ÞJÎë¾ÒîǦ–³r/IéCì?i•Eä …o‹#¹­tÍž¨È%↙ òoËt*á«ðP*…åAdØ1yˆé'>;®=ÔŒÆuÊàþi¥ì@q˜l%Y0©äR’¸kÖ4\.–ø¿*¡‘Ùw¦b(NæÖ!ýïÝéƒd`R.뼊˜hª;ñÔuªæßOH÷ãÃïþÒ2ì[ + endstream + endobj + 116 0 obj + << + /F2 13 0 R + /F7 47 0 R + >> + endobj + 114 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 116 0 R + >> + endobj + 119 0 obj + << + /Filter[/FlateDecode] + /Length 2678 + >> + stream + xÚ}ÙnãÈñ=_¡·P€¥lŠÇ¾Í±³q™Éá 0ˆóÐ&[³<´Mr=þûÔÕë·]° + ¢Ì Nûÿ<üewÂ;QvL {xÜâSæ}ûùïßíS@qÿ™q}øú·ï÷_~! àtŒÓÝ!HŽ§À¾ïSåµÃþ‰Wë=Ð÷Ê“igº)xP”]o˧¡78O½þ"ƒ-˜zùP›{>_6qˆ“Ø«MQõLTæ™pXF’·uml^êªzå•Öá>­ŽÁ‰ˆnÚfqX@\Yæ]m‹×ü^éc O#%1D2ÅÑ_ËÜ4˜“ï ñı-Ÿ/{`¥g MÛÃùŽN"B'`cÛ"A Yèu,ZVp1¸#ÄðD_¯Uid§oå{‘Ý #.meßäCŽÀET¡®*›%±ù¬×á,³P¿â5h8ÑEÁƒ/L-+—ò¬º/Û¦ã­@ѵlï¿£Jø OL…ÄT‹L#l{vKeÇ+"“#H0Ù(n6Ê„ÃRþìp½Éñì¥)sôÞQÝ –,àØ÷Ú'°é!ïy,ŽV%²m+^`=ÀÀ]°&gÇσeqà¢3%9å3ha-ûIâq + ÌþŠSÃ3¼)Lü™ ¢€Båý¹ÅS/h³(løoïÐ Hñ ›Ltž›kÏÁ™\hê4*‘—ÑrÂôËQ7ÏBÉÙ‘Â\×lÜ#¿'5±£Ná"và¦æO¥í3­D@@;€óÑ2I¨‘Ÿ'¦ÎòÉ‹×÷ÔÙõrK…†ˆ£s[U"*:ÇÊ€™õ®¬ˆüqgr NÔÄ2„Rµ ¥a8 ¥!(€)‘Ê`øÀÑè…a”zCS„OC§kãŽÎ| æ]¯{Sð)ýDþN\±ê¥vM” Y±#ë:®@{†OS>´ºé®`¬¼ÊqcjOàLKD\±`d+!­7"J#²c‘³JO\hób'|Ý–Ü£Ù-€Á©wf$ÂŽv‹5xƒ±‡Æôòjà 1‰C…Q‰‚ä†öj¹óRÊUÛ¾‚ >›ÆXêaçbyÅaèX­±”Ø9/èExß„Œ)$À·àSSµºàã#÷‚8€œšBÛâöÖ”[ + ¤Ä^"t[Q¡C†ÑB}­ õ–Â7”³ÞTÈy¥KnâLåwa‘fÌR!rz±qB…lœ„zãÛosÌ C'¸äZHˆºï¹Žƒ ®¨A¹w7yÎúñ…³)v1–«Š)……h‘æÚ Ö—‹iøØøxÂ#âÁÏe³ù®ãÀAÖAaF‚€¯³Ûˆ*I!QèKû.󠤑‚¯ßÓ£Rznwtð<:kLºnAæºnAö†6©éw{ƒ)xÖ²œwɱÖ\¿`ïŒEˆ3_Œ¶äˆ»ôš S²àžË{+± ç_°=Hˆ¯€C ÜÉRHPËEçÞØ›»ªÊóÿ,È_¶C"?ò¸Ø˜bH䫹lâ`,”dp£~û‹å¾ ‚È–glXqψ5½.+yÐÒÆÙáÒÉÚpaÄŽs›rl+‰[9JïÔ£fgÂOPƒiýŽ[—ÀÊ ?Ÿ¥^bmhäì7z^ [¡Xžæºm!¸ì:tãÑÔ£kx_µ!„év< ùäCP2ßlâü¹N >*},Íúzè5¯ ceÕ–`q)‚pbMá}&/;³Õ”, @O¿ž¨0pÆä~ ÂÁêZ\\\‹æŽ›U%>4ƒ¶m%#ö’lÚÚÊëÜfBà~AÄ+Ë_æ?•D®­AK¸™è1?p£H ‰6؃ÅoÔrì%â– m·¿‚à.?ôÚ®3øÇ'5cšU‰Úl3–=v "¨QÄ7݃þŽ;¯S¤T‹^8œ,¦ÈÝ7Qu ézÝ£“¯y…Å™*"ê~~øÃÿAzÎ + endstream + endobj + 120 0 obj + << + /F2 13 0 R + >> + endobj + 118 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 120 0 R + >> + endobj + 123 0 obj + << + /Filter[/FlateDecode] + /Length 2479 + >> + stream + xÚ…YÝ“Û6¿¿Â“—“gv]}RÒcÚݤ饽ÎdÛNç|\I^ó"K®(g/ÿýá‹e+s/k + A~¸›p†›— ý¼ß|ÿôÝ»x…»2Ú<6Q±‰’]™nžþDj{—QZïùm{Ÿ$Ið£±c?|åæyÐðñ履6qºË‹Í}Zî + Zûv·½WYüf`†éøw<¡žÌØÊܯÛ8ô‹LìÝÕ<ì—‹Ê ê‘õË6.‚f°w@Ti`<©;œüºßòbÍ?ã¼O Ú›®ùë0ô''^²áaÞ»ts&‰Ø$=˜¤ªË©¡ÍFT!/Eã+z ß±ü!.£iFº"œ5ãG` ‘)m£­ Q_ï/®¤©Še{…žñoÎè + H—“ñÜ 39wîœäñ©•õ¼$ Ìh™°Ÿx·çŠü’¹™ù¨eçCóÊ.wëñà•â„ó9÷Û;&]º¶±vrvå¡A눣|ņÉNäìÆ:î¿.fh\ü:g.v‘ïË?œõH’›“Ü9ó è@;3˜û³Ç88à + 7•/R0x^šßú rýŽø2ù R8dr»#ß”Ó6ó3åòAöWˆfŸ"#Ñ…{’@":¤²Éplá®MÕØkd‘E7hÉšPòõôx=ÞÖ‚ÐZàWŸÏC.Æw„¥i(ÊZ0Ë` %O€Ð½ ‚È«!K›ÔÿÑ•è' ÜóÌ„×=…¦`…Z`ÅšF‰ÓÈÎP™¤þ‰ß‰{}èªöRFðN§¦ÆöèÙ¡ + ôa$' P’0ã ÕrÃ0u’¤˜òð¶@ê(2@Âd$À›î…™D²b©Ü1“táKË€a\ð—Ž2¸E=Uø¨‡„¹&Ä›WB!{X¦1Ø»8úÈçAxÁú “%nW¸úÓ-¢@M7ôê’ewå¤àuMW_Nü%UCËkæÈÁbo¾¿÷rSä(Œœ*GR* %»âhºüp—À,28\_‰×²¦%ŸHŠ¿l3pˆ„NîY>q©b™‘J2ÂÉ×~ép‚N3Y艠忣]fÿoì&ªÿ.uÂìn‰sÈÙ€ ÿÿqéÿRtåu nÀÀ7#1‰èâ¼Sº‹}X½¨ÄY?Éb¯àƒGN|ˆì5óí÷R¾ÁØÊòk´Ì"Ά¸š2‚°IM±XË€`…ØeBö4cÃn¥»H-\²ÄiA¥þJ)„.c„RóSì'Œ{T:ȵ¼~®¬€‹Õ²ŸŒBIFa1‹¾MFá"Ý!Z€Õ÷#@UWSO¨ú4×¾®¤ZZë F„v‚Í‹2ýÑU||k°Ù|k~ÍŸ®ò÷·ˆá÷:%8àÐpÌá‚pl¾š"©@î¡L¸‘{(ýÒˆ¾Èü°Â7!S;‰Ñm°­4 hšR-ì Ÿ½ü²w–ùdo yÅw‘þ󰳇žV7'žª[ æ™]ºŒT®”¸Èí{ \ioЈ.ÌMwÕÄ,›+ÇoºT²]‘øÁþÓz=“¹Ú5#;Âa?|æÙVlLUõØÒSejÙcÂL´03,æ>_Í[ÜÞñq]’Mi–¥W´( gSÍá„!HÇÁ ;{ÖCÓMÅOäãc*”:—Lãõ>ÅSDíÏtžWÃ}ê´6bk)ßZi¸´–e‹P§Ì¼RØ“Ð|Õ>©ru[áß{šû½©eF‚Oà£B ñ€šéØ Þ§Ð(=+{zýxN)ž=wk¡ø«y‚Ab.¨úûˆçá^q†ÝLmGœ{Ý?òõ'j`¤ñ'»uA\²0*ó‘A¦u)¿}L ¤¾ptê¬ò¹×¯W`íVÆSþ€áËc9°"¨ˆ\tàn»txTÆ«·WR + lÚ ¤¥^„R ù‹½w‰r }¥dvá¾É)WO1{µö‡fp-aï0êÿ=_@´èBþ!èñŽr¨.Ÿ˜ ”*眃3ËJ§÷û·ô–õrlø + /ÜgB¬Ú7¼Ì Þï Ö— zsÇW¾®8›jÛPÀÛ•o‹>*ÅR¢'=-ÈS’ÏKéeÈÅêÊJžå®1}yÈî*ùœ$”qĺ„àJšçÈ_ŽºXUÏŽ¹å2ò -_·¤ptõwÌBjšL¹RÂ&\Gïá*\‰׋D|~¡>¸på >t\N¢ûå82Ïå82r&÷V®qF‹r·àBÖ™A†P›ó-.ýY¸èÏhU™N«pˆcñhñ¤ÏÐöÐðÄŒ…ô˜È3¹._[ >l;' ëA ÌçA…okµœ¾!MÉ vºØs—$“ÊtMq¸‹c¾¦˜X–kzhÚf”§’)>“Dù²ò뚦÷ûÇ®†lzû±o½³4øtqÞJO,`!mN ‰’3'¹÷Äœ`ö ^†/È)?óª¼IÖyR¿jºéœØ¿8#ôRÞ“.0÷–1l)R7,¡³£¼0ß|,,üDÊ|(¼¶\®YŽ'È_<9à{@+S‰RR\ÿWÁi + fà§Nzsšt†èþV˜ÁÔ'—x¯aœ ôÏoŒþºèÖ¾~£E3´]ßÕšþ×ÁŸn|mâ–0›Y“Óš.ø¸vz‰2Ü*÷Ò:?'eë…'øŒ¼Ëñ³ÕW°Bssóøô·ÿEmö + endstream + endobj + 124 0 obj + << + /F2 13 0 R + >> + endobj + 122 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 124 0 R + >> + endobj + 127 0 obj + << + /Filter[/FlateDecode] + /Length 2597 + >> + stream + xÚ}YIs㸾çW¨úªÊv¸/™S·ížxª—Ck’JÅ9À",!¦H…K»ÊŸ·E©O€·~Wþï¯v+úüºú°ùËÇpø7E°Ú<¯‚|D7E¼ÚÜýË{<®¯ÃÌÓui~¬¯£(òÞÿ•¿·Íq¦Þ›©wH½ÍÞt<ôYÕ84¨ + &GA\xA¶þ÷æ·UÜ$Åê:.nrÿ¶ÙÍд$öšcošÛ‰WêÎìjÕkîvÍAZMË_UUBxæo¿×åÖ[”„»IROuL55®ö}¤Ö(êõ7ëëÄϽÍ:½†·Q6V é® ™ž*ËqÓÒQüÕ5¨)`5õ¦¯4.“ç^ßÈw»É ¯2]Ï$Ú*|ìN»`ç¡oÓÖ¡gêYŸ2GiÃ$Ó%ÿ¾Î#O·Ìû³L¬ÌVפèÔM]8iø`%T“s‚d~0ßw7ЦÁ¬O°bîi*á,¦ÞÒPì=·Íé¬Í7î4°Ý–›b îð7ãâÉMÆnðO<@3¬¯ã4öJDa‡§ 'þŒò°sÏ&D©%³?>Þ×eÓvú ÉûîX0.2ïØ6¤sSZ^Ó³”mÃb”A­ãèkO^ÃOC¿´·vV©¨·0fóbHL^&l²Ü5°8&c®'«?h[Çh†Ž GÕöFwÿ&ç‡éú‡:+Þ Óºâd¶ŠŠ…%”Ñ6a‘{­þnô+¶ Š*¤õ{ÕÛ––†þÑ3Ó# Iâ°"uÕÑjÈL|¢´¯„³iwª6ÿSlC”iEŽË©¡ß7­#™ï(ጯ–UY›É³Hóè†âu½ªKÕ–3WËæ®A,Œ®ù…Äx<ª®S;ÍZƆ#÷)È¡‘m’Wôº¦-;‘Ù1»bî¸x+þv}Û ºXg-ómÈ-~ôhؼ¿¾¸¥@¶äã––ÑŒ>W¤^˜°þm!™•ž¡Xü|P[ÜÑË鎕£ìÈDpfÍE…¸Ù§=wèÖ:I抧ËÆL}"ä4x'u \y_ë + -Z€™kÍIo…D)nŒ"Î=¶Å$utI}8fÏÇ2ÐßRò·bÊ«‹äŽHiÂ0†˜Ú\úü´Ó6ÃnÏÕ¶ªÞ͘ªÔ<Îaø¸î1OŸ¨Ú&RÜúntC =<Û…óŽí±ìz,IU­VåÛÒý$:­>Vj«gfw¯D­à6¤ûˆ÷œ¡ƒp˜ž{Gvìö`:©o@¨rD`4ZNzÃd ´¬ê/‡Fd÷…¹¿ + ìë ¶ØP*É + ),^‡±@J]Зv)gÁ··ÓÏx~˜åq˜L€ ²8Ø"Fê'‹Ç°³³•˜NÕu6™#:=Ý´L«ÁëµqàD¢I´†EdÁ4f¿V&$FÝöó1Ðâ‡OpÇb[;+ü$QÇËD£h£4wM•`O + ïöëç_¾üÊ(óîëíïŸï¿l¾Ñ´Å¬ <†.x„ζ!$ûd0Ï!Œ:ºc-ÆLñd8þjú=·Â"oyjøŽYZ]iÕš®¡.yB,VG¢Xýj© ˈ‡Q| ã¦ îSYDò„~¡ó˜â„ádFÎÙäÈp8½2 Q’/Zï8qìŸ"äÀ‚Ad·¹âR~Ç2®Þ™­ÞИ `é↠1‡ýµ(ÌRçZ„!cg^r«Vn:æî®–GêM]Imc„€†üèÀ4Þ6:þ^:|ç E$ (r. ÈCKÉeK¦¼ÒxûÂ=H£}g7ʼneáa|黲¡:fM%Ñ>U$iHÅF ÉÁfÉ&òþ€ˆê$ŸJʌܙn[)sº”‚1IÌOE¾¦/Ü«5Ó!ÇÔ69×3¨…FŽNâ¬JôakŒ>ÎtµˆæÛmÕ¸@ñTðx)Ù[ð˜…c<,Þ ø¶ž¸n‰½©ˆ&©­ãØÉlE-yˆÓ =Mðp(€6¤ñTŒÂ(ß„ÂòîV¸”mœœ(çž9–þ1÷FÞ¶zÇhTK+& A Š‘¶3ÖÂb2•Í“@xËz±ån’/¯,ÍÆ‚F$z{× „«e_6÷‰[óßA€.õ& Èà + Ûý ÌD|m!0óÌ_Ó ¦1XàÎ-çÀ:KNj¥“„qhÊ=ØcØ1âÎå¥|Â=a&ª ”DqhI;F†_jJÖ¯õ'~ ³ÄÓƒŒ˜îvð±ÚÁ6g8 ÿŠw¶7\¨>O&²'¡¥Ùð W•ÿºþ28¦{ajpš;»†Ž}\Bci–SÒj*i=å:.‡¯Ms‘•¹²,ÌJí³×\ôÈé`ƒ3`Å&Ý3ÉìËo"JÂÆI‘Ãj + Ž2¢ë8 µùÍÃ#ÂÎôv‰¼÷\¯ìŒ?>þ Ö´oï˜ÃœîÇ֞륕l'¡ë¢0c‰p®8á†8p áÊ»‰û¦'œÞà¢ÙÁÇÓŒò‚‡Ð¯†ßggu€ V C8/¹q~ºPßó廦»÷+ È.—Ç¿(±¹Øù]DœÍd ÙȾÓ%”bz‡‘R#Ú\^g¦%€Ã~^JcwÁh¡9 Ì_/Ñ7ï.@åt„ÊŸ>Ýßn¾~ùÆk|ý(ùh>}­Lu ô0ekR·MUV§~ÝÑKðŽû”cÁ²Ø8÷NÖÅøD Ísø—ñõ™ŒÏà9±vê`m0SÎ !y¼Ëb‡c$Åw¦ÒÐ¥ü|4ZáY˜ùD4wL=“5­]>UΧ\R â4ã‡í ààl°'(Sg'_Ý¥= SeC™c¬+ü¹±@öŽÌt„‹È{)\c€ÑOE<4Úryì3ìƯ¨ + Z“ªüL® þøÔó¡t`!öˆüÌ+J+[ô]ª,ž¿Œù¢ŸoË´7ýœ+÷ímÿÓ?Q»qã#^«èÇGsX$n‹Ï\‘<¾{ óg 3[aÒ‘IèOKkp‰|#K[×=“Þáðo b$B¢ÜF¶<\¤ì©u + œä¼/aY‘‡œ_Õó˜mÆÙ3—W€sò¹Ã?Ûø_˜ÅFù¨Ås5w*ôïÍÞ]¨M‰@WVN¯‹ùg–döa6šŸp¸c~KÚ©VbrêªH™¹*®{î×Êt¯Zø{ÙýæOùŽê3 + endstream + endobj + 128 0 obj + << + /F2 13 0 R + >> + endobj + 126 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 128 0 R + >> + endobj + 131 0 obj + << + /Filter[/FlateDecode] + /Length 2736 + >> + stream + xÚ…YIs㺾çW¨æºj,‹;™›ó,{œ7ñ¼²5™JÅ9Ð$$¡†"´Fÿ>½qéä"@£Ñèõ´X-W«ÅnAÍÃ⯛›{ga¯–±½Ølv´°Ýeì-6wÿ²ìèêÚ‰m/²ž¾_]»®k}ÑU]š3w¾ê7“@çß›¿-|dpíÅˈ–†Ë«ëÀ­Û+'°ž×·W‘gm¿=ñÚ›/üõøt·þc ?O™ºrBëÛóï/ÄØö—A´¸†Æw‰õ-P­B+-G'µ. (·ØFV½WC?t€ëx¾”~ÂÍ;‘çÀ û« Úi4U²ScXÐè·F#•éæ@;º–‰Ò$ÏU6=A‚‹œØz}Mv;£v ‰Oh¶•¥·Ü²þá#-hý³Ñ»=ªµæ•FUM^ëbÇT[S& ‡¦EÖ·EYóGS©L•Üæú ëžÏ@nöåDÍÉ-–‡•}Ô¶´¿;Ãýÿ,4°¡‘Ï7¶ò™tæÇÁÓ>©/¸€Gèw5í¶'TÚ»+KœÅ€Ø+ÈýcN1Q¸¸³ËîÜùNÀîì°n`ZiÞd¤è‘™°m„æµQ7-ýWª¢Þ‡Š’9Ö3.?ó3’¢±ey¼>&ÜÞm§â“»í2w wO{âi0Ð\ÇJŒŒ‹©=\x¨TN®Nò•D¬×G,÷r + ‡áÞ“Œ°ì†ôÂŽòˆÞàÅbGøø­DùxƒC‘µ¹ŠKýª¹gÔmTo$§òW.Röcdåòš»¨]&o¹âqT±l]ÉæCOÓåH2˜çóÔïkt*XæS|b+ æò#ÑUÜ檪˜°Þ'£,dí>É…K´l}K˜i#ý¡ :{±ÿС)Ø<4rrO\ + ´ï¢ö% žûà -Åcž¤J”L@±-¼ÑšÂ¡î‚êYŠó?iïº~s + ƒy,ºE¿=¼ÕŠÒoK09‘ÊÁKLY@(\»P&Ñ¡¸"帧ÎHò;´éPAèì -sìì‘?›/"Ið@G d—{oKs€„äÇ‘õ #ü¤)I0çóÔÁ(ESÕ¿GÉk‰‘”ø?ÍRpâž‚5©ùkb\ÒÅñi_æŠÓC§gåë\`ù"A"›çÛ§—¯·¹„B.°…×»–IŠª­>ž’Æ<c±¨4¤<çFXe±ù©‹Œ Ð<8r`?Éô«ã‡)q/ð @W%Srñh˜çÀ¸¶+ÏŠûu/ÍLv¥# >/šÅ<8ß&1LÑ‘ÖP{*þd6aŸ¬°ãââ•o=+Œ#ª×8üX°ÝÐ;NZ÷Ä]^x¹0%ô4ÍGÃó^ìÒ'õb«ÿI5ÖMé eU±p0Ȩ¿à<Úð'Žp8pp8=B*߃oj¦îm4­ fê•UL]Æ Ê~ˆ]„†F?ñÀ + s‚p 0\A9$Y¦¥fàž%Ïrf¡ ôN„*`¸Mû‡ëymEq!wâ­8ŒŒ=·ñH[ÿÄ`@!‡ÎI±Ó); ó­‡aãJaà½)åÀˆ@̈P!:#Ô”+•i + ÜZœâù6¢被ø Ž±e†™zžhóNHÀ§=3¯˜ + cZ‹ÀÌÜé*Í}`§ñ€ìh8[iXHé + ™¶~4…Êyî¾°Ãâbºè ‰½u±ËuµçÎÀªÃÔ‹2ñ«ÃoØIÚôówL½­—P^†3P³$/ ½^ÑØaKÁGÖ+KD@ÙfðºÐ®$³‡ì¼$ =@GxË ]ã1OTTÁ3œãaáØŸ` ”bÞ`q + çÅÞHXå¸r­3Bzêñ/­æ6á†O?œ + gGÿãÿ±u0Úú¤Á¿'º>Å)Aç€P×f%BÓåeìhiy{¾ÐÛRèn-x¬Î©ôÂÈëë-×¢DÝŸ`bÇ‚8¨>ÑU!ª;¸rù’AÎn¸çëë]]ϸPiÎHëÄRiœh ƒ>_Ðh¼×+üˆ9ßÁÀP”amò + º°ãÔÏÂÔ\ì– )†ÈÇÎGÚóHž©7‘Vìîäv:€IZÓMŽ®$¸ÿGx#nñÆúùïOÿoô)ŽÙ§X'ûšUŠR~æ¡<ÓÛ3²—ѪyËû눭ˆ®‡Øç39ó$¨î_©:ÊwR1©ú[UùyΓǹ1D‰q;ü.qù]â5EŽmÝö)9j¯”H•Ôµ:kY\r{¡  Ýa­íp´×/,ÍÔØ#¤µèî­œY ó$?Ló£‹Îp+[ÊγË!EÒÔåâF\‡lAŽ¨e ©†W$°Ïj›IÏ|w÷*ô\ßúRJ3 ž¦K@§ÄÔš/õ>‚fþØ'=òf~F¥JsÎÌx„ïòhÀ/fþ@N™· ?ÓãFÃÏbv\B2ONÒ×.ÐE«7¹óãÇXBÒŸ <˜ÃVÜë›qŸJ.,ÈK¬ø†!”UÃáÍójp + rSBh‚ÞQ˜`یӶdˆòwö¤HÛøwì¥íCÚ^I¸ÿ¾ùþ¼æìñ¼þÇã dN ßîyxóåñEžR[?½¬‰ç„å†N`ÝÓõDIï¥Üö”N:šLÐÞ`üAfñ â16h@¨êô™á:Ô#]q—xÁçŠ3¶B~– jbæ»Ë×ζš~êË/@(ñ#ÄršÞ2`•ýÈ’ûKÓ=ù+)F˜Ö²Ká\÷€JtNSA4xÔF×3È÷ƒ„X±«ˆŒÏŒèn´}*:ºaÈûB›©j?ó^!"C¯.ØáóÑÆå[®2\ + ¸¦Ê XŸèý…qsïöã¥Îïëúø—››Óé´ÜͲ4»ˆ÷s®¶õ /þ#¬–®#+Û¢ÆËкè:iƒË…¤>Æ@?±ºN‹îœáë£#HÚä Zäøó4Ôã|–Ë2PŽñ‘5ô&ÇÝÑià¾÷x¹õ4½OlO—Ð/¡xƒWrQÈÈ&áÊ!iC.…Ã3BP@éÐÇrå&¤…}Ÿc_TCãhpg‰ ð°2ŽŸfîø´H™c¶äVã…È ú+ ŒNÊ//„.Äxyl6`B»-óœ [£§Ú'\Êw?å묣´¼x’f'g¸°jÒ¾€öžÍlàiÚ^a0Ù*̾æ8'ö´ñ5³âIªà®¤ÊvëW©P6ã"j¹ÉL²­{2“˧„á]`N—1©7MãM—Æñ¶å¬Ø—ýöêsŸóŠ±¤4º=óHÂÍ8ž€å9tå¨Õ‰á‰ù{#Ep oøQ<ã” Ðæò wΧ#ù8…„ mD  X»bâB¢ðÉ ÛY;oô”äܽlûqýš± \ .-ƒËÖ›?ý{¨î» + endstream + endobj + 132 0 obj + << + /F2 13 0 R + /F3 16 0 R + >> + endobj + 130 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 132 0 R + >> + endobj + 135 0 obj + << + /Filter[/FlateDecode] + /Length 1268 + >> + stream + xÚVKsÛ6¾÷Wpz 5cÁ$Hñ‘ž;v“i2™©ÒKÝ™Ðd¡¡ JÖ¿ï>@Š‘äLOÀûøö]‘ˆ¢à9 å!x7¿¾—A‰2æ« .‚8eÌïþo¶ÛÉTæ¡j–úe2M’$¼yËë­ÙNdtóŒ2œ¯uËWŸª¯ºªá$NË0.'ÿÌ?^ßǨ;*ÑÎÌÇÁ4-EÁ¦D,âÉt–Éðæîîý绯ŸÐR> 7“$ + ÷H¤¡3|صŠ7ŽÍÂî½PM¼2–76eñ%ŠÇá¢Û¨/\ËÀÆHÑû©,…ddóI!C“eÁfeYz³¸;š¢P7|Xñ‚ædáÍAk9`xLÇĺ›ÝøŸì­vN5W¨2•‹º[ªô.0ø9è!~³bãn­N !ÑCÂ[ð5˜z!1gùJLhÕ,q“†ÛÎqbÉnV¦® :±ÒßC²úy¾x¯$ ë!L@4ÆÙ²ú»¶g^9e0 ×®öRÛêY½õ…$ƒB”æ+)„ŒÉtFî@e + P:“iøÞ>NXª„òHÌÊ "þƒªÀhgP,T(39 ›j£ÎLå±È/%ú`J!%¬‘H3ºø¢ìF·­6 ÛÇ:A϶jœZ2eŒ+DípÅÛ¥nÕOSLCä®G³1K½:xÑu¯qi(eŽDc ]³T–ÍS IpyA,Våï>åͽUþèÎ+¯œ÷dx`ï_ʶÃU,ä'ÂxUã¡×•SÞ£ÝXzÛ=Õº]÷Áy:œÀ;¢úӬܾ²ý¹G àoç1Øk·fûö‡fWY YðºÔE[ïOÏuoM㦷f×C«×3Q9¹ßU‹ïgÌâÍ CÁ|¿’ƒá ѧØ?þeOÈ´ì,|+ž÷Û7LêŽ>”éOüæ8ëŠÐÈ…Ì©yä1iú¤ 5³œšYšdÔ̲¡™¥IAçö6ËB + ¾ï x5J@š¥áý¤HB>µ ˆ)r²&ËüsdÀø2I¹@”ùþŠŒ }S˜-Vmëj¡Xðõ–øøˆå#„äů “bk|;â£Oò¼1¥¹Èä¸1õ9Jà+%éßÂîzÒ¹â,òžŒÔi_Tí–‚¦-Ë]qþ y/SžÅÇ*½¼Kágð’Xäùá)”¸…C½ª ºøÀ|ÖfÔÅGç"$ "ý¿ˆ.T~^Š<=­ü¤ÈŽc<)f'c¯Ï+ŸGk1Î32¢×†fl‘‡XÃù±†‘{\à LrúÚ€\k6Þ”pY–_˜ *xÒبÁxÄ— + ~æ3አ{£ìs?}צŸÙÕî—ñÓº†nŽVvxÃÓ\ò $ÛNŸþZí:Åý±Ç‰8â*³¸«E*ºø‡¦…o•Æ0âIãO¬Þiúz‚°z©6[|@I + rn­i¼áÃë_¢÷2ÏÐÅœ~b n„ì.™ÕªZU­/±‹AT­4OF†‘ÂÆ붲U]«š)?¥që›(Q ©µÑÔ§rÆ\+jÞ¸kaÒÿ óAóùê『 + Èëá»ÊC¡làfüö'T£,Ƴù'ó‚3zÿ”U_[ŠþyŽéÖ–%º¾vÐú7’Tä@>8À%ñ~þËßM[ç + endstream + endobj + 136 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F12 102 0 R + /F9 53 0 R + >> + endobj + 134 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 136 0 R + >> + endobj + 139 0 obj + << + /Filter[/FlateDecode] + /Length 90 + >> + stream + xÚS0Ð30PHWSî + N!únF + †z–† + !i + † + †Æz–& + !.ÑFšºF–†&î~¡šºÆÆÆ™Å%ùE•ŽOfRQ"â¥àÂxÿŒ + endstream + endobj + 140 0 obj + << + /F2 13 0 R + >> + endobj + 138 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 140 0 R + >> + endobj + 145 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F13 + /FontDescriptor 144 0 R + /BaseFont/OLGNEF+CMR9 + /FirstChar 33 + /LastChar 196 + /Widths[285.5 513.9 856.5 513.9 856.5 799.4 285.5 399.7 399.7 513.9 799.4 285.5 342.6 + 285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5 + 285.5 799.4 485.3 485.3 799.4 770.7 727.9 742.3 785 699.4 670.8 806.5 770.7 371 528.1 + 799.2 642.3 942 770.7 799.4 699.4 799.4 756.5 571 742.3 770.7 770.7 1056.2 770.7 + 770.7 628.1 285.5 513.9 285.5 513.9 285.5 285.5 513.9 571 456.8 571 457.2 314 513.9 + 571 285.5 314 542.4 285.5 856.5 571 513.9 571 542.4 402 405.4 399.7 571 542.4 742.3 + 542.4 542.4 456.8 513.9 1027.8 513.9 513.9 513.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 642.3 856.5 799.4 713.6 685.2 770.7 742.3 799.4 + 742.3 799.4 0 0 742.3 599.5 571 571 856.5 856.5 285.5 314 513.9 513.9 513.9 513.9 + 513.9 770.7 456.8 513.9 742.3 799.4 513.9 927.8 1042 799.4 285.5 513.9] + >> + endobj + 148 0 obj + << + /Encoding 30 0 R + /Type/Font + /Subtype/Type1 + /Name/F14 + /FontDescriptor 147 0 R + /BaseFont/MLKHIH+CMTI9 + /FirstChar 33 + /LastChar 196 + /Widths[314.8 527.8 839.5 786.1 839.5 787 314.8 419.8 419.8 524.7 787 314.8 367.3 + 314.8 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 314.8 314.8 + 314.8 787 524.7 524.7 787 763 722.5 734.6 775 696.3 670.1 794.1 763 395.7 538.9 789.2 + 643.8 920.4 763 787 696.3 787 748.8 577.2 734.6 763 763 1025.3 763 763 629.6 314.8 + 527.8 314.8 524.7 314.8 314.8 524.7 472.2 472.2 524.7 472.2 314.8 472.2 524.7 314.8 + 314.8 472.2 262.3 839.5 577.2 524.7 524.7 472.2 432.9 419.8 341.1 550.9 472.2 682.1 + 473.8 498.5 419.8 524.7 1049.4 524.7 524.7 524.7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 643.8 839.5 787 710.5 682.1 763 734.6 787 734.6 + 787 0 0 734.6 629.6 577.2 603.4 905.1 918.2 314.8 341.1 524.7 524.7 524.7 524.7 524.7 + 850.9 472.2 550.9 734.6 734.6 524.7 906.2 1011.1 787 262.3 524.7] + >> + endobj + 149 0 obj + << + /Filter[/FlateDecode] + /Length 478 + >> + stream + xÚÕ•MsÓ0†ïü + å¼ÕjeKâFHÓÂt¸Ôœ˜<‰H}ÀÎĆ)ÿÉrÓ…†2”“¬}å}ô®ÄÁÖll.ج:[H†,²êCÃÀ*VÍ?ò×›M–KÍ]»jˆøìUlßtíÒm†ÐQüm»r~^–$ —˜ÝTïÎÈPƒEs¿²\Y0º„;]]ð™od±'ëǢ콘RAlÒPÚ(6­ fÀ–{Û¡ïÇ%u»Ì|·ÝÖ­¼´BÞ»zǦhµ‹.XÉÄYŽiä/>9àO©ÒBÒ Š)a“àÎ¥@z$>Ùâ<Ñ8î¾fÒúãͤáC$¾r}³në¡Ûö r`õIäÏës)dd§1,%ŠiœV,RÂ/ßaz~õ2P%~ñþCø>Â|ë\ìÍ;_–/¿|žÎ š®sWÍÒµ½K½ñéwŒø«D Ô}ª” + ­]²Ü#ÑP—§{ÛôÞ6ßbÆÁZf´–åCj¥Â@Yþ%+ýCï%þR÷ýõP¸þnWæÈ»MÝöÁI9J(ñÃÿ©OÜyÒ žÀu¹ë:¾ÆCl×ÇYósÛ={O®ê€lwƒÏ;¯^|”¿· + endstream + endobj + 150 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F13 145 0 R + /F14 148 0 R + >> + endobj + 142 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 150 0 R + >> + endobj + 153 0 obj + << + /Filter[/FlateDecode] + /Length 90 + >> + stream + xÚS0Ð30PHWSî + N!únF + †z–† + !i + † + †Æz–& + !.ÑFFšºF–†&î~¡šºÆÆÆ™Å%ùE•ŽOfRQ"â¥àÂy[Ž + endstream + endobj + 154 0 obj + << + /F2 13 0 R + >> + endobj + 152 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 154 0 R + >> + endobj + 157 0 obj + << + /Filter[/FlateDecode] + /Length 1238 + >> + stream + xÚíšK“â6Çïù>šZ½,ɹm&™MrH¥²9lmQ plb›6Ÿ>²ÍÃX¶±ÞÃÉ€rÿhuÿ[-±‘^>?ô>H¦µInZNWÓªŸ“[ÛiÕ­lÚõdšL¶š fg“­F`C›å'áÀÓ!Žëö'^á·Õ`ºlQ@ ˜.â(»àwhÿ½æ^èW’Kf<Ù(Oeæ3$†®PB@í"Ê~ìͤƓsY Ð[Á„kha ÔŠÖ|®Ö@¥ï1Q ê<q + À6B,™¥¶¶ž7اƒž4¶Å=œJ'¬æJe{Ñ^p¾qZ°zµ²—7ñËá" ¥WäX¤å"¾î®¯e•¬hY­S>ïuÊQ(å&8*¼%`êr`á …E!bÓB<¬eøi/ñŒ·_D!–hš±¯ÔSuo„€‹f!’¤ƒ~ÞKrMÑ Ç}¹ŒCg¨³´!°ðÉÔÏé±A¥@×q + A=ò!›βÈ'v¨ œH×.–:ì]miÞ°ò³wø ƒÙ,É Ã‰êneÈ›F¹k + hj™1û r9O*™‡ÂÛ„¯Z²ƒ-RÅ`¹#!ȶŠûˆJî˜UµŠA*×=ÊÑÊr”·ñ£¼lˆb'Öc{’b!y“ô:‚áE‹NR|‹Š2oð»®¿[¹‡çO¼çÂÍh½ ¥ù Ã@ðü¤ø´*&ŠM.Amâ‚)öFSé–Öä.ë‡VÿçTúãx¢g[„8™î@W/Ò²U¤P¦êZ¦xmz‹þôFŒ”Jñ¼™³LK{OF¥Õy—Õ”¬p*ãt2H}EÐ+‘ÂZfÀÆ õ®3ü»béÙE·ßB€ácmZ  *)Ѓ ˆ¤'ªå‹)Ú [ß•SoæÅ2¬òzŠÅN³ŸP4Ʋ>hé®l™Ñ;ú¿Õ_E + a"ÚÊø„rä-õoŽ¸XÎÖ1Hv:¬f¾Ï <ÎPiÀâ•Ó .[{z$wQoåz$íœd1ˆ*ö»¹¾’JPL›EÛ]0qðô½ÿJÊvVâèzl*š6ÍJ¬À)v¦ýÁ·¸\f3véœÖ¿RêD 73 + >.ü¡ + ¼ý‘7•÷™‘ì6<^ƒÐÝj±ãG'S[|´Z"¯¡27ÝTix6/³ÛÚêÛ«é9%yXk±äZkƒ L—©Q¿é­Î¬Ï™uB}¹¬>ÈÐj㎄ä÷7Dm?yù÷zÈJþ¾xÁ"ª>1r±mç34çsÛÎ`þQ3”Žûðص›èó<Å~èøcù¶öÚºiµl£ÊYð"~úðÆDh~—‡5Ã6Ÿ:Ã}'¹îBgñ&ÑìϪh–éÊZU/ÛzÙª¶¿ê©.ü=\ßKÂmT-"Ï×æWP0žoc{{˜5Yá×ë•×‰ åƒnûÃÖ™PÉ + µ>_ªbŒŸzßýû‡ + endstream + endobj + 158 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F12 102 0 R + /F14 148 0 R + /F13 145 0 R + >> + endobj + 156 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 158 0 R + >> + endobj + 161 0 obj + << + /Filter[/FlateDecode] + /Length 90 + >> + stream + xÚS0Ð30PHWSî + N!únF + †z–† + !i + † + †Æz–& + !.ÑF&šºF–†&î~¡šºÆÆÆ™Å%ùE•ŽOfRQ"â¥àÂy· + endstream + endobj + 162 0 obj + << + /F2 13 0 R + >> + endobj + 160 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 162 0 R + >> + endobj + 9 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-53 -251 1139 750] + /FontName/ERYRED+CMBX12 + /ItalicAngle 0 + /StemV 109 + /FontFile 8 0 R + /Flags 4 + >> + endobj + 8 0 obj + << + /Filter[/FlateDecode] + /Length1 716 + /Length2 8906 + /Length3 533 + /Length 9460 + >> + stream + xÚí–UT¶¦qwK€www‚»»tã4Ð4.!¸»;w‚{î Üà>9çÜ{g͹ó2kÞfMÕKíÿõï¯vÕCÑP¨i²H,@²N`( +‡ @JYRƒÀÁÊŽFC#™CmÀÒæP €C@€ áf àdpð + rq òp£¡Ñ¤œœ½ ¶Ö6P½Ã?\| GÄÖÒ P6‡Ú€ÿ†Xš;4,mAP/V@ÂÁ ñ[\ WÄdECãàm-¡ µ-íPò`+'ß¿d ›ó¶ÜA׿\ú¿œ €¿”@'°ƒ²BcSqú; ô—åÿëCõïá²n*æŽÿˆÿç¢þ[ßÜÑÖÁë?NŽÎnP ìAÀÿnÕý NÒÉá¿‘‡š;ØZJ€­@öI¶®²¶ž  š-ÔÒ`eîà + ú§ÿáïÚþ À&£¡¯!#Íô¯ô_]5s[0TËËù¿rÿaÿgÍñ?ë¿ëØz ÙYÙÙ9þÿžÿyeüoÓdÀ–N@[°5@jšC€ÿ%üw*II'O. '€ƒƒKÀÇÃî÷¿µÁ¶.n yi;;;¯À?UK7†þó3øûÄÿY[ÙþÝä ²DËÊ&´…5e&cº1»þ¾@©Û>ñS ­«ø4ç6ŸhjøÝ‘uÑ.,Ä^íz óñX-:ížž\,¼Þ_Y(þû­IŸ—IÕ*£ÕX§áÖ`uÌ>Ë ~“[Ï(ºÍÔ°)ŸÇÇû÷`>Ô¹ûr€‚¸ùiaÈ¿{XeÀÔ=²Ô°¹Û#h¹ 㡘Ȕcz[‡ž”à¿÷ªãÄ÷s ä + yÕ¾gÑþ<×(g¿;sÓScDþ ¼waR?;zL›¡WŸ¬›Ö€÷<9úY8® }‘péíÙ„Œâ;o’´¦¼}ç=8õœœ,ªŸ$߃©´©£ó£åk®`’3Ú2J³÷åjì_ö¨®e¹\¤Ù@TÅ·“ÄÃ¥(ßiðY)S‡Ç«wtv‰]"¦b?cš¦˜ð87$Ni¢ÙŒëÔÁ¯÷Ø¡ÝÇÈ«…’=†'ï#fÃÒö] ¥â”uOCÚ‰è.p2¯CËõæ`¼~Vó°t+£ì¨0Ëv¦™²þbêYOÎ-yWm IÕy5*t|.}[“ø89à®—‘uAnfNh† `ñÝÖ„´Õ ûW%(¤ ˆ´B?¬9Ü5uiítPöb°Þ!]‚ŽÉ[ØUÒìaêà 1Lº6Êquy†‰Üï íÙ¼½ÑTtÄÄAs©Ž~¡öa×7¶ººì¼/¶k”=ÒóYêf§qטÜై<]_¢2˜%"¨¦^JOC.ØÕÞÙîËÝ£˜¤J=¾!mXÈ >‹ Î;“ Á('v¼ÒuAq,Ëb¹ÊËà úÈ)öE˜¸„bÐñœä\‹â)YH¬6ˆiñº™ÃS"ãœ{áã À»¨d€Ê4k“X[XJð©ž1ïŠî8*)­ˆÁi‘W`B@€›%ó¸é“wrÜø-ý¾àýG/Rùbz«¡>hr÷ÛgRi Ü΢g¦'ˆ×#ÿcÖÖš;`Þù‹°Ê¼”ËÖ§¼0Xú–ü¬ ròàµD«ÅÛ·Ô¢D®oŽÙÄ­†øl7 Á¹²•ðÛg²“…†bÕ/EÕäÖvf›Å‚JSø¹Î·äÙ9T9·º2Ýâ»ÊpÜߟ݇^ + žM2lçÓ~.F*…¸ '«5Iö6FÔ¦Éb¤u´)T  Z#ÙBtÍts + ªÎ¯å÷äË‘øº¨ý3Ÿ[I¨>ïòIåɾ*5âœÒÒysã=žz?¸ + !kâ×]ZÖÞä¨<égq±.œ + Ÿ›ìS fŽFSîB~gœê!êÏhñÞ„ùsäpÔ¿Zî%¥– ²?ÇÙ˜\Ë"Ë”;Mºð›ü¢ú'K“î÷ðû¼EO¥ÌœìßœïR>T3ö«þĦ\©·yóÓ/x Ý~ùbÓDÍÉc6‡„# $:ƒTö‘¡È¨Ÿ¨y‹,W©¦:¢ìIkê¡ã>„¶øŠÑ˜[ÝDÕ6VLÈ—Ð_O?žÆ®óñë30|^þiö}‘¨w©Õ›o€Ü€ü±>q(z …ŸS!Õ@ñ=±U×À5ÚxÑ!“ë†øqlðé‹w}¬¬«¨²ßtù&lýS]peK-\Þîƒ]hÕõosüT5èOלØ$ç«^ìü­îU{î´€x‚¬YZMAÿ9쬫‡ƒ¼ܸßÄÂç~°ÀBnÞðàKýGìÌÐkþGÊFrÊŒúâ¡’÷‰^¤'ä’fÓ8·çf_-¡¶òGÞû0¦Ú¤W¼ìõ‹ú«ëÔUïê¢êý Ÿ›'{5¨‡›J?O¦ø H*!‚ÉÌ¢íZ‚~Ž  ÓŽ’Ñò:£¯Y©=BÜj´fr.¨ò?ëM»_;šf>Šså:0ŽO½ª¥Z²åébП¨ + ¶“&j8G©iûEÀbE¶Ì¸Ïê%ªóª"üxÇqQñ\P?fä›Ôð–AùÿæUÚ+›ýîE‚É=áE¡Î*lcx€ŸÇúCãšÌ­X5ƽD Ë ¤Ã«öÎðdWï×ÆsYI¢«”s¯ÃjŽ­§ÜÃ;×ÌFìÐ{ª±Ðg¶výŽó»$÷X— ´¾Ü>˜ü ëeÒ¤»:5ü¼wÆ®VM?·,Bvïi¢œhŒY­³%ÂTÓ&4Í$5Š¦¹‡º°k í¸Ò Ãzö ÂðU47%Ñš Ø–ñ”WIt™š3¤…^8›¹ãxíW¥w>ÈÔ©ã%Cf,Çõ00v0¾Þ£ñË…n ô—ˆmßY‘èá# ÂE¿ÒéUbšXnPT`+ãâY;Ï’Yü±—¸$üÉ¿°»‹+^@Ð]Âøu’aGJ«ˆWZ3ÞÞSàDÓð£Å¯¥”Ô#ty€uˈKä]ªœ¯R"öž&zœ±ÔºõÅ©B¸ä Õñú›m=oõ + Îgê‚%=æŠ7TºlùÃVöQU8*¿waK$Å®ZJcZ-9ÉT²YúNˆª| + < ÀW§ ‹*…¼h…˱†Ùà 8;—%š´rïîžà»¢.½˜>ÓØŠ-k)j‹z¨»©DÈUV'¥…_åÓÔ¨*Këpœ@¾¤ÇÑâúCe’bÅO†~1·ÎŸOI›óЙ³²AZU>SR<,J±ᇤåŸùž”'ymèÿú2 S:kE´¦ã㻿‚o=Å/¶ «å ¿Ûþžø¾ª…FQ8må§ÖrÕK²Öšîý§”TgÓ + Ê‚µ(Lü6¨Œ˜gŸ}Ã^ã˜ß¥É o˜T¯<Ÿ›ê–Í›¿'nâT m–Ö^ÕÔ†ü„ëqÅo#ûa7Ø¢ˆ9wzs–Ç5ÓâË\£8eêÌŸÃyQ‚««žœyõla •L«s¿Ø\ Ë×ùS=t3%žr|†Vª~WödJ´‚Å:WÇezPQ;«K ¦6˜ ÉÞƒ”s2ÑÎ7q¢”*#æöé܉åu¨Á+íÐOê!”£cBÂ,†ëç@oŠù{Ž+ØJäq¼ny:ó–ÃY9’Ô&F-ÌdæÀí 6®âÉuØò3ŸÌ©5½·Õaž4Ü°£ý”¼|Ö²=dma2WúsLÒ,±vø>^ÖÝG“A†Ô¯(ïàt×ÕÛ¥X²‹)5–qÿ8Ÿý(X°ñX,ÿ^ùðä“ÜÇçÝÃ(6ÊñûG%RVK@¦FXhÊãj¿Vt}ønoh…Ÿ`9X  + .éåÙ|T…ù­|ÙšÕfŠ$  ²d:!~>º>Âõ ½>»¯à º7+³kj5ÄèUüLÏ;Hô[CçR"J¸õZ ¬ + ÖùXQŸjB¿»V³ˆÎy®Mu›› àä3NK1øÝGq]ª(þ¶î;á»ç$…éA”ÒKɘ‹—ŠPIÔÄ4ÞÊîä“Íi”bñǽƆWøXÏØë¡&z:†ÄÈ¥^ÇE5ø#Iï¯èÍ-©5po›¤‚NQ™L)åþ¨âÑùõ+É)/±µ™^Ž—$J›6Ñù+‡ÇÀð—®4íJ­SãuQMQk1/iåx9•@eT:×y`ßÕ=„«Þ’‡6Š¹Äoxá:=‹¸—‰T¢yÿènÀ±È-ÿ.cÝì(2mœš{þýoiOäÁGà ZÒž¶"©•aüe{^FãÃÇ›i¶Ï“Û‘>¥“IcõJîíuqÙmÒ Ž~:{»pµË‘½l­ØVÓ†–2z™&i&9qqÈn®( D06( |Hs·teðàŸNg* åMÏ<ÿÅý¸îTÓSÝrÊ{*ߵ݌H? ÞÝÏ~剔_@<§Ú>7ªk(]ç$3w­æd­ŽÇÁL(,U\ðz¡p•k “í<,þ‰ ¿8F3!ÍãýAƒbƒ` + —=ŽÌ¦|9!¹}톞_Ñw`u^³ˆ;¯âöQ + ˜•ÄlÒ{%ë·"—vl*ë¾L05`©$ Ë”pTIµ*\Ü&Q,¥65MOL¤êSÐ݈>V\æxðôr#çÅ(íÚuP.­“.ˆü½ø¦Ÿßåóóü]<Û‹ÇËAŸ#6Â}7öú„7Ž§PB;C ɨ³eF°hR»M? ­sƒ7NM5z>‡Ûc€ùò\OÐœ@î;9±'‘%õh¡r´2657 MÜ„²£Ô5om)=TúÎ}(î“jç}”Còƒ‹ÓEó§Vä©Z—ÝÌ´Ö¥µƒÛrÓçCâ›i'Q·’ø§Ü+¿R~¹Àîä͘Zì ФÁ C½UNUÞ’ÐHO l†ñ§ ;CÅÄ“F6⺬©¬f]ú°)¶#\ÀSTäµ~Äí9½lS(Ê 5»Xèâít ³n½dÓùôŽ™Â\È|[höŸF%?’(ñIàtA&ÕinÃD»F…»4±àÊ%Ë·ðlM­xçZòwð^$ù¢¤°Kê{º4¥ñð†{^ú…ÉÚÊtÞ…÷Rz,è¯Ër¥û]{0ø3|š ÿ¬Ddv)59m•»õ•Ö?E쮺Þí~¯ímŠ®£ÿ‚ø(e™òŽèøË}yïPêÈÄ€‹»Pøâ“‚$æ[tDr²C}`PòÞZ §ÅÀÇÞx¦H*·úŽsªïçF¼÷;ˆ£P==úÐEjÁ&u_ø· £ÔÐK9Ë‹P÷…t7­m¿ò"é#&X Y©*½CÊïNáe8½<þ_šo´p7uÏö"öt¹pÕëŽé™nEà¬=-Õ´ÿ™¼ÆghÁL†Æ2þj>p㈳áL?Ì÷µÔ‡9·»$Ôåû]ljÚ_æÕá(ÅWdósqÊ d6~P¤†Ð·9ôÖÉ2¢T"C¯¼î€æsæ\T‘[YIùR2æ0¡-òÙIXH1ZÅ« + ÝdëV²á=ò™™¾žÜ6¢}Ž`PZrs¦3kŒn¼ÝÔj!Õ½”jÏ"ëç}P¯Ï‚¯…zªƒ¸ïò + ûÕ–gOûצâO›96¼šðýΙ.t£—d:;õñೇÊ.“¶Í­y y o³¹Œ_…¸r%ÃÔÒÆ>J¤?¯O´v¯’Ä8M§š }Óÿ`£/~Êy™ + §·²¹cQb.UÝ->"¢7ù-EíÈ ‚7š²?Teâ}Öt’¯ÜËö"”Ò01÷ã(•ù)ÉØö–µ~{Àw.O{j(J–ZmÀ9OËÓ>\¬Qcp•œv†ƒCHøèºhûŠz¸'>ÒUOÑö@¦Åw˜4*Ñ¥ƒR±ÃÑWõ»%! >¯¦PõlÙŲ!81Y¤ùp¼FgÌë*M§?(èlcñ)j¯]yÖ·êLž.0ÿâ²’(ä ž®‰JíåC©!”<¢`Ålôœä ׸¥\£QXC®;¢k¥e@‹-ÙåÅÍú÷Ò’S'úO÷©ÂI9K©†ƒ»Å{Žm!Ò=zœJ6Œö³-âàvóÆ šÙ‚ezâj¸ìÎ$T¾\Ÿ-Mx¨Õ¶BŒ)œÙ VràÉ·gž·H5¨Á Ú©}»ìn + ÁËeì'v¯ÀÒz"•2Ïào±DÓ¹ßú8ö + ® 6 + ;ÒÏ[Ñ,tùSpz2ÅÇ°¤ïU’¹Q'ͽaIö‚(Æ¢žih»< ‰ÿ‘IXµ¿ÛÿôLv´rT¬+¢¢†>É̲‰a_tëIBÉ6÷U®w¼|¤¶.û Z¯]p(i<;ž¨jSJš¨ß´bRÔG{ú¯"Nùg‹H}Ë0i9#y…vÕYº^M2 [™ + ;Ïï•›%µ/”#¥\?Æ › ÷ ÌŽ¡7P¹ÙµÒLzÄAÄÙD—(´±ÐǶ˜ú>|†B_‰ÖrfüVœÅµ°9þ6ŠPIÏÁÌÒäBÅ. §9Öo]/kã¾ ükÐœ®$¡¯yßVòžÜïY=b¨0©6C:W¤Ù Óg½]Çøt9%Qäy’š¡ýÊI»å®p„®}2¢†:ÕDèÐ3’NпXí + q<„ñ)=‰êŸ¿¯²n~FnãÚIäæ>DMHÉ„-äô‰Èd⨭··ø\8}ç ñððkm$ß÷ÖðUQÉþ—ÉÓ§Âk¡ò³$Ö˜œ%˹ojª)aØ›„vg†„ÇPŸ^ÏÅÄ?)äüÌyºtýýë—´H/W&éЯúî(è—M ­ß2¿°ºoí©Ù¬’â†hÃë1Ù“Ý\u]þ­Ü{6ž·Gq#>!?jíž+ + 6”ظVYžím7}3ga"j*ܺeÈ[‹ˆšNÓs­~’™Âðù÷Ø`^¨·Þtæá~­¸& ôm/&ý–Ò&Ü.bF,WíºwhÆx0{Ý_Ã+èáÒéW–,^”¨ŠRÚHbeh;K½°X½ °wóÖÝ„Ï•9ìÔ£?6nS5œ—3Â|Ñ”ê¯øtY2°êɬ(°£*öÂÿógȈQDfhC–¬kò./©Fë°X(ýü{ó<´y7Šˆ¤J> S>á—ƒ]0ø³œ3´Õ¿W Ùm·D?Éo¾@ìëþy§çFƾe Ÿ#©“²XIRXbÎEÆd!uë'‰Št"F8PÂÌùä§*j´‘ Ÿé&;—ê3O?—ùœÓRÔ·d1Ÿrߣ&DÌ<(Å)ð>—kÍžŒÏ'-xµsõÄ,nã×Iµ‚h³^s,Žç\¿ÜµI qDr ·øÈå:è¹Uˆ5Àý-Hn‚>| ;Kôn· 3éiq!¸ª•†pnÐøuÆé§ÎËo üŽT5‰`&횺ƒÓ$ 42ª±¤¿ßtæÞ›Òž¦é'œì“«§´q½BÜÐW®âr pÛwyWTâ¯ÚK@1e;8Òô/6¿<ü^&ÎHI@.Fˆöôâ5w´#’À!Ôœ<Éù Ͷϑ‡. ~œèšhÏWk­ì¹»úÎÈT8W0YÉOò-¨ü&8a‰$î~=u©€ kg[¯˜¸eÿR¼€~•0n8C{gq ¦Ø¬¦±|uêü¡C¨/ÆÄ›ËFñXÃσû£WmáN‹Ð˜Ù-G©±îg¯œD&>ÂÕz¨îSTÎ¥ö1ªç5î:AH–6ÉÕ|,‚ + a…ÞýÑ×Ïܳx^UgÔ!™Zè°y#cè¬Ú5X»ÄœmÖl#)eücÑ„7·¾n|OÝèm€}-Þvåä¼e‚”Rx ÙŸj~Éø}•"›JþŒù£¹ÚÎ$ëœÄú|72¸ nëbšXaµü°_â˜-dN•½w>Å9†¬žî3ƒËæîÊ$ó˳êFœ\éÙ1º¦SòÝIS4|ëñÜý]Ò© 1dÙ¬ }XªcÃŽ`&…i7ÛtHŽr“(¯øø¾ü©’1Ê‘šKŸ›ŒÚ¶Á–ÛÑ¡l=µÜO?ÎÙÂF¹:þë¬ÝH÷Yòè‚þ§ìxI~„|ÐŒRÍ V]¬RRqG_îäu† îkLÓv<&=4Ü*VÅ(yÐ;Ò÷`<M¯_…×ÔÏH¢6o°¨µªÎˆ?ã•k¿½NÙ*hOöi~W³ZJeÝéª&ê— wVÿñ…?V ñ´õ7Ž· + á€$’ñ@®Näš ½;§\¼îèOŠA£oW< + V’âÕo KÖ+ ”rêÎñÜY3ÏýG‘‡’ÆÓ]¿I`Ù^ó + £^aRr&r‡¤ÑAä°|5ÆÊ>—ÉSœj¥à¯9ø½§ùø¹V#CŽ+˜uŠ}öùBw°÷[xçÇÚ¶ÀtŒ0Q‡š qàrQSJü–Ìšƒ’ŒýÄ¡û³&ï 8u7¸ý$JF¶V<¶…¹ñÌû‹ôLºC:æ1Ó;´¦Ã©ÌròˆÓ1ÆYÌT†^g8(œ{ :™õ÷Tx–í‹HOtã;ý’€‚Û¼!óòà"BÆkj—æ^âîÆZó kʱü^¸Ðý/å)¾¦i(å¶önÊš tñ°éÉáCaq•V³-z«7 ãŒû.ئþ'¡0 •‹qîö󌇺?;k(¬Z•~»oëÏk.|D>>ñwä(2î ,¨_#“;«Ø]"£UR–-ÕÛø#ã~ÍS¤šŸ~–Š´_!—¤õRC§ÐöRU£ûx2tš?i4~½ìÀ:/ILAóKD®~j*ç¡tÞ¨ó˃C6ë´•†íbí{ñ<$¿yùl'Nžæç6†~˜Í2œ1mMŸQù•4Ðè+fªdgó,ˆ¯ËŸ©HøÁObKUJ¾:++ö´—Ac + ty9Zº¤EQn†˜ý&«ÕðȼÇñr‚§Å±’ÿn)h_Æ•$m^/EQ(¬„…¥¸Ì¹À³„lιOeÁhÃà,;{qßPʹî1Y4õû + \ T¼*šœ/aäùeË;Ç)ž–:VžqâÊÉö šÔjmXEÁrË–ÄÃo½Íè¿Vp&ž}>5–¶ÇrRô0 æú‹<ßø·sÈÖ·6´µHv›MÈÚèIËÉXÚŸ¸jÇw|ÿ½o§ìv­dôõÛ§|.ªabøa‰_êaSó`žÎ'‡^,^Mñäv ¦«°Z…?§šgð4Ž+EúÑ0?Q\ˆBÉZ~"w'¸ûB]Ì¥afˆï‰Ûå¶QÖ²ÉeóU]»3}7°ÓŒ4ʲ‡ñ¶->_ác7[ä+îɇÅ⑈–ÍVSr¿R»xW„+{ÚÄààÏÆm]è<«Ñ•/d?ìNÚ$òeºƒ@ÄÑDŠAØQnÝróâOCB¹‚õ=ÝüC/”5®‚/¸ßfO¬2Ó D‡¶$¯Þ€'î(žnø~\Ÿ°ˆØ¹ÒçÒR@™†"u¥smÇé²\†mñ18%Ṫ”(Š½ÄYõ“nšs.Ö‰ýðxÍ#u–FÇ’Ì84vêLe¨ ¿%õ ¶+kŒnÞž2˜ß?½³uÚÔÒr + ^52ú ó *ŠDÆûáôHëäƒù¾grÿÇÍŸtìðKyç·ÏD¶÷B?¸‚¸¨.ì™ùcxÑgðÓÄX)jêßÎÛãÔ×J¬lŒr;lJèÃßoˆèÇŒ Œt¡I1«kΈ‰·ôuª$¦MÇÓ⥲ÊÓrÒQµí¦`„/_'õÝhòÁÁtQ§??¾“—#TBÈT8•žíC¢ì4¶¡)x”¶Ì±È¯Ý>_ä+Ôc‚ã†[å U^îŽ?,¹FÀ¢ó”ÈÌe™w¬·…O3z±3fÇ¿¢"ÀŽŽë,Âæy Ø¥$8‚æLߟ`³ïÿ|u’tÜ + {2k(˜êùpÏ€69$n:œÿ½±í›/â·µ+*ÊeÞ’>¸Îÿ> + endobj + 11 0 obj + << + /Filter[/FlateDecode] + /Length1 720 + /Length2 15400 + /Length3 533 + /Length 15958 + >> + stream + xÚíºS/ßÖ-Xví²k—mÛ¶íª_Ù¶¹Ë¶mÛ¶m›»lÜÿ9§¿ÛÑßí—÷­£332ÖsäX#çš¹’”PA™VÐØÎÈDÌÎÖ™–‘Ž‘‹@XV‰‘€‘ŽA†”TØÑÄÐÙÂÎVÄÐÙ„‹€‘““‰@ÌÄèŸÁ?+ + )°½‡£…™¹3…0å¿Xì‚6&ŽC[YCgs›D†ÖÊv g:Akk¥=âD dâdâèjbLÃÈH`lp&021³°…¡ÿ—+I[S;öÿÀÆ.öÿ•r5qtúÇÅ¿RüãÓØÎÖÚƒÀØĆ^ÎîŸùLþqó¿mìÿÅ×s±¶–3´ù—ü¿jõ¿¤ m,¬=þ/‚½‹³‰#¬±‰£í§ª›üÇ›¬‰±…‹ÍÏJ:Z[mͬMþY8‰Y¸›+X8Ì L ­Lþ›ØÿwÿTîßèDDE¨ÿ³¬ÿI*ZØ:«xØÿOÙ±ÿ3þßñ?åq´p'Ðfø§¾Œÿÿ9ÿk¤ûß&µØ[Øš(;Ú:ÿOà5%$dçîEËÄÊHðÏíŸ>c`à$àdãôù2Um-\L$EXØ9™ÿ\MlÿÝ ÿ¼ñŦÿÔÇÄÄÝ㯬(KqE±Î€®_IF¸øYú' G•ýÛšw#æ¸-uß»Žüi”³Ù + Æ›ô“¹Yÿì¡êãgÊOŠƒ60}*vчçBr£{"!ØóV V@îa=å3V΀©}¶Mm€?9–G‹¾ç׫†¾ºsX“œâgÅŸVy4…U¼ö¸¥‡ÒZ€bšQÐDË´ˆÍæä:ÚfæÏŸ`9w«Ž4ÐuQX8BK`'Qo_£þ‹ˆnÓOn=ŸˆhzíÛo›m9§ø]ùj)Ì­ƒ êX jÊ{.ï_¦;1k:¨w¯’„f¬~Š¥g2Ãët7²³~]ÑÇ´t^ÍB œ‰o}QŒZ;Ñ]RNtÁûB‹=Çhêñ¿§# + ½E3ô¬ü”,žâÜ+ {Ä󱇢at‚Hcúbdrôü®S-ÕÖ³‘äE2³òeäÆÕ퉒 3ÿ&>c¦·]@Ô% öƒž±í•¿©[‡3TòŽ è¶dm¿þÈV½g©ô,Vð×S~§ô(„Û[ºâ[Ð4°Ót›­ð€' n,&fu ¯Nè6÷!ÖXYþ ÀšÖšÄRÛÎÅF!ªcBe:U"—Í¢NX;ÜòPI ½­™Ö¢I\~ à3«øÁgXPiÍÍJ“†™1¬œØÌðèD©è¾tåÆrŒèÕ”qÌÃÀ{ch¶6g•–²¥(^.Éáß›jÕý +oS þìE¾±KÃozxk•uUêÍÍ0ŠÉ^)CÊ×­ǵ_ñE6‰±{ùÌ ßÁ²×ÂÄw76 ÀTXu$ÅJŒªàÊ:![d‹xÐÿLý)]Ò†ÎáDNz¹ŠTnwHgTãr²]Æà,ƒ¤×w¸n~ñ'`‡½AªS©¢ë]øFR2û2½4aÇÁYÄ4.8E^ÀÔzÖ¤kÜFÖŒŽ®hS„wz¥ûÃýÜhçgŒ#Ì {íoÞv›Áªp§ˆ”↑Íõiu·ÛÙ½LT0&{—¡a¡áÒÀ‚½â9xCÄ·p¹ž7(SΑ¶"Mz½e_Q7_Eümë/l"ª6ôâ-ZJ ù™"ÌÿÖCDçjÜ×^áñMóÿí&&.ì6“øŠ + ö ó±¼ùí¦ + ïÙnHóµý¤åOW»ª1&ROSR󋛊;úkcç0hO âv@Á®SÆ£NÍŸJ£0*<3 —<ëêàÜØ7veÑ‹—»Û…0zze¶æ~!»16QLô5’HûB؆ýÊ^©Ö,¾ä‘ Èoš;!†™á¾ˆ¨ön£ s¾rš†4I—• + džf¹_§·{“Oúý¥‘ý—æ4ny’P³]™9Ê)xÒ¼ÃƼ·67 + %Í·Ý’®‚ivã¤B¢,Çfçá}?¿Î½'5 Ä^Õ2åÀQ+ê®ZìC)1È X¥fAE†WòΕÃðIZ¬°­É¶Gqˆ¾ò"¬˜9g†Ú˜R3Ú)Ï÷‡éߌšò”÷„J¨ˆ`øk²ós™žþç”HßXù¾á‰¹—B¦Ó7U + ÏY’å,/zOÊõ£š˜®ë«¥QÃnVC²ÜŠ‘/-üŸ7Büè{‚tÙjD­„e™û + %+BáQ4Øâà‚æÔç4Ðu§I+µÌª7ÝB2’õ“¯Y87‘=†ÿó`…~E¬«,Qï[ "sÖstÂL†lë ^^·‰Ù{ –8?ÿv;·6\AG + L4,ƒÈ ó¸©ïÖ”ß#!¨o + t*G Ófe9š2ø¥'Ù ÓòSÆ/mî'34C"Aq3V?ÚÏÎOvD·&”ð¹ )è½ø†!Çkg1ÛÍb:é‘úp³‡¾Y† w­ìd\®ÒTL‡žÀƒýP]ÆñtƒJz]$Ø7@ÞÎÌ/áWm‡q#ñÖY«&œö'3:aBø“)!äb¸â™oƇiŒl)ͳ—勘ÛíÉØ>Ö¼u†îÝѲõ…ÔF=CtR‹¢1wl÷—¼½™Ï«‰|WAîØ{JÀu]Än-!F5TË) dÔÐ#ÚCvJ§]½ÝaâONöþL&.qIÄ‹‚‚îü¡íI–{DmW‹åÆU¦|úì9'¯ fÈX C|cÉ´®>Í‹›ÏL2ÐÙi˼3ô¢¡ô|2JÒ ÖljJ~꡽l”-^€E:75˜ÉљϮPy¤F´óö¯›ì"IWX,T^‰_õÊc{ä"‚ûtÎ:”!ß6òÎsvá,§&IÚ¨ÖŒÛ}I\|5äFtEÇ'Ò.×á›\n€JÿåqÄÚK5ƒ 5î|/çÜéMÏÉ5?:‘é„t.Ï=d1 Õÿ[÷§VÅEtÖ °aœ’pkû;¡“³Kt…2_a'Á#³ýÍ©¤,ëuL¡gIà£\Vnp~ÞM^;Ù]ÀM›æZ¶6;E™·L¸ç:¶ŒªåÀnM¨™|6õé肺ÕJ‡„™xËü§ëzîþõâÖ‰¬7uÐÑYó*ü7¥H·~„W<Ʀøé$H’ã/nN<i=¹óáÄù]\váM y›ŒpcîxÛ~2‡q,‰ “²z›v&5Ê–ùôê‘lúšµ1©Iý'» 2Dƒ§·HK¸,×xVç“©Ö©Ò;N‚“¨ôhR½05—FgÛä_]F÷±¹ßVd½~Z:Ü‹6søœu,Çl•[¦L—Ÿ{¢|!=kƒKF0TÝpë qçmçÆCñƒ5GÚštrõÌ©O¾‡²ãf5ó\‘ráFCDRs<)kón£Øžûªmì§=R1~ÓUJÀ…[òo,Õ‘^‘úðAÔ,²g£E¿œûìÓ¦€é·“Àƒ Ûkb„ã2àª>Ãe;: %Í`s4¨¦g®²¢s x€¶Àlý@‚i¾ÙŒW¦:ÂF˜Iسò7Ïo·‘Â($¬Þ°/ÁúìòÙ{N“jÀHÎò¦àÙ™ŠGóÕ€\–W™üÑ–” ¿jõœ|ižœˆØ~¸ùlc]ÉŽ¶«/Êß×Ò¥%¨Òá2ðUè°ÈÁäÜyìRêòþô{£½‚Óžå+|1Ñ±Ì •OŸäÂT¦7ªJ?²üXSéæñoÛ•³ŽïïÇØm±X—[ÖqíDÓTì3ûÚ2Ùáõø· ž­ ap$vvá¹»âǪ¼…ÎÒcPbthNõF3Àä³9´:1íû…>{4®På8ˆ`×·ÞÏ‹Ì“28˜³³üQ”êý#1.oXBá¦òaЭé}Æ+ õa£Ð)è³*‡nÀr†ë·Y%ݲ@Éú¼ýáö Ô«ËxM¥ 2Ô@þi¡âVå%?Õ¥&W½Rý~¬ÉFѤ3jße°9 + A‚r&É"Q¦¡h$wny&¤œírYYãf·Yr6þIà³xg9¡Ù¤z哰ݵ*yTY&“ú益ò$qLëÄÒòÕõÆê[m)õ ©K0!µè$6A ²yÓâ ˼IU,Ž Ìg+m¼£Iõœv‡ÅÁeê·Fâ_T”—Тàh¾K³•íq(féÊI­n—#Tk­Aê¶GSÊXp;xòpXÐJ˦\\,kX2Š¼`˜ðäÀ†?kN#Sv“«ìfN'Fè\κ–þBPË¢wõhž=è)žy[¹Z„{ŧ&çcM7xøwˆ²mHcðÉqA\ªŸ(y€1Œ£d5pkšÀë>sIýü<“¡ù€Äkë/ [ã:-\^ÃÅ>|Sf%œ5ÞÁ²Ø£xå_ BôÑôY\s\?]‹AžôôËÍÌ<¼»È}£cÑË) + ™æ¼žŠŸaaú 0¯+سÙÔö`‡Ó/Ï´–?¡¹§Å·é«‹¸ÆôŒ:ŒÿØ2NáM á¾&â#×T + Ætù¬æ7K7Ž4ˆ„j£ø ;º4ï–aø}u«uõÿÜ#óòVýZ»  E˜œwNëuænÁÎX[‹‡š@÷î7šÝ*=Su Ïø,‡90c ª”C¸Ûâ:©äPÝÍ>挳ßÝü + Bf+Ú«óÀ”<Ü6¡7 7‚ æWÈó¾=.v—žWõˆçÄ5H†Ì¯¤/kàÍ$~òkTo¦¸|Ú]%Š;”‘ w‚\>–E oÈ7y˪œ;/JDªUº~âÞÌ~O[Û×À¨Æ°ÌL.p\H›nš|_Eÿòkîñ-àëba™Ÿ«R’Ýð.a‚Ä7ðÊdóá1¹nº@]]Ïõ~AÕñôU#V)bÞ¸¿÷Ê›î“']?Ÿá€ÿq&ôáЀ+X¹âZ{^$J|wÔ)‘X/Ëëþ¥7¡JçÍŒŘ4ëY”Ì·Ké¶.w8ôc_X£›ó7‘uµä¸÷œ9ƒü±¿øP¡Ó0’_§‘Tj`$Möä¨M”Y?ؘ‚#!òù`, 鯕:Ó‡ûE8.¤×¡ + òå€ü¡';a¤ëj˜‚ï7r\s_Æ_*N—Ò}Gÿ¾æ´¨º®¡²áÌ~£Êõ(ĽÍ-ia”Y´ÓC¨v!4ØÂÌÝ.N¢{šDuq.fà&7•SWƒ¹S™º*²Zl`âO‚FT²ý9D÷n×Wr#ÉÁ¢Î~Õ^°YMŠj”åÄcÝÒsO™c¬O\=ËxŠZàì‰~FÖíV™‡Á) s—õ‰$¨Ò>Iqi" ˆY—Œuú-YaÿNó£ÿ0¥!Âô @$mo•Z)úƒ´PD¨V›¾5)¨ˆ(:K Â,ô¢2,»Î÷8HH4:’:¥îŸ¤Åçm;Ê ŒLrü¡ ï×…Ï›o äåtSj|——xb€ ¸¶ùA[rŠÌÅÿ#‰w÷ÚúÏç²¢¥ê*™3_$éÒ½Ae²yµ#j— ’æÂN·Gd„§šOÁi + ï_"J!éäÜý˜amj0RX+2QýŠR´÷¢=OõU8@u'œÏßo2øc±>k¨Ú©!ìüiA¿ð[cov–á‘l%ê’ŸvaöõNÁd{Øl§y|îâPºÒwíö° ·ÅšTg©òÁX"®CɺÙ|ѱ~þº/–¾UwæºáWhK-wº‰F¢V‡ÑÍd[Ÿ˜´x¸}[Š®]PZ¥\úë)Š~b)Œ©ÏC5˜«²õ€<¦oÁÅRlÕ9úœý‚â–NÍw Ó¦+Ú Ñ“z¡ãóÞÃhõNOiÔ†øw}: á,½s_HˆõDR2Àu ~¼žB FþÈ:vmŒW¿§¢l$P®@Ï-Y '±Œô: ±QÐ-ª=” ò»ÀÖ@ßJD>¶‘dXgŒ’èå…K1‹=Ë5,&lc_—fÈÒ½N©6Q"»2ýfå0}R‚ê!9¬ü©dzg÷ÕůÿPˆl†ò£¤Xh!¢sÆ ‰…%Bé9~}IЃ}À5!ÔUéè84càmx¾Õí<·òUL3¬uOÐq* + ð1z]Ô5½œ9Ö€~ã²Ãî-­GL_ÍÁé½ÅÜ_ŒT:Òù«VΛIãÞ)lðåyÎ+¥‘ß–S@Ú$÷«bþ$Ó¬dÊ*.«ý9é8 F~²|›F(ï$x?­Ù Ý\’‡FUª'…}¬R«^ëa+ꊢϋkˆ Ë,ôÀ=w}Ô6M¹uó饥!³%W^=AoW¨Ÿ“dð,1¬ß§*´7.)[„;éþH-W÷ÑÚÜýʈ¥?¿Ñâ­õ®ðèzܹGÅç1ðKce¨ùSn›ÈWwëøâÕ+óŒž.9cLOÜÓ|§—##å\½¯j÷7)ßÿÆçÆ|nçÃjMn—¬DfHŠNÂó{L•t»€N.†H§Ÿ‰¼s?äž—sãê:0 ¡`Inç"UŠeIˆ`ŒjŽyåé;îåCí˜Ñå’£©iÞÎk{…„â(íYc•ò!ìm½¼DeìFòϤ>,ÂÚádíØ;ƒ…ΉÀÁ`ã‹°¿5EŸBD¢!TÇà—‡ÎÖaÿŸ*ž“60«’.÷ïhnb Ã²‰@Ýé>Yº£sŠEÐ j¤û Ñ‰Æ꿉2#0УT k³˜—Û £µu«#UÖ2„qY‰Ëá'I¥ì\§3Z‡Ã”næãÅ‘£¨«GÕ]#‹•ûNW®Ÿlä(Ó Êæ`AFf4=3äÏœ~W©Ê“úŽnÎ6HQ å2ƒèÍåãêd‘8i\ì›Å´º†Kð·Ê¡5B¼‚ª6ؾ5³Fàåû‡î}?+©·é“³-…WyCÍ*Ï™5=WEññ,GýéÆ’¢kÛdrBÌÛ0Û:Çf|KPàw©Ö†g×”4 + oªi°„ïµ{Yñœ§LÏÚ\=ÙNÉÕ±4Iáþ”N9#_ ú‹sl®_cš{¿jÃÞý o“ƒ‰øQHÛ{Ÿirò÷~ÿµ˜ÍÃIvNãz¾¸ê˜+„·TyzÓiì‚ž Óáª$hýƒöO3ŒŸ¯Mª•‚’ú&–¯Õ=[]r›`Ëù»®0ù_NËÑ,•%õ.Dº½ßÂò8fõ¹Ð + †ø¤§¥l»yÄ1GVà1€ )ÖgCæÈ>ç\¯ÞžÓ·T#»ÎÀTÅþax ë-(ë·¸åq›ö6Ð4½ºÙë¨+–”ó`ês,o_á®rö\&²¬}‰E}€ðÁ”цQo¹‰dÜÏbƒBØsj}¯–ï¾ã¨Ág4>â¥ÖKŠÜÓÄ|;Z*2MÙœø!¢×ôÙ—‘A¬!˜da­²´»³1o!sq­)½‚dXö­›û ~¼Z7XŒl°Æ²äþ=ȱ÷ìGööÎÔxÇ}³€õÞÝÌ’ƒ,Ù@À+‡åØmÍ=*áwt›…ñЫ@“Dä¦;¥aÈýi|QÈõßMJ8èlõÒîk#êP•Ù±j²T ºHD~á›`Z™Ò)Êj‹ G³oËog?ø߈1ZжWïx´‰hÌß±+´­´´{#våãózDfÆ ±_%R/‡@šzpx9È“/@ ×Z"4#ÔD >Ú‚g + ¿Y¢Õ’€1Ó•wSÖ]-fw#ÕÕôK¢¼i2ÔŽ>mœ)4]¡`Ð:‰—†¢Ñœ€¾Ì®:¼‘¼f©m'êmdæK…X´3µ8jëaÄ Ïf+]ìyßժ͈¬ègÚÒQ•^S%Û¦GóÖ„âÈÀqêà)|9õëï˜np“ýøÐ^©?ýe-­Q>Æ@¹½æÄ]¢³¼¾aîUß9݇Q]kÈÿµ¤»Áœy]õKY$÷£HJ%°âA³æ¬©>ŸÈi­pïë«…{1Zˆëçk·x{s‰K’Cˆbò·˜< ÈÚ 'îe-‡_vkÓÖ”eØÑ+,1^_kÑÕíªFÇH³ÂºÛ.Bj(.a–í1Õjf5Ã¥ ß·2´›Þ;opZ]Œ~j°¬yñ ×½Ìf¤º‘ßÊ–ÓÛJ/ؤ9ù76_~̳¤–¾ö¯ $Ë>_½V¹»tE)UÃùH–n…‚2-y±¶0.…PÒˆ5¨­°–² "öz\ý0~”h:LWk’îl¯û H›g¾ÝÇ-­=ØÐíL[›aV›ÓCDôA/솗‘„å¼Y'úÉLzzž¤’ÑcíN?§mºEoabrH4B”Ø’´Ÿ›óQq¿…æ]0™jÔ*ïÿáÓsÉaÄËp‡¦8vøŒ¹¼áôìµßˆÃ† Îa¤ÙÎôã'Íp-·Õ/‘×½,^fƒ”FIÓȇK<øåΦ%íŸWRäòY›~Tà©-Û/£³¡sIÕ¬aF_QÇ“K°IᦫXæ\føå±ùI¸g}­,ú1íf£ÐoÇà + b!Z#á¬ñ†Ó̹åˆ@ãsŸÝˆ‹âcÔI|â?|ß}—ð.BøýP”ék®›¸}ÀŒâ|]ßųNŽùqËÖ + Y•öŒ-îÚ°_+¡ý®´!Iñ³‡íãû¸/þ–ÕÂlãZž­QÌÍÂC¹%ö$„NR¹ þµé‚ì:|·Å|òT]›#ÿEÕÉÊ:ŸÑpÉmË[ÄxLVŠm&ÄB¢ÿt#ËêbLK=S°úÓ_[ÏÁB?I\Boäï"Ú¬GÛ³ó}µ‰Ø`ËŒAõ(Á“(¤¾9 ûwƒ¡œ=¨ìòºLäE!\»FnÁò ihŸÚÌóàS{àÈŸäQ´ »ï! ìGèÜ©YßÑ¡‰  ~‡Š + ¯™à­ê;ú`@Ó¿)ÊnhÌ¡&þº¥ÏÎø}ÍÈrtpË[áŽ' âŽq>Û;Aý{§_gÁhCß9£ “Àî«ðçÙåë™&Ëâˆ[6ª¶+5ôáò; ãb0ôäø…à3±“ÛÛ,Å”‰FfØaf2ØsØ0¤+ÄœoF&P0ÈLXörÕó“Ô%±–UðÄÄTùŠŽ°€ V_!Õ_IÂv>/M>Æ{`)¬¼8ÕŸˆù¶jZYGdÑæÄ—/g×ñ&‹½‡°äó›Ê‹0[• Œ ‡Dt—ßqÔ A.Gñ}Ð&Ç´îd4±ñ'¬–3bµÿA‡Ü¸î7‘奮8pÚÁoÝ%µu2NE³´Wi + )䔡ƒM¶4‹áß‘&6ØÒ{~LDcžÂ®ö47\'+ 9-€ìGDÝÏýü± ØãÛòŽÚÚøùè°ìM9Žõ܃‘ÿ‹ˆ|g »Kk|•=±üa«÷®¨ç÷!¾±Ó}îz™;m³=#~×ræ¢vž¬IGåw"Žô¾óåkÅÅ€óÝú²RÕ¹h©DT + ƒo!ó-ÍdUÓXø&,ûlìEhÿu0^¢MÈTúí×¥g°‡üV×bŠ}ÞpMƒ;&[æßò)v+W%?£7¸fñÊ…®*üaº1$Úg!cñ¨’oj©ú”T¸ô¤Æ;Ûä‰ßÜn‰øŒr;÷>sÖ“+‹å_m*ê0+ÄŒî÷óEÖ|Ý…ãàb,Ü/±Aª|häx”ó[Õr[.¯üó^/¼VZÔ8 :¯€º\ƒÔykó¥‡ó2TN%‡ø‚0““»ïhŠÌEbïÞÊ^„¹úkH6L’ê­-Ç9$5ªŸ)°HèU‡bãµI c|©±\_X]üCà‚ÇlNÿå)$¨õ‚’¥´9Pñ’—N†rëvE%Ø#8v¢Ã·p×’¼Xw9`¢}–Ö¨%‹€rG2{QÊ + ¥ç¹…sÝ…ÈUݧ·…¿q0º ŸJ `2ÉAÜ 6ìk¨]`ƒ £÷vû°$ÞX^‘ + þXƒôuÏäç|ÍRÒŒ?èßù5²ô ‹4UB¼Qîp + b}:M;”#Ò«áñÝ°¹„ñù˜ Ýð‘_~=uõ•h}M¬´sÝä!øñg.\‚t ßñ÷æ²Î{4Rp“ Íœ4É}KPÏ#x±6cå–ì3F”NcúAVªIžjw¶jñ8öyEx˜Q4âK­ã;ø Ï€’„ÿ¦¯íòÑ©_ ØkJÝ' ·l‡¤ke!}aóþ:âhi3í~6Óà9‚º_uM•2¦º½Ð~\Çѧâ&•}z>A ÞsÇ,¤îý§ïÈ(Ž¢)ûç_Ù€|ÆjÑÏ©¾&·Á1ónŠ™Ù¯…‡Ó›‹÷WGfÔÄ"ºÖÃgòt/?—ç|o–OWæš&ä­—@™…ÌzÅq1ËzzkÌŒfFx¢§ÿfwÐD»üÐhÆ6K_Då¶/Ï>eS… + õC-’æ÷SIûNç“B¥«£Šæõ¯Ç‚*·a‡ù8*ÐéIļH§e±Ú÷qã~ú ÕFj»ñ½Áòõ$Ã|ïŸg0<±î¥_³ÞLCÀ£¡™T\…žåú%ÕH<‚Þ@âE] .âŠKF9²Ù¾³^Ë Ê›cÖz!;ú|Û]'k>®Õt¨¶?P^ÃõÛ’•…åÏ7³u:m¸‚—J?"MÉÅ"[F0Êx#VYGˆîW¡s©'n&ûÃõ'UPj‹K'w:J;‚¾Ñ@¶Éîo&¾»7`øzcY$ݘh诘¬„I4‰Ðêg3°ìMÆköW'c—î3:åݺຸi´ûQ Ýš)zØ;ô2ëZJH‡ vÔ‰GTɧؽS¿Zæú¥SŽòÖ'‚åoàÌùö,|:uÂXb ”cºçEi¥€ÍÉ›‰œ<)>Pýo…Ý¢’¦ðgñîš¾sÜôõ¨Ìé‡ñcÐK»“™X¡þ¾â /, &X ¬Úà¸S‡Þð½§SÕÀðب²àÆ4‹^þ6Ž~Vd×@>îI,mÝ.œ]×ß÷×…Ža9®¤ñ8j>>'Ú03Q°Œ{þ@ùlpÙàpŠG¬õ@ Ââ,¤î1°SÉàðûÂOÛŠt\§Ú)–14û[\nœ0k;bݪ[HÃêu|XG®’Ò/š#×d$ø2¿_~©¨çœö+*hÒ\܆˜o&³|sú c¸¢ƒvª‰1ix¼$Â|O"šä6ó69î|5èó_ídÞ¬â6Q(øX + Ç"óô ì6ˆj¢z,éБIâåÒ9tåw*ñnCë¨#Eo%¶ w0Æ€aU´e3 ˆãƒùw´ýh‚ie†î%Ë!Ä-CNKÍEh¡,²÷¦Ôœ;~p¢üðe„¸-Ù×Û¬ghëA±¹Û{¯mÉŸ^l^°ÇþÄÂ3ÙO¬°¸ž½=-ð¤f¥ß€d²¾ýX²i~¡®0…ÆvGdtIªZ³nNô–‘òͤÀÄ%ƒf6g@é72XëcMîFQªÛÓ¦wòþ©L{^3ãÅ!,3*¬áþœ›ò¡lp|™RsÈum^U²‘ÿ›5ªÖ¥.¥Ì31CbÅF& ¿îƒî¹ÕJ5Š])x$RÞ NO? + C8™ÌígëÑA¯öTò;æ\{{º®íÄ ”µC…„ÙHBXû0g@d-÷ ÇGìîÜ¤ï­ q»Xl›‹º½Þ&(âuî5xQU&üFêÀ¼·Ö‚k“nÌËtOW;ýo`T­e<¸R™1*A+i™ U²oú(c@« 7?Á°]ÌJ¥HÏ·˜£›G:häuÑ„}:"ñ͹?;™Xq+¥j‘ï¹rf$TžÅª5¯+˜èËûSÁÙt§|ŸmÄž®^•ß§è<·ëÔDG©™æÝ-Œ›Ó˜´zÕœR+ÏË~o_};R©n‘mu‹n-ì%g_ëAª?fR<ÚM;½"aGœ_[¾èÝåH<$á‚)$Œ§´]mÑÎM¢›«‰h$h™ÈX×lÙ¢Då³+=±Âc~’ì¤#5YFúБ€&ÔBã.Ø·ÎßÄ? Íóõ{É,?VéQ4Îú7N“ÌÈ­|ˆÃúGx¶©ó4x~E[5N] + ý½AûÉZp–ÊüÀ‘ñ + ¶¸3í|™~›éêŸñv6¦0‡_Mž¼&Éæs4¨’×7ž{¥²n­Ï%–K±Q'|»æ7ñ¢?½âõDj|%KËçl]?OVÐE>S“«±IA¡°^AG~fɧ¬Œ£r+!ˆÉ>–v $ËŸÜmoûklƒ[V¤P›© lâj²I …¨$xWtl¢%Ú6·kUjiRr NzãÑnÅ—aS¸ê@ÇE'@¯zߌ<Â9BZüì:òsÿáç¨Á`>¼úTuŸÒÆìá_§Së'â,nˆ·-|â²êLæMP>ïF€Åc_.7~™W3é_ôPüœb0ª÷A­ ¾‹£^÷휕¡eµ„*eX + Yû=Drå$ß›®"ÈÉf}®L9ÕÍ¿7êF'mÖeÓ(@+Ï;ÄÖVªãìAßx¶|CûÇ”6óÁwºRظÒ"w†ù“žm§¿¬%D" u + øDûG^]c•èj›HöãÙÛ:ÖØ䱊¢|õ û¥ö + V«é¯J’^Îï±41yíŸgWß“ü/ÿ‹ôÓmp¿?ne=Ç–ß×nùÐé ñ¸ÛsP¯íÞøBˆ"¡†n)ƒ?€F—XG¨Šu©ø•9ñPÙˆþgY“4 + ؇8MÓþPup;_&‘®¥[Eê5_Îp•ÌcOøðg ÝéhB¬”ÚÙÜ™–>vóqÞ¾é©i§H£º-ñ).ufðºÐL f#`‰4°úÏŽ›Ã–'d„ʃ„¯]vpDÁHÀºX*?š²3ë{j£rL³¡â¤Q)/í齆T›¼lvÖ¥äÐ3'tëÑ]Q_Õ? ¦±Á -f&ÅÔÕ†RŠè + šcÄÀ¥!*½Ù°„~»Øiôï¤dú÷.h©þçkþ'"·"§†+üÜ##­¹ö Fì,‡ùä¤aèK)Ùiú¢ + Eœ!`z‡Ý{›b©o èpÌïók9“Òÿ1rÉ¢ZnM2.Þeêøoé t®Œ= ‡£cvì.ÛcÜM˜_z¥‰Î-}7’䶠7ýŠþøÝîQ9fÇwþ RÕ7A•è?Œ…ç‹è›Ê@ë©EýñëÈ–F¼¤càÏS½¥K:­©Ó' + Õ»¤3J’ôÙ„ü8g®ö$gÎã,éN­+(•ÝhòÔUusDB(ž ëxÜ÷MKÑyÎÞßç#´…­$³¶+è Á̈—ñ[ÐÖ­à,†˜®ê·&/½Âô"Õ›pë¾)Jüú™ÎïsU Vå}c²@Êœgo #pCåË'fæ«1)”õ$)ø2tÓ#¼ÐlÇØi¤ÖËoAí£[ªu× òüÛž¦Öí,¬¨hû«c\tr,¯M1µ“¨VŽý¦^UH/ ^ÕL€ä.´%í® ~„h¾3lPÈ“ßÁæß$µTÎ4-@éEÜkæÆCŠbCb6QÌ÷®ÎÛ±Ç÷ð¥ä¸žŒ¯Ó°Y(.0 $ÂN»OyDòêïºå:Ôã|XËÇÄ2ÛºÍ1¯"@2‚ùh­ qå!ë5 + eFQ6rX:yMöŽ»H’“<Ìa>cgGâ@Ö "ק¯u8a<¼i°pÖˆ–KBd;î kDòhO#;Uy£» ¹ô(ÿ )–2¤tIV™–¸qÝ<—úg‹w2ò‡Í…Ç?ü1èáNªé8¿•WtM×Ð¥g4@—QÃ?Ý¢˜2ßAÈô¬ë×ûhgó=ê§Ë0,üèZs~<å-Üho¹™l)äitm·iºx>Óa@3"w–;ÎäÚ\®âGšËSÔ÷~y=ySe vo×Ù0šÆ_®/b#lÛ×!­$® + ÀˆyS%r>¥ˆ¾ŒmXI\ÆÔÛrq¦ð‚ì= Gðie¶“~p—ú©])î;-j¯=gþ6À)jPÎÓvêoªÛõµ»ÏþÚ½]‡Ç'ÙïI[QXÎù9ö[èK26 ¸Ã‡ƒBˆ,|ÕÄ**{öäÚõ‰À9d…øm¬ÅD<c²dµ7¹þè]BLVcáÐêÎ-ÇfM8àXZçLJ9à¢àñ{©ò ü´0i£TS¿GþØ~Ô&ÆcaAÝÞý;š‹œ´ƒ³ÁÔJþjè"…l$zqŒçœ¯‡P=ºUÒþøkúúõaáf?§ÏG)ÜJ;uP9q¶-r€”c1 Æ•iú9NgËÏ[\lH"Iw¸£YßؽçYãG‹½ÎÑTõ{ÿ#S©7/¬øµhà + •7N‚T«B + ¾‚îÁ™R¶ X‡Ÿìh±f*á| Ê³ gï£'ßNFv`OÊOB•‘öSÚÉt\ + P«)ÿûJ“92¾ -„‹î‡¿1¿<“·¡Aêû?³P€mÑ~¶ñRVƒ¹ãÊÀèT"3îɲçÊ6³ÃZÀx4e2>KhŸ¿›óyf,TžIïOìÛ¸L (¥P•[! ÂvkëÛ›àiW[×Öè9Œ°‰,iå"’éEé÷üp;Û—ÙqÖ!1ìWH¢µa…´ué<Ýâ=̨âtáßü¦Û ¶ûÜÈÛð™¼ICîȃ°/àWóÇû¾©./B"ÍÚ†àž-EåÔjZˆÑú³û»÷W“òù‘ÓEGߣ Œ‘/¤Ô²Dîÿã{á + m!õ~ǦÞuà\yXœçþ¡/ñĆf…íÝÇÄÊ—/RÈ®Þâr‹›vÄ 0dEBÑù+•Å-@“Ø5®”ø¶(qäµÐ†©öýUŨ$‡¬RÅ×åæ{3”RÕå¨ñ‰ö®ÙºÌÌÄþî5 + &jžÐä4Nä±ÒÿÄa´7/ÎÜàŠ¦Ø“G†R|n‹(e+n€þx!H‹¬ü¹m£íäÎAà³¢®LÜú«óÀ2ÆŸŸÕw,±âòRæí§ævDÊ Ô@º 㯰Rðµ"]:¨(°¶.d}×é±Ö˜"Š —àŸqöYS3H%Ï@Ý¿&—¶£Ùð2÷¥ñ±¿.IÓ=Êß®1xÙ$§´ÃŸå¤VV5æØ•œ¿É£ýËúÖ¨:÷äÈwpF²,;j98 Õ_ÁÏ£á/ÃHðD·¿)‹:íפGÖ{Ìö;n 'Ãc?Ö\êž+ß•™ÑŽ~ÚýõÐvj müµþ~„Ñf’,í=»H¦`ñVû§^Ám¯E¬#€…Þl‚ûH/èêvŽ©¯Ü›µÿ3° 3IœÛaˆ¢1„n^ 37Ù3<é®2Ö•Zƒx¨Ò¤¬¨/zê!ã^û{wK täà´èRJm²½Gö§m¨wô´ + ¥Ê-zh¸ddÐ Èiì´aŒ¯™—hý¤~÷›¾“Ïxç+5¶%鎅£Š»ãâ™M£¨«Ksìó0gÃ3,Mìocó„¿;P —òñXë + ‰~ë4ÜúFÍ—’D¡Ñík¹¿GÎÌ:†ïîBE"ÃgÈК + ¥tª•‡YQÀÕŸWã¾~éâ4‚r_—$Œ/$qB+¤rÛl>7uHûç‰K¨ætÍ(„ 3êTû$$¶É­x¤½ÌQn“qSö'Çžo&A±)GÑôÜ£u@b­nšÅå¹}ÁœðÚÛ BÑ$¨ì¶Ü+–fæk¥3¯e˜¸Í¤© Øâ^ßéþ½I56Z!”N©‡ ̓ øEÑü²äªBR>ÉHVžc­´¿’´«ÈOUv¼ãšEH´K€»•?J¡e=öTDú°Æ»,œeÄ…ý‡SqYyújòá˜2€÷.i—BéÆóHÊ.YL»»bS ?ª`Aw(Þ¹‹7ëÞŒòc·K^JbH1°”éÕÕp7ÂÁBr`ò²m’Ž®Z6æâJâ/q÷f¬4ìÔ + lû ƒË^}ó]xG>ª*ã9¼[:¡A$é²Ö¯ñÚ«Fà6Q$±ýÝ g'îyÓ÷묬•‘·Byª­óuWlÊêEm?åøBßæù¨o¥i16ødâÓ2þë$!ülÙ´ž¡aÒ £={iq,Vbt[“£Ív†º3$`2rÉרm¬I_(93[ØÚjÛFýcŸ!¾‚h)rj!VsAõj¤°×^åð& îB¾RšR›Ì†áÿð€ùÿþ?!°61tt¶³1t´‚ùª3ŒÄ + endstream + endobj + 15 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-4 -235 731 800] + /FontName/AXQRSV+CMTT10 + /ItalicAngle 0 + /StemV 69 + /FontFile 14 0 R + /Flags 4 + >> + endobj + 14 0 obj + << + /Filter[/FlateDecode] + /Length1 2000 + /Length2 12230 + /Length3 533 + /Length 13386 + >> + stream + xÚí¶eX\϶¸‰— A4îîw÷ ÁÒ@ 54îÁ=$¸O @€àîNp ®Á‚Ûôïœ{Orï¾Ì3ßæÂÞUk×z«VíÚa ÑÒå¶r²)89ºqðpòˆdÕõôx¸<œÜÜ2˜ ²PÐ ìä(t‰xDDxÒÎP¯ €‡[”Ÿþ‹‰Éurö‚‚mlÝ̲,ÿd ¤@P°%Рt³9À'±BºN–`›' tþyÄ rAÝAVœ˜˜<<+°¥ÀdvÄäúGKÙÑÚ ôï°Ìù¿‡ÜAPW¸€ù_¦,¸§•“#Ä `²ÆäÒp‚×Ámþ‹ýßxýïÉ`ˆÐáŸéÿµYÿÇ8Ð ñú¯ 'g˜ + Pw²Aÿwªèßrê +0Ìá*»!`KiGÀýïØUì ²Ò»YÚÜ 0п G«ÿíß¹pIjëèê³ýW_ÿ=ª;ºéy9ÿgÚÒÿÅ<¾?P°'À˜¾Á<ðDø¿ÿþËôU“w´t²;Úx@(è… ?BpøðÀŽV OÈnÌÅéèäß?€µóŸ–òñ¸ààÃ?ñ‡ø\.0'7•äOPÀås°ø§õ6Ž‚.+'ýp9ƒ – G·?1aÐu·뿣üÜðL äYÿÉåçù¯è¿Ï¼ð)\áí»Úÿ Âí!0×?¸»¥“ƒðO.nëål ú#Í/ø/C°Ó_*piWÐÕöO®ì ‚:ý ˆ¸œAÿa¸½›ÇŸqáJCœþÔ€?á + rÿϨ ü9Èõ³ |Á ðÏf Â×jóÏÛú³­‚|ÿtäúÏð'_œô‚Èý!xuùÿ¼ªÂ‚—TüCðrJ^HùÁ÷JíÁ+hü!xÍÿ0¼‚Ö‚Ï©ó‡àsêþ!x“ôþ| ¯ÿ|N£ÿÜÓ + ´´¹ý3¿ + ¹,àáÿÙ2¾ÿdÿϳ#ÂÿÏÙ±ƒ-ÁPKØŸ“./ ƒ¿!PWK'èŸÎÂo*®?H¾f‹?÷³üñpÃmõþÓÊ¿®iýÂýlþB¸•í_—ÿ…p û¿nù áÖÁ¿]¸ÿB¸†Ó_×pþ ÿ9I!\úÂ5\ÿBxÿÝþB¸ì/„[¹ÿ…p+?È ·òü áV^!ÜÊû/ü¯æþG£yxùÿéô_~¼ÿ•÷?[Ìÿ,þ»Çn`ˆÕ¿{ð^Ë22Nž>ü^ø}&ÄÇ?´Ü~ÿ3íµ#þš)ËÁßonna>ÞE-aPø…äö¯!üÂÿo¶ÿ 'È3PW[ùy„›Ä¼œ‘9xêþSdP°Øk¡GˆøBÜVCúOß/L}’‹uö˜¾ ÷uæ»çwOÃ*ÂÁï‡ã§üÄö•Z“B½Oô±¤4®ðù¿œÏ¿ç¿ÏÂÒx ÀokÐï”L{ÃÕŠ{mèGmàñ‘WCû¾†9ò›&=±Ö¬UcÂôù§Ï–Ú2´!ƒõ#r‹CóÄ‹ž"C5<Õ쯄3çå±°i`vˆ®¨ + ìúâÚ‡Çe#h鼧ì, ø;.UÕŒ/@²q“ÓfÈU w: "¸o’d_¿-^ŸÚ°õ@þÅåyeUêÜ ºsFÕ/e®†ùWÂ?s놙UPv¡ü#oé®·_l~ñÏÍ ¾ºŒýÆTO¶xýž>díõ!,ª$¡–|–¹ìc&ž Ä³ñÐ.¯p»+V**‘ êD„ÙF^15úëDà8ªŠ î#õÉÁäÂv&ÀßÞ]CǽI³d¿¤b …3ø½[³«GÇÊJNâáÍà…)—¾DÈ-c©ðIÈ—½±ºüÙY« Žõ.<âsëC‹±Š9T[cgj Æz¾g9`ÊsK2¥šµˆY + ÕD¾tUYµ¹Q¯|Úm^"Ävî‚^yÌ5/ÿR6& ?Í~fûbzÜ¥„µð• ÷øìö¹vm•+PÌHÕ7ùêeáçpòŸ.d¼§¹>x/‚ĽqÞW'7žÓá©'_šÝ å–ÐèqÅÐIåº.Ql–ðdqÛËšÌ1½Ã©ÌŽ¾±VcÏøC!†¢\Ϭ¶ þ ÀîYS îâ<û¥[Ù + róë§.ÿÈâ·J+GÏ@uf—- g—ž¼×É™¼rœEš„ãÈÊê–Zùáª2Þ‰Œ¥vÈdº·¡– Ø’ºLÓÉÈD±ÍôíÈ¢¿ ËFg»Å÷ø’2΂£o„?qδ¤Ì‘×.œÄµÈôo5ƒõi×X§4Ô¡ºjE‰Oæ\!‚#J™ï%­y£ê—•éß/ÒBŸ_';'E/ „­f + ÐÝíR‡¨ÆÌœ­‘±Òé¦pµæNÔûlE¿¹Þ)ºU°a17˜ éuø9A…IÒ|ÎÀ ¦ ìãž`æ÷ðî…á…Rz|¹xea-08õ=.EïݤyYYÓ¼fa›ý'gŒ—±?BädY¼…·‚3_¶•åûªË­®qiêB9e U©çÀÝ'¾'VϤ +êÈ4»áp•ôõ¢*î[Ò• …Ê 2º·j^HJÓ½î‡òžË¹a5÷‘ìÔ~MXÁµN"tNiAE‹|B¾!÷˜KcÎà±7Àn7À¥à–‹·ÉÚC½UJ + #Ó¯x¢ü¡ZD¤«¾ìÚÞûRïîÇmWíCÂóû׫¬Byø-DHÓ{xs_ßRNí=2Xª;dÎÖQ±^í[°Â‚[²‡²pwUü|’KýzhóìÁ o3³ðÿ#ñS If躑|&|ExoBy°>-ÛdÊ~è÷*ƒ·Œ<™ †éçq½kLçµÁìì¯Û1Y£¹IIe©Jh΂={÷¥Ðïv»†òêÁ5*±3·ëgHølñíuÎAw%+î~dèÁmD?m'í ìúqÕÞå:if )æ_ù0zUð¾I„Ê÷>;+­„cž¯~B=é ›uçê·5‚nYÐv¾÷Þ –ààd÷ÕÄò ¾“çXgô^SÚÚî«3^cqo‰G¬ãk¾ºO¿ ®ÕašÈA¾ ò‹3KFµö»¡~Ô­ËÎ^Y݈J¡”ë×$×)•3츧9:¯£¯Õ·ê“Ñp®‰Vܤ ÜŒ~d|qì™à­À#¥XÇ·ÐH¿Æ€`Òn× {&d!”’îaÉšÄDL KHÕÙkÃ8ÞD·“…¸£,f“_aäï j¾Pï< 38Ùúí1Šš{à‰d?Q#îþœÝÖ‚¢ˆ‚Ûiô¤u-*3·º%™Fà]‹ìÿxE„HÆÜ9zX[RXWhô†õs2mÜô=sóp­­ŽB›DÎCM¨I®éƒ2ÒŽ\ˆ„ë vâYSi—&Ä[¥xGµÙÔÜXÎ÷HÍ`yµ + ”QQ¥0¼g;«ý:軧¨Ò¨B–äj*Ÿ:ú©ð XêµââyÓ¶ŸvëeZnĵ˜úHëz›‡àwÖÂÜ#¤Ø DpZ£xssºð9÷·¾.$2ûõÎT6Ï×Ql¹l³ô™Ðµkí%RAY¥Gàá %«W6¸³{´u|É$ ð‚3ZŸéçO]̾‡oyŸH2éÏxÀ‡Ïízzœ%;Pª8>¯«.©;²ËÿºÜc’r}oÓ+‹šhû‹¸©º·\³,%Ïî[jÔt»A° º cº¯Â—:å½nŠ/ÊÀ±{M‡:ßß„¹ŒLä´;áZ}ª-´Ð,3>ÂÞÁ2r‰‹êïó‚~êßõq~e’+–°ŽÜÇ !%)§‚Pf‹SqW7`E«ìP*žzÖ˧‚¼8_ b†g[*{蜪{¦¸êåæ9œoEP”=èâÚËx + ©Ü»µ#­*‘¾ÀXÚ¼»iK+a| + «&Xóä7ÖÍøt—Èf)„½–ºfWì«÷ — + ¯`þÓP< + {s!gùZ%­ù âÒ'‚RæK]E?Âû ¾cÊÐ+ˆWl<>““‡ÉïDÒSµCòØؾYÜçŠö¡\®þ¢ä»©Ÿ¿x…(]ó«@#\OÊ“°™Ðrå$A¸qUo¹-QÝ°åjMus^Ûöã z3 + L?”óCtâl6õµ·>kÎò§bˆ{)0T(`oÁÒ!mØòå*Qã`¬aJ,$Vný}È/˜X›@ö¡ß“¬Þ²¥ô‘AXLk±‚‰áåÔ…{nÆæÒåK!f"ˆg¿xùÞJ¯+üCù³Öþp‰-Ò"£,ËÉê_¡?ÄjOÝC§©iÒý3BØB‚úHi"8ü‰>Ä ¡½SÁ%£.¿“„¸Ô -+ªm¶ÓšŽ ¢”0½\V?H»ÈUÔ›¤k§Á Âw/<ùcWÛô)•ÈƯÂ2É…ß±³OhYõ!»Ò š°óo?³è»@p…HåÉÄAUT4{îpµJ«¶ž† óŸ‘2SujÑîz^ÞéÖ«é‘6ÅŒ¸Z) rþr¬³­4Pj˜f‚tœ ìF»Î¢·}TQZa/:uc„óŽêGðK²Š²…d¬G¡ÞÈÙ»«ëëŠÎ—o°Î¨€ó%ÒíZ&aOøÃŽåbر› "rÔxjDì×\ú@BØë2†wSË7g_\|,ÓÄì놈øç½êÇLaâú+)*íæIdÌùÇðªá5Ÿƒ­>r‰_ɯvòªU\ y«ðÖÕ•{+Þ~k<á^”,S$ )íÔon/kÝ|oíu"^—Ÿ"H§bîü¨Ž®-ÌúÍÖHÞöw‘¥Ü’ÕnU|·Òz#nÔÉQB,!MuÚ†® × Eûd͉—¹´ä¨s=(ø‚ûª®Kùc±Âòc•¡`SÅÉÙY¬Q±1Ôª6¼\óá7›»ÕcÒa…åI»–v|ÙBŸ§NnˆŸ¯ÞâÎp§ËVˆƒŽiÜî7¯Ï÷{bä9ü^=òIé"Íôä=®ZÙÜ—|Ž¡åº…W«G·ÛžJWºø-Úy+¥y.øhùËŠ<¹âÛ¬Ö”Zè;´hü¶‘jV0cŽKÇ°¡öÀnÌq™Í#þX;ê=ú 1­ëʉ0¸¥–ÌÀDiu6-É«TIÙ©ï¿@(¼Ó”t^ÚÐd’Ü»öN!©Ÿ‰ýU\Üòšx™câó2à iÖ(:MŽ0m½sײ}‘UѺW¨ —Ž+;=˜€Ž_]ôQ×°‚î÷h˜|û‘Õ¼¯€ýé5þRŠªQRÝîñØ¢íšáÇ êô Ÿ|ˆ(–: + ‰©.’ùÓd½C,Ýòê¯ä:c#öÄ|¿™¨+ yüœ!gáã>qDÎWÜ>?;yŠ:hó+5á;¦ñ‰TÂíIC‰ºQq ³ö8nó±,‰ŠÖòaÁá^ÉRöfg‘sð¬ + ¥³´Ê‰Úï°kOô† ïkHÌ…¿øCݛՖj + ­çŽEÚ 7<3™#5Wu¿‚­žÐë#ˆrßuVn¿gy³ÒÀ¤Æ(…X±FM¸èJÜÃa˜”7£–çk‚4™ßŽØý´þ{D1£ü„ÈÔBÉp¸³êÕ)fPÿÂÐV: ý…ˆïoqŸÑ-ª†ã¯/6|gÄÍÚ‹IZÕqÜÀo–½Lú|Bõþlù¾rñÃÌvçîïóZ6Ûºa„Â…6ehšª¹n¼ÌæKåÂ9$²¿³Þú¬÷ÊìãðÆ5Ìa_¾hå!,qWoRÅ¡‘ ÔþÚ*ö) Ì¡i#Sã瑸Jh¦tvez^qù™ üJº¾T°iÔ̬`ËE}¨ñþ-¥Ë Þ×æº×c9UÌÏ(fBÙJ§†êE6âÓü3sMX1ï!¹¬‡!¬IÕ¦aI6ƒYîsR4#è3ë'ϧï1¢‘Eõ fU¤¿fK¦#ìü~›OEl˜mÝh_ˆÞÓõSz‰{¬ÈÚ¦*ð ï + F«.ÆÖN7ÃêíhÞgÝSØ:‚ͽLñÐØWÅ;Ïþ¶»s¶zõ|°á¤æb6 ‰*]iø‰™Þ¥ ›:Ëùk¿x.Ãý ãeÂoŒ(ÇÚ¯®C–ÉÙRó‰ + y*ì– Q›íGÙ5-goT_ZÚÕ¤š6˜_*‚)Ýb."¥—õ€`ÞI&$Õª `å.×Çû×Yò×:WƒCn³û©çÙ”Á/,æw:)?ð`¤4—ݪ;x?1ø¶…C'ëÛåÂ]L*CùöÃñx×À«ç£MOú^Èdq-«F±¶äõS&’%hŒíÚ¹æ²R¹„¥[fb'¡Ù¶—ú^ZE™¢kdß qYô¼¬ + ¸»Ùòa‹Ž¢‰²¤8§ye!.W+QtOû6¼ñÜðã»]›^ÇÚ:£ÇB—¢•)iE’X¨À#íš9+¿fù=U°ßçÃð2 3_c ƒ[ݤÍ%‡ÞˆFgÏ°çå“ñyj ÝÒÌÁ¶ï™Š±~¨Ø­Ú¢ÅÀ²ñ[C˜cêÉU¼Wž½’ ƒû:íëÝÇ…LþöI!atˆ{ç+ãW»2d€Ê™Ækö=ÅTn'$±ùê fÜ5Ro£í~=sD„Xl+‰-°Og¬!ª¦AìæÙ9±pܨs¿@Ñòtö2½’Á»mþ@I%AûçØ(IÍLãy‘VêÛÒY°y4ò‚}ÖKç-*·Ïœt†2À)3jÜ}¹ºi®ÆGÈÄäØÚ­tºtV/XYIìÌåÚ9qîfÛê+çfï­ë2¾ï&ðæ!Z›ƒ + ånƒQ”Ài—yD^â¿p ƒ»ººzû¢Øäôu>é3GhÄ)ß»Á^˜G??iÓ5á¥Ô«[¾ì•:Ðn'«ù:´è-0sÿý³Ì9 I© K$êzâ]p³± TÎP'º.´d0†‚ 8‰¥^1È’œôLªôaS³ÞèVq`)S‚nQ>8%)˜å|ò<Ü° ç®ÂH6ýqÂùÆEózó‘Ùc®ÐÄU‘ˆð¦öQ¯?¾‰Òâ#c¨œÝ|?ȶÍ3ºó¬aß@ç‰Z#Ï®†j˜ü(ðƒïîˆÍZÉNn-¿•£uüà{nH©YìsîÿžNŸ ã²fW"îœñ¤íý™Ào\MhË)èÔsïèæü»C `-1ìl{»«e˜e³ø )ùMDyóÍ¥m¨ç\ºoѬÃÑêסﲳ¢Ë Yù¢‘‘{þyêm¶ººY«´âC¯Ï%#‘F+_¯.¤¦÷YÄ`³””",éÕàL‡ %·²ô“¤því <ãkѦìð"ÊG¾Óœn<›+=Uç{¸¿Ó£6?ä,,rtÖºTøök®¤©°_b]wªÕüõÉÎ$‹´ìŸb°Ç-Ðet¶iÕKèˆîU=ªNÁ + ó'µ|j&¯uï^n¬c¸=1§eÄÕÌ¡/Laª2;o* xö͈¢ú¹¹žôF¡çx ÛðÔ´ø¸®ž"0ΧúQ”¶¡z„›òöË—ÝC §­Z ¯7|)Léæ¥Þ™rvÁÆsâðCmÚÔpŠ¢O„ ¶oÀ@Í0Èž"â%úX + õ§u¤‹¦Úru˜V;•~'–zÂŽ+ÐJ¡5rUçõ~) + ‹VàuÔžã²ÙBáÂcNÙÌÚ­!mÌÌ žç/O01×&Ð ïÈm¶»¹ÚÝU+™GW + }Ÿä3 ™–/uÓ¾ÿ‚’ñÉåáv «)1S]X!ã |¬½ùI­³›#„áÏ"—PüežvFŽ»WñJ;Û#Új¾-órÁÚ@ã>Àœ…×׺Ãç:DAuêôÈåÇÉ…¢ +  Š‹Êk¹ /»2Î'–Q©•w£¤œóA¿Íe¤?T˜zZ0:li¥l2EÛ| Ö…"%üLK¡˜ÚÃ#Ö&2ß|öüŽÞŽ7±Y߯ä5!¼Ž×ºÍuÙ±ñA³Ux¸O‹û«Ø;ÃŒ×l²Gí¼ýš¬»A9÷··Žh¹Ño¾dq§CÉW#^ ö[âY|,×JaË|ÔûˆªÝ•ú=ÑÖ¡Û%bRvÃrÑE7ˆ5*œýý &+h–Éd>éû—ÁÀù¸#Œ¦Ý-ŒÏ]ÜêKýHZᦠ°³•øn®È¾¨¨Ö[1™÷aDêâ–×Úý!èo…K›Ò²ˆžÙIÝ`×sieÜ͆rú™ñ7Ê7Z ºì6—~{½ç¤w5ÛÓÇB1î!V8.ŠùÊÀôÖ°ÜÕ×hIºÅCCû O”ꦞvMSä[ÜüÃK¡Î—>ßøëîuÛÝÅ:úÆnì®ó»¿½G×­¸ÎÀó÷߇Ášè?½{eê¿«t ÐèT :èV‚‚r_V™–žeŽ¯×ç›·Sh£ÚL¼©ë[AúŽ¦b>﵊H õ—e + 8—öÇÿüÞƒËÙ‘áôÙB‰A°ù\TGKÏEšŒ?€5‹b.ë + '"N" ½ÏíK\¶ÇA™:%õ{„H® iâÑ©`“ßͦåJg7]Olû¥Jñr¾Y²ÊÚNÙªÁŸÔ\—·Ì48Šßx¯nƒ’DF°SîL­.p I*ýº½üCT=JÃm K¬r‹h¨žÓ\±A8®QCÞìd°af|Ž¡áîµ@¦Ój¬ß"Ø Më­R/\î@¸?./ÜôßÇÝÛ!‘žºõ'c'nìÒ’IúkËÏmµ¿ó—#®Ah©¨²»›]¿ + Ñ$lg÷¼=•÷[tNg>o_ë¾£aÌaâM>BÔn0µPV¢]ƒ ‚±Óðk˯Srè8³ïµd’nøÓ‡lU›(ÌPVáKÒìŽn{Mâ¸ãŠÚÂSoa®ïøÍçm?+C:a7ƒæYoíI¬¦xØFž‚vëŸ{99äCehsgŒ\ÛÄÊ-›×6‚½8…m‡rkõpÔÈ/èRÇ£Mr”Ú+¨kP.8Ù!(ü§~þÁ¿54¡èGŇhÑ ¤>a‘¢aª^®ÄˆþÔI²܉þœ¯ÍËe¹§>|Wvs/)y†YXÌf#ÀK+Òshç¼ÍB3M–>Ý»ØUO_š÷JS0Åi»ñŒí`ÃúÙÂ9²!‹¯“EŸÙ"ò9]Ôˆðqed{˶iA–RTè_ÌÔ0‡ØYd5kNJ˜Óuzâ>#Ú¿FÓàåáe–Qi™ÜxÜ(¾IwGž£l‘¯qÃýžQlG5ݶFcЋÄ1hˆž–sÓojÒS€íßÕsùÜgrGX3ÌZ5(W}ÓÅu·C ÿ1mÚ•^£Ôù¨VÔñ}W!0œv©¢UŒE¶ímÄåíñ“›ïãö(AQPœÍ×~¶Í;z{CÅ(¼O[ß?ï|mÒ­QCÄ? ØJ&­æ‘ tþÕ‹Ñ©ü O iº  ÷ÏíÑ,S.8¯¨é{¾¶FUNÙì>†Œuó¤rváe\‘äÆCy;üvC…5¹ºÄâ†\PnTôç²ò6€²F³X…ízÐ~ŒÜLð’ÁÓ¡x]˜åƒe".@XÈUHy=ØP,o€gô›.'•Kÿà*ãg¬Yéb²±†¼ú^eFßÝôõ`ët8M%Ž„ªæ1‰”¼ñ w×W¡¶¶œíEÈR¸NÍe¶¯Œ®„’‘'G»qôÕ¹ÅïzBuOE,cbùÞ°ü™Ú·v#f¼ùA·)¾?µ^gµ¾ûñ² ‘¼U›OíQ"֌٨˜&£>‘ÞÕækÑõ + áéÙ«ññV$ÜJl¨ëKùî2j—EÐ$ŸÇâÓ«Ÿ{ãØ ïqdë‰6Ç + –Á†Ÿj>Î@vM•½¯sä£ýè´;BRFM%š/I{v%Ì…ãé·“M>ßÅ7Øf²|JU1¸sÖqì/{'t6"àÍ\Ç2‘¡52:bäë?ц|yÕ„¤¡ÞNw‹ˆîeÊÚª ÑÕ72ð|«êþª{TböèÔ-XýÕ¤ŠñÊE/g^æíBEù­?ïû²Ã3d”+­¬*Í©d½úž³–®¥ÒߌPp­'Á6|zÈ™ÓÖ çíS£üØwUþDWkí‹ ¶Ez9à™G’Æs—«ÎIÖM1½è²‘aÕ¹IûŽëÛúÞ·¸ßÃ×~+*ñ + +¾ßwó—QDª"³@þ’ü‚um¡(C¯G=H‹ö+Ë^ƒÎwÂòaþšÄ³ãò™¢×ÉÎ4Û[åâ4º× ´þþ‹gw̯²$ÉFò—¤£bƒ]–²„)~÷ÿ†õf]¿U¸Ùã¥éà4ýu”–ˆÈö)Û³ä»-Å©™®Dõ€Ã! ’5>Öh¢9*êæxÙÌObíüY‚,ãÉy ÈŒ¯|KwLpŒöbPTöSr“¢ûç#ö°aoœÛ$½*•RѬD|èaõZDØKäWÖ8Zȹº 3_p&#y¡BëÕ7„›ým<ƒd«{ždÇ—a|þ6 ƒE7š¥âƒ€±²_ãüθð:IÏPlïI¦µ.Ùñ8Q¸Ê:ë~î‚íoVuxò*'_·ÏìœÀ»Pz‡©ƒ'°l’èÈk]þüQ o±KÕÖ½xíeꪶ8Ï+‚7í—¼( ñˆ M‘'Ïå5.æR~§mÙ`²+Ë&aÉdïk÷l,a«þ £J&äºòië¢7nOAi´ËoAo˜öKa÷t²õŽ›¹sçLGAÓœi ZžFˆi@Íò1m”»dï<Ø"t'Lyu¿Kp¯ŽàðÄë6h@Y\‚:Ëp»òR؃9?a×àç(ÒÔ+™V÷’afÕŸ§4*¼²ï"ÞfeÛ%}£;”O¥ÿ(ÞR”¿ÐxÿbŸõþ”­.ÒêU,BÊ'¼3….!¼©þ™í·È•ÎdY`Ÿ&]ëÌÎÀ'&FX *ŠÁOþPóf¨üw £@FÊšaÑ¢#&¹WÊü&ês‡]VįF¸ìa)²îBZ¤:Úêšôïßlf+×  ‰äߟÍ}~Ä‚ÆfÀ|zahL¯ É· æ-Ô®ÀšrŽá£Bêp +$giGÝ9´XÚ ¨ÜópÞ} «¼“ýìå&9~1EØ…·=û¡¨M·¯ƒX=ÎÈLóF!5bA¶êxzy‹ú2ë“öŠ ^¢lpOþϱÉ|eïg?öd›_O¶Üøa¼—ôˆOÙFcqº~Ôf,™ûâ;±¤Do&Œƒ(¼ká ~‘¯±P¥²TÎŽ%£/fY'sE„®vOg(2Z™’Åe†Mp#„ìl¿¬¤µýre¶_Ê= ÍÈ–Uˆß6n‚b:‘Å›’÷„.ƒ­ + -B³!Uù¥u§~gï2ŸmæÆ÷ˆPxŠ_ðÑe_aÓ¥?Á®?ÉRâ¼!£¶£©Eý€ Š˜‰ôlÑálËôŒ˜‰Z<è¡9êV_æ¥ßÔ3Ý¿ ‘ÛdÄ]1œh;F“nMyäÀF„sªÓ»RýRƒ™`¦|æ3í¯|äðdK“ÆËf‘ ÷ÈAþMeU ÉrcK‡xº¥ë×oÕ'm©¦å~qÈæ*F°oû«þÐú2ð1—ÖYÛ{1ÕBÉpœý¸å1Ú—ß±¹ÖÔ˜JÙ$(?¦ brÁ£è±^—ñ`³ÖWjAx» ˜N oÓÞÓÅdܧÁ?A£ ×sß!-ïÓí®©~Ä‚Ø9X”rS¡žâ<Ùǯd@ + ñÙJÙ42-µg”í&Y‘ K|‘ ¹LöÓÊÐ,ˆãhóJ{pƲڈ¸nä:Í CE&J@+qá´ÊˆÊ#n%`G·ó¢uפŸFùL³?FŠ½¹ÑìhØž&ª1]4M1÷"Qoàšü9Ïwóø&·•¢ÉíèA’DQ¾¦•Š`G…O•…Œyâ)F—a—ÍgÎ]ªË¹ïcH·î¸+oç¯ ÄŒb¨dû»Ëwa?"©öŽCFŽU–#±£‡ÐæG[Vc3Ú䄲Qa®ÆŠb”Ý–lé—8nn§tÜû6ÁogÞÍÏÏ/®å ;NT;#5ÐDxÏ<³¥IJŒx‰]-ÆòYl/‚å hÆE˜A’±˜zá3•áÞbÌñ‚Øþè¾JžB]-SM÷ÕcŽO¹å·LÌþñêãè+’+öÁ„Fâ!'×# Iƒð7ÿ ©{9Þ§¯NÃItŠ!bˆ,íš Kݱˆk™l¡ô“L}÷(aˆþ›/âÆVSH6y‹½qHÝ­òÏâd+SõQPøÎjÄHŸüA—'Èj>;^ÝŸ™’yR I"=qÉãSÌÞ¤lúå¦ãi1L‹šøUUÖťܬ?yJµ*^/—·âµ·78»Öß-?«ÄÇo^Ó;Eßï-j£šÖÒ}›+¬›xZ9›ut¶|Õóí$Œ3‰†œŸTŠoRIÍu˜´%^Ûö½§nµfY@€Éž¦`§dD#˜PÃÌîC±¾qäUvÖÔĵáxé/— ý¢-ƒËl{Ô™;NTÞTÖÓÖò<–çY6…@«c§Ø%”ÄzñƒÅJ~>j°¹­¤ž©Gž°Ç’³~F´õ§1ö¨r|6ߟߥ9˜wVpñn0¦#_iqE°˜æÌL[®d‚*ëÅK-ðt“DƒûÎÂô†f QÂ1ö ŠXg×A=­Då*CÉ„'h?b̬ðñ%?™厊2®èqVÏÐHª8L•Èï dæ¼gVî&ÔGR‚ffÉ»ê×80é< SdSü¸ÅùíÌ + Œ^Ü0 + 3Ñ:" é&´7Ä,j-éëP»lz%£Õ UÌBQ%­8ÓB? + ´>¦2òñÆÊý-ÙëˆSwyýZò=(Ó%Ê4y(á7u|”¾"ñl!NïCbSï¯Ã/.˜(Õf¬qÂ#Å%½’‘ă#ÀX„œmý­4º@‡G^I›M«VƒXÇ¡ØÆ N¢†tïó»zÀš4ÅéÛI Ï!½…dã<£uaËñ#W-·dÐ5—ÎjºŒ)vÙfufT±±3]9UZSÐ:T/dsÔجU^ø›tdd(ó:‚W„"“£–M‘]祷ÈãSwé":@ ëÓ|”B‚"ªpò‹ qÝÜÝò@Zru[¾nšƒÉSLžˆùX6®0±vžeÕþ8§ãKðÎs¥¥âmÓ1•éỎ#ͪb ‘YgÓÕYH…´iós~B¯=>gÜ»´0ÀV¢L›ŽÆŸˆ(Ñ‘aÇŠaœ¼s,cX‡~™õ]@l÷…¿êÞ†ðwå÷†­7„ž}Äñ¬‰7ò8Ú[Œ"âÇ‹µ0ï«aÆœã`¢Í°s„T?a_s×D‰a&‡×ŘËC¿%• %ŠÙ6÷°CËoZ«+ì4éÝÐké‘6ßlfä$“6|‡šù#Ix¸õªÙ·òVÉ + Ó¤í]äè¾Ý€“( ÀR;'|%>¶ýùš¡ë–T;Ü÷pM »Ä)ws ÿ§£7zÖä>öÃÅœ6ÒÜ·/Äߘû­2¥")Õdî"#xI¸låwËo2»²uW%±˜Dïqå"»²GR>Ô|@c,Ëy±êÃ{?§9¨0“’t¥˜R¡è›4XÃíE¢4RPºÔ'v™ŠbW–Ç45RUa–LFNþfW”àÚÊëÏ6#E{x ½oºQ%ƒÝí4mäÍ=£^ãRê•¢*°•Rrï\E'Ø-ð˜ + \Óš™½ ãuÏ{}L­æòƒþ¶D­“žkóqéËÞýxG3šóæ²:`sWsʇToçÛºIZÿÕ!²0…½_VäTªØûErÙ³YFä¸Qƒ + b•úO×`CÚɾük~œË¹š€(¾½¯“‰‹šç¬³ÎBÂ$¿>¤àwo­®ÍÑÝ#8z·¿Ê  ¦OÑ!¯¾%Y>ù ñ`Ì 7p:ÍPí«í\7ÜNKö÷àüJ=‹ Á@Ð+¼ß¡—¦éÕÁ¨DËu€±öè€IJªämÚ~†™Ð1œød"ˆ+˜92¼ºÛK`I»6™nª¡Ðwãp˜›YËd]½ûôþ`‘«8ˆßvù(5¸§<^Ð+uw)VI¼kVg­,@»SÖ`õó4}é'êk¤“é&×s+ƒKåÙÜ0eAvüø;#p’}—0TÅÔl™»ü…ëK6$”pÎ2éd(ù0àÉe„ð‚Ð@|%ólW‘^!A7þ;q!7bÃ63Ÿ`ÑÛ†œ* s#Â8Cd÷²@GuÊÀå[¯ ÞV–ù=“‡£bíD™Gû7¦%㣴ªZ4š¡Wë„û¶ôÜ¿q¹‡Ê¡#Þºdö·Ñn­ºîÐùêDZ*—”û¸ó¯Ð™k­ì¯“Å-4›b¾Jm« á—ˆûÆz‹í2r_ºËD9Ê¿w ,,5-D¼­t4½+Áb`k?Ê~ª @[ G ¼CF‹Ä ¹ÚYq&ÐØ’ +ë|7Èö€ôq#;‚=’Þñ%–Ú¿ïDl‘ý³TT]õرÖÜï:I#ÅÎú„"ÒËä§E³÷ºê,¸®Òh×½»’D·wì…L¨¿0ˆtºcD³`|È’M¥]Ycn ì¢÷tÿr âú]HöšIÞf}áp©È`:ðZ‘¯7³?Ý + Ї8‡»ñ¡1=ˆzEää|~|w´á±ùy;%Yæ7û3À"™©¬ç©fÚ‰/™ …ç`ªYæðd‘jâ { + ôÅ%YóÙÎêGcÁRiÒ&ðHþé!i–éǼ6RùCák + d¹zଖ÷äáÕ§¯có¡ïcUÚÜ؇(÷ºÖ¶mº¿ù&g_´ñÅÄùRÍ(RÀŽÝ(+¨ÐïÐc”ƒ« æë¹Ì?1‘jHdáF"«6ãz=,Ÿv<}FþöÝ + ;™¥*í ½@~aš¶u™J]mqÌÆÀ/êKPˆ±MÊAFk .»kuú~/²ŠÜ&ý•híá7xŸl™ŠúÂBá$ªþ导rßÀšð›"5NêÀµù´@×ûJ®ßŸ‡<ê½m­T¯e_î"ž”b”Žå;ñãdògïL£~: ¸ˆ©|5Ý´‰ÚqQ •o¤em€F;\’JŸ±_’ìYÇNÄ*“6@òÈZ€ÞH ï­4²ìDš…ÊTRè *E´‡V»õE»?$½ì¢WÒxu‡ÛóDÐ ó§{£Jà«Ñ üÙÄð.‰[CI÷Z×”+:¦ôP&â> °¸woÓ·Ý–ébšA!i‘³t^Ãaj„¨•ûÿåæÿ?Áÿ'&°„€€P7' Ôóÿç—Š + endstream + endobj + 24 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-29 -960 1116 775] + /FontName/GFGVUD+CMSY10 + /ItalicAngle -14.035 + /StemV 85 + /FontFile 23 0 R + /Flags 68 + >> + endobj + 23 0 obj + << + /Filter[/FlateDecode] + /Length1 783 + /Length2 661 + /Length3 533 + /Length 1230 + >> + stream + xÚíTkPWÅ*ºVgjmÇQ.20$ìC øhÁWÃS©X—ÝKܲÙÅÍ&$0HQ¬„NË øLÚDlÕ‚ŠÚ¡Z@JE…Štœ ã  Ö¢º§Ø?þëôîŸûÝsî¹çžïΊ\Â"$*’‡Á,ÃK0)¦êˆM + 0)ŠˆDÄyŠe‚p*æ燕A 09@Jª”+DÙ$3Gi·ñÀ=ÐÃÎR•r3@óÛ N!pD°y³Mƒpû=‡zÈ!)E $Eð j)ñ²›ZË$°@1¹L’^@FÈé_À]ðé—$ËÐf@ÂÄKà + §AÁË?¶õ7®¦ŠhZƒëìòA½‚ã:Š6?g°º$9 fIÈ1S©1pÒœ’”A7]Ëã4E¨- [&E½å“¥¦L £xbHÀi=œX‡ 9ÕŠß„¯àè¨ ñóÖN¢a8Åð‘æ$Зô‰{Y 1q” ¼JQˆÂ÷b7å´Õ Á’£2¹À97#Â+*9HÅÅРI°ì%eX^Ø„lÒ@Ë!ö¾b + àEPACÂÞ7Þ#¯^( €5¥Jd~@âç#èc˜P(äi%F1Ôv\ä(ŠúÊ&/H82üÄKÂzQ'PBÀš ””Σ¦}à¹PüxëðÅÎÅ1gšÛºjö»Å~…½«¹º3?Üq'«)Œkkk{•e·Üvî’·Èðƒn¬]ÞêZguÒ¹ØXå-#.;Ýh­ßùÚC‡ + †ßC¨]‹®ÈŽ>¢òôŸyüiÿöÔÁÛ‡ž¥dn½«}§¦iyÌÜÕíK + 8c„#Zþl ±ù·¤pSžvúÙ-¶ï=3¯8ÏUÞT„uÖÜì¢üËÜVôȆ,ë>[´ª5èIƒuÌ/ºæè"ÓºêÆÑŸs«ß4v@Vž‰©ËŽ÷îº?Ø08§%ÑóÃ’råÐ'w{Ç5c ·¯»Ñ‰¶ùIËûœé¢}³‡î:Y2­V?dõksŠ^\B&ÎÈ_5à_;[|`ü‹'QÚOÕú’d¯\­&Ú°¬ñÒÙGWñî<8‘É=9ºñü^]}oF òñé›Ø^ë§w<³ùGÞˆamWbSF¶XZ4?™/V&ä…>XŸ{ðÔ íbVkF^Khÿú÷ät-øÕ{+zCà´†ëæ44«v|SZàê9¾bF}œoQwœó + l¾ï©E¶êœ<ésC¤y47+àT”4EV·ùó;#0h³›ÜÃÏú¡iMÌ÷Çú,¡ðxÉ’JNïξ^1ßúvrÍô•¬_"Öù-5àüÇåc;RTye«Ëûâm·Ä=¹#+.]S¶]õ(l7äµWí4ž–æP+í·E¹7dê¨nvù1´hW«¶I?èÞ_îîuNÓ!ëªÏ> + endobj + 31 0 obj + << + /Filter[/FlateDecode] + /Length1 727 + /Length2 1052 + /Length3 533 + /Length 1583 + >> + stream + xÚí’iTSGÇQ4âV Pó0vLÂ") Š(‹@žy/áax/¼,‚ˆ‚ZQq­dQY\ª`5"!n´«ì*u ŠVäˆb£¸œj¿ôô[Og¾Ì½óŸÿýͱ0ó ±b9êIà2D‡×—´ØbˆÎ XXpI–aîËPG98@€-È@,G¦ã\…b¸„$ŽÄD‘2`ÉõNÅìh”Ä0|aY$­5Àb@0TG€-ƒEïŽHÁ"TŠ’ + ¡S(L ËQ†Sæ¼ÃòÆ…` ¦¹äã–%¥Z.`©åœ´”‹ã‚ + )süm5TËò±þ†êKsO¹XìG¿³ÿЪ¯p4&Žû !¢%rJ_AIüKéRtCˆ¿*ä-ƒÅ˜€‹Ä( AL:ƒ9˜Ç¤žX,Šøc2A$Âb)ú>âÈ—Ú˜Ãåò9ÖŸÞvpßÆpÙâ8 + Ÿ¼¡Ï±¶O$ BtÒ + µóã*ì‹z¸€@0\d0ŽÀ$ò)ñ5‡CÄÆÓlÍÆVû×lXLÀ²e&üUˆc1rÔÛØ2 kJ 'I—½ÿÚ;Œ…˜¶M(‹ + (û0ˆÙTëþ uÃô¥ªkmëóª\ufêŸ^c0-7Á’gÚœ©“»÷Yvø2×~{´ºæÞ¥Ý^ó¼ÆŒœÐÞ¯Ï*úÎĺÀðHÎ(»ê„ü2å,P¢ÌZÉÔ]åŽ + ÖÙ e×jرºë¬œ’'ÅÊg¸¬8—ómYïƒä±OŽóŸé•:‡(„ãZÆŸÈç­?J›}pSÊÖ‹©6¥ë_b!ª¤?f4˜§d!ûoÙås¶ñ†´1îõEO׌ž êø-Á¥‹­{J^Lßš’•Ö£Á}wuwù˜xÔÛdv,4Odòâ@ªãÈxš²K/daÒÁ_GØΪ¹ÃÜZœ[…ÔçFíãsœÍ,È¿0P7‘~Ñ|G•}Å•ýÀÕs·óiw@¾ÿüÜU"cˆ%ÊnI ì ˜,¨º¾®ÿqh¡{yɳ•­´D笷›§œ“¸&†2—îvÔíxqmÑ™˜pw Û™n?6©cö$©7gFRçd [)UW¯Hva1;Qp_íRÃÂû CzòŠüv»„$‚ŠÚû¬UìqIAÉs¨PFDDÊ2{;¹2ÄlI„ý7ÙĨ̇}{“ùõ™j „elÓ’AîLÌi—¾ªs|©ûêÔΡÝEÒj¦ŽgGë¼3Ù^»‚õ)ó7>Û§ŒË›"ê|ôÂR4õ^:|h—²™FJ| ‡Ñ…ù¨rÉаêSØ®”&ómJkÜoCBT·u­‹Tì®×Ö®3\þ†/)_VÝäWv[¶XuŠÇÚbä« Nëž=z¤eó@å›ýåo…ôçzV3 %½ÍÍÔkÉônÓyΩcŸº”O9ÜÞ¸N­­*0YSy3#ýf¸ZóTåâ2\ªR5~F^†EJ;f¯óIl‰ï÷–*?H¶òŠå™’>>…ÙWpw„!Ï›(î58.1¯òðN¾uøíµÇŠR'5d]>Åš¸*àçëå{FpÆXu,&SÆ_O¸d¥ð¾ârÌESÆM®6ÌH³#˜¶5--€:~A{“"ª£n³¡f„çí çNèÏݶèHN­é‰´§×ËvF—‡~ñ}§ôi·\ÎœkJWâ}µü¡©È1î}Þ!?éäaÆ{Ô\£Á¹‡Ïßlã»{wæ/5aÕƳF«ôφµê¯aŠÙ©ÔùÕ´S=ƒîV„õ¿Ö=u¢å—^“Õ!µâ¼«¦Íu…š!¦QÔÄÓ¹ñ¡—ÓnA´N•þ\ŽkrU¤°ÝÔjS›‘ž{Л¥qŒ.nþüîy¬Ü†¾«šÕ:¯yÉö°áBå¦z·éåן¬]ãRb¯qòç=*ºì:2Ï8³øåù¯gô÷d×5´Ôò~j[R¿ñyëvùEñöŽñf¹Õy·kOó §å÷ºß¹ùã_Êÿÿ …I “+(”?šš], + endstream + endobj + 35 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-163 -250 1146 969] + /FontName/IXQBGN+CMTI10 + /ItalicAngle -14.04 + /StemV 68 + /FontFile 34 0 R + /Flags 68 + >> + endobj + 34 0 obj + << + /Filter[/FlateDecode] + /Length1 728 + /Length2 1666 + /Length3 533 + /Length 2205 + >> + stream + xÚí’k8TûÇ%;Œ";lagIî͘!÷\‡‰˜É½"1f–æÂÌrk”K.É%·Hî¡H + %ʽ”p¢ %)QlŽä¶•Ë™´;û9íóæ<çÝyÎZëÅÿ÷ý}×ïÿYßõW³u@š’éž ŽNƒ‘FÀâ­0hƒB£Í + + XH„!:ÍœƒúFOOÀžÜ÷Ñ×ÒÖÇh# + –}`@«òÕ¥˜RAD"Ò<ö©Ü!$"p “ A€)…Ø}… ؃L’Q! x‚Þ ¡þËŠæEt¾Éä¿ï­@Áärʤ*—“L§QB2è…P'йû\šÿìßpý8@¡ˆÔ¯ã7ÂúKŸH…(!8èT¿dx:dÐ~´¿ÁáA2@ý±k)É”æM$f + ½ï›1qP0H¶…`’àE¤0Á ¤‘$áæ·Á¡nuÄÎìAí¿û­kK„h°cˆ ÿ´oÔ˜?knJ (pEscÆpÜûûÊí‡Ý,h$:¢y0‘F&2ÈÿþJefFf!1ÚšRC‹{Ü0û´=m½Sÿêt¢Aþ •9 …F£u5t7TRƒÒàÁýäïµÄM ƒA"ÜÁ¯<¥<(–p/WTŽd¯÷nVLgmÉÙF5£¥çb×.†H^‰½ ¤¸xà9'~ÑèY_iç.déËèesÔ]‰…;Ó[2¯‡j¾õ5˜÷`Û¼s—ÀÄnÏìâ›MÒ³™¿.®ûÛNË¢½‡F›X“ÅELáxKÌÚÑç/»Q8Ñž9¬ËËÝF]—ç Z=K + ‚:¥•#‹UW»Ì׺º‘8 Inö‡©IÅÞ9÷æYã"!á›ö‰ºuå¼_‡ì¡áðUžé½÷óáCú7ÙXÓX¦Ðð5›æ±öéΛ{RùVýТi(—ýJM¸øSåÐ`abýM—º×«ø3dBy(‘>oÉÅ:ññfYô˜­Tå,%Ø · Ø P±­åºÀí÷u}J™†J¿{–iK–ÈöˆKO 5OÛ ŸJ0¨»~r?çm7?«zmRÊðh¹¤8ÛÁÇcÄ/ª¡­ô݇cl…|vçÂ1xo½IŶ*> xv÷cVį鮟!/¹¸n¼@:¹wòåâ´GMD¥©XßñÌ&¥’@-qBvùSÁ°ä`ôñéódöOÖB¨(OY^þÀgôé»g‹ ‘äJ>¯·ŸÈw”ú0~®¥ž™õ–Ž·.€«Å‘B¶ëŠ\sA?f$“\oq|Mxú‚ÐÉŸ ¼Ïð3ÍOåt­MÍ9á½Ä3?åýü‹ß3…m)ak'ãiçKÐv½d•#Ž\;wSTfG|×Çï«oÕuI=ý…–—íQ#å’sÛâЋöeuõtñŒØò£"Zwq%æ)W™9©gö‹e•J„Läô­_dí~Z“!øÕ¹SeꇰCa'´¡1jL¯öŽ‚[‰¹Ä”Wù“›‘]2…uÕ¡AiPé “°³—¯kèzQÞ‡çÜ$[dq¶HîÛõ˜—1‚Ò?æ/ÿDiêÉcfjÙê¢ÁmÞZrΊÃLÚ~P¶©Ë©ïÓ9#¼PÕÏs‡Õ0oFmŸ9b t}£ÞeüqI冒ìf`gÕ{Åp쪜ëXòrÏžA±2‰37»Jy(3nÎ÷-e¤vâìßÔ‡Zd\Ö³uiÅJ + :wÊzMù=¹]d$cSÒ·¾Á¥E©pò¢^Š(ïVBA'ÕQðÞç­úËw„nwÁ±BU×dÕ9x+¦¹$‹¹›QÕy‘Y®Y»2aÞ°³Ðg¢'Gpv&s_®-®e[Q}Õ7×ú™ôÒ®aq‚kq­ë+†áu^Z‘ui)j¡¡Îc†òCê3Çôg + ²T– ‡²¦VÚlÒí7fŸ[Y§\l||Ú7„g9|’Xm¯hÈ\Ï:ž¥ñŠ•í¬±[Ù© $†™¸¬Æ^¯K•lœ0 + ŠRM|•©¥]q?ð൧òW? ŠÜJè—zŧ‡¯?’ë’ÊOzõ»uå¾¢¬ÅyyÿûìÄ2oþ‘ÁêØ + ¥ý[wªzò´ûç…ÌôlžØ+\3î[È.¸)kœ›÷XA“^¹~ÛÀ™;;"}[c¢!ºÂÙTF¿-Y«ç![êIJuˆ~Ó¦Få?´ý™è¼ëjå¸H”Eé–yٓ̇êÃú‹œP‹RU]€’÷Áò£&ð ?á¤rwjX¯ÐrÀ)}ÂãÚÀRq—t‚oóïåF­Ûâ©5§ùBkßÞñ²¸H}ÔÁ¤ûì¿Ë9ßWœ¦gñ%È^] + ÿ©„²J(„ý9É÷zICc)S‡ M­wh4 9?uìIo}‘VÖÄ!S 6±éÝÉî¦û?3—U¤ ž6L]8!"¾¢ò™e{kóè–ül~¯ξENÒPü­®ˆ„Ô<Ý«ÖœÕ7âûûÂÄp¹£gÏ—£—ž&ŒC@`Ô»-VÊå‘ÆšÇ 7»'|LÌ»q)”áP©hlÝA¢ûìý{­o%˜Zz´/¹QP¾V±kd³Èq÷>A¯×6Çs‘œMzr¹vAaû‚,Ö + Ýe¢la¿àê€'É*‚–¤Q¤ NÜVÐK&Ì¥y¡fR¸ÛÆ<äô9+½¿ÜgºINÔìÂÉ·Ë=´«qÕBÄö[$uø÷°é©(ò¦ÞI‰QEIíN>1ËE•QÍÈõ_ëfUå«–Tóö_?s–'#6 ©©ü¬i0yÆíÜ)$aü%¬îÍy0±©š1ØÓ†Y›s,Eÿ—âÿþ'( ‘Ó©DÆ âæv’¡ + endstream + endobj + 46 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[14 -250 1077 750] + /FontName/KZEBQT+CMCSC10 + /ItalicAngle 0 + /StemV 72 + /FontFile 45 0 R + /Flags 4 + >> + endobj + 45 0 obj + << + /Filter[/FlateDecode] + /Length1 991 + /Length2 3547 + /Length3 533 + /Length 4224 + >> + stream + xÚí“yç1$4ÊCDº.NXô¯:‡úgJç~E€êÛèhšZ@þëïe' Žháïõ/ãŸú_ ÿ›)-"`H€-LƒS„”û¯'ûl§ƒCâQœ+€Wœ'&Ê ¢<08š I”ÌPžHy ´%pÁ˜~Δ2¨ÓÏÒoR È ¨?@]þ@YêúÊP·?P€bþ@êþ*PìHÙ×óo¤4 Šû)ûzýgŸ?âLü)äû7"(V¤_øïSÒÔÄ“àr€4BžÒ2˜¢" ( ü¯ºK8Œ·/ZO‡Á( + į*Ò—@@㈿~ Êø‹]0”ã‚F“ÐH¦iœê+Rü Çõ¦áS–µ}ïÃó:••ÏQ‹1T|(~Q`2úáýQBýãv-¥XϦ¹¶D]u]ЉM‡]Åg¼GÇŸd1+¼̯¯”j*3¬üäh®q@» !ðõ}$š0IÕÐn’ïé³ Yúõ› 7Y¿9®ÒÕ±¹êÂ6Å^œу-€™N+3‡s«5Q¾…±© ]9}tX$&•6FU_.zþ–ÿaaM/L1›ƒcIŠ >´´ˆCÕDŒMCŸ!ŒŠÂl¦K‹ + ßVx.–÷Þ°¿l¿ÿÝ>}J,þ-x¥ÿù‚vÈ + 6\H}¤µ„å`ÅÊÀƒT9WWóÈlõHè>ß…n½è0É]îÞéºÜó÷j*¸©iÝöw¶¬†YUVd«ùü¢­gÒB3 ð~RïwëÜñ÷4͘ºw¶5Ü}e‚ñ0sm±Ÿ@_Š)9,´pg¿YËÜà›©Í8+/²Nš¶JãêfŒÓôî^Ëë2Y±Ž ©[×W䛆V–—t£At¥¦–>×*áy‚9̺¾5Ø…:7ªÒÛQwéò›%ÕÍ–eÞÓ;n$nÿ:kÕlÃøH»w‚ªëÌæ<§Kr6ƒ¿y(÷x8ãe8§>Cp ù«J–šî1”¬FCöû¶Òƒ”ê¤!¯@>Û2±}Õ†µüCKÈŠ7Šíú5>¶¼Žþç„°í%6Öl¥*»Kg¯¿X :Ÿ ¹;³}˜Ï~Wz¬öJžâ:û\x´\[÷¦ÙæÚèpùNü‡zÂ$¾Ukpûü]óùOþ´< ݪ¨nƒÍ“î4÷U™A>²?F8›² îUó|Š±Oý8Y Ä{ÞË—Ì[&«Kåñ5pOOJi™…¾&7­€,“®j§.<¼Æ¶é×;Ä÷„ƒµÅÑ=Nt¨4L¾ü¤nì’é…ÿÑñmþšÂåÎ2zPO·U9èȽ®Ë.ájFòÅB¾ÄÞ‡F,9ïrlÓ uY2 ƒoˆãÖ{+Sk"šYçÛü犦¨“݇ž¸²5ywú¼<]É–¬æK´Öàz÷yûE܉“ˆusÎ }ÎÂ[µs['–:Öo€vÝäïË!Œ• + —sx-ƒä—à¤7Pö±GÛæý¾ Fò™È€ÜôØ8Ôþ¢ÆŠÒá·‰šZú?ö±ô†éªy·“Åqªh³ ð¾³Ô©rűåØÈý½ž´›4¬e&FPY¿ÒöØ-6©Mìô8‰"ohðM»es`æ w&Œ7’—V÷ßF±˜K®W±&qÏ¡á•é‘1‡ñöõ•h‹3d©î¤f>˜¼3[¬>þ(.[Äù9dDó:Iªôsö;°;Óô'YÙ6a„ï]Ÿë1!ÎÌ—k¾·\U”åePÍ|_¡Ã˜Ëùµñ~Ëé`/f—Ük­¼†Ý×›j~ÇÍtvu†D!lþP~%qÒðä†V»í”U ÝÎIþ•TâÑ;§œ¥_ò/“‹;»œU¹ìBÌÔ6³-îez>Ìÿ—÷l÷Ê t âÊï3©z~Vºë¤©·¸î@UÞ.²1÷L‚ïu?t*Uóä6úe}w½GyÜÓÛòÅ2ìÂ,ˆ§;ôø£aðÑÁÛÏî>^n!~ + LJ&½Ö--Ù§Í`HpxÝcë»4ßÕ_zÉò¡yªQ#ïsõݙշ־Ʋ RÚ'~lœhÏšœÖ² M»³jÁáQ)âÕ9»¢p)ÿ¦A_ ÿœN¾9>§‡¯yyg¤xÇnZ¦øv‹&è@§²þØ)¬>|Åh,gi”¨Û-¼ÜÀ›~_$nÁet"enâµhø’duý…ÕËÒKÞKU³Ý˦›µÖ&-H˜öŽ›ŸZrÚ@¥iŠ%õí¡¦oÀ¹6š²Y½õã + ™»_ÌÏeÛ×ÉGzŠ†â°¶"F+¾TÂÜGÚf‹”,µWeEå?uà—”ŽqJ_wVŠð.,YAǨÏ6ãâ7lUöOZ¤z„lëXÊÖ‚óéMKžVQ`@šn´Ý’x áú²´¼iÑÈ1P†¬o%ŠfÐ…:ìyM²)ȼ6yôã®#YÊq¬ê{Ñ×2£Gñùj­gSèÉ Lÿèö=÷¶WŠJóš°¨³ÅTÏc» øÈY‰´½ õ + {,.g‡•(}. 8€ß‹´œ<+£¼N®}“·Ýë¬ñ€ÅŠüÑ✻êãÝV¿#Ekr=›#Å‚››õ笯»÷ŸOI»¥¶ãìÃX;n•{8|.LÃG+ÖP;³tvçFF¨ž + 5Óp’X)¿=¯ö¥žã + Gx†Øó̵©LŸºT-e[ú=«$ŽµÓ–K(OA‘x=jÆ{ö̈)îD¯HËv‰\‡!ËQå*úé¹ëÑçëj»ßû¯í/>´‰F?¥–MgvÝ.ký.×Kèš@†¥¸:ÌP°!‡-æ + ±‹rÓÙmCtA[‡<`öÖð1<û@Ï!`âd/öºp­hp3ªÿÉWË*Úp³›¤»V£ jžË'Ð2?7ëË¡ºæ~·lð Käd‡½¦8 ²Ž ÐUÉì§ + tLïNôô€±}[E!«ôJ§åsÔúEtK-'v»QtÅù/4k+0¹¯‘ô6Tj¹ B…²›/H_=¥¿-\7N+ân·[( + . + .>ûXúÄÅñhè‘o!áb ™– + |dSû‘UЛ›r§?mù ,'.4~‚JŽð™&qçÔ—Ïø…Cçæ@î†EÊ|¡èiĈÿeÑñJÓ7hCÏËPÙ10¬zÑl]·ícÔÔñ${­ä}Ó Â.QŒñ¢ž·IÊÁð©‘«®§³v°Š&ës0™V"aû%m—¸Îì<·Ë‚ + è7˜:3¯Äõ,œAIÐÅÕîD5W9ùœ¤ï§¤JHuk¡C‚F£½G˜å2Œ”ÎV>U_Þ#á½y5³Tƒà\™hO­É 5OÓ›;DüÁ‡Y…W‘ª ±R=Qê`_¢mŠFKS½Í´Ñ>d1'wmñû—¨ÔWñ¼wÛ««ÄÕUp©¡TpŒ‰Vá–vu¿0Ï[åöÍ{â°“¥±?¾©VR;êÔ—¬b '™gëôS£†}ÄÛ õÕágÜħŽDV;¡ù‰ä"I»dJOe…q÷ ô÷À}ï°Ð’€ ɹùyŽª)Ã(ž³&¤ë+\¾g=IŠïÛæßàì—¾¡ôÂÿ#í§@g³¯ƒ’1Hj¢MÚr01Jã‰,×üs0„èXYØDT•o«(}qME/GhÔIM’ÌÓ–Õ¼gÔl¿¾Öë¼…ªvœ—P'^P¬ì—fX‘ð³½ô&¤lÛ¸ÙXASÇyvÓu(F¦‰èX>œ£ldŽ4çÈŸ?§›c6cæ WÝଠnNé`o·¹òÇ8ä4+Û ÔÉ^!¨—ž¹úòWýý:áí“1ÌÜë¬bG—òd½V{"q‹éëïêeºraªc*¯Ïà÷½S+`:†øký§[Ê/ÓS*¢R ZKGK‘ü*k½tä­ÛÍìÂ"Ƕ¶“U×¼i4ÝõÍ.ZEü¨Ð¹u5ÁÂ5Ö)Gerñ”H°é¶Ôê‘Û5S’uÇÆy¸ ‘ã„“Çcf¾ÜŽQò¤¿SLÇHG{iæãQõ‘ÑôJÜ;ƒ¡Äý£°;ýºˆ•$<Í„ §5#ýo~çç6š}Çé†é‘*ž½J·)û¨ºzñ|†a¤hñoëBÞŠjˆÆ×{&Ä»ZžêŃïõÕBß±Š Ñþ´¶>³°Ç1Å¥íÌ?Þ )v¤M”@hæ$Ð_;Ö˜§¯²×.b=N^ñÄ|’rq¸Mk¦'³'=ŠÓícàR|–}©í("õdlFÂG$½è½S/' + ²ÃtÌ/#ïk7o–df*d€mÈÓ½÷Ih¼€ËSØ—êôö@?>º„•ý÷Í$mE¢mkO–D«xá›B«Dñ'OÖo ·{¯$³‘çÖMîòç ¦sÝ‹e‹þú7û=ƒÉÓCô3\tgv-•'`y¾Rå¨å}£ücˆÇÄÈô¾A”×4©z42n ®˜»ï/- ‹Š¤1oÓwc²•Ë_Ã[ýß­44²CFŽJ† Uì Z1Rþab»Œ¾<¬SàCÉ®VK;êCá”ø¸CjfUãñœWÏâ“žAÞJ”°–;ê,E&Ô±ì*ù½’:yb|îA‡ï´ÝЭÏãÏ:N³NŸøôÂÕ¥Ã5åÓ + —r‡ºNï¸Ò{½£•^#XNìmÕJPéU«m§+}USàqhpÔïå˜ÉJÙ(_Q5D3¹*›Í¤*69Î + %°ë4}ìþž-‘if£eŒÚEƒ`ëÙÓMcŸÇ¯ëQ·átÃ:%/Fß¹yvEE~Õ2y"NÊu„É‘—“ý&n“U0£¿i-5¤r1ãÉ6.!×Ûþ0’*Œ¼©dë7j~2gË)Ì`)Û¼34çÀŠ©wÉ)¹|­*ʇmøeE2 ’Ö¥€îO5v÷¸ãì^Õ Sí›PsåÇG‡T¬'?®qö) + Ý0HÚ.þF†ý//¦ÿ7ø?a€Ä¢D¼§Áƒ‰é?­qŸ + endstream + endobj + 49 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-62 -250 1123 750] + /FontName/GRMJWT+CMSL10 + /ItalicAngle -9.46 + /StemV 79 + /FontFile 48 0 R + /Flags 68 + >> + endobj + 48 0 obj + << + /Filter[/FlateDecode] + /Length1 722 + /Length2 6462 + /Length3 533 + /Length 7021 + >> + stream + xÚí’UT\ݶ­àîN(…»»[p(,¸PXá‚ ¸;„ààîîîÁ!¸CГýï½Ïiç?çå¶ûvÛ]ëe>úêó›cN •ˆEÂj–…:¸²p°r¤”AJìVvT PÊlê + :H›º‚ 7+çŸ>¯ 7» ';** uôr†XY»è¥þáâH؃!æ¦eSWk°ýŸsS;j»z±vvüâл€ÝÁ¬¨¨ ˆ¹+À lq@eûÔ{K(€ïŸ²…›ã¿[î`g—?\ú?œ €?”P;/€Ø•Múg5ð–ÿc¬ÿ…êïá²nvv*¦öÿˆÿkPÿ£oj±óú—jïèæ + v(C-Àηê€ÿ § ¶€¸Ùÿ½ûÞÕÔb.á`e°°róþS†¸ÈB<ÁjWsk€¥© ø/ì`ñw?Ãû ƒMNCYAG“é_ûÏ®š)ÄÁUÓË `ÿ/û_5ÇÕ†ä ñè³³²³sü1þyÿýeø·ÕdÌ¡+ÈÕÔÁÂÔÙâ?…ÿI%) õôaáå°pòü¹Hœ\>v¿ÿnÔr€8¹ßKxØÙÙùøÿRÍÝœÁ®]†?;þwm ù3#0ØlŽš‘I5f¦`º1¹îœ£ÖißýT4$ + K‡TëNYèG¯ðv5 ¶0eÁ¹õ[ŸŒ}çÔVo¢œ¸& + þ­Ñ#_uS1^I.ï¤ß×Ö:@S]ö‹®7œ·°زt†óÚ:>%á Ä(8OìéF+bÛ–«Øz»†uZarß"¬çn‰½†SùUÁÛ ^*'?<êsO<ð(êºr ϶¡÷ÑÌ@ž³+O*O¡½!uKèÃ}L>þW0@JO)Öp¡H¾x>ÿ!ùÿï†ÇÄn:õ‡‰=öÕC8T„X¦m|×hßkHÇŒñm·Q–<Dbu±¾„¶Êb$ßYtUx_êr”º„A4Õõ·Áøxƒ‡ µ» Œ‡SosiÑä{FΗê6#¾goóÐç½=¨N,hzôœtnM,MpJ­«an ¥#•E{Ne³Š + ûl^¸hïÌ êÛ|§Çdbé h.Éf=ß -hïY¢Á©ÜýòŽù6\Ô+ßi&;ûÝ´å®÷óâ\t*zÒè '4x„·[Ó=g=­hD·èbk½!7(€³”Ç%µß¿iT›öÚ9m3:Š¡³‹ñv}óÃÇ6ÂâRKrÿÒÞêû >»Ç²²–ïÈñA¢v¨ŸGo]á„x'®Ü¢ãw¤nh$dfœGïÜtfâÝY#$ÍÕœ+•¤?oÉð©æ­Æ!TÊ}ÙƳ>Q™¡i!ԦեݭIÇ!ž¼še²’ ïß8Ï-”§‚BIÁåp6NîE„¶C-+:ú,ÛsŸ'²Ê6rƒ5cË'Ëä„k°:¤#$Þ’rhÎ0µ$pª~çSÿJ¨>‰ÖÝxÃŽkYwÚ¹‹'À‡wÆ4»°ÎˆáR9œ@±ÞËÓv!SÛ&ÑV»ŒnKÒÌ»å­W IXfz2Í_’z(®.nQ–¬RK’›å®x7~=ÐÃÇغ0gaðNÎL·=’£8;ÇÇ7i=~Ö¡ø‡QÇ61/µ%Üü*IxK[n-·Ã¦YÐâ5ËÃhà2Kç/MaxZP,Ò •w¡¡¤­Þ~)Q`vOuµ•($1Ec?x)Ê£§ 4¶E|]Æ›j_(°xð©´ ÓÚžRåcýÒkt÷"ü6O«¿¥¾ó@Ö‘3k¿´9••'ò½Æu¤8ÒBÇ~¿mut=Á—2 ¹ä¥ ¢ö„?R4íó‡‰Úô®ûFþD J#ϼB!aÄU;†²[Môè•óÀÄaå§þFõZ‹·nU«¦ÀPVŸuÿÇÎM/Íë7™Ûó ¼6à±å”º + "á)Öš&1÷ÖàŠ*[|ƒQÁZ2†’ùX1˜{Ûw: ÂjÜÌÃÍÆ·ÕZF·xºs²cEÉ6<ÝqÑüóÄczH[C¦RÁ0:3?zRÙs:ŒÍæˆôÕW/k£’Q9†VgËžfÈ£ë÷B“ÇÛ¨|LJŠ€?Ìõv£ «—eM¤[~f=ð®P´…? |‹ù‰Öe·M„}i£ ²›mH‰íB÷౯²S‚4:å3•bõPWèS5M]J8‡U¦7ç<`¯™ûk(áZŒsðæ-µ×åבß'90øóÊt}¹’QefàòæЫù—РDÙ.€^’Ë{$ï#W„÷žðg³ + ƇÇ}>ã,¯KÊçE°®þ1WïõᩇpB«àù3u¡¾]ç&›4‡Ðî×í.¢ýK‘+ü_ö1 ôkh õ¨ñz[—_2 râë• iî‡Ð#ÚždB^¿Ò #ª©Gá+-6Šm¯‹áÕÝïiœÆ(çZ:9of7 â«WØF%ÌW!³RèT¾%ø{Û¸9 + ›n´’dþ”Í“ÌKúÍÂ$4}ñ]Noۆƈò™pê‚òNi*g7ÁJIÓ,¥Ó進ºÔ‚Z؈`9¤‹Ö8âbWõÎѽ;…aCgm÷†I%DÚf?uâü2ÜÄœ´šw:ChNÑ4ìU -ã}a‚ÍQŠ¶* ”±®Ð±t¯éS×"7 ¦™ã¶ñZýž‹ˆ$ó2&³¥þF¶97„oÐMpayqZ«â‡ú˜h9ë0y‘>„7ªúÈ‘è¬',|^¤ Ø–G”»…ìK¶]™–á2bzÓP¼+Î3Qh·¯*“Œ+©çèú´Þ‰n™q!Ëçã8­f£V™Iú%»nî¯Un˜öù§°ÇÉ3”vg-0ÎR_½ZU²–ßq\Añ_n©µ³¢ª’OˆßbàÅ—ð-ÞS߉/éûç­ðOä<"~ýrzªÙ¼b p9·¹b |ôï 9ŃÑþÜ»h•Ös(­êLܼŽŒÞú$ïwÈù]∨”ÿãèUyþÇžÊì,_•`Š›AµeB€-šC‹ò[ ÚAn»éʪnØáò@'½„áãŽí¬Gý÷¥ÊŒ©Vc™½G¡ q[ + 3>Í”ˆÓÔ­Ï‘Êh[§ò«ôÝoh…=L‰BL8nÆwn·’"w»–¶#y_ª(råÒ»|¯½´÷—0Ã)­*åûÒû¹X晫ú ³!•øØ·¡å’p©L]„}6úÛñIßÌB­ÑͶxí ™88?IEM7N£yd“G¹íBgóxÕ• vÈ~ËN\¦¦x³f:Ãoh•ÅP\Ö·²tsPG$¤1‰ƒ˜ùaÒvñ“´cho~”_YÓ…nÌ" –¢'ˆG€ÑRë[¨QAw„J‚¾OæÑ þaÄDptêè’ + EMÈ“”i  qälÆë¼#dìb?PJR; $ÍNƒ\ X|%\d5‚ + …mSMa6Љ–£TcR$8ùI±~ÌðÂ…¢ƒÂJ|–.ሤMµXâ4¥È(î‘1wìVƒ ëiÔÆ(4f½ÙO˘”=KææÁò!TŽøu›oô›^éëé"¬øõßA (Zòñ`¾v‹’ô†5Öó¦§ãK{*ÉÿPKEÆ€°üÎ'¡Èìad}K$ªˆÑQGPP¸A‡DÌ’RóSE½¦Ô.ÒýÆê‰o°j ¢7;‹ø¿JlKaÌwü›æ7g÷ì*žj8©ÿ¨?éó£EDñÃlz]#…òí— + ’™‡’$HZ€Ë/Ÿ±º_å]K†×NsS5t{ÖˆÉR ·ˆè'\)- + Dè?´[ôóTëè–x³ö´Ãµ¢R‘Q;$3™Ë r¼{öÅw¯“|rs(Þ#®óZö† ÊÊØ­®Ÿñ¹c+‹—X¿÷žÌm rfDšÇ‰ + : U—XÌ2Ó/L¹ñMAØK ÒOþQê:»Ó¦‹ =PRî×æ%ßMâZÖéÑ0ú1îúyK+…X?¥Áž¸¤oĉ³0'Îœ8–³ªOà[nFìsOØõÉnt ÃÕDZ&è7‘³L@©ü#62­CÒk¹m@Ža¤Rtì'ò3…–?rzýÓâ6~"î†=E \ fMùÕØ­hQ©7JÝFýe[ÿ梔n„¾È•[™vöá75ÇØû·QkX˜·ÛNaVáñÌœÁõv2înìršDÒ»–^¿#ò§UV‘Ärâšç3J.iºQ<²Š_³Ù«©ïÆY¤ÆS®.ç!ÛüÝV„ã•ìý_‚bN1JüæH3$åT{î¤ê•-XÏ4zFªQƒ™ YI¯C]w', òYè.;«ßxcïªýlQ7Ö6ŒÎe9Šè5V·Ã¤‚¿,±~FÕËãSÏnrIGj8è.$uhþ€S“Gܹï“×—öµŸçO¿g­IÖ×ܨúL;`’Ç6brhVQ’|ùÄMLJTON˜æAýež]Ç[F5=p-S'G‹­VÇŠYùq"ÝJ¡:EÅÞp¹·fç‚ao—On¡Éz‚.¢]ýÆÌðE‰yF˜¹ãk hr´ ÄÓžRE™×7VW¾×yt×s"ÎÍ)»bÜŸ~« sWž] ¨o1µZ@^,|1çðÃ]Š + 硼:rŒÀxàSË´ŸèÉõXoåƒîg-8¡»ø$ôìÍš:p¦mÕ·¾{ÎOåf¿ + ƒÙ_Døq¾é‰Ò?Ûíç:Ý݆ÍY1é̬‡B\ÚvƒA­Ë%ˆwݹŠ†h~òY€}Eç;ßá¤>Ý6³ËvüÜÌ"Ûð{mdúÔÞ„ŒpVáIZ@iq|õ‹.Nè0q‚òÛhEì9SØ%âSÑ^åsÈȱ“{u+ U9Èé[‹$Ç[OÊ¡ŸüÆá1ÏÛåE}^o•tÖÏ.›³[™~êv•Î+"ÿH‘¦íµØï|J¸>bOpåÏùšÞV¾&Ó˜âµÐ¦«z‚;P2ÌR±ãáÄöÁ }–Üë·a?¦ïë{y¡µÛ1—´ß°âåû¡óÖÊZ…=(É 8¾¢Ú×oÎp$1?ÊJÍr)VvyL߬ƅ$›œá’ÙŒ·yÄÊâ ´ƒ«Ôn±Ï6v8ExfÜ£ÉĤðRbÄÎq l‡¥ÇEY{üÉê¸Ï¯‘£&ëh#-õ€ïµ + Ñòõ:·û¹Ý â.7a^¿íÈK)j÷IdT±ÚbnÊÓ}a`´ï;`Ñv–Y+K½ô]ç„k~ƒLìȯÒPŒ':ж’WQÊÀºô×âJæ‡ßì4¹V!­—;^tY=™ø¾SæcÄùÚk )ŸêñAF?zª@…tðÛ©‘êS¯¡K±oDÇíᔾƒ¨L1(ˆÂî + 3â(}šK—Ù|ªõ½^CHT:º÷J¹ „ìàWŸµ`ZþnI<}YÖ°äŽ@š—³Ë˲RÝ=Ay³$ÎFSx/Oydj P"_ûR•A†cÄ©¯«—”:ÊÅö’Zý ¶å‚;Ë + ^®ÞJÛùk`Ea7U UàÝ_alŒÒ´W¥×PkpЄ„Lgýè*~,>aÃ"Ô rη•<áß¹8öi;­“*ù¾ȶ&óÜ|Õ>ëÇg–ݯˆ»p¿NK<«‡ÜÏȲ°#ôkl¿õ†¶Þ}ƒ¾´\Ôïi±†—ÚHîWþ½“ôt¯+AÑe€Ú_%t¬<ô`_¦®^¥Æ;&ÿÔÎ'¿±Úpx˜arp_0}|§·èNV+]âÕ,hæ(ôhT…!²ñ±!­¸€YÁKÈQŽ¶Ù"áÛ+3žeŽ½_ž²Lb+¥‘ÿz¯7Ïj+‰Œ-óH5B”…5‘#±£æû + tj›8äÄòˆ;m¤Å˜Ï_¡¸-(ó.&`ú‰×7j&—ÉǬž?ê + öž5p>$ï Ši¯ª¼æº7^øù¡~>@¦keÆ#c'"míªWZ Ÿð,y$C‰RIçJ|\óR{mó¼‡ãjb×L8ÙZRÀ†ÙÜÈæ¡[‹'þžIÈ›ê*ÏWˆ–T¼F4þó›`'„©Þ¡#ÛˆoÃ]©÷æ¬ fW#ù9š¶I—Ùí$†àTô;$îòòí‹ì1Q}ò=ߺDxè9°³¯Èžx?ú¥©¿&üš&Eƒ|Ô£èsv9#w÷ËL§Ò²Î°˜$e0¿h~§h-F’Ïîõ°Õèr2ÐVû*o¢Ô†_ê}þ4üÃìÉ’Pžå + ù-±Âe‰%Ña9B/ìˆqLF!£+­õe8ÿR:»H¿Ú1&‹ûöÒÒŽâ3ÆÊúÄHªÄ[æ5Ü`M‘ úßÒ„†b>µƒOá @n2Å"Àê²#âcÆX0üǶC-"MTrxgg42 + Fçàe’fîÜØŠîQŠµ ZÇù¡:m)ðG»A2Õí¯ív¾¶‚áƒj + *6Ú0¢“žCÌx’L®.½2,4H­¶¬ueˆ¶·¸;ËÞn‚ ÷Qž&šÖ.2D{I³O¿†"îËB¬¾rRšÒ¥¯ÇÓØWd²÷`3ÙÔm­ð‡¦/‚štÞ&¢£¹Ð yóÓ†°>mSÞÄ&ðà;…Q·~>%9ñXá}[… —‹°Ò f¡ß€}.«ó@Bë=Ç £kÇ™¸þ¬GPþ„ü¸º8Ï-SÅSyâT‡ÅL†Ce= Ø’›º˜"þ}`’ôJ`ÿ¿|PÿÀÿæv`SgW¨½©³-*êXiÏx + endstream + endobj + 52 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-20 -233 617 696] + /FontName/OZGXQD+CMSLTT10 + /ItalicAngle -9.46 + /StemV 69 + /FontFile 51 0 R + /Flags 68 + >> + endobj + 51 0 obj + << + /Filter[/FlateDecode] + /Length1 1060 + /Length2 4201 + /Length3 533 + /Length 4908 + >> + stream + xÚí“y<”ûÛÇ‘’=Kº‘™±oÙ»dß·™ÁhÆ c ÙE¡"‘ì’5’ìû’(DÈV‘%2hùÍ9çwÎñœßóÏózþ{^Ï}ÿs¿¿×ö¹¯ëúŠZZËèÀ±^(ƒ—‘ɪzæÖf66²@aÑÃ!<ñH,FßPdUUe‚ G¶+©)Ȫ)È32ŠzXÿÒLjëIüæ¥ è 8$̘{â}hr˜' + °ÆÂ|tP(Àê·@À + ˆÀ!à FFYYŽ„á/„ÃþM–1Æ (ÿq 'øÿi + Bàɺq²N €¬ŽÅ B8›l%WCµüeý7ªþ™J@¡,<Ñ¿¥ÿw«þÃÃD…üÛ‹ö'à8À Gà0ÿtµGü!ÏGÐÿ´ã=QH˜Æ…dTA + J#¡H"n‰ÄÃ|<Ž€øýÿS¹{¿«_t2t¸¤/õ×lÿ°[z"1x›ù;àw–ý›É}Â!‰€3È’ÉïŸ_®ÿ¨g€aáH y;•OÎ3„‘¼&dRÂd$Ž "Y3„ÁâÉ!¹5€7ÇøÛ`T0ƒøíðwV„`|0ö/&OìùÉBÈfø1”Àˆc(€½¡<ö9† + Ø÷*`ä1TÀ¨cHÖ…þÉícŽ!¹.ö’3ãŽ!9sà1T"ÿÒ1$ÿá’ ÿä;&Cr¡ßñ?§¬«‹%†Édääå%r^%U¥ˆÿêg‹AÆúä¾B *?F#àp þ÷ËE^ ?ÙIÞ8‚ˆ€1ÞÍåDRºKŸ•úâñ¹sRȾùE½M&['wªBb`©h¬„ÿx¹Á!¾S‰Z¶Ó•ÖËO ÅL@ÅtyƺJRMeÕ£_ÎÉô]}uÛQìHóSLJ¬²s·uèßM8»Ñ%LݤÐs-Ìâí êW ™r)0Š5ve_¤@i2f•0‰<îØ_$þ¸“³°ôta7"šÉ(~ÛÑAH1„úiR*Æ®>öòü+ŸÐ¯ÊѾ~Y×û(EšÔÔ§¨¯ž† pÛ®2§©={8™8hÂvñü®¯Ba&ƒ<(¿¸uçÎæ·Ìzµ»ÛýþP¾Ë'Û˜šÇ½i¹:Ï…¼™NqÄR7Ó&¦ò¦˜òÅ`l0ý|›É¸¦ÅŽý'Ìû̵Þì³,m´¡åé1º‹-eì«¢»ŠüŽ0ƒâ¼ÃÃÕpøÊ´3ž|]ŠñM_‰Ô_Ì‹e>H0»q„Ø|ü¦[gÏ}­ýËeáSMÛoMç1»Otˉß 7Uä»Ýv2…QÓã[¤«Á $ßùÜ|6â»ËŒçÍ™I¾`^»äÈ,"Ñ…`سŒž5ò;wñW­Ë ÞOõеöWfO “mŠ’L³`,\™Ñ9xo99r‡³¨Ø5@r¶ïDCE›áÅN¹‘ŸªÝA3Ÿž”ŸìM(YÍ[ò dTÁ=;•Õ¬ùRI`èÔUñŠçhj‘®Ð……°æäăEª>±è!7i¤`öý{J; § + ªÐ<¡ZîyÍ.PVëŸÒh­’k ýµ…ârÇ?q¤Aé›J4,/.Mp_õ˜]ýèEºpÝÓèùž´ÛF¡ˆ™KOoÌ“•NTü`ÑÑl½6ñæ€éî=I£çœÿHÇúztWgg€¿É DaÓp]ÏÞ¸Ô`:óœ£_ÿ ²ÿk3wÊÞ3lkNtbd<ÊCÍpÔ RmðE±…FÕ=¾¨åæ³£\ìéÞUh@ŠaÈ5I –3ÙOž^uןfÆ×H2 + z 8s˪Ÿ+IêœG•g]wwftÜ•ÿR>öŽIòÌ~õ$‚u2«¶ßá’J¹%ü•~‘4e{q ÍîæƽHR[¬efCgà±èDÞGJhýJ±¡oÊòH-¥íMnô15'â°äq0#J‚Á—¨IÚ½Üa?þ ÕòiJ’ˆå:]ev¨.üÕyUÏVS¡žfbBŸ‡7µùð’ìóF)}âü³ÚJi¼ ­…(RïŽâ,åÕ ÷6]ߤÏR¯°D˜kËÌe¿ÈÀiµ¾ðÍ,ÊÍ®çälþéÙuèZT%(~a/_ü©ÐªOWó€ðDe¯´¢“Ip.êt‘ÝÍ$eù£-¯áÈÒ¾”›`QªAp‹ÐRŒÐepŸ7eS﫼…öH ì¨­¶—ˆ[\gÊO%§aváªî"¤pòuÚ* ûE ­ñÊRÇ‹û [MùS `@I ¿B>·é¬$+çÒëþ(aánW,DÐFR¼æB(-ìþ~¨êκüõæÏZê,^—Ê7‰0—·/g3-'Úìž$Ì]DÎÓþàF®r¿¿§nx¶6K>>±*é§Ï7Êý]!J©lý__g/M|9ÙíM‚‰ÒJq´®¹é._ð3öÔÎô±s'ULŸæ‘ˆi<¼fû`^$j_bkäPoŸE4>ƒMë#p¸êãq«|AL3L:$¾5™¤èHQj¶·3Éñú”Æž½yÌu+§yÉò" ñöÃz¾¡!aWne×X‡JΦK/­,ÊBŸÐ8Ÿt+º%ìÌN©÷Af;Eݯ$îö4¿n±‹ÓøõJŽ@·&X/Ô½ÐûËøî“‘˜¬ÓŽÑ}ª¶šïPgTûÜCÂ1C_ªuªo„ÞšÉ$úŒfPÈÆÚ&³s + l1xu[Ë¡¶vÞ+»ÓÜ9-Ñ´VÂǦF1Ýyù¼‹N;j‰4 Qc­¢|Árÿµú›Qí%F'–ºEÓ“ý¯Y¹ŒXÛ³ÓªC˜“ + øÄ&džWë)>OaœÚ¼3>≱,Ì:¤±­l!2¸ÖemM[ø¯kT^óa(û^ç4ø…ÒG(Ö}ï‰âúŸ«¡e9ð¶§ßo”'—v¯ÒõSˆ¥Pv4/(”AìÔC‰Š¹ŽFñu÷×-,×25ÆäeSn'/Ø”Ür\Nµ¬›)0؃þLâé¯BÑ'—:0èR·à$ÌRúüMÐÅýÐyÈúÝÐY§ý‰¨9îÒ6ZÖ5¡ÆËk—|`Éu·Ëq¾(²7><àïUñº4&V'áÔvŸ×‰÷ü_>ºÆ Öú$QeØÝ@þZ'wiðÞy…žLÌ¡ÑÎjÍΙAIćåe‹±­V³3'­-õ]cž&…ÉЭÉ:lIçõÒ« %Ra3…ä24=nîsO‰ð¤i“­.µÑiá—®gÅæ.|Q£4Õ OE÷¼cÙ¤áÇ¡²<µL¦óÕ•w·¸_íÇ3p0ú¡?kõC~3­rÏ€¦8('Éïz ÃDV؇*‘ÄR¸ÎÙše±MÒÏ©ÌÞc¶u{ü’nöµØâŽb¼ñF"þøg·`Ó9— Mk®^ók©’#îse}†æmϤåæÏGGßÉ”ös`WÚ(#x¯XR¹cÐÆ)Ó„/ÊD|nß5ô*œµúäÌéV¢?JáÆ–"MImZ&vd;Ÿ‚¡½nf©&°Gw“›™…½ÈåjFÆöÔ…‚ôù^·ÏJ?[´ÞxˆùvxmÎR:¢ÛÙË‘Y¹ªoÙ؃O/ ‹º:リc'`óØÂø]ßÝ—ÑÆPó¸|oõ°H /‹W$²-…fÜÙ™£A}goiü›nbâB±ÿÈFÚ2ë]Õb]˜hkäÆ)}é~œÑÑ + LeŽø2Ü/Ùë[ ‹Í›°Ä/&…âVº K®³ÊÖ–GÀßB銒3àPb¥èy k“Ôb7MpÜvgÑ-n•šHÊzîK‡·‚òV{¡üÛÞ|óÚ†¼sf0AÌ.«,ðeŽ)aÈzc Zg"9È]»2͆ßóX6n¹á©”¼–•®2!Õúó®î#üöæÀÃÑHl³« ×ÿñPkö&O_ª†íñ‡æÎ_¥Ð|½*©¸fŽ ù¶J¶×/Ò|DÖMÒÑBÚ-It{¬‚†ëêОž±ï.JWõõ7ЭÉQ'}1À6ÿ"[ɯÏ"RŠ%¶"[½Ù«­ ®øÖzÑüè"Ž½¤¾sž¯§ ©ôÈ÷ÑAÅ¥ÕÏA¯zx£®<Ô•«ÂÝžYµ'/|6«{>s%*Ô¾-–'`ØE£®5zñ’4^ƒ£‡®%sF½Ã]Ç^ŸÁó›ÃÎ×Ök?êþGÓÏï4YökIЛ_ü€b÷„ïÞv”ûo:ñød"dѧ\÷1ÒýæçvíóÁ«¥jfƒÆÔgk"QgãÛ8•äV–?vÞéóéPŒ ~ëÙ³VL·Õêuã<5›Dv‹ÅÄà Ë屶ùŠ6½ãuÕ–¹¾3þ'"µ1éGªÞ#8Tïö5ôd‹Aè6ÜçÕz™zê© JÎLKŸíék³nîÁ ¢O·²~dl‡Àž“r$Z¿ëòïÏÏyƒOÁ + + —êÜP€,cÂSÁϺ©]ls…81=¼×ã ãpT?ÀÆâ> + ˜ ÷ãÖ½æc(òj½Iþ^°÷t?½á¤ÍmT®U°³|£A¤ý€å´\Æ—YI<Õ^…†I¸NÎ2èêyÍš¨pÐã¾OJÛƒÏ:„'Zg7OØLŠÄöYvrMœ%äæ…œ½=æݘ7ÚE$Tjä}¿Ub¹Šß~àÙ£§Š?^ò´]z·>há˜AK ÍðR",.44™3Mд¹‰Ùk|¶Vß Æ/¸^–â–*Ô(v¶§ÒL~IT;7·dZ<À!†îõ]ÊàsDG*›•K ÷uº·s³ÚÏDƒ“ %CýÕïæ‘=•Ò²`E¢SÚ,ÛðA×û¹Ÿœ1vVÝÊývÏLaoçÓµڂ l±ùF+Ò'ùk³noMßø¤²ü(½!–Ô¦Þò⌓jˆÉDÌ“—Ž¦7f¯mÈ=?hzZ4µöbÙµPµ¯Æ²ðr‘ó{é„jUôVgèW¬XOËϾ̡NGp£N s]·G‰&›“ÚÆãG + …tÏöÄÅŸÈ{–„–º' ô°2âͽfÍŠ¥‚QD-­pïG…lûîYÊ?}¯JZu§¬\×eÏeìáÒˆ¹æg£¨ ^©lnq.ÔêwË1],YÑTßât5…=¢^Oã±½j¿,lwóAô©Ó7¤t ƒµì_¥uÑDkÖˆ­pú.õñd + #j°b\ÓµEûÓ:<¨Æ¢…ŠFióâÄ›¥m + ¥ž¨x–œ˜^µ/shPùàäTÂ<KD ó†(­/hÕ_Q˜Q.[X=KVʦ®äúX5¸ë}ð,y+s^ˆÇ}2úVáUcžÂ`7ÃÂÒš5†.£ÂüW‰óg¡‡’5 u¯c–ùªdøãò öàŸ©[¥#‹øižÆÊé™ÚÖKFý\âex¼³a­Â[Þ´un¥\°×æò‹¸.ör?“ÁO½Œ}ð»òGÈZþ8œcðCýasZ&ÞÅ{‹›ž~ÕŠu)ûïÏK\¤Gº5­jºÎ-OtÚ¾“Ø:X'^¿š¡k˜—º¼LÃÊw)É[ª§{»oæ¦ùFRª~¹ƒÔ¡$—9nt½¾”'½šù>B&tn™Ú‘›n’‚?Ýû•ô²¨w šÏ?¡˜~¢]»ãEó ²½¥_XÛEET!`ä¬Dxoc¥¼r?“Çî°áàKpâ%"éP‚wî{­ld›©–Ä!“>ý¹Á¼°3gÞ~,± µ Ò¼z)^'¸Æl ò¿|ÿ?Áÿ‰0‡Ǣ=q—ÿ-¸¾% + endstream + endobj + 75 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-301 -250 1164 946] + /FontName/EVWJKR+CMBX10 + /ItalicAngle 0 + /StemV 114 + /FontFile 74 0 R + /Flags 4 + >> + endobj + 74 0 obj + << + /Filter[/FlateDecode] + /Length1 721 + /Length2 6825 + /Length3 533 + /Length 7377 + >> + stream + xÚí’eT\Ý–®± Ep÷‚[áîîîZ*T€Â¬p  ¸,@°@‚»—àîÜ:ßwút>§ÿÜqÿÝq÷Þ?ÖœóÝï|Ö\‹…QÏGÞþ¢wCððóòKµÌøA@~^HÀ¢è# p7%0"äª@žÿYüù$„…$@" PþÒÏê䌲+rü¥Ê»B< ö`7 6á qýcb† áöP”‡Á€ýâ 4€xB<¼!¼??Ðj>‡8AÝ|a©»9¢ÿH;x½ügÉâáù‡ Èþ7)ð§Ü æt€8øtàúAþÐüƒý/\ÿj®âƒé€]ÿ²ÿ{XÿV»Ba~ÿ©€»¾ôB@<€Úpˆ‡Û¿JM!ÿ€S€Ãþ­: ƒÚË»9Á @Ð?RPO¨/ÄAŠ°w:‚až¿ó7‡Eø3¸¿ø”ML54 ¸þóXÿQÕCÝF~/ÿË÷/ùß1ÿÇÆãõZ‚þÌ—ÿðÏûÏ•õ¿tSv³‡;@Ýœ€†°›ØÃá¿ÿN¥ ÷}Í#øLjG@øÏ=㊠‰üO¥±ÔÝ ¢®@¢"bgí½<< nˆ¿oŸ-ÿ3v„þâ ±êk³ï³Ï‘ƒÈmËXÙCÆ!RÆ¢0é¹w )+þUlç=²óu.–;aâ:Ûí³òÛÇÁ 1ž´Á¸ñ©]õ¹oý‰a¯ŽMpåt.‰„ªÎfÓ„î2quì€D# &í²ÉqR|­øWf ¦ˆÈ ý»ö¨¯ºÏÈô¦åèã'Ί*íõS˜BûÔ)¹Î̒ͧ?F…éøj¹\Š¥¢Ï*ã>eôzꉩÂm"­¿¿ Ì¥Tܯ`8ú‘+°ê¡ûºb½½t>¹ÝPù‡MÓƒúÊéH_0³'¹)O‹)¦Î\_Õ|4IÁê„MÊÊÇE«‘7K½Âuáj[š¤*SÑ=§W6¡&;ˆ + PÇj + §i7Oš”ákðù{ýmÍ»¨Þ×t,+ÎcBƺ/ÌH|{~Ní—ã`Xu,Dœ¨’ÈâÈq¬©IîõÒÞo¦)Œ8Øäâ¸ôåÛ¯4¤?diü†9jå–FÎÙ’äàÒ£oƒµ"–¨èM™ùà ¡K SÒeÙy.z’)».NhL_ÒœªPþyåëЕ¸Šd¬îãÝà¥X¨ëmÌQm:0:©ÇÊÆN„,xva¹³hû…ï ¬ç—‹§c E]4§Ð‘‹¥{wšt^1õ]ú%ÁY'cn¾úí@^ÀT# m^7†§üw{àö”÷·oäe+Ñgé`CÞ¯>ÊÞ©ÃË&”b»e<ââ]8·5dM‚c ±žéÏM ˜ÍŒ‘g¢áŒ·[O)£Ü¨sl s®r ±§¿&µ€"$Q›T§° ½öŽ††^çâ77Õ a[õg׉9` )Œ ¤ýa™Sgƒ¨ø Úž"©…êúMÇ7G7-"xs=𻚎k·Ö±ÛÍ:^ÒâHütͪ¨ðšu)â0 B*Ñ5U‰®Šg—fÇ®æxÞ”+9“¡Ú‘ÏÖι 6{ýà¢*¼E@‘œlûâXw2ß[îBiPýBÓ|ÕÜ @‰ÔɺUÿ14ŽWuo{Héd·»Â¶‡‹U‰~> ¿ÎI-µ·  ¤'~K¶Fý {WüÌF>oå%‘¾ú$_ÎS­píåéïË /ø³œÇ§#Ú5· éiS,âö¬§×yQÖ²cË+,’lèãÞO’…ȱJ-zTÍ2Ø•ñ-ýUQ¦B7Þ_4÷ + ’4]¸ÙJÎGʽñ"¹OQ× Nƒ²Ö–¹Ë@‚Ý3^ˆ¦Hwæ“J:µúÏ9CϹž7ð8À T¾¤1›4…/äyÑË:¾œ­ˆ¤àG=éûˆ^ :BYþ¢«»P¡7Ý !;€Œ­,Ú$†bŸ[/÷gk}ß±ù°^TU ·ß~þ»uúLŠo)Cý…¸LîžTdýœ%PŠ;£Ë·Ég께ôÜË0QˆAn + t 3YÌ!¶êÍß(\û_Óð¾9¿Ç;kÁ’ïZ´rQg‰æŽRÔ—Á½g÷t‰ÈÐÔÇr1zŸ|}wÙæB™Ç + FËÈêéãvn_ÇŠû*øöÕt”vݯ!B×ÈdlŠvÿ°'R‘èð/ß¡ÍZŠ†±µÛ#_ß!ç6ÅÄIDå/sÄ_» |»b??&}NVKÑ£4‹xRÌÞÞ'˜Äc!ØŽÍOÖ8%$,÷ꬽ›ÖqyúµJÿ°~Fr0tîñžÙN?j÷ÁT'õeÊoÁÇ·ÁHNüˆ¶–2©ru<|‘Ï™ÏâJ "¨Ì©Ö W ÃÅ›ñNÚÕÆkéÒ@l§\jÇ„öÞŸw + ºfÐ7ŸÚÂ?/\¥ + FœëB,~T™è9Â2Ë3ZmCÕ„„m.¾—¾vžŸ:#S ]aN­Á“*É$äâ?…ƒ6òÆøî¼yåeÒÁ¯xÖþҦؾ¤š¡Ç?¬äOa%h+ú"Q‡e87Îm5b&çZ)C„/³ŸM¥û.åv „š<©|Þ<™½ï\XÉX;gºgYÜt0›Á“héÎeA•µÖ¬ÑH?ͧ%§ƒý0W]­Ä¤m·;~Lx——®Dn!ê=HåFŸ¶‡šr[# "iøШ(qêΣIÖp|S+‰ÐÑ”0ò&tídJËOz?’5ìñ¬ÅBük"^òÞº¸’Ì,J$“Óq…±+©n–úS{Õ¯!íR²“FEÔîÐtõ#¹Ëˆ¸Ÿ•üÅÞ›TÀa̦øŒ¤Zau!Ž7Ɇy[\Ír‹Ìü^Ù'M¨3½Ëú—Ú®åAáöƬÚ#§ñ¼Ï殪âX}Š]¸­WCf*¸½½ñ”töA@õ›Óà`Bäâa®§ìÐc˜êVF¤ï¥YÉqÀìP‘ðWTC X[ÛPoʤýü ¾LhµY.¼ÉxkÒ4éÙsNlâ) Õe!qšÇ`ï›(I¤AÍA Þ82wr!#ŠY'üW¡Á„쎗ÜR9÷‰µý<¥Ëv‹”Òoz€Q Ÿ,—ïý }ýhZLD•wíéée<ß©Ä/Ö2c9þƒXÆX3eµ·¸²ú’ âÉÄQ<{l‹§œM°yIÒŸ„Á4Èg¿9T¸(À¦§‘@îL‘Þðs ~ϵ¡ü{ºž*ÄúÊ .G=Ó0T#+]YVâêrü‘ŽÖš=/÷åðµÈÚ247BüÇ=ñ+Ð<0„Ý­€W¹=CÅ4%Ù¿óaà ö§Ö‡3›?›ÄÞÜŽSn÷!>F˜A ØeYZÃ?¦ŸCÊ |hZ Q¦˜“‚«Â’žEˆD”×ÒÑéÞù×ÖHsuì·=ìÛDbL†«Ø£,*ÜÖ‘=\ÅQ'CÆ AHh¼]²¯ë!ãRë;Õ¡cpÊËBòa‚úˆgn;5¨}ªæãxkZ!-mâ·6°Ù*6º°j]jîüÀò ¯Å‹9`.~T+Ï™0«âû59UÇ‘Ëùq½ŸSY6†¹bÈ¢-›®ùù¹sÍ…çô_§Þrd3[2žÄâjœ!‹í/weBK/Ž2ŽÃ%ª>¼5ø.i Häûü½|¹³Ù-yÙÊRlȈÒÁïC¼¥XÔyÐìÞ‚D«· U/FÔJ;€í‹PÙ#”çjBzÁ&ã¦ÍeÈ+1_ç»AáŠEγqõ "‘$†Öú¸-­ îΩÏ;RáíoŒº÷#`Ê;3…,ðâd7}¯ex/("ƒçC^Ï´6W8K§æâ+]¤Ü‡ ÓðTîížô0h.Ôd-AöÛX×ñmèÅ´i»Dç‘öu + è”Ì=†4™‡Êç-çDG‚§à ½z{Ë°Z&âr1'Ýß+Z« ?i?W?‹i:Ω˜£†d½m^øvâ-jbôv’'0M†ùàí!^·%-N­Öw#Ïöƒâð†Î2ÏY,ò¡Ü_­;…ÑÂ_”=F‚Þ`/¯füÑ^Zø™ÓÏÊ›>‰1€ÅvyKTëQ~2âñô§µ¸òù'úË…ºÉ´dv¬€’в|ªZX«J2W'÷È臉îïKqg›&ÖnWUf ¸q¾äÙÂ2Ñ8=GÏ®ÕqÖšý˜Sé†jbѨåt–"èZöRË ‡|79Fî¬É#Ú¾°VÀ+Ù5b(™Öe!ì’¾‰ñ³P¼&zÖZ:k]ÐvuÜA‘ñ>7º:­Š;h}ð Š?<®Y·NýÐgÛòúÌgFÀ‰ ° [m¡:¾DÑbŠ²Yj€+“¬wÕËÖX1ªRóÀG'2"u;Ë*äïC;ñÞÒZž`„µYStÏ;m&( ‡åÊ@UÅ·_u» Qt× Ÿ<±öÛ¶™;¯§G¨¦Œë±Å~ÀOÇ¿Ožy^hÙ,íðZÝ\ÍFvÙµù˜–Œê2‰­~ + r|gåÌP›ée‰‚Êç1+Çx”Çÿ¡5ûü{ħ1”:ú88}¥-±fêÚÌ0n÷Õûš)¶wž¤kaQÌ*h´gP«ÅÖõcê›~æ‡Eÿx“ü + øu"Kon©¾~„)ÜZjËÓáiFd/28×OèD^sßZ¤ +  ¸9©Þ;©XIñùÈÈm#£ ßNG£Ê¹xÔ."^BÆo±ŸÑÍáŸÚ:ꪢþ´ñuâÈlÀÌHF4ȳ½f¼`<#3X‚y÷uªÛ + ï©x‘|i±FÇ¥»*ëªÕRëåÉÀزÊíd>ÕÖ,˽A¯¥L6†]´>ŽÉüv®@Ò‚QqHÉcQº(G"Œ¾Oé5v?`áÁZi5ÂõwÞãh{E²4t½›ÌJ²àÍ}†*”w + #y¡¬Ø$$Uù?KæxQMÖ¾k|M¦¹›öy+gfKµ…o^Y¹ã~æc}ë«UðÈÃ6L6Æt美ŽF&!Nj»@„¸WUU·®­ä"N-Ë~x¢ˆPóªÒÖ7o·u± + ÓVpÖ·ŒàJžÊÈ{þÇ-Nt“Múåa´ðŠÜQá §û2w‰+Âáâ´ á•" ÷¸¡=}`ÍÌóÕçKûl6Ü·$)Ýѽw ëíŸkÚòøhé€0C©r0)1&î,[¹2H0Æ©·ª/i8©VDÎê4)Ô5b›¾¥÷ôtrwY¾^™ØR;BE ‰¤¿™åïvÓÐÓ4š²M ßFÑ·­æi£ZH…?´×ÁHýtk¤G#¾ÐÖ,ü`ölžo´À/¼™¡í\úIJqHMÑA\' + ¶}Ļ͊¿Á—>pX—©¯ø¸…Æ^ÁÿµôuïW<,Ùžù+AÕ½`ÞˆùVµ:rOj–â + ’MûtßÏl-(ÌÈ~ ׿¶\©Ó죌l¼"Ö¸Õ}Ži _‚ £,%ø Eš[Íg g Û!x‹=owv.jîÃ/ñÔÊ“`€rN­À‹WìpS@!6"zÞé|<¡(ò$l»¸Ò[G%aÔFîÉS÷T«#eûÐ’=Žt UV|¬õž†yŠLÐuq]P²˜cÅ…å×÷R”úìéÔ Í™éöc"ÁQE²û±×ºvJt>êö{Ç2í¥)í\o2‹öÒé-´ÈÛq31´qqU]ñ³‘ë7j.‘±Êç¡©ŸºöÝ7ä’N¼|j­F. + D…” °4ÚLÔÔs + ÷Oïð‡³ã*tTæÇàJQû‰uµIÊ + À™Ä¯·ØMl‹™÷ÔöˆZ²¾ý.ƒŽ‡/×MVImÓºHhö¢-ˆdŠ Î^ßlÀbvÙý.$|\\íúÞ ;Ä4Çq¾/*ÉØ2`™·lrk3Ó¹”bág–2ÅsëÇßÏO6zð¸EËœW"¦›>L‚nÞΔ̩„X-ñ†HnWÜÆW¡ qóZ\} aÅC[§c©¾0Qz:/^?ªÒÖ5qS´(ãÜöCX4ã®'ÞM} 2Pú´œCdZåÑÛò°¼FÓò©ØÕ`ឬ…Òè»%‘<ü³\3õÓùö~{ñC*I±§˜éÄk,#‰õ<÷§uyÓ!Cç€{¡%,f“"ÜÝ„YñÐ-ÜëÔ´Û+’årAèD—¹iPÛ'¤Â4) Ã)i­6ï•@¿Q—ò©!0¡ú‡=zÓV3/*Ó«îÆÆì¾P:‹>Syxo¾ô`‹¼’Žü\0³¨OÐRîQʨS9U3!Û7A3R™(\ da¥Êƒ‡Ô*5«–Ü'žñ©ï™T7Ëw¼Lô”ÅSNº!s¦'%Ot+#Ý6蟠«¿r“‡õ_¡ ÛG8Í]_¼Ø|‘R¦\„+DÞ3‘U=W ÂæHõäpgðq‡!-mÚlð=¦n6]ƒþ¬Ê,ât + 51À^¤m±mªÔ»ÿQÒ¦—6F÷šd{[Fo*š°ïˆ1}À+Æ + – w·ÓÇÜgr~g#Åû&Iê¶æÌÛZžq}´-›†³„Ë`dçpJ½vwú¤mÓ´ôÀW2ûgdß^…YËq@Œ˜´Y5ê— Yå<™Û湟¾Ê²Ø‹Å ‚m©f\Å]ãïœÉ ÜÄû*ü.Ó¡z© òL?—bû7À!™®ë6uµRNÎïyzöµY¼Úo#‚!ÚÇp¾jjziT§t;À…Âë< <Šiþ—-C>¬R#ׇ2‰OÒ8ߤø²w'ï¥ý¹l _I=ãüjŒóJ÷=ÓÇþþü8‰Àߎ֯÷*Á^èŸhÊt–¸~E-è`’ufQkìiêà¶ùLlõÿ8å,R‹Ì1`=õ˜ + 'Qã—æ†âÕ”S–T:¬NŒ^îO + É·j$­ðªÎkͬeÍâ'£+–%'c^ÿöˤgÔÚÙyrâoÕ“"PLK6'zWo‹:ò{¶¥Ew¦x{Áue«{‹\‰ÁçTŽF:Æ” + ªgÛǘ cú–z†´Fç…¿Q…ãÛrrCI4åÄ“‡~e¿‡T}¶Ï=ŽÔšƒWpÆûŸgïçõúcÁ¿ÊðØs€ì‘†yÚÌ~ÂmciûîñcÂèm5'õ K×õ==e¶† + =îŸ"Ç\šØ÷O&"ë)®Ë_Bú>]£¯›ÔÏ÷ËÚVa¤ÑfÇn4ö6‰F[ëlÊòIqºŒpÉ«e¬ÌÅ~M¨ˆZ.6ÏÐÇ’Ÿñl¥¦÷e„0k‹1}ûF“=,QŒÜÅ ébÒÍ®y­_G‡…¦ßI)pȬPbÞAìù + ÚøêC„I—$ª+€ÇwÒ$¢óéSƒÑy"ˆµ)gŒ, áP¯›à0Í`Eœ4¢þ‡R/y›moÃYµi|ÿt‡q®ê ¦S½JƒüÓÍÕè‰-–Æ=_+¢‚$Ó5´JÁÜ!fOC» + }’MKÞŠ”&¹©HZ¼,¦ØïYÉ96Gã,µæª à(´­ÇnlÂüOXTÃÊE€;ê>ôÎé"È—_Žs÷o.Ë9ÓQê3R5øXQ2¢&¯b ‚‚®ÒꟛîzPõ"ån• v0C0 ˆ1{2PƼUk£~w^– š*Éô½=ÍÛ «1$:ñCë!h/Z¸ØÄÙ«öKI#ɉ£@Mô³w¯ßflk]û™S³_œ¼\§“¤Ø(¨`Ö’²Dõ XŒ¶Xçí¦K4:¾eEo=øò^L niœÂQýõ>uî°‘ch.©j>R¨ðüŽBìÓcGõŽg ß.$yÈm8¾7š=è,R°&WW&°$ØÞ E“RVM~Èz-”GÁáø‘˜£8ç×ÑwLd®¯+Æ·1ÕMG3‚òÈz›i¢ñ*áëg:M_…#š—øæriµÛ + õðñ²ªOG›ZÇÀîÜu + ׫hnÃ…׌ÁAø¬E$eÂZ8Å!HxÓØ3ìtÛ0R,¢,ób‡ßHC£j™ˆ¡W:íR¨ß?‘P²¡rZyVû¶ ?>Å]Ü”dJ—ˆv¤Ð.¥¥u¬:¿&}i[¤9MJi÷0:y\qðÝËçI hZ™ÞjªDÕ°æFðà µcÖ šÌCˆõ X¤Y[ð`­ Î6õùLïA±ëÆëºQõ‹m+®ä¡‰~ + >œžåˆ&åpÑž@vwm´ø·¸$B…O°¬ƒ[¼Ôí²Y’ŸiЧ)t?snŒ’e…mô÷ël1òÏzƒCý?Ÿå¤Ô$h_EYïj›êë%ÀÿZIÌS¥ú¿|ÿßàÿ {쀻‚=\€ÿž=‹¦ + endstream + endobj + 78 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-61 -250 999 759] + /FontName/SHIXAJ+CMSS10 + /ItalicAngle 0 + /StemV 78 + /FontFile 77 0 R + /Flags 4 + >> + endobj + 77 0 obj + << + /Filter[/FlateDecode] + /Length1 717 + /Length2 1218 + /Length3 533 + /Length 1751 + >> + stream + xÚí’}?[°¿8¨?õÙ˜/ýÝ + ÂÄ$ÞIp¸+,@Œqx—͇u—B¨·ˆ`Áts÷wô üþQßulÁHÃþÈ]°/ÖäÖª‰` À"I$²Ê¨Zïß>]rš ÂAA ˜Ù"ðáÏTNN¨$ÊÜš ˜[RHF¨ZÌ¿ú|X(†Ü + ‰D²!Y-ª±H!Øâ ºðûš «ÆAˆƒ;÷•>¬vÄlaòèÄ¥ñÁê{?0pµE¿æR¦ + Úcò5‰!É'B]«gŸ3Òξ6ÙìRë¹+óÎÔá¿I¥Jz L¹-5¬¾IÛ«éCæz7–[Ü~¥Ý:ª P¢kj÷ŽƒXXÝËƪæ”ͱuÝ`I¡înWEÿÉù2[ŽÒ%rßiÂ×G¦Ê´ût0@o½´ÌR/FpÜêļï«=æ¾q+Ýx¬^à¹æ#Kñé<.rÌ×ÐhȾÄÔ÷û­cåpl¤†Î:LpñªHÅ·ènT|°Ž·^}ð¢ÃQÛc~=áWÙcOc¶|G1ê´›_ÿ ðCz“ý«„,JRÅ¡‡§ÐQî²c9ÃöË%…ãsZ®_ìIsJkI!â[ºp<ƒ± »ã÷bã „`¿7„j÷…Í|O­ÖÑí rT{FÇ žÏ°ãcý¡°—DÐýí»GnϱC}Y·ýÓ¶Çéù#»i8¤=·uº‚%sšiÚ¤gZQn~o£ôøüI¥îÒ£FæLÐì“oÄúµB»/j+>ÈZ+pxÖ\~L]=ÊÜšv)É4a¾u,¾Èë®D;1ýLõÓ¬m“f)oõœ-»_¨ë¡š©knåfÀøxç[>›ŠB/SÛQ“q硨û#¾m 4(îÖÙgÓ2»æÚ¶SÛe«›k”ã“Ò«.§˜=í­ÍûͬrÕMnÒÈ–ø™£Öú†í )†ö¡2|+¢í~ò¸¾îuuf‡æLûÔp6æø{mž½-)1Kʘ÷Ä=ÉÙ”ðF"%%Ë£îèé€9·5¹zSˆlÖÖXÇRÇÝc¿GÇW—}6Üd + EŒš$Nô}2t/ã²F$AÞ¬{æ¼a–)R³i:š¬a—èãmŸo+_'‰¦¢~JJ$v ×^½»Õè…tMž–[•%931—ëZzgвºÇú;àü}p~FB/Ašžh¸áÍòX¡»úìÞxì¬i–¸wtÿåögu=N«hÙ + Ójùž~@Í»‰®Œ‹®1j'®-¶Hº¢_lçY?øý—F©3”†ë{uÕ/¸ÿüOpø[„¡¶(‡ûu*µ> + endstream + endobj + 101 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-6 -233 542 698] + /FontName/AHMRWX+CMTT9 + /ItalicAngle 0 + /StemV 74 + /FontFile 100 0 R + /Flags 4 + >> + endobj + 100 0 obj + << + /Filter[/FlateDecode] + /Length1 2030 + /Length2 11494 + /Length3 533 + /Length 12633 + >> + stream + xÚí–UXÌòæÑàî`pw—àîîƒînA‚ î‚wîî$waç;ò‘sþ{³ÏÞí³pÃï힪·ªzº¡"SQgµp4J9:¸1±1³ñÄ54øl̬ˆTTâ.@S7G S7 ?€ ên`g°qósró³s""Rļ]l¬¬Ý´âtíâˆÚ]lÌMŠ¦nÖ@{psS@ÝÑÜèæÍ ˆ‚@µ¿>â + Pº]<€̈ˆll s7€ÐÊÆ‘å/O²–ŽžÊîNÿ^òº¸‚}hÁ>é`—Ž o€Ð‘EÉœ öòlëã꿃K¹ƒ@J¦ö…ÿ«OÿcÙÔÞäý¯ ŽöNîn@€¢£ÐÅá¿·jÿéMhaãnÿß«²n¦ sQ+ÀúOÉÆUÊÆ h¡bãfn psqþC:Xü·pÛþá€ETFQM[‡áŸý碊©ƒ›†·ÓßQÿÚýf{epw\l¼ú¬Ì¬¬lààßÿeø_É$Ì-lÀg‚‹`êâbê>`âø²l,€^ Ø0 ³ƒ£ø#pOü–Ž.ˆ“ƒÀ^™Úÿ¥ÿSâ°8»;º-Ì@¯"€ÅÁÝÞ쯱[9¼ÊÜ GÈÔåUâ°8]Ìn¯/€ÅÔ¬ºš‚»õ·Ê÷¯Dÿ<$ÿ–9YÁL]€  å*Û¿ÔÿÚÌŽìúWW»W\”ÈÝõU—dîhooúª€ë±öv²¾ÖÂÉýã6Ž¯9Áµ¸‚L]­_p%>@ÇW\„£ðoæ»wó|]ç´ttíØ‹+x¸3ï_Þ@Ž¯F¸À!]ö6ÿ©rƒƒ€®¯Eqƒ;tv7}78—Õ_7ð57¸PÑW×(öJàòÄ_ lDâ•À&$ÿ&pr©Wg–~%pV™W÷^ö•Àù^ œAéoâÇTy%pµWGQ%pË4^ \‘æ+3h½صîß¾-YÌ\LÍí€nÿq–øÀ¹ÌÀòŽ–ãïÝÿyÆøÀ ÝÁ_$WsG—×IóqÿëøþglpO_¸b³W»3ÿ›ØXÁ °øÿšçø×ÁùÁî¬þ@pK¬ÿ@°E›?lÂî»ý`¯_w66° ‡?lÃñÛpúÁ6œÿ@° —?lÃõwÈí»rÿÁ®<þ@°+ÏW?q,^ Ø•÷våóþktÿ9 + 6vοæü‡?v®í{ðÿ¼ºÅĽ|™¸LìàË‘ |Ápóñúÿç6Mgw ¬øÛÎÊÊËñÏ›ÛÜÝ|=¹ýã¥? + ÿfKð zÍ3³pl ‰nL®»çɵ¿N,¨ vŸ|âºÍÃ>GÁ2/ÚF„Ù©\/¡<«Ä¤ÝÓ’ + GÖ( + $tßõy{V®áÒ[ŽµëïÜðWÅ2Mc5êA±tcZõëò¸|`ÑÖ/-òÜœ:/Èšžæ‡:—-*õ:G–ê÷¢öÛ øÍç%=å²okß8|·ÐÃÂ÷®eÇò·áû­y%¤8Û c·LÉĈ¼³¿ QÀÒ ¬éß&BÙ<Òjº’T•é•×^/óØ«Ý¿,\G¾M?k—þe1»ª¥Äë :óÐ ·´`Á‹tk!ëgŸ{uD¾KÍVŠ:}Là5ÒºœñdÓøs¼ë€ ç–I–•ø)$Ð;‰ÛOöMFÏœ¶I÷·Øžƒ†c—N{Zot"ùFJ`³®ô ez#'â[ìnqÚq:®¡aâ.:ìpa6†´¯Pž,kQÏt»¢U(ÜöÔPùK’kšºWëFûìmyu¡igõ ê:Ã^iÛõYÁÛ^n¸®*­_]ŠÅÚ_ÐöÆ?Ü5/ÛLÓõÞ9Ãä…µ¬ë….ùzUÇ#Ä¿iËy?(2À„˜Ro(3Y³p¼»pŒºƒ‰S&$b*-Rê'açÍ•¬%)g¨ù5 õÁb¾…ï–,Om^Ä2Øt¶Šf(Ü•òä(T'“oZÍ›aLþØŠ HqŠÈTzWÜnõKηwt…u›C Ëb÷c ÛŒ/ê¥IË\œ cú_œ´IXƒÎ? 0¨ 68q´Ò3jÜðÊUÂV + ±ÔŸ{‡–„z7V*êZ2Ó÷ÆÔBp²ºôhcí®*6ÖÆÖŽkl’뉶üÑÏ‘¿J_>Ý‚ÐLâi©‘ÛÛ:šÛÛN²Ø)¸ .÷4ò e¼g—=v ßG­…5›÷iA¦,<É5sö?¶s«ì“‡ÜÁg,°oð½dŠÜQÝl1¸} [÷nùEÄìëA€P~žK*Œ8Y;¶Â|%ì/“àŽo˜)"QA×1è÷°ŽO?ZcñSÓ”cÈ=cao- î^02vHäJÂm˜k#Ñ»¼Ë‘Ö.åÅ3æŒÀûp#‚'a=í‹ö’!<^{ŠÒ¹7zß®–£NpÁRX ¹b¬´ïÇ›Eº)RDךÎ΀U{ZúÝ + ãÀ·ðN›WTþ;ªòQ¬NlÑô×"d’ŠòŠÏŽ&æßI´“q + AXÃjHžM%qV̽vz~óOÝö…¶©%„4jÑ‘ÉA«‚Þƒê“ UeœT(Ùˆì¥?Á˜${Ý¾à–¬¿÷É ì>„8¦Û6KÿBøk6··Ø~ꮦ: + ä¡šir»¾ü6ŒÃ€âÑ«Á ¾”tR¡_ãã·må"Îór½ëm–ßÉs¸Ðzà ÷Íãñ7Júnb¥ñv#[+ïf®§ϱ]­š|‚-âî=›¶ÌÐ̼K· + ÓÝÎ|4ym¾ŠÌ8§O ÉÜJ—ç®6YSê3f< aãG‘ð®¯à ,jü*áNÚ:ʽžÇ§`` ¶–(WŸ¿µž›G —–×'5`”±r­[ÖW=P­$6¶ñSò7@²cI‡úÜ3ý + [=9_sgúáiŸí7èÏ6_r0p䀳ù0IÞO°÷~¶˜BürÐô¤½½&˜#7wÆ*œÍœÚn™|/&ñÌ#ÿu°åEŸ4t+· šð é%[é±—®»³s4ß'@/Án4ö$€zJ› + å (ý<ï ®F÷V›'3Dú€OEç4²\RP'WTƒX "·|â‘wOBHYêgt'd79ÚwmOQ»e ±Håö-ù2ˆÛ‰¬_µØbŸNGò7ûúÃZÂ\zÝ‚#±ZñZb¹ .Xñrl‰[š;f-k†µÈ[1Q\®0—ï+ƒXçCNŸV¾¶4ýÀ{‚*Èõ + ¹¾QwqØggƒr3?<Ôôhž»µfৣt!¨t4 Œ + z¯=LòúêG®¿T8’?’ïU÷{+ð‡¾|!ä¢ZS´âõÅ¥š’l#*É”HçÅVë4B¤Ž—ÓɦNûºˆcdU‚Fx2ËèêW“Aö‡„ö|òˆÊExâG‰œî˜o'rÃ7þ‹t½q5°5ÁóüÁÆ=B™î¾ôjwuØßÝèŒ>Ž”óB4ÌB[ ˜|)>À” « Þ÷5»ÉŽ'»­jÊ[Ë™oÞ\´Õ¬ã‹¿ØÞÉÔ7[¢ÚcmvÝÿ!àŠI6¾‚!?ôwÖy(¨¬f'ãÒŽÙÔ-zQ¸‰ì}(ìóÄØC&^Ä.ÂHÄî€$ ²z»ŠtþAÉsÆÍÖ¨¶„J¹ôe*uªÒ×~[“Áoä=+gqú+ä僉aöfîk–•§†8‡ªÛÊAœÜGÝí?ª¿ —$œ2¥ÉDã²ÍÜ4Yà°-BüôéÔ¶L£0OMª^Ê¢Ib¦þŠÙ.,Ê5üˆr]sR#õb©_uhËÄW Åy˜‰gÿ¸.Ñx¸ìòæÛg§>ÌyÚÝ3êBjûh/QmÿÚ‰iVQ‘m÷Gé_š<=0…NÄôe6g‡…ZÒUiÏïC¥½Òí¾Sa½Ÿ.Kâû¤˜J_/HÝ{ÓEÝAøU@écP2Š&“˜Qâ–Züø³eØ]‡jùÞÏ7’F–û&rÄ13ΖÓêUÁ#¿g½qÎz­J¦ Ö ™IJ³ü¶è²扭Â6ð “6q"Ä‹Â2sV'2qcÊÛ°BdÂNi$ÎËã´S/‰HöêÈ—Ó˜2ÐËûalr= ¨'ZF6lÐ;ž@â>^ Ž‰ÃÖÆ–$2AQ® ÌõÒÛ ŒæbYInÎ:#¿9áH ÄÖ6¥ŠE//ŽãßrmÐ{P_uAÂÜÌT Á¤F#½óÔ€Ç5Zq‚#ì.Ïç|»ú ¾Zvw]F-dQZ§¼Æ÷¤®ö-|ª´¹°špÊL„MÔ "1Á ƒ¥¿0Åù…zÕ“rK&}§ŒÑzŠGç-Dϼ‚9Þêªõþ\g²p+ïhT1žTp+ÍB)ç6Ú¾I%3Äg”Un‡Ðî:Iô¹®¬c6®U÷ÙªU•GSTÂ-UGB²ü#ƒ¹Ü™Énú 3q>~£ìË…™aXmSx/XH§™rø†m\1|@| ±üÞ!;â—ýÖ4è`»-ù”¡†îͺݠh™Æ¾…åPÔ½)ÏøEExÍ|î¯ê:å´’€òˆ"ê{ÿµ…b”ÅŒ'ˆþî…Û4^N0Nµ¹« ÌWS ÏTòì`g»¥÷oT]½’¬Ao¿°DãÚ ¡Í'¾­ã,×Ô¯¸"˜-™Ô8Ó½¤%ð {ù~Û18@hÇ׳ýŒj' Ë4¯ˆ¸ûÃ{¯{FêƒL)r¿|$âŽô·ƒþ7éõ + 4Ÿ/ee0­ -EtuøP¸ŠrXÞRzÑ^4Ž!¬Æ²®š´™h¢–ÞTcN´ö&™Kˆö.rùpÉdĆDìBv–çRWòWŒA÷|{²âóâ¿ðÉrõ–íÎ^•ºA“b—r¥²õ›»pXωú + ¢¹ëÙ±˜zKK)`|ÌäµLÊx.·^ôªýèôLóUI¯©‘>Ò¸¯û¹"UÆ.0\¿%‡:²puåÓ Jhq~hµnÁ°†Ñ0UÙ~»Á½ì4ÒLïí趙 ¶¶™ãˆf² ö£Áö3n Æ!¶ZÜGܤm­lÖå¶ÜRzÑzÚ"£Fòah|–Bb±6g¾#­Ó.MKVäÏïÝæËø—¬ Ï + F¿WáIíb¹H•È¨ig‘[øñ´ÔÁ¶d'²À¡2ùt´qéºÖG?öÐ$ ÙíµRž&¨rå"}Â>Îìùrf†ÏHÚú íA‡]>ׇ2ñ_Y°…¡{œ¼à$7Tú,(DãTcH¥åWÊ<©•“úøk<¾ÕMpû1™7ÐX ŒêQ;Þåí[÷Ä Q’ؾ!XEm¼äªGiÿ„ízdbo8›:O.4^ }­Eg!‹“KFšå…„ÈEIV¬â©‰±¾Y€éYÅ?,ê$+± º¯xå³›>ÛZ¡Æãæ8Q²ÓÅ–dœ:a?„{SCôüE¦h Çp’Cqïb>ñóš²?0If+°#—fù÷ð´ ÌÞ6¬gÉé¤=Þ[WQjgDÄ_ÈŽQfÁ2Å™ÈL<"Gµ$khY‚ˆsl|œÔ9 /=r퉶„_ ‚§OÞ¾×”9бÎÇbØ34K-]ç<÷-zØŒ²®~Ì…º¯ÎPE³/@pyÍƆâwF2ñsÙ•=«/˜5!\,ž€Lº„âµþꬻÞÿ + ±ýžõK®ð©™Û[±-%r†uRÅ@ÔiUÊf3¤èýzcÐa*å9Ù@€Æ,¤–^äê:/»$IÜZ|ó _ø˜¹¦ØônfIÔ|brñç›ìÖÙÀÁó.7¹ T¼À‘KñÚÌû:¿å (Îo3¦QÞÌϨBžb‚égŒç°P9#°/»kXF³“¹±4ÃäMæì&²]@X¼Ÿe¿~RäµÎe7þbM÷±vîT¶zR¥:nÓ.£Š`i´™©ÕmT†Ü÷aìÏ1èYãD€Tá‚eÆñú’XÖ?ꪸÇ”sßH*¯±-Å.ȉӼ$ÿ3ñÔ½;Íå]š>ë¸æÎUæ‚V^Áµ1ߊ+jÓ„k«’ý  + ‹zmÅB6‹AÑ¢å-8Êiú‹ çzŠ{«Ä¡aÄ‘¼tl+¹rý³úÞÝZyŠ¡q–è=á]œ¹éXÕdÖM÷}Ž›Z 4º¸Õ8G»ÚLNèûêá$ ØçCm¨ÁœDÜSÌ%^Yñ.ɸ[‰øc5Wä(üÚíà^:]ûÍUxM9êÏoÙ~9 + :±…·½•¾¦¢wÂYQˆŒ¥¼ádZg2ÀS¯­°—â羡ã_ì èó\[ιê4úŠú&‹¦‘Eì|WÎh¡ ¸Ò«‘ðÈÀò–Ÿ41ædШ©ÎiâQãEÚsP–·‚•™}¼Œµ¹‹û˲ïaˆ×!¹½zMÖÔí{wþ§e5loÌhL‘Ðý4cË6ß'Ûù‹ÈV¾í0A謊îÊÆ” ßÛyofYQyÍpuÌÈCm>z’“ ~‹JÖ÷_e$BözÁ}³Ûy&*Þ–äh&ýæÙ:léPòæ^B‘–nÈñT’A;4œ–÷—†±ôÏÛBÐPÇ?Þ#„`¢YAñ KŽööÊgûóny†8>”Ô2×çÖï4:ç±¾É?ã(0®aý.½ÌР܀Ü3Qû$yºí˜4K½oá°Nå4 °“ªLŸª»†‹MÐw™_Õ¦ªŒ…p}ÝrBç[<Å;Fü»ü.îôÞÏ Úêì=w˜ì^ó(ûpS%”íKû‹üuÒGxÌ eëÝn(IŠÊæçͧ’@@Ï5É ©‘–½1“—T·Éïôx³‘¼õ ^¶Ë¡Àç¾vn + Ì1åÏQ´­vb‚…ô=!ë³Õ\Tí.ÕyÙ®ÑñÊ[ÊiâŽæ³åê4PðI8øï¹Øqè2¾%þ,Ä”¤øŽË+°±)e­ºÚW4êPî&¼XÝ­4,?&ôª²âhUmíƒ+hëqj´™âˆu X«?Ò + rw( §ÐÖü,*Ÿ8[ÒU!¹í²žÜ(ZºëრȹP‹ÔÄÿD½<^Ìéòãc#äAÎú7’o¨¥ö*îPòhÓ 8÷áÝ;‰áIoª åßb±·Êß¹Ëâ*Çûû…‹¾YÍoÞÒ î‚gTÔm:ÇS˜Od¥éáÖMœO0sj=óÐÒŸ~·šø\¿Ö¹ô•¥lgÄ4lPN6[ŒiýãiúÜ,/t2áª6ˆ0«É²s =ýÍìãçA}R3‰MãYå,uX GIɦ˜w&ΡR#ä‰ÀÈÝf˜ä\¦U±‚.o"ƒ¶k8d"°ÙÇ7>›<ô.XÕr39ÜÙ2ŽoÆßX]™oêw[ÆÈ^Ïm̶•û6(ÑÔ0‡Y~/Ž­Ú+–N*0#A†t]Ô] OåÇ3^¢ÛÇaæ4èòò?4}çñòRkBh`›{-›Ájª1d%H­ÃO–UÄ ‘Cöõ´{æÜÊaaÀS„!ÛÞ&ã9R~~RÿL¿*Á€P/*Ý'>z±¤Ncû”¶±dHÕ÷|&ŽÍ§AœåëÄ(=ÕúÙév!ãWM½[ + uþïÂ&ÆÁèŽ2ö>V¥ÓÓŠÊw™®zá ²¼ãû¬ö“^9 k£Ò$±Þ + ©š¿Ü·f5CóUY~ÉB—Ì]h†}±_ºâÝ\ÿ)¨-Ù^ðìÏ…ëoÙWýíš ¦‰³Š%G,¨ÀÓâõ¢yÕW-n•2Y™ô! (¬Pè\$Yt[ll@Ñã﬙ õŠ ÀÈ7¬Õb¹eñÑ0,Eaû¸ìç·çºŠP³æ3Xcj¹Ö%X;(X^c}I²Nºã†|b›CIv«¢­߈Ö<f˜²+#{¥JYQ¾í±#“Ÿ…¯Gµ§lв{15\Ù + d-ìqmðb6gÞIc4¯MÚLA‚pZÞYës§ØQmí±–)s»B+êaBœ¶!ÈÀ¶ƒU‡É""êe%ó=´Ò‘——¹AZ=(#§ËÛ:%PúÊÎ>ɆdÖúe§‡Ôýƒ³i5²ùc‚]U<«Ë|;^è’$䇹2ÂÃ}#eæ}ö#U<õ¬ð%ÜPïh½‚}zsŸ^ðŽ¼&m(ŠeZ›ü6~©÷$•„“¸Õå–ZéÑSŒg†ºí_I>h^ }ÆEÈ#'þÖavFßeâ„q9Ø?o½W•´ŸeàS*Ý2:' G^ñ+>F áÿ<šxÆ`X"º<•ˆ^B§õ‰óH¯! y˜Y³VrÿÑuòŒˆG.‹«á‡èÞŒãU³rïç¦8ÉúE¥úØaÈ cñAÝQÏ cì±éBñU¿…¬ú(¦TV–ì6w€ Mþꯠ(û¯‹“6<½Vg%ŸðvÞÊQ*©Aåýäu Í2c¹ÁÔèÕI5hé¤ôü™¾Té ³Ò~ºŽâM?NŒ(Ão—?ß"¡ ï¢íZ(ª#W­ÒÌöÜЮ\S2€ë‹¢øI%*ì\ëù\29hS&Ád|–ƒôÅù&Z6eÔ{s!hXpGO;èn†ªÑÐJýqˆS(hþ&º‚(ë¸Ô9*‡×—œÖÊC„ÄÏ5\ÈC0ÀdI‡“Moˆ»Ùä…¿•"’gCÈeeLLœ¾„²ÿÃÈ­ö´cæOIšT¹Ï};9C7›ÏÂ…u©"~é ˺¤ßÝ!ìI]æFì[¿D½‰êšÖ 'Ò“l¶Ê cýQ(ÊûpqÛ¢’y€ƒ‚ŠÕÅf¹A4¡À7c…2XiÑ‹Å®3*,Saðpzùiõ(V?ËŒJ´sÛåÚë"Äq2BM¬žzÒ+¡bµ›˜„°ÖHÚÏèW,mzK'Í(zë'uÄ[<©{9%Y»-ÇP1']8+5¯»îÆ©LŸ¾bYTMNòÜDù$ôc=Mç.Êø‘ÞO ¾ pÂ4“whs1!á‹ÆKzìü¸µÚRsp:)k¾ $G{##qsš·ãÛtz6±Nf&ÐzúNZ|WôÏ•|Dï-èQ`Y4¢ ß Ò4|‚¹ Y®-˜½‘†JüÀ±&¤TPqç({p·G~©¡Ž hײA½T… + R€)#$?¦ßùŽ½B³Æä¼8©£}„ ýx̼YÉ|÷„‰ß1FIÆÕÊF²³äÅù¥Üä s«Æ¡šk/^4ƒÚMV„ÖÄ?}õ2²ï£%m¾yÈ1o|[“Þ9B.ºWë•ZÃþzœ“I6&nG¨xú[¶¯šROEŒoY"Ÿa+&¬¶€}¤Ë¤VZ4•f;*…¼½  TGû«òb]Õ~8d›ÚZJ7Ôq«4óÊkô: K:~_^Y~+‚·àNnàø•HWkçñ.¶åÉŸÞoåc¼õ"òh + Ú…k3€ íeYs’º‚)T´e:ÖÀÁ#õL²x¢\ù‡÷A=ÿõ¡±Iño–Λ–øWØ›?ý/ Ž«ÌinãõΜÇéS²Q쿽)ã2MAjå¸Qû®Ò·TÞ“i=S,€|Ì×^¸Ùtl{?«³zQŨøÍP„ øI9ÀÛti/‰ûMSÏ>%Þ'QB7 KÑ_5©Áþ]åçw + ü÷xv€úFªcÞ˹m–¬ž˜.oâ®8Ï­gp‰à; + q‰”i0å3Št„mÓ71Òµ4’r1–Ç]8êÞÐÚ=Ú îÃÙÊá+ýUóJ^Ïa¼e_= 7¹x]3’îsFï<ÝØRFC“>"Š–ò"ŸËm;æåéní'^MCû0FŠdgñë—/÷B_뇷ݘ©zãa´O­ã´ô”“»½!úù€×F‡ûË[1Ï: ywt5‘P5ƒ´5(½]ææ¼¼ºé‹{†;Ò³ne+\vìïf󶢉ø)·Ÿiû^H Ç*‘h¼ãt + ä2 èY}Èw3öó—¤\# + s·L îÎ÷¢LÜ®Cà”áLèî+íéa©Ú¼úiC*¨ò:Rëu5Íy§ñÄŽº)2K‘ÅBWHÛ±0î;‹¼6Ø|©Œu¿õôjÌ]ô‹•šÒ!`Â6O(ÂûæÊ鸶oÕœ;þˆ'®žn0f…A/¬’W>÷ ÒÄGfgtõ_&qK¹\¾,èôsÐ¥—m•‘¦.âë89cO³$Öe³5Ÿ6E:ED>²å¬eåLî(›T8PÖgÓ¼Ý ëätVNžƒ~@‹ÄÊv- @0ÁÊáf J¼ÍN*¦±ôqäŠø6í¾„pxlÀ½´MÙ/ŸNÚY†/™6yé2 ‹|³?Ö^‹BsÚ÷f›`óȸ×Âe垥Ô^±V7Îòöòì{5Tפ/´xnÔùM~xm¶pïDòƒˆF0—à@½ {@F#6„9°d+5rØ»êz°BÒ9ó€ƒQ¥þÞü꙲»“Ð’ÿV–Œµ Þ0!ëFj&€rAžo¶¦–`!oÚ?ix2È‹ìÊV‹ùwÀ½×îs–ª¸°k6OceÅi||˜û³ÍÃ@ÅŽÖ*»Ï + Ô:Ì!†jwéu” Ý + ÷+—¡²™9-»lfƒÔ9 ‰ÐîasJiaíAh\´­¥%¡OZž^÷ ÙÇÛ(¦¤Fã±Ê¾ï‚&µ&zÏÆßµŠ#)<é³II0ON [-ÅJ’Úû,®L³÷QþâXjj˜ + *\îÉæ{ešu˦ä›éS§/ú)/ï8VŒÆ0b¤1“¯ýPýTé•?=Ë©Ú ÏÚ~g…fBP•6ؘ‰-_àü–­ “9°›aËhH̉­¬ :|ˆ©ãg8Éì2š²à[ÿ4ùØ*œÛ#‡_ŸÚ¦âyM¯Îp/ °7«ûÖ›‹:Ed\²XŒD`¢aJ!ÄCkÑ=ü¹¯ôãBeô †]¹ñð/EÿŒxíáËm Ô«ã¨E< ´P½³Z÷I¨Jé/'Ïý¶CV_Qh¤ð~Ï©Ècú0@Ž±zhQÞLzâQ盫(® ßoH±9)öœáP×ß39l0k£k¾—·ï=™RJÃÅ»¤€Ú\âe>:Ô3‚l}˜ÊÛ¸Cܨ_\ÌWKý`Ñ…bdÈÞlœ |«,©çZfA,Pˆ—p÷i›`#PËoV Å,HOõkQ™Ú˜sy “”yiô¹ÙªJ˜Ÿ¡ÁY¤ÚL,`ÞâÝ!'Eç÷#MɧÛ<”ÙÖL·za¬¬Û,'*_k}åT=4ÇL?ÞXöX8ÖCÜð}.ÔX¶AÊ8¼V>ÝåÖ$ƒ9wÁ’C|wÐÝDMË=_·–>·)ožòÝ’Z”Ù>ÝSჀµšèâèK±tƒ9Å"Ðu%™ŽüS’ðÊg)Ù`¯vyñ5u~mN:üÁÏ%~"¡ßÀUM$::_2:œ(6ûN&¶q Î%æ©Nfwѧ¬'è¿m#Hj€>ddÜM}¥³ÆÌñIÓGV­\|ªÚyÃÆ`?òls®k/Û v®ý®¿:Ë`r_cÑCGþ"¦ÚD qËjý‡±ô¯aJJ*è󜄔⬎ó¸0¬sä•ßÙ×ÙÚxJN¹ + _a.ˆ¾ E¡¿cÓ3Õ"˜0[_£ž“Š¶ÜF0ã—´j¦’v¨¹ÎÌU S$( Ô»Ê¨Imo@ô­p¥©H±ºÛùZ"±Bj¤WÍ!R×ÇÑ®ÞrL¸¤;çY¼å‡§ + ¢V + æWá|·îf.ý}ˆ±&Ï”•ËT™c¦Q™ëáƒãç_l#!ßõDËÅ'܉tvü-ðj©‘D¥Ã42÷ÌÏwŒr + œ­ `îyW—|ñ|áŸÆ¾Ñ%,¤¡‚®Îà‘9»å¡Â + ­LÉG]¬Bó í®UÓ:ùM 'pÕgU‹0hšìßj…‚ül+X~§ˆ¹w‹É€ìŽÑŽä%Ó%QYŠ_2Žƒ9t¾å­>¡R%̈ò[iG`šI_B0Óµc–iKE‰EXPµ] ‡GËJÀ/ØÔeP¢L§ + ¡ØÜ©&ÈÅÂ6c›bþ×1 ¥±bø‰K€IlEÝUxÄÉäìÊ,ÊÌdrTÊ A¶Sç ¢}É´þ·üp!5ÝžX°Ý*ù[ùŸ”–gÃ.³á­öZùçéO°˜×Í|rh¦ñÎÜQqjKú°¦xP12Ql«ÊŸ®cHG£xðnE¡rƒß.ÛÝÆЃ¹I`¾Ÿ2o®5Bq´câ\µL¢ÝÔDÚ×Pe‰uxYÇôßgrÉÖø°ÂéW™%z{ªåiªt¢Û§P‘tŒØ¥z³Ìb Þ…éJ{õ@*³Ö‚8îd±Ó#w·—•í8q0/oÐЊ´Ûe?cBÃÑZy™ ¼m¨ò™! + ¬†£í#´‹£ ÿ&ŠÐ:›ÎÛxv æ®ßâ“xÙ iF8(|®8ÏBÿÆeê‡ñ£òõóˆüg¬˜Žš±ú¼lst ™ÂÐ òŸúˆ1Ö︎F¥BÁ×HÈ:v&áøge{Ò˜+r&ïôê¾6o~"÷쟄–³>uéQ*67d7g"{‰@ôˆcÉ*7òº¨¦R ¤p”§aòÆ3ŸMJ²6Ž„n¶ÅûA$†–/n ^Ç(Ùeù×'Ì wdcŸS!Ô|¾k% ZÇ®"Ýq‘»«çý,J¬4Hb + Ù2–ÍYµùùyfâ2M¸ˆ;²¸é6Ÿ„þU£u ôÝATúºËØ‹ðU'Wá/|SÝ&49IðQâ"ÃÉ4˜B%&œ’Ó;Jû¯×Í1üô!x+7†ÍûCŒ–/¤…D1žÕlöaÞj2N¿ÏHß."Îï| ê|ëd¨"بާŽ™[=uÏVùé½|?E`¹õûTâ»à!WNµåXnµ”-?ß:ƒOño¬‰3?þ·3)ÂZű§DPnòˆýÞ_µL…¥’ƒ›ìõ÷´T‡e½Ý°š Ô!”Oeà›¯‰‰ìà;$®r3¡n˜éY-’¦[r_ò®ž$Ÿœ©cý\Æß~ê]v Ø/WÆ,•×þÈpi‡!‹²M<úÆÇ/"Päzøºà^u4” Ó¡’Ú›¥<7w3~ùB­ÜA$•…†z,”³ Y"0VÐS¼Íq½‚ji¨¹!é-tgpWú--ÅCó7Ï(½ôÔ6œ ]UHzÙ’ {ôG»+ì²4-¾ökœ@Å÷§ë´¨2”ÏŸXd?—¬™í,K2>•æÜæ Ø)¥ §*$ªsÈ­³“/)¢½£ã× ç_žg€*CÔ±î;‘ûýa4v«Áó`ô:p¾ +  §AhŠ<÷]HµïT*² ñÖ  8«Z'“Ý;¸}o‘ñÃbÝ»[f΀’ðÛ"ìkwå¸ó¦?sÏ•#\iê‘“¶Sv‚O¨BÎ÷8¾}1qòB ­Äûxtê!„Û¸Œû#8¨F°RŽ4/ª1D@ßµfVšné.λc¾ˆ‹+s~0¥ß ·¼‹*ReIa+z[—ºeEàÀ#‰úd¶mîã7ü'ë“ Q¥AÓœ´©Éâ(O`؆="N‘0â~ÌŒFœ›PÕ5-;['•É DWï ï.~­-¹Îe¥–€8UÔg¡èñªõ~IlÝœ£w—ûìΕ­È˜ù‡[äd(›ð›+×ç3Œ”F9f3Q¡p1ãù‰æø®î³‡m»”W'Ïì·Ã«ÝWŽ§8héØË°=û5>^;êb™ÃjdŽô-¿]±Ä¨L²X EÇÖNýÑÃ5“¯PN'å‰åzƒ^ÄP¦ˆö¹™bv®G|ÖüÑ kÍÅâ—ľ;ycó‘Û ›<…Š+%kûAYSäEÿËým)ÝÈs}G±·?gú¼Ê„ Õ¤óyñª¹nXÎV¢þ -‘!v©„%*7ÿÌ"båÎxQ–U.‹¢ýC<¶.”¯À5ªh{`´œ•h™ÈÞÁpÝ—ø~)“XBÕp¯·ŽÉGAœÄ\ðÏÀ{]R¨ÜŸu´Oq­˜4HŒPA§» ¸Éçìõƒ† + –æíÝ + €vìÝUD›1yâ;B™G‹»•{¸·—#µP‚¿GøóÓÍ,l!Â!0;,¡›š#Ie¦º=ÉT×ÏÞê. + wæ=Øß)Ô×åâHO;H†Ii·ýZð„¦P¿gR{׆ZT!çL%àó¦'ªHv6áÚØ¢]¼Ù«s–v*ÿàÚºŒu¸˜^˜½y¡û•ô£}–MdXQjÝ ·¦”™ÑŽ]›VÔø6@Í=-9šÜ'ßû + À* Y"{;B?Pñç\6¾Š/†À'N€$[ÑÌÈÖmP_ñ/)B=J–ô÷ ]Ýææ;ŒîvÓ¡îÈg‘ä¸4Yÿ/ÿ€ÿ'˜ƒ€¦.nŽö¦.vˆˆÿ '¤#{ + endstream + endobj + 144 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-39 -250 1036 750] + /FontName/OLGNEF+CMR9 + /ItalicAngle 0 + /StemV 74 + /FontFile 143 0 R + /Flags 4 + >> + endobj + 143 0 obj + << + /Filter[/FlateDecode] + /Length1 712 + /Length2 6627 + /Length3 533 + /Length 7182 + >> + stream + xÚí”UT\[·­q‚K ‚†ÂÝ-Np ® ^*¤ðàNpN° A‚w$ÁÝÝ]Oöþïn»ûÜ—ÓÎÛmw­—5úè«Ïo5Ûd¤ÕÐæ”Ã- òp‚“—‹|­¦%äåâÁfd|í1G@á0YsäáJ»Xùx€¼B ~ 66#ð5ÜÁà jmƒ²¼fýË% ”¶‡8A-Ía@5s„ ÄþOˆ¥¹Pn … <¸€@i;; Ö_¯8µ Î'W˜ ›—†Z"€k( ›û/$%˜(ü/ìâðï–+ÄÉùå'+ð%³ó‚!VØÜoàVƒüaùocý_¨þ.ïbg÷ÆÜþ¯ø?cú/]s{¨ÇÿêÃí\'  q‚ýÓªùš u±ÿgW anµ”†YÛA€<ÿ’ ÎòPwXŠ°´Z™Û9CþÖ!0ð?!þŒíonuU…7ròìÿÐõ4Ì¡0„Ž‡Ã¦þeþ»æýßõŸá8AÝoy¸xxxÿÿÜÿ~2þÇZr0K8 + ³j#Ìa`s'ð + ÿ•IFîîÅÉ/ääü³xø…€Â‚<Þÿ§Qut(Éyxx„EøþV-]œœ 0Äß›àÏ÷þ»¶‚þ™â±ÄNÏ …"›rP³_˜·ÿ¦Óÿ><©ÝRp*x™øÙŒc‡Î5eü^ã|ïvO#2åš…F2¬ÊGM4¶ýÒ¤ËâlÀf5ØüvõTµÅ9ö¼Ö…»íÙhú¶†=GÐË`ᜃph=é¡%¯»ûÝçÓ:.3bo˜®YØhBYþ–sS‰gÏ4½¬Ä€¼='ó¨ä{îmÀü¨{&Å©ë;ñMÑæípý÷V'±9ßÈ°èÖüy(…1ŠXÖ…7¿ÅÌéT¾T´ Â&4œ Ü”ˆ£¹*¦Ön#dÍ'^U†>COwÇÒ>õ݈ÜèÄíŒä<É™qغE±¨ïuå£K$<•ù®ÑXâ¦MTÈyâÆýðuú½ƒF2Êm µ%M­ + ç¸6© ãì®ZI+›Yü%h}f>æûüˆ;Û»> + ~LqMfj4êIÄÓ¾©¤#V– ôúl2önOCš_b¨.ÚÏ ƒ.å74Hôóظ/'á$´ò§¡îëöz‚ð¯ÆL*v(0Ц|Ù‰\ + ʾ3 -ÑÚ&òOöáUŽµƒË9zM°¿ “.÷¹'"•èÔ͆Mctto­/ûSÖ§ÚöS®Š&â·€ª–¸êÜK6WiFÅríöijågíÇŽd–3åõFò´~ƒAMôo-p áAÕÓËÝ–>,DÍ1xhvá‚_û¥Wªg:Eç©yTøÝo¯ã?Ž&‡” JÝáVÍ+$Åi»[ÁËé<Ã/pÌ´¬i9A½ä´èý4L‘ + äw/ ‘„¨|§ˆ‡þ~7<Œ® Ü1›ùÊNýwzÜóF´®féåiŒ&2¶¯óïy´ûj¸¯šJ4ž›òÐñ›Ýr·!Ç'Vg˜°å‡?†¬|ñ0)>ÅŠˆï—kÖ Cs,u¤,\‰T^%:Á~ÁaÆ‹Kø˜y³Kõø£àqùžC2Fñª{á—}œÙæBÚw(Dµ¥ÈbðBkÑ + ÆLÕKìÑ °Õöq¶cÁÅ"´•)H|!_F7è¥ pػד„ȸ \ðvÉò—®“‚~jc÷¶Ü]è‡5ØïŠÓa¯pJ‰:wÍwŒ¨5déšâè,‡¯I¨N³Ì_}qpi‘£tòøClŒÓ+B©&røsE¥Z63˜Aõ»1õÅ,jÅÜŽðÐÖ>™$ú±? Û… Ü~Î3šÎ¤ÝËœr“ÖÌ:¯.Iî{–)ŽRÉ2¾ýƉ™´Ö{ + Ã÷Úè­Òþ.Ñ2ííw9ÔWíéþ‰kÉðqLXSuë…Fr*öcá¹Ƀ2#£³”hÌgóf|Í*¥ý°”«~ÍúçN÷´Â®9NÙ¯A_œcâe™=}¹­‚CêdQîØHeãßúí+†ÆIÌsrqo=ݲ¢K( + ²’jlÓ”f6´Å-|‹¤VZ¶8Cƒ¾j*%Ñ?QÁ+•¾Î=z)Ž‘¯BÄê"ZæO¤KÛr¾RŸuȃ÷šúº2aUÓªßÖSˆ&)B>åYùY‹ŒÁÏ=ÓìLÂaSåB/X—‰ôNÞ´#fyÔEZÎvQ;T + ’R/$JšD,.j7ßÜY6¯îï›ú}¥ˆ!ÛOÞ‡Ë7FøÙÐ¥‹eq Ô¿3ÀkRãÜ4sñèziò`ͺxÿ_cTˆ¼/ûõ˜âWXñi<Ù`ôr]EòÞ'Í\Å[86#U6Ô'»zöׯWrÇ[Hâ·ÍaŒ!Ã&P»‡õ¼Ò‚B=ãétщayŒ³¼ƒº¬BØ-¿š›cíçc“ .¹Âu¹LßwûVÛÓÕ‰Eq]AÓˆï,þ©“Y"«Ã×Å~AôÛ üàÆÓߌâ¾´lb[-Ìægb¹¼z]‚I„†4žäÓÏðŠØ ñ$¢Ò‹ÅÁ~É_/o!Åh:¾ˆî[Ý´»†„2sêž«=ßÅŽTàf‰­íËg>ÇÛSãÿÔ@–.‚óN®WŽqwãlõ4Xét¶ÜFˆYqIГXúƒ“"ir E†löàLÅ·[?wQ@;n§Ûêlˆ¾e‡Û]À@?Ä÷)’¦(Sµ¶êîâRÕ>S ÍMTÿ¦ߣÒQ­ëU‚äZ¿‘-ÆílÚzVt: ¹·ÎŒî”G#·º4z‚[.×zÞ ÁÀ}AÞ)û“¦ÆÃ}yöÎ…¢0p–ò£¹B«3.è]ø7^™s PVotÀõ¯bJñè”ìž ´•f×=¢{Raöímo‡ü²=Mo·”ClNÒáZ»I!½—AcWkú\!†QÔ>ù­ì¡ß"ôÚ)S ±t¼m¾‘×Þ›ô ?û¤vÈÁâŠÆ,ðtYåÙßwE’šëÙ]˲µ&CV˜Í¯] + ?ªçövœ \69R´R˜L¯xÐusçR¾.:ÈWÞ·Ëä=9EÊ;öî†zº‚ß„/67XÐ" ɸÅü['†¨ZÊ¡"ш¿€ÒBf¼ù‡tGÓç×ôº¸ª#®„_]çŒ%Ÿ]©® + Þƒ5gyºl¿ËÉ ±P²Kk$z8_ëw^p=‰€®Š™JÅ3Èoâ\ŒÈ¶F + ­?jb)ò6.IUÖí1Þxá8x<´-¤&yoq ¸Qn©K; ü4±70¾)4mão³É¹œÌÒ;ÚBÈIÕC ò&9®Ï ªÙÍ´îøbz + ¢«õ)b¼ý~R¦‰cr9<áÒ&x¢„Ô×bÒ¿aê}ßãÊû9¸œèY3ïž²?Y[ŸÂ4*P<­„ôv®³l>`u¹¥qä"H-~>x û^¢ÓS9 + ‰Ùu•§¼zª'½¹p =wxb\kxÝXhjq¥üû‘ÛÐD¶æFH<ûZBR!SÞWA5aàÑÛ,ÿ3%Øä÷Ä’ŠbÁy–>§ác€,SV©@ËÙ­%¸§¤õQ¨5_¹ß-1YÞ)†¹Ha€—ð6g´øÖ«£n&¤+"ˆñj7J;—¹Z5¼8וvÎMñ *³mT|jùÌØ)D·‘­ÞñøŒ­vx¹§•þàÁUMú˜©_ÁÃâHÎø5“œVìæòË«ê + w9Ø[½Ê棩;»×Zh¯R´2¦Ûïe†ý‡®Gµ“„ˆJ3ç0Ö™ª*V}_LÉ_Ô•A•üÝ-H¯v©Dê·w?î·y›bÒ€¿÷Ñ-sÛô,Õ•cÙ¨9©½í×ûÞÒ¾ìDQÊx蛽1œÍÆ;#w÷ôy~ Ï{"Zx…üt6Rèõû,µÆ)qŒçr2{Ó²ýÝ}Ù¾PB£ÀJ·ÿµk¡ë®:ƒùYwp„óFxgFbqï4dAc‹­Q3Ió—f;•Å„“‡…Õ¯æiS~#‰ï¹Ž Y–Æ@Ô}1kMÅ‘¥nv}צ¼ÇÀWcƒ²‚4‡’qpÏ®³¼‰Â=_«ºúMÍyŽüíD§qjt«ç½.u3\«} ÕŠ>Y:Ôù!D¯j³3ºˆXå}i5ÌiØì$y»àG›‹+eɧFõ%s + ßeníÀãÐVOWëǸsˆøÒÙuN{¾tÓ§Ð67Wè }:½ItsXXp7sàAjtqÉî4Çë+¿J«èÎ{²ÈǪ"hª,ùGÖrÇ0óÕ(¹âK"²¡C%u¹¬ºf´v|¿H”ChëEmX›4öÜò=†¾n²w\Ès¼®BÛÎ„¤&·'Qkjß©yÀ„v"£e˜{NÝ›“+ޜѫés0im> TßäóùÙ^mh#]ëëÈÆÁY·uêÊË2fÌÜ’?Ò¢‘Qm„’Lj=vÐ’y©§jóØ¿Pò FÈDÉî;eá¾°hùª?u•xc U-a¾p´€òÙ‹f£À¼ó°ÅeæÅ]çË]Qg`YjJ¶õSùn˜³ÇšžN(YgÐ÷m?6ͺÒw˜He¤Ît;ª‘q{MÒ,co®'éÖW:î©kéÛ³y߀DÁí é(Dˆ´9§/#åkÂ>{è5>—+¨EÃGá4fÍ­SO%täžMÞ6ãr¹2#©›á}N€ºWl/±ýõ†å[RèÛÍ£~/µ« Jÿ‚TÞMð`œú0»dPsý²0ò“Ö‘ÎÀ¬p‹dÒDùè­SËÕjqpBÅ‘ÔMAl«é1NŠ„tV@Ó",Z•Ú{Zõ¨×ýÛpM:N_2y(²ÆØŸ›.–·âV aP*2¹§è<Ó:å0Ÿ•0áËJLéò”Ý]SE53ïÖÖ2÷*#[ïÂꢑ–}.võÕ¶¶îf…&Qk¢|þ±æwk¿Ê}®Ü´%mŽJ5 + ƒ~hcL¼_Kç×ÃÞ`#°šgy¥øA%Î,9Kl^÷NG‰¦ b¤8z`®xC2à*—<;¨òÃ6+#ÂJ ÕJ59py}Ür`ëÆ,þËžy}>ÿ£Ú¢¾‚¬ Åwñ³é`S®«FfÈëM'õ Á§–‡Â:„Ä¡J!5_¬ÓOõpLR †3‘çpþÞ8ìÿ—¨²£ó#^¡ªR-·,fvË4’2Z¢Ù/$õKûGp¯3Ú­1:j¦OE—…/°°R»ÒS†)£jhÌädt{æ–;ñØ÷(|^îr ¨÷š.íøöóð^l¸Ø¡Ù¹ZâKý¼b‚%åÉ[,õÚ[¬ Î9^‘\îfÎÙòGÙåK×½¨ú¼M¡b-áÜš¦xŠ Kþzdþ'¶ + ï3lÚ ™2ÄOÅÝ*Óòc‡k¼ªÉ˜ + †7˜FÈ·•R4~oÅ"mE)œIy¢ºö³ f.œ¦‡Óž¾ãÓá(£ÌçG5swY‡$5p9‰3Q\¢¿S¦% + œM5Ná‘LBfË>iÎåP$V/眭:QiÄf³wnOƒ¨J†ÒfM*ð®¯E9x#c8 + ¶+<ÒPâ™&«†Œ©…ÓÏ&:”܆øœêvÆ8‹¤ÅÒh¿wóF®b™úúW±ú=_×?3rEÃ(jR8¬×PP¾Ô{¾CJ–©Šå;÷¡çx”9rCwBnDÊšY‹²Tß~ .µÿ(~0!Á‡dÅJ0$ù0áø«Òúj‡òÆ2¬B*r­,Ã1ÇзÁ¾Ø—Öšè`ä»i½ï ÄŒ†Jæ^3ƒ,šËî·¼ßÂŒºêˆÜ‘?¾˜ÿ–Kvû¶Yñ-YŒŸÏÖYeA/Xqÿ©ß|"’£j™ÇP£†²죸|•þ9µà¯­+4…—Ï…ÝwíÚ¹§…[¼ñíü2=ºV+Om‡ùãN¼Hsqä꣯ÃÂíUUbJ€º<åaÔm#åÖRŽ=KÉ”ÙÄ´+H€)…}Â|¥Åin±þv™*‡ùŠ¹Ô†!ÊD_šKKa×;ÇÞÖÚØaSÚH”¢ÐÞ´q†þ6?§-Ñ-ß̬ Z"Í'ýeõÌÄ,™åŠé(%Ÿ)Û‰ “Edë]¹>Ú¯!õU~ÞÊŒ-ÅêôäfU ~ÖÃdÿìíûú$6éQ™l¥uW—o:Sª¢·”Iùôªåe—K?ók³ì{ô^]8lJ˜ŠkVêAM‡wëqiüUD ¹F(òÖwW­é?Uõéf ZkU0nšp ¿Ä¢yš +¸ßa¦éwÈt48uw[©5UæV1«ã•*ßǧ󵤓¹×–Æ¥êÿK¢SeÆÐe¨Øø‘õ@DîG“͘Å"¤ýŸê2%mPKžy±extyVºÖ¿ø²Z¾Õi«°pOb,&öoÀNø”š°p6Ÿ¤¹iYª®žÎ~YÕ„·>Ã}¨aHe_”Zp£…=ˆ±Œ˜ &ßÇz%JJa³~årª\f¬ä£æjQ6.ìÃX£Eøa0wR5 °ür‹õ¾£$RòÓt»šÅvéfš)ÀåuàŠHüû°šð›VŠ5$1³‚ŒÚñzX`¨¥qËRF—3n{p÷5Ú´Çù½ÃÏ ²`Ù4,D¯::º± §¡-ÒÑw:ÿpûL”/Í$œ+zª¬éxÈ{Á„®aïíQ¼ bâµNΠ‰§º»äËg^ŸqNu»´¼_æÞ‘Ñ=_J¦³6’:Äân¬ƒoåVÍ'hûdäçÿ0À;ÚY˜k˜žß6k;®áÉuC=Ò<¾*`rž¥•ßmS æv³"Å!$¦b“QÒœyÐLÒÖúî^++Þño‚ü&HÑ“ž´p=ð™šm[Ä) Á«/í÷šVÚ´jÛjGõå…JRŒ¯bͦîZø7½^qVì á<õ¯ž—-Šw²Òé½6’rñxŠ?wì··šú4’süÃãf…y|]JTæñ‹oõ].^íøN6J zæ½™3¢ó%FÄZ:LŸHl]áÞ^Yá!éM9Œ1/ÞH½ŒDjßØY›>T„-Ô7Ýݵƒ8ߧʨœ*~5G¤ò:tOXò½|.ñþãe^*¾"•Ü°Qs»3ëqŠ²2aâ²oÀ + ËC~›x¿— \iNu·R4±{IÓGì ç>¦Ú-zyXýŠõÃ$¿Âí(\„Þ8a·³3ÿ˜:ág^©ñµš¿íyÈš“. yyO)-”…Fï_q˜ÆÈ~#ÅjÆ–p7p'üõ¡éÎÊá=Ûæð;)Ö[¾—)µÏ8þtÂ+‰ê]øšÏAøWMÔé{ì7y´lñ´‹X÷«Yç½EöN0Ê oûEåd5‰æ6‡œjz¶€¹aP—…Õæ€&<{Mihu§­~q0”Û“q\ž¥¯Zrи$a $ͺ-ŒÉ·YÄ9zËBñ󉳀 ,%´/¯V5÷ïnOu“ÜM9ËÆ7Ç*14k‘?qÍž¢_¦_k¢{t¾ý\°Ìkÿ ‹óýwœ^ÖãHãʸ<dåJ"5Ãü:¶ök2Fpv/iºct·Ý„_ÅúGïå"üý™ÎíêÔ_˜­•Ê1c% ÛX!œ.‰Ññ<‹Ì)' ¿ÊUñÏ[1Ë©óYúƒ‚ RyóEDl†¹!Åüó~èsvšºÚPúÙoz/w×Q²wó& ,˜­þ + ÊÉß + U4KLÀ^OÙÆß°Ü:Ð@Jk£‚ŃÁ g"`:†à⌱Ȫ^ëh¦¾ AÒ3â_™Ûí<—oBô0ë ܬZù›ˆ7Ž¼ì¹.±KÈ(_eH‚h²‰[%û&HÚPì’ÌÕ)á-®}!N¶cùÎèAãžyí/ßÅ…Ú4byDa® s<',K ¾˜È‹×M“‹²–qã±nãË7“ƒÖ¢Ý°¸_dÁurèv|#P‘0̘•¤Ã|3:Ô¯;çÅb· %ò­YY˜ ÎíÇÐüåÏïrÇ|E»”Ÿ! ayV ª»C†&ë ÖH"Æs÷;”ÃÊ$sRíH¬'uÝ“ÞûÅœÝÆ&ǯõ$*'Õ’¿'†Æ}XZSãÚ7Í®dŒUl¾ˆ1~´vFÔ³"wõ…†.”c·³¦©m–×B+à»Ø±³…KYDŸ×ܵŻ³fng56l°Ù–cɵû"‘‚÷LÕÃneˆì« LÉX*®Ô<§’®¬Hwok/_5º"VAé{±±Z¿ƒw{k+/è_`,£MR„|8é5Ϙ·”ØRš¤0¶yÆ“²ÄævÙ“|‘û‚cmk¾ Þ½Ü~í™PIga^¶~Ž/È>>L4×0]ñ$&ÐwöÞáeÁ¹ê PüÊ3.¦.“A"•ë>_#vË„’Ö±È1ݼ¬I´ÜëG}*êÑç¸ëý&˜µ ):Dª"û™½ÍÐÔ+º§Qš¤B{뺴Æ5ÔÒR;°=Òº×;½žd`‡®¸pÖr¦vKþѨ¾…œë<Òœ‡éÝ2rÒ#EÆ!ã‰e9ãÕ)y´®Ýá÷“È„‰¾Ãñ>û9b¤5L½~XÚ™gÐEp\Ü1€EwdÆ?4Éòæ."  tTÇÖu;ƒ½¤ÆÖÉó?¼°ÿÀÿ–vs'ÜÞÜé=6öèÄMo + endstream + endobj + 147 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-35 -250 1148 750] + /FontName/MLKHIH+CMTI9 + /ItalicAngle -14.04 + /StemV 70 + /FontFile 146 0 R + /Flags 68 + >> + endobj + 146 0 obj + << + /Filter[/FlateDecode] + /Length1 720 + /Length2 1051 + /Length3 533 + /Length 1583 + >> + stream + xÚSU ÖuLÉOJuËÏ+Ñ5Ô3´Rpö ñ´T0Ô3àRUu.JM,ÉÌÏsI,IµR0´´4Tp,MW0´P02´2°°20çâRUpÎ/¨,ÊLÏ(QÐpÖ©2WpÌM-ÊLNÌSðM,ÉHÍ’œ˜£œŸœ™ZR©§ à˜“£ÒR¬”ZœZT–š¢ÇÅeh¨’™\¢”šž™Ç¥r“g^Z¾‚9D8¥´&U–ZT t—‚К + @W¦äçåT*¤¤¦qéûåmKº…dgaqºán¥99~‰¹ ãAá„!˜›™S UŸ[PZ’Z¤à›Ÿ’Z”‡®4<â6ßÔ”ÌÒ\tYÏ’ÄœÌdǼôœT]C=ˆxf±[fEjJ@fIr†BZbNq*X<5/Ý%ÀÀ»Cß×ÇÛÃÓC¯É€Ä̼’Ê‚T„j0ßÁ†QQf…B´ž!P!ÂX±h–¹æ%ç§dæ¥+—$æ¥$¥À0åä”_Q­klª kdj `hhb¡`njP‹ª04/³°4ÕÓEÁÔÀÀÀÂÈ,š\ZT”šWN @Ãøi™À0JM­HMæš=G4“1^GVûk—W•Âw{Ú¼ô¤¥¥£:û–:ù%µ^rwæ2.™~½hÏŠ£Î}¹.>:2ÅÝÁSä[Üovó ­ÒÚË…W.à6»P»lÏVM…[çý‹(7aª²‰KM[uÙè_þžs+˜š´¬¯IT”ªÙfï]à½çÛ“vþwk>²ì¶‰*K¸+¸n™W¶@57‹óüEÝ=‡'ínþžµ«ñƒÏU•îy)sn0ìÙ¬êÖSùÍγfŸÞVo‹=Óaõ¿79àÚ‹õRsduëÏÞñ õ©3åWQˆÈw~$ä&èQs[<×Õ"d«ÌŽŸÜŸ;gïûQþQ8.b†ðÌ߶sok›‡Oé7 l;´ä³nK|ꬾ©Lýs3Z%§ ǤŸ+ ùtÏ_髰ઊ/OÿèD|»?AþBᦫÖjÓ÷ŸÛãüÏ•£©Û=ìõ>y»V¡@Ǥͻ]<­R?JmÍ}õ1è/ãžî½ÅõŒ3ûî”m[8iþîùKþJ9sÿuIÙj_ÊŸv\ísý!›³Äûÿ$Lè/¿ñjî«ÊƒäOGeÍô‹ê‹9vMSbâý²©·#Ý?o}raEÇ¡©‘çúÍïšXgzïó‹[Ën\-ù¾Á"àçÊ,í÷/`û«|ÝéüsÆÓø—ÁL5W¨¯ôšû¤ÎͪþŽÓߢ·ìW~;AµëäÁ7{ÍB62/é(ŒŸÇ—2;\$»"kñÌcÿ-?'5&³-|°¦yÉ fÞ>Q±°æÎߦV¾‘P9œiúÖuš¾§ƒƒu$›ÈÓ[+îÿ½Åa"ä©éŸ«¥›»–ØÚÆxY\Í^¿Rí÷¼úk³®×Ðð `›|ën<Ãf‰¨n‰Ûü5æýøæµÈµ)QJî}ŠdÏÙ¹Q¶s²D«Bðͳs\ÜÝß®—ó+¯1°öb•³]¾.ÐáÜÜ_Œ]m™¶fæIú^õYôJþ Û©öò ÷/Þ‘X“¤Ñóÿ‡ç•…N§e¤ŽþZ°Žõƒåã³oòî…ö/þõzÃåw;Ÿ&þ}Ñ97ÖïÿD.Åïfòr6ç–žªïºv΂i·ë¯Y|S<O+iü9#S¹6v÷²çwon’>ôÔêkžÆ¡;]Oä-2—Ë+§Umi—WÔ1xÙÿb…Ù­ë_Ë·1|ãgµØ“7ûÈç…å «­ªÊÅWºW‰•EŸ=«uîW‘ßí.ì8¼³³6»SâFVnøü¬²sjº¢¦9°KKûÌï'}÷Žt›?— ;-íøGís²]Â¥™IŽ俳> + endobj + 5 0 obj + << + /Type/Page + /Resources 6 0 R + /Contents[17 0 R 4 0 R 18 0 R 19 0 R] + /Parent 163 0 R + >> + endobj + 21 0 obj + << + /Type/Page + /Resources 22 0 R + /Contents[17 0 R 4 0 R 26 0 R 19 0 R] + /Parent 164 0 R + >> + endobj + 28 0 obj + << + /Type/Page + /Resources 29 0 R + /Contents[17 0 R 4 0 R 37 0 R 19 0 R] + /Parent 164 0 R + >> + endobj + 164 0 obj + << + /Type/Pages + /Count 2 + /Kids[21 0 R 28 0 R] + /Parent 163 0 R + >> + endobj + 39 0 obj + << + /Type/Page + /Resources 40 0 R + /Contents[17 0 R 4 0 R 41 0 R 19 0 R] + /Parent 165 0 R + >> + endobj + 43 0 obj + << + /Type/Page + /Resources 44 0 R + /Contents[17 0 R 4 0 R 54 0 R 19 0 R] + /Parent 165 0 R + >> + endobj + 165 0 obj + << + /Type/Pages + /Count 2 + /Kids[39 0 R 43 0 R] + /Parent 163 0 R + >> + endobj + 56 0 obj + << + /Type/Page + /Resources 57 0 R + /Contents[17 0 R 4 0 R 58 0 R 19 0 R] + /Parent 166 0 R + >> + endobj + 60 0 obj + << + /Type/Page + /Resources 61 0 R + /Contents[17 0 R 4 0 R 62 0 R 19 0 R] + /Parent 166 0 R + >> + endobj + 166 0 obj + << + /Type/Pages + /Count 2 + /Kids[56 0 R 60 0 R] + /Parent 163 0 R + >> + endobj + 163 0 obj + << + /Type/Pages + /Count 7 + /Kids[5 0 R 164 0 R 165 0 R 166 0 R] + /Parent 3 0 R + >> + endobj + 64 0 obj + << + /Type/Page + /Resources 65 0 R + /Contents[17 0 R 4 0 R 66 0 R 19 0 R] + /Parent 167 0 R + >> + endobj + 68 0 obj + << + /Type/Page + /Resources 69 0 R + /Contents[17 0 R 4 0 R 70 0 R 19 0 R] + /Parent 168 0 R + >> + endobj + 72 0 obj + << + /Type/Page + /Resources 73 0 R + /Contents[17 0 R 4 0 R 80 0 R 19 0 R] + /Parent 168 0 R + >> + endobj + 168 0 obj + << + /Type/Pages + /Count 2 + /Kids[68 0 R 72 0 R] + /Parent 167 0 R + >> + endobj + 82 0 obj + << + /Type/Page + /Resources 83 0 R + /Contents[17 0 R 4 0 R 84 0 R 19 0 R] + /Parent 169 0 R + >> + endobj + 86 0 obj + << + /Type/Page + /Resources 87 0 R + /Contents[17 0 R 4 0 R 88 0 R 19 0 R] + /Parent 169 0 R + >> + endobj + 169 0 obj + << + /Type/Pages + /Count 2 + /Kids[82 0 R 86 0 R] + /Parent 167 0 R + >> + endobj + 90 0 obj + << + /Type/Page + /Resources 91 0 R + /Contents[17 0 R 4 0 R 92 0 R 19 0 R] + /Parent 170 0 R + >> + endobj + 94 0 obj + << + /Type/Page + /Resources 95 0 R + /Contents[17 0 R 4 0 R 96 0 R 19 0 R] + /Parent 170 0 R + >> + endobj + 170 0 obj + << + /Type/Pages + /Count 2 + /Kids[90 0 R 94 0 R] + /Parent 167 0 R + >> + endobj + 167 0 obj + << + /Type/Pages + /Count 7 + /Kids[64 0 R 168 0 R 169 0 R 170 0 R] + /Parent 3 0 R + >> + endobj + 98 0 obj + << + /Type/Page + /Resources 99 0 R + /Contents[17 0 R 4 0 R 103 0 R 19 0 R] + /Parent 171 0 R + >> + endobj + 105 0 obj + << + /Type/Page + /Resources 106 0 R + /Contents[17 0 R 4 0 R 107 0 R 19 0 R] + /Parent 172 0 R + >> + endobj + 109 0 obj + << + /Type/Page + /Resources 110 0 R + /Contents[17 0 R 4 0 R 111 0 R 19 0 R] + /Parent 172 0 R + >> + endobj + 172 0 obj + << + /Type/Pages + /Count 2 + /Kids[105 0 R 109 0 R] + /Parent 171 0 R + >> + endobj + 113 0 obj + << + /Type/Page + /Resources 114 0 R + /Contents[17 0 R 4 0 R 115 0 R 19 0 R] + /Parent 173 0 R + >> + endobj + 117 0 obj + << + /Type/Page + /Resources 118 0 R + /Contents[17 0 R 4 0 R 119 0 R 19 0 R] + /Parent 173 0 R + >> + endobj + 173 0 obj + << + /Type/Pages + /Count 2 + /Kids[113 0 R 117 0 R] + /Parent 171 0 R + >> + endobj + 121 0 obj + << + /Type/Page + /Resources 122 0 R + /Contents[17 0 R 4 0 R 123 0 R 19 0 R] + /Parent 174 0 R + >> + endobj + 125 0 obj + << + /Type/Page + /Resources 126 0 R + /Contents[17 0 R 4 0 R 127 0 R 19 0 R] + /Parent 174 0 R + >> + endobj + 174 0 obj + << + /Type/Pages + /Count 2 + /Kids[121 0 R 125 0 R] + /Parent 171 0 R + >> + endobj + 171 0 obj + << + /Type/Pages + /Count 7 + /Kids[98 0 R 172 0 R 173 0 R 174 0 R] + /Parent 3 0 R + >> + endobj + 129 0 obj + << + /Type/Page + /Resources 130 0 R + /Contents[17 0 R 4 0 R 131 0 R 19 0 R] + /Parent 175 0 R + >> + endobj + 133 0 obj + << + /Type/Page + /Resources 134 0 R + /Contents[17 0 R 4 0 R 135 0 R 19 0 R] + /Parent 176 0 R + >> + endobj + 137 0 obj + << + /Type/Page + /Resources 138 0 R + /Contents[17 0 R 4 0 R 139 0 R 19 0 R] + /Parent 176 0 R + >> + endobj + 176 0 obj + << + /Type/Pages + /Count 2 + /Kids[133 0 R 137 0 R] + /Parent 175 0 R + >> + endobj + 141 0 obj + << + /Type/Page + /Resources 142 0 R + /Contents[17 0 R 4 0 R 149 0 R 19 0 R] + /Parent 177 0 R + >> + endobj + 151 0 obj + << + /Type/Page + /Resources 152 0 R + /Contents[17 0 R 4 0 R 153 0 R 19 0 R] + /Parent 177 0 R + >> + endobj + 177 0 obj + << + /Type/Pages + /Count 2 + /Kids[141 0 R 151 0 R] + /Parent 175 0 R + >> + endobj + 155 0 obj + << + /Type/Page + /Resources 156 0 R + /Contents[17 0 R 4 0 R 157 0 R 19 0 R] + /Parent 178 0 R + >> + endobj + 159 0 obj + << + /Type/Page + /Resources 160 0 R + /Contents[17 0 R 4 0 R 161 0 R 19 0 R] + /Parent 178 0 R + >> + endobj + 178 0 obj + << + /Type/Pages + /Count 2 + /Kids[155 0 R 159 0 R] + /Parent 175 0 R + >> + endobj + 175 0 obj + << + /Type/Pages + /Count 7 + /Kids[129 0 R 176 0 R 177 0 R 178 0 R] + /Parent 3 0 R + >> + endobj + 3 0 obj + << + /Type/Pages + /Count 28 + /Kids[163 0 R 167 0 R 171 0 R 175 0 R] + /MediaBox[0 0 612 792] + >> + endobj + 17 0 obj + << + /Length 1 + >> + stream + + endstream + endobj + 19 0 obj + << + /Length 1 + >> + stream + + endstream + endobj + 4 0 obj + << + /Length 30 + >> + stream + 1.00028 0 0 1.00028 72 720 cm + endstream + endobj + 179 0 obj + << + >> + endobj + 180 0 obj + null + endobj + 181 0 obj + << + >> + endobj + 2 0 obj + << + /Type/Catalog + /Pages 3 0 R + /Outlines 179 0 R + /Threads 180 0 R + /Names 181 0 R + >> + endobj + xref + 0 182 + 0000000000 65535 f + 0000158258 00000 n + 0000163120 00000 n + 0000162768 00000 n + 0000162973 00000 n + 0000158422 00000 n + 0000003965 00000 n + 0000000009 00000 n + 0000063668 00000 n + 0000063481 00000 n + 0000000908 00000 n + 0000073429 00000 n + 0000073241 00000 n + 0000001853 00000 n + 0000089689 00000 n + 0000089503 00000 n + 0000002770 00000 n + 0000162873 00000 n + 0000003497 00000 n + 0000162923 00000 n + 0000003910 00000 n + 0000158525 00000 n + 0000006212 00000 n + 0000103387 00000 n + 0000103192 00000 n + 0000004026 00000 n + 0000004960 00000 n + 0000006168 00000 n + 0000158630 00000 n + 0000010644 00000 n + 0000006274 00000 n + 0000104927 00000 n + 0000104730 00000 n + 0000007359 00000 n + 0000106819 00000 n + 0000106624 00000 n + 0000008350 00000 n + 0000009331 00000 n + 0000010578 00000 n + 0000158816 00000 n + 0000010903 00000 n + 0000010706 00000 n + 0000010870 00000 n + 0000158921 00000 n + 0000015753 00000 n + 0000109326 00000 n + 0000109138 00000 n + 0000010965 00000 n + 0000113857 00000 n + 0000113664 00000 n + 0000011869 00000 n + 0000121186 00000 n + 0000120992 00000 n + 0000012789 00000 n + 0000013443 00000 n + 0000015665 00000 n + 0000159107 00000 n + 0000017884 00000 n + 0000015815 00000 n + 0000017807 00000 n + 0000159212 00000 n + 0000018985 00000 n + 0000017946 00000 n + 0000018919 00000 n + 0000159493 00000 n + 0000019241 00000 n + 0000019047 00000 n + 0000019208 00000 n + 0000159598 00000 n + 0000021504 00000 n + 0000019303 00000 n + 0000021427 00000 n + 0000159703 00000 n + 0000025703 00000 n + 0000126399 00000 n + 0000126209 00000 n + 0000021566 00000 n + 0000134077 00000 n + 0000133890 00000 n + 0000022503 00000 n + 0000023444 00000 n + 0000025602 00000 n + 0000159889 00000 n + 0000028213 00000 n + 0000025765 00000 n + 0000028123 00000 n + 0000159994 00000 n + 0000030818 00000 n + 0000028275 00000 n + 0000030728 00000 n + 0000160180 00000 n + 0000033694 00000 n + 0000030880 00000 n + 0000033604 00000 n + 0000160285 00000 n + 0000036335 00000 n + 0000033756 00000 n + 0000036234 00000 n + 0000160567 00000 n + 0000039049 00000 n + 0000136129 00000 n + 0000135942 00000 n + 0000036397 00000 n + 0000037126 00000 n + 0000038946 00000 n + 0000160673 00000 n + 0000039902 00000 n + 0000039112 00000 n + 0000039855 00000 n + 0000160781 00000 n + 0000042669 00000 n + 0000039966 00000 n + 0000042602 00000 n + 0000160972 00000 n + 0000045877 00000 n + 0000042733 00000 n + 0000045832 00000 n + 0000161080 00000 n + 0000048728 00000 n + 0000045941 00000 n + 0000048694 00000 n + 0000161271 00000 n + 0000051380 00000 n + 0000048792 00000 n + 0000051346 00000 n + 0000161379 00000 n + 0000054150 00000 n + 0000051444 00000 n + 0000054116 00000 n + 0000161666 00000 n + 0000057070 00000 n + 0000054214 00000 n + 0000057025 00000 n + 0000161774 00000 n + 0000058546 00000 n + 0000057134 00000 n + 0000058477 00000 n + 0000161882 00000 n + 0000058807 00000 n + 0000058610 00000 n + 0000058773 00000 n + 0000162073 00000 n + 0000061434 00000 n + 0000149068 00000 n + 0000148880 00000 n + 0000058871 00000 n + 0000156560 00000 n + 0000156365 00000 n + 0000059842 00000 n + 0000060811 00000 n + 0000061363 00000 n + 0000162181 00000 n + 0000061695 00000 n + 0000061498 00000 n + 0000061661 00000 n + 0000162372 00000 n + 0000063156 00000 n + 0000061759 00000 n + 0000063072 00000 n + 0000162480 00000 n + 0000063417 00000 n + 0000063220 00000 n + 0000063383 00000 n + 0000159398 00000 n + 0000158735 00000 n + 0000159026 00000 n + 0000159317 00000 n + 0000160471 00000 n + 0000159808 00000 n + 0000160099 00000 n + 0000160390 00000 n + 0000161570 00000 n + 0000160889 00000 n + 0000161188 00000 n + 0000161487 00000 n + 0000162671 00000 n + 0000161990 00000 n + 0000162289 00000 n + 0000162588 00000 n + 0000163052 00000 n + 0000163075 00000 n + 0000163097 00000 n + trailer + << + /Size 182 + /Root 2 0 R + /Info 1 0 R + >> + startxref + 163218 + %%EOF diff -aNrc2 readline-4.3-patched/doc/history.ps readline-5.0/doc/history.ps *** readline-4.3-patched/doc/history.ps Thu Jun 27 13:54:43 2002 --- readline-5.0/doc/history.ps Tue Jul 27 09:31:37 2004 *************** *** 2,13 **** %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: history.dvi ! %%Pages: 20 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments %DVIPSWebPage: (www.radicaleye.com) ! %DVIPSCommandLine: dvips -D 300 -t letter -o history.ps history.dvi ! %DVIPSParameters: dpi=300, compressed ! %DVIPSSource: TeX output 2002.06.27:1354 %%BeginProcSet: texc.pro %! --- 2,13 ---- %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: history.dvi ! %%Pages: 28 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments %DVIPSWebPage: (www.radicaleye.com) ! %DVIPSCommandLine: dvips -D 600 -t letter -o history.ps history.dvi ! %DVIPSParameters: dpi=600, compressed ! %DVIPSSource: TeX output 2004.07.27:0931 %%BeginProcSet: texc.pro %! *************** *** 68,816 **** %%EndProcSet ! TeXDict begin 40258431 52099146 1000 300 300 (history.dvi) @start ! %DVIPSBitmapFont: Fa cmti10 10.95 1 ! /Fa 1 47 df<127012F8A212F012E005057B840E>46 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fb cmbxti10 14.4 1 ! /Fb 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46 ! D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fc cmtt9 9 26 ! /Fc 26 123 df95 D97 ! D<12FCA2121CA513F8EA1DFEEA1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0E ! EA1DFCEA0CF81217809614>II<137EA2130EA5EA07CEEA0FFEEA1C3EEA ! 301EEA700E12E0A61270EA301EEA383E381FEFC0EA07CF12177F9614>II<13FCEA01FEEA038EEA07041300A3EA7FFE12FFEA0700ACEAFFF8A20F17 ! 7F9614>II<12FCA2121CA51378EA1DFEEA1F86EA1E07121CAA38FF8FE0A21317809614>I<1206 ! 120FA21206C7FCA4B4FCA21207ACEAFFF8A20D187C9714>I<12FCA2121CA5EBFF80A2EB ! 1C005B5B5BEA1DC0EA1FE0A2EA1E70EA1C38133C131C7F38FF1F80A21117809614>107 ! DII ! IIIII ! I<1206120EA4EA7FFC12FFEA0E00A8130EA3131CEA07F8EA01F00F157F9414>II<38FE3F80A2383C1E00EA1C1CA36C5A ! A3EA0630EA0770A36C5AA311107F8F14>I<38FE3F80A238700700EA380EA3EA39CEA3EA ! 1B6C121AA3EA1E7CA2EA0E3811107F8F14>II<38FE3F80A2381C0E005B ! A2120E5BA212071330A2EA0370A25B1201A25BA3485A12730077C7FC127E123C11187F8F ! 14>II E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fd cmti9 9 1 ! /Fd 1 47 df<1230127812F0126005047C830C>46 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fe cmr9 9 24 ! /Fe 24 122 df48 D<12035AB4FC1207B3A2EA7FF80D187D ! 9713>I54 ! D<1240EA7FFF13FEA2EA4004EA80081310A2EA00201340A21380120113005AA25A1206A2 ! 120EA5120410197E9813>II ! I<39FFE1FFC0390E001C00AB380FFFFC380E001CAC39FFE1FFC01A1A7F991D>72 ! D83 ! D97 D99 D<133F1307A9EA03E7EA0C17EA180F487E127012E0A6126012706C ! 5AEA1C373807C7E0131A7F9915>II103 D<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF014 ! 1A809915>I<1218123CA212181200A612FC121CAE12FF081A80990A>I110 DII< ! EAFC78EA1D9CEA1E1C1308EA1C00ABEAFF800E10808F0F>114 DI<1208A41218A21238EAFFC0EA3800A81320A41218EA1C40EA07800B177F960F>I<38 ! FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C5A11107F8F14> ! 118 D<38FE3F80383C1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA ! 181CEA381E38FC3FC012107F8F14>120 D<38FF0F80383C0700EA1C061304A26C5AA26C ! 5AA3EA03A0A2EA01C0A36C5AA248C7FCA212E112E212E4127811177F8F14>I ! E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Ff cmss10 10.95 2 ! /Ff 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012F0 ! AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40 ! D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012 ! 07A213005AA2121E121C123C12385A5A0B2E7EA112>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fg cmbx10 12 27 ! /Fg 27 123 df12 D<90380FFF80137F3801FC1F ! 3803F03FEA07E0EA0FC0141FA7B6FCA2380FC01FB2397FF8FFF0A21C237FA220>I97 DII<49B4FC ! A2EB003FAB13FE3807FFBF380FC1FF48C67E003E7F127E127CA212FCA7127C127E123E6C ! 5B380F81FF3907FF3FE0EA01FC1B237EA220>I<13FE3807FF80380F83C0381E01E0383E ! 00F0127E007C13F8147812FCB512F8A200FCC7FCA3127CA26C1318A26C1330380F80E038 ! 03FFC0C6130015167E951A>II<9038FE0F803903FF9FC0380F83E338 ! 1F01F3391E00F000003E7FA5001E5BEA1F01380F83E0380BFF80D808FEC7FC0018C8FCA2 ! 121C381FFFE014FC6C13FF7E001F1480397C001FC00078130F00F81307A3007CEB0F806C ! EB1F00381F807E6CB45A000113E01A217F951D>II<121E123FEA7F80A4EA3F00121E ! C7FCA6EAFF80A2121FB2EAFFF0A20C247EA30F>I107 DI<3AFF03F8 ! 03F890390FFE0FFE3A1F183F183F9039201F201F014001C01380A201801380AE3BFFF0FF ! F0FFF0A22C167D9531>I<38FF03F0EB0FFC381F187EEB203EEB403FA21380AE39FFF1FF ! E0A21B167D9520>I<13FF000713E0380F81F0381F00F8003E137C48133EA300FC133FA7 ! 007C133E007E137E003E137C6C13F8380F81F03807FFE0C6130018167E951D>I<38FF87 ! F0EBBFFC381FF07EEBC01F9038800F8015C0A2EC07E0A715C0140FA2EC1F8001C01300EB ! F07EEBBFFCEB8FE00180C7FCA8EAFFF0A21B207E9520>II<38FF0F80EB1FE0381F33F013631343A2EBC1E0EB8000AD ! EAFFF8A214167E9518>I<3807F980EA1FFFEA3807EA7003EAF001A26CC7FCB4FC13F8EA ! 7FFE6C7E6C1380120738003FC0EAC007130312E0A200F0138038FC0F00EAEFFEEAC3F812 ! 167E9517>I<487EA41203A21207A2120F123FB5FCA2EA1F80ABEB8180A5380F830013C3 ! EA07FEEA01F811207F9F16>I<38FF81FFA2381F803FAF5C5C380FC1BF3907FF3FE0EA01 ! FC1B167D9520>I<39FFF01FE0A2391FC00700000F1306EBE00E0007130C13F000035BA2 ! 6C6C5AA26C6C5AA2EBFEE0EB7EC0137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFF3 ! FF83FCA23A1F807C00E0D80FC014C08001E013010007017F1380A2D803F0EB0300ECCF83 ! 01F81387D801F913C61487D800FD13ECEBFF0315FC017F5BEB7E01013E5BEB3C00A20118 ! 136026167F9529>I<39FFF07FC0A2390FC01C006C6C5A6D5A00035B6C6C5A3800FD8013 ! 7F91C7FC7F6D7E497EEB37E0EB67F013C33801C1F8380380FC48487E000E137F39FF81FF ! E0A21B167F951E>I<39FFF01FE0A2391FC00700000F1306EBE00E0007130C13F000035B ! A26C6C5AA26C6C5AA2EBFEE0EB7EC0137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC38 ! 13305BEA69C0EA7F80001FC8FC1B207F951E>I<387FFFF0A2387C07E038700FC0EA601F ! 00E0138038C03F005B137EC65A1201485AEBF030EA07E0120FEBC070EA1F80003F1360EB ! 00E0EA7E03B5FCA214167E9519>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fh cmtt10 12 27 ! /Fh 27 119 df<13E0A538F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA07FCEA1F ! FF387EEFC038FCE7E0EAF0E13800E000A513157D991A>42 D<1338137CA2136C13EEA313 ! C6A2EA01C7A438038380A4380701C0A213FFA24813E0EA0E00A4481370387F01FC38FF83 ! FE387F01FC171E7F9D1A>65 D69 D<38FF83FEA3381C0070AA381FFFF0A3381C ! 0070AB38FF83FEA3171E7F9D1A>72 D ! I<38FE03FE12FFA2381D8070A213C0121CA213E0A213601370A213301338A21318131CA2 ! 130C130EA21306A213071303A238FF81F0A21380171E7F9D1A>78 ! DI82 D<3803F1C0EA0FFDEA3FFFEA7C0FEA700312E01301A390C7FC12 ! 701278123FEA1FF0EA07FE3800FF80EB0FC0EB01E013001470A2126012E0A214E0EAF001 ! 38FC03C0B5128000EF1300EAE3FC141E7D9D1A>I<387FFFFEB5FCA238E0380EA5000013 ! 00B33803FF80A3171E7F9D1A>I<38FF01FEA3381C00706C13E0A2380701C0A213830003 ! 138013C700011300A2EA00EEA2137CA21338AA48B4FCA3171E7F9D1A>89 ! D<387FFFC0B512E0A26C13C013047D7E1A>95 D97 D<12FEA3120EA6133EEBFF80000F13E0EBC1F0EB8070EB0038120E14 ! 1CA7000F13381478EB80F0EBC1E0EBFFC0000E138038063E00161E7F9D1A>IIIII<12FEA3120EA6133EEBFF80000F13C013C1EB80E01300120EAC38FFE3 ! FE13E713E3171E7F9D1A>104 DI108 ! D ! 110 DI<387F81F838FF8F ! FC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFFB5FC7E17157F941A>114 ! D<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E013FF6C1380EB3F00141C7F ! 9B1A>116 D<38FE0FE0A3EA0E00AD1301EA0F033807FFFE7EEA00FC17157F941A>I<387F ! C7FC00FF13FE007F13FC380E00E0A3380701C0A338038380A33801C700A3EA00EEA3137C ! A2133817157F941A>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fi cmbx12 13.14 41 ! /Fi 41 123 df12 ! D<123C127E12FFA4127E123C08087C8711>46 D<131C133C13FC12FFA21200B3AA387FFF ! FCA216237CA21F>49 D<48B4FC000713C0381E07F0383803F8386001FC387C00FE12FE14 ! FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B1370 ! EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F>I<48 ! B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB03F8 ! EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FEA214 ! FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A214F8 ! 1301130313071306130C131C13381330136013E0EA01C01380EA03005A120E5A12185A12 ! 705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEBFFF8 ! 14F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FCC712 ! 7EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE0018 ! 237DA21F>II<1230123C003FB512C0A2 ! 15804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133CA25B ! A213F8A41201A66C5A13601A257DA41F>I<141CA2143EA3147FA24A7EA39038019FC0A2 ! 9038031FE0140F01077FEB0607A2010C7F1403011C7FEB1801A2496C7EA2017FB5FCA290 ! 39E0007F8049133FA2484880151F00038190C7120FA2486E7ED8FFF090B51280A229257E ! A42E>65 D68 ! DII72 DI76 D ! I<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A27E91C7FCB4FC ! EA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200 ! C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>83 ! D87 ! D97 ! DIII<137F3803FFC03807C1F0380F80F8EA1F0048137C127E147E ! 12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803FFE038007F80 ! 17187E971C>II<3901FF07C00007EBDFE0380F83F1EA1F01393E00F800 ! 007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA21238123C383FFFE06C ! 13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00381F807E3807 ! FFF8C613C01B247E971F>II<120FEA1F80EA3FC0A4EA1F80EA0F00 ! C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I108 D<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A9007E8 ! 03F001A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE903883FF80 ! 390F8E0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>II<38FFC1FCEBCFFF390FFC1FC09038F0 ! 07E001C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F809038 ! CFFF00EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7CEB90FC ! 13B013A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C07EA70 ! 01EAF000A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC001A212 ! E014C0EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A312031207120F ! 121FB512C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218>I<39 ! FFC07FE0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E9722>I< ! 39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC0000 ! 5B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<39FFF83FF0A239 ! 0FC00F003807E00E6C6C5A6D5A6C6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F8 ! 1361EBE0FC3801C07E3803807F3907003F8048131F39FFC07FF8A21D187F9720>120 ! D<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00 ! 005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21306A25B1230EA781CEAFC185B ! 1370EA68E0EA7FC0001FC8FC1D237F9720>I<387FFFF8A2387C03F0EA700738600FE000 ! E013C0EB1F80EAC03F1400137EEA00FE5B485A0003130C13F0EA07E0120FEBC01C381F80 ! 18003F1338387F0078387E01F8B5FCA216187E971B>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fj cmsl10 10.95 30 ! /Fj 30 122 df<903803F07C90381E0DC69038380F0FEB701E01E0130EEC0C003801C01C ! A548485A007FB512C03903803800A448485AA6000E5BA648485A001E7F38FF8FFC20207E ! 9F1B>11 DI<903803F03F9039 ! 1E09E0809039380F80C09039701F01E0EBE03E021E13C02601C01CC7FCA548485A007FB6 ! 12803903803803A43A0700700700A6000EEBE00EA64848485A001EEBE01E3AFF8FF8FFC0 ! 23207E9F26>14 D<13201360A4383061C0383C4380380E4E00EA0778EA01E0A2EA07B8EA ! 1C9CEA708FEAE083EA0180A490C7FC12147AA117>42 D<13181338EA01F8EA0E701200A5 ! 13E0A6EA01C0A6EA0380A6EA07001380EAFFFC0E1E7B9D17>49 DI<13 ! FFEA01FE1380A5EA0300A61206A65AA65AA65AA65AA6B4FCA2102D7EA10D>91 ! D<13FFEA01FEEA0006A5130CA61318A61330A61360A613C0A6EA0180A6EAFF00A2102D82 ! A10D>93 D97 D<13FEEA0383380E0780121C00 ! 38130090C7FC12785AA45AA37E5BEA70026C5AEA1C18EA07E011147D9314>99 ! D<1438EB01F8EB00781438A21470A614E013FCEA0382EA0601121CEA3C00383801C01278 ! 12F0A438E00380A412F0EA700738380F00381C37803807C7E015207D9F19>I<13F8EA07 ! 0EEA0E07381C038012381278127012F0B5FC00F0C7FCA25AA46C5AEA7002EA3004EA1C18 ! EA07E011147D9314>II<140EEB3E11EBE1A33801C1C238 ! 0381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FCA21218121CEA0FFF14C0 ! 14E0381800F04813305A5AA3006013606C13C0381C0700EA07FC181F809417>I<13E012 ! 0712011200A2485AA6485AEB8F80EB90E013A0EBC0601380000713E01300A5380E01C0A6 ! 381C0380001E13C038FF8FF014207E9F19>II<13E0120712011200 ! A2EA01C0A6EA0380A6EA0700A6120EA65A121EEAFF800B207F9F0C>108 ! D<390387C07C391F9861863907A072073903C03403EB80380007EB7807EB0070A5000EEB ! E00EA64848485A001EEBE01E3AFFCFFCFFC022147E9326>I<38038F80381F90E0EA07A0 ! 3803C0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014147E9319> ! I<13FCEA0387380E0180381C00C04813E0A24813F012F0A438E001E0A214C0130300F013 ! 8038700700EA380E6C5AEA07E014147D9317>IIIII<1380EA0100 ! A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2EA1840EA0F800D1C7C9B12>I<38 ! 1C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4131EA25BEA305E381F9F8011147B ! 9319>I<38FF83F8381E00E0001C13C01480121E380E01005B13025B12075BA25BEA0390 ! 13A013E05B5B120190C7FC15147C9318>I<39FF9FE1FC393C078070391C030060148015 ! 401580EA0E0790380D81001309EB19C21311380F21C4EA0720EB40C814E8EB80F0A26C48 ! 5A1460000213401E147C9321>I<381FF0FF3803C0780001137014403800E0C0EBE180EB ! 73001376133CA2131C132E134E1387EA0107380203801204380C01C0383C03E038FE07FC ! 18147F9318>I<390FF83F803901E00E00EBC00C140813E000005B143014205C13705CA2 ! 0171C7FC1339133A133E133C133813181310A25BA25BEA70C0EAF08000F1C8FC12E61278 ! 191D809318>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fk cmcsc10 10.95 3 ! /Fk 3 118 df103 ! D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C130E1307A2 ! EB03A0EB01E0A213001460123800FE132016177E961C>110 D<38FF81FC381C00701420 ! B0000C1340120E6C138038018300EA007C16177E961C>117 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fl cmbx12 17.28 36 ! /Fl 36 122 df49 DI<1578A215FCA34A7E ! A24A7EA24A7FA34A7FEC0E7F021E7FEC1C3FA202387F151F02787FEC700FA202E07F1507 ! 010180ECC003A249486C7EA201078191C7FC498191B6FCA24981011CC7123F013C810138 ! 141FA24981160F01F081491407A2484881486C1403B549B512FCA336317DB03D>65 ! DI<913A03FF800180023F ! EBF00349B5EAFC0701079038003F0FD91FF8EB079FD93FC0EB01FFD9FF807F4848C8127F ! 4848153F0007161F49150F485A001F1607A2485A1703127FA24992C7FCA212FFA9127FA2 ! 7FEF0380123FA26C7E1707000F17006C7E6D150E0003161E6C6C151C6C6C6C1478D93FC0 ! 5CD91FF8EB03E0D907FFEB3F800101D9FFFEC7FCD9003F13F80203138031317CB03A>I< ! B812E0A3C6903880007FEE0FF016031601A21600A21770A31738A21507A21700A35D5D5D ! 91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB033>70 DIII78 ! D80 ! D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A3481603 ! A5C792C7FCB3AA017FB6FCA331307DAF38>84 DII97 DIIIII<90391FF007C09039FFFE3F ! E03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF000A2003F80A5001F5CA2 ! 000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC121EA2121F7F90B57E6C ! 14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C140F00FC1407A4007EEC ! 0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0D8001F90C7FC242F7E9F ! 28>III108 D<2703F007F8EB1FE000FFD93FFEEBFFF8913A783F01 ! E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602F8148001FC5CA3495CB3 ! B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFEEC783F02C013803A0FF1 ! 801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F2D>II<3901F83FE000FFEBFFFC9038FBE07F9039FF00 ! 3F80D80FFEEB1FC06C48EB0FE04914F0ED07F8A216FC1503A216FEA816FC1507A216F8A2 ! ED0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC3FC091C8FCABB512C0A3 ! 272E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF30FF0EA07F6A29038FC07 ! E0EC03C091C7FCA25BB2B512E0A31C207E9F21>114 D<3801FF86000713FEEA1F00003C ! 133E48131E140E12F8A36C90C7FCB47E13FC387FFFC06C13F0806C7F00077F00017FEA00 ! 3F01001380143F0060131F00E0130FA27E15007E6C131E6C131C38FF807838F3FFF038C0 ! 7F8019207D9F20>I<131CA5133CA3137CA213FC120112031207381FFFFEB5FCA2D803FC ! C7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB07F0192E7FAD1F>IIII<3A7FFF807FFCA33A03FC000F006C6C131E6C6C5BEC803890387FC078013F5B90 ! 381FE1E090380FF3C0ECFF806D90C7FC6D5A13016D7E81815B903803DFE09038078FF081 ! 90380F07FC90381E03FEEB3C01496C7E4914804848EB7FC00003EC3FE026FFFC01B5FCA3 ! 28207F9F2B>II E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fm cmsy10 10.95 1 ! /Fm 1 14 df<14FE903807FFC090381F01F0903878003C01E0130ED80180130348C7EA01 ! 800006EC00C0481560A2481530481518A248150CA4481506A90060150CA46C1518A26C15 ! 306C1560A26C15C06CEC01806C6CEB0300D800E0130E0178133C90381F01F0903807FFC0 ! D900FEC7FC272B7DA02E>13 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fn cmbx12 14.4 44 ! /Fn 44 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612 ! 0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46 ! D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49 ! DII<140FA25C5C5C5C5BA2EB03 ! BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8 ! A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091 ! C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218 ! 127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6 ! 22>I65 DI<91387FE003903907FFFC07011FEBFF0F90397FF0 ! 0F9F9039FF0001FFD801FC7F4848147F4848143F4848141F485A160F485A1607127FA290 ! C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C14786CB4EB01F09039 ! 7FF007C0011FB512800107EBFE009038007FF028297CA831>I69 ! DI<91387FE003903907 ! FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F484880484880484880485A82 ! 485A82127FA290CAFC5AA892B512F87E7F03001300123FA26C7EA26C7E6C7E6C7E6C7E6C ! B45B90387FF007011FB5129F0107EBFE0F9039007FF0032D297CA835>III78 D80 D82 D<9038FF80600003EBF0E0 ! 000F13F8381F80FD383F001F003E1307481303A200FC1301A214007EA26C140013C0EA7F ! FCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB007FEC1FF0140F140700E0 ! 1303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE0000E15B38C01FF01C297CA8 ! 25>I85 ! DII<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801 ! FC3FEA0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B ! 7E9A21>97 DIIIII<9038FF80F000 ! 03EBE3F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E ! 6C137C380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C ! 14F0121F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB512 ! 0038007FF01E287E9A22>II<1207EA0F80EA1FC0EA3FE0 ! A3EA1FC0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I108 D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0 ! C1F8D80FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFF ! E0A3331B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013 ! D0A213E0B039FFFE3FFFA3201B7D9A25>II<38FFE1FE9038EFFF809038FE ! 0FE0390FF803F09038F001F801E013FC140015FEA2157FA8157E15FEA215FC140101F013 ! F89038F807F09038FC0FE09038EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25> ! I<38FFC1F0EBC7FCEBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B> ! 114 D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14 ! C06C13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038 ! E7FFC000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380F ! E000AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A300 ! 0F1307B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FF ! A3390FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0E ! A2149EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B ! 0FE00FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC ! 2600FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C ! 5AA2EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F00 ! 3801FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038 ! F03F803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA339 ! 0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214 ! 9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E13 ! 1C5BEA74F0EA3FE0EA0F8020277F9A23>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fo cmtt10 10.95 76 ! /Fo 76 127 df<127012F8B012701200A5127012F8A31270051C779B18>33 ! DI ! I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F ! 6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F ! F8EA07E0EA01C0A3120011247D9F18>III<1238127CA2127E ! 123E120EA3121CA2123812F812F012C0070E789B18>I<137013F0EA01E0EA03C0EA0780 ! EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C ! 24799F18>I<126012F012787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01 ! C0A2EA03801207EA0F00121E5A5A5A12600C247C9F18>II<136013F0A7387FFFC0B512E0A26C13C03800F000A7136013147E9718>I<121C ! 123E127E127F123F121F1207120E121E127C12F81260080C788518>I<387FFFC0B512E0 ! A26C13C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F ! 14005B131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A12 ! 1E123E123CA2127C127812F85AA2126011247D9F18>IIII<131F5B1377A213E7120113C7EA038712 ! 071307120E121E123C1238127812F0B512F8A338000700A6EB7FF0A3151C7F9B18>52 ! D<137E48B4FC00071380380F83C0EA1E03121C3838018090C7FC5AA2EAE1F8EAE7FEB5FC ! 38FE078038F803C0EAF001EB00E05AA21270A3383801C0EA3C03381E0780380FFF006C5A ! EA01F8131C7E9B18>54 D<1230127812FCA2127812301200A81230127812FCA212781230 ! 0614779318>58 D<1218123C127EA2123C12181200A81218123C127EA2123E121E120E12 ! 1C123C127812F01260071A789318>I<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07 ! F0485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E013 ! 03EB00C013187E9918>I<387FFFC0B512E0A26C13C0C8FCA4387FFFC0B512E0A26C13C0 ! 130C7E9318>I<126012F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2 ! EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FC5A126013187E9918>II<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707 ! A5380FFF80A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>65 ! D68 DII<387F07F038FF ! 8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F9B18 ! >72 DI76 D<387E07F038FF0FF8387F07F0381D81C0 ! A313C1121CA213E1A313611371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03 ! 151C7F9B18>78 DII< ! EA7FF8EAFFFE6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C0F7FEB ! 0380A5149CA3387F01F8EAFF81387F00F0161C7F9B18>82 D<3803F1C0EA1FFF5AEA7C0F ! EA7003EAE001A390C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A2 ! 126012E0130100F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA2 ! 38E07038A400001300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F ! 01380783C03803FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03381C01C0 ! EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00F8A21370A9EA01FC487E6C ! 5A151C7F9B18>89 D91 ! D<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203A27F12017F12007F ! 1378A2137C133C133E131EA2131F7F14801307A2EB030011247D9F18>III<387FFFC0B512E0A26C13C013047E7F18>I<1206121E123E12381270A212E0A312F8 ! 12FC127CA21238070E789E18>II<127E ! 12FE127E120EA5133EEBFF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80 ! E013C1EBFFC0000E138038063E00151C809B18>II< ! EB1F80133F131F1303A5EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007 ! A2EA380FEA3C1F381FFFF0380FFBF83803E3F0151C7E9B18>III<3801E1F03807FFF85A381E1E30381C0E00 ! 487EA5EA1C0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F03870 ! 0070481338A4007813F0EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE12 ! 7E120EA5133EEBFF80000F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC17 ! 1C809B18>II<127E12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA ! 0E0F7FEB038014C0387FC7F812FF127F151C7F9B18>107 DI<38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E ! 7EEB3E3E1714809318>IIII<3801F380EA07FB ! EA1FFFEA3E1FEA380FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3 ! EA0003A7EB1FF0EB3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060 ! EBC0005BA290C7FCA9EAFFFC7F5B14147E9318>II<487E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C ! 1380EB3E0013197F9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C ! 13FE3801FCFC1714809318>I<387F8FF000FF13F8007F13F0381C01C0380E0380A33807 ! 0700A3138FEA038EA3EA01DCA3EA00F8A2137015147F9318>I<38FF07F8138F13073838 ! 00E0A4381C01C0137113F9A213D9EA1DDD000D1380A3138DEA0F8FA23807070015147F93 ! 18>I<387F8FF0139F138F380F0700EA078EEA039EEA01DC13F81200137013F07FEA01DC ! EA039E138EEA0707000E1380387F8FF000FF13F8007F13F015147F9318>I<387F8FF000 ! FF13F8007F13F0380E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013 ! DC1378A31370A313F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA2 ! 387001E0EB03C0EB078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512 ! F0A314147F9318>II<126012F0B3B012600424769F18>I<127CB4FC ! 13C01203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005BABEA03C012FF90C7FC127C13247E ! 9F18>II ! E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fp cmr10 10.95 74 ! /Fp 74 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7 ! B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701 ! A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>II<90381F81F89038F04F043901C07C063903 ! 80F80FEB00F05A0270C7FCA6B7FC3907007007B23A3FE3FE3FE02320809F26>I34 ! D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39 ! D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012 ! 30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812 ! 0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A ! 5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240050E7C840D>44 ! DI<127012F8A3127005057C840D>I48 D<13801203120F12F31203B3A6EA07C0EA7FFE0F1E7C9D17>III<1306A2130EA2131E132EA2134E138EA2EA010E1202A212041208A212101220A2 ! 124012C0B512F038000E00A7EBFFE0141E7F9D17>II<137CEA0182EA0701380E0380EA0C07121838 ! 38030090C7FC12781270A2EAF1F0EAF21CEAF406EAF807EB0380A200F013C0A51270A214 ! 801238EB07001218EA0C0E6C5AEA01F0121F7E9D17>I<1240387FFFE014C0A238400080 ! 38800100A21302485AA25B5BA25BA21360A213E05B1201A41203A76C5A131F7E9D17>I< ! EA03F0EA0C0CEA1006EA3003382001801260A3127038780300123EEA3F06EA1FC8EA0FF0 ! EA03F8487EEA0C7EEA103F38300F80EA6007EB01C012C01300A31480EA600100201300EA ! 1002EA0C0CEA03F0121F7E9D17>II<127012F8A312701200AA127012F8A3127005147C93 ! 0D>I<127012F8A312701200AA127012F012F8A212781208A31210A31220A21240051D7C ! 930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB2078A3497EA2EBC03EEB801EA248B5FC ! EB000FA20002EB0780A348EB03C0A2120C001E14E039FF801FFE1F207F9F22>65 ! DI<90380FE0109038381C30 ! 9038E002703803C00139078000F048C71270121E15305A1510127C127800F81400A91278 ! 007C1410123CA26C1420A27E6C6C13406C6C13803900E00300EB380CEB0FF01C217E9F21 ! >IIII<90380FE02090 ! 387818609038E004E03803800238070001481300001E1460A25A1520127C127800F81400 ! A7EC7FFCEC03E000781301127C123CA27EA27E7E380380023900E0046090387818209038 ! 0FE0001E217D9F24>I<39FFF07FF8390F000780AD90B5FCEB0007AF39FFF07FF81D1F7E ! 9E22>II76 DIIIIII<38 ! 03F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF86CB4 ! FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F8018038C6 ! 0300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C0143000 ! 801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC0080B3 ! A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003FE39 ! 1F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213F8EB ! 7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF07FF8 ! 1FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013C000035DEC ! 19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C144090 ! 383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<12FFA2 ! 12C0B3B3A512FFA2082D7CA10D>91 DI<12FFA21203B3B3A512FFA2082D80A10D>I<12 ! 0812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96 ! DI<121C12FC121CAA137CEA1D87381E0180EB00 ! C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F ! 19>IIII<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE010 ! 20809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33 ! E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13 ! C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A212 ! 1CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F ! 9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA61 ! 80EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0 ! EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC ! 121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D019018001EEBE01CA200 ! 1C13C0AE3AFF8FF8FF8021147E9326>IIII<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A61270 ! 12781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>III<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F ! 9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8 ! 383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3 ! 132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D807 ! 04138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E147F ! 9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F0137013 ! 7813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>I< ! 38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8 ! A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>II E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fq cmbx12 20.736 13 ! /Fq 13 122 df71 DI76 ! D78 ! D85 D97 D<13FE12FFA412071203B04AB4 ! FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0 ! 17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB ! FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I105 D<903801FFC0010F13F8017F13FFD9FF807F3A03FE003FE0D807F8EB0FF0 ! 48486D7EA248486D7E003F81A248486D7EA400FF1680A9007F1600A36C6C495AA2001F5D ! 6D1307000F5D6C6C495AD803FEEB3FE03A00FF80FF806DB5C7FC010F13F8010113C02926 ! 7DA530>111 D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000 ! 035BEBFD80A201FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114 ! D<90383FF0383903FFFE7848EBFFF8381FC00F383F0003003E13005A157812FCA27E6C14 ! 0013C013FC387FFFF06C13FEECFF806C14C06C14E0000314F0C614F8011F13FCEB007FEC ! 07FE0070130100F01300157E7EA27E157C6C14FC6C14F890388001F09038F00FE000F9B5 ! 12C0D8F07F130038C01FF81F267DA526>I<130FA55BA45BA25BA25B5A5A5A001FEBFFF0 ! B6FCA3000190C7FCB3153CA86C14781480017F13F090383FC1E090381FFFC06D13809038 ! 01FE001E377EB626>I121 D E %EndDVIPSBitmapFont end %%EndProlog %%BeginSetup ! %%Feature: *Resolution 300dpi TeXDict begin %%BeginPaperSize: Letter --- 68,1816 ---- %%EndProcSet ! TeXDict begin 40258431 52099146 1000 600 600 (history.dvi) @start ! %DVIPSBitmapFont: Fa cmti9 9 1 ! /Fa 1 47 df<121C127F12FFA412FE12380808778718>46 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fb cmr9 9 34 ! /Fb 34 122 df<123C127EB4FCA21380A2127F123D1201A412031300A25A1206120E120C ! 121C5A5A126009177A8715>44 D48 D<13075B5B137FEA07FFB5FC13BFEAF83F1200B3B3A2497E007FB51280A31932 ! 7AB126>I51 D<14FE903807FF80011F13E090383F00F0017C13703901F801F8EBF0 ! 03EA03E01207EA0FC0EC01F04848C7FCA248C8FCA35A127EEB07F0EB1FFC38FE381F9038 ! 700F809038E007C039FFC003E0018013F0EC01F8130015FC1400A24814FEA5127EA4127F ! 6C14FCA26C1301018013F8000F14F0EBC0030007EB07E03903E00FC03901F81F806CB512 ! 00EB3FFCEB0FE01F347DB126>54 D<1230123C003FB6FCA34814FEA215FC0070C7123800 ! 601430157015E04814C01401EC0380C7EA07001406140E5C141814385CA25CA2495A1303 ! A3495AA2130FA3131F91C7FCA25BA55BA9131C20347CB126>III68 D70 DI< ! B5D8FE03B512F8A3000190C73807FC006C486E5AB390B7FCA349C71203B3A3486C4A7EB5 ! D8FE03B512F8A335337EB23A>I76 D78 D<90381FE00390387FFC0748B5FC3907F01FCF390F8003FF48C7 ! FC003E80814880A200788000F880A46C80A27E92C7FC127F13C0EA3FF013FF6C13F06C13 ! FF6C14C06C14F0C680013F7F01037F9038003FFF140302001380157F153FED1FC0150F12 ! C0A21507A37EA26CEC0F80A26C15006C5C6C143E6C147E01C05B39F1FC03F800E0B512E0 ! 011F138026C003FEC7FC22377CB42B>83 D85 ! D97 ! D99 D<153FEC0FFFA3EC007F81AEEB ! 07F0EB3FFCEBFC0F3901F003BF3907E001FF48487E48487F8148C7FCA25A127E12FEAA12 ! 7E127FA27E6C6C5BA26C6C5B6C6C4813803A03F007BFFC3900F81E3FEB3FFCD90FE01300 ! 26357DB32B>II<151F90 ! 391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F83809039800F8000001F80 ! EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9 ! FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F0001003EEB007F4880ED1F80 ! 48140FA56C141F007C15006C143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22 ! 337EA126>103 DII<2703F01FE013FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F028 ! 07F7003F387FD803FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFF ! F0A33C217EA041>109 D<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007E ! EA03FE497FA25BA25BB3486CEB7F80B538C7FFFCA326217EA02B>II<3903F03F8000FFEBFFE09038F3C0F89038F700 ! 7ED807FE7F6C48EB1F804914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16 ! C06D131F6DEB3F80160001FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB5 ! 12C0A325307EA02B>I<3803E07C38FFE1FF9038E38F809038E71FC0EA07EEEA03ECA290 ! 38FC0F8049C7FCA35BB2487EB512E0A31A217FA01E>114 DI<1330A51370A313F0A21201A212031207381FFFFEB5FCA2 ! 3803F000AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0182F7FAD1E>III120 ! D<3A7FFF807FF8A33A07F8001FC00003EC0F800001EC070015066C6C5BA26D131C017E13 ! 18A26D5BA2EC8070011F1360ECC0E0010F5BA2903807E180A214F3010390C7FC14FBEB01 ! FEA26D5AA31478A21430A25CA214E05CA2495A1278D8FC03C8FCA21306130EEA701CEA78 ! 38EA1FF0EA0FC025307F9F29>I E ! %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fc cmsltt10 9 13 ! /Fc 13 122 df97 ! D101 ! D104 D<143814FE1301A46D5A ! 147891C7FCA73803FFF0487FA37EEA00015CA41303A25CA41307A25CA4130FA25CA3007F ! B512C0B612E0A315C01B2F79AE27>I<90B5FC5AA37EEB001F5CA2143EA4147EA2147CA4 ! 14FCA25CA41301A25CA41303A25CA41307A25CA3007FB512F8B612FCA36C14F81E2E7BAD ! 27>108 D<3A03F0FC07E03A07FBFE1FF090B5EA3FF8EDFFFCA2C690388FFC7C9039FE07 ! F03C01FC13E001F813C0A23A01F00F807CA2167801E01300A300034913F8A2D9C01E13F0 ! A40007EB3E01A2D9803C13E0A33A7FF0FF87FCD8FFF9EBCFFEA3D87FF1EB8FFC2720809F ! 27>I<3903FE07F83907FF1FFEEC7FFF91B5128016C039003FFC1FECE00FECC007148014 ! 0049130F137E1680137CA301FC131FA2491400A400015CA249133EA33A7FFF87FFF0B500 ! CF13F8A36C018713F025207F9F27>II<3A07FF803FC0489038C1FFF002C713F802CF13FC6C90B5FC ! D8000F13E3ED03F89138FC01F09138F800604A1300495A5CA25CA291C8FC5BA2133EA413 ! 7EA2137CA3B6FCA526207D9F27>114 D<903807FF1C013F13FE90B5FC5A1207EBFC0139 ! 0FE000FC49137C5BA2153801E01300EA07FEEBFFF8000113FF6C6C13C0010F13E0903800 ! 7FF0EC03F8001C1301003EEB00FC157C007E14FC127FEC01F8EB80039038E01FF090B5FC ! B612C0158000F8EBFE0038703FF01F207B9F27>I<131E133FA2133EA4137EA2007FB512 ! F0B612F8A36C14F0D800FCC7FC5BA41201A25BA41203A25BA2EC01E015F01403A2EC07E0 ! 140F9038F83FC090B5128015006C5B38007FF8EB1FC01D2979A827>I<397FC00FF839FF ! E01FFCA4000713004913F8A4000F1301A2018013F0A4001F1303A2010013E0A314075A14 ! 0F003EEB1FC0003F133FEB80FF90B512FE6C14FFA2000713EF0001EB07FE20207A9F27> ! I<3A01FFE01FFF486D5AA39138E01FFE3A001E0003C0A2011FEB0780A26DEB0F00A2151E ! 148001075BA25DA26E5A1303ECC1E0A2ECC3C0EB01E3ECE780A202EFC7FC130014FEA25C ! A2147814F85C13015C13035C130700085BEA7E0F49C8FCEAFE3EEAF8FEB45A5B6C5AEA3F ! C06CC9FC28317F9F27>121 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fd cmtt9 9 76 ! /Fd 76 126 df<123C127E12FFAF127EAE123C1200A7123C127E12FFA4127E123C082F71 ! AE27>33 D<00101320007C13F838FE01FCAAEAFC00007C13F8A900381370161778AE27> ! I<90383C03C090387E07E0A7EBFE0F01FC13C0A2007FB512FEB7FCA4003F14FE3901F81F ! 80AC003FB512FEB7FCA46C14FE3903F03F00A200075BEBE07EA73803C03C202E7DAD27> ! II<000F1470486C13F8383FC001EA7F ! E0140315F038FFF00700F914E0A2140F15C0A2141F00FF1480387FE03F1500A26C485A38 ! 1F807E380F00FEC75AA213015CA213035C13075CA2130F5C131F5CA2133F91C7FCA24913 ! F090387E01F89038FE03FC9038FC07FEA212019038F80FFF0003149F13F0A2120713E0A2 ! 000F14FF9038C007FE121F1380EC03FC000FEB01F86CC712F0203A7DB327>I<131FEB7F ! C0497E5A80EA03F1EBE1F8EA07E013C0A513C15C9039C3F1FF80D9E3E113C03803E7E3EB ! EFC101FF1480913881F800EC01F0EA01FEEBFC0301F85B00031307D807FC5B120F381FFE ! 0FD83FBE5BEB3F1FD87E1F90C7FC149F38FC0FBF14FE1307ECFC020103EB0F80EB01F8A2 ! 38FE03FC387E07FE397F1FFF9F6CB61200149F6CEB0FFE390FFC03FC3903F000F822307E ! AE27>I<120FEA1FC0123F13E0A213F0121F120F1201A4120313E01207EA0FC0A2EA3F80 ! EA7F005A5A12F812700C1773AD27>II<127012F812FE ! 7E6C7E6C7EEA0FE06C7E12037F6C7E1200137EA27FA2EB1F80A3EB0FC0A4EB07E0ACEB0F ! C0A4EB1F80A3EB3F00A2137EA25B1201485A5B1207485AEA3FC0485A48C7FC5A12F81270 ! 133A7AB327>I<130F497EA60078EB81E000FEEB87F000FF138FEBDFBF6CB512E06C14C0 ! 000F1400000313FCC613F0A2000313FC000F13FF003F14C04814E039FFDFBFF0EB1F8F00 ! FE13870078EB81E00000EB8000A66DC7FC1C207BA627>II<120FEA3FC013E0EA7FF0A213F8A2123F ! A2120F120113F01203EA07E0121FEA7FC0EAFF8013005A12700D14738927>I<007FB512 ! F8B612FCA46C14F81E067C9927>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A7289 ! 27>I<1538157C15FCA2140115F8140315F0140715E0140F15C0141F1580143F1500A25C ! 147E14FE5C13015C13035C13075C130F5CA2131F5C133F91C7FC5B137E13FE5B12015B12 ! 035BA212075B120F5B121F5B123F90C8FC5A127E12FE5AA25A12781E3A7CB327>II<130E131FA25B5BA25B5A5A127FB5FCA213BFEA7E3F1200B3AA003FB5 ! 12805A15C01580A21A2F79AE27>II52 D<14FF010713C0011F13F04913F890B5FC48EB81 ! FC3803FE0113F8EA07F0EA0FE09038C000F8001F1400485A90C8FCA25A127EEB0FF838FE ! 3FFE48B51280B612C015E09038F80FF09038E007F890388001FC90C7FC15FE48147E157F ! 153F5A7E127EA3127F6C147F157E6C6C13FE9038C001FC120F9038F007F83907F81FF06C ! B512E06C14C06C148090383FFE00EB0FF820307DAE27>54 D<121EEA7F80A2EAFFC0A4EA ! 7F80A2EA1E00C7FCAC121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A20729F27>58 ! D<120FEA3FC0A2EA7FE0A4EA3FC0A2EA0F00C7FCAC120FEA3F8013C0127F13E0A3123FA2 ! 120F120713C0120FA2EA3F80EA7F005A5A12F812700B2A739F27>I<153815FC14011407 ! 140FEC3FF8EC7FE0ECFFC001031300495AEB1FF8495A495A3801FF804890C7FCEA0FFC48 ! 5AEA7FF0EAFFC05BA27FEA7FF0EA1FF86C7EEA03FF6C7F38007FE06D7E6D7EEB07FE6D7E ! 010013C0EC7FE0EC3FF8EC0FFC14071401140015381E287CAA27>I<007FB512FEB7FCA4 ! 003F14FEC9FCA6003FB512FEB7FCA46C14FE20127D9F27>I<127012FC7E6C7E7FEA7FF0 ! EA1FF86C7EEA03FF6C7F38007FE06D7E6D7EEB07FE6D7E010013C0EC7FE0EC3FF8EC0FFC ! 1407A2140FEC3FF8EC7FE0ECFFC001031300495AEB1FF8495A495A3801FF804890C7FCEA ! 0FFC485AEA7FF0EAFFC05B48C8FC5A12701E287CAA27>I65 ! D<007FB5FCB612C08115F87E3907E003FCEC00FE157E157F81A6157EA25D1403EC0FF890 ! B55A15C015F081819038E000FE157FED3F80151FA2ED0FC0A6151F1680153FED7F004A5A ! 007FB55AB65A5D15E06C1480222E7FAD27>I<903803F80E90381FFE1F90383FFFBF90B6 ! FC5A3803FE0F3807F803497E48487E485A49137FA248C7123FA25A127E151E150012FE5A ! AA7E127EA2151E007F143F7EA26C7E157F6D137E6C6C13FE3907F001FCEBF8033903FE0F ! F86CB512F06C14E0013F13C06D1300EB03F820307DAE27>I<387FFFFC14FFB612C06C80 ! 813907E00FF81407EC01FC6E7EA2157E157F811680151FA316C0150FABED1F80A3153F16 ! 00A25D15FEA24A5A4A5A140F007FB55A5DB65A6C91C7FC14FC222E7FAD27>I<007FB612 ! 80B712C0A37E3907E0000FA6ED078092C7FCA4EC07804A7EA390B5FCA5EBE00FA36E5A91 ! C8FCA4ED03C0ED07E0A7007FB6FCB7FCA36C15C0232E7FAD27>I<007FB61280B712C0A3 ! 7E3907E0000FA6ED078092C7FCA4EC07804A7EA390B5FCA5EBE00FA36E5A91C8FCAC387F ! FF80B57EA36C5B222E7EAD27>I<903807F03890381FFC7C90387FFFFC90B5FC5A3803FC ! 1F3807F00F380FE007EBC003001F13011380123F90C7FCA2127EA2157892C7FC5AA8EC1F ! FF4A1380A3007E6D1300EC00FCA36C1301A21380121FEBC003120FEBE0073807F00F3803 ! FC1F6CB5FC7EEB7FFE90381FFC78D907F0C7FC21307DAE27>I<3A7FFE07FFE0B54813F0 ! A36C486C13E03A07E0007E00AF90B512FEA59038E0007EB03A7FFE07FFE0B54813F0A36C ! 486C13E0242E7FAD27>I<007FB512E0B612F0A36C14E039001F8000B3B2007FB512E0B6 ! 12F0A36C14E01C2E7BAD27>I<387FFFC080B5FC7E5CD803F0C8FCB3AAED0780ED0FC0A7 ! 007FB6FCA2B7FC7E1680222E7FAD27>76 D<3A7FF003FFE0486C4813F0A213FC007F6D13 ! E000079038003E0013DEA313CFA3148013C714C0A213C314E0A213C114F0A3EBC0F8A314 ! 78147CA2143C143EA2141E141F140FA3EC07BEA3EC03FEEA7FFCEAFFFE1401A26C486C5A ! 242E7FAD27>78 D<007FB5FCB612E081816C803907E003FEEC00FF81ED3F80151F16C015 ! 0FA6151F1680153FED7F005DEC03FE90B55A5D5D5D92C7FC01E0C8FCADEA7FFEB5FCA36C ! 5A222E7FAD27>80 D<387FFFF0B512FE6E7E816C803907E01FF014076E7E1401811400A5 ! 14015D14034A5A141F90B55A5D5DA281EBE01F6E7E14076E7EA816F0EDF1F8A4397FFE01 ! FBB5EBFFF08016E06C48EB7FC0C8EA1F00252F7FAD27>82 D<90387FC0E03901FFF1F000 ! 0713FF5A5AEA3FE0EB801F387F000F007E130712FE5A1403A3EC01E06C90C7FC127E127F ! EA3FC013F86CB47E6C13F86C13FE6CEBFF80C614C0010F13E0010013F0140FEC07F81403 ! 140115FC1400127812FCA46CEB01F8A26C130390388007F09038F01FE090B5FC15C01500 ! 00F85B38701FF81E307CAE27>I<007FB61280B712C0A439FC03F00FA60078EC07800000 ! 91C7FCB3AB90B512C04880A36C5C222E7EAD27>I<3A7FFE01FFF8B54813FCA36C486C13 ! F83A07E0001F80B3AB6D133F00031500A26D5B0001147E6D13FE6C6C485A90387F87F814 ! FF6D5B010F13C06D5BD901FEC7FC262F80AD27>I<3A7FFC03FFE06D5A00FF15F0007F15 ! E0497E3A07E0007E00A46C6C5BA4EBF80100015CA46C6C485AA490387E07E0A56D485AA4 ! 011F5B149FA3010F90C7FCA5EB07FEA46D5AA26D5A242F7FAD27>I<3A7FFC03FFE06D5A ! 00FF15F0007F15E0497E3A07F000FE0000035CEBF80100015CA2EBFC0300005CEBFE0701 ! 7E5BA26D485AA290381F9F80A3010F90C7FCA2EB07FEA26D5AA26D5AAF90381FFF80497F ! A36D5B242E7FAD27>89 D<387FFFF0B512F8A314F000FCC7FCB3B3ACB512F014F8A36C13 ! F0153A71B327>91 D<127812F87EA27E127E127F7E7F121F7F120F7F12077F1203A27F12 ! 017F12007F137E137F7F80131F80130FA280130780130380130180130080147E147F80A2 ! 1580141F15C0140F15E0140715F0140315F8140115FC1400A2157C15381E3A7CB327>I< ! 387FFFF0B512F8A37EEA0001B3B3ACEA7FFFB5FCA36C13F0153A7EB327>I<007FB512F8 ! B612FCA46C14F81E067C7E27>95 D<13E0EA01F01207120F13E0EA1FC0EA3F00A2127E12 ! 7C12FC5AA4B4FC138013C0127FA2123F1380EA0F000C1773B227>I<3803FFC0000F13F0 ! 4813FC4813FF811380EC1FC0381F000F000480C71207A2EB0FFF137F0003B5FC120F5A38 ! 3FFC07EA7FC0130012FE5AA46C130F007F131FEBC0FF6CB612806C15C07E000313F1C690 ! 38807F8022207C9F27>IIII< ! EB0FF8EB3FFE90B51280000314C04814E0390FFC0FF0391FE003F8EBC001D83F8013FC48 ! C7FC127E157E12FEB612FEA415FC00FCC8FC7E127E127F6C143C6D137E6C7E01F013FE39 ! 0FFC07FC6CB5FC000114F86C14F0013F13C0903807FE001F207D9F27>II<153F90391FC0FF80D97FF313C048 ! B612E05A4814EF390FF07F873A1FC01FC3C0EDC000EB800F48486C7EA66C6C485AEBC01F ! A2390FF07F8090B5C7FC5C485BEB7FF0EB1FC090C9FCA27F6CB5FC15E015F84814FE4880 ! EB8001007EC7EA3F80007C140F00FC15C0481407A46C140F007C1580007F143F6C6CEB7F ! 009038F807FF6CB55A000714F86C5CC614C0D90FFCC7FC23337EA027>II<130F497E497EA46D5A6DC7FC90C8FC ! A7383FFF80487FA37EEA000FB3A4007FB512F0B6FC15F815F07E1D2F7BAE27>I107 ! D<387FFF80B57EA37EEA000FB3B2007FB512F8B612FCA36C14F81E2E7CAD27>I<397F07 ! C01F3AFF9FF07FC09039FFF9FFE091B57E7E3A0FFC7FF1F89038F03FC001E0138001C013 ! 00A3EB803EB03A7FF0FFC3FF486C01E3138001F913E701F813E36C4801C313002920819F ! 27>I<387FE07F39FFF1FFC001F713F090B5FC6C80000313C1EC01FCEBFE005B5BA25BB0 ! 3A7FFF83FFE0B500C713F0A36C018313E024207F9F27>II<387FE0FFD8FFF313C090B512F0816C800003EB81FE49C6 ! 7E49EB3F8049131F16C049130FA216E01507A6150F16C07F151F6DEB3F80157F6DEBFF00 ! 9038FF83FEECFFFC5D5D01F313C0D9F0FEC7FC91C8FCAC387FFF80B57EA36C5B23317F9F ! 27>I<90380FF03C90383FFE7E90B5FC000314FE5A380FFC1F381FE007EBC003383F8001 ! 48C7FC127EA200FE147E5AA67E007E14FEA2007F1301EA3F80EBC003381FE007380FF81F ! 6CB5FC7E6C147E38007FFCEB0FF090C7FCAC91381FFFF8A24A13FC6E13F8A226317E9F27 ! >I<397FFC03FC39FFFE0FFF023F13804A13C0007F90B5FC39007FFE1F14F89138F00F80 ! 9138E002004AC7FC5CA291C8FCA2137EAD007FB57EB67EA36C5C22207E9F27>I<9038FF ! F3800007EBFFC0121F5A5AEB803F38FC000F5AA2EC07806C90C7FCEA7F8013FC383FFFF0 ! 6C13FC000713FF00011480D8000F13C09038003FE014070078EB03F000FC1301A27E1403 ! 6CEB07E0EBE01F90B512C01580150000FB13FC38707FF01C207B9F27>I<133C137EA800 ! 7FB512F0B612F8A36C14F0D8007EC7FCAE1518157EA415FE6D13FC1483ECFFF86D13F06D ! 13E0010313C0010013001F297EA827>I<397FE01FF8486C487EA3007F131F00031300B2 ! 1401A21403EBFC0F6CB612E016F07EEB3FFE90390FF87FE024207F9F27>I<3A7FFC0FFF ! 80486C4813C0A36C486C13803A07C000F800EBE00100035CA2EBF00300015CA2EBF80700 ! 005CA390387C0F80A36D48C7FCA3EB3F3FEB1F3EA214FE6D5AA36D5AA26D5A22207E9F27 ! >I<3A7FFE07FFE000FF15F06D5A497E007F15E03A0F80001F00A36D5B0007143EA414F0 ! EBC1F83903E3FC7CA4EBE79EA200011478A301F713F8A2EBFF0F6C5CA3EBFE0790387C03 ! E024207F9F27>I<393FFC1FFF486C5A168016006C487E3901F807E06C6C485A4A5A017E ! 90C7FC6D5AEB1F7E5C6D5A13076D5A5C80497E130F497E143EEB3E3FEB7E1F90387C0F80 ! 01F87F00016D7E3803F0033A7FFE1FFF80A2B54813C06C486C1380A222207E9F27>I<3A ! 7FFC0FFF80486C4813C0A36C486C13803A07E000F800000313015D13F00001130301F85B ! 1200A26D485A137CA290387E0F80133EA2011F90C7FC5CA2130F149E14BE130714FC1303 ! A25C1301A25CA213035CA213075C1208EA3E0F007F5B131FD87E7FC8FCEA7FFE6C5A5B6C ! 5AEA07C022317E9F27>I<001FB512FE4814FFA490380001FEEC03FCEC07F8EC0FF0001E ! EB1FE0C7EA3FC0EC7F80ECFF00495A495A495AEB1FE0495A495A49C7FC485A4848131E48 ! 48133F485A485A485A485AB7FCA46C14FE20207E9F27>II<127812FCB3B3B3A212 ! 78063A70B327>II E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fe cmss10 10.95 2 ! /Fe 2 42 df<14FCEB01F8EB03F0EB07E0EB0FC0131F1480EB3F005B137E5B12015B1203 ! A2485AA25B120FA25B121FA25B123FA448C7FCA712FEB3A2127FA76C7EA4121F7FA2120F ! 7FA212077FA26C7EA212017F1200137E137F7FEB1F8014C0130FEB07E0EB03F0EB01F8EB ! 00FC165A79C323>40 D<12FC127E7E6C7E6C7E7F12076C7E7F12016C7E7F137E137FA2EB ! 3F80A2131F14C0A2130F14E0A2130714F0A4EB03F8A7EB01FCB3A2EB03F8A7EB07F0A414 ! E0130FA214C0131FA21480133FA2EB7F00A2137E13FE5B485A12035B485A120F5B485A48 ! C7FC127E5A165A7BC323>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Ff cmbx10 12 27 ! /Ff 27 123 df12 ! D<92381FFF800203B5EAF3E0021F14FF147F903901FFF80149EBC00390390FFE0007495A ! 5C495A495AA201FF804A7F82ACB9FCA5C601E0C7FCB3B0007F9026FFC07FEBFFC0A53A46 ! 7EC540>I<903801FFF8011FEBFF80017F14E090B612F8489038807FFC3A03FE001FFE48 ! 6CEB07FF486E7F0280806F7FA36F7F6C90C7FCA26C5AEA00F890C8FCA2150F021FB5FC01 ! 03B6FC131F017F13C03901FFFC004813E0000F13804890C7FC485A5B485AA2485AA45DA2 ! 6C6C5BED07BF6C6C010F13FC6CB490391F3FFFE06C9026C0FE1F13F06CEBFFFC6CECF007 ! C66CD9E00113E0010790C9FC342F7DAD38>97 DIIII<913801FFC0021F13F0027F13FC49B57E ! 49EBC3FF903807FE074948481380EB1FF8EB3FF0EB7FE0A349486C13006F5A6F5AED0070 ! 93C7FCAAB612FCA5C601E0C8FCB3B0007FEBFFE0A529467DC523>I<902601FFF013FF01 ! 0FD9FE031380013FD9FF8F13C090B812E048D9C07F13BF489039001FF83F4848EB0FFC48 ! 48EB07FE001F9238FF1FC0496DEB0F8094C7FC003F82A7001F93C7FCA26D5B000F5D6C6C ! 495A6C6C495A6C9038C07FF04890B55A1680D8078F49C8FC018113F0D80F80CAFCA47F7F ! 13F890B612E016FEEEFFC06C16F0836C826C82831207481780D81FF8C77ED83FE0140748 ! 48020113C000FF8149157FA56D15FF007F17806D5C6C6C4A1300D81FFCEC0FFE6CB4EC3F ! FC6C9039E001FFF8000190B612E06C6C1580010F02FCC7FCD9007F138033427DAC39>I< ! EB7FC0B5FCA512037EB1923803FF80031F13F0037F7F92B57E9139C1FC1FFE9139C3E00F ! FF9126C7C0077FECCF0002DE7F02FC81A25C5CA35CB3A7B600C1B61280A539457CC440> ! I<13FCEA03FF4813804813C0A24813E0A66C13C0A26C13806C1300EA00FC90C7FCA9EB7F ! C0EA7FFFA512037EB3AFB6FCA518467CC520>I107 DI<90287FC003FF80EB07FFB5011F01F0013F13E0037F6D90B57E92 ! B56C4880913DC1FC1FFE03F83FFC913DC3E00FFF07C01FFE00039026C7C00790398F800F ! FF6CD9CF00EC9E0002DE6D01BC7F02FC03F81580A24A5D4A5DA34A5DB3A7B600C1B60083 ! B6FCA5582D7CAC5F>I<903A7FC003FF80B5011F13F0037F7F92B57E9139C1FC1FFE9139 ! C3E00FFF00039026C7C0077F6CEBCF0002DE7F02FC81A25C5CA35CB3A7B600C1B61280A5 ! 392D7CAC40>II< ! 90397FC01FFCB590B512C002C314F002CF14FC9139DFF03FFF9126FF800F138000039026 ! FE000313C06C496D13E002F015F04A7FEF7FF8A218FC173F18FEA3EF1FFFAB18FE173FA3 ! 18FC177F18F817FF6E15F06E4913E06E4913C06E4913806E6C4813009238E07FFE02EFB5 ! 5A02E314F002E01480DB1FF8C7FC92C9FCADB612C0A538407DAC40>II<90397F803FC0B5EBFFF0028313F8028713FC91 ! 388FE7FE91389F8FFF0003EB9E0F6C13BCA214F8A29138F007FEED03FC9138E001F892C7 ! FCA35CB3A5B612C0A5282D7DAC2F>I<90391FFE078090B512DF000314FF5A380FF80338 ! 1FE000D83F80133F127F90C7121FA248140FA27FA201E090C7FC13F8EBFFC06C13FEECFF ! C06C14F015FC6C806C806C1580000115C07E011F14E01301D9000713F014000078147F00 ! F8143F151F6C140FA37E6C15E0151F6D14C06D133F01F0EB7F809039FC03FF0090B55A00 ! FC5CD8F83F13F0D8F00790C7FC242F7CAD2D>IIIII<007FB590387FFFF8A5C601F890380FF8006D6CEB07E001 ! 3F4A5A6D6C131F6E495A6D6D48C7FC6DEBC0FE6DEBC1FC6DEBE1F8EDF3F06DEBFFE0806E ! 5B6E5B93C8FC6E7F6E7F6E7FA24A7F4A7F4A7FEDBFFEEC3F1F91387E0FFF02FE8049486C ! 7F49486C7F49487E49486C7F4A8049486D7E49C76C7ED9FF80131FB500F090B512FEA537 ! 2C7EAB3C>I<007FB5398007FFFCA5000101F0C7EA7F806CEE3E006E147E017F157C8017 ! FC013F5D6E1301011F5D6E13036D5DED80076D5DEDC00F6D5D15E0161F6D92C7FC6F5A6D ! 143EEDF87E027F137CEDFCFC023F5B15FF6E5BA36E5BA26E5BA26E5BA26E90C8FCA26E5A ! A2157CA215FC5D1401000F5C383FC003D87FE05B1407D8FFF05B140F5D141F4AC9FC387F ! E07E495A383F87F8EBFFF06C5B00071380D801FCCAFC36407EAB3C>I<001FB7128017C0 ! A39026FE001F138001F05B49491300495C49495A48485A4A5B5E4A5B003E5B4A5B5E4A90 ! C7FC5CC7485A5D495B5B495B5D499038C007C05B49138015004948130F01FF1580485B5C ! 4849131F5A485B4A133F4849137F4815FF48EB000349011F1300B8FCA37E2A2C7DAB33> ! I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fg cmtt10 12 29 ! /Fg 29 119 df<147014F8497EA7007815F000FEEC03F800FF140701C1131F01E1133F01 ! F913FF6CB612F0001F15C000071500000114FC6C6C13F06D5B010F1380013F13E0497F48 ! B512FC000714FF001F15C0007F15F026FFF9FC13F801E1133F01C1131F0101130700FE14 ! 030078EC00F000001500A76D5A1470252B79B334>42 D65 D<003FB712F04816F8B8FCA27E7ED801FC ! C71203A8EE01F093C7FCA5ED0F804B7EA590B6FCA69038FC001FA56F5A92C8FCA6177C17 ! FEAA003FB7FC5AB8FCA27E6C16FC2F3D7EBC34>69 D<3B7FFFC007FFFCB56C4813FEA46C ! 496C13FCD803F8C7EA3F80B3A290B7FCA601F8C7123FB3A53B7FFFC007FFFCB56C4813FE ! A46C496C13FC2F3D7EBC34>72 D<007FB612C0B712E0A46C15C0260003F8C7FCB3B3AD00 ! 7FB612C0B712E0A46C15C0233D78BC34>I78 ! D<90381FFFFC90B67E000315E04881488148813A3FFC001FFE01E0130349130148486D7E ! A290C87EA500FEED3F80B3AC6C157F6C1600A46D5CA26D5B003F5D01F0130701FE133F6C ! B65A6C5D6C5D6C5DC61580011F01FCC7FC293F7BBD34>I<007FB512C0B612F815FE6F7E ! 826C812603F8007FED1FF8ED07FC15036F7E1500A28282A55E5EA215014B5A1507ED1FF8 ! EDFFF090B65A5E5E93C8FC8282EBF800ED1FE06F7E1507A26F7EAA171FEF3F80A416FC03 ! 01137F267FFFC01500B56C6CB5FC5F167F705A6C496D5AC9EA07E0313E7EBC34>82 ! DI< ! 003FB712F04816F8B8FCA43AFE001FC003A8007CED01F0C791C7FCB3B3A4010FB57E4980 ! 4980A26D5C6D5C2D3D7DBC34>I<3B7FFF8003FFFCB56C4813FEA46C496C13FCD803FCC7 ! EA7F80A26C6CECFF00A26C6C495AA26D5CEC8003013F5CECC007011F5CECE00F010F5CEC ! F01F01075CA2ECF83F01035CECFC7F010191C7FCA2903800FEFEA2EC7FFCA26E5AA26E5A ! A36E5AB349B5FC4980A46D91C7FC2F3D7EBC34>89 D<007FB7FCA2B81280A36C1600A229 ! 077B7D34>95 D97 DIIIII104 D<14F0497E497E497EA46D5A6D5A6D5A91C8FCA9383FFFFC487FA47EC7FC ! B3AD003FB612F04815F8B7FCA27E6C15F0253E79BD34>I<383FFFFE487FB6FCA27E7EC7 ! 7EB3B3AD003FB612FE4881B81280A26C16006C5D293D7BBC34>108 ! D<027FEB1FC03B3FE1FF807FE0D87FF39038E0FFF8B612E303F77F6C91B57E6C01C313F0 ! 00030181EBE07ED9FE01EB807F6E80491400A2495BA3495BB3A53C3FFF03FFC0FFF04801 ! 8701E113F8B500CF01F313FCA26C018701E113F86C010301C013F0362C81AB34>I<15FF ! 267FFC0713E026FFFE1F7F027F7F91B57E90B67E6C1481C69038FC00FF02F07F4A804A13 ! 3F5CA291C7FCA35BB3A4277FFFFC0FB5FCB56C481480A46C496C1400312C7FAB34>I<14 ! FE903807FFC0011F13F0017F13FC90B57E488048010113803A07FC007FC04848EB3FE049 ! 131F4848EB0FF0491307003F15F8491303007F15FC90C71201A300FEEC00FEAA6C14016C ! 15FCA26D1303003F15F86D1307A26C6CEB0FF06C6CEB1FE06D133F6C6CEB7FC03A03FF83 ! FF806C90B512006C5C6D5B011F13F0010713C0010190C7FC272E7AAC34>I<4BB4FC273F ! FFC00F13C048D9E03F13E0B590B512F002E114F86C13E76C01EF130FD8000F13F8ECFFE0 ! 9238C007F092388003E092C8FC5C5CA25CA25CA45CB1003FB6FC4881B77EA26C5D6C92C7 ! FC2D2C7DAB34>114 D<90390FFF078090B5EACFC0000314FF5A5A5A383FF803397F8000 ! 7F90C7123F12FE48141FA47E007FEC0F8001C090C7FCEA3FF8381FFFE06C13FF6C14E06C ! 14F8C614FE011F7FD9007F1380020313C09138003FE0ED0FF0003C1407007EEC03F800FE ! 1401A27EA36D13036D14F06D13076DEB1FE001FE13FF90B612C016801600D8FC7F13FC6D ! 13F0D878071380252E79AC34>III<3B3FFFE00FFFF8486D4813FCB515FEA26C16FC6C49 ! 6C13F8D801FCC7EA7F000000157EA26D14FE017E5CA2017F13016D5CA2EC8003011F5CA2 ! ECC007010F5CA2ECE00F01075CA36D6C485AA3ECF83F010191C7FCA26E5A0100137EA2EC ! FEFEEC7EFCA2147F6E5AA36E5A6E5A2F2B7EAA34>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fh cmsltt10 10.95 17 ! /Fh 17 122 df49 DI100 DII<913907F801FE913A3FFF0FFF804A13BF49B712C05B5B ! 90260FFC0FEB1F8090271FF007F8130049486C6CC7FCECC001EB7F801400A25B5BA31503 ! 4B5A7F6D495A9138803FE090383FE0FF49B55A90B65A93C8FC4814FC01F913F09038F87F ! 80000390CAFC5BA27F120190B512FCEDFF8016E04815F8488148813A1FF00007FFD83FC0 ! 1300498048C86C7E007E151F12FE5AA2163F94C7FC5E5E6C4A5AD87F80EB07FC6D131F3A ! 3FFC01FFF86CB612E06C5D6C92C8FC000114FC6C6C13F0010F90C9FC323E7EA730>I<15 ! E0EC03F8140781A35D6E5A6E5A91C8FCA990B512C048805AA27E7EEB001F5DA5143F5DA5 ! 147F92C7FCA55C5CA513015CA2007FB61280B712C016E0A216C06C1580233979B830> ! 105 D<90383FFFF8497F81A37F90380001FCA514035DA514075DA5140F5DA5141F5DA514 ! 3F5DA5147F92C7FCA55C5CA2003FB612F04815F8B712FCA26C15F86C15F026387BB730> ! 108 D110 ! DI114 D<91387FF838903903FFFE7C011FEBFFFC5B5B90B6FC48EBC01F3903FC0007 ! 491303484814F85BA3ED01F06D90C7FCEA03FEEBFFF06CEBFF806C14F06D13FC011F13FF ! 01071480D9007F13C0020113E0EC001F001FEC0FF06D1307003F1403A27FA21507486CEB ! 0FE0151F6DEB3FC09039FC03FF8090B6FC1600B612FC00FC5C013F13E0267807FEC7FC26 ! 2A79A830>III<3B3FFFC01FFFE0486D4813F0B515F8A26C16F06C ! 496C13E0D807E0C7EA7E00A35EA34B5AA34B5A143E147F4A485A13E1A249495A158FEBC7 ! EF9138CF9F8014DF13CF029F90C7FC15BFEBDF8FEC0FBEA201FE13FE5D13FCA25D496C5A ! 3903E003E02D2779A630>119 D<903AFFFE07FFF0486D4813F84816FCA26C16F86C496C ! 13F0903A07F001FC006D6C485A6D6C485A4B5A6D6C485A4B5ADA7F7FC7FC157EEC3FFE6E ! 5A5D6E5A5DA24A7E143F4A7EA2ECFCFCEB01F8903803F07E903807E07F49487E011F8090 ! 383F801FD97F007F01FE6D7E263FFFC0B5FC4801E11480B515C0A26C16806C01C014002E ! 277DA630>I<90B53801FFFE4802837F481780A26C17006C02015B903A07E0001FC05F16 ! 3F6E91C7FCA20103147EA25E804B5A13014B5AA26E485AA20100495AA24B5AA2027E90C8 ! FC5D153E157E157C143E5D143F5DA26E5AA25DA25DA2143F92C9FC5C147E14FE5C130100 ! 3C5B387E03F0EAFF07495A48485AEB7F80B5FC91CAFC13FC6C5AEA3FE0EA1F80313C7EA6 ! 30>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fi cmbx12 13.14 45 ! /Fi 45 123 df<923803FFE092B512FC020714FF021F81027F9038007FC0DAFFF0EB0FE0 ! 010301C0804990C7EA3FF84948147F4A81494814FF495AA2137F5CA2715A715A715AEF07 ! 8094C8FCA8EF07FCB9FCA526007FF0C7123F171FB3B3003FB5D8E00FB512F8A53D4D7ECC ! 44>12 D46 D<15F014011407141F147FEB03FF137FB6FCA313FC1380C7FCB3B3B2007FB712 ! E0A52B4777C63D>49 DII< ! EE07E0160FA2161F163F167F16FFA25D5D5DA25D5D5DA2157D15FDEC01F915F1EC03E114 ! 07EC0FC1EC1F811501143F147E14FC14F8EB01F01303EB07E014C0EB0F80131FEB3F0013 ! 3E5B13FC485A485A5B1207485A485A90C7FC123E127E5AB912FCA5C80003EBE000AD023F ! B612FCA536487DC73D>III<121F7F7F13FE90B812E0A45A18C0188018005F5FA25F485E90C8EA07 ! E0007E4B5A5F007C151F4CC7FC167E5E485D15014B5A4B5AC8485A4B5AA24BC8FC157EA2 ! 5D1401A24A5A1407A24A5AA2141FA24A5AA2147FA314FFA3495BA45BA55BAA6D5BA26D90 ! C9FCEB007C334B79C93D>I58 D65 D68 ! DII72 ! DI76 DII83 ! D85 ! D87 D97 DI<91380FFF8091B512F8010314FF010F158090263FFE ! 0013C0D97FF8EB1FE0D9FFE0EB3FF04849EB7FF8484913FF4890C7FC5A5B121F5B003FED ! 7FF0EE3FE0007FED1FC093C7FC5BA212FFAC127F7FA2123FA26D153E121F6D157E6C167C ! 6C6D14FC6C16F86C6D13036C01F0EB07F0D97FFCEB1FE06DB4EBFFC0010F90B512000103 ! 5C010014F0020F13802F337CB137>IIIIII<13FCEA03FF487F487FA248 ! 7FA66C5BA26C5B6C90C7FCEA00FC90C8FCACEB7FC0B5FCA512037EB3B3B61280A5194D7B ! CC22>I108 ! D<90287FC001FFE0EC7FF8B5010F01FC0103B5FC033F6D010F804B6D6C4814E0DBFE0790 ! 26C03F817F9126C3F0019138FC007F0003D9C7E0DAE1F8806CDA8000D9F1E06D7E02CFC7 ! EBF3C002DE91267FF780131F02FC03FFC77FA24A5DA24A5DA34A5DB3A9B6D8C03FB5D8F0 ! 0FB512FCA55E317BB067>I<903A7FC001FFC0B5010F13F8033F13FE4B7F9126C1FE077F ! 9126C3F0037F00039038C7C0016CD9CF8080150002DE7F02FC81A25CA25CA35CB3A9B6D8 ! C07FEBFFE0A53B317BB044>I<913807FF80027F13F80103B6FC010F15C090261FFE017F ! 903A7FF0003FF8D9FFC0EB0FFC48496D7E4890C76C7E4817804980000F17C048486E13E0 ! A2003F17F049157FA2007F17F8A400FF17FCAB007F17F8A36C6CEDFFF0A3001F17E06D5C ! 000F17C06C6C4A13806C17006C6D495A6C01E0EB1FFC6D6C495A903A3FFE01FFF0010FB6 ! 12C0010392C7FCD9007F13F80207138036337DB13D>I<90397FC00FFFB5017F13F002C1 ! B512FC02C714FF9126CFF80F7F9126FFC00313E0000391C77F6C01FC6E7E4A6E7E5C4A6E ! 7E848319808319C0A47113E0AC4D13C0A319805FA219004D5A804D5A6E4A5A6E4A5A02FF ! 495BDB80075B9126EFF01F5B02E7B548C7FC02E314F802E014E0DB0FFEC8FC92CAFCAFB6 ! 12C0A53B467CB044>I<9039FF803FE0B5EBFFF8028113FE02837FDA87E11380EC8F8300 ! 03D99F0713C06C139E14BCA214F8A24A6C13806F13004A6C5A93C7FCA45CB3A7B612E0A5 ! 2A317CB032>114 D<90390FFF8070017FEBF1F048B6FC1207380FFC01391FE0003F4848 ! 130F491307127F90C712035A1501A27FA213E06D90C7FC13FE387FFFF0ECFFC015F06C14 ! FC6C14FF6C15806C15C06C15E0C615F0013F14F8010714FCEB007F14019138003FFE150F ! 0078140700F81403A26C1401A37E16FC6C14036D14F87F6DEB07F001F8EB1FE001FFEBFF ! C091B51280D8FC7F1400D8F81F13FCD8E00313C027337CB130>I<14F8A61301A41303A2 ! 1307A2130FA2131F133F137F13FF1203000F90B512F0B7FCA426007FF8C7FCB3A6167CAA ! 013F14F880A290391FFE01F0010F1303903907FF87E06DEBFFC06D14806D6C1300EC0FFC ! 26467EC430>IIIII<007FB500C090387FFFE0A5C6 ! 01F0C73803F8006E5D017F5E6E1407013F5E6E140F011F5E6E141FA26D6D91C7FC5F6D15 ! 3E6F137E6D157C6F13FC6D5DEDF0016D5DEDF803027F5C15FC1607DA3FFE5B160F021F5C ! EDFF1F6E91C8FC16BF6E13BE16FE6E5BA36E5BA26E5BA26F5AA26F5AA26F5AA393C9FC5D ! 153E157E157CD81F8013FC486C5B387FE001D8FFF05B14035D14074A5A49485A007F49CA ! FCEBC07E383F81FC6CB45A6C5B6C13C0C648CBFC3B467EAF41>I<001FB712FCA4DA0001 ! 13F801F84913F001E04913E05B494913C04B138048C7481300A24B5A4B5A003E495B5C5E ! 4A5B4A5BC7485BA24A90C7FC4A5A4A5AA2495B4949137C495BA2495B495B4990C712F85B ! 5C495A48491301485BA248491303484913074849130F161F4890C7EA7FF04848EB03FFB8 ! FCA42E307DAF37>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fj cmsl10 10.95 29 ! /Fj 29 122 df<9339FFC003F8030F9038F01FFE923A3FC07C7E0F923BFE001FF81F80DA ! 03F890383FF07F4A48D9FFE013C0EC1FE04A4848EBC0FF03804A1380DA7F00157F4A9238 ! 003E004A6D91C7FC8301015D4A5CA4160113034A5CA416030007B812FCA3290007F00003 ! F8C8FCA21607130F4A5CA4160F131F4A5CA4161F133F4A5CA4163F137F91C75BA4167F5B ! 4992C9FCA31201486C49487EB5D8F83F13FF5DA242407EBF35>11 ! DI<140E141E143EA4 ! 143CA3000FEC01E03A1F803803F001C0130F01F0EB1FE0D807F8EB7FC03A01FC70FE0039 ! 00FE73F890383F77E090380FFF80D903FEC7FCEB00F0EB03FCEB1FFF90387EEFC03901FC ! E7F03907F0E3FC391FE0E1FF3A7F81E07F80903801C03F00FC141F0078EC0F00D8200390 ! C7FC1200A31307A35C91C8FC242774C32D>42 D<157015F014011407143F903803FFE013 ! 7FEBFFCFEBF80F1300141F15C0A5143F1580A5147F1500A55C5CA513015CA513035CA513 ! 075CA5130F5CA3131F497EB612F8A31D3D78BC2D>49 DI< ! 903801FFF8A4ECE000495AA6495AA649C7FCA6131EA65BA65BA65BA6485AA6485AA6485A ! A648C8FCA6121EA65AA65AA4EA7FFEA2485AA21D5B7BC319>91 D<903801FFF8A490C712 ! 7815F0A6EC01E0A6EC03C0A6EC0780A6EC0F00A6141EA65CA65CA65CA6495AA6495AA649 ! 5AA649C7FCA6131EA4EA7FFEA2485AA21D5B83C319>93 D97 D99 ! DIII<177C913907F803FE91393FFE0F8F9139FC0F9C3F903901F007F89039 ! 07E003E0D90FC013F0011F903801F80C02801400133FD97F007FA315035B495CA3017E49 ! 5A5E150F6D5C6D495A90263F803EC7FCECC0FC903871FFF09038E07F8091C9FC485AA47F ! A27F90B512F8EDFF806C15E016F86D8048B6FC3A07E0000FFED80F801300003FC8127F00 ! 3E815A00FC815AA25E163EA25E6C15FC007C4A5A6C4A5A6CEC0FC0D80FC0013FC7FC3903 ! F801FCC6B512F0010F90C8FC303D7FA82D>I<147FEB3FFFA313017FA25CA513015CA513 ! 035CA4ED07F80107EB1FFF9139F0781FC09138F1E00F9139F38007E0ECF70002FE14F049 ! 5A5CA25CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B4915 ! 00A300015D486C491380B5D8F87F13FCA32E3F7DBE33>I<1478EB01FE130314FFA25B14 ! FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F ! 1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>I<143FEB1FFF5BA213 ! 017FA214FEA5130114FCA5130314F8A5130714F0A5130F14E0A5131F14C0A5133F1480A5 ! 137F1400A55B5BA4EA03FF007F13F8A2B5FC183F7DBE1A>108 D<902707F007F8EB03FC ! D803FFD91FFF90380FFF80913CE0781FC03C0FE09126E1E00FEBF0073E001FE38007E1C0 ! 03F090260FE700EBE38002EEDAF70013F802FC14FE02D85C14F84A5CA24A5C011F020F14 ! 074A4A14F0A5013F021F140F4A4A14E0A5017F023F141F91C74914C0A549027F143F4992 ! C71380A300014B147F486C496DEBFFC0B5D8F87FD9FC3F13FEA347287DA74C>I<903907 ! F007F8D803FFEB1FFF9139E0781FC09138E1E00F3B001FE38007E090380FE70002EE14F0 ! 14FC14D814F85CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F ! 5B491500A300015D486C491380B5D8F87F13FCA32E287DA733>II<91387F01FE903A7FFF0FFFC09139FE3E03F09238F801F8903A03FFE000FE6D49137F ! 4B7F92C713804A15C04A141FA218E0A20103150F5C18F0A3171F010716E05CA3173F18C0 ! 130F4A147F1880A2EFFF004C5A011F5D16034C5A6E495AEE1FC06E495AD93FDC017EC7FC ! 91388F01F8913883FFE0028090C8FC92C9FC137FA291CAFCA45BA25BA31201487EB512F8 ! A3343A81A733>I<91390FE003C0DAFFFC1380903903F81E0790390FE0070F90391F8003 ! 8FD97F0013DF01FE13014848903800FF00485A1207485A8248485C123F495CA2485AA215 ! 0112FF90C75BA41503A25EA37E15077F003F4A5A151F6C6C133F6C6C137F000714FF3903 ! F003CF3A00FC0F8FE090383FFE0FEB0FF090C7FC151F5EA5153F5EA4157F4B7E023F13FE ! A32A3A7AA730>I<903907F01F80D803FFEB7FE09138E1E1F09138E387F839001FE707EB ! 0FE614EE02FC13F002D813E09138F801804AC7FCA25C131FA25CA4133F5CA5137F91C8FC ! A55B5BA31201487EB512FEA325287EA724>I<9138FF81C0010713E390381F807F90397C ! 003F8049131F4848130F5B00031407A248481400A27FA27F6D90C7FCEBFF8014FC6C13FF ! 6C14C015F06C6C7F011F7F13079038007FFE1403140100381300157EA2123C153E157E00 ! 7C147CA2007E147815F8007F495A4A5A486C485A26F9E01FC7FC38E0FFFC38C01FE0222A ! 7DA824>II<01FE147F00FFEC7F ! FF4914FEA20007140300031401A34914FCA4150312074914F8A41507120F4914F0A4150F ! 121F4914E0A2151FA3153F4914C0157F15FFEC01DF3A0FC003BFE09138073FFF3803F01E ! 3801FFF826003FE01380282977A733>I ! II<48B539C07F ! FFC0A33C000FFE003FF8006D48EB1FE0010315800101023EC7FC6E133C01005C027F5B6F ! 5A91383F81C0EDC380DA1FC7C8FC15EFEC0FFE6E5A5D140381A24A7E140FEC1E7F023C7F ! EC383F02707FECE01F010180903803C00F49486C7ED90F007F491303017E80D801FE80D8 ! 07FF497EB5D8803F13F8A332277FA630>I<90B539E007FFF05E18E0902707FE00031300 ! 6D48EB01FC705A5F01014A5A5F16036E5C0100140794C7FC160E805E805E1678ED807002 ! 3F13F05EED81C015C191381FC38015C793C8FC15EF15EEEC0FFCA25DA26E5AA25DA26E5A ! 5DA24AC9FC5C140E141E141C5C121C003F5B5A485B495A130300FE5B4848CAFCEA701EEA ! 783CEA3FF0EA0FC0343A80A630>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fk cmcsc10 10.95 16 ! /Fk 16 121 df97 D99 DI102 DIII<90383FFFFCA39038007FC0EC3F80B3AD1218127EB4FCA3EC7F005A ! 007C137E007813FE383C01F8381F03F03807FFC0C648C7FC1E307CAE27>I108 DII112 D<90383FC00C9038FFF81C0003EBFE3C390FE03FFC381F8007 ! EB0003003E1301481300157C5A153CA36C141CA27E6C14006C7E13E013FE383FFFE06C13 ! FE6CEBFF806C14E0000114F06C6C13F8010F13FC1300EC07FE14011400157F153F12E015 ! 1FA37EA2151E6C143E6C143C6C147C6C14F89038C001F039FBF807E000F1B512C0D8E07F ! 130038C007FC20317BAF2A>115 D<007FB712F8A39039801FF0073A7E000FE000007816 ! 78A20070163800F0163CA348161CA5C71500B3A8EC3FF8011FB512F0A32E2E7CAD36>I< ! B5D8F801B5FCA3D803FEC7EA1FF06C48EC0FE0EE07C0EE0380B3AB16076C6C1500A2017E ! 5C017F141E6D141C6D6C133C6D6C5B6D6C485A903903FC07E00100B51280DA3FFEC7FCEC ! 07F830307CAE38>I<3B7FFFF001FFFEA30003D9C00013E0C649EB7F80017F027EC7FC16 ! 7C6D6C13786D6C5B6D6C5B15016D6C485AD903FC5B15076D6C48C8FC903800FF1EEC7F9C ! 15BCEC3FF86E5AA2140F6E7E14034A7E4A7EEC1EFF141C91383C7F804A6C7E14709138F0 ! 1FE049486C7E49486C7E148001076D7E49486C7E130E011E6D7E496E7E017C6E7E13FC00 ! 0382D80FFEEC7FF8B549B512C0A3322F7DAE38>120 D E ! %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fl cmti10 10.95 1 ! /Fl 1 47 df<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>46 ! D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fm cmbxti10 14.4 1 ! /Fm 1 47 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C5A ! EA0FE0121271912B>46 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fn cmbx12 17.28 37 ! /Fn 37 122 df<16F04B7E1507151F153FEC01FF1407147F010FB5FCB7FCA41487EBF007 ! C7FCB3B3B3B3007FB91280A6395E74DD51>49 D<913801FFF8021FEBFFC091B612F80103 ! 15FF010F16C0013F8290267FFC0114F89027FFE0003F7F4890C7000F7F48486E7FD807F8 ! 6E148048486E14C048486E14E048486F13F001FC17F8486C816D17FC6E80B56C16FE8380 ! A219FFA283A36C5BA26C5B6C90C8FCD807FC5DEA01F0CA14FEA34D13FCA219F85F19F04D ! 13E0A294B512C019804C14004C5B604C5B4C5B604C13804C90C7FC4C5A4C5A4B13F05F4B ! 13804B90C8FC4B5AED1FF84B5A4B5A4B48143F4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC ! 7F8092C9FC02FE16FE495A495A4948ED01FCD90FC0150749B8FC5B5B90B9FC5A4818F85A ! 5A5A5A5ABAFCA219F0A4405E78DD51>I65 DI<4DB5ED03C0057F02F014070407B600 ! FE140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6C738 ! 07FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01F082 ! 91B54882490280824991CB7E49498449498449498449865D49498490B5FC484A84A2484A ! 84A24891CD127FA25A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380A27EA2F5 ! 0FC0A26C7FA37E6E1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F4E5A7F6D ! 6D4E5A6D6D4E5A6D6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC020F01FF ! EE07FE6E02C0ED1FF8020102F8ED7FF06E02FF913803FFE0033F02F8013F1380030F91B6 ! 48C8FC030117F86F6C16E004071680DC007F02F8C9FC050191CAFC626677E375>I ! 70 D<4DB5ED03C0057F02F014070407B600FE140F047FDBFFC0131F4BB800F0133F030F ! 05FC137F033F9127F8007FFE13FF92B6C73807FF814A02F0020113C3020702C09138007F ! E74A91C9001FB5FC023F01FC16074A01F08291B54882490280824991CB7E494984494984 ! 49498449865D49498490B5FC484A84A2484A84A24891CD127FA25A4A1A3F5AA348491A1F ! A44899C8FCA25CA3B5FCB07E071FB812F880A37EA296C70001ECC000A26C7FA37E807EA2 ! 6C80A26C80A26C807F6D7F816D7F7F6D7F6D6D5F6D14C06D6E5E6E7F6E01FC5E020F01FF ! 5E6E02C0ED7FEF020102F8EDFFC76E02FF02071383033F02FC013F1301030F91B638FC00 ! 7F03014D131F6F6C04E01307040704801301DC007F02F8CAFC050191CBFC6D6677E37F> ! II ! I77 DI80 D<001FBEFCA64849C79126E0000F148002E0180091C8171F4986 ! 01F81A0349864986A2491B7FA2491B3F007F1DC090C9181FA4007E1C0FA600FE1DE0481C ! 07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>84 DII<913803 ! FFFE027FEBFFF00103B612FE010F6F7E4916E090273FFE001F7FD97FE001077FD9FFF801 ! 017F486D6D7F717E486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090C9FCA74B ! B6FC157F0207B7FC147F49B61207010F14C0013FEBFE004913F048B512C04891C7FC485B ! 4813F85A5C485B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903F1EBFF80 ! 6C01FED90FE114FF6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC130F010302 ! F001011400D9001F90CBFC49437CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8 ! 040FEBFF80047F14F00381B612FC038715FF038F010014C0DBBFF0011F7FDBFFC001077F ! 93C76C7F4B02007F03F8824B6F7E4B6F13804B17C0851BE0A27313F0A21BF8A37313FCA4 ! 1BFEAE1BFCA44F13F8A31BF0A24F13E0A24F13C06F17804F1300816F4B5A6F4A5B4AB402 ! 075B4A6C6C495B9126F83FE0013F13C09127F00FFC03B55A4A6CB648C7FCDAC00115F84A ! 6C15E091C7001F91C8FC90C8000313E04F657BE35A>I<92380FFFF04AB67E020F15F002 ! 3F15FC91B77E01039039FE001FFF4901F8010113804901E0010713C04901804913E0017F ! 90C7FC49484A13F0A2485B485B5A5C5A7113E0485B7113C048701380943800FE0095C7FC ! 485BA4B5FCAE7EA280A27EA2806C18FCA26C6D150119F87E6C6D15036EED07F06C18E06C ! 6D150F6D6DEC1FC06D01E0EC7F806D6DECFF00010701FCEB03FE6D9039FFC03FFC010091 ! B512F0023F5D020F1580020102FCC7FCDA000F13C03E437BC148>II<92380FFFC04AB512FC ! 020FECFF80023F15E091B712F80103D9FE037F499039F0007FFF011F01C0011F7F49496D ! 7F4990C76C7F49486E7F48498048844A804884485B727E5A5C48717EA35A5C721380A2B5 ! FCA391B9FCA41A0002C0CBFCA67EA380A27EA27E6E160FF11F806C183F6C7FF17F006C7F ! 6C6D16FE6C17016D6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE0010301FC49B45A6D9026FF ! C01F90C7FC6D6C90B55A021F15F8020715E0020092C8FC030713F041437CC14A>III<903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714FC041F14 ! FF4C8193267FE07F7F922781FE001F7FDB83F86D7FDB87F07FDB8FC0814C7F039FC78015 ! BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280A651647BE35A>II<903807FF80B6FCA6C6FC ! 7F7FB3B3B3B3ADB712E0A623647BE32C>108 D<902607FF80D91FFFEEFFF8B691B500F0 ! 0207EBFF80040702FC023F14E0041F02FF91B612F84C6F488193267FE07F6D4801037F92 ! 2781FE001F9027E00FF0007FC6DA83F86D9026F01FC06D7F6DD987F06D4A487F6DD98FC0 ! DBF87EC7804C6D027C80039FC76E488203BEEEFDF003BC6E4A8003FC04FF834B5FA24B5F ! A24B94C8FCA44B5EB3B2B7D8F007B7D8803FB612FCA67E417BC087>I<902607FF80EB1F ! FFB691B512F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FC6DA83F86D7F6D ! D987F07F6DD98FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007 ! B71280A651417BC05A>I<923807FFE092B6FC020715E0021F15F8027F15FE494848C66C ! 6C7E010701F0010F13E04901C001037F49496D7F4990C87F49486F7E49486F7E48496F13 ! 804819C04A814819E048496F13F0A24819F8A348496F13FCA34819FEA4B518FFAD6C19FE ! A46C6D4B13FCA36C19F8A26C6D4B13F0A26C19E06C6D4B13C0A26C6D4B13806C6D4B1300 ! 6D6C4B5A6D6D495B6D6D495B010701F0010F13E06D01FE017F5B010090B7C7FC023F15FC ! 020715E0020092C8FC030713E048437CC151>I<902607FF80EBFFF8B6010FEBFF80047F ! 14F00381B612FC038715FF038F010114C09227BFF0003F7FC6DAFFC0010F7F6D91C76C7F ! 6D496E7F03F86E7F4B6E7F4B17804B6F13C0A27313E0A27313F0A21BF885A21BFCA3851B ! FEAE4F13FCA41BF861A21BF0611BE0611BC06F92B512801B006F5C6F4A5B6F4A5B03FF4A ! 5B70495B04E0017F13C09226CFFC03B55A03C7B648C7FC03C115F803C015E0041F91C8FC ! 040313E093CBFCB3A3B712F0A64F5D7BC05A>I ! 114 D<913A3FFF8007800107B5EAF81F011FECFE7F017F91B5FC48B8FC48EBE0014890C7 ! 121FD80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D92C7FC13 ! FF14E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F1680010F ! 16C01303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC81177F6C163F ! A2171F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002C0EB0FFE ! 02FCEB7FFC01DFB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437BC140>I< ! EC07E0A6140FA5141FA3143FA2147FA214FF5BA25B5B5B5B137F48B5FC000F91B512FEB8 ! FCA5D8001F01E0C8FCB3AFEF0FC0AC171F6D6D1480A2173F6D16006F5B6D6D137E6D6D5B ! 6DEBFF836EEBFFF86E5C020F14C002035C9126003FFCC7FC325C7DDA3F>I<902607FFC0 ! ED3FFEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D147E4E7F6D ! 6D4948806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8DA003F01 ! 8002F0C7FC51427BC05A>III<007FB600C0017FB512 ! F8A6D8001F01F8C70007EBF0006D040190C7FC6D6D5D6D6D4A5A6D6D4A5A70495A6D4C5A ! 6E7F6E6D495A6E6D495A7049C8FC6E4A5A6E6D485A6E6D485A6E13FFEF8FF06EEC9FE06F ! EBFFC06F5C6F91C9FC5F6F5B816F7F6F7F8481707F8493B57E4B805D4B80DB0FF37FDB1F ! E17F04C080153F4B486C7F4B486C7F4A486D7F4A486D7F4A5A4B6D7F020F6E7F4A486D7F ! 4A486D804A5A4AC86C7F49486F7F4A6F7F0107707FEB3FFFB600F049B7FCA650407EBF55 ! >II E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fo cmsy10 10.95 1 ! /Fo 1 14 df13 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fp cmbx12 14.4 48 ! /Fp 48 122 df44 D46 D<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EAF800C7 ! FCB3B3B3A6007FB712FEA52F4E76CD43>49 DI<9138 ! 0FFFC091B512FC0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7ED803 ! F86E7E491680D807FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801FC16 ! 80C9FC4C13005FA24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF80DA ! 000713E0030113F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA218FE ! A2EA03E0EA0FF8487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E001F0 ! 4A13C06C484A1380D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F15800103 ! 02FCC7FCD9001F1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F167F ! A216FF5D5DA25D5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC01580EC ! 1F005C147E147C5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207485A ! 485A90C8FC123E127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>II<171F4D7E4D7EA24D7EA34C7FA24C7FA34C7FA34C7F ! A24C7FA34C8083047F80167E8304FE804C7E03018116F8830303814C7E03078116E08303 ! 0F814C7E031F81168083033F8293C77E4B82157E8403FE824B800201835D840203834B80 ! 0207835D844AB87EA24A83A3DA3F80C88092C97E4A84A2027E8202FE844A82010185A24A ! 820103854A82010785A24A82010F855C011F717FEBFFFCB600F8020FB712E0A55B547BD3 ! 66>65 DI<932601FFFCEC01 ! C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003EBC07F020F ! 01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F882494982494982 ! 4949824949824990CA7E494883A2484983485B1B7F485B481A3FA24849181FA3485B1B0F ! A25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D1980A26C1A1F6C7F1C ! 006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A6D01FC4C5A6D6DEE ! 7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE001FFF0020091B612 ! C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261>III ! I<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203 ! DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901 ! F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A3FA248 ! 49181FA3485B1B0FA25AA298C8FC5CA2B5FCAE6C057FB712E0A280A36C94C7003FEBC000 ! A36C7FA36C7FA27E6C7FA26C7F6C7FA26D7E6D7F6D7F6D6D5E6D7F6D01FC93B5FC6D13FF ! 6D6C6D5C6E01F0EC07FB020F01FEEC1FF10203903AFFF001FFE0020091B6EAC07F033FEE ! 001F030703FC1307DB007F02E01301040149CAFC5B5479D26A>II< ! B812C0A5D8000701F8C7FCB3B3B3B2B812C0A52A527CD132>I76 DII80 ! D82 D<91260FFF80130791B5 ! 00F85B010702FF5B011FEDC03F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5 ! FC4848C87E48488149150F001F824981123F4981007F82A28412FF84A27FA26D82A27F7F ! 6D93C7FC14C06C13F014FF15F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C83 ! 6C836D826D82010F821303010082021F16801400030F15C0ED007F040714E01600173F05 ! 0F13F08383A200788200F882A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D ! 5D01FC4B5A01FF4B5A02C04A5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7 ! FC48C66C14FC48010F14F048D9007F90C8FC3C5479D24B>I<003FBC1280A59126C0003F ! 9038C0007F49C71607D87FF8060113C001E08449197F49193F90C8171FA2007E1A0FA300 ! 7C1A07A500FC1BE0481A03A6C994C7FCB3B3AC91B912F0A553517BD05E>IIII97 DI<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE ! 0001FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F130070 ! 5A4892C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C ! 6DEC3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49 ! C7FC020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13 ! FC91B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F48 ! 4980485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D ! 5C6C6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE ! 0FD9003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C0 ! 4901817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C048 ! 8191C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06C ! EE01F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB ! 03FE903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>IIII<137F ! 497E000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017E ! B3B3A6B612E0A51B547BD325>I ! 108 DII<913801FFE0021F13FE ! 91B612C0010315F0010F9038807FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F ! 48496D7F4A147F48834890C86C7EA24883A248486F7EA3007F1880A400FF18C0AC007F18 ! 80A3003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD9 ! 3FFE011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8FC020113E03A387CB643 ! >I<903A3FF001FFE0B5010F13FE033FEBFFC092B612F002F301017F913AF7F8007FFE00 ! 03D9FFE0EB1FFFC602806D7F92C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380 ! AC1A0060A36118FFA2615F616E4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC91 ! 26FBFE075B02F8B612E06F1480031F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B ! >I<90397FE003FEB590380FFF80033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3 ! E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AA ! B612FCA52F367CB537>114 D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF8 ! 1307D81FE0130148487F4980127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13 ! FF15F86C14FF16C06C15F06C816C816C81C681013F1580010F15C01300020714E0EC003F ! 030713F015010078EC007F00F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001 ! F8EC7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C38 ! 7CB635>I<143EA6147EA414FEA21301A313031307A2130F131F133F13FF5A000F90B6FC ! B8FCA426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC ! 6DEBFFF86D6C5B021F5B020313802A4D7ECB34>IIII<007FB500F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C ! 6D6D495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8F ! E06EEBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD ! 7F03F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A ! 49486D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A542357EB447>II E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fq cmtt10 10.95 73 ! /Fq 73 127 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF80A3EA7F00 ! A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA248133FB2007E14 ! 00007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8011F131FA2 ! 02C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F ! 90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA2 ! 29387DB730>I<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFE ! FD13C09039F0FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A3 ! 6CEC03F0A2007F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F01 ! 1F7F01037F0100148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FC ! A35AA26CEC03F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C ! 5C6C5CC614F0013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>II ! I<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B48 ! 5A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F ! 12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E ! 184771BE30>40 D<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0 ! 131FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA213 ! 0314F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE048 ! 5A485A90C7FC5A1278184778BE30>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83 ! EB3FE001C3137F9038F3F9FF267FFBFB13C06CB61280000FECFE00000314F86C5C6C6C13 ! C0011F90C7FC017F13C048B512F04880000F14FE003FECFF80267FFBFB13C026FFF3F913 ! E09038C3F87F0183133FD87E03EB0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30 ! >I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>II<007FB612F0A2B712F8A36C15 ! F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B ! 30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5A ! A25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495A ! A2495AA2495AA2495AA249C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA2 ! 48C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB ! 83FF4848C6138049137F4848EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8 ! A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15 ! F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B ! 6D5B010F13E06D5BD900FEC7FC273A7CB830>III<120FEA3FC0EA7FE0A2EAFFF0A4EA7F ! E0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C27 ! 6EA630>58 DI<16F01503ED07F8151F157FEDFFF01403 ! 4A13C0021F138091383FFE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF0485B ! 000F13804890C8FCEA7FFC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F38007FFC ! 6D7E90380FFF806D7F010113F06D7FEC3FFE91381FFF80020713C06E13F01400ED7FF815 ! 1F1507ED03F01500252F7BB230>I<007FB7FCA2B81280A36C16006C5DCBFCA7003FB612 ! FE4881B81280A36C1600A229157DA530>I<1278127EB4FC13C07FEA7FF813FEEA1FFF6C ! 13C000037F6C13F86C6C7EEB1FFF6D7F010313E06D7F9038007FFC6E7E91380FFF806E13 ! C0020113F080ED3FF8151F153FEDFFF05C020713C04A138091383FFE004A5A903801FFF0 ! 495B010F13804990C7FCEB7FFC48485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE05B90 ! C9FC127E1278252F7BB230>II<147F4A7EA2497FA4497F14F7A401077F14 ! E3A3010F7FA314C1A2011F7FA490383F80FEA590387F007FA4498049133F90B6FCA34881 ! A39038FC001F00038149130FA4000781491307A2D87FFFEB7FFFB56CB51280A46C496C13 ! 0029397DB830>65 D<003FB512E04814FCB67E6F7E6C816C813A03F8007FF0ED1FF8150F ! 6F7E6F7E15016F7EA2EE7F80A2163F17C0161FA4EE0FE0AC161F17C0A3163F1780A2167F ! 17005E4B5A15034B5A150F4B5AED7FF0003FB65A485DB75A93C7FC6C14FC6C14E02B387F ! B730>68 D<007FB7FCB81280A47ED803F8C7123FA8EE1F0093C7FCA4157C15FEA490B5FC ! A6EBF800A4157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA46C16C02B387EB730>I<00 ! 3FB712804816C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E157FA490B6FCA690 ! 38FC007FA4153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730>I<02FF13F00103 ! EBC0F8010F13F1013F13FD4913FF90B6FC4813C1EC007F4848133F4848131F49130F485A ! 491307121F5B123F491303A2127F90C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C7F6C ! 6D1400ED03F8A27F003F1407A27F121F6D130F120F7F6C6C131FA2D803FE133F6C6C137F ! ECC1FF6C90B5FC7F6D13FB010F13F30103EBC1F0010090C8FC293A7DB830>I<3B3FFF80 ! 0FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E0D803F8C7EAFE00B290B6FCA6 ! 01F8C7FCB3A23B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E02D38 ! 7FB730>I<007FB6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB71280A46C1500 ! 213879B730>I<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003F ! B7FC5AB8FCA27E6C16802A387EB730>76 D78 ! D<90383FFFE048B512FC000714FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0 ! A290C71207A44815F8481403B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F8 ! 13FF90B6FC6C15C06C15806C1500000114FCD8003F13E0253A7BB830>I<007FB512F0B6 ! 12FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7EA2821780163FA6167F17005E ! A24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001F8C9FCB0387FFFC0B57EA46C ! 5B29387EB730>I<003FB57E4814F0B612FC15FF6C816C812603F8017F9138003FF0151F ! 6F7E15071503821501A515035E1507150F4B5A153F4AB45A90B65A5E93C7FC5D8182D9F8 ! 007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EBFFF8B56C7E17F0 ! 6C496C13E06C49EB7FC0C9EA1F002E397FB730>82 D<90390FF803C0D97FFF13E048B512 ! C74814F74814FF5A381FF80F383FE001497E4848137F90C7123F5A48141FA2150FA37EED ! 07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF010314 ! 80D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C140716F07F ! 6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD878 ! 011380253A7BB830>I<003FB712C04816E0B8FCA43AFE003F800FA8007CED07C0C791C7 ! FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<3B7FFFC007FFFCB56C4813FEA46C49 ! 6C13FCD803F8C7EA3F80B3B16D147F00011600A36C6C14FE6D13016D5CEC800390393FE0 ! 0FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038007FFCEC1FF02F3980B730>I ! 89 D<007FB5FCB61280A4150048C8FCB3B3B3A5B6FC1580A46C140019476DBE30>91 ! D<127CA212FEA27EA26C7EA26C7EA26C7EA26C7EA26C7EA26C7EA212017FA26C7EA26D7E ! A26D7EA26D7EA26D7EA26D7EA26D7EA2130180A26D7EA26E7EA26E7EA26E7EA26E7EA26E ! 7EA26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED ! 01F0150025477BBE30>I<007FB5FCB61280A47EC7123FB3B3B3A5007FB5FCB6FCA46C14 ! 0019477DBE30>I<1307EB1FC0EB7FF0497E000313FE000FEBFF80003F14E0D87FFD13F0 ! 39FFF07FF8EBC01FEB800F38FE0003007CEB01F00010EB00401D0E77B730>I<007FB612 ! F0A2B712F8A36C15F0A225077B7D30>I97 ! DII<913801FFE04A7F5C ! A28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A481303380FFC00D81FF0133F49 ! 131F485A150F4848130790C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F ! 390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C713E0011F010313C0D907FC ! C8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B57E488048018113803A07FC ! 007FC04848133FD81FE0EB1FE0150F484814F0491307127F90C7FCED03F85A5AB7FCA516 ! F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE0 ! 6C90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A7CA830>IIII< ! 14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003F ! B612C04815E0B7FCA27E6C15C023397AB830>I107 ! D<387FFFF8B57EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB730>I<02FC ! 137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07EB03 ! F801FC13FE9039F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80B548018F13 ! C0A46C486C01071380322881A730>II<49B4FC010F ! 13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81FE0EB0FF0A2 ! 4848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D1303003F15 ! F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B512806C15006C6C ! 13FC6D5B010F13E0010190C7FC272A7CA830>II<49B413F8010FEBC1FC013F13F14913FD48B6FC5A481381390FFC00 ! 7F49131F4848130F491307485A491303127F90C7FC15015A5AA77E7E15037FA26C6C1307 ! 150F6C6C131F6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F13F1010F13 ! C1903803FE0190C7FCAD92B512F84A14FCA46E14F82E3C7DA730>II<9038 ! 1FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E007F91C7FC ! 13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02001380007C ! 147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC5D5D00FC14 ! F0D8F83F13C026780FFEC7FC222A79A830>III<3B3FFFC07FFF80 ! 486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D130700005DA26D130F01 ! 7E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE01075BA214F101 ! 035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFFE0486D4813 ! F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE00015DEC0F ! 80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FBA290393FF0 ! 7FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801C37FB580A2 ! 6C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3ECE7F06DB45A ! 6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1F890381F81 ! FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500C1148014E3 ! A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C49 ! 6C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151FD91F805BA214C0010F ! 49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D147FA26E5A ! A36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFF ! E06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316FC90C7EA0F ! F8ED1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7 ! FC495A495A495A495A495A495A4948133E4890C7127F485A485A485A485A485A48B7FCB8 ! FCA46C15FE28277DA630>II<127CA212FE ! B3B3B3AD127CA207476CBE30>II<017C133848B4137C ! 48EB80FE4813C14813C348EBEFFC397FEFFFF0D8FF8713E0010713C0486C1380D87C0113 ! 003838007C1F0C78B730>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fr cmr10 10.95 81 ! /Fr 81 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907 ! F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7 ! FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11 ! DIII<001E130F397F803FC000FF137F01C013E0 ! A201E013F0A3007F133F391E600F3000001300A401E01370491360A3000114E04913C000 ! 03130101001380481303000EEB070048130E0018130C0038131C003013181C1C7DBE2D> ! 34 D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313 ! 005A120E5A1218123812300B1C79BE19>39 D<1430147014E0EB01C0EB03801307EB0F00 ! 131E133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6 ! 127C12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA212017F12007F1378 ! 7F133E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C07E12707E7E12 ! 1E7E6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214C0A3130714E0 ! A6130314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2137813F85B12 ! 015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<121EEA7F8012FF13C0A213 ! E0A3127FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C79 ! 8919>44 DI<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A79 ! 8919>IIIIII<150E151E153EA2157EA215FE1401A21403EC ! 077E1406140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA25B5BA25B5B ! 1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD ! 2D>I<00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCAC ! EB01FE90380FFF8090383E03E090387001F8496C7E49137E497F90C713800006141FC813 ! C0A216E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C012780038EC3F ! 80123C6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7FCEB07F824 ! 3F7CBC2D>II<1238123C123F90B6 ! 12FCA316F85A16F016E00078C712010070EC03C0ED078016005D48141E151C153C5DC812 ! 7015F04A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C1303A31307A313 ! 0F5CA2131FA6133FAA6D5A0107C8FC26407BBD2D>III<12 ! 1EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA7F80A2EA1E00 ! 0A2779A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A213 ! C0A4127F121E1200A412011380A3120313005A1206120E120C121C5A1230A20A3979A619 ! >I<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC15C3A291380381FEA34A ! C67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA349486D7E91B6FCA249819138 ! 800001A249C87EA24982010E157FA2011E82011C153FA2013C820138151FA2017882170F ! 13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>65 ! DII ! IIIIII<011FB512FCA3D9000713006E5A1401B3B3A6123FEA7F ! 80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C495A6C495A2603E07EC7FC ! 3800FFF8EB3FC026407CBD2F>IIIIIIIIII<003FB91280A3903AF0007FE001018090393FC0003F48 ! C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5C81600B3B14B7E4B7E0107 ! B612FEA33B3D7DBC42>IIII<007FB5D8C003B512E0A3C649C7EBFC ! 00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C141C6D6C143C5F6D6C14706D6D13F0 ! 4C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5BEDF81E913807FC1C163C6E6C5A91 ! 3801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3BFEED71FF15F103E07F913801C07F ! 0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E02386D7E14784A6D7E4A6D7F130149 ! 486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E00076DEC7FFFB500FC0103B512FE ! A33F3E7EBD44>II<003FB712F8A3 ! 91C7EA1FF013F801E0EC3FE00180EC7FC090C8FC003EEDFF80A2003C4A1300007C4A5A12 ! 784B5A4B5AA200704A5AA24B5A4B5AA2C8485A4A90C7FCA24A5A4A5AA24A5AA24A5A4A5A ! A24A5A4A5AA24990C8FCA2495A4948141CA2495A495AA2495A495A173C495AA24890C8FC ! 485A1778485A484815F8A24848140116034848140F4848143FED01FFB8FCA32E3E7BBD38 ! >II<486C13C00003130101001380 ! 481303000EEB070048130E0018130C0038131C003013180070133800601330A300E01370 ! 481360A400CFEB678039FFC07FE001E013F0A3007F133FA2003F131F01C013E0390F0007 ! 801C1C73BE2D>II96 DII<49B4FC010F13E090383F00F8017C131E4848131F4848137F0007EC ! FF80485A5B121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003FEC01C07F00 ! 1F140316806C6C13076C6C14000003140E6C6C131E6C6C137890383F01F090380FFFC0D9 ! 01FEC7FC222A7DA828>IIII<167C903903F801FF903A1FFF078F ! 8090397E0FDE1F9038F803F83803F001A23B07E000FC0600000F6EC7FC49137E001F147F ! A8000F147E6D13FE00075C6C6C485AA23901F803E03903FE0FC026071FFFC8FCEB03F800 ! 06CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC0001FFC48C7 ! EA01FE003E140048157E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C495AD803 ! F0EB0FC0D800FE017FC7FC90383FFFFC010313C0293D7EA82D>III<1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F147FB3B3A5 ! 123E127F38FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF803801FC0018 ! 5185BD1C>III<2701F801FE14 ! FF00FF902707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007903BE001F87000 ! FC2603F9C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FCA2495CB3A6486C ! 496CECFF80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807FFC09138 ! 1E07E091387803F000079038E001F82603F9C07F0001138001FB6D7E91C7FC13FF5BA25B ! B3A6486C497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F81F890387E007E ! 01F8131F4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2003F15FCA248C8 ! 12FEA44815FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E06C6CEB0F ! C06C6CEB1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D>I<3901 ! FC03FC00FF90381FFF8091387C0FE09039FDE003F03A07FFC001FC6C496C7E6C90C7127F ! 49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D1580EE7F00 ! 7F6E13FE9138C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891C9FCAD487EB5 ! 12F8A32D3A7EA733>I<02FF131C0107EBC03C90381F80F090397F00387C01FC131CD803 ! F8130E4848EB0FFC150748481303121F485A1501485AA448C7FCAA6C7EA36C7EA2001F14 ! 036C7E15076C6C130F6C7E6C6C133DD8007E137990383F81F190380FFFC1903801FE0190 ! C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787CECE1FE3807F9 ! C100031381EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FEA31F287EA724> ! I<90383FC0603901FFF8E03807C03F381F000F003E1307003C1303127C0078130112F814 ! 00A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F13E00103 ! 13F0EB001FEC0FF800E01303A214017E1400A27E15F07E14016C14E06CEB03C090388007 ! 8039F3E01F0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA213FCA2120112 ! 031207001FB512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB7F03013F1380 ! 90381F8700EB07FEEB01F81B397EB723>IIIIII<001FB61280A2EBE0000180140049485A001E495A121C4A5A003C495A141F00385C ! 4A5A147F5D4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB7F80EBFF005A5B ! 484813071207491400485A48485BA248485B4848137F00FF495A90B6FCA221277EA628> ! I124 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fs cmbx12 20.736 13 ! /Fs 13 122 df<96267FFFE01670063FB6ED01F80503B700F01403053F04FC14074CB96C ! 130F040706E0131F043F72133F93BA00FC137F0303DC00076D13FF030F03C09039003FFF ! 814B02FCC8000713C3037F02E0030113F792B600806F6CB5FC02034ACA121F4A02F8834A ! 02E0834A4A1701027F4A8391B548CC7E494A85495C4C854988494A85494A85495C8A4991 ! CDFC90B54886A2484A1B7FA2481E3F5D481E1F5D5A1F0FA2485CA3481E075DA2795A489B ! C9FCA45DA2B6FCB27EA26F0403BA12C0A47EA3816C96C8000302F8C7FCA36C80A36C80A2 ! 7E817E817E817F6D80827F6D806D806D80826D6E606D806E80021F6E5F6E02F05F6E806E ! 02FE5F0200DAFFC05E6F02F04BB6FC031F02FE030713CF6FDAFFE0021F138703039226FF ! 8003B51201030093B6EAFC00043F4E133F040706E0131F04014E1307DC003F4CC7120105 ! 0304F8EC0070DD003F038092C8FCDE007F01F0CCFC827A75F798>71 ! DI76 D78 D85 D<92383FFFF80207B612E0027F15FC49B87E010717E0 ! 011F83499026F0007F13FC4948C7000F7F90B502036D7E486E6D806F6D80727F486E6E7F ! 8486727FA28684A26C5C72806C5C6D90C8FC6D5AEB0FF8EB03E090CAFCA70507B6FC041F ! B7FC0303B8FC157F0203B9FC021FECFE0391B612800103ECF800010F14C04991C7FC017F ! 13FC90B512F04814C0485C4891C8FC485B5A485B5C5A5CA2B5FC5CA360A36E5DA26C5F6E ! 5D187E6C6D846E4A48806C6D4A4814FC6C6ED90FF0ECFFFC6C02E090263FE07F14FE0001 ! 9139FC03FFC06C91B6487E013F4B487E010F4B1307010303F01301D9003F0280D9003F13 ! FC020101F8CBFC57507ACE5E>97 D<903801FFFCB6FCA8C67E131F7FB3ADF0FFFC050FEB ! FFE0057F14FE0403B77E040F16E0043F16F84CD9007F13FE9226FDFFF001077F92B500C0 ! 01018094C86C13E004FC6F7F4C6F7F04E06F7F4C6F7F5E747F93C915804B7014C0A27414 ! E0A21DF087A21DF8A31DFC87A41DFEAF1DFCA4631DF8A31DF098B5FC1DE0A25014C0A26F ! 1980501400705D705F704B5B505B704B5B04FC4B5BDBE7FE92B55A9226C3FF8001035C03 ! 8101E0011F49C7FC9226807FFC90B55A4B6CB712F04A010F16C04A010393C8FC4A010015 ! F84A023F14C090C9000301F0C9FC5F797AF76C>I105 ! D<93381FFFE00303B6FC031F15E092B712FC020316FF020F17C0023FD9FC0014F091B500 ! C0010F13FC4991C700037F4901FC02007F010F496F13C049496F7F49496F7F4B8149496F ! 7F90B5C96C7F4886A24849707F481B80A248497014C0A2481BE0A348497113F0A3481BF8 ! A5B51AFCAE6C1BF8A46C1BF06E94B5FCA36C1BE0A26C6D4C14C0A26C1B806E5E6C1B006C ! 6E4B5BA26C6E4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D92B55A6D01FF02035C6D02C0010F ! 91C7FC010002FC90B512FC6E90B75A021F17E00207178002014CC8FCDA003F15F0030392 ! C9FCDB001F13E056507BCE61>111 D<902601FFF8EB07FEB691383FFFC094B512F00403 ! 804C14FE4C8093261FFC3F138093263FE07F13C0DC7F80B5FCC66C5D011FDAFE0114E06D ! EBF9FC16F815FB16F016E015FF16C07114C05E72138095381FFE0093C76C5AF001E095C8 ! FCA25DA65DB3B3A2B812F8A8434E7ACD4F>114 D<912603FFFCEB0780027F9039FFE00F ! C00103B6EAF83F010FEDFEFF013F92B5FC49EB000F2601FFF01300480180143F4890C812 ! 0F4848814848814981123F83485A187FA212FF6D163FA37F7F6DEE1F8002C092C7FC14F0 ! 14FEECFFF06CECFF8016FEEEFFE06C16FC6C16FF18C06C836C17F86C836C836C83013F17 ! 806D17C0010717E0010117F0EB003F020716F8EC001F030015FC1607EE007F051F13FE17 ! 07007E82B482836D167FA2183F7F181FA27F19FC7FA26D163F6D17F86D167F19F06D16FF ! 6E4A13E002E04A13C06E4A138002FE023F1300913AFFC003FFFE01E790B65A01C316F001 ! 8016C026FE003F92C7FC48010714F80070D9007F90C8FC3F507ACE4C>I<15FFA75CA55C ! A45CA25CA25CA25CA25C91B5FCA25B5B5B131F5B90B9FC120FBAFCA6D8000791C9FCB3B3 ! A3F01FE0AE183F7014C07F187F7014806D16FF826D4B13006E6D485AEEFE0F6E90B55A02 ! 0F5D6E5D020115C06E6C5C031F49C7FC030113F03B6E7CEC4B>I121 D E %EndDVIPSBitmapFont end %%EndProlog %%BeginSetup ! %%Feature: *Resolution 600dpi TeXDict begin %%BeginPaperSize: Letter *************** *** 820,1655 **** %%EndSetup %%Page: 1 1 ! 1 0 bop 75 659 a Fq(GNU)33 b(History)f(Library)p 75 709 ! 1800 17 v 960 757 a Fp(Edition)16 b(4.3,)e(for)h Fo(History)f(Library)g ! Fp(V)l(ersion)i(4.3.)1643 811 y(Marc)o(h)e(2002)75 2467 ! y Fn(Brian)23 b(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F) ! -6 b(oundation)75 2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 ! b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570 ! 1800 9 v eop %%Page: 2 2 ! 2 1 bop 75 217 a Fp(This)21 b(do)q(cumen)o(t)g(describ)q(es)h(the)f ! (GNU)f(History)g(library)l(,)j(a)d(programming)g(to)q(ol)g(that)g(pro)o ! (vides)h(a)75 271 y(consisten)o(t)15 b(user)h(in)o(terface)f(for)g ! (recalling)i(lines)f(of)f(previously)i(t)o(yp)q(ed)e(input.)75 ! 339 y(Published)i(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l ! (oundation)75 394 y(59)h(T)l(emple)h(Place,)f(Suite)i(330,)75 ! 448 y(Boston,)d(MA)h(02111)f(USA)75 516 y(P)o(ermission)j(is)f(gran)o ! (ted)g(to)f(mak)o(e)h(and)g(distribute)i(v)o(erbatim)d(copies)i(of)f ! (this)h(man)o(ual)f(pro)o(vided)h(the)75 570 y(cop)o(yrigh)o(t)e ! (notice)h(and)f(this)h(p)q(ermission)g(notice)g(are)f(preserv)o(ed)h ! (on)f(all)h(copies.)75 638 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g ! (cop)o(y)h(and)g(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h ! (man)o(ual)g(under)h(the)f(con-)75 692 y(ditions)k(for)e(v)o(erbatim)h ! (cop)o(ying,)g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g ! (deriv)o(ed)g(w)o(ork)e(is)h(distributed)75 747 y(under)h(the)f(terms)g ! (of)g(a)f(p)q(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75 ! 814 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f ! (distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another) ! g(lan-)75 869 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i ! (for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q ! (ermission)g(notice)75 924 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f ! (translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are) ! d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289 ! 2661 y Fm(\015)h Fp(1988-2002)f(F)l(ree)i(Soft)o(w)o(are)f(F)l ! (oundation,)h(Inc.)p eop ! %%Page: 1 3 ! 1 2 bop 75 -58 a Fp(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o ! (ely)1007 b(1)75 149 y Fl(1)41 b(Using)26 b(History)h(In)n(teractiv)n ! (ely)137 289 y Fp(This)17 b(c)o(hapter)g(describ)q(es)h(ho)o(w)e(to)g ! (use)h(the)g Fk(gnu)f Fp(History)g(Library)h(in)o(teractiv)o(ely)l(,)h ! (from)e(a)g(user's)75 344 y(standp)q(oin)o(t.)38 b(It)21 ! b(should)h(b)q(e)g(considered)g(a)f(user's)g(guide.)38 ! b(F)l(or)21 b(information)g(on)g(using)h(the)f Fk(gnu)75 ! 398 y Fp(History)c(Library)h(in)h(y)o(our)e(o)o(wn)g(programs,)f(see)i ! (Chapter)f(2)h([Programming)e(with)i(GNU)f(History],)75 ! 453 y(page)e(5.)75 600 y Fn(1.1)33 b(History)22 b(Expansion)137 ! 704 y Fp(The)c(History)g(library)h(pro)o(vides)f(a)f(history)h ! (expansion)h(feature)e(that)h(is)g(similar)h(to)e(the)h(history)75 ! 759 y(expansion)12 b(pro)o(vided)g(b)o(y)f Fo(csh)p Fp(.)18 ! b(This)11 b(section)h(describ)q(es)g(the)g(syn)o(tax)e(used)h(to)g ! (manipulate)h(the)f(history)75 814 y(information.)137 ! 888 y(History)k(expansions)h(in)o(tro)q(duce)h(w)o(ords)d(from)g(the)i ! (history)f(list)h(in)o(to)f(the)h(input)g(stream,)e(making)75 ! 943 y(it)h(easy)g(to)g(rep)q(eat)g(commands,)g(insert)h(the)f(argumen)o ! (ts)f(to)h(a)g(previous)h(command)f(in)o(to)g(the)g(curren)o(t)75 ! 998 y(input)h(line,)h(or)d(\014x)i(errors)e(in)i(previous)g(commands)f ! (quic)o(kly)l(.)137 1072 y(History)j(expansion)i(tak)o(es)d(place)i(in) ! h(t)o(w)o(o)d(parts.)28 b(The)19 b(\014rst)f(is)g(to)g(determine)i ! (whic)o(h)f(line)h(from)75 1127 y(the)h(history)f(list)i(should)g(b)q ! (e)f(used)g(during)h(substitution.)37 b(The)21 b(second)g(is)g(to)f ! (select)i(p)q(ortions)e(of)75 1182 y(that)15 b(line)i(for)d(inclusion)k ! (in)o(to)d(the)h(curren)o(t)f(one.)20 b(The)c(line)g(selected)h(from)e ! (the)g(history)g(is)h(called)h(the)75 1237 y Fj(ev)o(en)o(t)p ! Fp(,)c(and)h(the)g(p)q(ortions)g(of)f(that)g(line)i(that)e(are)g(acted) ! h(up)q(on)g(are)f(called)j Fj(w)o(ords)p Fp(.)i(V)l(arious)c ! Fj(mo)q(di\014ers)75 1292 y Fp(are)i(a)o(v)m(ailable)i(to)e(manipulate) ! i(the)e(selected)i(w)o(ords.)23 b(The)17 b(line)h(is)f(brok)o(en)f(in)o ! (to)h(w)o(ords)e(in)j(the)e(same)75 1346 y(fashion)c(that)e(Bash)i(do)q ! (es,)g(so)f(that)g(sev)o(eral)g(w)o(ords)g(surrounded)h(b)o(y)f(quotes) ! h(are)f(considered)h(one)g(w)o(ord.)75 1401 y(History)18 ! b(expansions)h(are)g(in)o(tro)q(duced)g(b)o(y)f(the)h(app)q(earance)g ! (of)f(the)g(history)h(expansion)g(c)o(haracter,)75 1456 ! y(whic)o(h)d(is)g(`)p Fo(!)p Fp(')e(b)o(y)h(default.)75 ! 1583 y Fi(1.1.1)30 b(Ev)n(en)n(t)21 b(Designators)137 ! 1687 y Fp(An)16 b(ev)o(en)o(t)f(designator)g(is)g(a)g(reference)h(to)f ! (a)g(command)g(line)i(en)o(try)d(in)i(the)g(history)f(list.)75 ! 1777 y Fo(!)216 b Fp(Start)16 b(a)g(history)h(substitution,)g(except)h ! (when)f(follo)o(w)o(ed)g(b)o(y)f(a)h(space,)g(tab,)f(the)h(end)g(of)315 ! 1832 y(the)e(line,)i(`)p Fo(=)p Fp(')d(or)h(`)p Fo(\()p ! Fp('.)75 1919 y Fo(!)p Fj(n)191 b Fp(Refer)15 b(to)f(command)h(line)i ! Fj(n)p Fp(.)75 2006 y Fo(!-)p Fj(n)167 b Fp(Refer)15 ! b(to)f(the)i(command)f Fj(n)g Fp(lines)i(bac)o(k.)75 ! 2094 y Fo(!!)192 b Fp(Refer)15 b(to)f(the)i(previous)f(command.)20 ! b(This)c(is)g(a)f(synon)o(ym)g(for)f(`)p Fo(!-1)p Fp('.)75 ! 2181 y Fo(!)p Fj(string)102 b Fp(Refer)15 b(to)f(the)i(most)e(recen)o ! (t)h(command)g(starting)g(with)g Fj(string)p Fp(.)75 ! 2268 y Fo(!?)p Fj(string)t Fo([?])315 2323 y Fp(Refer)h(to)g(the)h ! (most)f(recen)o(t)h(command)g(con)o(taining)g Fj(string)p ! Fp(.)25 b(The)17 b(trailing)g(`)p Fo(?)p Fp(')f(ma)o(y)g(b)q(e)315 ! 2377 y(omitted)f(if)h(the)f Fj(string)k Fp(is)d(follo)o(w)o(ed)f ! (immediately)i(b)o(y)e(a)g(newline.)75 2464 y Fo(^)p ! Fj(string1)t Fo(^)p Fj(string2)t Fo(^)315 2519 y Fp(Quic)o(k)i ! (Substitution.)23 b(Rep)q(eat)16 b(the)g(last)f(command,)h(replacing)h ! Fj(string1)i Fp(with)e Fj(string2)p Fp(.)315 2574 y(Equiv)m(alen)o(t)g ! (to)d Fo(!!:s/)p Fj(string1)t Fo(/)p Fj(string2)t Fo(/)p ! Fp(.)75 2661 y Fo(!#)192 b Fp(The)15 b(en)o(tire)h(command)f(line)i(t)o ! (yp)q(ed)f(so)e(far.)p eop ! %%Page: 2 4 ! 2 3 bop 75 -58 a Fp(2)1347 b(GNU)15 b(History)g(Library)75 ! 149 y Fi(1.1.2)30 b(W)-5 b(ord)20 b(Designators)137 247 ! y Fp(W)l(ord)d(designators)g(are)g(used)h(to)f(select)h(desired)h(w)o ! (ords)d(from)h(the)g(ev)o(en)o(t.)26 b(A)18 b(`)p Fo(:)p ! Fp(')e(separates)h(the)75 302 y(ev)o(en)o(t)j(sp)q(eci\014cation)h ! (from)e(the)h(w)o(ord)f(designator.)34 b(It)20 b(ma)o(y)f(b)q(e)h ! (omitted)g(if)g(the)g(w)o(ord)f(designator)75 357 y(b)q(egins)f(with)g ! (a)e(`)p Fo(^)p Fp(',)h(`)p Fo($)p Fp(',)f(`)p Fo(*)p ! Fp(',)g(`)p Fo(-)p Fp(',)g(or)h(`)p Fo(\045)p Fp('.)24 ! b(W)l(ords)17 b(are)g(n)o(um)o(b)q(ered)g(from)g(the)g(b)q(eginning)i ! (of)e(the)g(line,)75 411 y(with)j(the)g(\014rst)f(w)o(ord)h(b)q(eing)h ! (denoted)f(b)o(y)g(0)f(\(zero\).)33 b(W)l(ords)20 b(are)f(inserted)i ! (in)o(to)f(the)g(curren)o(t)f(line)75 466 y(separated)c(b)o(y)g(single) ! i(spaces.)137 535 y(F)l(or)e(example,)75 616 y Fo(!!)192 ! b Fp(designates)18 b(the)g(preceding)i(command.)28 b(When)18 ! b(y)o(ou)g(t)o(yp)q(e)g(this,)h(the)f(preceding)h(com-)315 ! 671 y(mand)c(is)h(rep)q(eated)g(in)g(toto.)75 752 y Fo(!!:$)144 ! b Fp(designates)12 b(the)f(last)g(argumen)o(t)f(of)h(the)g(preceding)i ! (command.)19 b(This)11 b(ma)o(y)g(b)q(e)h(shortened)315 ! 807 y(to)j Fo(!$)p Fp(.)75 887 y Fo(!fi:2)120 b Fp(designates)15 ! b(the)g(second)g(argumen)o(t)f(of)g(the)h(most)f(recen)o(t)g(command)h ! (starting)f(with)h(the)315 942 y(letters)g Fo(fi)p Fp(.)137 ! 1024 y(Here)h(are)f(the)g(w)o(ord)f(designators:)75 1105 ! y Fo(0)h(\(zero\))57 b Fp(The)15 b Fo(0)p Fp(th)g(w)o(ord.)20 ! b(F)l(or)14 b(man)o(y)h(applications,)h(this)g(is)g(the)f(command)g(w)o ! (ord.)75 1186 y Fj(n)215 b Fp(The)15 b Fj(n)p Fp(th)h(w)o(ord.)75 ! 1267 y Fo(^)216 b Fp(The)15 b(\014rst)g(argumen)o(t;)f(that)h(is,)g(w)o ! (ord)g(1.)75 1348 y Fo($)216 b Fp(The)15 b(last)h(argumen)o(t.)75 ! 1429 y Fo(\045)216 b Fp(The)15 b(w)o(ord)g(matc)o(hed)g(b)o(y)g(the)g ! (most)g(recen)o(t)g(`)p Fo(?)p Fj(string)t Fo(?)p Fp(')f(searc)o(h.)75 ! 1510 y Fj(x)p Fo(-)p Fj(y)168 b Fp(A)15 b(range)g(of)g(w)o(ords;)f(`)p ! Fo(-)p Fj(y)t Fp(')g(abbreviates)i(`)p Fo(0-)p Fj(y)t ! Fp('.)75 1591 y Fo(*)216 b Fp(All)15 b(of)f(the)f(w)o(ords,)g(except)i ! (the)f Fo(0)p Fp(th.)19 b(This)14 b(is)h(a)e(synon)o(ym)h(for)f(`)p ! Fo(1-$)p Fp('.)18 b(It)c(is)g(not)g(an)g(error)315 1645 ! y(to)g(use)h(`)p Fo(*)p Fp(')f(if)i(there)e(is)i(just)e(one)h(w)o(ord)f ! (in)i(the)f(ev)o(en)o(t;)f(the)h(empt)o(y)g(string)g(is)g(returned)g ! (in)315 1700 y(that)f(case.)75 1781 y Fj(x)s Fo(*)189 ! b Fp(Abbreviates)16 b(`)p Fj(x)p Fo(-$)p Fp(')75 1862 ! y Fj(x)p Fo(-)192 b Fp(Abbreviates)16 b(`)p Fj(x)p Fo(-$)p ! Fp(')e(lik)o(e)i(`)p Fj(x)s Fo(*)p Fp(',)e(but)i(omits)f(the)g(last)g ! (w)o(ord.)137 1943 y(If)i(a)g(w)o(ord)f(designator)h(is)h(supplied)h ! (without)e(an)g(ev)o(en)o(t)f(sp)q(eci\014cation,)j(the)e(previous)h ! (command)75 1998 y(is)e(used)f(as)g(the)h(ev)o(en)o(t.)75 ! 2113 y Fi(1.1.3)30 b(Mo)r(di\014ers)137 2210 y Fp(After)10 ! b(the)h(optional)g(w)o(ord)e(designator,)i(y)o(ou)f(can)h(add)f(a)g ! (sequence)i(of)e(one)g(or)g(more)g(of)g(the)g(follo)o(wing)75 ! 2265 y(mo)q(di\014ers,)16 b(eac)o(h)f(preceded)i(b)o(y)e(a)g(`)p ! Fo(:)p Fp('.)75 2346 y Fo(h)216 b Fp(Remo)o(v)o(e)14 ! b(a)h(trailing)h(pathname)f(comp)q(onen)o(t,)g(lea)o(ving)h(only)g(the) ! f(head.)75 2427 y Fo(t)216 b Fp(Remo)o(v)o(e)14 b(all)i(leading)h ! (pathname)e(comp)q(onen)o(ts,)g(lea)o(ving)h(the)f(tail.)75 ! 2508 y Fo(r)216 b Fp(Remo)o(v)o(e)14 b(a)h(trailing)h(su\016x)f(of)g ! (the)g(form)g(`)p Fo(.)p Fj(su\016x)s Fp(',)f(lea)o(ving)i(the)f ! (basename.)75 2589 y Fo(e)216 b Fp(Remo)o(v)o(e)14 b(all)i(but)g(the)f ! (trailing)h(su\016x.)75 2670 y Fo(p)216 b Fp(Prin)o(t)15 ! b(the)g(new)h(command)f(but)g(do)g(not)g(execute)h(it.)p eop ! %%Page: 3 5 ! 3 4 bop 75 -58 a Fp(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o ! (ely)1007 b(3)75 149 y Fo(s/)p Fj(old)r Fo(/)p Fj(new)t ! Fo(/)315 204 y Fp(Substitute)17 b Fj(new)j Fp(for)c(the)h(\014rst)e(o)q ! (ccurrence)j(of)e Fj(old)i Fp(in)f(the)g(ev)o(en)o(t)f(line.)25 ! b(An)o(y)16 b(delimiter)315 259 y(ma)o(y)c(b)q(e)h(used)g(in)g(place)g ! (of)f(`)p Fo(/)p Fp('.)18 b(The)13 b(delimiter)h(ma)o(y)e(b)q(e)h ! (quoted)f(in)i Fj(old)g Fp(and)f Fj(new)k Fp(with)12 ! b(a)315 314 y(single)j(bac)o(kslash.)20 b(If)15 b(`)p ! Fo(&)p Fp(')e(app)q(ears)h(in)h Fj(new)p Fp(,)f(it)g(is)h(replaced)g(b) ! o(y)f Fj(old)p Fp(.)20 b(A)14 b(single)i(bac)o(kslash)315 ! 369 y(will)j(quote)e(the)h(`)p Fo(&)p Fp('.)25 b(The)17 ! b(\014nal)i(delimiter)g(is)f(optional)g(if)f(it)h(is)g(the)f(last)g(c)o ! (haracter)g(on)315 423 y(the)e(input)h(line.)75 503 y ! Fo(&)216 b Fp(Rep)q(eat)15 b(the)g(previous)h(substitution.)75 ! 583 y Fo(g)216 b Fp(Cause)19 b(c)o(hanges)h(to)e(b)q(e)i(applied)h(o)o ! (v)o(er)e(the)g(en)o(tire)h(ev)o(en)o(t)f(line.)34 b(Used)20 ! b(in)g(conjunction)315 638 y(with)c(`)p Fo(s)p Fp(',)d(as)i(in)h ! Fo(gs/)p Fj(old)r Fo(/)p Fj(new)t Fo(/)p Fp(,)f(or)g(with)g(`)p ! Fo(&)p Fp('.)p eop ! %%Page: 4 6 ! 4 5 bop 75 -58 a Fp(4)1347 b(GNU)15 b(History)g(Library)p eop ! %%Page: 5 7 ! 5 6 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (History)889 b(5)75 149 y Fl(2)41 b(Programming)28 b(with)e(GNU)i ! (History)137 269 y Fp(This)17 b(c)o(hapter)f(describ)q(es)i(ho)o(w)e ! (to)f(in)o(terface)i(programs)e(that)g(y)o(ou)h(write)g(with)h(the)f ! Fk(gnu)g Fp(History)75 324 y(Library)l(.)24 b(It)17 b(should)g(b)q(e)g ! (considered)h(a)e(tec)o(hnical)i(guide.)25 b(F)l(or)15 ! b(information)i(on)f(the)h(in)o(teractiv)o(e)g(use)75 ! 379 y(of)e Fk(gnu)g Fp(History)l(,)g(see)g(Chapter)g(1)g([Using)g ! (History)g(In)o(teractiv)o(ely],)h(page)f(1.)75 509 y ! Fn(2.1)33 b(In)n(tro)r(duction)24 b(to)e(History)137 ! 607 y Fp(Man)o(y)11 b(programs)f(read)h(input)i(from)d(the)i(user)f(a)g ! (line)i(at)e(a)g(time.)19 b(The)12 b Fk(gnu)f Fp(History)g(library)h ! (is)g(able)75 661 y(to)i(k)o(eep)g(trac)o(k)g(of)g(those)g(lines,)i ! (asso)q(ciate)e(arbitrary)g(data)g(with)g(eac)o(h)h(line,)h(and)e ! (utilize)j(information)75 716 y(from)d(previous)i(lines)h(in)f(comp)q ! (osing)g(new)f(ones.)137 784 y(The)f(programmer)f(using)h(the)g ! (History)g(library)g(has)g(a)o(v)m(ailable)h(functions)g(for)e(remem)o ! (b)q(ering)h(lines)75 839 y(on)c(a)g(history)h(list,)g(asso)q(ciating)g ! (arbitrary)f(data)f(with)i(a)f(line,)j(remo)o(ving)d(lines)i(from)d ! (the)i(list,)h(searc)o(hing)75 894 y(through)17 b(the)h(list)g(for)f(a) ! h(line)h(con)o(taining)f(an)g(arbitrary)f(text)g(string,)h(and)g ! (referencing)h(an)o(y)e(line)i(in)75 949 y(the)c(list)i(directly)l(.)22 ! b(In)16 b(addition,)g(a)f(history)g Fj(expansion)h Fp(function)h(is)e ! (a)o(v)m(ailable)i(whic)o(h)g(pro)o(vides)f(for)e(a)75 ! 1003 y(consisten)o(t)h(user)h(in)o(terface)f(across)g(di\013eren)o(t)g ! (programs.)137 1072 y(The)f(user)h(using)f(programs)f(written)h(with)g ! (the)g(History)g(library)h(has)f(the)g(b)q(ene\014t)h(of)e(a)h ! (consisten)o(t)75 1126 y(user)20 b(in)o(terface)f(with)h(a)f(set)h(of)f ! (w)o(ell-kno)o(wn)h(commands)g(for)e(manipulating)k(the)d(text)g(of)g ! (previous)75 1181 y(lines)c(and)f(using)h(that)e(text)g(in)i(new)f ! (commands.)19 b(The)14 b(basic)h(history)e(manipulation)j(commands)d ! (are)75 1236 y(similar)j(to)f(the)g(history)g(substitution)h(pro)o ! (vided)g(b)o(y)g Fo(csh)p Fp(.)137 1304 y(If)f(the)g(programmer)f ! (desires,)h(he)g(can)g(use)g(the)g(Readline)h(library)l(,)g(whic)o(h)f ! (includes)j(some)c(history)75 1359 y(manipulation)j(b)o(y)e(default,)g ! (and)h(has)f(the)g(added)h(adv)m(an)o(tage)f(of)f(command)h(line)i ! (editing.)137 1427 y(Before)i(declaring)i(an)o(y)d(functions)i(using)g ! (an)o(y)f(functionalit)o(y)h(the)f(History)g(library)h(pro)o(vides)f ! (in)75 1482 y(other)14 b(co)q(de,)h(an)f(application)i(writer)e(should) ! i(include)g(the)f(\014le)g Fo()d ! Fp(in)j(an)o(y)f(\014le)75 1537 y(that)d(uses)h(the)h(History)e ! (library's)i(features.)18 b(It)12 b(supplies)i(extern)e(declarations)h ! (for)e(all)i(of)f(the)g(library's)75 1591 y(public)17 ! b(functions)f(and)g(v)m(ariables,)g(and)f(declares)h(all)g(of)f(the)h ! (public)h(data)d(structures.)75 1722 y Fn(2.2)33 b(History)22 ! b(Storage)137 1819 y Fp(The)16 b(history)f(list)h(is)g(an)f(arra)o(y)f ! (of)g(history)i(en)o(tries.)k(A)15 b(history)g(en)o(try)g(is)h ! (declared)g(as)f(follo)o(ws:)195 1885 y Fo(typedef)23 ! b(void)g(*histdata_t;)195 1988 y(typedef)g(struct)g(_hist_entry)f({)243 ! 2040 y(char)h(*line;)243 2092 y(histdata_t)f(data;)195 ! 2144 y(})i(HIST_ENTRY;)137 2212 y Fp(The)16 b(history)f(list)h(itself)g ! (migh)o(t)f(therefore)g(b)q(e)h(declared)g(as)195 2277 ! y Fo(HIST_ENTRY)22 b(**the_history_list;)137 2345 y Fp(The)16 ! b(state)e(of)h(the)g(History)g(library)h(is)g(encapsulated)g(in)o(to)f ! (a)g(single)i(structure:)195 2411 y Fo(/*)219 2462 y(*)24 ! b(A)f(structure)g(used)g(to)h(pass)f(around)g(the)h(current)f(state)g ! (of)g(the)h(history.)219 2514 y(*/)195 2566 y(typedef)f(struct)g ! (_hist_state)f({)243 2618 y(HIST_ENTRY)g(**entries;)h(/*)g(Pointer)g ! (to)h(the)f(entries)g(themselves.)g(*/)243 2670 y(int)g(offset;)262 ! b(/*)23 b(The)h(location)f(pointer)f(within)h(this)h(array.)f(*/)p eop ! %%Page: 6 8 ! 6 7 bop 75 -58 a Fp(6)1347 b(GNU)15 b(History)g(Library)243 ! 149 y Fo(int)23 b(length;)262 b(/*)23 b(Number)g(of)h(elements)f ! (within)g(this)g(array.)g(*/)243 201 y(int)g(size;)310 ! b(/*)23 b(Number)g(of)h(slots)f(allocated)g(to)g(this)h(array.)f(*/)243 ! 253 y(int)g(flags;)195 305 y(})h(HISTORY_STATE;)137 372 ! y Fp(If)16 b(the)f(\015ags)g(mem)o(b)q(er)g(includes)j ! Fo(HS_STIFLED)p Fp(,)13 b(the)i(history)h(has)f(b)q(een)h(sti\015ed.)75 ! 498 y Fn(2.3)33 b(History)22 b(F)-6 b(unctions)137 593 ! y Fp(This)13 b(section)g(describ)q(es)h(the)e(calling)i(sequence)g(for) ! e(the)g(v)m(arious)h(functions)g(exp)q(orted)f(b)o(y)h(the)f ! Fk(gnu)75 648 y Fp(History)j(library)l(.)75 758 y Fi(2.3.1)30 ! b(Initializing)20 b(History)h(and)f(State)g(Managemen)n(t)137 ! 853 y Fp(This)e(section)g(describ)q(es)h(functions)f(used)g(to)e ! (initialize)21 b(and)c(manage)g(the)g(state)g(of)g(the)g(History)75 ! 908 y(library)f(when)g(y)o(ou)f(w)o(an)o(t)f(to)g(use)i(the)f(history)g ! (functions)h(in)g(y)o(our)f(program.)1762 1021 y(F)l(unction)-1861 ! b Fh(void)20 b Fg(using)p 333 1021 18 3 v 20 w(history)j ! Ff(\()p Fo(void)p Ff(\))195 1075 y Fp(Begin)e(a)f(session)g(in)h(whic)o ! (h)g(the)f(history)g(functions)g(migh)o(t)g(b)q(e)h(used.)34 ! b(This)21 b(initializes)i(the)195 1130 y(in)o(teractiv)o(e)16 ! b(v)m(ariables.)1762 1243 y(F)l(unction)-1861 b Fh(HISTORY_STATE)21 ! b(*)e Fg(history)p 657 1243 V 21 w(get)p 755 1243 V 21 ! w(history)p 951 1243 V 21 w(state)j Ff(\()p Fo(void)p ! Ff(\))195 1298 y Fp(Return)15 b(a)g(structure)g(describing)i(the)e ! (curren)o(t)g(state)f(of)h(the)g(input)i(history)l(.)1762 ! 1411 y(F)l(unction)-1861 b Fh(void)20 b Fg(history)p ! 377 1411 V 20 w(set)p 468 1411 V 21 w(history)p 664 1411 ! V 21 w(state)j Ff(\()p Fo(HISTORY_STATE)13 b(*state)p ! Ff(\))195 1466 y Fp(Set)i(the)h(state)e(of)h(the)g(history)g(list)h ! (according)g(to)e Fj(state)p Fp(.)75 1575 y Fi(2.3.2)30 ! b(History)20 b(List)h(Managemen)n(t)137 1671 y Fp(These)11 ! b(functions)h(manage)e(individual)k(en)o(tries)d(on)g(the)g(history)f ! (list,)i(or)f(set)f(parameters)g(managing)75 1725 y(the)15 ! b(list)h(itself.)1762 1838 y(F)l(unction)-1861 b Fh(void)20 ! b Fg(add)p 294 1838 V 20 w(history)j Ff(\()p Fo(const)14 ! b(char)g(*string)p Ff(\))195 1893 y Fp(Place)i Fj(string)i ! Fp(at)d(the)g(end)h(of)e(the)h(history)g(list.)21 b(The)15 ! b(asso)q(ciated)g(data)g(\014eld)h(\(if)f(an)o(y\))f(is)i(set)f(to)195 ! 1948 y Fo(NULL)p Fp(.)1762 2061 y(F)l(unction)-1861 b ! Fh(HIST_ENTRY)21 b(*)e Fg(remo)n(v)n(e)p 584 2061 V 20 ! w(history)k Ff(\()p Fo(int)14 b(which)p Ff(\))195 2115 ! y Fp(Remo)o(v)o(e)22 b(history)g(en)o(try)h(at)f(o\013set)g ! Fj(whic)o(h)h Fp(from)f(the)h(history)l(.)43 b(The)23 ! b(remo)o(v)o(ed)f(elemen)o(t)h(is)195 2170 y(returned)16 ! b(so)e(y)o(ou)h(can)h(free)f(the)g(line,)i(data,)d(and)h(con)o(taining) ! h(structure.)1762 2283 y(F)l(unction)-1861 b Fh(HIST_ENTRY)21 ! b(*)e Fg(replace)p 580 2283 V 22 w(history)p 777 2283 ! V 20 w(en)n(try)24 b Ff(\()p Fo(int)14 b(which,)g(const)h(char)283 ! 2338 y(*line,)f(histdata_t)g(data)p Ff(\))195 2393 y ! Fp(Mak)o(e)f(the)h(history)g(en)o(try)f(at)g(o\013set)g ! Fj(whic)o(h)i Fp(ha)o(v)o(e)e Fj(line)18 b Fp(and)c Fj(data)p ! Fp(.)19 b(This)14 b(returns)g(the)g(old)g(en)o(try)195 ! 2448 y(so)19 b(y)o(ou)f(can)i(disp)q(ose)g(of)e(the)i(data.)30 ! b(In)20 b(the)f(case)g(of)g(an)g(in)o(v)m(alid)i Fj(whic)o(h)p ! Fp(,)g(a)d Fo(NULL)h Fp(p)q(oin)o(ter)g(is)195 2502 y(returned.)1762 ! 2615 y(F)l(unction)-1861 b Fh(void)20 b Fg(clear)p 320 ! 2615 V 21 w(history)j Ff(\()p Fo(void)p Ff(\))195 2670 ! y Fp(Clear)15 b(the)h(history)f(list)h(b)o(y)f(deleting)i(all)f(the)f ! (en)o(tries.)p eop ! %%Page: 7 9 ! 7 8 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (History)889 b(7)1762 149 y(F)l(unction)-1861 b Fh(void)20 ! b Fg(sti\015e)p 320 149 18 3 v 21 w(history)j Ff(\()p ! Fo(int)14 b(max)p Ff(\))195 204 y Fp(Sti\015e)i(the)f(history)h(list,)f ! (remem)o(b)q(ering)h(only)g(the)f(last)g Fj(max)j Fp(en)o(tries.)1762 ! 302 y(F)l(unction)-1861 b Fh(int)20 b Fg(unsti\015e)p ! 358 302 V 21 w(history)i Ff(\()p Fo(void)p Ff(\))195 ! 357 y Fp(Stop)14 b(sti\015ing)g(the)g(history)l(.)20 ! b(This)14 b(returns)f(the)h(previously-set)h(maxim)o(um)f(n)o(um)o(b)q ! (er)g(of)f(history)195 411 y(en)o(tries)h(\(as)e(set)i(b)o(y)f ! Fo(stifle_history\(\))p Fp(\).)k(The)c(v)m(alue)i(is)f(p)q(ositiv)o(e)g ! (if)g(the)g(history)f(w)o(as)f(sti\015ed,)195 466 y(negativ)o(e)j(if)h ! (it)f(w)o(asn't.)1762 564 y(F)l(unction)-1861 b Fh(int)20 ! b Fg(history)p 351 564 V 20 w(is)p 409 564 V 21 w(sti\015ed)k ! Ff(\()p Fo(void)p Ff(\))195 619 y Fp(Returns)15 b(non-zero)g(if)h(the)f ! (history)g(is)h(sti\015ed,)g(zero)f(if)g(it)h(is)g(not.)75 ! 719 y Fi(2.3.3)30 b(Information)19 b(Ab)r(out)i(the)f(History)h(List) ! 137 811 y Fp(These)13 b(functions)h(return)f(information)g(ab)q(out)f ! (the)h(en)o(tire)h(history)e(list)i(or)e(individual)k(list)e(en)o ! (tries.)1762 909 y(F)l(unction)-1861 b Fh(HIST_ENTRY)21 ! b(**)e Fg(history)p 605 909 V 21 w(list)24 b Ff(\()p ! Fo(void)p Ff(\))195 964 y Fp(Return)15 b(a)g Fo(NULL)f ! Fp(terminated)i(arra)o(y)e(of)h Fo(HIST_ENTRY)f(*)h Fp(whic)o(h)h(is)f ! (the)h(curren)o(t)f(input)h(history)l(.)195 1018 y(Elemen)o(t)g(0)f(of) ! f(this)i(list)g(is)g(the)f(b)q(eginning)i(of)e(time.)20 ! b(If)c(there)f(is)h(no)f(history)l(,)g(return)g Fo(NULL)p ! Fp(.)1762 1116 y(F)l(unction)-1861 b Fh(int)20 b Fg(where)p ! 325 1116 V 20 w(history)j Ff(\()p Fo(void)p Ff(\))195 ! 1171 y Fp(Returns)15 b(the)g(o\013set)f(of)h(the)g(curren)o(t)g ! (history)g(elemen)o(t.)1762 1268 y(F)l(unction)-1861 ! b Fh(HIST_ENTRY)21 b(*)e Fg(curren)n(t)p 587 1268 V 21 ! w(history)k Ff(\()p Fo(void)p Ff(\))195 1323 y Fp(Return)12 ! b(the)h(history)f(en)o(try)g(at)g(the)g(curren)o(t)h(p)q(osition,)g(as) ! f(determined)i(b)o(y)e Fo(where_history\(\))p Fp(.)195 ! 1378 y(If)j(there)h(is)f(no)h(en)o(try)e(there,)h(return)g(a)g ! Fo(NULL)g Fp(p)q(oin)o(ter.)1762 1475 y(F)l(unction)-1861 ! b Fh(HIST_ENTRY)21 b(*)e Fg(history)p 579 1475 V 21 w(get)j ! Ff(\()p Fo(int)15 b(offset)p Ff(\))195 1530 y Fp(Return)20 ! b(the)h(history)g(en)o(try)f(at)h(p)q(osition)g Fj(o\013set)p ! Fp(,)g(starting)f(from)g Fo(history_base)f Fp(\(see)i(Sec-)195 ! 1585 y(tion)15 b(2.4)f([History)g(V)l(ariables],)h(page)g(10\).)j(If)d ! (there)g(is)g(no)g(en)o(try)f(there,)h(or)f(if)h Fj(o\013set)g ! Fp(is)g(greater)195 1640 y(than)g(the)g(history)g(length,)h(return)f(a) ! g Fo(NULL)g Fp(p)q(oin)o(ter.)1762 1737 y(F)l(unction)-1861 ! b Fh(int)20 b Fg(history)p 351 1737 V 20 w(total)p 487 ! 1737 V 22 w(b)n(ytes)j Ff(\()p Fo(void)p Ff(\))195 1792 ! y Fp(Return)13 b(the)h(n)o(um)o(b)q(er)g(of)g(b)o(ytes)f(that)g(the)h ! (primary)g(history)g(en)o(tries)g(are)g(using.)20 b(This)14 ! b(function)195 1847 y(returns)h(the)g(sum)h(of)e(the)i(lengths)f(of)g ! (all)h(the)g(lines)g(in)g(the)g(history)l(.)75 1947 y ! Fi(2.3.4)30 b(Mo)n(ving)21 b(Around)f(the)h(History)g(List)137 ! 2040 y Fp(These)16 b(functions)g(allo)o(w)f(the)g(curren)o(t)h(index)g ! (in)o(to)f(the)h(history)f(list)h(to)e(b)q(e)i(set)f(or)g(c)o(hanged.) ! 1762 2137 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p ! 351 2137 V 20 w(set)p 442 2137 V 21 w(p)r(os)h Ff(\()p ! Fo(int)15 b(pos)p Ff(\))195 2192 y Fp(Set)j(the)h(curren)o(t)f(history) ! g(o\013set)g(to)f Fj(p)q(os)p Fp(,)i(an)f(absolute)h(index)h(in)o(to)e ! (the)g(list.)30 b(Returns)18 b(1)g(on)195 2247 y(success,)d(0)g(if)h ! Fj(p)q(os)h Fp(is)f(less)g(than)f(zero)g(or)g(greater)f(than)h(the)g(n) ! o(um)o(b)q(er)h(of)e(history)i(en)o(tries.)1762 2344 ! y(F)l(unction)-1861 b Fh(HIST_ENTRY)21 b(*)e Fg(previous)p ! 615 2344 V 20 w(history)k Ff(\()p Fo(void)p Ff(\))195 ! 2399 y Fp(Bac)o(k)14 b(up)h(the)g(curren)o(t)f(history)g(o\013set)g(to) ! f(the)i(previous)g(history)f(en)o(try)l(,)g(and)h(return)f(a)g(p)q(oin) ! o(ter)195 2454 y(to)h(that)f(en)o(try)l(.)20 b(If)15 ! b(there)g(is)h(no)f(previous)h(en)o(try)l(,)f(return)g(a)g ! Fo(NULL)g Fp(p)q(oin)o(ter.)1762 2552 y(F)l(unction)-1861 ! b Fh(HIST_ENTRY)21 b(*)e Fg(next)p 514 2552 V 21 w(history)k ! Ff(\()p Fo(void)p Ff(\))195 2606 y Fp(Mo)o(v)o(e)17 b(the)h(curren)o(t) ! f(history)h(o\013set)f(forw)o(ard)f(to)h(the)h(next)g(history)g(en)o ! (try)l(,)g(and)g(return)f(the)h(a)195 2661 y(p)q(oin)o(ter)e(to)e(that) ! h(en)o(try)l(.)k(If)d(there)f(is)h(no)f(next)g(en)o(try)l(,)g(return)g ! (a)g Fo(NULL)g Fp(p)q(oin)o(ter.)p eop ! %%Page: 8 10 ! 8 9 bop 75 -58 a Fp(8)1347 b(GNU)15 b(History)g(Library)75 ! 149 y Fi(2.3.5)30 b(Searc)n(hing)21 b(the)f(History)h(List)137 ! 245 y Fp(These)14 b(functions)g(allo)o(w)g(searc)o(hing)g(of)e(the)i ! (history)f(list)h(for)f(en)o(tries)h(con)o(taining)g(a)f(sp)q(eci\014c) ! i(string.)75 300 y(Searc)o(hing)f(ma)o(y)g(b)q(e)g(p)q(erformed)g(b)q ! (oth)g(forw)o(ard)e(and)i(bac)o(kw)o(ard)f(from)g(the)h(curren)o(t)g ! (history)f(p)q(osition.)75 355 y(The)j(searc)o(h)f(ma)o(y)g(b)q(e)i ! Fj(anc)o(hored)p Fp(,)e(meaning)h(that)f(the)h(string)g(m)o(ust)f(matc) ! o(h)g(at)g(the)h(b)q(eginning)i(of)d(the)75 410 y(history)g(en)o(try)l ! (.)1762 524 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p ! 351 524 18 3 v 20 w(searc)n(h)j Ff(\()p Fo(const)14 b(char)h(*string,)f ! (int)h(direction)p Ff(\))195 578 y Fp(Searc)o(h)g(the)f(history)g(for)g ! Fj(string)p Fp(,)g(starting)g(at)g(the)h(curren)o(t)f(history)g ! (o\013set.)19 b(If)c Fj(direction)g Fp(is)g(less)195 ! 633 y(than)20 b(0,)g(then)h(the)f(searc)o(h)f(is)i(through)f(previous)g ! (en)o(tries,)i(otherwise)e(through)f(subsequen)o(t)195 ! 688 y(en)o(tries.)h(If)c Fj(string)j Fp(is)d(found,)f(then)g(the)h ! (curren)o(t)f(history)g(index)h(is)g(set)f(to)g(that)f(history)h(en)o ! (try)l(,)195 743 y(and)i(the)g(v)m(alue)h(returned)f(is)g(the)g ! (o\013set)e(in)j(the)f(line)h(of)e(the)h(en)o(try)g(where)g ! Fj(string)j Fp(w)o(as)c(found.)195 798 y(Otherwise,)g(nothing)f(is)h(c) ! o(hanged,)f(and)h(a)e(-1)h(is)h(returned.)1762 912 y(F)l(unction)-1861 ! b Fh(int)20 b Fg(history)p 351 912 V 20 w(searc)n(h)p ! 527 912 V 21 w(pre\014x)i Ff(\()p Fo(const)14 b(char)h(*string,)f(int)h ! (direction)p Ff(\))195 966 y Fp(Searc)o(h)20 b(the)h(history)f(for)g ! Fj(string)p Fp(,)h(starting)e(at)h(the)g(curren)o(t)h(history)f ! (o\013set.)34 b(The)20 b(searc)o(h)g(is)195 1021 y(anc)o(hored:)g(matc) ! o(hing)14 b(lines)j(m)o(ust)d(b)q(egin)i(with)f Fj(string)p ! Fp(.)20 b(If)15 b Fj(direction)h Fp(is)f(less)g(than)g(0,)f(then)h(the) ! 195 1076 y(searc)o(h)g(is)i(through)e(previous)h(en)o(tries,)g ! (otherwise)g(through)f(subsequen)o(t)h(en)o(tries.)22 ! b(If)16 b Fj(string)j Fp(is)195 1131 y(found,)e(then)g(the)f(curren)o ! (t)h(history)f(index)i(is)f(set)f(to)g(that)g(en)o(try)l(,)g(and)h(the) ! f(return)h(v)m(alue)h(is)f(0.)195 1186 y(Otherwise,)f(nothing)f(is)h(c) ! o(hanged,)f(and)h(a)e(-1)h(is)h(returned.)1762 1300 y(F)l(unction)-1861 ! b Fh(int)20 b Fg(history)p 351 1300 V 20 w(searc)n(h)p ! 527 1300 V 21 w(p)r(os)h Ff(\()p Fo(const)14 b(char)h(*string,)f(int)h ! (direction,)f(int)283 1355 y(pos)p Ff(\))195 1409 y Fp(Searc)o(h)j(for) ! g Fj(string)k Fp(in)d(the)f(history)g(list,)h(starting)e(at)h ! Fj(p)q(os)p Fp(,)g(an)g(absolute)h(index)g(in)o(to)f(the)h(list.)195 ! 1464 y(If)g Fj(direction)i Fp(is)e(negativ)o(e,)h(the)f(searc)o(h)g ! (pro)q(ceeds)g(bac)o(kw)o(ard)g(from)f Fj(p)q(os)p Fp(,)h(otherwise)h ! (forw)o(ard.)195 1519 y(Returns)j(the)g(absolute)g(index)h(of)f(the)g ! (history)g(elemen)o(t)h(where)f Fj(string)k Fp(w)o(as)21 ! b(found,)j(or)d(-1)195 1574 y(otherwise.)75 1684 y Fi(2.3.6)30 ! b(Managing)20 b(the)g(History)h(File)137 1780 y Fp(The)16 ! b(History)g(library)h(can)e(read)h(the)g(history)g(from)f(and)h(write)g ! (it)g(to)f(a)h(\014le.)22 b(This)17 b(section)f(do)q(cu-)75 ! 1835 y(men)o(ts)f(the)g(functions)h(for)f(managing)g(a)g(history)g ! (\014le.)1762 1949 y(F)l(unction)-1861 b Fh(int)20 b ! Fg(read)p 286 1949 V 20 w(history)i Ff(\()p Fo(const)15 ! b(char)f(*filename)p Ff(\))195 2003 y Fp(Add)h(the)g(con)o(ten)o(ts)f ! (of)h Fj(\014lename)j Fp(to)c(the)h(history)g(list,)g(a)g(line)h(at)f ! (a)f(time.)20 b(If)15 b Fj(\014lename)k Fp(is)c Fo(NULL)p ! Fp(,)195 2058 y(then)h(read)f(from)f(`)p Fo(~/.history)p ! Fp('.)k(Returns)d(0)f(if)i(successful,)g(or)f Fo(errno)f ! Fp(if)i(not.)1762 2172 y(F)l(unction)-1861 b Fh(int)20 ! b Fg(read)p 286 2172 V 20 w(history)p 481 2172 V 20 w(range)i ! Ff(\()p Fo(const)14 b(char)h(*filename,)f(int)h(from,)f(int)h(to)p ! Ff(\))195 2227 y Fp(Read)f(a)f(range)h(of)f(lines)j(from)d ! Fj(\014lename)p Fp(,)i(adding)g(them)f(to)f(the)h(history)g(list.)20 ! b(Start)13 b(reading)i(at)195 2282 y(line)g Fj(from)d ! Fp(and)h(end)h(at)f Fj(to)p Fp(.)18 b(If)c Fj(from)e ! Fp(is)i(zero,)f(start)f(at)g(the)h(b)q(eginning.)22 b(If)13 ! b Fj(to)i Fp(is)e(less)h(than)f Fj(from)p Fp(,)195 2337 ! y(then)i(read)g(un)o(til)i(the)e(end)g(of)g(the)g(\014le.)21 ! b(If)15 b Fj(\014lename)k Fp(is)d Fo(NULL)p Fp(,)e(then)h(read)g(from)f ! (`)p Fo(~/.history)p Fp('.)195 2392 y(Returns)h(0)g(if)g(successful,)h ! (or)f Fo(errno)g Fp(if)g(not.)1762 2506 y(F)l(unction)-1861 ! b Fh(int)20 b Fg(write)p 304 2506 V 22 w(history)i Ff(\()p ! Fo(const)15 b(char)f(*filename)p Ff(\))195 2560 y Fp(W)l(rite)k(the)f ! (curren)o(t)g(history)h(to)f Fj(\014lename)p Fp(,)h(o)o(v)o(erwriting)f ! Fj(\014lename)k Fp(if)d(necessary)l(.)27 b(If)18 b Fj(\014lename)195 ! 2615 y Fp(is)f Fo(NULL)p Fp(,)e(then)h(write)h(the)f(history)g(list)h ! (to)e(`)p Fo(~/.history)p Fp('.)21 b(Returns)16 b(0)f(on)h(success,)h ! (or)f Fo(errno)195 2670 y Fp(on)f(a)g(read)g(or)g(write)g(error.)p eop ! %%Page: 9 11 ! 9 10 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (History)889 b(9)1762 149 y(F)l(unction)-1861 b Fh(int)20 ! b Fg(app)r(end)p 360 149 18 3 v 19 w(history)j Ff(\()p ! Fo(int)14 b(nelements,)g(const)h(char)f(*filename)p Ff(\))195 ! 204 y Fp(App)q(end)19 b(the)e(last)g Fj(nelemen)o(ts)k ! Fp(of)16 b(the)i(history)f(list)h(to)f Fj(\014lename)p ! Fp(.)27 b(If)18 b Fj(\014lename)j Fp(is)d Fo(NULL)p Fp(,)f(then)195 ! 259 y(app)q(end)f(to)f(`)p Fo(~/.history)p Fp('.)j(Returns)c(0)h(on)g ! (success,)h(or)e Fo(errno)h Fp(on)g(a)g(read)g(or)g(write)g(error.)1762 ! 404 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p 351 ! 404 V 20 w(truncate)p 582 404 V 21 w(\014le)k Ff(\()p ! Fo(const)14 b(char)h(*filename,)e(int)i(nlines)p Ff(\))195 ! 459 y Fp(T)l(runcate)k(the)h(history)f(\014le)h Fj(\014lename)p ! Fp(,)h(lea)o(ving)f(only)g(the)f(last)g Fj(nlines)k Fp(lines.)34 ! b(If)20 b Fj(\014lename)i Fp(is)195 513 y Fo(NULL)p Fp(,)14 ! b(then)i(`)p Fo(~/.history)p Fp(')d(is)j(truncated.)j(Returns)c(0)g(on) ! g(success,)h(or)e Fo(errno)h Fp(on)g(failure.)75 644 ! y Fi(2.3.7)30 b(History)20 b(Expansion)137 750 y Fp(These)c(functions)g ! (implemen)o(t)g(history)f(expansion.)1762 895 y(F)l(unction)-1861 ! b Fh(int)20 b Fg(history)p 351 895 V 20 w(expand)j Ff(\()p ! Fo(char)14 b(*string,)g(char)h(**output)p Ff(\))195 949 ! y Fp(Expand)j Fj(string)p Fp(,)f(placing)h(the)g(result)f(in)o(to)g ! Fj(output)p Fp(,)h(a)e(p)q(oin)o(ter)i(to)f(a)g(string)g(\(see)g ! (Section)h(1.1)195 1004 y([History)d(In)o(teraction],)f(page)h(1\).)20 ! b(Returns:)195 1098 y Fo(0)216 b Fp(If)19 b(no)g(expansions)g(to)q(ok)f ! (place)i(\(or,)e(if)i(the)e(only)i(c)o(hange)e(in)i(the)f(text)f(w)o ! (as)g(the)435 1152 y(remo)o(v)m(al)d(of)g(escap)q(e)h(c)o(haracters)e ! (preceding)i(the)f(history)g(expansion)h(c)o(haracter\);)195 ! 1241 y Fo(1)216 b Fp(if)16 b(expansions)g(did)g(tak)o(e)e(place;)195 ! 1330 y Fo(-1)192 b Fp(if)16 b(there)f(w)o(as)f(an)h(error)g(in)h ! (expansion;)195 1419 y Fo(2)216 b Fp(if)14 b(the)g(returned)g(line)i ! (should)f(b)q(e)f(displa)o(y)o(ed,)h(but)f(not)f(executed,)i(as)e(with) ! h(the)g Fo(:p)435 1474 y Fp(mo)q(di\014er)i(\(see)f(Section)h(1.1.3)e ! ([Mo)q(di\014ers],)h(page)g(2\).)195 1568 y(If)g(an)h(error)e(o)q ! (curred)i(in)g(expansion,)f(then)h Fj(output)g Fp(con)o(tains)f(a)g ! (descriptiv)o(e)i(error)d(message.)1762 1713 y(F)l(unction)-1861 ! b Fh(char)20 b(*)f Fg(get)p 324 1713 V 21 w(history)p ! 520 1713 V 20 w(ev)n(en)n(t)25 b Ff(\()p Fo(const)14 ! b(char)h(*string,)f(int)g(*cindex,)g(int)283 1767 y(qchar)p ! Ff(\))195 1822 y Fp(Returns)22 b(the)h(text)f(of)h(the)f(history)h(ev)o ! (en)o(t)g(b)q(eginning)h(at)f Fj(string)j Fo(+)d Fj(*cindex)p ! Fp(.)43 b Fj(*cindex)27 b Fp(is)195 1877 y(mo)q(di\014ed)16 ! b(to)e(p)q(oin)o(t)h(to)f(after)g(the)h(ev)o(en)o(t)f(sp)q(eci\014er.) ! 22 b(A)o(t)14 b(function)h(en)o(try)l(,)g Fj(cindex)k ! Fp(p)q(oin)o(ts)c(to)f(the)195 1932 y(index)19 b(in)o(to)f ! Fj(string)k Fp(where)c(the)g(history)g(ev)o(en)o(t)g(sp)q ! (eci\014cation)h(b)q(egins.)30 b Fj(qc)o(har)21 b Fp(is)d(a)g(c)o ! (haracter)195 1987 y(that)13 b(is)h(allo)o(w)o(ed)g(to)e(end)i(the)g ! (ev)o(en)o(t)f(sp)q(eci\014cation)j(in)e(addition)g(to)f(the)h ! (\\normal")f(terminating)195 2041 y(c)o(haracters.)1762 ! 2186 y(F)l(unction)-1861 b Fh(char)20 b(**)f Fg(history)p ! 448 2186 V 21 w(tok)n(enize)25 b Ff(\()p Fo(const)14 ! b(char)h(*string)p Ff(\))195 2241 y Fp(Return)g(an)g(arra)o(y)g(of)g ! (tok)o(ens)g(parsed)g(out)g(of)g Fj(string)p Fp(,)g(m)o(uc)o(h)h(as)f ! (the)g(shell)i(migh)o(t.)k(The)15 b(tok)o(ens)195 2296 ! y(are)h(split)h(on)e(the)h(c)o(haracters)g(in)g(the)g ! Fj(history)p 1007 2296 14 2 v 17 w(w)o(ord)p 1122 2296 ! V 15 w(delimiters)k Fp(v)m(ariable,)d(and)f(shell)i(quoting)195 ! 2351 y(con)o(v)o(en)o(tions)d(are)g(ob)q(ey)o(ed.)1762 ! 2496 y(F)l(unction)-1861 b Fh(char)20 b(*)f Fg(history)p ! 422 2496 18 3 v 21 w(arg)p 524 2496 V 19 w(extract)24 ! b Ff(\()p Fo(int)14 b(first,)h(int)g(last,)f(const)g(char)283 ! 2550 y(*string)p Ff(\))195 2605 y Fp(Extract)19 b(a)h(string)g(segmen)o ! (t)g(consisting)h(of)f(the)g Fj(\014rst)h Fp(through)f ! Fj(last)h Fp(argumen)o(ts)e(presen)o(t)h(in)195 2660 ! y Fj(string)p Fp(.)g(Argumen)o(ts)15 b(are)f(split)j(using)f ! Fo(history_tokenize)p Fp(.)p eop ! %%Page: 10 12 ! 10 11 bop 75 -58 a Fp(10)1324 b(GNU)15 b(History)g(Library)75 ! 149 y Fn(2.4)33 b(History)22 b(V)-6 b(ariables)137 251 ! y Fp(This)18 b(section)f(describ)q(es)i(the)e(externally-visible)k(v)m ! (ariables)d(exp)q(orted)f(b)o(y)g(the)g Fk(gnu)g Fp(History)g(Li-)75 ! 306 y(brary)l(.)1773 438 y(V)l(ariable)-1861 b Fh(int)20 ! b Fg(history)p 351 438 18 3 v 20 w(base)195 493 y Fp(The)15 ! b(logical)i(o\013set)d(of)h(the)g(\014rst)g(en)o(try)g(in)h(the)f ! (history)g(list.)1773 625 y(V)l(ariable)-1861 b Fh(int)20 ! b Fg(history)p 351 625 V 20 w(length)195 680 y Fp(The)15 ! b(n)o(um)o(b)q(er)h(of)f(en)o(tries)g(curren)o(tly)h(stored)f(in)h(the) ! f(history)g(list.)1773 812 y(V)l(ariable)-1861 b Fh(int)20 ! b Fg(history)p 351 812 V 20 w(max)p 478 812 V 20 w(en)n(tries)195 ! 867 y Fp(The)j(maxim)o(um)g(n)o(um)o(b)q(er)g(of)g(history)g(en)o ! (tries.)43 b(This)24 b(m)o(ust)e(b)q(e)i(c)o(hanged)f(using)h ! Fo(stifle_)195 922 y(history\(\))p Fp(.)1773 1054 y(V)l(ariable)-1861 ! b Fh(char)20 b Fg(history)p 377 1054 V 20 w(expansion)p ! 644 1054 V 21 w(c)n(har)195 1109 y Fp(The)e(c)o(haracter)f(that)g(in)o ! (tro)q(duces)h(a)f(history)h(ev)o(en)o(t.)27 b(The)18 ! b(default)g(is)g(`)p Fo(!)p Fp('.)26 b(Setting)18 b(this)g(to)f(0)195 ! 1164 y(inhibits)g(history)f(expansion.)1773 1296 y(V)l(ariable)-1861 ! b Fh(char)20 b Fg(history)p 377 1296 V 20 w(subst)p 529 ! 1296 V 20 w(c)n(har)195 1351 y Fp(The)h(c)o(haracter)e(that)h(in)o(v)o ! (ok)o(es)g(w)o(ord)g(substitution)h(if)g(found)f(at)g(the)h(start)e(of) ! h(a)g(line.)37 b(The)195 1406 y(default)16 b(is)f(`)p ! Fo(^)p Fp('.)1773 1538 y(V)l(ariable)-1861 b Fh(char)20 ! b Fg(history)p 377 1538 V 20 w(commen)n(t)p 627 1538 ! V 19 w(c)n(har)195 1593 y Fp(During)f(tok)o(enization,)h(if)f(this)h(c) ! o(haracter)e(is)h(seen)h(as)e(the)h(\014rst)g(c)o(haracter)f(of)g(a)h ! (w)o(ord,)g(then)195 1648 y(it)j(and)g(all)g(subsequen)o(t)h(c)o ! (haracters)d(up)j(to)e(a)g(newline)i(are)f(ignored,)h(suppressing)g ! (history)195 1702 y(expansion)16 b(for)f(the)g(remainder)h(of)f(the)g ! (line.)21 b(This)16 b(is)g(disabled)h(b)o(y)e(default.)1773 ! 1835 y(V)l(ariable)-1861 b Fh(char)20 b(*)f Fg(history)p ! 422 1835 V 21 w(w)n(ord)p 567 1835 V 20 w(delimiters)195 ! 1889 y Fp(The)14 b(c)o(haracters)f(that)g(separate)g(tok)o(ens)h(for)f ! Fo(history_tokenize\(\))p Fp(.)k(The)d(default)g(v)m(alue)h(is)f ! Fo(")195 1944 y(\\t\\n\(\)<>;&|")p Fp(.)1773 2077 y(V)l(ariable)-1861 ! b Fh(char)20 b(*)f Fg(history)p 422 2077 V 21 w(no)p ! 504 2077 V 20 w(expand)p 704 2077 V 20 w(c)n(hars)195 ! 2131 y Fp(The)c(list)h(of)e(c)o(haracters)g(whic)o(h)i(inhibit)h ! (history)e(expansion)h(if)f(found)h(immediately)g(follo)o(wing)195 ! 2186 y Fj(history)p 336 2186 14 2 v 16 w(expansion)p ! 547 2186 V 18 w(c)o(har)p Fp(.)j(The)d(default)f(is)h(space,)f(tab,)g ! (newline,)h(carriage)f(return,)g(and)h(`)p Fo(=)p Fp('.)1773 ! 2318 y(V)l(ariable)-1861 b Fh(char)20 b(*)f Fg(history)p ! 422 2318 18 3 v 21 w(searc)n(h)p 599 2318 V 20 w(delimiter)p ! 843 2318 V 23 w(c)n(hars)195 2373 y Fp(The)13 b(list)h(of)f(additional) ! h(c)o(haracters)e(whic)o(h)i(can)g(delimit)g(a)f(history)g(searc)o(h)g ! (string,)g(in)h(addition)195 2428 y(to)h(space,)g(T)l(AB,)g(`)p ! Fo(:)p Fp(')f(and)h(`)p Fo(?)p Fp(')g(in)h(the)f(case)g(of)g(a)g ! (substring)g(searc)o(h.)20 b(The)c(default)f(is)h(empt)o(y)l(.)1773 ! 2560 y(V)l(ariable)-1861 b Fh(int)20 b Fg(history)p 351 ! 2560 V 20 w(quotes)p 533 2560 V 21 w(inhibit)p 717 2560 ! V 23 w(expansion)195 2615 y Fp(If)15 b(non-zero,)f(single-quoted)j(w)o ! (ords)c(are)i(not)f(scanned)h(for)f(the)h(history)g(expansion)g(c)o ! (haracter.)195 2670 y(The)g(default)h(v)m(alue)h(is)e(0.)p eop ! %%Page: 11 13 ! 11 12 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (History)867 b(11)1773 149 y(V)l(ariable)-1861 b Fh(rl_linebuf_func_t) ! 22 b(*)d Fg(history)p 762 149 18 3 v 21 w(inhibit)p 946 ! 149 V 23 w(expansion)p 1216 149 V 20 w(function)195 204 ! y Fp(This)e(should)h(b)q(e)f(set)g(to)f(the)g(address)h(of)f(a)h ! (function)g(that)f(tak)o(es)g(t)o(w)o(o)f(argumen)o(ts:)22 ! b(a)17 b Fo(char)d(*)195 259 y Fp(\()p Fj(string)t Fp(\))e(and)i(an)f ! Fo(int)g Fp(index)i(in)o(to)e(that)f(string)i(\()p Fj(i)r ! Fp(\).)19 b(It)14 b(should)g(return)f(a)g(non-zero)h(v)m(alue)g(if)g ! (the)195 314 y(history)h(expansion)g(starting)f(at)g ! Fj(string[i])i Fp(should)g(not)e(b)q(e)h(p)q(erformed;)g(zero)f(if)h ! (the)g(expansion)195 369 y(should)i(b)q(e)g(done.)22 ! b(It)16 b(is)h(in)o(tended)g(for)e(use)i(b)o(y)f(applications)h(lik)o ! (e)g(Bash)f(that)g(use)g(the)g(history)195 423 y(expansion)g(c)o ! (haracter)f(for)f(additional)j(purp)q(oses.)j(By)c(default,)f(this)h(v) ! m(ariable)g(is)g(set)f(to)f Fo(NULL)p Fp(.)75 543 y Fn(2.5)33 ! b(History)22 b(Programming)h(Example)137 637 y Fp(The)16 ! b(follo)o(wing)g(program)e(demonstrates)g(simple)j(use)e(of)g(the)g ! Fk(gnu)g Fp(History)g(Library)l(.)195 698 y Fo(#include)23 ! b()195 750 y(#include)g()195 ! 854 y(main)g(\(argc,)g(argv\))314 906 y(int)h(argc;)314 ! 958 y(char)g(**argv;)195 1010 y({)243 1061 y(char)f(line[1024],)f(*t;) ! 243 1113 y(int)h(len,)g(done)h(=)g(0;)243 1217 y(line[0])f(=)g(0;)243 ! 1321 y(using_history)f(\(\);)243 1373 y(while)h(\(!done\))290 ! 1425 y({)338 1477 y(printf)g(\("history$)g("\);)338 1528 ! y(fflush)g(\(stdout\);)338 1580 y(t)h(=)g(fgets)f(\(line,)g(sizeof)g ! (\(line\))g(-)h(1,)f(stdin\);)338 1632 y(if)h(\(t)f(&&)h(*t\))386 ! 1684 y({)434 1736 y(len)f(=)h(strlen)f(\(t\);)434 1788 ! y(if)g(\(t[len)g(-)h(1])g(==)f('\\n'\))481 1840 y(t[len)h(-)f(1])h(=)g ! ('\\0';)386 1892 y(})338 1995 y(if)g(\(!t\))386 2047 ! y(strcpy)f(\(line,)g("quit"\);)338 2151 y(if)h(\(line[0]\))386 ! 2203 y({)434 2255 y(char)f(*expansion;)434 2307 y(int)g(result;)434 ! 2411 y(result)g(=)g(history_expand)f(\(line,)h(&expansion\);)434 ! 2462 y(if)g(\(result\))481 2514 y(fprintf)g(\(stderr,)g("\045s\\n",)g ! (expansion\);)434 2618 y(if)g(\(result)g(<)h(0)g(||)f(result)g(==)h ! (2\))481 2670 y({)p eop ! %%Page: 12 14 ! 12 13 bop 75 -58 a Fp(12)1324 b(GNU)15 b(History)g(Library)529 ! 149 y Fo(free)23 b(\(expansion\);)529 201 y(continue;)481 ! 253 y(})434 357 y(add_history)f(\(expansion\);)434 409 ! y(strncpy)h(\(line,)g(expansion,)f(sizeof)h(\(line\))g(-)h(1\);)434 ! 461 y(free)f(\(expansion\);)386 513 y(})338 616 y(if)h(\(strcmp)f ! (\(line,)g("quit"\))g(==)g(0\))386 668 y(done)g(=)h(1;)338 ! 720 y(else)f(if)h(\(strcmp)f(\(line,)g("save"\))g(==)h(0\))386 ! 772 y(write_history)e(\("history_file"\);)338 824 y(else)h(if)h ! (\(strcmp)f(\(line,)g("read"\))g(==)h(0\))386 876 y(read_history)e ! (\("history_file"\);)338 928 y(else)h(if)h(\(strcmp)f(\(line,)g ! ("list"\))g(==)h(0\))386 980 y({)434 1032 y(register)e(HIST_ENTRY)h ! (**the_list;)434 1083 y(register)f(int)i(i;)434 1187 ! y(the_list)e(=)i(history_list)e(\(\);)434 1239 y(if)h(\(the_list\))481 ! 1291 y(for)h(\(i)f(=)h(0;)g(the_list[i];)e(i++\))529 ! 1343 y(printf)h(\("\045d:)g(\045s\\n",)g(i)h(+)g(history_base,)e ! (the_list[i]->line\);)386 1395 y(})338 1447 y(else)h(if)h(\(strncmp)f ! (\(line,)g("delete",)g(6\))g(==)h(0\))386 1499 y({)434 ! 1550 y(int)f(which;)434 1602 y(if)g(\(\(sscanf)g(\(line)g(+)h(6,)f ! ("\045d",)h(&which\)\))e(==)i(1\))481 1654 y({)529 1706 ! y(HIST_ENTRY)f(*entry)g(=)g(remove_history)f(\(which\);)529 ! 1758 y(if)i(\(!entry\))577 1810 y(fprintf)f(\(stderr,)f("No)i(such)f ! (entry)g(\045d\\n",)g(which\);)529 1862 y(else)577 1914 ! y({)625 1966 y(free)g(\(entry->line\);)625 2017 y(free)g(\(entry\);)577 ! 2069 y(})481 2121 y(})434 2173 y(else)481 2225 y({)529 ! 2277 y(fprintf)g(\(stderr,)g("non-numeric)f(arg)h(given)h(to)f ! (`delete'\\n"\);)481 2329 y(})386 2381 y(})290 2433 y(})195 ! 2484 y(})p eop ! %%Page: 13 15 ! 13 14 bop 75 -58 a Fp(App)q(endix)17 b(A:)e(Concept)g(Index)1196 ! b(13)75 149 y Fl(App)r(endix)25 b(A)41 b(Concept)27 b(Index)75 ! 321 y Fn(A)75 383 y Fe(anc)o(hored)14 b(searc)o(h)s Fd(.)8 ! b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g ! (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)16 ! b Fe(8)75 507 y Fn(E)75 568 y Fe(ev)o(en)o(t)d(designators)g ! Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) ! h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b ! Fe(1)1012 321 y Fn(H)1012 431 y Fe(history)15 b(ev)o(en)o(ts)d ! Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) ! g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24 ! b Fe(1)1012 500 y(history)15 b(expansion)8 b Fd(.)g(.)e(.)g(.)g(.)h(.)f ! (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) ! f(.)g(.)g(.)g(.)g(.)21 b Fe(1)1012 568 y(History)14 b(Searc)o(hing)6 ! b Fd(.)j(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) ! g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b ! Fe(8)p eop ! %%Page: 14 16 ! 14 15 bop 75 -58 a Fp(14)1324 b(GNU)15 b(History)g(Library)p eop ! %%Page: 15 17 ! 15 16 bop 75 -58 a Fp(App)q(endix)17 b(B:)e(F)l(unction)h(and)g(V)l ! (ariable)g(Index)919 b(15)75 149 y Fl(App)r(endix)25 ! b(B)41 b(F)-7 b(unction)26 b(and)h(V)-7 b(ariable)26 ! b(Index)75 321 y Fn(A)75 382 y Fc(add_histor)o(y)8 b ! Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g ! (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23 ! b Fe(6)75 428 y Fc(append_his)o(to)o(ry)8 b Fd(.)s(.)f(.)f(.)g(.)g(.)g ! (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) ! g(.)g(.)g(.)h(.)f(.)g(.)21 b Fe(9)75 557 y Fn(C)75 618 ! y Fc(clear_hist)o(or)o(y)6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g ! (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) ! f(.)g(.)g(.)22 b Fe(6)75 664 y Fc(current_hi)o(st)o(ory)7 ! b Fd(.)s(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) ! f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 b ! Fe(7)75 793 y Fn(G)75 854 y Fc(get_histor)o(y_)o(eve)o(nt)5 ! b Fd(.)t(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) ! h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 b Fe(9)75 ! 984 y Fn(H)75 1044 y Fc(history_ar)o(g_)o(ext)o(ra)o(ct)5 ! b Fd(.)s(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) ! g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)18 b Fe(9)75 1090 y Fc(history_ba)o(se) ! 6 b Fd(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g ! (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22 ! b Fe(10)75 1136 y Fc(history_co)o(mm)o(ent)o(_c)o(har)s ! Fd(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) ! f(.)g(.)g(.)g(.)g(.)h(.)16 b Fe(10)75 1182 y Fc(history_ex)o(pa)o(nd)8 ! b Fd(.)s(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) ! g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21 ! b Fe(9)75 1227 y Fc(history_ex)o(pa)o(nsi)o(on)o(_ch)o(ar)8 ! b Fd(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) ! h(.)f(.)g(.)24 b Fe(10)75 1273 y Fc(history_ge)o(t)8 ! b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) ! g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23 ! b Fe(7)75 1319 y Fc(history_ge)o(t_)o(his)o(to)o(ry_)o(sta)o(te)6 ! b Fd(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) ! f(.)22 b Fe(6)75 1364 y Fc(history_in)o(hi)o(bit)o(_e)o(xpa)o(nsi)o(on) ! o(_fu)o(nc)o(tio)o(n)9 b Fd(.)d(.)g(.)g(.)g(.)g(.)h(.)24 ! b Fe(11)75 1410 y Fc(history_is)o(_s)o(tif)o(le)o(d)6 ! b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) ! g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fe(7)75 1456 ! y Fc(history_le)o(ng)o(th)8 b Fd(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) ! g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g ! (.)g(.)21 b Fe(10)75 1501 y Fc(history_li)o(st)6 b Fd(.)h(.)f(.)g(.)g ! (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) ! g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Fe(7)75 ! 1547 y Fc(history_ma)o(x_)o(ent)o(ri)o(es)t Fd(.)s(.)6 ! b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g ! (.)g(.)g(.)h(.)f(.)17 b Fe(10)75 1593 y Fc(history_no)o(_e)o(xpa)o(nd)o ! (_ch)o(ars)7 b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g ! (.)g(.)g(.)g(.)g(.)h(.)23 b Fe(10)75 1638 y Fc(history_qu)o(ot)o(es_)o ! (in)o(hib)o(it_)o(ex)o(pan)o(si)o(on)t Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g ! (.)g(.)g(.)17 b Fe(10)75 1684 y Fc(history_se)o(ar)o(ch)8 ! b Fd(.)s(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) ! g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21 ! b Fe(8)75 1730 y Fc(history_se)o(ar)o(ch_)o(de)o(lim)o(ite)o(r_)o(cha)o ! (rs)5 b Fd(.)s(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 ! b Fe(10)75 1776 y Fc(history_se)o(ar)o(ch_)o(po)o(s)6 ! b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) ! g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fe(8)75 1821 ! y Fc(history_se)o(ar)o(ch_)o(pr)o(efi)o(x)s Fd(.)t(.)6 ! b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g ! (.)h(.)f(.)g(.)16 b Fe(8)75 1867 y Fc(history_se)o(t_)o(his)o(to)o(ry_) ! o(sta)o(te)6 b Fd(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g ! (.)g(.)g(.)h(.)f(.)22 b Fe(6)75 1913 y Fc(history_se)o(t_)o(pos)7 ! b Fd(.)s(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) ! f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 b ! Fe(7)1012 321 y Fc(history_sub)o(st)o(_ch)o(ar)t Fd(.)t(.)6 ! b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f ! (.)g(.)g(.)g(.)g(.)g(.)19 b Fe(10)1012 368 y Fc(history_tok)o(en)o(ize) ! 6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g ! (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)20 b Fe(9)1012 ! 414 y Fc(history_tot)o(al)o(_by)o(te)o(s)5 b Fd(.)s(.)h(.)g(.)h(.)f(.)g ! (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) ! g(.)18 b Fe(7)1012 460 y Fc(history_tru)o(nc)o(ate)o(_f)o(ile)s ! Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) ! h(.)f(.)g(.)g(.)g(.)g(.)17 b Fe(9)1012 507 y Fc(history_wor)o(d_)o(del) ! o(im)o(ite)o(rs)7 b Fd(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g ! (.)g(.)g(.)h(.)f(.)g(.)g(.)24 b Fe(10)1012 640 y Fn(N)1012 ! 702 y Fc(next_histor)o(y)7 b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g ! (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) ! g(.)g(.)h(.)f(.)23 b Fe(7)1012 836 y Fn(P)1012 898 y ! Fc(previous_hi)o(st)o(ory)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) ! g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f ! (.)20 b Fe(7)1012 1031 y Fn(R)1012 1094 y Fc(read_histor)o(y)7 ! b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) ! h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)23 ! b Fe(8)1012 1140 y Fc(read_histor)o(y_)o(ran)o(ge)5 b ! Fd(.)s(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g ! (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)19 b Fe(8)1012 1186 ! y Fc(remove_hist)o(or)o(y)9 b Fd(.)s(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) ! g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g ! (.)g(.)g(.)22 b Fe(6)1012 1233 y Fc(replace_his)o(to)o(ry_)o(en)o(try)s ! Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) ! h(.)f(.)g(.)g(.)g(.)g(.)17 b Fe(6)1012 1366 y Fn(S)1012 ! 1429 y Fc(stifle_hist)o(or)o(y)9 b Fd(.)s(.)d(.)g(.)g(.)g(.)h(.)f(.)g ! (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) ! f(.)g(.)g(.)g(.)22 b Fe(7)1012 1562 y Fn(U)1012 1624 ! y Fc(unstifle_hi)o(st)o(ory)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f ! (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) ! f(.)20 b Fe(7)1012 1671 y Fc(using_histo)o(ry)6 b Fd(.)g(.)g(.)g(.)g(.) ! g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g ! (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 b Fe(6)1012 1804 ! y Fn(W)1012 1866 y Fc(where_histo)o(ry)6 b Fd(.)g(.)g(.)g(.)g(.)g(.)h ! (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) ! h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 b Fe(7)1012 1913 y Fc(write_histo)o(ry)6 ! b Fd(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) ! g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 ! b Fe(8)p eop ! %%Page: 16 18 ! 16 17 bop 75 -58 a Fp(16)1324 b(GNU)15 b(History)g(Library)p eop ! %%Page: -1 19 ! -1 18 bop 1862 -58 a Fp(i)75 149 y Fl(T)-7 b(able)27 ! b(of)f(Con)n(ten)n(ts)75 320 y Fn(1)67 b(Using)22 b(History)h(In)n ! (teractiv)n(ely)9 b Fb(.)k(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h ! (.)f(.)g(.)g(.)h(.)31 b Fn(1)224 389 y Fp(1.1)45 b(History)15 ! b(Expansion)5 b Fa(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f ! (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) ! f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)19 b Fp(1)374 444 y(1.1.1)44 ! b(Ev)o(en)o(t)14 b(Designators)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h ! (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) ! f(.)h(.)f(.)h(.)26 b Fp(1)374 499 y(1.1.2)44 b(W)l(ord)15 ! b(Designators)5 b Fa(.)h(.)i(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) ! f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h ! (.)19 b Fp(2)374 553 y(1.1.3)44 b(Mo)q(di\014ers)t Fa(.)8 ! b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f ! (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) ! f(.)h(.)f(.)19 b Fp(2)75 675 y Fn(2)67 b(Programming)23 ! b(with)g(GNU)f(History)16 b Fb(.)10 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f ! (.)g(.)38 b Fn(5)224 743 y Fp(2.1)45 b(In)o(tro)q(duction)16 ! b(to)f(History)10 b Fa(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f ! (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) ! f(.)h(.)f(.)h(.)24 b Fp(5)224 798 y(2.2)45 b(History)15 ! b(Storage)c Fa(.)d(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f ! (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) ! g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26 b Fp(5)224 853 ! y(2.3)45 b(History)15 b(F)l(unctions)d Fa(.)c(.)f(.)h(.)f(.)h(.)f(.)h ! (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) ! f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26 ! b Fp(6)374 907 y(2.3.1)44 b(Initializing)18 b(History)d(and)h(State)e ! (Managemen)o(t)g Fa(.)7 b(.)h(.)g(.)f(.)h(.)f(.)29 b ! Fp(6)374 962 y(2.3.2)44 b(History)15 b(List)h(Managemen)o(t)d ! Fa(.)7 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) ! h(.)f(.)h(.)f(.)h(.)f(.)29 b Fp(6)374 1017 y(2.3.3)44 ! b(Information)15 b(Ab)q(out)g(the)h(History)f(List)c ! Fa(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26 ! b Fp(7)374 1072 y(2.3.4)44 b(Mo)o(ving)15 b(Around)g(the)g(History)g ! (List)c Fa(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f ! (.)h(.)25 b Fp(7)374 1127 y(2.3.5)44 b(Searc)o(hing)16 ! b(the)f(History)g(List)7 b Fa(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f ! (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22 ! b Fp(8)374 1181 y(2.3.6)44 b(Managing)15 b(the)g(History)g(File)6 ! b Fa(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) ! f(.)h(.)f(.)h(.)f(.)h(.)20 b Fp(8)374 1236 y(2.3.7)44 ! b(History)15 b(Expansion)9 b Fa(.)f(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h ! (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) ! h(.)f(.)24 b Fp(9)224 1291 y(2.4)45 b(History)15 b(V)l(ariables)6 ! b Fa(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) ! f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f ! (.)h(.)f(.)h(.)f(.)21 b Fp(10)224 1346 y(2.5)45 b(History)15 ! b(Programming)f(Example)7 b Fa(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h ! (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22 ! b Fp(11)75 1467 y Fn(App)r(endix)i(A)67 b(Concept)22 ! b(Index)17 b Fb(.)10 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g ! (.)h(.)f(.)g(.)38 b Fn(13)75 1602 y(App)r(endix)24 b(B)67 ! b(F)-6 b(unction)25 b(and)e(V)-6 b(ariable)24 b(Index)16 ! b Fb(.)10 b(.)g(.)g(.)38 b Fn(15)p eop ! %%Page: -2 20 ! -2 19 bop 75 -58 a Fp(ii)1346 b(GNU)15 b(History)g(Library)p eop %%Trailer --- 1820,3300 ---- %%EndSetup %%Page: 1 1 ! 1 0 bop 150 1318 a Fs(GNU)65 b(History)i(Library)p 150 ! 1418 3600 34 v 1920 1515 a Fr(Edition)29 b(5.0,)j(for)e ! Fq(History)e(Library)h Fr(V)-8 b(ersion)30 b(5.0.)3218 ! 1623 y(Jan)m(uary)g(2004)150 4935 y Fp(Chet)45 b(Ramey)-11 ! b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150 ! 5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F) ! -11 b(oundation)p 150 5141 3600 17 v eop %%Page: 2 2 ! 2 1 bop 150 3024 a Fr(This)34 b(do)s(cumen)m(t)i(describ)s(es)e(the)i ! (GNU)g(History)g(library)d(\(v)m(ersion)j(5.0,)i(28)f(Jan)m(uary)e ! (2004\),)40 b(a)c(pro-)150 3133 y(gramming)22 b(to)s(ol)g(that)h(pro)m ! (vides)e(a)i(consisten)m(t)g(user)e(in)m(terface)i(for)f(recalling)f ! (lines)g(of)h(previously)e(t)m(yp)s(ed)150 3243 y(input.)150 ! 3377 y(Cop)m(yrigh)m(t)602 3374 y(c)577 3377 y Fo(\015)30 ! b Fr(1988-2004)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8 ! b(oundation,)31 b(Inc.)150 3512 y(P)m(ermission)f(is)i(gran)m(ted)h(to) ! f(mak)m(e)i(and)d(distribute)f(v)m(erbatim)i(copies)g(of)g(this)f(man)m ! (ual)h(pro)m(vided)f(the)150 3621 y(cop)m(yrigh)m(t)g(notice)f(and)g ! (this)f(p)s(ermission)f(notice)i(are)h(preserv)m(ed)f(on)h(all)e ! (copies.)390 3756 y(P)m(ermission)k(is)i(gran)m(ted)g(to)h(cop)m(y)-8 ! b(,)38 b(distribute)33 b(and/or)i(mo)s(dify)e(this)h(do)s(cumen)m(t)h ! (under)390 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8 ! b(ree)39 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)38 ! b(1.1)h(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)27 ! b(published)c(b)m(y)28 b(the)f(F)-8 b(ree)29 b(Soft)m(w)m(are)f(F)-8 ! b(oundation;)29 b(with)d(no)h(In)m(v)-5 b(arian)m(t)27 ! b(Sections,)390 4085 y(with)i(the)i(F)-8 b(ron)m(t-Co)m(v)m(er)33 ! b(texts)e(b)s(eing)f(\\A)h(GNU)g(Man)m(ual,")g(and)f(with)f(the)i(Bac)m ! (k-Co)m(v)m(er)390 4194 y(T)-8 b(exts)33 b(as)g(in)e(\(a\))i(b)s(elo)m ! (w.)46 b(A)33 b(cop)m(y)g(of)f(the)h(license)e(is)h(included)d(in)i ! (the)i(section)f(en)m(titled)390 4304 y(\\GNU)f(F)-8 ! b(ree)32 b(Do)s(cumen)m(tation)f(License.")390 4438 y(\(a\))39 ! b(The)f(FSF's)g(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext)39 b(is:)55 ! b(\\Y)-8 b(ou)39 b(ha)m(v)m(e)g(freedom)f(to)h(cop)m(y)f(and)g(mo)s ! (dify)390 4548 y(this)31 b(GNU)j(Man)m(ual,)f(lik)m(e)f(GNU)h(soft)m(w) ! m(are.)49 b(Copies)31 b(published)e(b)m(y)j(the)h(F)-8 ! b(ree)34 b(Soft)m(w)m(are)390 4658 y(F)-8 b(oundation)30 ! b(raise)g(funds)e(for)j(GNU)g(dev)m(elopmen)m(t.")150 ! 4902 y(Published)c(b)m(y)j(the)h(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 ! b(oundation)150 5011 y(59)31 b(T)-8 b(emple)30 b(Place,)h(Suite)e(330,) ! 150 5121 y(Boston,)j(MA)e(02111-1307)150 5230 y(USA)p eop ! %%Page: -1 3 ! -1 2 bop 3725 -116 a Fr(i)150 299 y Fn(T)-13 b(able)54 ! b(of)g(Con)l(ten)l(ts)150 641 y Fp(1)135 b(Using)45 b(History)h(In)l ! (teractiv)l(ely)18 b Fm(.)23 b(.)c(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h ! (.)f(.)h(.)f(.)h(.)f(.)63 b Fp(1)449 778 y Fr(1.1)92 ! b(History)30 b(Expansion)9 b Fl(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)39 b ! Fr(1)748 888 y(1.1.1)93 b(Ev)m(en)m(t)31 b(Designators)24 ! b Fl(.)15 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 ! b Fr(1)748 997 y(1.1.2)93 b(W)-8 b(ord)30 b(Designators)9 ! b Fl(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)39 ! b Fr(1)748 1107 y(1.1.3)93 b(Mo)s(di\014ers)9 b Fl(.)k(.)i(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)38 ! b Fr(2)150 1349 y Fp(2)135 b(Programming)46 b(with)f(GNU)g(History)33 ! b Fm(.)19 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)76 ! b Fp(5)449 1486 y Fr(2.1)92 b(In)m(tro)s(duction)29 b(to)i(History)19 ! b Fl(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 ! b Fr(5)449 1596 y(2.2)92 b(History)30 b(Storage)25 b ! Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b Fr(5)449 1705 y(2.3)92 ! b(History)30 b(F)-8 b(unctions)23 b Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) ! f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 ! b Fr(6)748 1815 y(2.3.1)93 b(Initializing)27 b(History)j(and)f(State)j ! (Managemen)m(t)f Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)59 b ! Fr(6)748 1924 y(2.3.2)93 b(History)30 b(List)f(Managemen)m(t)i ! Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)h(.)f(.)58 b Fr(6)748 2034 y(2.3.3)93 ! b(Information)29 b(Ab)s(out)h(the)g(History)g(List)23 ! b Fl(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)52 ! b Fr(7)748 2144 y(2.3.4)93 b(Mo)m(ving)30 b(Around)f(the)i(History)f ! (List)21 b Fl(.)14 b(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)51 b Fr(7)748 2253 y(2.3.5)93 b(Searc)m(hing)29 ! b(the)i(History)f(List)15 b Fl(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)44 ! b Fr(8)748 2363 y(2.3.6)93 b(Managing)30 b(the)h(History)f(File)11 ! b Fl(.)j(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)41 b Fr(8)748 2472 y(2.3.7)93 ! b(History)30 b(Expansion)18 b Fl(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)48 b Fr(9)449 2582 y(2.4)92 b(History)30 ! b(V)-8 b(ariables)11 b Fl(.)k(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)40 b Fr(10)449 ! 2692 y(2.5)92 b(History)30 b(Programming)f(Example)13 ! b Fl(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)42 b Fr(11)150 2934 ! y Fp(App)t(endix)i(A)99 b(Cop)l(ying)46 b(This)e(Man)l(ual)29 ! b Fm(.)20 b(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)74 ! b Fp(13)449 3071 y Fr(A.1)92 b(GNU)31 b(F)-8 b(ree)31 ! b(Do)s(cumen)m(tation)g(License)c Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 ! b Fr(13)748 3181 y(A.1.1)92 b(ADDENDUM:)33 b(Ho)m(w)e(to)g(use)f(this)f ! (License)h(for)h(y)m(our)930 3290 y(do)s(cumen)m(ts)c ! Fl(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)57 b Fr(19)150 3533 y Fp(App)t(endix)44 ! b(B)105 b(Concept)46 b(Index)16 b Fm(.)j(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.) ! h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)61 b Fp(21)150 3802 ! y(App)t(endix)44 b(C)104 b(F)-11 b(unction)44 b(and)h(V)-11 ! b(ariable)46 b(Index)13 b Fm(.)19 b(.)g(.)h(.)f(.)58 ! b Fp(23)p eop ! %%Page: -2 4 ! -2 3 bop 150 -116 a Fr(ii)2689 b(GNU)31 b(History)f(Library)p eop ! %%Page: 1 5 ! 1 4 bop 150 -116 a Fr(Chapter)30 b(1:)41 b(Using)29 b(History)h(In)m ! (teractiv)m(ely)2014 b(1)150 299 y Fn(1)80 b(Using)54 ! b(History)g(In)l(teractiv)l(ely)275 562 y Fr(This)31 ! b(c)m(hapter)j(describ)s(es)d(ho)m(w)i(to)h(use)f(the)g ! Fk(gnu)g Fr(History)g(Library)e(in)m(teractiv)m(ely)-8 ! b(,)34 b(from)f(a)h(user's)150 672 y(standp)s(oin)m(t.)75 ! b(It)42 b(should)e(b)s(e)i(considered)f(a)h(user's)g(guide.)75 ! b(F)-8 b(or)43 b(information)d(on)i(using)f(the)h Fk(gnu)150 ! 781 y Fr(History)35 b(Library)e(in)h(y)m(our)g(o)m(wn)i(programs,)g ! (see)f(Chapter)g(2)g([Programming)f(with)g(GNU)i(History],)150 ! 891 y(page)31 b(5.)150 1172 y Fp(1.1)68 b(History)46 ! b(Expansion)275 1426 y Fr(The)35 b(History)g(library)e(pro)m(vides)i(a) ! h(history)e(expansion)h(feature)h(that)g(is)f(similar)e(to)j(the)g ! (history)150 1536 y(expansion)21 b(pro)m(vided)f(b)m(y)i ! Fq(csh)p Fr(.)37 b(This)21 b(section)h(describ)s(es)e(the)i(syn)m(tax)h ! (used)e(to)h(manipulate)f(the)h(history)150 1645 y(information.)275 ! 1789 y(History)30 b(expansions)f(in)m(tro)s(duce)g(w)m(ords)h(from)g ! (the)h(history)e(list)g(in)m(to)h(the)h(input)e(stream,)i(making)150 ! 1899 y(it)f(easy)h(to)g(rep)s(eat)g(commands,)f(insert)f(the)i(argumen) ! m(ts)f(to)h(a)g(previous)e(command)h(in)m(to)h(the)f(curren)m(t)150 ! 2009 y(input)e(line,)h(or)i(\014x)f(errors)f(in)g(previous)g(commands)h ! (quic)m(kly)-8 b(.)275 2153 y(History)36 b(expansion)f(tak)m(es)j ! (place)f(in)e(t)m(w)m(o)j(parts.)59 b(The)36 b(\014rst)g(is)g(to)h ! (determine)f(whic)m(h)f(line)g(from)150 2262 y(the)42 ! b(history)e(list)g(should)f(b)s(e)i(used)f(during)f(substitution.)72 ! b(The)40 b(second)i(is)e(to)i(select)g(p)s(ortions)e(of)150 ! 2372 y(that)31 b(line)e(for)h(inclusion)e(in)m(to)i(the)h(curren)m(t)f ! (one.)42 b(The)30 b(line)f(selected)i(from)f(the)h(history)e(is)h ! (called)g(the)150 2481 y Fj(ev)m(en)m(t)p Fr(,)g(and)c(the)i(p)s ! (ortions)d(of)j(that)f(line)f(that)i(are)f(acted)i(up)s(on)c(are)j ! (called)e Fj(w)m(ords)p Fr(.)39 b(V)-8 b(arious)27 b ! Fj(mo)s(di\014ers)150 2591 y Fr(are)33 b(a)m(v)-5 b(ailable)33 ! b(to)g(manipulate)f(the)h(selected)g(w)m(ords.)48 b(The)32 ! b(line)g(is)g(brok)m(en)g(in)m(to)h(w)m(ords)g(in)e(the)j(same)150 ! 2701 y(fashion)22 b(that)h(Bash)g(do)s(es,)h(so)f(that)h(sev)m(eral)f ! (w)m(ords)f(surrounded)e(b)m(y)j(quotes)g(are)g(considered)f(one)h(w)m ! (ord.)150 2810 y(History)36 b(expansions)g(are)h(in)m(tro)s(duced)e(b)m ! (y)i(the)g(app)s(earance)g(of)g(the)g(history)e(expansion)h(c)m ! (haracter,)150 2920 y(whic)m(h)29 b(is)h(`)p Fq(!)p Fr(')g(b)m(y)g ! (default.)150 3163 y Fi(1.1.1)63 b(Ev)m(en)m(t)39 b(Designators)275 ! 3417 y Fr(An)30 b(ev)m(en)m(t)h(designator)g(is)e(a)i(reference)g(to)g ! (a)f(command)h(line)d(en)m(try)j(in)e(the)i(history)e(list.)150 ! 3591 y Fq(!)432 b Fr(Start)34 b(a)f(history)g(substitution,)f(except)i ! (when)f(follo)m(w)m(ed)g(b)m(y)g(a)h(space,)h(tab,)f(the)g(end)f(of)630 ! 3701 y(the)e(line,)e(or)h(`)p Fq(=)p Fr('.)150 3870 y ! Fq(!)p Fh(n)384 b Fr(Refer)30 b(to)i(command)e(line)e ! Fj(n)p Fr(.)150 4039 y Fq(!-)p Fh(n)336 b Fr(Refer)30 ! b(to)i(the)e(command)g Fj(n)g Fr(lines)f(bac)m(k.)150 ! 4208 y Fq(!!)384 b Fr(Refer)30 b(to)i(the)e(previous)f(command.)40 ! b(This)29 b(is)g(a)i(synon)m(ym)f(for)g(`)p Fq(!-1)p ! Fr('.)150 4377 y Fq(!)p Fh(string)144 b Fr(Refer)30 b(to)i(the)e(most)h ! (recen)m(t)g(command)f(starting)h(with)e Fj(string)p ! Fr(.)150 4546 y Fq(!?)p Fh(string)11 b Fq([?])630 4655 ! y Fr(Refer)34 b(to)g(the)f(most)h(recen)m(t)h(command)e(con)m(taining)g ! Fj(string)p Fr(.)49 b(The)33 b(trailing)f(`)p Fq(?)p ! Fr(')h(ma)m(y)i(b)s(e)630 4765 y(omitted)30 b(if)g(the)g ! Fj(string)37 b Fr(is)30 b(follo)m(w)m(ed)g(immediately)f(b)m(y)h(a)h ! (newline.)150 4934 y Fq(^)p Fh(string1)11 b Fq(^)p Fh(string2)g ! Fq(^)630 5044 y Fr(Quic)m(k)31 b(Substitution.)42 b(Rep)s(eat)32 ! b(the)g(last)g(command,)g(replacing)e Fj(string1)39 b ! Fr(with)30 b Fj(string2)p Fr(.)630 5153 y(Equiv)-5 b(alen)m(t)29 ! b(to)i Fq(!!:s/)p Fh(string1)11 b Fq(/)p Fh(string2)g ! Fq(/)p Fr(.)150 5322 y Fq(!#)384 b Fr(The)30 b(en)m(tire)g(command)g ! (line)f(t)m(yp)s(ed)h(so)h(far.)p eop ! %%Page: 2 6 ! 2 5 bop 150 -116 a Fr(2)2696 b(GNU)31 b(History)f(Library)150 ! 299 y Fi(1.1.2)63 b(W)-10 b(ord)41 b(Designators)275 ! 542 y Fr(W)-8 b(ord)35 b(designators)f(are)h(used)f(to)h(select)g ! (desired)e(w)m(ords)i(from)f(the)h(ev)m(en)m(t.)55 b(A)34 ! b(`)p Fq(:)p Fr(')h(separates)h(the)150 652 y(ev)m(en)m(t)41 ! b(sp)s(eci\014cation)d(from)i(the)f(w)m(ord)g(designator.)68 ! b(It)40 b(ma)m(y)g(b)s(e)f(omitted)h(if)e(the)i(w)m(ord)f(designator) ! 150 761 y(b)s(egins)32 b(with)h(a)i(`)p Fq(^)p Fr(',)g(`)p ! Fq($)p Fr(',)g(`)p Fq(*)p Fr(',)h(`)p Fq(-)p Fr(',)f(or)f(`)p ! Fq(\045)p Fr('.)52 b(W)-8 b(ords)35 b(are)f(n)m(um)m(b)s(ered)f(from)g ! (the)i(b)s(eginning)c(of)j(the)g(line,)150 871 y(with)k(the)i(\014rst)f ! (w)m(ord)g(b)s(eing)f(denoted)i(b)m(y)g(0)g(\(zero\).)70 ! b(W)-8 b(ords)39 b(are)h(inserted)f(in)m(to)g(the)h(curren)m(t)g(line) ! 150 980 y(separated)31 b(b)m(y)f(single)f(spaces.)275 ! 1114 y(F)-8 b(or)31 b(example,)150 1272 y Fq(!!)384 b ! Fr(designates)36 b(the)g(preceding)f(command.)57 b(When)35 ! b(y)m(ou)i(t)m(yp)s(e)f(this,)g(the)g(preceding)f(com-)630 ! 1381 y(mand)30 b(is)f(rep)s(eated)h(in)f(toto.)150 1539 ! y Fq(!!:$)288 b Fr(designates)22 b(the)h(last)f(argumen)m(t)h(of)f(the) ! h(preceding)e(command.)38 b(This)21 b(ma)m(y)i(b)s(e)e(shortened)630 ! 1648 y(to)31 b Fq(!$)p Fr(.)150 1806 y Fq(!fi:2)240 b ! Fr(designates)29 b(the)h(second)f(argumen)m(t)h(of)f(the)h(most)f ! (recen)m(t)i(command)e(starting)g(with)f(the)630 1916 ! y(letters)j Fq(fi)p Fr(.)275 2073 y(Here)f(are)h(the)g(w)m(ord)f ! (designators:)150 2231 y Fq(0)g(\(zero\))114 b Fr(The)30 ! b Fq(0)p Fr(th)g(w)m(ord.)40 b(F)-8 b(or)31 b(man)m(y)g(applications,)e ! (this)g(is)g(the)i(command)f(w)m(ord.)150 2388 y Fh(n)432 ! b Fr(The)30 b Fj(n)p Fr(th)g(w)m(ord.)150 2546 y Fq(^)432 ! b Fr(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)e(w)m(ord)h(1.)150 ! 2703 y Fq($)432 b Fr(The)30 b(last)g(argumen)m(t.)150 ! 2861 y Fq(\045)432 b Fr(The)30 b(w)m(ord)g(matc)m(hed)h(b)m(y)f(the)h ! (most)g(recen)m(t)g(`)p Fq(?)p Fh(string)11 b Fq(?)p ! Fr(')28 b(searc)m(h.)150 3019 y Fh(x)p Fq(-)p Fh(y)336 ! b Fr(A)30 b(range)h(of)g(w)m(ords;)f(`)p Fq(-)p Fh(y)11 ! b Fr(')30 b(abbreviates)g(`)p Fq(0-)p Fh(y)11 b Fr('.)150 ! 3176 y Fq(*)432 b Fr(All)26 b(of)i(the)g(w)m(ords,)g(except)h(the)e ! Fq(0)p Fr(th.)40 b(This)26 b(is)g(a)i(synon)m(ym)f(for)h(`)p ! Fq(1-$)p Fr('.)39 b(It)28 b(is)f(not)h(an)f(error)630 ! 3286 y(to)j(use)g(`)p Fq(*)p Fr(')f(if)g(there)h(is)f(just)g(one)h(w)m ! (ord)f(in)f(the)i(ev)m(en)m(t;)i(the)d(empt)m(y)i(string)d(is)h ! (returned)f(in)630 3395 y(that)j(case.)150 3553 y Fh(x)11 ! b Fq(*)373 b Fr(Abbreviates)30 b(`)p Fh(x)p Fq(-$)p Fr(')150 ! 3711 y Fh(x)p Fq(-)384 b Fr(Abbreviates)30 b(`)p Fh(x)p ! Fq(-$)p Fr(')g(lik)m(e)f(`)p Fh(x)11 b Fq(*)p Fr(',)31 ! b(but)e(omits)h(the)h(last)f(w)m(ord.)275 3868 y(If)j(a)h(w)m(ord)g ! (designator)f(is)g(supplied)e(without)i(an)h(ev)m(en)m(t)h(sp)s ! (eci\014cation,)f(the)g(previous)e(command)150 3978 y(is)d(used)h(as)h ! (the)f(ev)m(en)m(t.)150 4199 y Fi(1.1.3)63 b(Mo)s(di\014ers)275 ! 4442 y Fr(After)20 b(the)h(optional)f(w)m(ord)h(designator,)h(y)m(ou)f ! (can)g(add)f(a)h(sequence)g(of)g(one)g(or)g(more)g(of)g(the)f(follo)m ! (wing)150 4552 y(mo)s(di\014ers,)28 b(eac)m(h)k(preceded)e(b)m(y)g(a)h ! (`)p Fq(:)p Fr('.)150 4710 y Fq(h)432 b Fr(Remo)m(v)m(e)32 ! b(a)f(trailing)d(pathname)j(comp)s(onen)m(t,)g(lea)m(ving)f(only)f(the) ! i(head.)150 4867 y Fq(t)432 b Fr(Remo)m(v)m(e)32 b(all)d(leading)h ! (pathname)g(comp)s(onen)m(ts,)h(lea)m(ving)f(the)g(tail.)150 ! 5025 y Fq(r)432 b Fr(Remo)m(v)m(e)32 b(a)f(trailing)d(su\016x)i(of)g ! (the)h(form)f(`)p Fq(.)p Fh(suffix)11 b Fr(',)28 b(lea)m(ving)j(the)f ! (basename.)150 5182 y Fq(e)432 b Fr(Remo)m(v)m(e)32 b(all)d(but)h(the)h ! (trailing)d(su\016x.)150 5340 y Fq(p)432 b Fr(Prin)m(t)29 ! b(the)i(new)f(command)g(but)g(do)g(not)g(execute)i(it.)p eop ! %%Page: 3 7 ! 3 6 bop 150 -116 a Fr(Chapter)30 b(1:)41 b(Using)29 b(History)h(In)m ! (teractiv)m(ely)2014 b(3)150 299 y Fq(s/)p Fh(old)11 ! b Fq(/)p Fh(new)g Fq(/)630 408 y Fr(Substitute)31 b Fj(new)40 ! b Fr(for)32 b(the)h(\014rst)f(o)s(ccurrence)h(of)f Fj(old)k ! Fr(in)31 b(the)i(ev)m(en)m(t)h(line.)46 b(An)m(y)32 b(delimiter)630 ! 518 y(ma)m(y)25 b(b)s(e)g(used)f(in)f(place)i(of)g(`)p ! Fq(/)p Fr('.)39 b(The)24 b(delimiter)e(ma)m(y)k(b)s(e)e(quoted)h(in)e ! Fj(old)28 b Fr(and)c Fj(new)32 b Fr(with)24 b(a)630 628 ! y(single)j(bac)m(kslash.)39 b(If)28 b(`)p Fq(&)p Fr(')g(app)s(ears)g ! (in)e Fj(new)p Fr(,)j(it)e(is)h(replaced)f(b)m(y)h Fj(old)p ! Fr(.)39 b(A)28 b(single)f(bac)m(kslash)630 737 y(will)32 ! b(quote)j(the)g(`)p Fq(&)p Fr('.)54 b(The)34 b(\014nal)f(delimiter)g ! (is)g(optional)h(if)g(it)g(is)f(the)i(last)g(c)m(haracter)h(on)630 ! 847 y(the)31 b(input)d(line.)150 1006 y Fq(&)432 b Fr(Rep)s(eat)31 ! b(the)f(previous)f(substitution.)150 1166 y Fq(g)150 ! 1275 y(a)432 b Fr(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f(applied)f(o)m(v) ! m(er)j(the)f(en)m(tire)f(ev)m(en)m(t)i(line.)64 b(Used)39 ! b(in)e(conjunction)630 1385 y(with)29 b(`)p Fq(s)p Fr(',)i(as)f(in)g ! Fq(gs/)p Fh(old)11 b Fq(/)p Fh(new)g Fq(/)p Fr(,)26 b(or)k(with)g(`)p ! Fq(&)p Fr('.)150 1544 y Fq(G)432 b Fr(Apply)29 b(the)h(follo)m(wing)f ! (`)p Fq(s)p Fr(')i(mo)s(di\014er)d(once)j(to)g(eac)m(h)h(w)m(ord)e(in)f ! (the)h(ev)m(en)m(t.)p eop ! %%Page: 4 8 ! 4 7 bop 150 -116 a Fr(4)2696 b(GNU)31 b(History)f(Library)p eop ! %%Page: 5 9 ! 5 8 bop 150 -116 a Fr(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(History)1779 b(5)150 299 y Fn(2)80 b(Programming)53 ! b(with)h(GNU)g(History)275 525 y Fr(This)30 b(c)m(hapter)j(describ)s ! (es)e(ho)m(w)h(to)h(in)m(terface)g(programs)f(that)h(y)m(ou)g(write)f ! (with)f(the)h Fk(gnu)g Fr(History)150 634 y(Library)-8 ! b(.)47 b(It)33 b(should)d(b)s(e)j(considered)e(a)i(tec)m(hnical)g ! (guide.)47 b(F)-8 b(or)34 b(information)d(on)i(the)g(in)m(teractiv)m(e) ! g(use)150 744 y(of)e Fk(gnu)f Fr(History)-8 b(,)30 b(see)h(Chapter)f(1) ! h([Using)f(History)g(In)m(teractiv)m(ely],)h(page)g(1.)150 ! 996 y Fp(2.1)68 b(In)l(tro)t(duction)45 b(to)g(History)275 ! 1239 y Fr(Man)m(y)23 b(programs)f(read)h(input)e(from)h(the)h(user)f(a) ! h(line)e(at)i(a)g(time.)38 b(The)23 b Fk(gnu)f Fr(History)g(library)f ! (is)g(able)150 1348 y(to)29 b(k)m(eep)h(trac)m(k)g(of)f(those)g(lines,) ! f(asso)s(ciate)h(arbitrary)f(data)h(with)f(eac)m(h)i(line,)d(and)i ! (utilize)e(information)150 1458 y(from)j(previous)f(lines)f(in)h(comp)s ! (osing)h(new)g(ones.)275 1591 y(The)d(programmer)g(using)f(the)h ! (History)g(library)e(has)j(a)m(v)-5 b(ailable)26 b(functions)g(for)i ! (remem)m(b)s(ering)e(lines)150 1700 y(on)21 b(a)g(history)e(list,)j ! (asso)s(ciating)e(arbitrary)f(data)j(with)d(a)i(line,)g(remo)m(ving)g ! (lines)e(from)h(the)h(list,)g(searc)m(hing)150 1810 y(through)35 ! b(the)g(list)f(for)h(a)h(line)d(con)m(taining)i(an)g(arbitrary)f(text)i ! (string,)g(and)f(referencing)f(an)m(y)i(line)d(in)150 ! 1919 y(the)e(list)e(directly)-8 b(.)41 b(In)30 b(addition,)f(a)i ! (history)f Fj(expansion)g Fr(function)f(is)h(a)m(v)-5 ! b(ailable)30 b(whic)m(h)f(pro)m(vides)h(for)h(a)150 2029 ! y(consisten)m(t)g(user)e(in)m(terface)i(across)g(di\013eren)m(t)f ! (programs.)275 2162 y(The)d(user)g(using)f(programs)i(written)f(with)g ! (the)h(History)f(library)f(has)h(the)h(b)s(ene\014t)f(of)h(a)h ! (consisten)m(t)150 2271 y(user)38 b(in)m(terface)i(with)e(a)h(set)g(of) ! h(w)m(ell-kno)m(wn)d(commands)i(for)g(manipulating)d(the)j(text)h(of)f ! (previous)150 2381 y(lines)26 b(and)h(using)f(that)i(text)g(in)f(new)g ! (commands.)39 b(The)27 b(basic)g(history)g(manipulation)d(commands)k ! (are)150 2491 y(similar)g(to)j(the)f(history)g(substitution)e(pro)m ! (vided)h(b)m(y)h Fq(csh)p Fr(.)275 2623 y(If)f(the)g(programmer)g ! (desires,)g(he)h(can)f(use)h(the)f(Readline)g(library)-8 ! b(,)28 b(whic)m(h)g(includes)f(some)j(history)150 2733 ! y(manipulation)e(b)m(y)i(default,)g(and)f(has)i(the)f(added)g(adv)-5 ! b(an)m(tage)32 b(of)f(command)f(line)e(editing.)275 2866 ! y(Before)39 b(declaring)d(an)m(y)j(functions)d(using)h(an)m(y)h ! (functionalit)m(y)f(the)h(History)g(library)d(pro)m(vides)i(in)150 ! 2976 y(other)29 b(co)s(de,)g(an)g(application)e(writer)h(should)e ! (include)h(the)i(\014le)e Fq()c Fr(in)28 ! b(an)m(y)h(\014le)150 3085 y(that)c(uses)e(the)h(History)g(library's)d ! (features.)39 b(It)24 b(supplies)d(extern)j(declarations)g(for)f(all)g ! (of)h(the)g(library's)150 3195 y(public)k(functions)h(and)g(v)-5 ! b(ariables,)30 b(and)f(declares)i(all)e(of)h(the)h(public)d(data)j ! (structures.)150 3447 y Fp(2.2)68 b(History)46 b(Storage)275 ! 3689 y Fr(The)29 b(history)h(list)f(is)g(an)h(arra)m(y)h(of)g(history)e ! (en)m(tries.)41 b(A)30 b(history)f(en)m(try)i(is)e(declared)h(as)h ! (follo)m(ws:)390 3822 y Fq(typedef)46 b(void)g(*histdata_t;)390 ! 4042 y(typedef)g(struct)g(_hist_entry)f({)485 4151 y(char)i(*line;)485 ! 4261 y(char)g(*timestamp;)485 4370 y(histdata_t)e(data;)390 ! 4480 y(})i(HIST_ENTRY;)275 4613 y Fr(The)29 b(history)h(list)f(itself)g ! (migh)m(t)h(therefore)h(b)s(e)f(declared)f(as)390 4746 ! y Fq(HIST_ENTRY)45 b(**the_history_list;)275 4878 y Fr(The)29 ! b(state)j(of)f(the)f(History)g(library)e(is)i(encapsulated)g(in)m(to)g ! (a)h(single)e(structure:)390 5011 y Fq(/*)438 5121 y(*)47 ! b(A)h(structure)d(used)i(to)g(pass)f(around)g(the)h(current)f(state)h ! (of)g(the)g(history.)438 5230 y(*/)390 5340 y(typedef)f(struct)g ! (_hist_state)f({)p eop ! %%Page: 6 10 ! 6 9 bop 150 -116 a Fr(6)2696 b(GNU)31 b(History)f(Library)485 ! 299 y Fq(HIST_ENTRY)45 b(**entries;)g(/*)j(Pointer)d(to)j(the)f ! (entries)e(themselves.)g(*/)485 408 y(int)i(offset;)523 ! b(/*)48 b(The)f(location)e(pointer)h(within)g(this)h(array.)f(*/)485 ! 518 y(int)h(length;)523 b(/*)48 b(Number)e(of)h(elements)e(within)i ! (this)f(array.)g(*/)485 628 y(int)h(size;)619 b(/*)48 ! b(Number)e(of)h(slots)f(allocated)g(to)h(this)f(array.)g(*/)485 ! 737 y(int)h(flags;)390 847 y(})g(HISTORY_STATE;)275 985 ! y Fr(If)29 b(the)i(\015ags)g(mem)m(b)s(er)e(includes)f ! Fq(HS_STIFLED)p Fr(,)g(the)j(history)e(has)h(b)s(een)g(sti\015ed.)150 ! 1252 y Fp(2.3)68 b(History)46 b(F)-11 b(unctions)275 ! 1500 y Fr(This)22 b(section)j(describ)s(es)e(the)i(calling)e(sequence)i ! (for)f(the)h(v)-5 b(arious)24 b(functions)f(exp)s(orted)h(b)m(y)g(the)h ! Fk(gnu)150 1610 y Fr(History)30 b(library)-8 b(.)150 ! 1842 y Fi(2.3.1)63 b(Initializing)40 b(History)i(and)f(State)f ! (Managemen)m(t)275 2090 y Fr(This)32 b(section)j(describ)s(es)e ! (functions)g(used)h(to)h(initialize)d(and)i(manage)h(the)g(state)h(of)f ! (the)f(History)150 2200 y(library)28 b(when)h(y)m(ou)i(w)m(an)m(t)g(to) ! g(use)f(the)h(history)e(functions)g(in)g(y)m(our)i(program.)3350 ! 2392 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(using)p ! 667 2392 35 5 v 50 w(history)46 b Fe(\()p Fq(void)p Fe(\))390 ! 2501 y Fr(Begin)40 b(a)g(session)f(in)g(whic)m(h)f(the)i(history)f ! (functions)f(migh)m(t)i(b)s(e)f(used.)69 b(This)38 b(initializes)f(the) ! 390 2611 y(in)m(teractiv)m(e)31 b(v)-5 b(ariables.)3350 ! 2803 y([F)d(unction])-3600 b Fg(HISTORY_STATE)42 b(*)d ! Ff(history)p 1317 2803 V 50 w(get)p 1522 2803 V 50 w(history)p ! 1922 2803 V 51 w(state)k Fe(\()p Fq(void)p Fe(\))390 ! 2913 y Fr(Return)30 b(a)g(structure)g(describing)e(the)j(curren)m(t)f ! (state)i(of)e(the)h(input)d(history)-8 b(.)3350 3105 ! y([F)g(unction])-3600 b Fg(void)39 b Ff(history)p 755 ! 3105 V 51 w(set)p 949 3105 V 50 w(history)p 1349 3105 ! V 50 w(state)44 b Fe(\()p Fq(HISTORY_STATE)27 b(*state)p ! Fe(\))390 3215 y Fr(Set)k(the)f(state)i(of)e(the)h(history)e(list)g ! (according)i(to)g Fj(state)p Fr(.)150 3447 y Fi(2.3.2)63 ! b(History)41 b(List)g(Managemen)m(t)275 3695 y Fr(These)21 ! b(functions)f(manage)i(individual)17 b(en)m(tries)k(on)h(the)f(history) ! g(list,)h(or)f(set)h(parameters)g(managing)150 3804 y(the)31 ! b(list)e(itself.)3350 3996 y([F)-8 b(unction])-3600 b ! Fg(void)39 b Ff(add)p 589 3996 V 50 w(history)45 b Fe(\()p ! Fq(const)30 b(char)f(*string)p Fe(\))390 4106 y Fr(Place)h ! Fj(string)37 b Fr(at)31 b(the)f(end)f(of)h(the)g(history)f(list.)40 ! b(The)29 b(asso)s(ciated)h(data)h(\014eld)e(\(if)g(an)m(y\))i(is)e(set) ! h(to)390 4216 y Fq(NULL)p Fr(.)3350 4408 y([F)-8 b(unction])-3600 ! b Fg(void)39 b Ff(add)p 589 4408 V 50 w(history)p 989 ! 4408 V 50 w(time)45 b Fe(\()p Fq(const)29 b(char)h(*string)p ! Fe(\))390 4517 y Fr(Change)g(the)h(time)f(stamp)g(asso)s(ciated)h(with) ! e(the)i(most)f(recen)m(t)i(history)d(en)m(try)i(to)g ! Fj(string)p Fr(.)3350 4709 y([F)-8 b(unction])-3600 b ! Fg(HIST_ENTRY)41 b(*)e Ff(remo)m(v)m(e)p 1169 4709 V ! 50 w(history)46 b Fe(\()p Fq(int)30 b(which)p Fe(\))390 ! 4819 y Fr(Remo)m(v)m(e)47 b(history)e(en)m(try)g(at)i(o\013set)f ! Fj(whic)m(h)e Fr(from)h(the)h(history)-8 b(.)85 b(The)45 ! b(remo)m(v)m(ed)i(elemen)m(t)f(is)390 4929 y(returned)29 ! b(so)i(y)m(ou)g(can)f(free)h(the)f(line,)f(data,)j(and)d(con)m(taining) ! h(structure.)3350 5121 y([F)-8 b(unction])-3600 b Fg(histdata_t)41 ! b Ff(free)p 907 5121 V 50 w(history)p 1307 5121 V 50 ! w(en)m(try)k Fe(\()p Fq(HIST_ENTRY)28 b(*histent)p Fe(\))390 ! 5230 y Fr(F)-8 b(ree)29 b(the)f(history)f(en)m(try)h ! Fj(histen)m(t)i Fr(and)d(an)m(y)i(history)d(library)g(priv)-5 ! b(ate)27 b(data)i(asso)s(ciated)f(with)f(it.)390 5340 ! y(Returns)i(the)i(application-sp)s(eci\014c)d(data)j(so)g(the)f(caller) ! g(can)g(disp)s(ose)f(of)i(it.)p eop ! %%Page: 7 11 ! 7 10 bop 150 -116 a Fr(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(History)1779 b(7)3350 299 y([F)-8 b(unction])-3600 ! b Fg(HIST_ENTRY)41 b(*)e Ff(replace)p 1166 299 35 5 v ! 48 w(history)p 1564 299 V 51 w(en)m(try)45 b Fe(\()p ! Fq(int)29 b(which,)g(const)g(char)565 408 y(*line,)g(histdata_t)e(data) ! p Fe(\))390 518 y Fr(Mak)m(e)i(the)f(history)e(en)m(try)i(at)h ! (o\013set)f Fj(whic)m(h)f Fr(ha)m(v)m(e)h Fj(line)j Fr(and)c ! Fj(data)p Fr(.)41 b(This)26 b(returns)g(the)i(old)f(en)m(try)390 ! 628 y(so)37 b(the)h(caller)e(can)h(disp)s(ose)f(of)h(an)m(y)g ! (application-sp)s(eci\014c)e(data.)61 b(In)37 b(the)g(case)h(of)f(an)g ! (in)m(v)-5 b(alid)390 737 y Fj(whic)m(h)p Fr(,)29 b(a)i ! Fq(NULL)e Fr(p)s(oin)m(ter)h(is)f(returned.)3350 957 ! y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(clear)p 644 ! 957 V 50 w(history)46 b Fe(\()p Fq(void)p Fe(\))390 1067 ! y Fr(Clear)30 b(the)g(history)g(list)f(b)m(y)h(deleting)f(all)h(the)g ! (en)m(tries.)3350 1287 y([F)-8 b(unction])-3600 b Fg(void)39 ! b Ff(sti\015e)p 644 1287 V 50 w(history)45 b Fe(\()p ! Fq(int)30 b(max)p Fe(\))390 1396 y Fr(Sti\015e)f(the)i(history)e(list,) ! g(remem)m(b)s(ering)g(only)h(the)g(last)h Fj(max)36 b ! Fr(en)m(tries.)3350 1616 y([F)-8 b(unction])-3600 b Fg(int)39 ! b Ff(unsti\015e)p 720 1616 V 49 w(history)45 b Fe(\()p ! Fq(void)p Fe(\))390 1726 y Fr(Stop)27 b(sti\015ing)f(the)h(history)-8 ! b(.)39 b(This)26 b(returns)g(the)h(previously-set)f(maxim)m(um)g(n)m ! (um)m(b)s(er)g(of)i(history)390 1836 y(en)m(tries)f(\(as)g(set)g(b)m(y) ! g Fq(stifle_history\(\))p Fr(\).)35 b(The)27 b(v)-5 b(alue)26 ! b(is)g(p)s(ositiv)m(e)f(if)h(the)h(history)f(w)m(as)h(sti\015ed,)390 ! 1945 y(negativ)m(e)32 b(if)d(it)h(w)m(asn't.)3350 2165 ! y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(history)p 703 ! 2165 V 51 w(is)p 831 2165 V 50 w(sti\015ed)44 b Fe(\()p ! Fq(void)p Fe(\))390 2275 y Fr(Returns)29 b(non-zero)i(if)f(the)g ! (history)g(is)f(sti\015ed,)g(zero)j(if)d(it)h(is)f(not.)150 ! 2535 y Fi(2.3.3)63 b(Information)40 b(Ab)s(out)h(the)g(History)g(List) ! 275 2797 y Fr(These)25 b(functions)f(return)h(information)f(ab)s(out)h ! (the)h(en)m(tire)f(history)g(list)f(or)i(individual)21 ! b(list)j(en)m(tries.)3350 3017 y([F)-8 b(unction])-3600 ! b Fg(HIST_ENTRY)41 b(**)e Ff(history)p 1212 3017 V 51 ! w(list)44 b Fe(\()p Fq(void)p Fe(\))390 3126 y Fr(Return)30 ! b(a)h Fq(NULL)e Fr(terminated)h(arra)m(y)h(of)f Fq(HIST_ENTRY)e(*)i ! Fr(whic)m(h)f(is)h(the)h(curren)m(t)f(input)e(history)-8 ! b(.)390 3236 y(Elemen)m(t)30 b(0)h(of)g(this)e(list)g(is)g(the)i(b)s ! (eginning)d(of)i(time.)41 b(If)29 b(there)i(is)e(no)i(history)-8 ! b(,)30 b(return)f Fq(NULL)p Fr(.)3350 3456 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(where)p 653 3456 V 49 w(history)46 b ! Fe(\()p Fq(void)p Fe(\))390 3565 y Fr(Returns)29 b(the)i(o\013set)g(of) ! g(the)g(curren)m(t)f(history)f(elemen)m(t.)3350 3786 ! y([F)-8 b(unction])-3600 b Fg(HIST_ENTRY)41 b(*)e Ff(curren)m(t)p ! 1178 3786 V 49 w(history)45 b Fe(\()p Fq(void)p Fe(\))390 ! 3895 y Fr(Return)24 b(the)h(history)f(en)m(try)h(at)h(the)f(curren)m(t) ! f(p)s(osition,)h(as)g(determined)e(b)m(y)i Fq(where_history\(\))p ! Fr(.)390 4005 y(If)30 b(there)g(is)g(no)g(en)m(try)h(there,)g(return)e ! (a)i Fq(NULL)e Fr(p)s(oin)m(ter.)3350 4225 y([F)-8 b(unction])-3600 ! b Fg(HIST_ENTRY)41 b(*)e Ff(history)p 1160 4225 V 50 ! w(get)45 b Fe(\()p Fq(int)30 b(offset)p Fe(\))390 4334 ! y Fr(Return)41 b(the)g(history)g(en)m(try)h(at)g(p)s(osition)e ! Fj(o\013set)p Fr(,)45 b(starting)d(from)f Fq(history_base)d ! Fr(\(see)k(Sec-)390 4444 y(tion)29 b(2.4)h([History)g(V)-8 ! b(ariables],)29 b(page)h(10\).)42 b(If)28 b(there)i(is)e(no)i(en)m(try) ! f(there,)h(or)g(if)e Fj(o\013set)k Fr(is)d(greater)390 ! 4553 y(than)h(the)h(history)e(length,)h(return)f(a)i ! Fq(NULL)e Fr(p)s(oin)m(ter.)3350 4774 y([F)-8 b(unction])-3600 ! b Fg(time_t)40 b Ff(history)p 860 4774 V 51 w(get)p 1066 ! 4774 V 49 w(time)45 b Fe(\()p Fq(HIST_ENTRY)28 b(*entry)p ! Fe(\))390 4883 y Fr(Return)i(the)g(time)g(stamp)g(asso)s(ciated)h(with) ! e(the)i(history)e(en)m(try)i Fj(en)m(try)p Fr(.)3350 ! 5103 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(history)p ! 703 5103 V 51 w(total)p 989 5103 V 49 w(b)m(ytes)45 b ! Fe(\()p Fq(void)p Fe(\))390 5213 y Fr(Return)27 b(the)h(n)m(um)m(b)s ! (er)e(of)i(b)m(ytes)g(that)g(the)g(primary)d(history)i(en)m(tries)g ! (are)h(using.)38 b(This)26 b(function)390 5322 y(returns)j(the)i(sum)e ! (of)i(the)f(lengths)g(of)g(all)g(the)g(lines)f(in)g(the)h(history)-8 ! b(.)p eop ! %%Page: 8 12 ! 8 11 bop 150 -116 a Fr(8)2696 b(GNU)31 b(History)f(Library)150 ! 299 y Fi(2.3.4)63 b(Mo)m(ving)41 b(Around)h(the)f(History)g(List)275 ! 544 y Fr(These)30 b(functions)f(allo)m(w)g(the)i(curren)m(t)f(index)f ! (in)m(to)h(the)h(history)e(list)g(to)i(b)s(e)f(set)h(or)f(c)m(hanged.) ! 3350 730 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(history)p ! 703 730 35 5 v 51 w(set)p 897 730 V 49 w(p)s(os)46 b ! Fe(\()p Fq(int)30 b(pos)p Fe(\))390 839 y Fr(Set)37 b(the)g(curren)m(t) ! f(history)f(o\013set)j(to)f Fj(p)s(os)p Fr(,)h(an)f(absolute)f(index)f ! (in)m(to)i(the)f(list.)58 b(Returns)36 b(1)h(on)390 949 ! y(success,)31 b(0)g(if)e Fj(p)s(os)k Fr(is)d(less)f(than)i(zero)g(or)f ! (greater)i(than)e(the)g(n)m(um)m(b)s(er)f(of)i(history)e(en)m(tries.) ! 3350 1135 y([F)-8 b(unction])-3600 b Fg(HIST_ENTRY)41 ! b(*)e Ff(previous)p 1232 1135 V 50 w(history)46 b Fe(\()p ! Fq(void)p Fe(\))390 1244 y Fr(Bac)m(k)30 b(up)e(the)h(curren)m(t)g ! (history)e(o\013set)j(to)g(the)f(previous)e(history)h(en)m(try)-8 ! b(,)30 b(and)e(return)g(a)h(p)s(oin)m(ter)390 1354 y(to)i(that)g(en)m ! (try)-8 b(.)41 b(If)30 b(there)h(is)e(no)i(previous)e(en)m(try)-8 ! b(,)31 b(return)e(a)i Fq(NULL)e Fr(p)s(oin)m(ter.)3350 ! 1540 y([F)-8 b(unction])-3600 b Fg(HIST_ENTRY)41 b(*)e ! Ff(next)p 1032 1540 V 49 w(history)46 b Fe(\()p Fq(void)p ! Fe(\))390 1649 y Fr(Mo)m(v)m(e)38 b(the)d(curren)m(t)h(history)e ! (o\013set)j(forw)m(ard)e(to)h(the)g(next)f(history)g(en)m(try)-8 ! b(,)37 b(and)e(return)g(the)h(a)390 1759 y(p)s(oin)m(ter)29 ! b(to)i(that)g(en)m(try)-8 b(.)42 b(If)30 b(there)g(is)g(no)g(next)h(en) ! m(try)-8 b(,)31 b(return)e(a)i Fq(NULL)e Fr(p)s(oin)m(ter.)150 ! 1985 y Fi(2.3.5)63 b(Searc)m(hing)40 b(the)h(History)h(List)275 ! 2230 y Fr(These)26 b(functions)f(allo)m(w)h(searc)m(hing)h(of)g(the)g ! (history)e(list)h(for)g(en)m(tries)h(con)m(taining)f(a)h(sp)s(eci\014c) ! f(string.)150 2339 y(Searc)m(hing)h(ma)m(y)h(b)s(e)f(p)s(erformed)f(b)s ! (oth)h(forw)m(ard)f(and)h(bac)m(kw)m(ard)h(from)f(the)h(curren)m(t)f ! (history)g(p)s(osition.)150 2449 y(The)k(searc)m(h)h(ma)m(y)g(b)s(e)e ! Fj(anc)m(hored)p Fr(,)i(meaning)f(that)h(the)f(string)g(m)m(ust)g(matc) ! m(h)h(at)g(the)g(b)s(eginning)c(of)k(the)150 2558 y(history)d(en)m(try) ! -8 b(.)3350 2744 y([F)g(unction])-3600 b Fg(int)39 b ! Ff(history)p 703 2744 V 51 w(searc)m(h)44 b Fe(\()p Fq(const)29 ! b(char)h(*string,)e(int)h(direction)p Fe(\))390 2854 ! y Fr(Searc)m(h)g(the)g(history)f(for)h Fj(string)p Fr(,)f(starting)h ! (at)g(the)g(curren)m(t)g(history)f(o\013set.)41 b(If)28 ! b Fj(direction)g Fr(is)g(less)390 2963 y(than)40 b(0,)j(then)c(the)h ! (searc)m(h)h(is)e(through)g(previous)g(en)m(tries,)j(otherwise)d ! (through)h(subsequen)m(t)390 3073 y(en)m(tries.)h(If)30 ! b Fj(string)37 b Fr(is)29 b(found,)h(then)g(the)g(curren)m(t)h(history) ! e(index)g(is)g(set)i(to)h(that)f(history)e(en)m(try)-8 ! b(,)390 3183 y(and)33 b(the)g(v)-5 b(alue)33 b(returned)f(is)h(the)h ! (o\013set)g(in)e(the)i(line)d(of)j(the)g(en)m(try)f(where)g ! Fj(string)40 b Fr(w)m(as)34 b(found.)390 3292 y(Otherwise,)29 ! b(nothing)h(is)f(c)m(hanged,)i(and)f(a)h(-1)g(is)e(returned.)3350 ! 3478 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(history)p ! 703 3478 V 51 w(searc)m(h)p 1067 3478 V 49 w(pre\014x)45 ! b Fe(\()p Fq(const)29 b(char)g(*string,)g(int)g(direction)p ! Fe(\))390 3588 y Fr(Searc)m(h)41 b(the)g(history)e(for)h ! Fj(string)p Fr(,)j(starting)d(at)h(the)g(curren)m(t)f(history)g ! (o\013set.)72 b(The)40 b(searc)m(h)h(is)390 3697 y(anc)m(hored:)f(matc) ! m(hing)30 b(lines)e(m)m(ust)h(b)s(egin)f(with)g Fj(string)p ! Fr(.)39 b(If)29 b Fj(direction)f Fr(is)h(less)f(than)h(0,)i(then)e(the) ! 390 3807 y(searc)m(h)j(is)e(through)h(previous)f(en)m(tries,)h ! (otherwise)g(through)f(subsequen)m(t)h(en)m(tries.)43 ! b(If)31 b Fj(string)38 b Fr(is)390 3916 y(found,)33 b(then)f(the)h ! (curren)m(t)g(history)f(index)g(is)g(set)h(to)h(that)g(en)m(try)-8 ! b(,)34 b(and)f(the)g(return)f(v)-5 b(alue)32 b(is)g(0.)390 ! 4026 y(Otherwise,)d(nothing)h(is)f(c)m(hanged,)i(and)f(a)h(-1)g(is)e ! (returned.)3350 4212 y([F)-8 b(unction])-3600 b Fg(int)39 ! b Ff(history)p 703 4212 V 51 w(searc)m(h)p 1067 4212 ! V 49 w(p)s(os)46 b Fe(\()p Fq(const)29 b(char)g(*string,)f(int)i ! (direction,)d(int)565 4321 y(pos)p Fe(\))390 4431 y Fr(Searc)m(h)34 ! b(for)g Fj(string)41 b Fr(in)33 b(the)i(history)e(list,)h(starting)g ! (at)h Fj(p)s(os)p Fr(,)g(an)f(absolute)g(index)e(in)m(to)j(the)f(list.) ! 390 4541 y(If)i Fj(direction)e Fr(is)h(negativ)m(e,)k(the)d(searc)m(h)h ! (pro)s(ceeds)f(bac)m(kw)m(ard)g(from)g Fj(p)s(os)p Fr(,)h(otherwise)e ! (forw)m(ard.)390 4650 y(Returns)43 b(the)h(absolute)g(index)f(of)h(the) ! g(history)f(elemen)m(t)h(where)g Fj(string)51 b Fr(w)m(as)44 ! b(found,)i(or)e(-1)390 4760 y(otherwise.)150 4986 y Fi(2.3.6)63 ! b(Managing)41 b(the)g(History)h(File)275 5230 y Fr(The)31 ! b(History)g(library)e(can)j(read)f(the)h(history)f(from)g(and)g(write)g ! (it)g(to)h(a)g(\014le.)44 b(This)30 b(section)h(do)s(cu-)150 ! 5340 y(men)m(ts)g(the)f(functions)f(for)h(managing)g(a)h(history)e ! (\014le.)p eop ! %%Page: 9 13 ! 9 12 bop 150 -116 a Fr(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(History)1779 b(9)3350 299 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(read)p 573 299 35 5 v 50 w(history)45 ! b Fe(\()p Fq(const)29 b(char)h(*filename)p Fe(\))390 ! 408 y Fr(Add)f(the)h(con)m(ten)m(ts)h(of)f Fj(\014lename)j ! Fr(to)e(the)f(history)e(list,)h(a)h(line)e(at)i(a)g(time.)40 ! b(If)29 b Fj(\014lename)34 b Fr(is)29 b Fq(NULL)p Fr(,)390 ! 518 y(then)h(read)g(from)g(`)p Fq(~/.history)p Fr('.)39 ! b(Returns)29 b(0)i(if)e(successful,)h(or)g Fq(errno)f ! Fr(if)g(not.)3350 717 y([F)-8 b(unction])-3600 b Fg(int)39 ! b Ff(read)p 573 717 V 50 w(history)p 973 717 V 50 w(range)45 ! b Fe(\()p Fq(const)29 b(char)g(*filename,)f(int)h(from,)g(int)h(to)p ! Fe(\))390 826 y Fr(Read)e(a)g(range)h(of)f(lines)e(from)h ! Fj(\014lename)p Fr(,)h(adding)e(them)i(to)h(the)f(history)f(list.)38 ! b(Start)28 b(reading)f(at)390 936 y(line)e Fj(from)g ! Fr(and)h(end)f(at)i Fj(to)p Fr(.)41 b(If)25 b Fj(from)h ! Fr(is)f(zero,)j(start)f(at)g(the)f(b)s(eginning.)37 b(If)26 ! b Fj(to)31 b Fr(is)26 b(less)f(than)h Fj(from)p Fr(,)390 ! 1045 y(then)k(read)g(un)m(til)e(the)i(end)g(of)g(the)g(\014le.)40 ! b(If)30 b Fj(\014lename)k Fr(is)29 b Fq(NULL)p Fr(,)h(then)f(read)h ! (from)g(`)p Fq(~/.history)p Fr('.)390 1155 y(Returns)f(0)i(if)f ! (successful,)f(or)h Fq(errno)f Fr(if)h(not.)3350 1353 ! y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(write)p 613 ! 1353 V 49 w(history)46 b Fe(\()p Fq(const)29 b(char)g(*filename)p ! Fe(\))390 1463 y Fr(W)-8 b(rite)35 b(the)g(curren)m(t)g(history)f(to)h ! Fj(\014lename)p Fr(,)g(o)m(v)m(erwriting)g Fj(\014lename)k ! Fr(if)34 b(necessary)-8 b(.)54 b(If)35 b Fj(\014lename)390 ! 1573 y Fr(is)c Fq(NULL)p Fr(,)h(then)g(write)f(the)i(history)e(list)g ! (to)i(`)p Fq(~/.history)p Fr('.)44 b(Returns)31 b(0)i(on)f(success,)h ! (or)f Fq(errno)390 1682 y Fr(on)e(a)h(read)f(or)h(write)e(error.)3350 ! 1881 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(app)s(end)p ! 721 1881 V 48 w(history)46 b Fe(\()p Fq(int)30 b(nelements,)e(const)g ! (char)i(*filename)p Fe(\))390 1990 y Fr(App)s(end)j(the)i(last)f ! Fj(nelemen)m(ts)k Fr(of)d(the)g(history)e(list)h(to)h ! Fj(\014lename)p Fr(.)53 b(If)34 b Fj(\014lename)39 b ! Fr(is)33 b Fq(NULL)p Fr(,)i(then)390 2100 y(app)s(end)29 ! b(to)i(`)p Fq(~/.history)p Fr('.)38 b(Returns)30 b(0)g(on)h(success,)g ! (or)f Fq(errno)f Fr(on)h(a)h(read)f(or)h(write)e(error.)3350 ! 2299 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(history)p ! 703 2299 V 51 w(truncate)p 1179 2299 V 48 w(\014le)44 ! b Fe(\()p Fq(const)30 b(char)f(*filename,)e(int)j(nlines)p ! Fe(\))390 2408 y Fr(T)-8 b(runcate)39 b(the)f(history)g(\014le)f ! Fj(\014lename)p Fr(,)j(lea)m(ving)e(only)g(the)h(last)f ! Fj(nlines)i Fr(lines.)63 b(If)38 b Fj(\014lename)43 b ! Fr(is)390 2518 y Fq(NULL)p Fr(,)29 b(then)i(`)p Fq(~/.history)p ! Fr(')d(is)h(truncated.)41 b(Returns)29 b(0)i(on)f(success,)h(or)f ! Fq(errno)f Fr(on)i(failure.)150 2756 y Fi(2.3.7)63 b(History)41 ! b(Expansion)275 3007 y Fr(These)30 b(functions)f(implemen)m(t)g ! (history)g(expansion.)3350 3206 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(history)p 703 3206 V 51 w(expand)44 ! b Fe(\()p Fq(char)29 b(*string,)f(char)i(**output)p Fe(\))390 ! 3315 y Fr(Expand)j Fj(string)p Fr(,)i(placing)e(the)h(result)g(in)m(to) ! g Fj(output)p Fr(,)h(a)g(p)s(oin)m(ter)e(to)i(a)g(string)e(\(see)j ! (Section)e(1.1)390 3425 y([History)c(In)m(teraction],)i(page)f(1\).)41 ! b(Returns:)390 3595 y Fq(0)432 b Fr(If)37 b(no)g(expansions)f(to)s(ok)j ! (place)e(\(or,)j(if)c(the)i(only)e(c)m(hange)j(in)d(the)h(text)i(w)m ! (as)f(the)870 3705 y(remo)m(v)-5 b(al)30 b(of)h(escap)s(e)f(c)m ! (haracters)i(preceding)d(the)h(history)f(expansion)g(c)m(haracter\);) ! 390 3871 y Fq(1)432 b Fr(if)29 b(expansions)g(did)g(tak)m(e)j(place;) ! 390 4038 y Fq(-1)384 b Fr(if)29 b(there)i(w)m(as)g(an)f(error)g(in)f ! (expansion;)390 4204 y Fq(2)432 b Fr(if)27 b(the)g(returned)g(line)e ! (should)h(b)s(e)h(displa)m(y)m(ed,)g(but)g(not)h(executed,)h(as)f(with) ! e(the)i Fq(:p)870 4314 y Fr(mo)s(di\014er)g(\(see)k(Section)e(1.1.3)i ! ([Mo)s(di\014ers],)d(page)j(2\).)390 4484 y(If)e(an)g(error)g(o)s ! (curred)f(in)h(expansion,)f(then)h Fj(output)i Fr(con)m(tains)f(a)f ! (descriptiv)m(e)g(error)g(message.)3350 4682 y([F)-8 ! b(unction])-3600 b Fg(char)39 b(*)g Ff(get)p 651 4682 ! V 50 w(history)p 1051 4682 V 50 w(ev)m(en)m(t)44 b Fe(\()p ! Fq(const)29 b(char)h(*string,)e(int)h(*cindex,)f(int)565 ! 4792 y(qchar)p Fe(\))390 4902 y Fr(Returns)45 b(the)g(text)i(of)e(the)h ! (history)e(ev)m(en)m(t)j(b)s(eginning)c(at)j Fj(string)52 ! b Fq(+)45 b Fj(*cindex)p Fr(.)86 b Fj(*cindex)51 b Fr(is)390 ! 5011 y(mo)s(di\014ed)27 b(to)j(p)s(oin)m(t)e(to)i(after)g(the)g(ev)m ! (en)m(t)h(sp)s(eci\014er.)38 b(A)m(t)31 b(function)d(en)m(try)-8 ! b(,)30 b Fj(cindex)35 b Fr(p)s(oin)m(ts)28 b(to)i(the)390 ! 5121 y(index)k(in)m(to)i Fj(string)43 b Fr(where)35 b(the)h(history)f ! (ev)m(en)m(t)i(sp)s(eci\014cation)e(b)s(egins.)56 b Fj(qc)m(har)42 ! b Fr(is)35 b(a)h(c)m(haracter)390 5230 y(that)27 b(is)f(allo)m(w)m(ed)h ! (to)h(end)e(the)h(ev)m(en)m(t)h(sp)s(eci\014cation)e(in)g(addition)f ! (to)i(the)g(\\normal")g(terminating)390 5340 y(c)m(haracters.)p eop ! %%Page: 10 14 ! 10 13 bop 150 -116 a Fr(10)2651 b(GNU)31 b(History)f(Library)3350 ! 299 y([F)-8 b(unction])-3600 b Fg(char)39 b(**)g Ff(history)p ! 898 299 35 5 v 51 w(tok)m(enize)44 b Fe(\()p Fq(const)29 ! b(char)g(*string)p Fe(\))390 408 y Fr(Return)h(an)h(arra)m(y)g(of)g ! (tok)m(ens)h(parsed)e(out)h(of)g Fj(string)p Fr(,)g(m)m(uc)m(h)f(as)i ! (the)f(shell)e(migh)m(t.)42 b(The)30 b(tok)m(ens)390 ! 518 y(are)h(split)e(on)h(the)h(c)m(haracters)h(in)d(the)i ! Fj(history)p 2007 518 28 4 v 39 w(w)m(ord)p 2241 518 ! V 39 w(delimiters)h Fr(v)-5 b(ariable,)30 b(and)g(shell)e(quoting)390 ! 628 y(con)m(v)m(en)m(tions)j(are)g(ob)s(ey)m(ed.)3350 ! 818 y([F)-8 b(unction])-3600 b Fg(char)39 b(*)g Ff(history)p ! 846 818 35 5 v 50 w(arg)p 1056 818 V 51 w(extract)44 ! b Fe(\()p Fq(int)30 b(first,)f(int)g(last,)g(const)g(char)565 ! 927 y(*string)p Fe(\))390 1037 y Fr(Extract)41 b(a)g(string)e(segmen)m ! (t)j(consisting)d(of)h(the)h Fj(\014rst)g Fr(through)f ! Fj(last)i Fr(argumen)m(ts)f(presen)m(t)f(in)390 1146 ! y Fj(string)p Fr(.)g(Argumen)m(ts)30 b(are)h(split)d(using)h ! Fq(history_tokenize)p Fr(.)150 1411 y Fp(2.4)68 b(History)46 ! b(V)-11 b(ariables)275 1658 y Fr(This)32 b(section)i(describ)s(es)e ! (the)i(externally-visible)d(v)-5 b(ariables)33 b(exp)s(orted)g(b)m(y)h ! (the)g Fk(gnu)g Fr(History)g(Li-)150 1767 y(brary)-8 ! b(.)3371 1957 y([V)g(ariable])-3600 b Fg(int)39 b Ff(history)p ! 703 1957 V 51 w(base)390 2067 y Fr(The)30 b(logical)g(o\013set)h(of)g ! (the)f(\014rst)g(en)m(try)g(in)g(the)g(history)f(list.)3371 ! 2257 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(history)p ! 703 2257 V 51 w(length)390 2366 y Fr(The)30 b(n)m(um)m(b)s(er)f(of)h ! (en)m(tries)h(curren)m(tly)e(stored)i(in)e(the)h(history)f(list.)3371 ! 2556 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(history)p ! 703 2556 V 51 w(max)p 965 2556 V 51 w(en)m(tries)390 ! 2666 y Fr(The)45 b(maxim)m(um)g(n)m(um)m(b)s(er)g(of)h(history)f(en)m ! (tries.)87 b(This)44 b(m)m(ust)i(b)s(e)f(c)m(hanged)i(using)d ! Fq(stifle_)390 2776 y(history\(\))p Fr(.)3371 2966 y([V)-8 ! b(ariable])-3600 b Fg(int)39 b Ff(history)p 703 2966 ! V 51 w(write)p 1014 2966 V 49 w(timestamps)390 3075 y ! Fr(If)44 b(non-zero,)49 b(timestamps)44 b(are)h(written)f(to)h(the)g ! (history)e(\014le,)48 b(so)d(they)f(can)h(b)s(e)f(preserv)m(ed)390 ! 3185 y(b)s(et)m(w)m(een)31 b(sessions.)40 b(The)30 b(default)f(v)-5 ! b(alue)30 b(is)f(0,)i(meaning)f(that)h(timestamps)f(are)h(not)f(sa)m(v) ! m(ed.)3371 3375 y([V)-8 b(ariable])-3600 b Fg(char)39 ! b Ff(history)p 755 3375 V 51 w(expansion)p 1301 3375 ! V 49 w(c)m(har)390 3484 y Fr(The)c(c)m(haracter)i(that)e(in)m(tro)s ! (duces)f(a)i(history)e(ev)m(en)m(t.)57 b(The)34 b(default)h(is)f(`)p ! Fq(!)p Fr('.)56 b(Setting)34 b(this)h(to)h(0)390 3594 ! y(inhibits)27 b(history)i(expansion.)3371 3784 y([V)-8 ! b(ariable])-3600 b Fg(char)39 b Ff(history)p 755 3784 ! V 51 w(subst)p 1069 3784 V 50 w(c)m(har)390 3893 y Fr(The)h(c)m ! (haracter)i(that)g(in)m(v)m(ok)m(es)f(w)m(ord)g(substitution)d(if)i ! (found)f(at)i(the)g(start)g(of)g(a)g(line.)70 b(The)390 ! 4003 y(default)30 b(is)f(`)p Fq(^)p Fr('.)3371 4193 y([V)-8 ! b(ariable])-3600 b Fg(char)39 b Ff(history)p 755 4193 ! V 51 w(commen)m(t)p 1263 4193 V 50 w(c)m(har)390 4303 ! y Fr(During)d(tok)m(enization,)41 b(if)c(this)f(c)m(haracter)k(is)d ! (seen)g(as)h(the)g(\014rst)f(c)m(haracter)j(of)e(a)g(w)m(ord,)h(then) ! 390 4412 y(it)k(and)f(all)h(subsequen)m(t)f(c)m(haracters)j(up)d(to)i ! (a)g(newline)d(are)j(ignored,)h(suppressing)c(history)390 ! 4522 y(expansion)29 b(for)h(the)h(remainder)e(of)h(the)h(line.)39 ! b(This)28 b(is)i(disabled)e(b)m(y)i(default.)3371 4712 ! y([V)-8 b(ariable])-3600 b Fg(char)39 b(*)g Ff(history)p ! 846 4712 V 50 w(w)m(ord)p 1144 4712 V 51 w(delimiters)390 ! 4821 y Fr(The)27 b(c)m(haracters)i(that)f(separate)h(tok)m(ens)f(for)f ! Fq(history_tokenize\(\))p Fr(.)35 b(The)27 b(default)g(v)-5 ! b(alue)27 b(is)f Fq(")390 4931 y(\\t\\n\(\)<>;&|")p Fr(.)3371 ! 5121 y([V)-8 b(ariable])-3600 b Fg(char)39 b(*)g Ff(history)p ! 846 5121 V 50 w(searc)m(h)p 1209 5121 V 50 w(delimiter)p ! 1712 5121 V 49 w(c)m(hars)390 5230 y Fr(The)26 b(list)e(of)i ! (additional)e(c)m(haracters)k(whic)m(h)d(can)h(delimit)e(a)i(history)f ! (searc)m(h)i(string,)f(in)f(addition)390 5340 y(to)31 ! b(space,)g(T)-8 b(AB,)32 b(`)p Fq(:)p Fr(')e(and)g(`)p ! Fq(?)p Fr(')g(in)f(the)i(case)g(of)g(a)g(substring)d(searc)m(h.)41 ! b(The)30 b(default)g(is)f(empt)m(y)-8 b(.)p eop ! %%Page: 11 15 ! 11 14 bop 150 -116 a Fr(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(History)1733 b(11)3371 299 y([V)-8 b(ariable])-3600 ! b Fg(char)39 b(*)g Ff(history)p 846 299 35 5 v 50 w(no)p ! 1017 299 V 51 w(expand)p 1429 299 V 49 w(c)m(hars)390 ! 408 y Fr(The)29 b(list)g(of)h(c)m(haracters)h(whic)m(h)d(inhibit)f ! (history)i(expansion)f(if)h(found)f(immediately)g(follo)m(wing)390 ! 518 y Fj(history)p 673 518 28 4 v 39 w(expansion)p 1105 ! 518 V 39 w(c)m(har)p Fr(.)41 b(The)30 b(default)f(is)h(space,)h(tab,)g ! (newline,)d(carriage)j(return,)f(and)g(`)p Fq(=)p Fr('.)3371 ! 707 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(history)p ! 703 707 35 5 v 51 w(quotes)p 1078 707 V 50 w(inhibit)p ! 1461 707 V 48 w(expansion)390 817 y Fr(If)29 b(non-zero,)h ! (single-quoted)e(w)m(ords)h(are)g(not)h(scanned)f(for)g(the)g(history)f ! (expansion)g(c)m(haracter.)390 927 y(The)i(default)f(v)-5 ! b(alue)30 b(is)g(0.)3371 1116 y([V)-8 b(ariable])-3600 ! b Fg(rl_linebuf_func_t)43 b(*)c Ff(history)p 1526 1116 ! V 50 w(inhibit)p 1909 1116 V 49 w(expansion)p 2453 1116 ! V 49 w(function)390 1226 y Fr(This)31 b(should)h(b)s(e)g(set)i(to)g ! (the)g(address)e(of)i(a)f(function)f(that)i(tak)m(es)h(t)m(w)m(o)g ! (argumen)m(ts:)46 b(a)34 b Fq(char)29 b(*)390 1335 y ! Fr(\()p Fj(string)8 b Fr(\))26 b(and)g(an)g Fq(int)g ! Fr(index)f(in)m(to)i(that)g(string)e(\()p Fj(i)5 b Fr(\).)39 ! b(It)27 b(should)e(return)g(a)i(non-zero)g(v)-5 b(alue)26 ! b(if)g(the)390 1445 y(history)i(expansion)g(starting)h(at)h ! Fj(string[i])h Fr(should)c(not)j(b)s(e)e(p)s(erformed;)h(zero)h(if)e ! (the)h(expansion)390 1554 y(should)h(b)s(e)h(done.)45 ! b(It)32 b(is)f(in)m(tended)g(for)h(use)g(b)m(y)f(applications)f(lik)m ! (e)i(Bash)g(that)g(use)g(the)g(history)390 1664 y(expansion)d(c)m ! (haracter)j(for)e(additional)f(purp)s(oses.)39 b(By)30 ! b(default,)g(this)f(v)-5 b(ariable)29 b(is)h(set)h(to)g ! Fq(NULL)p Fr(.)150 1928 y Fp(2.5)68 b(History)46 b(Programming)g ! (Example)275 2174 y Fr(The)29 b(follo)m(wing)g(program)h(demonstrates)h ! (simple)e(use)h(of)g(the)h Fk(gnu)f Fr(History)g(Library)-8 ! b(.)390 2289 y Fd(#include)41 b()390 2376 y(#include)g ! ()390 2550 y(main)f(\(argc,)h(argv\))586 ! 2638 y(int)f(argc;)586 2725 y(char)g(**argv;)390 2812 ! y({)468 2899 y(char)h(line[1024],)g(*t;)468 2986 y(int)f(len,)g(done)h ! (=)e(0;)468 3161 y(line[0])i(=)f(0;)468 3335 y(using_history)j(\(\);) ! 468 3422 y(while)e(\(!done\))547 3509 y({)625 3597 y(printf)g ! (\("history$)g("\);)625 3684 y(fflush)g(\(stdout\);)625 ! 3771 y(t)f(=)f(fgets)i(\(line,)f(sizeof)h(\(line\))f(-)g(1,)g(stdin\);) ! 625 3858 y(if)g(\(t)g(&&)f(*t\))704 3945 y({)782 4032 ! y(len)h(=)g(strlen)g(\(t\);)782 4120 y(if)g(\(t[len)h(-)e(1])h(==)f ! ('\\n'\))861 4207 y(t[len)h(-)g(1])f(=)h('\\0';)704 4294 ! y(})625 4468 y(if)g(\(!t\))704 4555 y(strcpy)g(\(line,)h("quit"\);)625 ! 4730 y(if)f(\(line[0]\))704 4817 y({)782 4904 y(char)g(*expansion;)782 ! 4991 y(int)g(result;)782 5166 y(result)h(=)e(history_expand)k(\(line,)d ! (&expansion\);)782 5253 y(if)g(\(result\))861 5340 y(fprintf)h ! (\(stderr,)g("\045s\\n",)f(expansion\);)p eop ! %%Page: 12 16 ! 12 15 bop 150 -116 a Fr(12)2651 b(GNU)31 b(History)f(Library)782 ! 386 y Fd(if)40 b(\(result)h(<)e(0)h(||)f(result)i(==)f(2\))861 ! 473 y({)939 560 y(free)g(\(expansion\);)939 648 y(continue;)861 ! 735 y(})782 909 y(add_history)i(\(expansion\);)782 996 ! y(strncpy)f(\(line,)g(expansion,)g(sizeof)g(\(line\))f(-)g(1\);)782 ! 1083 y(free)g(\(expansion\);)704 1171 y(})625 1345 y(if)g(\(strcmp)h ! (\(line,)f("quit"\))h(==)f(0\))704 1432 y(done)g(=)f(1;)625 ! 1519 y(else)h(if)g(\(strcmp)h(\(line,)g("save"\))f(==)g(0\))704 ! 1606 y(write_history)i(\("history_file"\);)625 1694 y(else)e(if)g ! (\(strcmp)h(\(line,)g("read"\))f(==)g(0\))704 1781 y(read_history)i ! (\("history_file"\);)625 1868 y(else)e(if)g(\(strcmp)h(\(line,)g ! ("list"\))f(==)g(0\))704 1955 y({)782 2042 y(register)h(HIST_ENTRY)h ! (**the_list;)782 2130 y(register)f(int)f(i;)782 2304 ! y(the_list)h(=)f(history_list)i(\(\);)782 2391 y(if)e(\(the_list\))861 ! 2478 y(for)g(\(i)f(=)h(0;)f(the_list[i];)j(i++\))939 ! 2565 y(printf)f(\("\045d:)f(\045s\\n",)h(i)e(+)h(history_base,)i ! (the_list[i]->line\);)704 2653 y(})625 2740 y(else)e(if)g(\(strncmp)h ! (\(line,)g("delete",)g(6\))f(==)f(0\))704 2827 y({)782 ! 2914 y(int)h(which;)782 3001 y(if)g(\(\(sscanf)h(\(line)f(+)g(6,)g ! ("\045d",)g(&which\)\))h(==)f(1\))861 3088 y({)939 3176 ! y(HIST_ENTRY)i(*entry)e(=)g(remove_history)i(\(which\);)939 ! 3263 y(if)e(\(!entry\))1018 3350 y(fprintf)g(\(stderr,)i("No)d(such)i ! (entry)f(\045d\\n",)h(which\);)939 3437 y(else)1018 3524 ! y({)1096 3611 y(free)f(\(entry->line\);)1096 3699 y(free)g(\(entry\);) ! 1018 3786 y(})861 3873 y(})782 3960 y(else)861 4047 y({)939 ! 4134 y(fprintf)h(\(stderr,)g("non-numeric)h(arg)e(given)g(to)g ! (`delete'\\n"\);)861 4222 y(})704 4309 y(})547 4396 y(})390 ! 4483 y(})p eop ! %%Page: 13 17 ! 13 16 bop 150 -116 a Fr(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m ! (ual)2104 b(13)150 299 y Fn(App)t(endix)53 b(A)40 b(Cop)l(ying)52 ! b(This)j(Man)l(ual)150 690 y Fp(A.1)67 b(GNU)45 b(F)-11 ! b(ree)45 b(Do)t(cumen)l(tation)h(License)1396 909 y Fr(V)-8 ! b(ersion)30 b(1.2,)i(No)m(v)m(em)m(b)s(er)g(2002)390 ! 1052 y(Cop)m(yrigh)m(t)842 1049 y(c)817 1052 y Fo(\015)e ! Fr(2000,2001,2002)36 b(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8 ! b(oundation,)31 b(Inc.)390 1161 y(59)g(T)-8 b(emple)30 ! b(Place,)h(Suite)e(330,)j(Boston,)g(MA)61 b(02111-1307,)35 ! b(USA)390 1380 y(Ev)m(ery)m(one)c(is)f(p)s(ermitted)f(to)i(cop)m(y)g ! (and)f(distribute)e(v)m(erbatim)i(copies)390 1490 y(of)h(this)e ! (license)g(do)s(cumen)m(t,)i(but)e(c)m(hanging)i(it)f(is)f(not)i(allo)m ! (w)m(ed.)199 1632 y(0.)61 b(PREAMBLE)330 1770 y(The)37 ! b(purp)s(ose)e(of)i(this)f(License)h(is)f(to)i(mak)m(e)g(a)g(man)m ! (ual,)g(textb)s(o)s(ok,)i(or)d(other)g(functional)f(and)330 ! 1880 y(useful)28 b(do)s(cumen)m(t)i Fj(free)36 b Fr(in)28 ! b(the)j(sense)f(of)g(freedom:)41 b(to)31 b(assure)e(ev)m(ery)m(one)j ! (the)e(e\013ectiv)m(e)i(freedom)330 1990 y(to)g(cop)m(y)g(and)f ! (redistribute)e(it,)i(with)g(or)g(without)f(mo)s(difying)f(it,)j ! (either)f(commercially)f(or)h(non-)330 2099 y(commercially)-8 ! b(.)53 b(Secondarily)-8 b(,)34 b(this)g(License)g(preserv)m(es)h(for)f ! (the)h(author)f(and)g(publisher)d(a)k(w)m(a)m(y)330 2209 ! y(to)i(get)g(credit)f(for)g(their)f(w)m(ork,)j(while)c(not)i(b)s(eing)f ! (considered)g(resp)s(onsible)e(for)j(mo)s(di\014cations)330 ! 2318 y(made)30 b(b)m(y)h(others.)330 2457 y(This)21 b(License)i(is)f(a) ! i(kind)d(of)j(\\cop)m(yleft",)i(whic)m(h)c(means)h(that)h(deriv)-5 ! b(ativ)m(e)22 b(w)m(orks)h(of)h(the)f(do)s(cumen)m(t)330 ! 2566 y(m)m(ust)34 b(themselv)m(es)g(b)s(e)f(free)h(in)f(the)h(same)g ! (sense.)51 b(It)34 b(complemen)m(ts)g(the)g(GNU)g(General)g(Public)330 ! 2676 y(License,)c(whic)m(h)f(is)h(a)g(cop)m(yleft)h(license)f(designed) ! f(for)h(free)h(soft)m(w)m(are.)330 2814 y(W)-8 b(e)31 ! b(ha)m(v)m(e)f(designed)f(this)f(License)h(in)f(order)h(to)i(use)e(it)g ! (for)g(man)m(uals)g(for)g(free)h(soft)m(w)m(are,)h(b)s(ecause)330 ! 2924 y(free)42 b(soft)m(w)m(are)i(needs)e(free)g(do)s(cumen)m(tation:) ! 64 b(a)42 b(free)h(program)f(should)e(come)j(with)e(man)m(uals)330 ! 3033 y(pro)m(viding)27 b(the)i(same)g(freedoms)f(that)i(the)f(soft)m(w) ! m(are)h(do)s(es.)40 b(But)29 b(this)e(License)i(is)f(not)h(limited)d ! (to)330 3143 y(soft)m(w)m(are)32 b(man)m(uals;)e(it)g(can)h(b)s(e)f ! (used)g(for)g(an)m(y)h(textual)g(w)m(ork,)g(regardless)f(of)h(sub)5 ! b(ject)30 b(matter)i(or)330 3252 y(whether)f(it)g(is)f(published)e(as)k ! (a)f(prin)m(ted)f(b)s(o)s(ok.)44 b(W)-8 b(e)32 b(recommend)f(this)g ! (License)g(principally)c(for)330 3362 y(w)m(orks)j(whose)h(purp)s(ose)d ! (is)i(instruction)e(or)i(reference.)199 3500 y(1.)61 ! b(APPLICABILITY)29 b(AND)j(DEFINITIONS)330 3639 y(This)38 ! b(License)i(applies)e(to)i(an)m(y)h(man)m(ual)e(or)h(other)g(w)m(ork,)i ! (in)d(an)m(y)h(medium,)h(that)f(con)m(tains)h(a)330 3748 ! y(notice)h(placed)f(b)m(y)g(the)h(cop)m(yrigh)m(t)g(holder)e(sa)m(ying) ! h(it)g(can)h(b)s(e)f(distributed)d(under)i(the)i(terms)330 ! 3858 y(of)c(this)e(License.)61 b(Suc)m(h)37 b(a)h(notice)g(gran)m(ts)g ! (a)g(w)m(orld-wide,)f(ro)m(y)m(alt)m(y-free)j(license,)e(unlimited)c ! (in)330 3967 y(duration,)48 b(to)e(use)f(that)g(w)m(ork)h(under)d(the)j ! (conditions)d(stated)j(herein.)84 b(The)45 b(\\Do)s(cumen)m(t",)330 ! 4077 y(b)s(elo)m(w,)28 b(refers)g(to)h(an)m(y)g(suc)m(h)f(man)m(ual)g ! (or)g(w)m(ork.)40 b(An)m(y)29 b(mem)m(b)s(er)e(of)i(the)f(public)e(is)h ! (a)i(licensee,)g(and)330 4187 y(is)24 b(addressed)g(as)h(\\y)m(ou".)40 ! b(Y)-8 b(ou)26 b(accept)g(the)f(license)f(if)g(y)m(ou)i(cop)m(y)-8 ! b(,)27 b(mo)s(dify)c(or)i(distribute)e(the)i(w)m(ork)330 ! 4296 y(in)k(a)i(w)m(a)m(y)g(requiring)d(p)s(ermission)f(under)i(cop)m ! (yrigh)m(t)i(la)m(w.)330 4435 y(A)j(\\Mo)s(di\014ed)e(V)-8 ! b(ersion")34 b(of)g(the)g(Do)s(cumen)m(t)g(means)g(an)m(y)g(w)m(ork)f ! (con)m(taining)h(the)g(Do)s(cumen)m(t)g(or)330 4544 y(a)k(p)s(ortion)e ! (of)i(it,)h(either)e(copied)g(v)m(erbatim,)i(or)e(with)g(mo)s ! (di\014cations)e(and/or)j(translated)f(in)m(to)330 4654 ! y(another)31 b(language.)330 4792 y(A)26 b(\\Secondary)g(Section")g(is) ! f(a)i(named)e(app)s(endix)e(or)j(a)h(fron)m(t-matter)g(section)f(of)g ! (the)g(Do)s(cumen)m(t)330 4902 y(that)c(deals)f(exclusiv)m(ely)f(with)g ! (the)h(relationship)e(of)i(the)h(publishers)17 b(or)k(authors)g(of)h ! (the)f(Do)s(cumen)m(t)330 5011 y(to)38 b(the)f(Do)s(cumen)m(t's)i(o)m ! (v)m(erall)e(sub)5 b(ject)37 b(\(or)h(to)g(related)f(matters\))h(and)f ! (con)m(tains)g(nothing)f(that)330 5121 y(could)j(fall)g(directly)g ! (within)f(that)j(o)m(v)m(erall)g(sub)5 b(ject.)70 b(\(Th)m(us,)42 ! b(if)d(the)i(Do)s(cumen)m(t)g(is)e(in)g(part)i(a)330 ! 5230 y(textb)s(o)s(ok)24 b(of)g(mathematics,)i(a)e(Secondary)f(Section) ! g(ma)m(y)h(not)g(explain)e(an)m(y)i(mathematics.\))39 ! b(The)330 5340 y(relationship)25 b(could)h(b)s(e)h(a)g(matter)i(of)e ! (historical)f(connection)h(with)f(the)i(sub)5 b(ject)27 ! b(or)g(with)f(related)p eop ! %%Page: 14 18 ! 14 17 bop 150 -116 a Fr(14)2651 b(GNU)31 b(History)f(Library)330 ! 299 y(matters,)38 b(or)d(of)h(legal,)g(commercial,)h(philosophical,)d ! (ethical)h(or)g(p)s(olitical)e(p)s(osition)h(regarding)330 ! 408 y(them.)330 549 y(The)25 b(\\In)m(v)-5 b(arian)m(t)26 ! b(Sections")g(are)g(certain)f(Secondary)h(Sections)f(whose)g(titles)g ! (are)h(designated,)h(as)330 659 y(b)s(eing)e(those)i(of)g(In)m(v)-5 ! b(arian)m(t)26 b(Sections,)i(in)d(the)i(notice)g(that)g(sa)m(ys)g(that) ! g(the)g(Do)s(cumen)m(t)g(is)f(released)330 769 y(under)g(this)h ! (License.)39 b(If)27 b(a)h(section)g(do)s(es)g(not)f(\014t)h(the)g(ab)s ! (o)m(v)m(e)h(de\014nition)c(of)j(Secondary)f(then)h(it)f(is)330 ! 878 y(not)32 b(allo)m(w)m(ed)g(to)g(b)s(e)g(designated)f(as)h(In)m(v)-5 ! b(arian)m(t.)45 b(The)31 b(Do)s(cumen)m(t)i(ma)m(y)f(con)m(tain)h(zero) ! f(In)m(v)-5 b(arian)m(t)330 988 y(Sections.)38 b(If)25 ! b(the)f(Do)s(cumen)m(t)i(do)s(es)e(not)h(iden)m(tify)e(an)m(y)i(In)m(v) ! -5 b(arian)m(t)24 b(Sections)h(then)f(there)h(are)g(none.)330 ! 1129 y(The)36 b(\\Co)m(v)m(er)i(T)-8 b(exts")38 b(are)f(certain)f ! (short)h(passages)g(of)g(text)g(that)h(are)f(listed,)g(as)f(F)-8 ! b(ron)m(t-Co)m(v)m(er)330 1238 y(T)g(exts)26 b(or)f(Bac)m(k-Co)m(v)m ! (er)j(T)-8 b(exts,)27 b(in)c(the)i(notice)h(that)f(sa)m(ys)h(that)g ! (the)f(Do)s(cumen)m(t)h(is)e(released)g(under)330 1348 ! y(this)h(License.)39 b(A)25 b(F)-8 b(ron)m(t-Co)m(v)m(er)29 ! b(T)-8 b(ext)26 b(ma)m(y)h(b)s(e)e(at)i(most)f(5)g(w)m(ords,)g(and)g(a) ! g(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext)26 b(ma)m(y)330 1457 ! y(b)s(e)k(at)h(most)g(25)g(w)m(ords.)330 1598 y(A)36 ! b(\\T)-8 b(ransparen)m(t")36 b(cop)m(y)g(of)g(the)f(Do)s(cumen)m(t)h ! (means)g(a)g(mac)m(hine-readable)f(cop)m(y)-8 b(,)38 ! b(represen)m(ted)330 1708 y(in)c(a)i(format)g(whose)g(sp)s ! (eci\014cation)e(is)h(a)m(v)-5 b(ailable)35 b(to)i(the)f(general)f ! (public,)g(that)h(is)f(suitable)f(for)330 1817 y(revising)c(the)i(do)s ! (cumen)m(t)f(straigh)m(tforw)m(ardly)g(with)f(generic)i(text)h(editors) ! e(or)g(\(for)h(images)g(com-)330 1927 y(p)s(osed)23 b(of)h(pixels\))e ! (generic)i(pain)m(t)f(programs)h(or)f(\(for)h(dra)m(wings\))f(some)h ! (widely)e(a)m(v)-5 b(ailable)23 b(dra)m(wing)330 2037 ! y(editor,)29 b(and)g(that)g(is)f(suitable)g(for)h(input)e(to)j(text)g ! (formatters)f(or)g(for)g(automatic)h(translation)e(to)330 ! 2146 y(a)f(v)-5 b(ariet)m(y)27 b(of)g(formats)g(suitable)f(for)g(input) ! f(to)j(text)g(formatters.)40 b(A)27 b(cop)m(y)g(made)g(in)f(an)h ! (otherwise)330 2256 y(T)-8 b(ransparen)m(t)37 b(\014le)g(format)h ! (whose)f(markup,)i(or)e(absence)h(of)g(markup,)g(has)g(b)s(een)f ! (arranged)g(to)330 2365 y(th)m(w)m(art)27 b(or)g(discourage)f ! (subsequen)m(t)g(mo)s(di\014cation)f(b)m(y)i(readers)f(is)f(not)i(T)-8 ! b(ransparen)m(t.)39 b(An)27 b(image)330 2475 y(format)35 ! b(is)e(not)i(T)-8 b(ransparen)m(t)34 b(if)f(used)h(for)g(an)m(y)g ! (substan)m(tial)f(amoun)m(t)i(of)g(text.)53 b(A)35 b(cop)m(y)g(that)g ! (is)330 2585 y(not)c(\\T)-8 b(ransparen)m(t")31 b(is)e(called)h ! (\\Opaque".)330 2725 y(Examples)52 b(of)h(suitable)f(formats)h(for)g(T) ! -8 b(ransparen)m(t)53 b(copies)g(include)e(plain)g Fk(asci)r(i)i ! Fr(without)330 2835 y(markup,)41 b(T)-8 b(exinfo)39 b(input)f(format,)k ! (LaT)1775 2855 y(E)1826 2835 y(X)d(input)f(format,)43 ! b Fk(sgml)c Fr(or)g Fk(xml)g Fr(using)f(a)i(publicly)330 ! 2945 y(a)m(v)-5 b(ailable)31 b Fk(dtd)p Fr(,)g(and)g ! (standard-conforming)f(simple)g Fk(html)p Fr(,)h(P)m(ostScript)g(or)g ! Fk(pdf)g Fr(designed)f(for)330 3054 y(h)m(uman)37 b(mo)s(di\014cation.) ! 63 b(Examples)37 b(of)h(transparen)m(t)g(image)h(formats)f(include)e ! Fk(png)p Fr(,)k Fk(x)n(cf)e Fr(and)330 3164 y Fk(jpg)p ! Fr(.)63 b(Opaque)38 b(formats)g(include)e(proprietary)h(formats)h(that) ! h(can)f(b)s(e)g(read)g(and)f(edited)h(only)330 3273 y(b)m(y)h ! (proprietary)f(w)m(ord)h(pro)s(cessors,)j Fk(sgml)c Fr(or)i ! Fk(xml)e Fr(for)i(whic)m(h)e(the)h Fk(dtd)g Fr(and/or)g(pro)s(cessing) ! 330 3383 y(to)s(ols)31 b(are)g(not)g(generally)f(a)m(v)-5 ! b(ailable,)31 b(and)f(the)h(mac)m(hine-generated)h Fk(html)p ! Fr(,)e(P)m(ostScript)h(or)g Fk(pdf)330 3493 y Fr(pro)s(duced)e(b)m(y)h ! (some)h(w)m(ord)f(pro)s(cessors)g(for)g(output)g(purp)s(oses)e(only)-8 ! b(.)330 3634 y(The)34 b(\\Title)f(P)m(age")k(means,)e(for)f(a)h(prin)m ! (ted)e(b)s(o)s(ok,)i(the)f(title)g(page)h(itself,)f(plus)f(suc)m(h)g ! (follo)m(wing)330 3743 y(pages)28 b(as)g(are)g(needed)g(to)g(hold,)f ! (legibly)-8 b(,)27 b(the)h(material)f(this)g(License)g(requires)f(to)i ! (app)s(ear)f(in)g(the)330 3853 y(title)f(page.)40 b(F)-8 ! b(or)28 b(w)m(orks)e(in)f(formats)i(whic)m(h)f(do)g(not)h(ha)m(v)m(e)h ! (an)m(y)e(title)h(page)g(as)g(suc)m(h,)g(\\Title)f(P)m(age")330 ! 3962 y(means)31 b(the)f(text)i(near)e(the)h(most)g(prominen)m(t)f(app)s ! (earance)g(of)h(the)g(w)m(ork's)g(title,)f(preceding)g(the)330 ! 4072 y(b)s(eginning)e(of)i(the)h(b)s(o)s(dy)e(of)h(the)h(text.)330 ! 4213 y(A)f(section)g(\\En)m(titled)f(XYZ")h(means)f(a)h(named)g ! (subunit)d(of)i(the)h(Do)s(cumen)m(t)h(whose)e(title)g(either)330 ! 4322 y(is)e(precisely)f(XYZ)i(or)f(con)m(tains)h(XYZ)g(in)e(paren)m ! (theses)j(follo)m(wing)d(text)j(that)f(translates)g(XYZ)f(in)330 ! 4432 y(another)e(language.)39 b(\(Here)26 b(XYZ)f(stands)f(for)h(a)g ! (sp)s(eci\014c)f(section)h(name)g(men)m(tioned)g(b)s(elo)m(w,)g(suc)m ! (h)330 4542 y(as)j(\\Ac)m(kno)m(wledgemen)m(ts",)k(\\Dedications",)d ! (\\Endorsemen)m(ts",)g(or)f(\\History".\))41 b(T)-8 b(o)29 ! b(\\Preserv)m(e)330 4651 y(the)34 b(Title")f(of)g(suc)m(h)h(a)g ! (section)f(when)g(y)m(ou)h(mo)s(dify)d(the)j(Do)s(cumen)m(t)h(means)e ! (that)h(it)f(remains)g(a)330 4761 y(section)e(\\En)m(titled)e(XYZ")i ! (according)f(to)h(this)f(de\014nition.)330 4902 y(The)d(Do)s(cumen)m(t) ! i(ma)m(y)f(include)d(W)-8 b(arran)m(t)m(y)30 b(Disclaimers)c(next)i(to) ! g(the)g(notice)g(whic)m(h)e(states)j(that)330 5011 y(this)k(License)g ! (applies)f(to)j(the)f(Do)s(cumen)m(t.)52 b(These)33 b(W)-8 ! b(arran)m(t)m(y)36 b(Disclaimers)c(are)j(considered)d(to)330 ! 5121 y(b)s(e)37 b(included)e(b)m(y)i(reference)h(in)f(this)f(License,)j ! (but)e(only)g(as)h(regards)f(disclaiming)e(w)m(arran)m(ties:)330 ! 5230 y(an)m(y)i(other)g(implication)e(that)i(these)g(W)-8 ! b(arran)m(t)m(y)39 b(Disclaimers)c(ma)m(y)j(ha)m(v)m(e)g(is)e(v)m(oid)g ! (and)g(has)h(no)330 5340 y(e\013ect)32 b(on)e(the)h(meaning)e(of)i ! (this)e(License.)p eop ! %%Page: 15 19 ! 15 18 bop 150 -116 a Fr(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m ! (ual)2104 b(15)199 299 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)330 ! 445 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)f(the)i(Do)s ! (cumen)m(t)h(in)e(an)m(y)h(medium,)g(either)g(commercially)f(or)330 ! 555 y(noncommercially)-8 b(,)45 b(pro)m(vided)c(that)i(this)e(License,) ! 46 b(the)c(cop)m(yrigh)m(t)h(notices,)j(and)c(the)h(license)330 ! 664 y(notice)36 b(sa)m(ying)g(this)e(License)i(applies)d(to)k(the)f(Do) ! s(cumen)m(t)g(are)g(repro)s(duced)e(in)h(all)f(copies,)k(and)330 ! 774 y(that)27 b(y)m(ou)g(add)f(no)h(other)f(conditions)f(whatso)s(ev)m ! (er)j(to)f(those)g(of)g(this)e(License.)39 b(Y)-8 b(ou)27 ! b(ma)m(y)g(not)g(use)330 883 y(tec)m(hnical)33 b(measures)f(to)i ! (obstruct)f(or)g(con)m(trol)g(the)g(reading)f(or)h(further)e(cop)m ! (ying)i(of)g(the)g(copies)330 993 y(y)m(ou)25 b(mak)m(e)g(or)g ! (distribute.)36 b(Ho)m(w)m(ev)m(er,)28 b(y)m(ou)d(ma)m(y)g(accept)h ! (comp)s(ensation)e(in)f(exc)m(hange)k(for)d(copies.)330 ! 1103 y(If)32 b(y)m(ou)g(distribute)e(a)j(large)f(enough)g(n)m(um)m(b)s ! (er)f(of)h(copies)g(y)m(ou)g(m)m(ust)h(also)f(follo)m(w)f(the)h ! (conditions)330 1212 y(in)d(section)i(3.)330 1358 y(Y)-8 ! b(ou)21 b(ma)m(y)h(also)e(lend)g(copies,)i(under)e(the)h(same)g ! (conditions)e(stated)j(ab)s(o)m(v)m(e,)i(and)c(y)m(ou)h(ma)m(y)g ! (publicly)330 1468 y(displa)m(y)29 b(copies.)199 1614 ! y(3.)61 b(COPYING)30 b(IN)g(QUANTITY)330 1760 y(If)25 ! b(y)m(ou)g(publish)d(prin)m(ted)h(copies)i(\(or)h(copies)f(in)f(media)g ! (that)i(commonly)f(ha)m(v)m(e)h(prin)m(ted)e(co)m(v)m(ers\))j(of)330 ! 1870 y(the)32 b(Do)s(cumen)m(t,)h(n)m(um)m(b)s(ering)d(more)i(than)f ! (100,)j(and)d(the)h(Do)s(cumen)m(t's)h(license)d(notice)i(requires)330 ! 1979 y(Co)m(v)m(er)j(T)-8 b(exts,)36 b(y)m(ou)f(m)m(ust)f(enclose)h ! (the)f(copies)g(in)f(co)m(v)m(ers)j(that)f(carry)-8 b(,)36 ! b(clearly)d(and)h(legibly)-8 b(,)34 b(all)330 2089 y(these)40 ! b(Co)m(v)m(er)g(T)-8 b(exts:)59 b(F)-8 b(ron)m(t-Co)m(v)m(er)41 ! b(T)-8 b(exts)40 b(on)f(the)g(fron)m(t)g(co)m(v)m(er,)44 ! b(and)38 b(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts)40 b(on)330 ! 2198 y(the)29 b(bac)m(k)h(co)m(v)m(er.)42 b(Both)30 b(co)m(v)m(ers)h(m) ! m(ust)e(also)g(clearly)f(and)h(legibly)e(iden)m(tify)g(y)m(ou)j(as)f ! (the)h(publisher)330 2308 y(of)k(these)h(copies.)52 b(The)34 ! b(fron)m(t)h(co)m(v)m(er)h(m)m(ust)e(presen)m(t)g(the)h(full)d(title)i ! (with)e(all)i(w)m(ords)f(of)i(the)f(title)330 2418 y(equally)c ! (prominen)m(t)f(and)h(visible.)40 b(Y)-8 b(ou)31 b(ma)m(y)g(add)g ! (other)g(material)f(on)h(the)g(co)m(v)m(ers)h(in)d(addition.)330 ! 2527 y(Cop)m(ying)35 b(with)g(c)m(hanges)i(limited)d(to)j(the)g(co)m(v) ! m(ers,)i(as)d(long)g(as)h(they)f(preserv)m(e)g(the)h(title)e(of)i(the) ! 330 2637 y(Do)s(cumen)m(t)h(and)e(satisfy)h(these)g(conditions,)h(can)f ! (b)s(e)g(treated)h(as)f(v)m(erbatim)g(cop)m(ying)g(in)f(other)330 ! 2746 y(resp)s(ects.)330 2892 y(If)c(the)h(required)e(texts)j(for)e ! (either)g(co)m(v)m(er)j(are)e(to)s(o)g(v)m(oluminous)e(to)i(\014t)g ! (legibly)-8 b(,)32 b(y)m(ou)h(should)e(put)330 3002 y(the)i(\014rst)f ! (ones)h(listed)e(\(as)j(man)m(y)f(as)g(\014t)g(reasonably\))f(on)h(the) ! g(actual)g(co)m(v)m(er,)i(and)e(con)m(tin)m(ue)g(the)330 ! 3112 y(rest)e(on)m(to)g(adjacen)m(t)h(pages.)330 3258 ! y(If)27 b(y)m(ou)g(publish)c(or)k(distribute)e(Opaque)h(copies)h(of)g ! (the)h(Do)s(cumen)m(t)f(n)m(um)m(b)s(ering)e(more)j(than)e(100,)330 ! 3367 y(y)m(ou)i(m)m(ust)g(either)g(include)d(a)k(mac)m(hine-readable)e ! (T)-8 b(ransparen)m(t)28 b(cop)m(y)h(along)f(with)e(eac)m(h)j(Opaque) ! 330 3477 y(cop)m(y)-8 b(,)38 b(or)d(state)h(in)e(or)h(with)f(eac)m(h)i ! (Opaque)e(cop)m(y)i(a)g(computer-net)m(w)m(ork)g(lo)s(cation)f(from)f ! (whic)m(h)330 3587 y(the)24 b(general)h(net)m(w)m(ork-using)f(public)d ! (has)j(access)i(to)f(do)m(wnload)e(using)g(public-standard)e(net)m(w)m ! (ork)330 3696 y(proto)s(cols)39 b(a)g(complete)g(T)-8 ! b(ransparen)m(t)39 b(cop)m(y)g(of)g(the)h(Do)s(cumen)m(t,)i(free)d(of)g ! (added)f(material.)65 b(If)330 3806 y(y)m(ou)39 b(use)g(the)g(latter)g ! (option,)h(y)m(ou)g(m)m(ust)e(tak)m(e)j(reasonably)d(pruden)m(t)f ! (steps,)k(when)d(y)m(ou)h(b)s(egin)330 3915 y(distribution)c(of)j ! (Opaque)g(copies)g(in)e(quan)m(tit)m(y)-8 b(,)42 b(to)c(ensure)g(that)h ! (this)e(T)-8 b(ransparen)m(t)38 b(cop)m(y)h(will)330 ! 4025 y(remain)29 b(th)m(us)h(accessible)g(at)h(the)f(stated)h(lo)s ! (cation)f(un)m(til)e(at)j(least)g(one)f(y)m(ear)h(after)g(the)f(last)g ! (time)330 4134 y(y)m(ou)37 b(distribute)d(an)j(Opaque)f(cop)m(y)i ! (\(directly)e(or)g(through)g(y)m(our)h(agen)m(ts)h(or)f(retailers\))f ! (of)h(that)330 4244 y(edition)29 b(to)i(the)g(public.)330 ! 4390 y(It)k(is)e(requested,)j(but)e(not)h(required,)f(that)h(y)m(ou)g ! (con)m(tact)h(the)f(authors)f(of)h(the)g(Do)s(cumen)m(t)g(w)m(ell)330 ! 4500 y(b)s(efore)28 b(redistributing)d(an)m(y)k(large)g(n)m(um)m(b)s ! (er)e(of)i(copies,)g(to)g(giv)m(e)g(them)g(a)g(c)m(hance)h(to)f(pro)m ! (vide)f(y)m(ou)330 4609 y(with)h(an)h(up)s(dated)f(v)m(ersion)h(of)h ! (the)f(Do)s(cumen)m(t.)199 4755 y(4.)61 b(MODIFICA)-8 ! b(TIONS)330 4902 y(Y)g(ou)26 b(ma)m(y)g(cop)m(y)g(and)f(distribute)e(a) ! j(Mo)s(di\014ed)e(V)-8 b(ersion)25 b(of)h(the)g(Do)s(cumen)m(t)g(under) ! e(the)h(conditions)330 5011 y(of)c(sections)g(2)h(and)e(3)h(ab)s(o)m(v) ! m(e,)k(pro)m(vided)19 b(that)j(y)m(ou)f(release)h(the)f(Mo)s(di\014ed)e ! (V)-8 b(ersion)21 b(under)e(precisely)330 5121 y(this)28 ! b(License,)h(with)f(the)h(Mo)s(di\014ed)e(V)-8 b(ersion)29 ! b(\014lling)d(the)j(role)g(of)g(the)g(Do)s(cumen)m(t,)h(th)m(us)f ! (licensing)330 5230 y(distribution)h(and)k(mo)s(di\014cation)e(of)j ! (the)f(Mo)s(di\014ed)e(V)-8 b(ersion)34 b(to)h(who)s(ev)m(er)f(p)s ! (ossesses)f(a)i(cop)m(y)g(of)330 5340 y(it.)40 b(In)30 ! b(addition,)f(y)m(ou)h(m)m(ust)h(do)f(these)h(things)e(in)g(the)i(Mo)s ! (di\014ed)d(V)-8 b(ersion:)p eop ! %%Page: 16 20 ! 16 19 bop 150 -116 a Fr(16)2651 b(GNU)31 b(History)f(Library)357 ! 299 y(A.)60 b(Use)33 b(in)e(the)i(Title)f(P)m(age)i(\(and)f(on)f(the)h ! (co)m(v)m(ers,)i(if)d(an)m(y\))h(a)g(title)f(distinct)f(from)i(that)g ! (of)g(the)510 408 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f ! (previous)e(v)m(ersions)h(\(whic)m(h)g(should,)g(if)g(there)h(w)m(ere)g ! (an)m(y)-8 b(,)510 518 y(b)s(e)31 b(listed)f(in)g(the)h(History)g ! (section)g(of)h(the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 ! b(ma)m(y)g(use)f(the)g(same)h(title)f(as)510 628 y(a)g(previous)e(v)m ! (ersion)g(if)h(the)g(original)f(publisher)e(of)j(that)h(v)m(ersion)f ! (giv)m(es)h(p)s(ermission.)360 758 y(B.)61 b(List)30 ! b(on)g(the)h(Title)e(P)m(age,)k(as)d(authors,)h(one)g(or)f(more)h(p)s ! (ersons)e(or)h(en)m(tities)h(resp)s(onsible)c(for)510 ! 867 y(authorship)d(of)i(the)h(mo)s(di\014cations)d(in)h(the)h(Mo)s ! (di\014ed)e(V)-8 b(ersion,)27 b(together)h(with)c(at)j(least)g(\014v)m ! (e)510 977 y(of)d(the)g(principal)d(authors)i(of)i(the)f(Do)s(cumen)m ! (t)g(\(all)f(of)i(its)e(principal)e(authors,)k(if)e(it)g(has)h(few)m ! (er)510 1087 y(than)30 b(\014v)m(e\),)h(unless)e(they)i(release)f(y)m ! (ou)h(from)f(this)f(requiremen)m(t.)359 1217 y(C.)60 ! b(State)32 b(on)e(the)h(Title)f(page)h(the)g(name)g(of)g(the)g ! (publisher)c(of)k(the)g(Mo)s(di\014ed)e(V)-8 b(ersion,)31 ! b(as)g(the)510 1326 y(publisher.)355 1456 y(D.)61 b(Preserv)m(e)31 ! b(all)e(the)i(cop)m(yrigh)m(t)g(notices)f(of)h(the)f(Do)s(cumen)m(t.) ! 363 1587 y(E.)60 b(Add)30 b(an)i(appropriate)e(cop)m(yrigh)m(t)i ! (notice)f(for)h(y)m(our)f(mo)s(di\014cations)e(adjacen)m(t)k(to)f(the)g ! (other)510 1696 y(cop)m(yrigh)m(t)f(notices.)365 1826 ! y(F.)61 b(Include,)27 b(immediately)f(after)i(the)h(cop)m(yrigh)m(t)f ! (notices,)h(a)f(license)f(notice)h(giving)f(the)h(public)510 ! 1936 y(p)s(ermission)21 b(to)26 b(use)e(the)g(Mo)s(di\014ed)f(V)-8 ! b(ersion)24 b(under)f(the)i(terms)f(of)h(this)e(License,)j(in)d(the)h ! (form)510 2045 y(sho)m(wn)30 b(in)f(the)h(Addendum)f(b)s(elo)m(w.)353 ! 2176 y(G.)61 b(Preserv)m(e)23 b(in)f(that)h(license)f(notice)h(the)g ! (full)e(lists)g(of)i(In)m(v)-5 b(arian)m(t)22 b(Sections)h(and)f ! (required)f(Co)m(v)m(er)510 2285 y(T)-8 b(exts)31 b(giv)m(en)f(in)f ! (the)i(Do)s(cumen)m(t's)g(license)f(notice.)357 2415 ! y(H.)60 b(Include)29 b(an)h(unaltered)f(cop)m(y)i(of)g(this)e(License.) ! 392 2545 y(I.)60 b(Preserv)m(e)33 b(the)f(section)g(En)m(titled)f ! (\\History",)i(Preserv)m(e)g(its)e(Title,)h(and)f(add)h(to)h(it)e(an)h ! (item)510 2655 y(stating)c(at)h(least)f(the)h(title,)f(y)m(ear,)i(new)d ! (authors,)i(and)e(publisher)d(of)29 b(the)f(Mo)s(di\014ed)e(V)-8 ! b(ersion)510 2765 y(as)32 b(giv)m(en)f(on)g(the)h(Title)e(P)m(age.)45 ! b(If)31 b(there)h(is)e(no)h(section)h(En)m(titled)e(\\History")i(in)e ! (the)h(Do)s(cu-)510 2874 y(men)m(t,)37 b(create)f(one)f(stating)g(the)g ! (title,)g(y)m(ear,)i(authors,)f(and)e(publisher)d(of)k(the)g(Do)s ! (cumen)m(t)510 2984 y(as)h(giv)m(en)g(on)g(its)g(Title)f(P)m(age,)k ! (then)d(add)g(an)g(item)f(describing)f(the)i(Mo)s(di\014ed)f(V)-8 ! b(ersion)36 b(as)510 3093 y(stated)31 b(in)e(the)i(previous)e(sen)m ! (tence.)378 3224 y(J.)60 b(Preserv)m(e)33 b(the)g(net)m(w)m(ork)g(lo)s ! (cation,)g(if)e(an)m(y)-8 b(,)34 b(giv)m(en)e(in)g(the)g(Do)s(cumen)m ! (t)h(for)g(public)c(access)34 b(to)510 3333 y(a)e(T)-8 ! b(ransparen)m(t)30 b(cop)m(y)i(of)g(the)f(Do)s(cumen)m(t,)h(and)f(lik)m ! (ewise)e(the)j(net)m(w)m(ork)g(lo)s(cations)e(giv)m(en)h(in)510 ! 3443 y(the)h(Do)s(cumen)m(t)g(for)g(previous)e(v)m(ersions)h(it)g(w)m ! (as)h(based)f(on.)45 b(These)31 b(ma)m(y)h(b)s(e)f(placed)g(in)g(the) ! 510 3552 y(\\History")26 b(section.)39 b(Y)-8 b(ou)25 ! b(ma)m(y)h(omit)f(a)g(net)m(w)m(ork)h(lo)s(cation)e(for)h(a)h(w)m(ork)f ! (that)g(w)m(as)h(published)510 3662 y(at)36 b(least)g(four)f(y)m(ears)i ! (b)s(efore)e(the)h(Do)s(cumen)m(t)h(itself,)f(or)f(if)g(the)h(original) ! e(publisher)e(of)k(the)510 3771 y(v)m(ersion)30 b(it)g(refers)g(to)h ! (giv)m(es)g(p)s(ermission.)354 3902 y(K.)60 b(F)-8 b(or)24 ! b(an)m(y)h(section)e(En)m(titled)g(\\Ac)m(kno)m(wledgemen)m(ts")j(or)e ! (\\Dedications",)i(Preserv)m(e)e(the)g(Title)510 4011 ! y(of)j(the)f(section,)i(and)e(preserv)m(e)h(in)e(the)i(section)f(all)g ! (the)g(substance)h(and)f(tone)h(of)f(eac)m(h)i(of)f(the)510 ! 4121 y(con)m(tributor)j(ac)m(kno)m(wledgemen)m(ts)i(and/or)e ! (dedications)f(giv)m(en)i(therein.)368 4251 y(L.)60 b(Preserv)m(e)36 ! b(all)e(the)i(In)m(v)-5 b(arian)m(t)35 b(Sections)g(of)g(the)h(Do)s ! (cumen)m(t,)h(unaltered)e(in)f(their)g(text)j(and)510 ! 4361 y(in)e(their)g(titles.)56 b(Section)36 b(n)m(um)m(b)s(ers)e(or)i ! (the)g(equiv)-5 b(alen)m(t)36 b(are)g(not)g(considered)f(part)h(of)g ! (the)510 4470 y(section)31 b(titles.)341 4600 y(M.)61 ! b(Delete)32 b(an)m(y)f(section)g(En)m(titled)e(\\Endorsemen)m(ts".)42 ! b(Suc)m(h)30 b(a)i(section)e(ma)m(y)i(not)f(b)s(e)f(included)510 ! 4710 y(in)f(the)i(Mo)s(di\014ed)d(V)-8 b(ersion.)357 ! 4840 y(N.)60 b(Do)29 b(not)g(retitle)f(an)m(y)g(existing)g(section)g ! (to)h(b)s(e)f(En)m(titled)f(\\Endorsemen)m(ts")i(or)f(to)h(con\015ict)f ! (in)510 4950 y(title)i(with)f(an)m(y)i(In)m(v)-5 b(arian)m(t)30 ! b(Section.)354 5080 y(O.)60 b(Preserv)m(e)31 b(an)m(y)g(W)-8 ! b(arran)m(t)m(y)32 b(Disclaimers.)330 5230 y(If)h(the)g(Mo)s(di\014ed)f ! (V)-8 b(ersion)33 b(includes)e(new)i(fron)m(t-matter)i(sections)e(or)g ! (app)s(endices)f(that)i(qualify)330 5340 y(as)28 b(Secondary)g ! (Sections)f(and)g(con)m(tain)i(no)e(material)h(copied)f(from)g(the)h ! (Do)s(cumen)m(t,)i(y)m(ou)e(ma)m(y)g(at)p eop ! %%Page: 17 21 ! 17 20 bop 150 -116 a Fr(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m ! (ual)2104 b(17)330 299 y(y)m(our)32 b(option)g(designate)h(some)f(or)h ! (all)e(of)h(these)h(sections)g(as)f(in)m(v)-5 b(arian)m(t.)46 ! b(T)-8 b(o)33 b(do)f(this,)g(add)g(their)330 408 y(titles)j(to)h(the)f ! (list)f(of)i(In)m(v)-5 b(arian)m(t)35 b(Sections)g(in)f(the)i(Mo)s ! (di\014ed)e(V)-8 b(ersion's)35 b(license)f(notice.)56 ! b(These)330 518 y(titles)30 b(m)m(ust)g(b)s(e)g(distinct)f(from)g(an)m ! (y)i(other)g(section)f(titles.)330 650 y(Y)-8 b(ou)43 ! b(ma)m(y)g(add)f(a)g(section)h(En)m(titled)e(\\Endorsemen)m(ts",)46 ! b(pro)m(vided)41 b(it)h(con)m(tains)g(nothing)g(but)330 ! 759 y(endorsemen)m(ts)30 b(of)g(y)m(our)f(Mo)s(di\014ed)f(V)-8 ! b(ersion)30 b(b)m(y)f(v)-5 b(arious)29 b(parties|for)g(example,)g ! (statemen)m(ts)j(of)330 869 y(p)s(eer)27 b(review)f(or)h(that)h(the)f ! (text)i(has)d(b)s(een)h(appro)m(v)m(ed)g(b)m(y)g(an)h(organization)f ! (as)g(the)h(authoritativ)m(e)330 978 y(de\014nition)g(of)j(a)f ! (standard.)330 1110 y(Y)-8 b(ou)29 b(ma)m(y)g(add)e(a)i(passage)g(of)g ! (up)e(to)i(\014v)m(e)g(w)m(ords)e(as)i(a)g(F)-8 b(ron)m(t-Co)m(v)m(er) ! 30 b(T)-8 b(ext,)30 b(and)e(a)g(passage)i(of)e(up)330 ! 1219 y(to)g(25)g(w)m(ords)e(as)i(a)f(Bac)m(k-Co)m(v)m(er)j(T)-8 ! b(ext,)29 b(to)f(the)f(end)f(of)i(the)f(list)f(of)h(Co)m(v)m(er)h(T)-8 ! b(exts)27 b(in)f(the)i(Mo)s(di\014ed)330 1329 y(V)-8 ! b(ersion.)57 b(Only)34 b(one)i(passage)h(of)f(F)-8 b(ron)m(t-Co)m(v)m ! (er)38 b(T)-8 b(ext)36 b(and)g(one)g(of)g(Bac)m(k-Co)m(v)m(er)j(T)-8 ! b(ext)36 b(ma)m(y)h(b)s(e)330 1439 y(added)27 b(b)m(y)g(\(or)h(through) ! f(arrangemen)m(ts)h(made)g(b)m(y\))g(an)m(y)g(one)f(en)m(tit)m(y)-8 ! b(.)41 b(If)27 b(the)h(Do)s(cumen)m(t)g(already)330 1548 ! y(includes)k(a)i(co)m(v)m(er)h(text)g(for)f(the)g(same)h(co)m(v)m(er,)h ! (previously)c(added)h(b)m(y)h(y)m(ou)g(or)g(b)m(y)g(arrangemen)m(t)330 ! 1658 y(made)h(b)m(y)g(the)h(same)f(en)m(tit)m(y)h(y)m(ou)g(are)f ! (acting)h(on)f(b)s(ehalf)e(of,)k(y)m(ou)f(ma)m(y)g(not)f(add)g ! (another;)j(but)330 1767 y(y)m(ou)c(ma)m(y)h(replace)f(the)g(old)f ! (one,)j(on)e(explicit)e(p)s(ermission)f(from)i(the)i(previous)d ! (publisher)e(that)330 1877 y(added)g(the)g(old)g(one.)330 ! 2008 y(The)25 b(author\(s\))h(and)f(publisher\(s\))d(of)k(the)f(Do)s ! (cumen)m(t)h(do)g(not)f(b)m(y)h(this)e(License)h(giv)m(e)h(p)s ! (ermission)330 2118 y(to)31 b(use)f(their)f(names)i(for)f(publicit)m(y) ! d(for)k(or)f(to)h(assert)g(or)f(imply)e(endorsemen)m(t)i(of)h(an)m(y)g ! (Mo)s(di\014ed)330 2228 y(V)-8 b(ersion.)199 2359 y(5.)61 ! b(COMBINING)31 b(DOCUMENTS)330 2491 y(Y)-8 b(ou)39 b(ma)m(y)g(com)m ! (bine)g(the)g(Do)s(cumen)m(t)g(with)f(other)g(do)s(cumen)m(ts)h ! (released)f(under)g(this)f(License,)330 2600 y(under)g(the)h(terms)g ! (de\014ned)f(in)g(section)h(4)h(ab)s(o)m(v)m(e)g(for)f(mo)s(di\014ed)e ! (v)m(ersions,)k(pro)m(vided)d(that)i(y)m(ou)330 2710 ! y(include)23 b(in)h(the)h(com)m(bination)g(all)f(of)i(the)f(In)m(v)-5 ! b(arian)m(t)25 b(Sections)g(of)h(all)e(of)h(the)h(original)d(do)s ! (cumen)m(ts,)330 2819 y(unmo)s(di\014ed,)i(and)h(list)f(them)i(all)e ! (as)i(In)m(v)-5 b(arian)m(t)27 b(Sections)f(of)h(y)m(our)g(com)m(bined) ! f(w)m(ork)g(in)g(its)g(license)330 2929 y(notice,)31 ! b(and)f(that)h(y)m(ou)f(preserv)m(e)h(all)e(their)h(W)-8 ! b(arran)m(t)m(y)32 b(Disclaimers.)330 3061 y(The)e(com)m(bined)f(w)m ! (ork)i(need)e(only)h(con)m(tain)g(one)h(cop)m(y)g(of)f(this)f(License,) ! i(and)e(m)m(ultiple)f(iden)m(tical)330 3170 y(In)m(v)-5 ! b(arian)m(t)32 b(Sections)g(ma)m(y)h(b)s(e)f(replaced)g(with)f(a)i ! (single)e(cop)m(y)-8 b(.)48 b(If)32 b(there)h(are)g(m)m(ultiple)d(In)m ! (v)-5 b(arian)m(t)330 3280 y(Sections)26 b(with)g(the)h(same)g(name)g ! (but)f(di\013eren)m(t)g(con)m(ten)m(ts,)j(mak)m(e)f(the)f(title)f(of)h ! (eac)m(h)h(suc)m(h)f(section)330 3389 y(unique)32 b(b)m(y)i(adding)e ! (at)j(the)f(end)g(of)g(it,)g(in)f(paren)m(theses,)j(the)e(name)g(of)g ! (the)g(original)e(author)i(or)330 3499 y(publisher)21 ! b(of)k(that)h(section)f(if)f(kno)m(wn,)i(or)f(else)g(a)g(unique)e(n)m ! (um)m(b)s(er.)38 b(Mak)m(e)26 b(the)g(same)f(adjustmen)m(t)330 ! 3608 y(to)g(the)g(section)f(titles)g(in)f(the)i(list)e(of)h(In)m(v)-5 ! b(arian)m(t)25 b(Sections)f(in)f(the)h(license)g(notice)h(of)f(the)h ! (com)m(bined)330 3718 y(w)m(ork.)330 3850 y(In)41 b(the)g(com)m ! (bination,)j(y)m(ou)d(m)m(ust)g(com)m(bine)g(an)m(y)h(sections)f(En)m ! (titled)f(\\History")i(in)e(the)h(v)-5 b(ari-)330 3959 ! y(ous)32 b(original)e(do)s(cumen)m(ts,)j(forming)e(one)h(section)g(En)m ! (titled)f(\\History";)j(lik)m(ewise)d(com)m(bine)h(an)m(y)330 ! 4069 y(sections)g(En)m(titled)e(\\Ac)m(kno)m(wledgemen)m(ts",)35 ! b(and)c(an)m(y)h(sections)g(En)m(titled)f(\\Dedications".)45 ! b(Y)-8 b(ou)330 4178 y(m)m(ust)30 b(delete)h(all)e(sections)i(En)m ! (titled)e(\\Endorsemen)m(ts.")199 4310 y(6.)61 b(COLLECTIONS)28 ! b(OF)i(DOCUMENTS)330 4441 y(Y)-8 b(ou)32 b(ma)m(y)h(mak)m(e)g(a)f ! (collection)f(consisting)g(of)h(the)g(Do)s(cumen)m(t)g(and)g(other)g ! (do)s(cumen)m(ts)f(released)330 4551 y(under)41 b(this)g(License,)k ! (and)d(replace)g(the)h(individual)38 b(copies)k(of)g(this)f(License)h ! (in)f(the)i(v)-5 b(arious)330 4661 y(do)s(cumen)m(ts)42 ! b(with)f(a)i(single)e(cop)m(y)j(that)f(is)e(included)f(in)h(the)i ! (collection,)i(pro)m(vided)c(that)j(y)m(ou)330 4770 y(follo)m(w)36 ! b(the)i(rules)d(of)i(this)f(License)h(for)g(v)m(erbatim)g(cop)m(ying)g ! (of)g(eac)m(h)h(of)f(the)h(do)s(cumen)m(ts)e(in)g(all)330 ! 4880 y(other)31 b(resp)s(ects.)330 5011 y(Y)-8 b(ou)32 ! b(ma)m(y)g(extract)h(a)f(single)e(do)s(cumen)m(t)h(from)g(suc)m(h)g(a)h ! (collection,)f(and)g(distribute)e(it)i(individu-)330 ! 5121 y(ally)j(under)f(this)h(License,)i(pro)m(vided)e(y)m(ou)h(insert)f ! (a)h(cop)m(y)h(of)f(this)f(License)g(in)m(to)h(the)h(extracted)330 ! 5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)g(this)f(License)h(in)g(all)f ! (other)i(resp)s(ects)f(regarding)g(v)m(erbatim)g(cop)m(ying)h(of)330 ! 5340 y(that)e(do)s(cumen)m(t.)p eop ! %%Page: 18 22 ! 18 21 bop 150 -116 a Fr(18)2651 b(GNU)31 b(History)f(Library)199 ! 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS) ! 330 428 y(A)d(compilation)f(of)h(the)g(Do)s(cumen)m(t)h(or)f(its)f ! (deriv)-5 b(ativ)m(es)28 b(with)e(other)j(separate)g(and)e(indep)s ! (enden)m(t)330 538 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)e(or)i ! (on)f(a)g(v)m(olume)g(of)h(a)f(storage)i(or)e(distribution)d(medium,)i ! (is)h(called)330 648 y(an)d(\\aggregate")k(if)29 b(the)h(cop)m(yrigh)m ! (t)h(resulting)d(from)h(the)i(compilation)d(is)h(not)i(used)e(to)i ! (limit)d(the)330 757 y(legal)e(righ)m(ts)g(of)h(the)g(compilation's)e ! (users)h(b)s(ey)m(ond)g(what)g(the)h(individual)22 b(w)m(orks)k(p)s ! (ermit.)38 b(When)330 867 y(the)28 b(Do)s(cumen)m(t)g(is)f(included)e ! (an)i(aggregate,)32 b(this)26 b(License)h(do)s(es)h(not)g(apply)e(to)i ! (the)g(other)g(w)m(orks)330 976 y(in)h(the)i(aggregate)i(whic)m(h)c ! (are)i(not)f(themselv)m(es)h(deriv)-5 b(ativ)m(e)30 b(w)m(orks)g(of)h ! (the)f(Do)s(cumen)m(t.)330 1106 y(If)22 b(the)h(Co)m(v)m(er)h(T)-8 ! b(ext)23 b(requiremen)m(t)f(of)h(section)g(3)g(is)f(applicable)f(to)i ! (these)h(copies)e(of)h(the)g(Do)s(cumen)m(t,)330 1215 ! y(then)f(if)f(the)i(Do)s(cumen)m(t)g(is)f(less)f(than)h(one)h(half)e ! (of)i(the)g(en)m(tire)f(aggregate,)27 b(the)c(Do)s(cumen)m(t's)g(Co)m ! (v)m(er)330 1325 y(T)-8 b(exts)27 b(ma)m(y)g(b)s(e)f(placed)g(on)h(co)m ! (v)m(ers)h(that)f(brac)m(k)m(et)h(the)f(Do)s(cumen)m(t)g(within)d(the)j ! (aggregate,)j(or)d(the)330 1435 y(electronic)35 b(equiv)-5 ! b(alen)m(t)34 b(of)i(co)m(v)m(ers)g(if)e(the)h(Do)s(cumen)m(t)h(is)e ! (in)g(electronic)h(form.)54 b(Otherwise)34 b(they)330 ! 1544 y(m)m(ust)c(app)s(ear)g(on)g(prin)m(ted)f(co)m(v)m(ers)j(that)f ! (brac)m(k)m(et)h(the)f(whole)e(aggregate.)199 1674 y(8.)61 ! b(TRANSLA)-8 b(TION)330 1803 y(T)g(ranslation)39 b(is)g(considered)f(a) ! j(kind)d(of)i(mo)s(di\014cation,)h(so)f(y)m(ou)g(ma)m(y)h(distribute)c ! (translations)330 1913 y(of)45 b(the)f(Do)s(cumen)m(t)h(under)e(the)h ! (terms)h(of)f(section)h(4.)83 b(Replacing)43 b(In)m(v)-5 ! b(arian)m(t)44 b(Sections)g(with)330 2022 y(translations)g(requires)g ! (sp)s(ecial)g(p)s(ermission)f(from)i(their)f(cop)m(yrigh)m(t)i ! (holders,)i(but)d(y)m(ou)g(ma)m(y)330 2132 y(include)22 ! b(translations)i(of)g(some)h(or)g(all)e(In)m(v)-5 b(arian)m(t)24 ! b(Sections)g(in)f(addition)g(to)i(the)g(original)e(v)m(ersions)330 ! 2242 y(of)32 b(these)f(In)m(v)-5 b(arian)m(t)32 b(Sections.)43 ! b(Y)-8 b(ou)32 b(ma)m(y)g(include)d(a)j(translation)e(of)i(this)e ! (License,)i(and)e(all)h(the)330 2351 y(license)40 b(notices)h(in)f(the) ! i(Do)s(cumen)m(t,)j(and)40 b(an)m(y)i(W)-8 b(arran)m(t)m(y)42 ! b(Disclaimers,)h(pro)m(vided)d(that)i(y)m(ou)330 2461 ! y(also)e(include)e(the)i(original)e(English)g(v)m(ersion)h(of)h(this)f ! (License)h(and)f(the)h(original)e(v)m(ersions)i(of)330 ! 2570 y(those)35 b(notices)f(and)f(disclaimers.)50 b(In)33 ! b(case)i(of)g(a)f(disagreemen)m(t)g(b)s(et)m(w)m(een)h(the)f ! (translation)g(and)330 2680 y(the)h(original)f(v)m(ersion)g(of)i(this)e ! (License)h(or)g(a)g(notice)h(or)f(disclaimer,)f(the)i(original)d(v)m ! (ersion)i(will)330 2790 y(prev)-5 b(ail.)330 2919 y(If)28 ! b(a)h(section)g(in)e(the)i(Do)s(cumen)m(t)h(is)d(En)m(titled)h(\\Ac)m ! (kno)m(wledgemen)m(ts",)j(\\Dedications",)f(or)f(\\His-)330 ! 3029 y(tory",)f(the)f(requiremen)m(t)e(\(section)i(4\))g(to)g(Preserv)m ! (e)g(its)e(Title)h(\(section)g(1\))h(will)d(t)m(ypically)h(require)330 ! 3138 y(c)m(hanging)30 b(the)h(actual)g(title.)199 3268 ! y(9.)61 b(TERMINA)-8 b(TION)330 3397 y(Y)g(ou)30 b(ma)m(y)h(not)f(cop)m ! (y)-8 b(,)31 b(mo)s(dify)-8 b(,)29 b(sublicense,)f(or)i(distribute)d ! (the)j(Do)s(cumen)m(t)g(except)h(as)f(expressly)330 3507 ! y(pro)m(vided)40 b(for)i(under)e(this)h(License.)74 b(An)m(y)42 ! b(other)g(attempt)h(to)g(cop)m(y)-8 b(,)46 b(mo)s(dify)-8 ! b(,)43 b(sublicense)d(or)330 3616 y(distribute)34 b(the)j(Do)s(cumen)m ! (t)g(is)f(v)m(oid,)i(and)e(will)e(automatically)i(terminate)h(y)m(our)f ! (righ)m(ts)g(under)330 3726 y(this)27 b(License.)39 b(Ho)m(w)m(ev)m ! (er,)31 b(parties)c(who)g(ha)m(v)m(e)i(receiv)m(ed)f(copies,)h(or)e ! (righ)m(ts,)h(from)g(y)m(ou)g(under)e(this)330 3836 y(License)36 ! b(will)e(not)j(ha)m(v)m(e)h(their)e(licenses)f(terminated)i(so)g(long)f ! (as)h(suc)m(h)f(parties)g(remain)g(in)f(full)330 3945 ! y(compliance.)154 4075 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e ! (LICENSE)330 4204 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8 ! b(oundation)42 b(ma)m(y)g(publish)c(new,)44 b(revised)c(v)m(ersions)h ! (of)h(the)g(GNU)g(F)-8 b(ree)330 4314 y(Do)s(cumen)m(tation)33 ! b(License)e(from)h(time)g(to)h(time.)45 b(Suc)m(h)31 ! b(new)h(v)m(ersions)f(will)f(b)s(e)h(similar)e(in)i(spirit)330 ! 4423 y(to)k(the)g(presen)m(t)f(v)m(ersion,)h(but)f(ma)m(y)h(di\013er)e ! (in)g(detail)g(to)i(address)f(new)g(problems)e(or)j(concerns.)330 ! 4533 y(See)c Fq(http://www.gnu.org/copy)o(left)o(/)p ! Fr(.)330 4663 y(Eac)m(h)f(v)m(ersion)f(of)h(the)f(License)g(is)g(giv)m ! (en)g(a)h(distinguishing)25 b(v)m(ersion)k(n)m(um)m(b)s(er.)39 ! b(If)29 b(the)g(Do)s(cumen)m(t)330 4772 y(sp)s(eci\014es)44 ! b(that)i(a)g(particular)d(n)m(um)m(b)s(ered)h(v)m(ersion)h(of)g(this)f ! (License)h(\\or)h(an)m(y)g(later)f(v)m(ersion")330 4882 ! y(applies)31 b(to)i(it,)g(y)m(ou)f(ha)m(v)m(e)i(the)f(option)f(of)g ! (follo)m(wing)f(the)i(terms)f(and)g(conditions)f(either)h(of)g(that)330 ! 4991 y(sp)s(eci\014ed)k(v)m(ersion)i(or)f(of)h(an)m(y)h(later)f(v)m ! (ersion)f(that)h(has)g(b)s(een)f(published)d(\(not)39 ! b(as)f(a)g(draft\))g(b)m(y)330 5101 y(the)33 b(F)-8 b(ree)34 ! b(Soft)m(w)m(are)f(F)-8 b(oundation.)48 b(If)32 b(the)h(Do)s(cumen)m(t) ! g(do)s(es)g(not)g(sp)s(ecify)e(a)i(v)m(ersion)f(n)m(um)m(b)s(er)g(of) ! 330 5210 y(this)h(License,)j(y)m(ou)e(ma)m(y)i(c)m(ho)s(ose)f(an)m(y)g ! (v)m(ersion)f(ev)m(er)h(published)c(\(not)k(as)g(a)f(draft\))h(b)m(y)f ! (the)h(F)-8 b(ree)330 5320 y(Soft)m(w)m(are)31 b(F)-8 ! b(oundation.)p eop ! %%Page: 19 23 ! 19 22 bop 150 -116 a Fr(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m ! (ual)2104 b(19)150 299 y Fi(A.1.1)62 b(ADDENDUM:)41 b(Ho)m(w)g(to)g ! (use)g(this)g(License)g(for)g(y)m(our)g(do)s(cumen)m(ts)275 ! 543 y Fr(T)-8 b(o)27 b(use)g(this)f(License)h(in)f(a)i(do)s(cumen)m(t)f ! (y)m(ou)h(ha)m(v)m(e)g(written,)f(include)e(a)j(cop)m(y)g(of)f(the)h ! (License)f(in)f(the)150 653 y(do)s(cumen)m(t)k(and)g(put)g(the)g(follo) ! m(wing)f(cop)m(yrigh)m(t)i(and)f(license)f(notices)h(just)g(after)h ! (the)g(title)f(page:)468 765 y Fd(Copyright)42 b(\(C\))79 ! b Fc(year)88 b(your)40 b(name)p Fd(.)468 852 y(Permission)i(is)e ! (granted)g(to)g(copy,)h(distribute)g(and/or)g(modify)f(this)g(document) ! 468 939 y(under)h(the)f(terms)g(of)g(the)g(GNU)g(Free)g(Documentation)i ! (License,)f(Version)g(1.2)468 1026 y(or)f(any)g(later)g(version)h ! (published)h(by)d(the)h(Free)g(Software)h(Foundation;)468 ! 1113 y(with)g(no)e(Invariant)j(Sections,)f(no)f(Front-Cover)h(Texts,)g ! (and)f(no)f(Back-Cover)j(Texts.)468 1200 y(A)e(copy)g(of)g(the)g ! (license)g(is)g(included)h(in)f(the)g(section)h(entitled)g(``GNU)468 ! 1288 y(Free)g(Documentation)h(License''.)275 1410 y Fr(If)d(y)m(ou)h ! (ha)m(v)m(e)h(In)m(v)-5 b(arian)m(t)40 b(Sections,)i(F)-8 ! b(ron)m(t-Co)m(v)m(er)42 b(T)-8 b(exts)41 b(and)e(Bac)m(k-Co)m(v)m(er)k ! (T)-8 b(exts,)43 b(replace)d(the)150 1520 y(\\with...T)-8 ! b(exts.")42 b(line)28 b(with)i(this:)547 1632 y Fd(with)40 ! b(the)g(Invariant)h(Sections)g(being)g Fc(list)f(their)g(titles)p ! Fd(,)h(with)547 1719 y(the)f(Front-Cover)i(Texts)e(being)g ! Fc(list)p Fd(,)h(and)f(with)g(the)g(Back-Cover)h(Texts)547 ! 1806 y(being)f Fc(list)p Fd(.)275 1929 y Fr(If)34 b(y)m(ou)i(ha)m(v)m ! (e)g(In)m(v)-5 b(arian)m(t)35 b(Sections)g(without)f(Co)m(v)m(er)i(T)-8 ! b(exts,)38 b(or)d(some)g(other)h(com)m(bination)e(of)i(the)150 ! 2038 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g(alternativ)m(es)g(to)g ! (suit)e(the)i(situation.)275 2173 y(If)23 b(y)m(our)h(do)s(cumen)m(t)f ! (con)m(tains)h(non)m(trivial)e(examples)i(of)g(program)f(co)s(de,)j(w)m ! (e)e(recommend)g(releasing)150 2283 y(these)44 b(examples)e(in)g ! (parallel)f(under)h(y)m(our)h(c)m(hoice)h(of)f(free)g(soft)m(w)m(are)h ! (license,)i(suc)m(h)d(as)g(the)g(GNU)150 2392 y(General)30 ! b(Public)e(License,)j(to)g(p)s(ermit)d(their)i(use)g(in)f(free)h(soft)m ! (w)m(are.)p eop ! %%Page: 20 24 ! 20 23 bop 150 -116 a Fr(20)2651 b(GNU)31 b(History)f(Library)p eop ! %%Page: 21 25 ! 21 24 bop 150 -116 a Fr(App)s(endix)28 b(B:)j(Concept)f(Index)2391 ! b(21)150 299 y Fn(App)t(endix)53 b(B)47 b(Concept)k(Index)150 ! 638 y Fp(A)150 796 y Fb(anc)n(hored)26 b(searc)n(h)7 ! b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)33 ! b Fb(8)150 1138 y Fp(E)150 1296 y Fb(ev)n(en)n(t)25 b(designators)d ! Fa(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46 ! b Fb(1)2025 638 y Fp(F)2025 754 y Fb(FDL,)25 b(GNU)g(F)-6 ! b(ree)26 b(Do)r(cumen)n(tation)f(License)11 b Fa(.)i(.)g(.)f(.)g(.)h(.) ! f(.)37 b Fb(13)2025 1005 y Fp(H)2025 1121 y Fb(history)25 ! b(ev)n(en)n(ts)d Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)49 b Fb(1)2025 1209 y(history)25 b(expansion)15 ! b Fa(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)41 b ! Fb(1)2025 1296 y(History)25 b(Searc)n(hing)12 b Fa(.)h(.)f(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(8)p eop ! %%Page: 22 26 ! 22 25 bop 150 -116 a Fr(22)2651 b(GNU)31 b(History)f(Library)p eop ! %%Page: 23 27 ! 23 26 bop 150 -116 a Fr(App)s(endix)28 b(C:)i(F)-8 b(unction)30 ! b(and)g(V)-8 b(ariable)30 b(Index)1832 b(23)150 299 y ! Fn(App)t(endix)53 b(C)45 b(F)-13 b(unction)53 b(and)g(V)-13 ! b(ariable)55 b(Index)150 638 y Fp(A)150 755 y Fd(add_history)24 ! b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 ! b Fb(6)150 842 y Fd(add_history_time)14 b Fa(.)i(.)d(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)40 b Fb(6)150 929 y Fd(append_history)17 ! b Fa(.)f(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 ! b Fb(9)150 1182 y Fp(C)150 1299 y Fd(clear_history)22 ! b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 ! b Fb(7)150 1386 y Fd(current_history)16 b Fa(.)f(.)e(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)42 b Fb(7)150 1639 y Fp(F)150 1755 ! y Fd(free_history_entry)11 b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! 37 b Fb(6)150 2008 y Fp(G)150 2124 y Fd(get_history_event)13 ! b Fa(.)j(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(9)150 ! 2377 y Fp(H)150 2494 y Fd(history_arg_extract)9 b Fa(.)17 ! b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(10)150 2581 y Fd(history_base)22 ! b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 ! b Fb(10)150 2669 y Fd(history_comment_char)7 b Fa(.)17 ! b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h ! (.)f(.)g(.)h(.)f(.)33 b Fb(10)150 2756 y Fd(history_expand)17 ! b Fa(.)f(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 ! b Fb(9)150 2843 y Fd(history_expansion_char)28 b Fa(.)12 ! b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)48 b Fb(10)150 2931 y Fd(history_get)24 b Fa(.)12 ! b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 ! b Fb(7)150 3018 y Fd(history_get_history_state)25 b Fa(.)12 ! b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45 ! b Fb(6)150 3106 y Fd(history_get_time)14 b Fa(.)i(.)d(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)40 b Fb(7)150 3193 y Fd(history_inhibit_expansion_fun)q ! (ctio)q(n)29 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(11)150 ! 3280 y Fd(history_is_stifled)11 b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)37 b Fb(7)150 3368 y Fd(history_length)16 b Fa(.)g(.)c(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)42 b Fb(10)150 3455 y Fd(history_list)23 ! b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)46 ! b Fb(7)150 3543 y Fd(history_max_entries)9 b Fa(.)17 ! b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(10)150 3630 y Fd ! (history_no_expand_chars)26 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fb(11)150 ! 3718 y Fd(history_quotes_inhibit_expans)q(ion)9 b Fa(.)18 ! b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(11)150 ! 3805 y Fd(history_search)17 b Fa(.)f(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)43 b Fb(8)150 3892 y Fd(history_search_delimiter_char)q(s)11 ! b Fa(.)18 b(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 ! b Fb(10)150 3980 y Fd(history_search_pos)11 b Fa(.)17 ! b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fb(8)2025 638 y ! Fd(history_search_prefix)7 b Fa(.)17 b(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33 ! b Fb(8)2025 725 y Fd(history_set_history_state)25 b Fa(.)12 ! b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 ! b Fb(6)2025 813 y Fd(history_set_pos)16 b Fa(.)f(.)e(.)f(.)g(.)h(.)f(.) ! g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)42 b Fb(8)2025 900 y Fd(history_subst_char)10 ! b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(10)2025 ! 987 y Fd(history_tokenize)13 b Fa(.)j(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! 39 b Fb(10)2025 1074 y Fd(history_total_bytes)10 b Fa(.)16 ! b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fb(7)2025 1162 y Fd ! (history_truncate_file)7 b Fa(.)17 b(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33 ! b Fb(9)2025 1249 y Fd(history_word_delimiters)26 b Fa(.)13 ! b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)47 b Fb(10)2025 1336 y Fd(history_write_timestamps)25 ! b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)g(.)46 b Fb(10)2025 1588 y Fp(N)2025 1704 y Fd(next_history)23 ! b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46 ! b Fb(8)2025 1956 y Fp(P)2025 2072 y Fd(previous_history)14 ! b Fa(.)i(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)41 b Fb(8)2025 ! 2324 y Fp(R)2025 2440 y Fd(read_history)23 b Fa(.)12 ! b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46 ! b Fb(9)2025 2527 y Fd(read_history_range)11 b Fa(.)17 ! b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fb(9)2025 2614 y ! Fd(remove_history)17 b Fa(.)e(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! g(.)44 b Fb(6)2025 2702 y Fd(replace_history_entry)7 ! b Fa(.)17 b(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33 b Fb(7)2025 2953 y ! Fp(S)2025 3069 y Fd(stifle_history)17 b Fa(.)e(.)e(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)g(.)44 b Fb(7)2025 3321 y Fp(U)2025 3437 ! y Fd(unstifle_history)14 b Fa(.)i(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! 41 b Fb(7)2025 3525 y Fd(using_history)21 b Fa(.)13 b(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45 b Fb(6)2025 3776 y ! Fp(W)2025 3893 y Fd(where_history)21 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)45 b Fb(7)2025 3980 y Fd(write_history)21 ! b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45 ! b Fb(9)p eop ! %%Page: 24 28 ! 24 27 bop 150 -116 a Fr(24)2651 b(GNU)31 b(History)f(Library)p eop %%Trailer diff -aNrc2 readline-4.3-patched/doc/history.texi readline-5.0/doc/history.texi *** readline-4.3-patched/doc/history.texi Wed Dec 31 19:00:00 1969 --- readline-5.0/doc/history.texi Tue Jul 27 09:28:59 2004 *************** *** 0 **** --- 1,104 ---- + \input texinfo @c -*-texinfo-*- + @c %**start of header (This is for running Texinfo on a region.) + @setfilename history.info + @settitle GNU History Library + @c %**end of header (This is for running Texinfo on a region.) + + @setchapternewpage odd + + @include version.texi + + @copying + This document describes the GNU History library + (version @value{VERSION}, @value{UPDATED}), + a programming tool that provides a consistent user interface for + recalling lines of previously typed input. + + Copyright @copyright{} 1988-2004 Free Software Foundation, Inc. + + Permission is granted to make and distribute verbatim copies of + this manual provided the copyright notice and this permission notice + are preserved on all copies. + + @quotation + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.1 or + any later version published by the Free Software Foundation; with no + Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' + and with the Back-Cover Texts as in (a) below. A copy of the license is + included in the section entitled ``GNU Free Documentation License.'' + + (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify + this GNU Manual, like GNU software. Copies published by the Free + Software Foundation raise funds for GNU development.'' + @end quotation + @end copying + + @dircategory Libraries + @direntry + * History: (history). The GNU history library API. + @end direntry + + @titlepage + @title GNU History Library + @subtitle Edition @value{EDITION}, for @code{History Library} Version @value{VERSION}. + @subtitle @value{UPDATED-MONTH} + @author Chet Ramey, Case Western Reserve University + @author Brian Fox, Free Software Foundation + + @page + + @vskip 0pt plus 1filll + @insertcopying + + @sp 1 + Published by the Free Software Foundation @* + 59 Temple Place, Suite 330, @* + Boston, MA 02111-1307 @* + USA @* + + @end titlepage + + @contents + + @ifnottex + @node Top + @top GNU History Library + + This document describes the GNU History library, a programming tool that + provides a consistent user interface for recalling lines of previously + typed input. + + @menu + * Using History Interactively:: GNU History User's Manual. + * Programming with GNU History:: GNU History Programmer's Manual. + * Copying This Manual:: Copying This Manual. + * Concept Index:: Index of concepts described in this manual. + * Function and Variable Index:: Index of externally visible functions + and variables. + @end menu + @end ifnottex + + @syncodeindex fn vr + + @include hsuser.texi + @include hstech.texi + + @node Copying This Manual + @appendix Copying This Manual + + @menu + * GNU Free Documentation License:: License for copying this manual. + @end menu + + @include fdl.texi + + @node Concept Index + @appendix Concept Index + @printindex cp + + @node Function and Variable Index + @appendix Function and Variable Index + @printindex vr + + @bye diff -aNrc2 readline-4.3-patched/doc/history_3.ps readline-5.0/doc/history_3.ps *** readline-4.3-patched/doc/history_3.ps Mon Mar 18 10:17:27 2002 --- readline-5.0/doc/history_3.ps Mon Sep 22 09:15:44 2003 *************** *** 1,9 **** %!PS-Adobe-3.0 ! %%Creator: groff version 1.16.1 ! %%CreationDate: Mon Mar 18 10:17:27 2002 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic ! %%DocumentSuppliedResources: procset grops 1.16 1 %%Pages: 7 %%PageOrder: Ascend --- 1,9 ---- %!PS-Adobe-3.0 ! %%Creator: groff version 1.18.1 ! %%CreationDate: Mon Sep 22 09:15:44 2003 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic ! %%DocumentSuppliedResources: procset grops 1.18 1 %%Pages: 7 %%PageOrder: Ascend *************** *** 11,15 **** %%EndComments %%BeginProlog ! %%BeginResource: procset grops 1.16 1 /setpacking where{ pop --- 11,15 ---- %%EndComments %%BeginProlog ! %%BeginResource: procset grops 1.18 1 /setpacking where{ pop *************** *** 109,117 **** /MT/moveto load def /CL/closepath load def ! /FL{ ! currentgray exch setgray fill setgray }bind def ! /BL/fill load def /LW/setlinewidth load def /RE{ findfont --- 109,126 ---- /MT/moveto load def /CL/closepath load def ! /Fr{ ! setrgbcolor fill }bind def ! /Fk{ ! setcmykcolor fill ! }bind def ! /Fg{ ! setgray fill ! }bind def ! /FL/fill load def /LW/setlinewidth load def + /Cr/setrgbcolor load def + /Ck/setcmykcolor load def + /Cg/setgray load def /RE{ findfont *************** *** 172,176 **** grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron ! /scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef --- 181,185 ---- grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron ! /scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef *************** *** 263,276 **** (This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 470.4 Q F3(string) A F0(Refer to the most recent command starting with)9.33 E F3(string)2.5 ! E F0(.).22 E F2(!?)108 482.4 Q F3(string)A F2([?])A F0 1.057 ! (Refer to the most recent command containing)144 494.4 R F3(string)3.557 ! E F0 6.057(.T).22 G 1.057(he trailing)-6.057 F F2(?)3.557 E F0 1.057 ! (may be omitted if)3.557 F F3(string)3.557 E F0(is)3.557 E(follo)144 506.4 Q(wed immediately by a ne)-.25 E(wline.)-.25 E/F4 12/Times-Bold@0 SF(^)108 523.4 Q F3(string1)-5 I F4(^)5 I F3(string2)-5 I F4(^)5 I F0 ! 2.66(Quick substitution.)144 530.4 R 2.66 ! (Repeat the last command, replacing)7.66 F F3(string1)5.16 E F0(with) ! 5.16 E F3(string2)5.16 E F0 7.66(.E).02 G(qui)-7.66 E -.25(va)-.25 G ! 2.66(lent to).25 F -.74(``)144 542.4 S(!!:s/).74 E F3(string1)A F0(/)A F3(string2)A F0(/')A 2.5('\()-.74 G(see)-2.5 E F2(Modi\214ers)2.5 E F0 (belo)2.5 E(w\).)-.25 E F2(!#)108 554.4 Q F0 --- 272,285 ---- (This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 470.4 Q F3(string) A F0(Refer to the most recent command starting with)9.33 E F3(string)2.5 ! E F0(.).22 E F2(!?)108 482.4 Q F3(string)A F2([?])A F0 1.022 ! (Refer to the most recent command containing)144 494.4 R F3(string)3.522 ! E F0 6.022(.T).22 G 1.022(he trailing)-6.022 F F2(?)3.522 E F0 1.022 ! (may be omitted if)3.522 F F3(string)3.862 E F0(is)3.742 E(follo)144 506.4 Q(wed immediately by a ne)-.25 E(wline.)-.25 E/F4 12/Times-Bold@0 SF(^)108 523.4 Q F3(string1)-5 I F4(^)5 I F3(string2)-5 I F4(^)5 I F0 ! 2.63(Quick substitution.)144 530.4 R 2.629 ! (Repeat the last command, replacing)7.629 F F3(string1)5.469 E F0(with) ! 5.129 E F3(string2)5.129 E F0 7.629(.E).02 G(qui)-7.629 E -.25(va)-.25 G ! 2.629(lent to).25 F -.74(``)144 542.4 S(!!:s/).74 E F3(string1)A F0(/)A F3(string2)A F0(/')A 2.5('\()-.74 G(see)-2.5 E F2(Modi\214ers)2.5 E F0 (belo)2.5 E(w\).)-.25 E F2(!#)108 554.4 Q F0 *************** *** 291,302 **** F2 2.5(0\()108 636 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 648 Q 2.5 (ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E F3 ! (n)108 660 Q F0(The)31 E F3(n)2.5 E F0(th w)A(ord.)-.1 E F2(^)108 672 Q ! F0(The \214rst ar)32.67 E 2.5(gument. That)-.18 F(is, w)2.5 E(ord 1.)-.1 ! E F2($)108 684 Q F0(The last ar)31 E(gument.)-.18 E F2(%)108 696 Q F0 ! (The w)26 E(ord matched by the most recent `?)-.1 E F3(string)A F0 ! (?' search.)A F3(x)108 708 Q F2A F3(y)A F0 2.5(Ar)21.42 G(ange of w) ! -2.5 E(ords; `\255)-.1 E F3(y)A F0 2.5('a)C(bbre)-2.5 E(viates `0\255) ! -.25 E F3(y)A F0('.)A(GNU History 4.3)72 768 Q(2002 January 31)131.79 E ! (1)195.95 E EP %%Page: 2 2 %%BeginPageSetup --- 300,311 ---- F2 2.5(0\()108 636 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 648 Q 2.5 (ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E F3 ! (n)108.36 660 Q F0(The)30.64 E F3(n)2.5 E F0(th w)A(ord.)-.1 E F2(^)108 ! 672 Q F0(The \214rst ar)32.67 E 2.5(gument. That)-.18 F(is, w)2.5 E ! (ord 1.)-.1 E F2($)108 684 Q F0(The last ar)31 E(gument.)-.18 E F2(%)108 ! 696 Q F0(The w)26 E(ord matched by the most recent `?)-.1 E F3(string)A ! F0(?' search.)A F3(x)108.77 708 Q F2A F3(y)A F0 2.5(Ar)20.65 G ! (ange of w)-2.5 E(ords; `\255)-.1 E F3(y)A F0 2.5('a)C(bbre)-2.5 E ! (viates `0\255)-.25 E F3(y)A F0('.)A(GNU History 5.0)72 768 Q ! (2003 July 31)139.005 E(1)203.165 E 0 Cg EP %%Page: 2 2 %%BeginPageSetup *************** *** 334,406 **** E F1(q)2.5 E F0 2.5(,b)C(ut break into w)-2.7 E(ords at)-.1 E F1(blanks) 2.5 E F0(and ne)2.5 E(wlines.)-.25 E F1(s/)108 278.4 Q F2(old)A F1(/)A ! F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 290.4 Q F2(ne)2.814 E(w)-.15 E ! F0 .314(for the \214rst occurrence of)2.814 F F2(old)2.814 E F0 .314 ! (in the e)2.814 F -.15(ve)-.25 G .314(nt line.).15 F(An)5.314 E 2.814 ! (yd)-.15 G .314(elimiter can be used in place)-2.814 F .616(of /.)144 302.4 R .617 (The \214nal delimiter is optional if it is the last character of the e) 5.616 F -.15(ve)-.25 G .617(nt line.).15 F .617(The delimiter may)5.617 ! F .75(be quoted in)144 314.4 R F2(old)3.25 E F0(and)3.25 E F2(ne)3.25 E ! (w)-.15 E F0 .75(with a single backslash.)3.25 F .749(If & appears in) ! 5.75 F F2(ne)3.249 E(w)-.15 E F0 3.249(,i).31 G 3.249(ti)-3.249 G 3.249 ! (sr)-3.249 G .749(eplaced by)-3.249 F F2(old)3.249 E F0 5.749(.A).77 G ! .369(single backslash will quote the &.)144 326.4 R(If)5.369 E F2(old) ! 2.869 E F0 .37(is null, it is set to the last)2.869 F F2(old)2.87 E F0 ! .37(substituted, or)2.87 F 2.87(,i)-.4 G 2.87(fn)-2.87 G 2.87(op)-2.87 G ! (re)-2.87 E(vi-)-.25 E(ous history substitutions took place, the last) ! 144 338.4 Q F2(string)2.5 E F0(in a)2.5 E F1(!?)2.5 E F2(string)A F1 ! ([?])A F0(search.)5 E F1(&)108 350.4 Q F0(Repeat the pre)27.67 E ! (vious substitution.)-.25 E F1(g)108 362.4 Q F0 .398 ! (Cause changes to be applied o)31 F -.15(ve)-.15 G 2.898(rt).15 G .398 ! (he entire e)-2.898 F -.15(ve)-.25 G .398(nt line.).15 F .397 ! (This is used in conjunction with `)5.398 F F1(:s)A F0 2.897('\()C ! (e.g.,)-2.897 E(`)144 374.4 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)-.15 E ! F1(/)A F0 1.218('\) or `)B F1(:&)A F0 3.718('. If)B 1.218(used with `) ! 3.718 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.219 ! (elimiter can be used in place of /, and the \214nal)-3.718 F ! (delimiter is optional if it is the last character of the e)144 386.4 Q ! -.15(ve)-.25 G(nt line.).15 E/F3 10.95/Times-Bold@0 SF(PR)72 403.2 Q (OGRAMMING WITH HIST)-.329 E(OR)-.197 E 2.738(YF)-.383 G(UNCTIONS)-2.738 ! E F0(This section describes ho)108 415.2 Q 2.5(wt)-.25 G 2.5(ou)-2.5 G ! (se the History library in other programs.)-2.5 E F1(Intr)87 432 Q ! (oduction to History)-.18 E F0 .797 ! (The programmer using the History library has a)108 444 R -.25(va)-.2 G ! .796(ilable functions for remembering lines on a history list,).25 F ! .307(associating arbitrary data with a line, remo)108 456 R .308 (ving lines from the list, searching through the list for a line con-) ! -.15 F .303(taining an arbitrary te)108 468 R .303 (xt string, and referencing an)-.15 F 2.803(yl)-.15 G .303 (ine in the list directly)-2.803 F 5.303(.I)-.65 G 2.803(na)-5.303 G ! .303(ddition, a history)-2.803 F F2 -.2(ex)2.802 G(pansion).2 E F0 ! (function is a)108 480 Q -.25(va)-.2 G(ilable which pro).25 E (vides for a consistent user interf)-.15 E(ace across dif)-.1 E (ferent programs.)-.25 E .059(The user using programs written with the \ ! History library has the bene\214t of a consistent user interf)108 496.8 ! R .059(ace with a)-.1 F .918(set of well-kno)108 508.8 R .917 (wn commands for manipulating the te)-.25 F .917(xt of pre)-.15 F .917 ! (vious lines and using that te)-.25 F .917(xt in ne)-.15 F 3.417(wc)-.25 ! G(om-)-3.417 E 4.183(mands. The)108 520.8 R 1.684(basic history manipul\ ! ation commands are identical to the history substitution pro)4.183 F ! 1.684(vided by)-.15 F F1(bash)108 532.8 Q F0(.)A .904 ! (If the programmer desires, he can use the Readline library)108 549.6 R ! 3.403(,w)-.65 G .903(hich includes some history manipulation by)-3.403 F ! (def)108 561.6 Q(ault, and has the added adv)-.1 E (antage of command line editing.)-.25 E .39(Before declaring an)108 ! 578.4 R 2.89(yf)-.15 G .39(unctions using an)-2.89 F 2.89(yf)-.15 G .39 (unctionality the History library pro)-2.89 F .39 ! (vides in other code, an appli-)-.15 F .067 ! (cation writer should include the \214le)108 590.4 R F2()-.55 E F0 .067(in an)4.233 F 2.566<798c>-.15 ! G .066(le that uses the History library')-2.566 F 2.566(sf)-.55 G ! (eatures.)-2.566 E .538(It supplies e)108 602.4 R .538 (xtern declarations for all of the library')-.15 F 3.038(sp)-.55 G .538 ! (ublic functions and v)-3.038 F .539(ariables, and declares all of the) ! -.25 F(public data structures.)108 614.4 Q F1(History Storage)87 643.2 Q ! F0(The history list is an array of history entries.)108 655.2 Q 2.5(Ah)5 G(istory entry is declared as follo)-2.5 E(ws:)-.25 E F2(typedef void *) ! 108 672 Q F1(histdata_t;)2.5 E F0(typedef struct _hist_entry {)108 688.8 ! Q(char *line;)113 700.8 Q(histdata_t data;)113 712.8 Q 2.5(}H)108 724.8 ! S(IST_ENTR)-2.5 E -.92(Y;)-.65 G(GNU History 4.3)72 768 Q ! (2002 January 31)131.79 E(2)195.95 E EP %%Page: 3 3 %%BeginPageSetup --- 343,418 ---- E F1(q)2.5 E F0 2.5(,b)C(ut break into w)-2.7 E(ords at)-.1 E F1(blanks) 2.5 E F0(and ne)2.5 E(wlines.)-.25 E F1(s/)108 278.4 Q F2(old)A F1(/)A ! F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 290.4 Q F2(ne)3.082 E(w)-.15 E ! F0 .221(for the \214rst occurrence of)3.032 F F2(old)2.951 E F0 .221 ! (in the e)3.491 F -.15(ve)-.25 G .221(nt line.).15 F(An)5.221 E 2.721 ! (yd)-.15 G .221(elimiter can be used in place)-2.721 F .616(of /.)144 302.4 R .617 (The \214nal delimiter is optional if it is the last character of the e) 5.616 F -.15(ve)-.25 G .617(nt line.).15 F .617(The delimiter may)5.617 ! F .666(be quoted in)144 314.4 R F2(old)3.396 E F0(and)3.936 E F2(ne) ! 3.526 E(w)-.15 E F0 .666(with a single backslash.)3.476 F .666 ! (If & appears in)5.666 F F2(ne)3.166 E(w)-.15 E F0 3.166(,i).31 G 3.166 ! (ti)-3.166 G 3.166(sr)-3.166 G .666(eplaced by)-3.166 F F2(old)3.166 E ! F0 5.666(.A).77 G .274(single backslash will quote the &.)144 326.4 R ! (If)5.274 E F2(old)3.004 E F0 .274(is null, it is set to the last)3.544 ! F F2(old)3.005 E F0 .275(substituted, or)3.545 F 2.775(,i)-.4 G 2.775 ! (fn)-2.775 G 2.775(op)-2.775 G(re)-2.775 E(vi-)-.25 E ! (ous history substitutions took place, the last)144 338.4 Q F2(string) ! 2.84 E F0(in a)2.72 E F1(!?)2.5 E F2(string)A F1([?])A F0(search.)5 E F1 ! (&)108 350.4 Q F0(Repeat the pre)27.67 E(vious substitution.)-.25 E F1 ! (g)108 362.4 Q F0 .398(Cause changes to be applied o)31 F -.15(ve)-.15 G ! 2.898(rt).15 G .398(he entire e)-2.898 F -.15(ve)-.25 G .398(nt line.) ! .15 F .397(This is used in conjunction with `)5.398 F F1(:s)A F0 2.897 ! ('\()C(e.g.,)-2.897 E(`)144 374.4 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w) ! -.15 E F1(/)A F0 1.218('\) or `)B F1(:&)A F0 3.718('. If)B 1.218 ! (used with `)3.718 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.219 ! (elimiter can be used in place of /, and the \214nal)-3.718 F .09 ! (delimiter is optional if it is the last character of the e)144 386.4 R ! -.15(ve)-.25 G .089(nt line.).15 F(An)5.089 E F1(a)2.589 E F0 .089 ! (may be used as a synon)2.589 F .089(ym for)-.15 F F1(g)144 398.4 Q F0 ! (.)A F1(G)108 410.4 Q F0(Apply the follo)28.22 E(wing `)-.25 E F1(s)A F0 ! 2.5('m)C(odi\214er once to each w)-2.5 E(ord in the e)-.1 E -.15(ve)-.25 ! G(nt line.).15 E/F3 10.95/Times-Bold@0 SF(PR)72 427.2 Q (OGRAMMING WITH HIST)-.329 E(OR)-.197 E 2.738(YF)-.383 G(UNCTIONS)-2.738 ! E F0(This section describes ho)108 439.2 Q 2.5(wt)-.25 G 2.5(ou)-2.5 G ! (se the History library in other programs.)-2.5 E F1(Intr)87 456 Q ! (oduction to History)-.18 E F0 .796 ! (The programmer using the History library has a)108 468 R -.25(va)-.2 G ! .797(ilable functions for remembering lines on a history list,).25 F ! .308(associating arbitrary data with a line, remo)108 480 R .308 (ving lines from the list, searching through the list for a line con-) ! -.15 F .303(taining an arbitrary te)108 492 R .303 (xt string, and referencing an)-.15 F 2.803(yl)-.15 G .303 (ine in the list directly)-2.803 F 5.303(.I)-.65 G 2.803(na)-5.303 G ! .303(ddition, a history)-2.803 F F2 -.2(ex)2.803 G(pansion).2 E F0 ! (function is a)108 504 Q -.25(va)-.2 G(ilable which pro).25 E (vides for a consistent user interf)-.15 E(ace across dif)-.1 E (ferent programs.)-.25 E .059(The user using programs written with the \ ! History library has the bene\214t of a consistent user interf)108 520.8 ! R .058(ace with a)-.1 F .917(set of well-kno)108 532.8 R .917 (wn commands for manipulating the te)-.25 F .917(xt of pre)-.15 F .917 ! (vious lines and using that te)-.25 F .917(xt in ne)-.15 F 3.418(wc)-.25 ! G(om-)-3.418 E 4.184(mands. The)108 544.8 R 1.684(basic history manipul\ ! ation commands are identical to the history substitution pro)4.184 F ! 1.683(vided by)-.15 F F1(bash)108 556.8 Q F0(.)A .903 ! (If the programmer desires, he can use the Readline library)108 573.6 R ! 3.403(,w)-.65 G .904(hich includes some history manipulation by)-3.403 F ! (def)108 585.6 Q(ault, and has the added adv)-.1 E (antage of command line editing.)-.25 E .39(Before declaring an)108 ! 602.4 R 2.89(yf)-.15 G .39(unctions using an)-2.89 F 2.89(yf)-.15 G .39 (unctionality the History library pro)-2.89 F .39 ! (vides in other code, an appli-)-.15 F .066 ! (cation writer should include the \214le)108 614.4 R F2()-.55 E F0 .067(in an)4.232 F 2.567<798c>-.15 ! G .067(le that uses the History library')-2.567 F 2.567(sf)-.55 G ! (eatures.)-2.567 E .539(It supplies e)108 626.4 R .538 (xtern declarations for all of the library')-.15 F 3.038(sp)-.55 G .538 ! (ublic functions and v)-3.038 F .538(ariables, and declares all of the) ! -.25 F(public data structures.)108 638.4 Q F1(History Storage)87 667.2 Q ! F0(The history list is an array of history entries.)108 679.2 Q 2.5(Ah)5 G(istory entry is declared as follo)-2.5 E(ws:)-.25 E F2(typedef void *) ! 108 696 Q F1(histdata_t;)2.5 E F0(typedef struct _hist_entry {)108 712.8 ! Q(char *line;)113 724.8 Q(GNU History 5.0)72 768 Q(2003 July 31)139.005 ! E(2)203.165 E 0 Cg EP %%Page: 3 3 %%BeginPageSetup *************** *** 408,484 **** %%EndPageSetup /F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F ! (OR)-.18 E(Y\(3\))-.65 E ! (The history list itself might therefore be declared as)108 84 Q/F1 10 ! /Times-Italic@0 SF(HIST_ENTR)108 100.8 Q 2.5(Y*)-.18 G(*)-2.5 E/F2 10 /Times-Bold@0 SF(the_history_list;)2.5 E F0(The state of the History li\ ! brary is encapsulated into a single structure:)108 117.6 Q(/*)108 134.4 ! Q 2.5(*As)110.5 146.4 S (tructure used to pass around the current state of the history)-2.5 E(.) ! -.65 E(*/)110.5 158.4 Q(typedef struct _hist_state {)108 170.4 Q ! (HIST_ENTR)113 182.4 Q 2.5(Y*)-.65 G (*entries; /* Pointer to the entries themselv)-2.5 E(es. */)-.15 E ! (int of)113 194.4 Q 25(fset; /*)-.25 F (The location pointer within this array)2.5 E 2.5(.*)-.65 G(/)-2.5 E ! (int length;)113 206.4 Q(/* Number of elements within this array)27.5 E ! 2.5(.*)-.65 G(/)-2.5 E(int size;)113 218.4 Q (/* Number of slots allocated to this array)32.5 E 2.5(.*)-.65 G(/)-2.5 ! E(int \215ags;)113 230.4 Q 2.5(}H)108 242.4 S(IST)-2.5 E(OR)-.18 E(Y_ST) ! -.65 E -1.11(AT)-.93 G(E;)1.11 E(If the \215ags member includes)108 ! 259.2 Q F2(HS_STIFLED)2.5 E F0 2.5(,t)C(he history has been sti\215ed.) ! -2.5 E/F3 10.95/Times-Bold@0 SF(History Functions)72 276 Q F0 ! (This section describes the calling sequence for the v)108 288 Q (arious functions e)-.25 E(xported by the GNU History library)-.15 E(.) ! -.65 E F2(Initializing History and State Management)87 304.8 Q F0 1.274 (This section describes functions used to initialize and manage the sta\ ! te of the History library when you)108 316.8 R -.1(wa)108 328.8 S ! (nt to use the history functions in your program.).1 E F1(void)108 352.8 Q F2(using_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E(Be)108 ! 364.8 Q(gin a session in which the history functions might be used.)-.15 E(This initializes the interacti)5 E .3 -.15(ve v)-.25 H(ariables.)-.1 E ! F1(HIST)108 388.8 Q(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5(E*).37 G F2 (history_get_history_state)A F0(\()4.166 E F1(void)A F0(\))1.666 E (Return a structure describing the current state of the input history) ! 108 400.8 Q(.)-.65 E F1(void)108 424.8 Q F2(history_set_history_state) 2.5 E F0(\()4.166 E F1(HIST)A(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5 (E*).37 G(state)-2.5 E F0(\))1.666 E ! (Set the state of the history list according to)108 436.8 Q F1(state)2.5 ! E F0(.)A F2(History List Management)87 465.6 Q F0 ! (These functions manage indi)108 477.6 Q(vidual entries on the history \ list, or set parameters managing the list itself.)-.25 E F1(void)108 ! 501.6 Q F2(add_history)2.5 E F0(\()4.166 E F1(const c)A(har *string)-.15 ! E F0(\))1.666 E(Place)108 513.6 Q F1(string)2.5 E F0 (at the end of the history list.)2.5 E (The associated data \214eld \(if an)5 E(y\) is set to)-.15 E F2(NULL) ! 2.5 E F0(.)A F1(HIST_ENTR)108 537.6 Q 2.5(Y*)-.18 G F2 -.18(re)C(mo).18 ! E -.1(ve)-.1 G(_history).1 E F0(\()4.166 E F1(int whic)A(h)-.15 E F0(\)) ! 1.666 E(Remo)108 549.6 Q .352 -.15(ve h)-.15 H .052(istory entry at of) ! .15 F(fset)-.25 E F1(whic)2.553 E(h)-.15 E F0 .053(from the history) ! 2.553 F 5.053(.T)-.65 G .053(he remo)-5.053 F -.15(ve)-.15 G 2.553(de) ! .15 G .053(lement is returned so you can free the)-2.553 F ! (line, data, and containing structure.)108 561.6 Q F1(HIST_ENTR)108 ! 585.6 Q 2.5(Y*)-.18 G F2 -.18(re)C(place_history_entry).18 E F0(\()4.166 ! E F1(int whic)A -.834(h, const)-.15 F -.15(ch)2.5 G(ar *line).15 E 1.666 ! (,h)-.1 G(istdata_t data)-1.666 E F0(\))3.332 E(Mak)108 597.6 Q 2.868 ! (et)-.1 G .368(he history entry at of)-2.868 F(fset)-.25 E F1(whic)2.868 ! E(h)-.15 E F0(ha)2.868 E -.15(ve)-.2 G F1(line)3.018 E F0(and)2.868 E F1 ! (data)2.868 E F0 5.367(.T)C .367 ! (his returns the old entry so you can dispose of)-5.367 F(the data.)108 ! 609.6 Q(In the case of an in)5 E -.25(va)-.4 G(lid).25 E F1(whic)2.5 E ! (h)-.15 E F0 2.5(,a)C F2(NULL)A F0(pointer is returned.)2.5 E F1(void) ! 108 633.6 Q F2(clear_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E ! (Clear the history list by deleting all the entries.)108 645.6 Q F1 ! (void)108 669.6 Q F2(sti\215e_history)2.5 E F0(\()4.166 E F1(int max)A ! F0(\))1.666 E(Sti\215e the history list, remembering only the last)108 ! 681.6 Q F1(max)2.5 E F0(entries.)2.5 E F1(int)108 705.6 Q F2 ! (unsti\215e_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E .46 ! (Stop sti\215ing the history)108 717.6 R 5.46(.T)-.65 G .46 ! (his returns the pre)-5.46 F .46 ! (viously-set maximum number of history entries \(as set by)-.25 F F2 ! (sti-)2.96 E(\215e_history\(\))108 729.6 Q F0 2.5(\). history)B -.1(wa) ! 2.5 G 2.5(ss).1 G 2.5(ti\215ed. The)-2.5 F -.25(va)2.5 G(lue is positi) ! .25 E .3 -.15(ve i)-.25 H 2.5(ft).15 G(he history w)-2.5 E ! (as sti\215ed, ne)-.1 E -.05(ga)-.15 G(ti).05 E .3 -.15(ve i)-.25 H 2.5 ! (fi).15 G 2.5(tw)-2.5 G(asn')-2.6 E(t.)-.18 E(GNU History 4.3)72 768 Q ! (2002 January 31)131.79 E(3)195.95 E EP %%Page: 4 4 %%BeginPageSetup --- 420,490 ---- %%EndPageSetup /F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F ! (OR)-.18 E(Y\(3\))-.65 E(char *timestamp;)113 84 Q(histdata_t data;)113 ! 96 Q 2.5(}H)108 108 S(IST_ENTR)-2.5 E -.92(Y;)-.65 G ! (The history list itself might therefore be declared as)108 124.8 Q/F1 ! 10/Times-Italic@0 SF(HIST_ENTR)108 141.6 Q 2.5(Y*)-.18 G(*)-2.5 E/F2 10 /Times-Bold@0 SF(the_history_list;)2.5 E F0(The state of the History li\ ! brary is encapsulated into a single structure:)108 158.4 Q(/*)108 175.2 ! Q 2.5(*As)110.5 187.2 S (tructure used to pass around the current state of the history)-2.5 E(.) ! -.65 E(*/)110.5 199.2 Q(typedef struct _hist_state {)108 211.2 Q ! (HIST_ENTR)113 223.2 Q 2.5(Y*)-.65 G (*entries; /* Pointer to the entries themselv)-2.5 E(es. */)-.15 E ! (int of)113 235.2 Q 25(fset; /*)-.25 F (The location pointer within this array)2.5 E 2.5(.*)-.65 G(/)-2.5 E ! (int length;)113 247.2 Q(/* Number of elements within this array)27.5 E ! 2.5(.*)-.65 G(/)-2.5 E(int size;)113 259.2 Q (/* Number of slots allocated to this array)32.5 E 2.5(.*)-.65 G(/)-2.5 ! E(int \215ags;)113 271.2 Q 2.5(}H)108 283.2 S(IST)-2.5 E(OR)-.18 E(Y_ST) ! -.65 E -1.11(AT)-.93 G(E;)1.11 E(If the \215ags member includes)108 300 ! Q F2(HS_STIFLED)2.5 E F0 2.5(,t)C(he history has been sti\215ed.)-2.5 E ! /F3 10.95/Times-Bold@0 SF(History Functions)72 316.8 Q F0 ! (This section describes the calling sequence for the v)108 328.8 Q (arious functions e)-.25 E(xported by the GNU History library)-.15 E(.) ! -.65 E F2(Initializing History and State Management)87 345.6 Q F0 1.274 (This section describes functions used to initialize and manage the sta\ ! te of the History library when you)108 357.6 R -.1(wa)108 369.6 S ! (nt to use the history functions in your program.).1 E F1(void)108 393.6 Q F2(using_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E(Be)108 ! 405.6 Q(gin a session in which the history functions might be used.)-.15 E(This initializes the interacti)5 E .3 -.15(ve v)-.25 H(ariables.)-.1 E ! F1(HIST)108 429.6 Q(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5(E*).37 G F2 (history_get_history_state)A F0(\()4.166 E F1(void)A F0(\))1.666 E (Return a structure describing the current state of the input history) ! 108 441.6 Q(.)-.65 E F1(void)108 465.6 Q F2(history_set_history_state) 2.5 E F0(\()4.166 E F1(HIST)A(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5 (E*).37 G(state)-2.5 E F0(\))1.666 E ! (Set the state of the history list according to)108 477.6 Q F1(state)2.5 ! E F0(.)A F2(History List Management)87 506.4 Q F0 ! (These functions manage indi)108 518.4 Q(vidual entries on the history \ list, or set parameters managing the list itself.)-.25 E F1(void)108 ! 542.4 Q F2(add_history)2.5 E F0(\()4.166 E F1(const c)A(har *string)-.15 ! E F0(\))1.666 E(Place)108 554.4 Q F1(string)2.5 E F0 (at the end of the history list.)2.5 E (The associated data \214eld \(if an)5 E(y\) is set to)-.15 E F2(NULL) ! 2.5 E F0(.)A F1(void)108 578.4 Q F2(add_history_time)2.5 E F0(\()4.166 E ! F1(const c)A(har *string)-.15 E F0(\))1.666 E ! (Change the time stamp associated with the most recent history entry to) ! 108 590.4 Q F1(string)2.5 E F0(.)A F1(HIST_ENTR)108 614.4 Q 2.5(Y*)-.18 ! G F2 -.18(re)C(mo).18 E -.1(ve)-.1 G(_history).1 E F0(\()4.166 E F1 ! (int whic)A(h)-.15 E F0(\))1.666 E(Remo)108 626.4 Q .353 -.15(ve h)-.15 ! H .053(istory entry at of).15 F(fset)-.25 E F1(whic)2.553 E(h)-.15 E F0 ! .053(from the history)2.553 F 5.053(.T)-.65 G .053(he remo)-5.053 F -.15 ! (ve)-.15 G 2.553(de).15 G .052(lement is returned so you can free the) ! -2.553 F(line, data, and containing structure.)108 638.4 Q F1 ! (histdata_t)108 662.4 Q F2(fr)2.5 E(ee_history_entry)-.18 E F0(\()4.166 ! E F1(HIST_ENTR)A 2.5(Y*)-.18 G(histent)-2.5 E F0(\))1.666 E .933 ! (Free the history entry)108 674.4 R F1(histent)3.433 E F0 .933(and an) ! 3.433 F 3.433(yh)-.15 G .933(istory library pri)-3.433 F -.25(va)-.25 G ! .933(te data associated with it.).25 F .934(Returns the applica-)5.933 F ! (tion-speci\214c data so the caller can dispose of it.)108 686.4 Q F1 ! (HIST_ENTR)108 710.4 Q 2.5(Y*)-.18 G F2 -.18(re)C(place_history_entry) ! .18 E F0(\()4.166 E F1(int whic)A -.834(h, const)-.15 F -.15(ch)2.5 G ! (ar *line).15 E 1.666(,h)-.1 G(istdata_t data)-1.666 E F0(\))3.332 E ! (Mak)108 722.4 Q 4.014(et)-.1 G 1.514(he history entry at of)-4.014 F ! (fset)-.25 E F1(whic)4.013 E(h)-.15 E F0(ha)4.013 E -.15(ve)-.2 G F1 ! (line)4.163 E F0(and)4.013 E F1(data)4.013 E F0 6.513(.T)C 1.513 ! (his returns the old entry so the caller can)-6.513 F(GNU History 5.0)72 ! 768 Q(2003 July 31)139.005 E(3)203.165 E 0 Cg EP %%Page: 4 4 %%BeginPageSetup *************** *** 486,683 **** %%EndPageSetup /F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F ! (OR)-.18 E(Y\(3\))-.65 E/F1 10/Times-Italic@0 SF(int)108 84 Q/F2 10 ! /Times-Bold@0 SF(history_is_sti\215ed)2.5 E F0(\()4.166 E F1(void)A F0 ! (\))1.666 E ! (Returns non-zero if the history is sti\215ed, zero if it is not.)108 96 ! Q F2(Inf)87 124.8 Q(ormation About the History List)-.25 E F0(These fun\ ! ctions return information about the entire history list or indi)108 ! 136.8 Q(vidual list entries.)-.25 E F1(HIST_ENTR)108 160.8 Q 2.5(Y*)-.18 G(*)-2.5 E F2(history_list)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E ! .708(Return a)108 172.8 R F2(NULL)3.208 E F0 .708(terminated array of) 3.208 F F1(HIST_ENTR)3.208 E 3.208(Y*)-.18 G F0 .708 (which is the current input history)B 5.707(.E)-.65 G .707 ! (lement 0 of this)-5.707 F(list is the be)108 184.8 Q(ginning of time.) -.15 E(If there is no history)5 E 2.5(,r)-.65 G(eturn)-2.5 E F2(NULL)2.5 ! E F0(.)A F1(int)108 208.8 Q F2(wher)2.5 E(e_history)-.18 E F0(\()4.166 E ! F1(void)A F0(\))1.666 E(Returns the of)108 220.8 Q ! (fset of the current history element.)-.25 E F1(HIST_ENTR)108 244.8 Q 2.5(Y*)-.18 G F2(curr)A(ent_history)-.18 E F0(\()4.166 E F1(void)A F0 (\))1.666 E 1.373 (Return the history entry at the current position, as determined by)108 ! 256.8 R F2(wher)3.873 E(e_history\(\))-.18 E F0 6.373(.I)C 3.873(ft) ! -6.373 G 1.374(here is no entry)-3.873 F(there, return a)108 268.8 Q F2 ! (NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1(HIST_ENTR)108 292.8 Q 2.5(Y*) -.18 G F2(history_get)A F0(\()4.166 E F1(int of)A(fset)-.18 E F0(\)) ! 1.666 E .288(Return the history entry at position)108 304.8 R F1(of) 2.787 E(fset)-.18 E F0 2.787(,s)C .287(tarting from)-2.787 F F2 (history_base)2.787 E F0 5.287(.I)C 2.787(ft)-5.287 G .287 (here is no entry there, or if)-2.787 F F1(of)2.787 E(fset)-.18 E F0 ! (is greater than the history length, return a)108 316.8 Q F2(NULL)2.5 E ! F0(pointer)2.5 E(.)-.55 E F1(int)108 340.8 Q F2(history_total_bytes)2.5 ! E F0(\()4.166 E F1(void)A F0(\))1.666 E .391 (Return the number of bytes that the primary history entries are using.) ! 108 352.8 R .392(This function returns the sum of the)5.392 F ! (lengths of all the lines in the history)108 364.8 Q(.)-.65 E F2(Mo)87 ! 393.6 Q(ving Ar)-.1 E(ound the History List)-.18 E F0 ! (These functions allo)108 405.6 Q 2.5(wt)-.25 G(he current inde)-2.5 E 2.5(xi)-.15 G(nto the history list to be set or changed.)-2.5 E F1(int) ! 108 429.6 Q F2(history_set_pos)2.5 E F0(\()4.166 E F1(int pos)A F0(\)) ! 1.666 E .79(Set the current history of)108 441.6 R .79(fset to)-.25 F F1 (pos)3.29 E F0 3.29(,a)C 3.29(na)-3.29 G .79(bsolute inde)-3.29 F 3.29 (xi)-.15 G .79(nto the list.)-3.29 F .79(Returns 1 on success, 0 if)5.79 F F1(pos)3.29 E F0 .79(is less)3.29 F ! (than zero or greater than the number of history entries.)108 453.6 Q F1 ! (HIST_ENTR)108 477.6 Q 2.5(Y*)-.18 G F2(pr)A -.15(ev)-.18 G (ious_history).15 E F0(\()4.166 E F1(void)A F0(\))1.666 E .207 ! (Back up the current history of)108 489.6 R .207(fset to the pre)-.25 F .207(vious history entry)-.25 F 2.708(,a)-.65 G .208 (nd return a pointer to that entry)-2.708 F 5.208(.I)-.65 G 2.708(ft) ! -5.208 G .208(here is)-2.708 F(no pre)108 501.6 Q(vious entry)-.25 E 2.5 (,r)-.65 G(eturn a)-2.5 E F2(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1 ! (HIST_ENTR)108 525.6 Q 2.5(Y*)-.18 G F2(next_history)A F0(\()4.166 E F1 ! (void)A F0(\))1.666 E(Mo)108 537.6 Q 1.047 -.15(ve t)-.15 H .747 (he current history of).15 F .747(fset forw)-.25 F .746(ard to the ne) -.1 F .746(xt history entry)-.15 F 3.246(,a)-.65 G .746 (nd return the a pointer to that entry)-3.246 F 5.746(.I)-.65 G(f)-5.746 ! E(there is no ne)108 549.6 Q(xt entry)-.15 E 2.5(,r)-.65 G(eturn a)-2.5 ! E F2(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F2(Sear)87 578.4 Q ! (ching the History List)-.18 E F0 .005(These functions allo)108 590.4 R 2.505(ws)-.25 G .006(earching of the history list for entries containin\ g a speci\214c string.)-2.505 F .006(Searching may be)5.006 F 1.452 ! (performed both forw)108 602.4 R 1.452(ard and backw)-.1 F 1.451 (ard from the current history position.)-.1 F 1.451(The search may be) ! 6.451 F F1(anc)3.951 E(hor)-.15 E(ed)-.37 E F0(,)A ! (meaning that the string must match at the be)108 614.4 Q ! (ginning of the history entry)-.15 E(.)-.65 E F1(int)108 638.4 Q F2 ! (history_sear)2.5 E(ch)-.18 E F0(\()4.166 E F1(const c)A(har *string) -.15 E 1.666(,i)-.1 G(nt dir)-1.666 E(ection)-.37 E F0(\))1.666 E .155 ! (Search the history for)108 650.4 R F1(string)2.655 E F0 2.656(,s)C .156 ! (tarting at the current history of)-2.656 F 2.656(fset. If)-.25 F F1 (dir)2.656 E(ection)-.37 E F0 .156(is less than 0, then the search)2.656 ! F .802(is through pre)108 662.4 R .802 (vious entries, otherwise through subsequent entries.)-.25 F(If)5.801 E ! F1(string)3.301 E F0 .801(is found, then the current his-)3.301 F .064 ! (tory inde)108 674.4 R 2.564(xi)-.15 G 2.564(ss)-2.564 G .064 (et to that history entry)-2.564 F 2.564(,a)-.65 G .064(nd the v)-2.564 F .064(alue returned is the of)-.25 F .064 ! (fset in the line of the entry where)-.25 F F1(string)2.565 E F0 -.1(wa) ! 108 686.4 S 2.5(sf).1 G 2.5(ound. Otherwise,)-2.5 F ! (nothing is changed, and a -1 is returned.)2.5 E F1(int)108 710.4 Q F2 ! (history_sear)2.5 E(ch_pr)-.18 E(e\214x)-.18 E F0(\()4.166 E F1(const c) A(har *string)-.15 E 1.666(,i)-.1 G(nt dir)-1.666 E(ection)-.37 E F0(\)) ! 1.666 E .684(Search the history for)108 722.4 R F1(string)3.183 E F0 ! 3.183(,s)C .683(tarting at the current history of)-3.183 F 3.183 ! (fset. The)-.25 F .683(search is anchored: matching lines)3.183 F ! (GNU History 4.3)72 768 Q(2002 January 31)131.79 E(4)195.95 E EP ! %%Page: 5 5 ! %%BeginPageSetup ! BP ! %%EndPageSetup ! /F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F ! (OR)-.18 E(Y\(3\))-.65 E 1.063(must be)108 84 R 1.063(gin with)-.15 F/F1 ! 10/Times-Italic@0 SF(string)3.563 E F0 6.063(.I)C(f)-6.063 E F1(dir) ! 3.563 E(ection)-.37 E F0 1.064 (is less than 0, then the search is through pre)3.563 F 1.064 (vious entries, otherwise)-.25 F 1.115(through subsequent entries.)108 ! 96 R(If)6.115 E F1(string)3.615 E F0 1.115 (is found, then the current history inde)3.615 F 3.614(xi)-.15 G 3.614 (ss)-3.614 G 1.114(et to that entry)-3.614 F 3.614(,a)-.65 G 1.114 ! (nd the)-3.614 F(return v)108 108 Q(alue is 0.)-.25 E ! (Otherwise, nothing is changed, and a -1 is returned.)5 E F1(int)108 132 ! Q/F2 10/Times-Bold@0 SF(history_sear)2.5 E(ch_pos)-.18 E F0(\()4.166 E ! F1(const c)A(har *string)-.15 E 1.666(,i)-.1 G(nt dir)-1.666 E -.834 ! (ection, int)-.37 F(pos)2.5 E F0(\))3.332 E .603(Search for)108 144 R F1 ! (string)3.103 E F0 .603(in the history list, starting at)3.103 F F1(pos) ! 3.104 E F0 3.104(,a)C 3.104(na)-3.104 G .604(bsolute inde)-3.104 F 3.104 ! (xi)-.15 G .604(nto the list.)-3.104 F(If)5.604 E F1(dir)3.104 E(ection) ! -.37 E F0 .604(is ne)3.104 F -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(,) ! .15 E .608(the search proceeds backw)108 156 R .608(ard from)-.1 F F1 ! (pos)3.108 E F0 3.108(,o)C .608(therwise forw)-3.108 F 3.108 ! (ard. Returns)-.1 F .608(the absolute inde)3.108 F 3.108(xo)-.15 G 3.108 ! (ft)-3.108 G .608(he history ele-)-3.108 F(ment where)108 168 Q F1 ! (string)2.5 E F0 -.1(wa)2.5 G 2.5(sf).1 G(ound, or -1 otherwise.)-2.5 E ! F2(Managing the History File)87 196.8 Q F0 .035(The History library can\ ! read the history from and write it to a \214le.)108 208.8 R .036 (This section documents the functions for)5.035 F ! (managing a history \214le.)108 220.8 Q F1(int)108 244.8 Q F2 -.18(re) ! 2.5 G(ad_history).18 E F0(\()4.166 E F1(const c)A(har *\214lename)-.15 E ! F0(\))1.666 E .151(Add the contents of)108 256.8 R F1(\214lename)2.651 E ! F0 .151(to the history list, a line at a time.)2.651 F(If)5.15 E F1 ! (\214lename)2.65 E F0(is)2.65 E F2(NULL)2.65 E F0 2.65(,t)C .15 ! (hen read from)-2.65 F F1(~/.his-)2.65 E(tory)108 268.8 Q F0 5(.R)C ! (eturns 0 if successful, or)-5 E F2(err)2.5 E(no)-.15 E F0(if not.)2.5 E ! F1(int)108 292.8 Q F2 -.18(re)2.5 G(ad_history_range).18 E F0(\()4.166 E ! F1(const c)A(har *\214lename)-.15 E 1.666(,i)-.1 G(nt fr)-1.666 E -.834 (om, int)-.45 F(to)2.5 E F0(\))3.332 E .052(Read a range of lines from) ! 108 304.8 R F1(\214lename)2.553 E F0 2.553(,a)C .053 (dding them to the history list.)-2.553 F .053(Start reading at line) ! 5.053 F F1(fr)2.553 E(om)-.45 E F0 .053(and end at)2.553 F F1(to)2.553 E ! F0(.)A(If)108 316.8 Q F1(fr)2.889 E(om)-.45 E F0 .389 ! (is zero, start at the be)2.889 F 2.889(ginning. If)-.15 F F1(to)2.889 E ! F0 .389(is less than)2.889 F F1(fr)2.889 E(om)-.45 E F0 2.889(,t)C .388 ! (hen read until the end of the \214le.)-2.889 F(If)5.388 E F1 ! (\214lename)2.888 E F0(is)108 328.8 Q F2(NULL)2.5 E F0 2.5(,t)C ! (hen read from)-2.5 E F1(~/.history)2.5 E F0 5(.R)C ! (eturns 0 if successful, or)-5 E F2(err)2.5 E(no)-.15 E F0(if not.)2.5 E ! F1(int)108 352.8 Q F2(write_history)2.5 E F0(\()4.166 E F1(const c)A (har *\214lename)-.15 E F0(\))1.666 E .961(Write the current history to) ! 108 364.8 R F1(\214lename)3.461 E F0 3.461(,o)C -.15(ve)-3.611 G ! (rwriting).15 E F1(\214lename)3.461 E F0 .961(if necessary)3.461 F 5.961 ! (.I)-.65 G(f)-5.961 E F1(\214lename)3.462 E F0(is)3.462 E F2(NULL)3.462 ! E F0 3.462(,t)C .962(hen write)-3.462 F(the history list to)108 376.8 Q ! F1(~/.history)2.5 E F0 5(.R)C(eturns 0 on success, or)-5 E F2(err)2.5 E ! (no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F1(int)108 412.8 Q ! F2(append_history)2.5 E F0(\()4.166 E F1(int nelements,)A(const c)1.666 ! E(har *\214lename)-.15 E F0(\))1.666 E .839(Append the last)108 424.8 R ! F1(nelements)3.339 E F0 .839(of the history list to)3.339 F F1 ! (\214lename)3.339 E F0 5.839(.I)C(f)-5.839 E F1(\214lename)3.339 E F0 ! (is)3.339 E F2(NULL)3.339 E F0 3.339(,t)C .838(hen append to)-3.339 F F1 ! (~/.history)3.338 E F0(.)A(Returns 0 on success, or)108 436.8 Q F2(err) ! 2.5 E(no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F1(int)108 ! 460.8 Q F2(history_truncate_\214le)2.5 E F0(\()4.166 E F1(const c)A (har *\214lename)-.15 E 1.666(,i)-.1 G(nt nlines)-1.666 E F0(\))1.666 E ! -.35(Tr)108 472.8 S .38(uncate the history \214le).35 F F1(\214lename) ! 2.88 E F0 2.88(,l)C(ea)-2.88 E .38(ving only the last)-.2 F F1(nlines) ! 2.881 E F0 2.881(lines. If)2.881 F F1(\214lename)2.881 E F0(is)2.881 E ! F2(NULL)2.881 E F0 2.881(,t)C(hen)-2.881 E F1(~/.history)2.881 E F0(is) ! 2.881 E 2.5(truncated. Returns)108 484.8 R 2.5(0o)2.5 G 2.5(ns)-2.5 G ! (uccess, or)-2.5 E F2(err)2.5 E(no)-.15 E F0(on f)2.5 E(ailure.)-.1 E F2 ! (History Expansion)87 513.6 Q F0(These functions implement history e)108 ! 525.6 Q(xpansion.)-.15 E F1(int)108 549.6 Q F2(history_expand)2.5 E F0 ! (\()4.166 E F1 -.15(ch)C(ar *string).15 E 1.666(,c)-.1 G(har **output) ! -1.816 E F0(\))1.666 E(Expand)108 561.6 Q F1(string)2.5 E F0 2.5(,p)C ! (lacing the result into)-2.5 E F1(output)2.5 E F0 2.5(,ap)C ! (ointer to a string.)-2.5 E(Returns:)5 E 31(0I)144 573.6 S 3.066(fn)-31 ! G 3.066(oe)-3.066 G .566(xpansions took place \(or)-3.216 F 3.065(,i)-.4 ! G 3.065(ft)-3.065 G .565(he only change in the te)-3.065 F .565(xt w) ! -.15 F .565(as the remo)-.1 F -.25(va)-.15 G 3.065(lo).25 G 3.065(fe) ! -3.065 G(scape)-3.065 E(characters preceding the history e)180 585.6 Q ! (xpansion character\);)-.15 E 31(1i)144 597.6 S 2.5(fe)-31 G ! (xpansions did tak)-2.65 E 2.5(ep)-.1 G(lace;)-2.5 E 25.17(-1 if)144 ! 609.6 R(there w)2.5 E(as an error in e)-.1 E(xpansion;)-.15 E 31(2i)144 ! 621.6 S 2.5(ft)-31 G(he returned line should be displayed, b)-2.5 E ! (ut not e)-.2 E -.15(xe)-.15 G(cuted, as with the).15 E F2(:p)2.5 E F0 ! (modi\214er)2.5 E(.)-.55 E(If an error ocurred in e)108 633.6 Q ! (xpansion, then)-.15 E F1(output)2.5 E F0(contains a descripti)2.5 E .3 ! -.15(ve e)-.25 H(rror message.).15 E F1 -.15(ch)108 657.6 S(ar *).15 E ! F2(get_history_e)2.5 E -.1(ve)-.15 G(nt).1 E F0(\()4.166 E F1(const c)A ! (har *string)-.15 E 1.666(,i)-.1 G(nt *cinde)-1.666 E -.834(x, int)-.2 F ! (qc)2.5 E(har)-.15 E F0(\))3.332 E .262(Returns the te)108 669.6 R .262 ! (xt of the history e)-.15 F -.15(ve)-.25 G .262(nt be).15 F .263 ! (ginning at)-.15 F F1(string)2.763 E F0(+)2.763 E F1(*cinde)2.763 E(x) ! -.2 E F0(.)A F1(*cinde)5.263 E(x)-.2 E F0 .263 ! (is modi\214ed to point to after the)2.763 F -2.15 -.25(ev e)108 681.6 T ! .71(nt speci\214er).25 F 5.71(.A)-.55 G 3.21(tf)-5.71 G .71 ! (unction entry)-3.21 F(,)-.65 E F1(cinde)3.21 E(x)-.2 E F0 .709 ! (points to the inde)3.21 F 3.209(xi)-.15 G(nto)-3.209 E F1(string)3.209 ! E F0 .709(where the history e)3.209 F -.15(ve)-.25 G .709 ! (nt speci\214ca-).15 F .527(tion be)108 693.6 R(gins.)-.15 E F1(qc)5.527 ! E(har)-.15 E F0 .527(is a character that is allo)3.027 F .527 ! (wed to end the e)-.25 F -.15(ve)-.25 G .528 ! (nt speci\214cation in addition to the `).15 F(`normal')-.74 E(')-.74 E ! (terminating characters.)108 705.6 Q F1 -.15(ch)108 729.6 S(ar **).15 E ! F2(history_tok)2.5 E(enize)-.1 E F0(\()4.166 E F1(const c)A(har *string) ! -.15 E F0(\))1.666 E(GNU History 4.3)72 768 Q(2002 January 31)131.79 E ! (5)195.95 E EP %%Page: 6 6 %%BeginPageSetup --- 492,678 ---- %%EndPageSetup /F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F ! (OR)-.18 E(Y\(3\))-.65 E(dispose of an)108 84 Q 2.5(ya)-.15 G ! (pplication-speci\214c data.)-2.5 E(In the case of an in)5 E -.25(va)-.4 ! G(lid).25 E/F1 10/Times-Italic@0 SF(whic)2.5 E(h)-.15 E F0 2.5(,a)C/F2 ! 10/Times-Bold@0 SF(NULL)A F0(pointer is returned.)2.5 E F1(void)108 108 ! Q F2(clear_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E ! (Clear the history list by deleting all the entries.)108 120 Q F1(void) ! 108 144 Q F2(sti\215e_history)2.5 E F0(\()4.166 E F1(int max)A F0(\)) ! 1.666 E(Sti\215e the history list, remembering only the last)108 156 Q ! F1(max)2.5 E F0(entries.)2.5 E F1(int)108 180 Q F2(unsti\215e_history) ! 2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E .46 ! (Stop sti\215ing the history)108 192 R 5.46(.T)-.65 G .46 ! (his returns the pre)-5.46 F .46 ! (viously-set maximum number of history entries \(as set by)-.25 F F2 ! (sti-)2.96 E(\215e_history\(\))108 204 Q F0 2.5(\). history)B -.1(wa)2.5 ! G 2.5(ss).1 G 2.5(ti\215ed. The)-2.5 F -.25(va)2.5 G(lue is positi).25 E ! .3 -.15(ve i)-.25 H 2.5(ft).15 G(he history w)-2.5 E(as sti\215ed, ne) ! -.1 E -.05(ga)-.15 G(ti).05 E .3 -.15(ve i)-.25 H 2.5(fi).15 G 2.5(tw) ! -2.5 G(asn')-2.6 E(t.)-.18 E F1(int)108 228 Q F2(history_is_sti\215ed) ! 2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E ! (Returns non-zero if the history is sti\215ed, zero if it is not.)108 ! 240 Q F2(Inf)87 268.8 Q(ormation About the History List)-.25 E F0(These\ ! functions return information about the entire history list or indi)108 ! 280.8 Q(vidual list entries.)-.25 E F1(HIST_ENTR)108 304.8 Q 2.5(Y*)-.18 G(*)-2.5 E F2(history_list)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E ! .708(Return a)108 316.8 R F2(NULL)3.208 E F0 .708(terminated array of) 3.208 F F1(HIST_ENTR)3.208 E 3.208(Y*)-.18 G F0 .708 (which is the current input history)B 5.707(.E)-.65 G .707 ! (lement 0 of this)-5.707 F(list is the be)108 328.8 Q(ginning of time.) -.15 E(If there is no history)5 E 2.5(,r)-.65 G(eturn)-2.5 E F2(NULL)2.5 ! E F0(.)A F1(int)108 352.8 Q F2(wher)2.5 E(e_history)-.18 E F0(\()4.166 E ! F1(void)A F0(\))1.666 E(Returns the of)108 364.8 Q ! (fset of the current history element.)-.25 E F1(HIST_ENTR)108 388.8 Q 2.5(Y*)-.18 G F2(curr)A(ent_history)-.18 E F0(\()4.166 E F1(void)A F0 (\))1.666 E 1.373 (Return the history entry at the current position, as determined by)108 ! 400.8 R F2(wher)3.873 E(e_history\(\))-.18 E F0 6.373(.I)C 3.873(ft) ! -6.373 G 1.374(here is no entry)-3.873 F(there, return a)108 412.8 Q F2 ! (NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1(HIST_ENTR)108 436.8 Q 2.5(Y*) -.18 G F2(history_get)A F0(\()4.166 E F1(int of)A(fset)-.18 E F0(\)) ! 1.666 E .288(Return the history entry at position)108 448.8 R F1(of) 2.787 E(fset)-.18 E F0 2.787(,s)C .287(tarting from)-2.787 F F2 (history_base)2.787 E F0 5.287(.I)C 2.787(ft)-5.287 G .287 (here is no entry there, or if)-2.787 F F1(of)2.787 E(fset)-.18 E F0 ! (is greater than the history length, return a)108 460.8 Q F2(NULL)2.5 E ! F0(pointer)2.5 E(.)-.55 E F1(time_t)108 484.8 Q F2(history_get_time)2.5 ! E F0(\()4.166 E F1(HIST_ENTR)A 2.5(Y*)-.18 G F0(\))-.834 E(Return the t\ ! ime stamp associated with the history entry passed as the ar)108 496.8 Q ! (gument.)-.18 E F1(int)108 520.8 Q F2(history_total_bytes)2.5 E F0(\() ! 4.166 E F1(void)A F0(\))1.666 E .391 (Return the number of bytes that the primary history entries are using.) ! 108 532.8 R .392(This function returns the sum of the)5.392 F ! (lengths of all the lines in the history)108 544.8 Q(.)-.65 E F2(Mo)87 ! 573.6 Q(ving Ar)-.1 E(ound the History List)-.18 E F0 ! (These functions allo)108 585.6 Q 2.5(wt)-.25 G(he current inde)-2.5 E 2.5(xi)-.15 G(nto the history list to be set or changed.)-2.5 E F1(int) ! 108 609.6 Q F2(history_set_pos)2.5 E F0(\()4.166 E F1(int pos)A F0(\)) ! 1.666 E .79(Set the current history of)108 621.6 R .79(fset to)-.25 F F1 (pos)3.29 E F0 3.29(,a)C 3.29(na)-3.29 G .79(bsolute inde)-3.29 F 3.29 (xi)-.15 G .79(nto the list.)-3.29 F .79(Returns 1 on success, 0 if)5.79 F F1(pos)3.29 E F0 .79(is less)3.29 F ! (than zero or greater than the number of history entries.)108 633.6 Q F1 ! (HIST_ENTR)108 657.6 Q 2.5(Y*)-.18 G F2(pr)A -.15(ev)-.18 G (ious_history).15 E F0(\()4.166 E F1(void)A F0(\))1.666 E .207 ! (Back up the current history of)108 669.6 R .207(fset to the pre)-.25 F .207(vious history entry)-.25 F 2.708(,a)-.65 G .208 (nd return a pointer to that entry)-2.708 F 5.208(.I)-.65 G 2.708(ft) ! -5.208 G .208(here is)-2.708 F(no pre)108 681.6 Q(vious entry)-.25 E 2.5 (,r)-.65 G(eturn a)-2.5 E F2(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1 ! (HIST_ENTR)108 705.6 Q 2.5(Y*)-.18 G F2(next_history)A F0(\()4.166 E F1 ! (void)A F0(\))1.666 E(Mo)108 717.6 Q 1.047 -.15(ve t)-.15 H .747 (he current history of).15 F .747(fset forw)-.25 F .746(ard to the ne) -.1 F .746(xt history entry)-.15 F 3.246(,a)-.65 G .746 (nd return the a pointer to that entry)-3.246 F 5.746(.I)-.65 G(f)-5.746 ! E(there is no ne)108 729.6 Q(xt entry)-.15 E 2.5(,r)-.65 G(eturn a)-2.5 ! E F2(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E(GNU History 5.0)72 768 Q ! (2003 July 31)139.005 E(4)203.165 E 0 Cg EP ! %%Page: 5 5 ! %%BeginPageSetup ! BP ! %%EndPageSetup ! /F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F ! (OR)-.18 E(Y\(3\))-.65 E/F1 10/Times-Bold@0 SF(Sear)87 84 Q ! (ching the History List)-.18 E F0 .005(These functions allo)108 96 R 2.505(ws)-.25 G .006(earching of the history list for entries containin\ g a speci\214c string.)-2.505 F .006(Searching may be)5.006 F 1.452 ! (performed both forw)108 108 R 1.452(ard and backw)-.1 F 1.451 (ard from the current history position.)-.1 F 1.451(The search may be) ! 6.451 F/F2 10/Times-Italic@0 SF(anc)3.951 E(hor)-.15 E(ed)-.37 E F0(,)A ! (meaning that the string must match at the be)108 120 Q ! (ginning of the history entry)-.15 E(.)-.65 E F2(int)108 144 Q F1 ! (history_sear)2.5 E(ch)-.18 E F0(\()4.166 E F2(const c)A(har *string) -.15 E 1.666(,i)-.1 G(nt dir)-1.666 E(ection)-.37 E F0(\))1.666 E .155 ! (Search the history for)108 156 R F2(string)2.655 E F0 2.656(,s)C .156 ! (tarting at the current history of)-2.656 F 2.656(fset. If)-.25 F F2 (dir)2.656 E(ection)-.37 E F0 .156(is less than 0, then the search)2.656 ! F .802(is through pre)108 168 R .802 (vious entries, otherwise through subsequent entries.)-.25 F(If)5.801 E ! F2(string)3.301 E F0 .801(is found, then the current his-)3.301 F .064 ! (tory inde)108 180 R 2.564(xi)-.15 G 2.564(ss)-2.564 G .064 (et to that history entry)-2.564 F 2.564(,a)-.65 G .064(nd the v)-2.564 F .064(alue returned is the of)-.25 F .064 ! (fset in the line of the entry where)-.25 F F2(string)2.565 E F0 -.1(wa) ! 108 192 S 2.5(sf).1 G 2.5(ound. Otherwise,)-2.5 F ! (nothing is changed, and a -1 is returned.)2.5 E F2(int)108 216 Q F1 ! (history_sear)2.5 E(ch_pr)-.18 E(e\214x)-.18 E F0(\()4.166 E F2(const c) A(har *string)-.15 E 1.666(,i)-.1 G(nt dir)-1.666 E(ection)-.37 E F0(\)) ! 1.666 E .684(Search the history for)108 228 R F2(string)3.183 E F0 3.183 ! (,s)C .683(tarting at the current history of)-3.183 F 3.183(fset. The) ! -.25 F .683(search is anchored: matching lines)3.183 F 1.063(must be)108 ! 240 R 1.063(gin with)-.15 F F2(string)3.563 E F0 6.063(.I)C(f)-6.063 E ! F2(dir)3.563 E(ection)-.37 E F0 1.064 (is less than 0, then the search is through pre)3.563 F 1.064 (vious entries, otherwise)-.25 F 1.115(through subsequent entries.)108 ! 252 R(If)6.115 E F2(string)3.615 E F0 1.115 (is found, then the current history inde)3.615 F 3.614(xi)-.15 G 3.614 (ss)-3.614 G 1.114(et to that entry)-3.614 F 3.614(,a)-.65 G 1.114 ! (nd the)-3.614 F(return v)108 264 Q(alue is 0.)-.25 E ! (Otherwise, nothing is changed, and a -1 is returned.)5 E F2(int)108 288 ! Q F1(history_sear)2.5 E(ch_pos)-.18 E F0(\()4.166 E F2(const c)A ! (har *string)-.15 E 1.666(,i)-.1 G(nt dir)-1.666 E -.834(ection, int) ! -.37 F(pos)2.5 E F0(\))3.332 E .603(Search for)108 300 R F2(string)3.103 ! E F0 .603(in the history list, starting at)3.103 F F2(pos)3.104 E F0 ! 3.104(,a)C 3.104(na)-3.104 G .604(bsolute inde)-3.104 F 3.104(xi)-.15 G ! .604(nto the list.)-3.104 F(If)5.604 E F2(dir)3.104 E(ection)-.37 E F0 ! .604(is ne)3.104 F -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(,).15 E .608 ! (the search proceeds backw)108 312 R .608(ard from)-.1 F F2(pos)3.108 E ! F0 3.108(,o)C .608(therwise forw)-3.108 F 3.108(ard. Returns)-.1 F .608 ! (the absolute inde)3.108 F 3.108(xo)-.15 G 3.108(ft)-3.108 G .608 ! (he history ele-)-3.108 F(ment where)108 324 Q F2(string)2.5 E F0 -.1 ! (wa)2.5 G 2.5(sf).1 G(ound, or -1 otherwise.)-2.5 E F1 ! (Managing the History File)87 352.8 Q F0 .035(The History library can r\ ! ead the history from and write it to a \214le.)108 364.8 R .036 (This section documents the functions for)5.035 F ! (managing a history \214le.)108 376.8 Q F2(int)108 400.8 Q F1 -.18(re) ! 2.5 G(ad_history).18 E F0(\()4.166 E F2(const c)A(har *\214lename)-.15 E ! F0(\))1.666 E .151(Add the contents of)108 412.8 R F2(\214lename)2.651 E ! F0 .151(to the history list, a line at a time.)2.651 F(If)5.15 E F2 ! (\214lename)2.65 E F0(is)2.65 E F1(NULL)2.65 E F0 2.65(,t)C .15 ! (hen read from)-2.65 F F2(~/.his-)2.65 E(tory)108 424.8 Q F0 5(.R)C ! (eturns 0 if successful, or)-5 E F1(err)2.5 E(no)-.15 E F0(if not.)2.5 E ! F2(int)108 448.8 Q F1 -.18(re)2.5 G(ad_history_range).18 E F0(\()4.166 E ! F2(const c)A(har *\214lename)-.15 E 1.666(,i)-.1 G(nt fr)-1.666 E -.834 (om, int)-.45 F(to)2.5 E F0(\))3.332 E .052(Read a range of lines from) ! 108 460.8 R F2(\214lename)2.553 E F0 2.553(,a)C .053 (dding them to the history list.)-2.553 F .053(Start reading at line) ! 5.053 F F2(fr)2.553 E(om)-.45 E F0 .053(and end at)2.553 F F2(to)2.553 E ! F0(.)A(If)108 472.8 Q F2(fr)2.889 E(om)-.45 E F0 .389 ! (is zero, start at the be)2.889 F 2.889(ginning. If)-.15 F F2(to)2.889 E ! F0 .389(is less than)2.889 F F2(fr)2.889 E(om)-.45 E F0 2.889(,t)C .388 ! (hen read until the end of the \214le.)-2.889 F(If)5.388 E F2 ! (\214lename)2.888 E F0(is)108 484.8 Q F1(NULL)2.5 E F0 2.5(,t)C ! (hen read from)-2.5 E F2(~/.history)2.5 E F0 5(.R)C ! (eturns 0 if successful, or)-5 E F1(err)2.5 E(no)-.15 E F0(if not.)2.5 E ! F2(int)108 508.8 Q F1(write_history)2.5 E F0(\()4.166 E F2(const c)A (har *\214lename)-.15 E F0(\))1.666 E .961(Write the current history to) ! 108 520.8 R F2(\214lename)3.461 E F0 3.461(,o)C -.15(ve)-3.611 G ! (rwriting).15 E F2(\214lename)3.461 E F0 .961(if necessary)3.461 F 5.961 ! (.I)-.65 G(f)-5.961 E F2(\214lename)3.462 E F0(is)3.462 E F1(NULL)3.462 ! E F0 3.462(,t)C .962(hen write)-3.462 F(the history list to)108 532.8 Q ! F2(~/.history)2.5 E F0 5(.R)C(eturns 0 on success, or)-5 E F1(err)2.5 E ! (no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F2(int)108 568.8 Q ! F1(append_history)2.5 E F0(\()4.166 E F2(int nelements,)A(const c)1.666 ! E(har *\214lename)-.15 E F0(\))1.666 E .839(Append the last)108 580.8 R ! F2(nelements)3.339 E F0 .839(of the history list to)3.339 F F2 ! (\214lename)3.339 E F0 5.839(.I)C(f)-5.839 E F2(\214lename)3.339 E F0 ! (is)3.339 E F1(NULL)3.339 E F0 3.339(,t)C .838(hen append to)-3.339 F F2 ! (~/.history)3.338 E F0(.)A(Returns 0 on success, or)108 592.8 Q F1(err) ! 2.5 E(no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F2(int)108 ! 616.8 Q F1(history_truncate_\214le)2.5 E F0(\()4.166 E F2(const c)A (har *\214lename)-.15 E 1.666(,i)-.1 G(nt nlines)-1.666 E F0(\))1.666 E ! -.35(Tr)108 628.8 S .38(uncate the history \214le).35 F F2(\214lename) ! 2.88 E F0 2.88(,l)C(ea)-2.88 E .38(ving only the last)-.2 F F2(nlines) ! 2.881 E F0 2.881(lines. If)2.881 F F2(\214lename)2.881 E F0(is)2.881 E ! F1(NULL)2.881 E F0 2.881(,t)C(hen)-2.881 E F2(~/.history)2.881 E F0(is) ! 2.881 E 2.5(truncated. Returns)108 640.8 R 2.5(0o)2.5 G 2.5(ns)-2.5 G ! (uccess, or)-2.5 E F1(err)2.5 E(no)-.15 E F0(on f)2.5 E(ailure.)-.1 E F1 ! (History Expansion)87 669.6 Q F0(These functions implement history e)108 ! 681.6 Q(xpansion.)-.15 E F2(int)108 705.6 Q F1(history_expand)2.5 E F0 ! (\()4.166 E F2 -.15(ch)C(ar *string).15 E 1.666(,c)-.1 G(har **output) ! -1.816 E F0(\))1.666 E(Expand)108 717.6 Q F2(string)2.5 E F0 2.5(,p)C ! (lacing the result into)-2.5 E F2(output)2.5 E F0 2.5(,ap)C ! (ointer to a string.)-2.5 E(Returns:)5 E(GNU History 5.0)72 768 Q ! (2003 July 31)139.005 E(5)203.165 E 0 Cg EP %%Page: 6 6 %%BeginPageSetup *************** *** 685,764 **** %%EndPageSetup /F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F ! (OR)-.18 E(Y\(3\))-.65 E .239(Return an array of tok)108 84 R .239 ! (ens parsed out of)-.1 F/F1 10/Times-Italic@0 SF(string)2.739 E F0 2.739 ! (,m)C .238(uch as the shell might.)-2.739 F .238(The tok)5.238 F .238 ! (ens are split on the charac-)-.1 F(ters in the)108 96 Q/F2 10 ! /Times-Bold@0 SF(history_w)2.5 E(ord_delimiters)-.1 E F0 -.25(va)2.5 G (riable, and shell quoting con).25 E -.15(ve)-.4 G(ntions are obe).15 E ! (yed.)-.15 E F1 -.15(ch)108 120 S(ar *).15 E F2(history_ar)2.5 E ! (g_extract)-.1 E F0(\()4.166 E F1(int \214r)A -.834(st, int)-.1 F -.834 (last, const)2.5 F -.15(ch)2.5 G(ar *string).15 E F0(\))3.332 E .025 ! (Extract a string se)108 132 R .025(gment consisting of the)-.15 F F1 ! <8c72>2.526 E(st)-.1 E F0(through)2.526 E F1(last)2.526 E F0(ar)2.526 E ! .026(guments present in)-.18 F F1(string)2.526 E F0 5.026(.A)C -.18(rg) ! -5.026 G .026(uments are split).18 F(using)108 144 Q F2(history_tok)2.5 ! E(enize\(\))-.1 E F0(.)A F2(History V)87 172.8 Q(ariables)-.92 E F0 ! (This section describes the e)108 184.8 Q(xternally-visible v)-.15 E ! (ariables e)-.25 E(xported by the GNU History Library)-.15 E(.)-.65 E F1 ! (int)108 208.8 Q F2(history_base)2.5 E F0(The logical of)108 220.8 Q ! (fset of the \214rst entry in the history list.)-.25 E F1(int)108 244.8 ! Q F2(history_length)2.5 E F0 ! (The number of entries currently stored in the history list.)108 256.8 Q ! F1(int)108 280.8 Q F2(history_max_entries)2.5 E F0 ! (The maximum number of history entries.)108 292.8 Q ! (This must be changed using)5 E F2(sti\215e_history\(\))2.5 E F0(.)A F1 ! -.15(ch)108 316.8 S(ar).15 E F2(history_expansion_char)2.5 E F0 ! (The character that introduces a history e)108 328.8 Q -.15(ve)-.25 G ! 2.5(nt. The).15 F(def)2.5 E(ault is)-.1 E F2(!)2.5 E F0 5(.S)C ! (etting this to 0 inhibits history e)-5 E(xpansion.)-.15 E F1 -.15(ch) ! 108 352.8 S(ar).15 E F2(history_subst_char)2.5 E F0 ! (The character that in)108 364.8 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(sw).1 G (ord substitution if found at the start of a line.)-2.6 E(The def)5 E ! (ault is)-.1 E F2(^)2.5 E F0(.)A F1 -.15(ch)108 388.8 S(ar).15 E F2 ! (history_comment_char)2.5 E F0 .117(During tok)108 400.8 R .117 (enization, if this character is seen as the \214rst character of a w) ! -.1 F .117(ord, then it and all subsequent char)-.1 F(-)-.2 E .276 ! (acters up to a ne)108 412.8 R .276 (wline are ignored, suppressing history e)-.25 F .276 ! (xpansion for the remainder of the line.)-.15 F .277(This is dis-)5.276 ! F(abled by def)108 424.8 Q(ault.)-.1 E F1 -.15(ch)108 448.8 S(ar *).15 E ! F2(history_w)2.5 E(ord_delimiters)-.1 E F0 ! (The characters that separate tok)108 460.8 Q(ens for)-.1 E F2 (history_tok)2.5 E(enize\(\))-.1 E F0 5(.T)C(he def)-5 E(ault v)-.1 E ! (alue is)-.25 E F2 2.5("\\)2.5 G(t\\n\(\)<>;&|")-2.5 E F0(.)A F1 -.15 ! (ch)108 484.8 S(ar *).15 E F2(history_no_expand_chars)2.5 E F0 2.054 ! (The list of characters which inhibit history e)108 496.8 R 2.054 ! (xpansion if found immediately follo)-.15 F(wing)-.25 E F2 ! (history_expan-)4.554 E(sion_char)108 508.8 Q F0 5(.T)C(he def)-5 E ! (ault is space, tab, ne)-.1 E(wline,)-.25 E F2(\\r)2.5 E F0 2.5(,a)C(nd) ! -2.5 E F2(=)2.5 E F0(.)A F1 -.15(ch)108 532.8 S(ar *).15 E F2 ! (history_sear)2.5 E(ch_delimiter_chars)-.18 E F0 .401(The list of addit\ ! ional characters which can delimit a history search string, in addition\ ! to space, tab,)108 544.8 R F1(:)2.901 E F0(and)2.901 E F1(?)2.902 E F0 ! (in the case of a substring search.)108 556.8 Q(The def)5 E ! (ault is empty)-.1 E(.)-.65 E F1(int)108 580.8 Q F2 ! (history_quotes_inhibit_expansion)2.5 E F0 .625 ! (If non-zero, single-quoted w)108 592.8 R .625 ! (ords are not scanned for the history e)-.1 F .624(xpansion character) ! -.15 F 5.624(.T)-.55 G .624(he def)-5.624 F .624(ault v)-.1 F .624 ! (alue is)-.25 F(0.)108 604.8 Q F1(rl_lineb)108 628.8 Q(uf_func_t *)-.2 E ! F2(history_inhibit_expansion_function)2.5 E F0 .347 ! (This should be set to the address of a function that tak)108 640.8 R ! .348(es tw)-.1 F 2.848(oa)-.1 G -.18(rg)-2.848 G .348(uments: a).18 F F2 ! .348(char *)2.848 F F0(\()2.848 E F1(string)A F0 2.848(\)a)C .348(nd an) ! -2.848 F F2(int)2.848 E F0(inde)2.848 E(x)-.15 E .228 ! (into that string \()108 652.8 R F1(i)A F0 2.728(\). It)B .227 ! (should return a non-zero v)2.727 F .227(alue if the history e)-.25 F ! .227(xpansion starting at)-.15 F F1(string[i])2.727 E F0 .227 ! (should not)2.727 F .019(be performed; zero if the e)108 664.8 R .019 ! (xpansion should be done.)-.15 F .019 ! (It is intended for use by applications lik)5.019 F(e)-.1 E F2(bash) ! 2.519 E F0 .019(that use)2.519 F(the history e)108 676.8 Q ! (xpansion character for additional purposes.)-.15 E(By def)5 E ! (ault, this v)-.1 E(ariable is set to)-.25 E F2(NULL)2.5 E F0(.)A/F3 ! 10.95/Times-Bold@0 SF(FILES)72 693.6 Q F1(~/.history)109.666 705.6 Q F0 ! (Def)144 717.6 Q(ault \214lename for reading and writing sa)-.1 E -.15 ! (ve)-.2 G 2.5(dh).15 G(istory)-2.5 E(GNU History 4.3)72 768 Q ! (2002 January 31)131.79 E(6)195.95 E EP %%Page: 7 7 %%BeginPageSetup --- 680,767 ---- %%EndPageSetup /F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F ! (OR)-.18 E(Y\(3\))-.65 E 31(0I)144 84 S 3.066(fn)-31 G 3.066(oe)-3.066 G ! .566(xpansions took place \(or)-3.216 F 3.065(,i)-.4 G 3.065(ft)-3.065 G ! .565(he only change in the te)-3.065 F .565(xt w)-.15 F .565 ! (as the remo)-.1 F -.25(va)-.15 G 3.065(lo).25 G 3.065(fe)-3.065 G ! (scape)-3.065 E(characters preceding the history e)180 96 Q ! (xpansion character\);)-.15 E 31(1i)144 108 S 2.5(fe)-31 G ! (xpansions did tak)-2.65 E 2.5(ep)-.1 G(lace;)-2.5 E 25.17(-1 if)144 120 ! R(there w)2.5 E(as an error in e)-.1 E(xpansion;)-.15 E 31(2i)144 132 S ! 2.5(ft)-31 G(he returned line should be displayed, b)-2.5 E(ut not e)-.2 ! E -.15(xe)-.15 G(cuted, as with the).15 E/F1 10/Times-Bold@0 SF(:p)2.5 E ! F0(modi\214er)2.5 E(.)-.55 E(If an error ocurred in e)108 144 Q ! (xpansion, then)-.15 E/F2 10/Times-Italic@0 SF(output)2.5 E F0 ! (contains a descripti)2.5 E .3 -.15(ve e)-.25 H(rror message.).15 E F2 ! -.15(ch)108 168 S(ar *).15 E F1(get_history_e)2.5 E -.1(ve)-.15 G(nt).1 ! E F0(\()4.166 E F2(const c)A(har *string)-.15 E 1.666(,i)-.1 G ! (nt *cinde)-1.666 E -.834(x, int)-.2 F(qc)2.5 E(har)-.15 E F0(\))3.332 E ! .262(Returns the te)108 180 R .262(xt of the history e)-.15 F -.15(ve) ! -.25 G .262(nt be).15 F .263(ginning at)-.15 F F2(string)2.763 E F0(+) ! 2.763 E F2(*cinde)2.763 E(x)-.2 E F0(.)A F2(*cinde)5.263 E(x)-.2 E F0 ! .263(is modi\214ed to point to after the)2.763 F -2.15 -.25(ev e)108 192 ! T .71(nt speci\214er).25 F 5.71(.A)-.55 G 3.21(tf)-5.71 G .71 ! (unction entry)-3.21 F(,)-.65 E F2(cinde)3.21 E(x)-.2 E F0 .709 ! (points to the inde)3.21 F 3.209(xi)-.15 G(nto)-3.209 E F2(string)3.209 ! E F0 .709(where the history e)3.209 F -.15(ve)-.25 G .709 ! (nt speci\214ca-).15 F .527(tion be)108 204 R(gins.)-.15 E F2(qc)5.527 E ! (har)-.15 E F0 .527(is a character that is allo)3.027 F .527 ! (wed to end the e)-.25 F -.15(ve)-.25 G .528 ! (nt speci\214cation in addition to the `).15 F(`normal')-.74 E(')-.74 E ! (terminating characters.)108 216 Q F2 -.15(ch)108 240 S(ar **).15 E F1 ! (history_tok)2.5 E(enize)-.1 E F0(\()4.166 E F2(const c)A(har *string) ! -.15 E F0(\))1.666 E .239(Return an array of tok)108 252 R .239 ! (ens parsed out of)-.1 F F2(string)2.739 E F0 2.739(,m)C .238 ! (uch as the shell might.)-2.739 F .238(The tok)5.238 F .238 ! (ens are split on the charac-)-.1 F(ters in the)108 264 Q F1(history_w) ! 2.5 E(ord_delimiters)-.1 E F0 -.25(va)2.5 G (riable, and shell quoting con).25 E -.15(ve)-.4 G(ntions are obe).15 E ! (yed.)-.15 E F2 -.15(ch)108 288 S(ar *).15 E F1(history_ar)2.5 E ! (g_extract)-.1 E F0(\()4.166 E F2(int \214r)A -.834(st, int)-.1 F -.834 (last, const)2.5 F -.15(ch)2.5 G(ar *string).15 E F0(\))3.332 E .025 ! (Extract a string se)108 300 R .025(gment consisting of the)-.15 F F2 ! <8c72>2.526 E(st)-.1 E F0(through)2.526 E F2(last)2.526 E F0(ar)2.526 E ! .026(guments present in)-.18 F F2(string)2.526 E F0 5.026(.A)C -.18(rg) ! -5.026 G .026(uments are split).18 F(using)108 312 Q F1(history_tok)2.5 ! E(enize\(\))-.1 E F0(.)A F1(History V)87 340.8 Q(ariables)-.92 E F0 ! (This section describes the e)108 352.8 Q(xternally-visible v)-.15 E ! (ariables e)-.25 E(xported by the GNU History Library)-.15 E(.)-.65 E F2 ! (int)108 376.8 Q F1(history_base)2.5 E F0(The logical of)108 388.8 Q ! (fset of the \214rst entry in the history list.)-.25 E F2(int)108 412.8 ! Q F1(history_length)2.5 E F0 ! (The number of entries currently stored in the history list.)108 424.8 Q ! F2(int)108 448.8 Q F1(history_max_entries)2.5 E F0 ! (The maximum number of history entries.)108 460.8 Q ! (This must be changed using)5 E F1(sti\215e_history\(\))2.5 E F0(.)A F2 ! (int)108 484.8 Q F1(history_write_timestamps)2.5 E F0 1.468 ! (If non-zero, timestamps are written to the history \214le, so the)108 ! 496.8 R 3.968(yc)-.15 G 1.468(an be preserv)-3.968 F 1.468 ! (ed between sessions.)-.15 F(The)6.468 E(def)108 508.8 Q(ault v)-.1 E ! (alue is 0, meaning that timestamps are not sa)-.25 E -.15(ve)-.2 G(d.) ! .15 E F2 -.15(ch)108 532.8 S(ar).15 E F1(history_expansion_char)2.5 E F0 ! (The character that introduces a history e)108 544.8 Q -.15(ve)-.25 G ! 2.5(nt. The).15 F(def)2.5 E(ault is)-.1 E F1(!)2.5 E F0 5(.S)C ! (etting this to 0 inhibits history e)-5 E(xpansion.)-.15 E F2 -.15(ch) ! 108 568.8 S(ar).15 E F1(history_subst_char)2.5 E F0 ! (The character that in)108 580.8 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(sw).1 G (ord substitution if found at the start of a line.)-2.6 E(The def)5 E ! (ault is)-.1 E F1(^)2.5 E F0(.)A F2 -.15(ch)108 604.8 S(ar).15 E F1 ! (history_comment_char)2.5 E F0 .116(During tok)108 616.8 R .117 (enization, if this character is seen as the \214rst character of a w) ! -.1 F .117(ord, then it and all subsequent char)-.1 F(-)-.2 E .277 ! (acters up to a ne)108 628.8 R .276 (wline are ignored, suppressing history e)-.25 F .276 ! (xpansion for the remainder of the line.)-.15 F .276(This is dis-)5.276 ! F(abled by def)108 640.8 Q(ault.)-.1 E F2 -.15(ch)108 664.8 S(ar *).15 E ! F1(history_w)2.5 E(ord_delimiters)-.1 E F0 ! (The characters that separate tok)108 676.8 Q(ens for)-.1 E F1 (history_tok)2.5 E(enize\(\))-.1 E F0 5(.T)C(he def)-5 E(ault v)-.1 E ! (alue is)-.25 E F1 2.5("\\)2.5 G(t\\n\(\)<>;&|")-2.5 E F0(.)A F2 -.15 ! (ch)108 700.8 S(ar *).15 E F1(history_no_expand_chars)2.5 E F0 2.054 ! (The list of characters which inhibit history e)108 712.8 R 2.054 ! (xpansion if found immediately follo)-.15 F(wing)-.25 E F1 ! (history_expan-)4.555 E(sion_char)108 724.8 Q F0 5(.T)C(he def)-5 E ! (ault is space, tab, ne)-.1 E(wline,)-.25 E F1(\\r)2.5 E F0 2.5(,a)C(nd) ! -2.5 E F1(=)2.5 E F0(.)A(GNU History 5.0)72 768 Q(2003 July 31)139.005 E ! (6)203.165 E 0 Cg EP %%Page: 7 7 %%BeginPageSetup *************** *** 766,799 **** %%EndPageSetup /F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F ! (OR)-.18 E(Y\(3\))-.65 E/F1 10.95/Times-Bold@0 SF(SEE ALSO)72 84 Q/F2 10 ! /Times-Italic@0 SF(The Gnu Readline Libr)108 96 Q(ary)-.15 E F0 2.5(,B)C ! (rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2(The Gnu History Libr) ! 108 108 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E ! (y)-.15 E F2(bash)108 120 Q F0(\(1\))A F2 -.37(re)108 132 S(adline).37 E ! F0(\(3\))A F1 -.548(AU)72 148.8 S(THORS).548 E F0(Brian F)108 160.8 Q (ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108 ! 172.8 Q(g)-.18 E(Chet Rame)108 189.6 Q 1.3 -.65(y, C)-.15 H(ase W).65 E (estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E ! (chet@ins.CWR)108 201.6 Q(U.Edu)-.4 E F1 -.11(BU)72 218.4 S 2.738(GR).11 ! G(EPOR)-2.738 E(TS)-.438 E F0 .16(If you \214nd a b)108 230.4 R .16 ! (ug in the)-.2 F/F3 10/Times-Bold@0 SF(history)2.66 E F0(library)2.66 E ! 2.66(,y)-.65 G .16(ou should report it.)-2.66 F .16 ! (But \214rst, you should mak)5.16 F 2.66(es)-.1 G .16 ! (ure that it really is)-2.66 F 2.5(ab)108 242.4 S ! (ug, and that it appears in the latest v)-2.7 E(ersion of the)-.15 E F3 ! (history)2.5 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.).15 E .704 ! (Once you ha)108 259.2 R 1.004 -.15(ve d)-.2 H .704(etermined that a b) ! .15 F .704(ug actually e)-.2 F .704(xists, mail a b)-.15 F .705 ! (ug report to)-.2 F F2 -.2(bu)3.205 G(g\255r).2 E(eadline)-.37 E F0(@)A ! F2(gnu.or)A(g)-.37 E F0 5.705(.I)C 3.205(fy)-5.705 G(ou)-3.205 E(ha)108 ! 271.2 Q 1.81 -.15(ve a \214)-.2 H 1.51 ! (x, you are welcome to mail that as well!).15 F 1.509 ! (Suggestions and `philosophical' b)6.509 F 1.509(ug reports may be)-.2 F ! (mailed to)108 283.2 Q F2 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F2 ! (gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F3 ! (gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 300 Q ! (ug reports concerning this manual page should be directed to)-.2 E F2 -.15(ch)2.5 G(et@ins.CWR).15 E -.25(U.)-.4 G(Edu).25 E F0(.).25 E ! (GNU History 4.3)72 768 Q(2002 January 31)131.79 E(7)195.95 E EP %%Trailer end --- 769,828 ---- %%EndPageSetup /F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F ! (OR)-.18 E(Y\(3\))-.65 E/F1 10/Times-Italic@0 SF -.15(ch)108 84 S(ar *) ! .15 E/F2 10/Times-Bold@0 SF(history_sear)2.5 E(ch_delimiter_chars)-.18 E ! F0 .401(The list of additional characters which can delimit a history s\ ! earch string, in addition to space, tab,)108 96 R F1(:)2.901 E F0(and) ! 2.901 E F1(?)2.901 E F0(in the case of a substring search.)108 108 Q ! (The def)5 E(ault is empty)-.1 E(.)-.65 E F1(int)108 132 Q F2 ! (history_quotes_inhibit_expansion)2.5 E F0 .624 ! (If non-zero, single-quoted w)108 144 R .625 ! (ords are not scanned for the history e)-.1 F .625(xpansion character) ! -.15 F 5.625(.T)-.55 G .625(he def)-5.625 F .625(ault v)-.1 F .625 ! (alue is)-.25 F(0.)108 156 Q F1(rl_lineb)108 180 Q(uf_func_t *)-.2 E F2 ! (history_inhibit_expansion_function)2.5 E F0 .348 ! (This should be set to the address of a function that tak)108 192 R .348 ! (es tw)-.1 F 2.848(oa)-.1 G -.18(rg)-2.848 G .347(uments: a).18 F F2 ! .347(char *)2.847 F F0(\()2.847 E F1(string)A F0 2.847(\)a)C .347(nd an) ! -2.847 F F2(int)2.847 E F0(inde)2.847 E(x)-.15 E .227 ! (into that string \()108 204 R F1(i)A F0 2.727(\). It)B .227 ! (should return a non-zero v)2.727 F .227(alue if the history e)-.25 F ! .227(xpansion starting at)-.15 F F1(string[i])2.728 E F0 .228 ! (should not)2.728 F .019(be performed; zero if the e)108 216 R .019 ! (xpansion should be done.)-.15 F .019 ! (It is intended for use by applications lik)5.019 F(e)-.1 E F2(bash) ! 2.519 E F0 .018(that use)2.519 F(the history e)108 228 Q ! (xpansion character for additional purposes.)-.15 E(By def)5 E ! (ault, this v)-.1 E(ariable is set to)-.25 E F2(NULL)2.5 E F0(.)A/F3 ! 10.95/Times-Bold@0 SF(FILES)72 244.8 Q F1(~/.history)109.666 256.8 Q F0 ! (Def)144 268.8 Q(ault \214lename for reading and writing sa)-.1 E -.15 ! (ve)-.2 G 2.5(dh).15 G(istory)-2.5 E F3(SEE ALSO)72 285.6 Q F1 ! (The Gnu Readline Libr)108 297.6 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E ! (ox and Chet Rame)-.15 E(y)-.15 E F1(The Gnu History Libr)108 309.6 Q ! (ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E ! F1(bash)108 321.6 Q F0(\(1\))A F1 -.37(re)108 333.6 S(adline).37 E F0 ! (\(3\))A F3 -.548(AU)72 350.4 S(THORS).548 E F0(Brian F)108 362.4 Q (ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108 ! 374.4 Q(g)-.18 E(Chet Rame)108 391.2 Q 1.3 -.65(y, C)-.15 H(ase W).65 E (estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E ! (chet@ins.CWR)108 403.2 Q(U.Edu)-.4 E F3 -.11(BU)72 420 S 2.738(GR).11 G ! (EPOR)-2.738 E(TS)-.438 E F0 .16(If you \214nd a b)108 432 R .16 ! (ug in the)-.2 F F2(history)2.66 E F0(library)2.66 E 2.66(,y)-.65 G .16 ! (ou should report it.)-2.66 F .16(But \214rst, you should mak)5.16 F ! 2.66(es)-.1 G .16(ure that it really is)-2.66 F 2.5(ab)108 444 S ! (ug, and that it appears in the latest v)-2.7 E(ersion of the)-.15 E F2 ! (history)2.5 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.).15 E .705 ! (Once you ha)108 460.8 R 1.005 -.15(ve d)-.2 H .705(etermined that a b) ! .15 F .704(ug actually e)-.2 F .704(xists, mail a b)-.15 F .704 ! (ug report to)-.2 F F1 -.2(bu)3.204 G(g\255r).2 E(eadline)-.37 E F0(@)A ! F1(gnu.or)A(g)-.37 E F0 5.704(.I)C 3.204(fy)-5.704 G(ou)-3.204 E(ha)108 ! 472.8 Q 1.809 -.15(ve a \214)-.2 H 1.509 ! (x, you are welcome to mail that as well!).15 F 1.51 ! (Suggestions and `philosophical' b)6.51 F 1.51(ug reports may be)-.2 F ! (mailed to)108 484.8 Q F1 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F1 ! (gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F2 ! (gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 501.6 Q ! (ug reports concerning this manual page should be directed to)-.2 E F1 -.15(ch)2.5 G(et@ins.CWR).15 E -.25(U.)-.4 G(Edu).25 E F0(.).25 E ! (GNU History 5.0)72 768 Q(2003 July 31)139.005 E(7)203.165 E 0 Cg EP %%Trailer end diff -aNrc2 readline-4.3-patched/doc/hstech.texi readline-5.0/doc/hstech.texi *** readline-4.3-patched/doc/hstech.texi Wed Dec 31 19:00:00 1969 --- readline-5.0/doc/hstech.texi Thu Jul 31 08:49:05 2003 *************** *** 0 **** --- 1,573 ---- + @ignore + This file documents the user interface to the GNU History library. + + Copyright (C) 1988-2002 Free Software Foundation, Inc. + Authored by Brian Fox and Chet Ramey. + + Permission is granted to make and distribute verbatim copies of this manual + provided the copyright notice and this permission notice are preserved on + all copies. + + Permission is granted to process this file through Tex and print the + results, provided the printed document carries copying permission notice + identical to this one except for the removal of this paragraph (this + paragraph not being relevant to the printed manual). + + Permission is granted to copy and distribute modified versions of this + manual under the conditions for verbatim copying, provided also that the + GNU Copyright statement is available to the distributee, and provided that + the entire resulting derived work is distributed under the terms of a + permission notice identical to this one. + + Permission is granted to copy and distribute translations of this manual + into another language, under the above conditions for modified versions. + @end ignore + + @node Programming with GNU History + @chapter Programming with GNU History + + This chapter describes how to interface programs that you write + with the @sc{gnu} History Library. + It should be considered a technical guide. + For information on the interactive use of @sc{gnu} History, @pxref{Using + History Interactively}. + + @menu + * Introduction to History:: What is the GNU History library for? + * History Storage:: How information is stored. + * History Functions:: Functions that you can use. + * History Variables:: Variables that control behaviour. + * History Programming Example:: Example of using the GNU History Library. + @end menu + + @node Introduction to History + @section Introduction to History + + Many programs read input from the user a line at a time. The @sc{gnu} + History library is able to keep track of those lines, associate arbitrary + data with each line, and utilize information from previous lines in + composing new ones. + + The programmer using the History library has available functions + for remembering lines on a history list, associating arbitrary data + with a line, removing lines from the list, searching through the list + for a line containing an arbitrary text string, and referencing any line + in the list directly. In addition, a history @dfn{expansion} function + is available which provides for a consistent user interface across + different programs. + + The user using programs written with the History library has the + benefit of a consistent user interface with a set of well-known + commands for manipulating the text of previous lines and using that text + in new commands. The basic history manipulation commands are similar to + the history substitution provided by @code{csh}. + + If the programmer desires, he can use the Readline library, which + includes some history manipulation by default, and has the added + advantage of command line editing. + + Before declaring any functions using any functionality the History + library provides in other code, an application writer should include + the file @code{} in any file that uses the + History library's features. It supplies extern declarations for all + of the library's public functions and variables, and declares all of + the public data structures. + + @node History Storage + @section History Storage + + The history list is an array of history entries. A history entry is + declared as follows: + + @example + typedef void *histdata_t; + + typedef struct _hist_entry @{ + char *line; + char *timestamp; + histdata_t data; + @} HIST_ENTRY; + @end example + + The history list itself might therefore be declared as + + @example + HIST_ENTRY **the_history_list; + @end example + + The state of the History library is encapsulated into a single structure: + + @example + /* + * A structure used to pass around the current state of the history. + */ + typedef struct _hist_state @{ + HIST_ENTRY **entries; /* Pointer to the entries themselves. */ + int offset; /* The location pointer within this array. */ + int length; /* Number of elements within this array. */ + int size; /* Number of slots allocated to this array. */ + int flags; + @} HISTORY_STATE; + @end example + + If the flags member includes @code{HS_STIFLED}, the history has been + stifled. + + @node History Functions + @section History Functions + + This section describes the calling sequence for the various functions + exported by the @sc{gnu} History library. + + @menu + * Initializing History and State Management:: Functions to call when you + want to use history in a + program. + * History List Management:: Functions used to manage the list + of history entries. + * Information About the History List:: Functions returning information about + the history list. + * Moving Around the History List:: Functions used to change the position + in the history list. + * Searching the History List:: Functions to search the history list + for entries containing a string. + * Managing the History File:: Functions that read and write a file + containing the history list. + * History Expansion:: Functions to perform csh-like history + expansion. + @end menu + + @node Initializing History and State Management + @subsection Initializing History and State Management + + This section describes functions used to initialize and manage + the state of the History library when you want to use the history + functions in your program. + + @deftypefun void using_history (void) + Begin a session in which the history functions might be used. This + initializes the interactive variables. + @end deftypefun + + @deftypefun {HISTORY_STATE *} history_get_history_state (void) + Return a structure describing the current state of the input history. + @end deftypefun + + @deftypefun void history_set_history_state (HISTORY_STATE *state) + Set the state of the history list according to @var{state}. + @end deftypefun + + @node History List Management + @subsection History List Management + + These functions manage individual entries on the history list, or set + parameters managing the list itself. + + @deftypefun void add_history (const char *string) + Place @var{string} at the end of the history list. The associated data + field (if any) is set to @code{NULL}. + @end deftypefun + + @deftypefun void add_history_time (const char *string) + Change the time stamp associated with the most recent history entry to + @var{string}. + @end deftypefun + + @deftypefun {HIST_ENTRY *} remove_history (int which) + Remove history entry at offset @var{which} from the history. The + removed element is returned so you can free the line, data, + and containing structure. + @end deftypefun + + @deftypefun {histdata_t} free_history_entry (HIST_ENTRY *histent) + Free the history entry @var{histent} and any history library private + data associated with it. Returns the application-specific data + so the caller can dispose of it. + @end deftypefun + + @deftypefun {HIST_ENTRY *} replace_history_entry (int which, const char *line, histdata_t data) + Make the history entry at offset @var{which} have @var{line} and @var{data}. + This returns the old entry so the caller can dispose of any + application-specific data. In the case + of an invalid @var{which}, a @code{NULL} pointer is returned. + @end deftypefun + + @deftypefun void clear_history (void) + Clear the history list by deleting all the entries. + @end deftypefun + + @deftypefun void stifle_history (int max) + Stifle the history list, remembering only the last @var{max} entries. + @end deftypefun + + @deftypefun int unstifle_history (void) + Stop stifling the history. This returns the previously-set + maximum number of history entries (as set by @code{stifle_history()}). + The value is positive if the history was + stifled, negative if it wasn't. + @end deftypefun + + @deftypefun int history_is_stifled (void) + Returns non-zero if the history is stifled, zero if it is not. + @end deftypefun + + @node Information About the History List + @subsection Information About the History List + + These functions return information about the entire history list or + individual list entries. + + @deftypefun {HIST_ENTRY **} history_list (void) + Return a @code{NULL} terminated array of @code{HIST_ENTRY *} which is the + current input history. Element 0 of this list is the beginning of time. + If there is no history, return @code{NULL}. + @end deftypefun + + @deftypefun int where_history (void) + Returns the offset of the current history element. + @end deftypefun + + @deftypefun {HIST_ENTRY *} current_history (void) + Return the history entry at the current position, as determined by + @code{where_history()}. If there is no entry there, return a @code{NULL} + pointer. + @end deftypefun + + @deftypefun {HIST_ENTRY *} history_get (int offset) + Return the history entry at position @var{offset}, starting from + @code{history_base} (@pxref{History Variables}). + If there is no entry there, or if @var{offset} + is greater than the history length, return a @code{NULL} pointer. + @end deftypefun + + @deftypefun time_t history_get_time (HIST_ENTRY *entry) + Return the time stamp associated with the history entry @var{entry}. + @end deftypefun + + @deftypefun int history_total_bytes (void) + Return the number of bytes that the primary history entries are using. + This function returns the sum of the lengths of all the lines in the + history. + @end deftypefun + + @node Moving Around the History List + @subsection Moving Around the History List + + These functions allow the current index into the history list to be + set or changed. + + @deftypefun int history_set_pos (int pos) + Set the current history offset to @var{pos}, an absolute index + into the list. + Returns 1 on success, 0 if @var{pos} is less than zero or greater + than the number of history entries. + @end deftypefun + + @deftypefun {HIST_ENTRY *} previous_history (void) + Back up the current history offset to the previous history entry, and + return a pointer to that entry. If there is no previous entry, return + a @code{NULL} pointer. + @end deftypefun + + @deftypefun {HIST_ENTRY *} next_history (void) + Move the current history offset forward to the next history entry, and + return the a pointer to that entry. If there is no next entry, return + a @code{NULL} pointer. + @end deftypefun + + @node Searching the History List + @subsection Searching the History List + @cindex History Searching + + These functions allow searching of the history list for entries containing + a specific string. Searching may be performed both forward and backward + from the current history position. The search may be @dfn{anchored}, + meaning that the string must match at the beginning of the history entry. + @cindex anchored search + + @deftypefun int history_search (const char *string, int direction) + Search the history for @var{string}, starting at the current history offset. + If @var{direction} is less than 0, then the search is through + previous entries, otherwise through subsequent entries. + If @var{string} is found, then + the current history index is set to that history entry, and the value + returned is the offset in the line of the entry where + @var{string} was found. Otherwise, nothing is changed, and a -1 is + returned. + @end deftypefun + + @deftypefun int history_search_prefix (const char *string, int direction) + Search the history for @var{string}, starting at the current history + offset. The search is anchored: matching lines must begin with + @var{string}. If @var{direction} is less than 0, then the search is + through previous entries, otherwise through subsequent entries. + If @var{string} is found, then the + current history index is set to that entry, and the return value is 0. + Otherwise, nothing is changed, and a -1 is returned. + @end deftypefun + + @deftypefun int history_search_pos (const char *string, int direction, int pos) + Search for @var{string} in the history list, starting at @var{pos}, an + absolute index into the list. If @var{direction} is negative, the search + proceeds backward from @var{pos}, otherwise forward. Returns the absolute + index of the history element where @var{string} was found, or -1 otherwise. + @end deftypefun + + @node Managing the History File + @subsection Managing the History File + + The History library can read the history from and write it to a file. + This section documents the functions for managing a history file. + + @deftypefun int read_history (const char *filename) + Add the contents of @var{filename} to the history list, a line at a time. + If @var{filename} is @code{NULL}, then read from @file{~/.history}. + Returns 0 if successful, or @code{errno} if not. + @end deftypefun + + @deftypefun int read_history_range (const char *filename, int from, int to) + Read a range of lines from @var{filename}, adding them to the history list. + Start reading at line @var{from} and end at @var{to}. + If @var{from} is zero, start at the beginning. If @var{to} is less than + @var{from}, then read until the end of the file. If @var{filename} is + @code{NULL}, then read from @file{~/.history}. Returns 0 if successful, + or @code{errno} if not. + @end deftypefun + + @deftypefun int write_history (const char *filename) + Write the current history to @var{filename}, overwriting @var{filename} + if necessary. + If @var{filename} is @code{NULL}, then write the history list to + @file{~/.history}. + Returns 0 on success, or @code{errno} on a read or write error. + @end deftypefun + + @deftypefun int append_history (int nelements, const char *filename) + Append the last @var{nelements} of the history list to @var{filename}. + If @var{filename} is @code{NULL}, then append to @file{~/.history}. + Returns 0 on success, or @code{errno} on a read or write error. + @end deftypefun + + @deftypefun int history_truncate_file (const char *filename, int nlines) + Truncate the history file @var{filename}, leaving only the last + @var{nlines} lines. + If @var{filename} is @code{NULL}, then @file{~/.history} is truncated. + Returns 0 on success, or @code{errno} on failure. + @end deftypefun + + @node History Expansion + @subsection History Expansion + + These functions implement history expansion. + + @deftypefun int history_expand (char *string, char **output) + Expand @var{string}, placing the result into @var{output}, a pointer + to a string (@pxref{History Interaction}). Returns: + @table @code + @item 0 + If no expansions took place (or, if the only change in + the text was the removal of escape characters preceding the history expansion + character); + @item 1 + if expansions did take place; + @item -1 + if there was an error in expansion; + @item 2 + if the returned line should be displayed, but not executed, + as with the @code{:p} modifier (@pxref{Modifiers}). + @end table + + If an error ocurred in expansion, then @var{output} contains a descriptive + error message. + @end deftypefun + + @deftypefun {char *} get_history_event (const char *string, int *cindex, int qchar) + Returns the text of the history event beginning at @var{string} + + @var{*cindex}. @var{*cindex} is modified to point to after the event + specifier. At function entry, @var{cindex} points to the index into + @var{string} where the history event specification begins. @var{qchar} + is a character that is allowed to end the event specification in addition + to the ``normal'' terminating characters. + @end deftypefun + + @deftypefun {char **} history_tokenize (const char *string) + Return an array of tokens parsed out of @var{string}, much as the + shell might. The tokens are split on the characters in the + @var{history_word_delimiters} variable, + and shell quoting conventions are obeyed. + @end deftypefun + + @deftypefun {char *} history_arg_extract (int first, int last, const char *string) + Extract a string segment consisting of the @var{first} through @var{last} + arguments present in @var{string}. Arguments are split using + @code{history_tokenize}. + @end deftypefun + + @node History Variables + @section History Variables + + This section describes the externally-visible variables exported by + the @sc{gnu} History Library. + + @deftypevar int history_base + The logical offset of the first entry in the history list. + @end deftypevar + + @deftypevar int history_length + The number of entries currently stored in the history list. + @end deftypevar + + @deftypevar int history_max_entries + The maximum number of history entries. This must be changed using + @code{stifle_history()}. + @end deftypevar + + @deftypevar int history_write_timestamps + If non-zero, timestamps are written to the history file, so they can be + preserved between sessions. The default value is 0, meaning that + timestamps are not saved. + @end deftypevar + + @deftypevar char history_expansion_char + The character that introduces a history event. The default is @samp{!}. + Setting this to 0 inhibits history expansion. + @end deftypevar + + @deftypevar char history_subst_char + The character that invokes word substitution if found at the start of + a line. The default is @samp{^}. + @end deftypevar + + @deftypevar char history_comment_char + During tokenization, if this character is seen as the first character + of a word, then it and all subsequent characters up to a newline are + ignored, suppressing history expansion for the remainder of the line. + This is disabled by default. + @end deftypevar + + @deftypevar {char *} history_word_delimiters + The characters that separate tokens for @code{history_tokenize()}. + The default value is @code{" \t\n()<>;&|"}. + @end deftypevar + + @deftypevar {char *} history_search_delimiter_chars + The list of additional characters which can delimit a history search + string, in addition to space, TAB, @samp{:} and @samp{?} in the case of + a substring search. The default is empty. + @end deftypevar + + @deftypevar {char *} history_no_expand_chars + The list of characters which inhibit history expansion if found immediately + following @var{history_expansion_char}. The default is space, tab, newline, + carriage return, and @samp{=}. + @end deftypevar + + @deftypevar int history_quotes_inhibit_expansion + If non-zero, single-quoted words are not scanned for the history expansion + character. The default value is 0. + @end deftypevar + + @deftypevar {rl_linebuf_func_t *} history_inhibit_expansion_function + This should be set to the address of a function that takes two arguments: + a @code{char *} (@var{string}) + and an @code{int} index into that string (@var{i}). + It should return a non-zero value if the history expansion starting at + @var{string[i]} should not be performed; zero if the expansion should + be done. + It is intended for use by applications like Bash that use the history + expansion character for additional purposes. + By default, this variable is set to @code{NULL}. + @end deftypevar + + @node History Programming Example + @section History Programming Example + + The following program demonstrates simple use of the @sc{gnu} History Library. + + @smallexample + #include + #include + + main (argc, argv) + int argc; + char **argv; + @{ + char line[1024], *t; + int len, done = 0; + + line[0] = 0; + + using_history (); + while (!done) + @{ + printf ("history$ "); + fflush (stdout); + t = fgets (line, sizeof (line) - 1, stdin); + if (t && *t) + @{ + len = strlen (t); + if (t[len - 1] == '\n') + t[len - 1] = '\0'; + @} + + if (!t) + strcpy (line, "quit"); + + if (line[0]) + @{ + char *expansion; + int result; + + result = history_expand (line, &expansion); + if (result) + fprintf (stderr, "%s\n", expansion); + + if (result < 0 || result == 2) + @{ + free (expansion); + continue; + @} + + add_history (expansion); + strncpy (line, expansion, sizeof (line) - 1); + free (expansion); + @} + + if (strcmp (line, "quit") == 0) + done = 1; + else if (strcmp (line, "save") == 0) + write_history ("history_file"); + else if (strcmp (line, "read") == 0) + read_history ("history_file"); + else if (strcmp (line, "list") == 0) + @{ + register HIST_ENTRY **the_list; + register int i; + + the_list = history_list (); + if (the_list) + for (i = 0; the_list[i]; i++) + printf ("%d: %s\n", i + history_base, the_list[i]->line); + @} + else if (strncmp (line, "delete", 6) == 0) + @{ + int which; + if ((sscanf (line + 6, "%d", &which)) == 1) + @{ + HIST_ENTRY *entry = remove_history (which); + if (!entry) + fprintf (stderr, "No such entry %d\n", which); + else + @{ + free (entry->line); + free (entry); + @} + @} + else + @{ + fprintf (stderr, "non-numeric arg given to `delete'\n"); + @} + @} + @} + @} + @end smallexample diff -aNrc2 readline-4.3-patched/doc/hstech.texinfo readline-5.0/doc/hstech.texinfo *** readline-4.3-patched/doc/hstech.texinfo Tue Apr 16 17:11:15 2002 --- readline-5.0/doc/hstech.texinfo Wed Dec 31 19:00:00 1969 *************** *** 1,550 **** - @ignore - This file documents the user interface to the GNU History library. - - Copyright (C) 1988-2002 Free Software Foundation, Inc. - Authored by Brian Fox and Chet Ramey. - - Permission is granted to make and distribute verbatim copies of this manual - provided the copyright notice and this permission notice are preserved on - all copies. - - Permission is granted to process this file through Tex and print the - results, provided the printed document carries copying permission notice - identical to this one except for the removal of this paragraph (this - paragraph not being relevant to the printed manual). - - Permission is granted to copy and distribute modified versions of this - manual under the conditions for verbatim copying, provided also that the - GNU Copyright statement is available to the distributee, and provided that - the entire resulting derived work is distributed under the terms of a - permission notice identical to this one. - - Permission is granted to copy and distribute translations of this manual - into another language, under the above conditions for modified versions. - @end ignore - - @node Programming with GNU History - @chapter Programming with GNU History - - This chapter describes how to interface programs that you write - with the @sc{gnu} History Library. - It should be considered a technical guide. - For information on the interactive use of @sc{gnu} History, @pxref{Using - History Interactively}. - - @menu - * Introduction to History:: What is the GNU History library for? - * History Storage:: How information is stored. - * History Functions:: Functions that you can use. - * History Variables:: Variables that control behaviour. - * History Programming Example:: Example of using the GNU History Library. - @end menu - - @node Introduction to History - @section Introduction to History - - Many programs read input from the user a line at a time. The @sc{gnu} - History library is able to keep track of those lines, associate arbitrary - data with each line, and utilize information from previous lines in - composing new ones. - - The programmer using the History library has available functions - for remembering lines on a history list, associating arbitrary data - with a line, removing lines from the list, searching through the list - for a line containing an arbitrary text string, and referencing any line - in the list directly. In addition, a history @dfn{expansion} function - is available which provides for a consistent user interface across - different programs. - - The user using programs written with the History library has the - benefit of a consistent user interface with a set of well-known - commands for manipulating the text of previous lines and using that text - in new commands. The basic history manipulation commands are similar to - the history substitution provided by @code{csh}. - - If the programmer desires, he can use the Readline library, which - includes some history manipulation by default, and has the added - advantage of command line editing. - - Before declaring any functions using any functionality the History - library provides in other code, an application writer should include - the file @code{} in any file that uses the - History library's features. It supplies extern declarations for all - of the library's public functions and variables, and declares all of - the public data structures. - - @node History Storage - @section History Storage - - The history list is an array of history entries. A history entry is - declared as follows: - - @example - typedef void *histdata_t; - - typedef struct _hist_entry @{ - char *line; - histdata_t data; - @} HIST_ENTRY; - @end example - - The history list itself might therefore be declared as - - @example - HIST_ENTRY **the_history_list; - @end example - - The state of the History library is encapsulated into a single structure: - - @example - /* - * A structure used to pass around the current state of the history. - */ - typedef struct _hist_state @{ - HIST_ENTRY **entries; /* Pointer to the entries themselves. */ - int offset; /* The location pointer within this array. */ - int length; /* Number of elements within this array. */ - int size; /* Number of slots allocated to this array. */ - int flags; - @} HISTORY_STATE; - @end example - - If the flags member includes @code{HS_STIFLED}, the history has been - stifled. - - @node History Functions - @section History Functions - - This section describes the calling sequence for the various functions - exported by the @sc{gnu} History library. - - @menu - * Initializing History and State Management:: Functions to call when you - want to use history in a - program. - * History List Management:: Functions used to manage the list - of history entries. - * Information About the History List:: Functions returning information about - the history list. - * Moving Around the History List:: Functions used to change the position - in the history list. - * Searching the History List:: Functions to search the history list - for entries containing a string. - * Managing the History File:: Functions that read and write a file - containing the history list. - * History Expansion:: Functions to perform csh-like history - expansion. - @end menu - - @node Initializing History and State Management - @subsection Initializing History and State Management - - This section describes functions used to initialize and manage - the state of the History library when you want to use the history - functions in your program. - - @deftypefun void using_history (void) - Begin a session in which the history functions might be used. This - initializes the interactive variables. - @end deftypefun - - @deftypefun {HISTORY_STATE *} history_get_history_state (void) - Return a structure describing the current state of the input history. - @end deftypefun - - @deftypefun void history_set_history_state (HISTORY_STATE *state) - Set the state of the history list according to @var{state}. - @end deftypefun - - @node History List Management - @subsection History List Management - - These functions manage individual entries on the history list, or set - parameters managing the list itself. - - @deftypefun void add_history (const char *string) - Place @var{string} at the end of the history list. The associated data - field (if any) is set to @code{NULL}. - @end deftypefun - - @deftypefun {HIST_ENTRY *} remove_history (int which) - Remove history entry at offset @var{which} from the history. The - removed element is returned so you can free the line, data, - and containing structure. - @end deftypefun - - @deftypefun {HIST_ENTRY *} replace_history_entry (int which, const char *line, histdata_t data) - Make the history entry at offset @var{which} have @var{line} and @var{data}. - This returns the old entry so you can dispose of the data. In the case - of an invalid @var{which}, a @code{NULL} pointer is returned. - @end deftypefun - - @deftypefun void clear_history (void) - Clear the history list by deleting all the entries. - @end deftypefun - - @deftypefun void stifle_history (int max) - Stifle the history list, remembering only the last @var{max} entries. - @end deftypefun - - @deftypefun int unstifle_history (void) - Stop stifling the history. This returns the previously-set - maximum number of history entries (as set by @code{stifle_history()}). - The value is positive if the history was - stifled, negative if it wasn't. - @end deftypefun - - @deftypefun int history_is_stifled (void) - Returns non-zero if the history is stifled, zero if it is not. - @end deftypefun - - @node Information About the History List - @subsection Information About the History List - - These functions return information about the entire history list or - individual list entries. - - @deftypefun {HIST_ENTRY **} history_list (void) - Return a @code{NULL} terminated array of @code{HIST_ENTRY *} which is the - current input history. Element 0 of this list is the beginning of time. - If there is no history, return @code{NULL}. - @end deftypefun - - @deftypefun int where_history (void) - Returns the offset of the current history element. - @end deftypefun - - @deftypefun {HIST_ENTRY *} current_history (void) - Return the history entry at the current position, as determined by - @code{where_history()}. If there is no entry there, return a @code{NULL} - pointer. - @end deftypefun - - @deftypefun {HIST_ENTRY *} history_get (int offset) - Return the history entry at position @var{offset}, starting from - @code{history_base} (@pxref{History Variables}). - If there is no entry there, or if @var{offset} - is greater than the history length, return a @code{NULL} pointer. - @end deftypefun - - @deftypefun int history_total_bytes (void) - Return the number of bytes that the primary history entries are using. - This function returns the sum of the lengths of all the lines in the - history. - @end deftypefun - - @node Moving Around the History List - @subsection Moving Around the History List - - These functions allow the current index into the history list to be - set or changed. - - @deftypefun int history_set_pos (int pos) - Set the current history offset to @var{pos}, an absolute index - into the list. - Returns 1 on success, 0 if @var{pos} is less than zero or greater - than the number of history entries. - @end deftypefun - - @deftypefun {HIST_ENTRY *} previous_history (void) - Back up the current history offset to the previous history entry, and - return a pointer to that entry. If there is no previous entry, return - a @code{NULL} pointer. - @end deftypefun - - @deftypefun {HIST_ENTRY *} next_history (void) - Move the current history offset forward to the next history entry, and - return the a pointer to that entry. If there is no next entry, return - a @code{NULL} pointer. - @end deftypefun - - @node Searching the History List - @subsection Searching the History List - @cindex History Searching - - These functions allow searching of the history list for entries containing - a specific string. Searching may be performed both forward and backward - from the current history position. The search may be @dfn{anchored}, - meaning that the string must match at the beginning of the history entry. - @cindex anchored search - - @deftypefun int history_search (const char *string, int direction) - Search the history for @var{string}, starting at the current history offset. - If @var{direction} is less than 0, then the search is through - previous entries, otherwise through subsequent entries. - If @var{string} is found, then - the current history index is set to that history entry, and the value - returned is the offset in the line of the entry where - @var{string} was found. Otherwise, nothing is changed, and a -1 is - returned. - @end deftypefun - - @deftypefun int history_search_prefix (const char *string, int direction) - Search the history for @var{string}, starting at the current history - offset. The search is anchored: matching lines must begin with - @var{string}. If @var{direction} is less than 0, then the search is - through previous entries, otherwise through subsequent entries. - If @var{string} is found, then the - current history index is set to that entry, and the return value is 0. - Otherwise, nothing is changed, and a -1 is returned. - @end deftypefun - - @deftypefun int history_search_pos (const char *string, int direction, int pos) - Search for @var{string} in the history list, starting at @var{pos}, an - absolute index into the list. If @var{direction} is negative, the search - proceeds backward from @var{pos}, otherwise forward. Returns the absolute - index of the history element where @var{string} was found, or -1 otherwise. - @end deftypefun - - @node Managing the History File - @subsection Managing the History File - - The History library can read the history from and write it to a file. - This section documents the functions for managing a history file. - - @deftypefun int read_history (const char *filename) - Add the contents of @var{filename} to the history list, a line at a time. - If @var{filename} is @code{NULL}, then read from @file{~/.history}. - Returns 0 if successful, or @code{errno} if not. - @end deftypefun - - @deftypefun int read_history_range (const char *filename, int from, int to) - Read a range of lines from @var{filename}, adding them to the history list. - Start reading at line @var{from} and end at @var{to}. - If @var{from} is zero, start at the beginning. If @var{to} is less than - @var{from}, then read until the end of the file. If @var{filename} is - @code{NULL}, then read from @file{~/.history}. Returns 0 if successful, - or @code{errno} if not. - @end deftypefun - - @deftypefun int write_history (const char *filename) - Write the current history to @var{filename}, overwriting @var{filename} - if necessary. - If @var{filename} is @code{NULL}, then write the history list to - @file{~/.history}. - Returns 0 on success, or @code{errno} on a read or write error. - @end deftypefun - - @deftypefun int append_history (int nelements, const char *filename) - Append the last @var{nelements} of the history list to @var{filename}. - If @var{filename} is @code{NULL}, then append to @file{~/.history}. - Returns 0 on success, or @code{errno} on a read or write error. - @end deftypefun - - @deftypefun int history_truncate_file (const char *filename, int nlines) - Truncate the history file @var{filename}, leaving only the last - @var{nlines} lines. - If @var{filename} is @code{NULL}, then @file{~/.history} is truncated. - Returns 0 on success, or @code{errno} on failure. - @end deftypefun - - @node History Expansion - @subsection History Expansion - - These functions implement history expansion. - - @deftypefun int history_expand (char *string, char **output) - Expand @var{string}, placing the result into @var{output}, a pointer - to a string (@pxref{History Interaction}). Returns: - @table @code - @item 0 - If no expansions took place (or, if the only change in - the text was the removal of escape characters preceding the history expansion - character); - @item 1 - if expansions did take place; - @item -1 - if there was an error in expansion; - @item 2 - if the returned line should be displayed, but not executed, - as with the @code{:p} modifier (@pxref{Modifiers}). - @end table - - If an error ocurred in expansion, then @var{output} contains a descriptive - error message. - @end deftypefun - - @deftypefun {char *} get_history_event (const char *string, int *cindex, int qchar) - Returns the text of the history event beginning at @var{string} + - @var{*cindex}. @var{*cindex} is modified to point to after the event - specifier. At function entry, @var{cindex} points to the index into - @var{string} where the history event specification begins. @var{qchar} - is a character that is allowed to end the event specification in addition - to the ``normal'' terminating characters. - @end deftypefun - - @deftypefun {char **} history_tokenize (const char *string) - Return an array of tokens parsed out of @var{string}, much as the - shell might. The tokens are split on the characters in the - @var{history_word_delimiters} variable, - and shell quoting conventions are obeyed. - @end deftypefun - - @deftypefun {char *} history_arg_extract (int first, int last, const char *string) - Extract a string segment consisting of the @var{first} through @var{last} - arguments present in @var{string}. Arguments are split using - @code{history_tokenize}. - @end deftypefun - - @node History Variables - @section History Variables - - This section describes the externally-visible variables exported by - the @sc{gnu} History Library. - - @deftypevar int history_base - The logical offset of the first entry in the history list. - @end deftypevar - - @deftypevar int history_length - The number of entries currently stored in the history list. - @end deftypevar - - @deftypevar int history_max_entries - The maximum number of history entries. This must be changed using - @code{stifle_history()}. - @end deftypevar - - @deftypevar char history_expansion_char - The character that introduces a history event. The default is @samp{!}. - Setting this to 0 inhibits history expansion. - @end deftypevar - - @deftypevar char history_subst_char - The character that invokes word substitution if found at the start of - a line. The default is @samp{^}. - @end deftypevar - - @deftypevar char history_comment_char - During tokenization, if this character is seen as the first character - of a word, then it and all subsequent characters up to a newline are - ignored, suppressing history expansion for the remainder of the line. - This is disabled by default. - @end deftypevar - - @deftypevar {char *} history_word_delimiters - The characters that separate tokens for @code{history_tokenize()}. - The default value is @code{" \t\n()<>;&|"}. - @end deftypevar - - @deftypevar {char *} history_no_expand_chars - The list of characters which inhibit history expansion if found immediately - following @var{history_expansion_char}. The default is space, tab, newline, - carriage return, and @samp{=}. - @end deftypevar - - @deftypevar {char *} history_search_delimiter_chars - The list of additional characters which can delimit a history search - string, in addition to space, TAB, @samp{:} and @samp{?} in the case of - a substring search. The default is empty. - @end deftypevar - - @deftypevar int history_quotes_inhibit_expansion - If non-zero, single-quoted words are not scanned for the history expansion - character. The default value is 0. - @end deftypevar - - @deftypevar {rl_linebuf_func_t *} history_inhibit_expansion_function - This should be set to the address of a function that takes two arguments: - a @code{char *} (@var{string}) - and an @code{int} index into that string (@var{i}). - It should return a non-zero value if the history expansion starting at - @var{string[i]} should not be performed; zero if the expansion should - be done. - It is intended for use by applications like Bash that use the history - expansion character for additional purposes. - By default, this variable is set to @code{NULL}. - @end deftypevar - - @node History Programming Example - @section History Programming Example - - The following program demonstrates simple use of the @sc{gnu} History Library. - - @smallexample - #include - #include - - main (argc, argv) - int argc; - char **argv; - @{ - char line[1024], *t; - int len, done = 0; - - line[0] = 0; - - using_history (); - while (!done) - @{ - printf ("history$ "); - fflush (stdout); - t = fgets (line, sizeof (line) - 1, stdin); - if (t && *t) - @{ - len = strlen (t); - if (t[len - 1] == '\n') - t[len - 1] = '\0'; - @} - - if (!t) - strcpy (line, "quit"); - - if (line[0]) - @{ - char *expansion; - int result; - - result = history_expand (line, &expansion); - if (result) - fprintf (stderr, "%s\n", expansion); - - if (result < 0 || result == 2) - @{ - free (expansion); - continue; - @} - - add_history (expansion); - strncpy (line, expansion, sizeof (line) - 1); - free (expansion); - @} - - if (strcmp (line, "quit") == 0) - done = 1; - else if (strcmp (line, "save") == 0) - write_history ("history_file"); - else if (strcmp (line, "read") == 0) - read_history ("history_file"); - else if (strcmp (line, "list") == 0) - @{ - register HIST_ENTRY **the_list; - register int i; - - the_list = history_list (); - if (the_list) - for (i = 0; the_list[i]; i++) - printf ("%d: %s\n", i + history_base, the_list[i]->line); - @} - else if (strncmp (line, "delete", 6) == 0) - @{ - int which; - if ((sscanf (line + 6, "%d", &which)) == 1) - @{ - HIST_ENTRY *entry = remove_history (which); - if (!entry) - fprintf (stderr, "No such entry %d\n", which); - else - @{ - free (entry->line); - free (entry); - @} - @} - else - @{ - fprintf (stderr, "non-numeric arg given to `delete'\n"); - @} - @} - @} - @} - @end smallexample --- 0 ---- diff -aNrc2 readline-4.3-patched/doc/hsuser.texi readline-5.0/doc/hsuser.texi *** readline-4.3-patched/doc/hsuser.texi Wed Dec 31 19:00:00 1969 --- readline-5.0/doc/hsuser.texi Tue Aug 5 08:09:41 2003 *************** *** 0 **** --- 1,457 ---- + @ignore + This file documents the user interface to the GNU History library. + + Copyright (C) 1988-2002 Free Software Foundation, Inc. + Authored by Brian Fox and Chet Ramey. + + Permission is granted to make and distribute verbatim copies of this manual + provided the copyright notice and this permission notice are preserved on + all copies. + + Permission is granted to process this file through Tex and print the + results, provided the printed document carries copying permission notice + identical to this one except for the removal of this paragraph (this + paragraph not being relevant to the printed manual). + + Permission is granted to copy and distribute modified versions of this + manual under the conditions for verbatim copying, provided also that the + GNU Copyright statement is available to the distributee, and provided that + the entire resulting derived work is distributed under the terms of a + permission notice identical to this one. + + Permission is granted to copy and distribute translations of this manual + into another language, under the above conditions for modified versions. + @end ignore + + @node Using History Interactively + @chapter Using History Interactively + + @ifclear BashFeatures + @defcodeindex bt + @end ifclear + + @ifset BashFeatures + This chapter describes how to use the @sc{gnu} History Library + interactively, from a user's standpoint. + It should be considered a user's guide. + For information on using the @sc{gnu} History Library in other programs, + see the @sc{gnu} Readline Library Manual. + @end ifset + @ifclear BashFeatures + This chapter describes how to use the @sc{gnu} History Library interactively, + from a user's standpoint. It should be considered a user's guide. For + information on using the @sc{gnu} History Library in your own programs, + @pxref{Programming with GNU History}. + @end ifclear + + @ifset BashFeatures + @menu + * Bash History Facilities:: How Bash lets you manipulate your command + history. + * Bash History Builtins:: The Bash builtin commands that manipulate + the command history. + * History Interaction:: What it feels like using History as a user. + @end menu + @end ifset + @ifclear BashFeatures + @menu + * History Interaction:: What it feels like using History as a user. + @end menu + @end ifclear + + @ifset BashFeatures + @node Bash History Facilities + @section Bash History Facilities + @cindex command history + @cindex history list + + When the @option{-o history} option to the @code{set} builtin + is enabled (@pxref{The Set Builtin}), + the shell provides access to the @dfn{command history}, + the list of commands previously typed. + The value of the @env{HISTSIZE} shell variable is used as the + number of commands to save in a history list. + The text of the last @env{$HISTSIZE} + commands (default 500) is saved. + The shell stores each command in the history list prior to + parameter and variable expansion + but after history expansion is performed, subject to the + values of the shell variables + @env{HISTIGNORE} and @env{HISTCONTROL}. + + When the shell starts up, the history is initialized from the + file named by the @env{HISTFILE} variable (default @file{~/.bash_history}). + The file named by the value of @env{HISTFILE} is truncated, if + necessary, to contain no more than the number of lines specified by + the value of the @env{HISTFILESIZE} variable. + When an interactive shell exits, the last + @env{$HISTSIZE} lines are copied from the history list to the file + named by @env{$HISTFILE}. + If the @code{histappend} shell option is set (@pxref{Bash Builtins}), + the lines are appended to the history file, + otherwise the history file is overwritten. + If @env{HISTFILE} + is unset, or if the history file is unwritable, the history is + not saved. After saving the history, the history file is truncated + to contain no more than @env{$HISTFILESIZE} + lines. If @env{HISTFILESIZE} is not set, no truncation is performed. + + If the @env{HISTTIMEFORMAT} is set, the time stamp information + associated with each history entry is written to the history file. + + The builtin command @code{fc} may be used to list or edit and re-execute + a portion of the history list. + The @code{history} builtin may be used to display or modify the history + list and manipulate the history file. + When using command-line editing, search commands + are available in each editing mode that provide access to the + history list (@pxref{Commands For History}). + + The shell allows control over which commands are saved on the history + list. The @env{HISTCONTROL} and @env{HISTIGNORE} + variables may be set to cause the shell to save only a subset of the + commands entered. + The @code{cmdhist} + shell option, if enabled, causes the shell to attempt to save each + line of a multi-line command in the same history entry, adding + semicolons where necessary to preserve syntactic correctness. + The @code{lithist} + shell option causes the shell to save the command with embedded newlines + instead of semicolons. + The @code{shopt} builtin is used to set these options. + @xref{Bash Builtins}, for a description of @code{shopt}. + + @node Bash History Builtins + @section Bash History Builtins + @cindex history builtins + + Bash provides two builtin commands which manipulate the + history list and history file. + + @table @code + + @item fc + @btindex fc + @example + @code{fc [-e @var{ename}] [-nlr] [@var{first}] [@var{last}]} + @code{fc -s [@var{pat}=@var{rep}] [@var{command}]} + @end example + + Fix Command. In the first form, a range of commands from @var{first} to + @var{last} is selected from the history list. Both @var{first} and + @var{last} may be specified as a string (to locate the most recent + command beginning with that string) or as a number (an index into the + history list, where a negative number is used as an offset from the + current command number). If @var{last} is not specified it is set to + @var{first}. If @var{first} is not specified it is set to the previous + command for editing and @minus{}16 for listing. If the @option{-l} flag is + given, the commands are listed on standard output. The @option{-n} flag + suppresses the command numbers when listing. The @option{-r} flag + reverses the order of the listing. Otherwise, the editor given by + @var{ename} is invoked on a file containing those commands. If + @var{ename} is not given, the value of the following variable expansion + is used: @code{$@{FCEDIT:-$@{EDITOR:-vi@}@}}. This says to use the + value of the @env{FCEDIT} variable if set, or the value of the + @env{EDITOR} variable if that is set, or @code{vi} if neither is set. + When editing is complete, the edited commands are echoed and executed. + + In the second form, @var{command} is re-executed after each instance + of @var{pat} in the selected command is replaced by @var{rep}. + + A useful alias to use with the @code{fc} command is @code{r='fc -s'}, so + that typing @samp{r cc} runs the last command beginning with @code{cc} + and typing @samp{r} re-executes the last command (@pxref{Aliases}). + + @item history + @btindex history + @example + history [@var{n}] + history -c + history -d @var{offset} + history [-anrw] [@var{filename}] + history -ps @var{arg} + @end example + + With no options, display the history list with line numbers. + Lines prefixed with a @samp{*} have been modified. + An argument of @var{n} lists only the last @var{n} lines. + If the shell variable @env{HISTTIMEFORMAT} is set and not null, + it is used as a format string for @var{strftime} to display + the time stamp associated with each displayed history entry. + No intervening blank is printed between the formatted time stamp + and the history line. + + Options, if supplied, have the following meanings: + + @table @code + @item -c + Clear the history list. This may be combined + with the other options to replace the history list completely. + + @item -d @var{offset} + Delete the history entry at position @var{offset}. + @var{offset} should be specified as it appears when the history is + displayed. + + @item -a + Append the new + history lines (history lines entered since the beginning of the + current Bash session) to the history file. + + @item -n + Append the history lines not already read from the history file + to the current history list. These are lines appended to the history + file since the beginning of the current Bash session. + + @item -r + Read the current history file and append its contents to + the history list. + + @item -w + Write out the current history to the history file. + + @item -p + Perform history substitution on the @var{arg}s and display the result + on the standard output, without storing the results in the history list. + + @item -s + The @var{arg}s are added to the end of + the history list as a single entry. + + @end table + + When any of the @option{-w}, @option{-r}, @option{-a}, or @option{-n} options is + used, if @var{filename} + is given, then it is used as the history file. If not, then + the value of the @env{HISTFILE} variable is used. + + @end table + @end ifset + + @node History Interaction + @section History Expansion + @cindex history expansion + + The History library provides a history expansion feature that is similar + to the history expansion provided by @code{csh}. This section + describes the syntax used to manipulate the history information. + + History expansions introduce words from the history list into + the input stream, making it easy to repeat commands, insert the + arguments to a previous command into the current input line, or + fix errors in previous commands quickly. + + History expansion takes place in two parts. The first is to determine + which line from the history list should be used during substitution. + The second is to select portions of that line for inclusion into the + current one. The line selected from the history is called the + @dfn{event}, and the portions of that line that are acted upon are + called @dfn{words}. Various @dfn{modifiers} are available to manipulate + the selected words. The line is broken into words in the same fashion + that Bash does, so that several words + surrounded by quotes are considered one word. + History expansions are introduced by the appearance of the + history expansion character, which is @samp{!} by default. + @ifset BashFeatures + Only @samp{\} and @samp{'} may be used to escape the history expansion + character. + @end ifset + + @ifset BashFeatures + Several shell options settable with the @code{shopt} + builtin (@pxref{Bash Builtins}) may be used to tailor + the behavior of history expansion. If the + @code{histverify} shell option is enabled, and Readline + is being used, history substitutions are not immediately passed to + the shell parser. + Instead, the expanded line is reloaded into the Readline + editing buffer for further modification. + If Readline is being used, and the @code{histreedit} + shell option is enabled, a failed history expansion will be + reloaded into the Readline editing buffer for correction. + The @option{-p} option to the @code{history} builtin command + may be used to see what a history expansion will do before using it. + The @option{-s} option to the @code{history} builtin may be used to + add commands to the end of the history list without actually executing + them, so that they are available for subsequent recall. + This is most useful in conjunction with Readline. + + The shell allows control of the various characters used by the + history expansion mechanism with the @code{histchars} variable. + @end ifset + + @menu + * Event Designators:: How to specify which history line to use. + * Word Designators:: Specifying which words are of interest. + * Modifiers:: Modifying the results of substitution. + @end menu + + @node Event Designators + @subsection Event Designators + @cindex event designators + + An event designator is a reference to a command line entry in the + history list. + @cindex history events + + @table @asis + + @item @code{!} + @ifset BashFeatures + Start a history substitution, except when followed by a space, tab, + the end of the line, @samp{=} or @samp{(} (when the + @code{extglob} shell option is enabled using the @code{shopt} builtin). + @end ifset + @ifclear BashFeatures + Start a history substitution, except when followed by a space, tab, + the end of the line, or @samp{=}. + @end ifclear + + @item @code{!@var{n}} + Refer to command line @var{n}. + + @item @code{!-@var{n}} + Refer to the command @var{n} lines back. + + @item @code{!!} + Refer to the previous command. This is a synonym for @samp{!-1}. + + @item @code{!@var{string}} + Refer to the most recent command starting with @var{string}. + + @item @code{!?@var{string}[?]} + Refer to the most recent command containing @var{string}. The trailing + @samp{?} may be omitted if the @var{string} is followed immediately by + a newline. + + @item @code{^@var{string1}^@var{string2}^} + Quick Substitution. Repeat the last command, replacing @var{string1} + with @var{string2}. Equivalent to + @code{!!:s/@var{string1}/@var{string2}/}. + + @item @code{!#} + The entire command line typed so far. + + @end table + + @node Word Designators + @subsection Word Designators + + Word designators are used to select desired words from the event. + A @samp{:} separates the event specification from the word designator. It + may be omitted if the word designator begins with a @samp{^}, @samp{$}, + @samp{*}, @samp{-}, or @samp{%}. Words are numbered from the beginning + of the line, with the first word being denoted by 0 (zero). Words are + inserted into the current line separated by single spaces. + + @need 0.75 + For example, + + @table @code + @item !! + designates the preceding command. When you type this, the preceding + command is repeated in toto. + + @item !!:$ + designates the last argument of the preceding command. This may be + shortened to @code{!$}. + + @item !fi:2 + designates the second argument of the most recent command starting with + the letters @code{fi}. + @end table + + @need 0.75 + Here are the word designators: + + @table @code + + @item 0 (zero) + The @code{0}th word. For many applications, this is the command word. + + @item @var{n} + The @var{n}th word. + + @item ^ + The first argument; that is, word 1. + + @item $ + The last argument. + + @item % + The word matched by the most recent @samp{?@var{string}?} search. + + @item @var{x}-@var{y} + A range of words; @samp{-@var{y}} abbreviates @samp{0-@var{y}}. + + @item * + All of the words, except the @code{0}th. This is a synonym for @samp{1-$}. + It is not an error to use @samp{*} if there is just one word in the event; + the empty string is returned in that case. + + @item @var{x}* + Abbreviates @samp{@var{x}-$} + + @item @var{x}- + Abbreviates @samp{@var{x}-$} like @samp{@var{x}*}, but omits the last word. + + @end table + + If a word designator is supplied without an event specification, the + previous command is used as the event. + + @node Modifiers + @subsection Modifiers + + After the optional word designator, you can add a sequence of one or more + of the following modifiers, each preceded by a @samp{:}. + + @table @code + + @item h + Remove a trailing pathname component, leaving only the head. + + @item t + Remove all leading pathname components, leaving the tail. + + @item r + Remove a trailing suffix of the form @samp{.@var{suffix}}, leaving + the basename. + + @item e + Remove all but the trailing suffix. + + @item p + Print the new command but do not execute it. + + @ifset BashFeatures + @item q + Quote the substituted words, escaping further substitutions. + + @item x + Quote the substituted words as with @samp{q}, + but break into words at spaces, tabs, and newlines. + @end ifset + + @item s/@var{old}/@var{new}/ + Substitute @var{new} for the first occurrence of @var{old} in the + event line. Any delimiter may be used in place of @samp{/}. + The delimiter may be quoted in @var{old} and @var{new} + with a single backslash. If @samp{&} appears in @var{new}, + it is replaced by @var{old}. A single backslash will quote + the @samp{&}. The final delimiter is optional if it is the last + character on the input line. + + @item & + Repeat the previous substitution. + + @item g + @itemx a + Cause changes to be applied over the entire event line. Used in + conjunction with @samp{s}, as in @code{gs/@var{old}/@var{new}/}, + or with @samp{&}. + + @item G + Apply the following @samp{s} modifier once to each word in the event. + + @end table diff -aNrc2 readline-4.3-patched/doc/hsuser.texinfo readline-5.0/doc/hsuser.texinfo *** readline-4.3-patched/doc/hsuser.texinfo Tue Apr 16 17:12:04 2002 --- readline-5.0/doc/hsuser.texinfo Wed Dec 31 19:00:00 1969 *************** *** 1,437 **** - @ignore - This file documents the user interface to the GNU History library. - - Copyright (C) 1988-2002 Free Software Foundation, Inc. - Authored by Brian Fox and Chet Ramey. - - Permission is granted to make and distribute verbatim copies of this manual - provided the copyright notice and this permission notice are preserved on - all copies. - - Permission is granted to process this file through Tex and print the - results, provided the printed document carries copying permission notice - identical to this one except for the removal of this paragraph (this - paragraph not being relevant to the printed manual). - - Permission is granted to copy and distribute modified versions of this - manual under the conditions for verbatim copying, provided also that the - GNU Copyright statement is available to the distributee, and provided that - the entire resulting derived work is distributed under the terms of a - permission notice identical to this one. - - Permission is granted to copy and distribute translations of this manual - into another language, under the above conditions for modified versions. - @end ignore - - @node Using History Interactively - @chapter Using History Interactively - - @ifclear BashFeatures - @defcodeindex bt - @end ifclear - - @ifset BashFeatures - This chapter describes how to use the @sc{gnu} History Library - interactively, from a user's standpoint. - It should be considered a user's guide. - For information on using the @sc{gnu} History Library in other programs, - see the @sc{gnu} Readline Library Manual. - @end ifset - @ifclear BashFeatures - This chapter describes how to use the @sc{gnu} History Library interactively, - from a user's standpoint. It should be considered a user's guide. For - information on using the @sc{gnu} History Library in your own programs, - @pxref{Programming with GNU History}. - @end ifclear - - @ifset BashFeatures - @menu - * Bash History Facilities:: How Bash lets you manipulate your command - history. - * Bash History Builtins:: The Bash builtin commands that manipulate - the command history. - * History Interaction:: What it feels like using History as a user. - @end menu - @end ifset - @ifclear BashFeatures - @menu - * History Interaction:: What it feels like using History as a user. - @end menu - @end ifclear - - @ifset BashFeatures - @node Bash History Facilities - @section Bash History Facilities - @cindex command history - @cindex history list - - When the @option{-o history} option to the @code{set} builtin - is enabled (@pxref{The Set Builtin}), - the shell provides access to the @dfn{command history}, - the list of commands previously typed. - The value of the @env{HISTSIZE} shell variable is used as the - number of commands to save in a history list. - The text of the last @env{$HISTSIZE} - commands (default 500) is saved. - The shell stores each command in the history list prior to - parameter and variable expansion - but after history expansion is performed, subject to the - values of the shell variables - @env{HISTIGNORE} and @env{HISTCONTROL}. - - When the shell starts up, the history is initialized from the - file named by the @env{HISTFILE} variable (default @file{~/.bash_history}). - The file named by the value of @env{HISTFILE} is truncated, if - necessary, to contain no more than the number of lines specified by - the value of the @env{HISTFILESIZE} variable. - When an interactive shell exits, the last - @env{$HISTSIZE} lines are copied from the history list to the file - named by @env{$HISTFILE}. - If the @code{histappend} shell option is set (@pxref{Bash Builtins}), - the lines are appended to the history file, - otherwise the history file is overwritten. - If @env{HISTFILE} - is unset, or if the history file is unwritable, the history is - not saved. After saving the history, the history file is truncated - to contain no more than @env{$HISTFILESIZE} - lines. If @env{HISTFILESIZE} is not set, no truncation is performed. - - The builtin command @code{fc} may be used to list or edit and re-execute - a portion of the history list. - The @code{history} builtin may be used to display or modify the history - list and manipulate the history file. - When using command-line editing, search commands - are available in each editing mode that provide access to the - history list (@pxref{Commands For History}). - - The shell allows control over which commands are saved on the history - list. The @env{HISTCONTROL} and @env{HISTIGNORE} - variables may be set to cause the shell to save only a subset of the - commands entered. - The @code{cmdhist} - shell option, if enabled, causes the shell to attempt to save each - line of a multi-line command in the same history entry, adding - semicolons where necessary to preserve syntactic correctness. - The @code{lithist} - shell option causes the shell to save the command with embedded newlines - instead of semicolons. - The @code{shopt} builtin is used to set these options. - @xref{Bash Builtins}, for a description of @code{shopt}. - - @node Bash History Builtins - @section Bash History Builtins - @cindex history builtins - - Bash provides two builtin commands which manipulate the - history list and history file. - - @table @code - - @item fc - @btindex fc - @example - @code{fc [-e @var{ename}] [-nlr] [@var{first}] [@var{last}]} - @code{fc -s [@var{pat}=@var{rep}] [@var{command}]} - @end example - - Fix Command. In the first form, a range of commands from @var{first} to - @var{last} is selected from the history list. Both @var{first} and - @var{last} may be specified as a string (to locate the most recent - command beginning with that string) or as a number (an index into the - history list, where a negative number is used as an offset from the - current command number). If @var{last} is not specified it is set to - @var{first}. If @var{first} is not specified it is set to the previous - command for editing and @minus{}16 for listing. If the @option{-l} flag is - given, the commands are listed on standard output. The @option{-n} flag - suppresses the command numbers when listing. The @option{-r} flag - reverses the order of the listing. Otherwise, the editor given by - @var{ename} is invoked on a file containing those commands. If - @var{ename} is not given, the value of the following variable expansion - is used: @code{$@{FCEDIT:-$@{EDITOR:-vi@}@}}. This says to use the - value of the @env{FCEDIT} variable if set, or the value of the - @env{EDITOR} variable if that is set, or @code{vi} if neither is set. - When editing is complete, the edited commands are echoed and executed. - - In the second form, @var{command} is re-executed after each instance - of @var{pat} in the selected command is replaced by @var{rep}. - - A useful alias to use with the @code{fc} command is @code{r='fc -s'}, so - that typing @samp{r cc} runs the last command beginning with @code{cc} - and typing @samp{r} re-executes the last command (@pxref{Aliases}). - - @item history - @btindex history - @example - history [@var{n}] - history -c - history -d @var{offset} - history [-anrw] [@var{filename}] - history -ps @var{arg} - @end example - - With no options, display the history list with line numbers. - Lines prefixed with a @samp{*} have been modified. - An argument of @var{n} lists only the last @var{n} lines. - Options, if supplied, have the following meanings: - - @table @code - @item -c - Clear the history list. This may be combined - with the other options to replace the history list completely. - - @item -d @var{offset} - Delete the history entry at position @var{offset}. - @var{offset} should be specified as it appears when the history is - displayed. - - @item -a - Append the new - history lines (history lines entered since the beginning of the - current Bash session) to the history file. - - @item -n - Append the history lines not already read from the history file - to the current history list. These are lines appended to the history - file since the beginning of the current Bash session. - - @item -r - Read the current history file and append its contents to - the history list. - - @item -w - Write out the current history to the history file. - - @item -p - Perform history substitution on the @var{arg}s and display the result - on the standard output, without storing the results in the history list. - - @item -s - The @var{arg}s are added to the end of - the history list as a single entry. - - @end table - - When any of the @option{-w}, @option{-r}, @option{-a}, or @option{-n} options is - used, if @var{filename} - is given, then it is used as the history file. If not, then - the value of the @env{HISTFILE} variable is used. - - @end table - @end ifset - - @node History Interaction - @section History Expansion - @cindex history expansion - - The History library provides a history expansion feature that is similar - to the history expansion provided by @code{csh}. This section - describes the syntax used to manipulate the history information. - - History expansions introduce words from the history list into - the input stream, making it easy to repeat commands, insert the - arguments to a previous command into the current input line, or - fix errors in previous commands quickly. - - History expansion takes place in two parts. The first is to determine - which line from the history list should be used during substitution. - The second is to select portions of that line for inclusion into the - current one. The line selected from the history is called the - @dfn{event}, and the portions of that line that are acted upon are - called @dfn{words}. Various @dfn{modifiers} are available to manipulate - the selected words. The line is broken into words in the same fashion - that Bash does, so that several words - surrounded by quotes are considered one word. - History expansions are introduced by the appearance of the - history expansion character, which is @samp{!} by default. - @ifset BashFeatures - Only @samp{\} and @samp{'} may be used to escape the history expansion - character. - @end ifset - - @ifset BashFeatures - Several shell options settable with the @code{shopt} - builtin (@pxref{Bash Builtins}) may be used to tailor - the behavior of history expansion. If the - @code{histverify} shell option is enabled, and Readline - is being used, history substitutions are not immediately passed to - the shell parser. - Instead, the expanded line is reloaded into the Readline - editing buffer for further modification. - If Readline is being used, and the @code{histreedit} - shell option is enabled, a failed history expansion will be - reloaded into the Readline editing buffer for correction. - The @option{-p} option to the @code{history} builtin command - may be used to see what a history expansion will do before using it. - The @option{-s} option to the @code{history} builtin may be used to - add commands to the end of the history list without actually executing - them, so that they are available for subsequent recall. - This is most useful in conjunction with Readline. - - The shell allows control of the various characters used by the - history expansion mechanism with the @code{histchars} variable. - @end ifset - - @menu - * Event Designators:: How to specify which history line to use. - * Word Designators:: Specifying which words are of interest. - * Modifiers:: Modifying the results of substitution. - @end menu - - @node Event Designators - @subsection Event Designators - @cindex event designators - - An event designator is a reference to a command line entry in the - history list. - @cindex history events - - @table @asis - - @item @code{!} - Start a history substitution, except when followed by a space, tab, - the end of the line, @samp{=} or @samp{(}. - - @item @code{!@var{n}} - Refer to command line @var{n}. - - @item @code{!-@var{n}} - Refer to the command @var{n} lines back. - - @item @code{!!} - Refer to the previous command. This is a synonym for @samp{!-1}. - - @item @code{!@var{string}} - Refer to the most recent command starting with @var{string}. - - @item @code{!?@var{string}[?]} - Refer to the most recent command containing @var{string}. The trailing - @samp{?} may be omitted if the @var{string} is followed immediately by - a newline. - - @item @code{^@var{string1}^@var{string2}^} - Quick Substitution. Repeat the last command, replacing @var{string1} - with @var{string2}. Equivalent to - @code{!!:s/@var{string1}/@var{string2}/}. - - @item @code{!#} - The entire command line typed so far. - - @end table - - @node Word Designators - @subsection Word Designators - - Word designators are used to select desired words from the event. - A @samp{:} separates the event specification from the word designator. It - may be omitted if the word designator begins with a @samp{^}, @samp{$}, - @samp{*}, @samp{-}, or @samp{%}. Words are numbered from the beginning - of the line, with the first word being denoted by 0 (zero). Words are - inserted into the current line separated by single spaces. - - @need 0.75 - For example, - - @table @code - @item !! - designates the preceding command. When you type this, the preceding - command is repeated in toto. - - @item !!:$ - designates the last argument of the preceding command. This may be - shortened to @code{!$}. - - @item !fi:2 - designates the second argument of the most recent command starting with - the letters @code{fi}. - @end table - - @need 0.75 - Here are the word designators: - - @table @code - - @item 0 (zero) - The @code{0}th word. For many applications, this is the command word. - - @item @var{n} - The @var{n}th word. - - @item ^ - The first argument; that is, word 1. - - @item $ - The last argument. - - @item % - The word matched by the most recent @samp{?@var{string}?} search. - - @item @var{x}-@var{y} - A range of words; @samp{-@var{y}} abbreviates @samp{0-@var{y}}. - - @item * - All of the words, except the @code{0}th. This is a synonym for @samp{1-$}. - It is not an error to use @samp{*} if there is just one word in the event; - the empty string is returned in that case. - - @item @var{x}* - Abbreviates @samp{@var{x}-$} - - @item @var{x}- - Abbreviates @samp{@var{x}-$} like @samp{@var{x}*}, but omits the last word. - - @end table - - If a word designator is supplied without an event specification, the - previous command is used as the event. - - @node Modifiers - @subsection Modifiers - - After the optional word designator, you can add a sequence of one or more - of the following modifiers, each preceded by a @samp{:}. - - @table @code - - @item h - Remove a trailing pathname component, leaving only the head. - - @item t - Remove all leading pathname components, leaving the tail. - - @item r - Remove a trailing suffix of the form @samp{.@var{suffix}}, leaving - the basename. - - @item e - Remove all but the trailing suffix. - - @item p - Print the new command but do not execute it. - - @ifset BashFeatures - @item q - Quote the substituted words, escaping further substitutions. - - @item x - Quote the substituted words as with @samp{q}, - but break into words at spaces, tabs, and newlines. - @end ifset - - @item s/@var{old}/@var{new}/ - Substitute @var{new} for the first occurrence of @var{old} in the - event line. Any delimiter may be used in place of @samp{/}. - The delimiter may be quoted in @var{old} and @var{new} - with a single backslash. If @samp{&} appears in @var{new}, - it is replaced by @var{old}. A single backslash will quote - the @samp{&}. The final delimiter is optional if it is the last - character on the input line. - - @item & - Repeat the previous substitution. - - @item g - Cause changes to be applied over the entire event line. Used in - conjunction with @samp{s}, as in @code{gs/@var{old}/@var{new}/}, - or with @samp{&}. - - @end table --- 0 ---- diff -aNrc2 readline-4.3-patched/doc/manvers.texinfo readline-5.0/doc/manvers.texinfo *** readline-4.3-patched/doc/manvers.texinfo Tue Apr 16 17:09:35 2002 --- readline-5.0/doc/manvers.texinfo Wed Dec 31 19:00:00 1969 *************** *** 1,10 **** - @ignore - Copyright (C) 1988-2002 Free Software Foundation, Inc. - @end ignore - - @set EDITION 4.3 - @set VERSION 4.3 - @set UPDATED 2002 March 4 - @set UPDATE-MONTH March 2002 - - @set LASTCHANGE Mon Mar 4 12:00:16 EST 2002 --- 0 ---- diff -aNrc2 readline-4.3-patched/doc/readline.0 readline-5.0/doc/readline.0 *** readline-4.3-patched/doc/readline.0 Thu Jun 27 13:54:44 2002 --- readline-5.0/doc/readline.0 Tue Jun 29 11:02:47 2004 *************** *** 1,3 **** ! READLINE(3) READLINE(3) --- 1,3 ---- ! READLINE(3) READLINE(3) *************** *** 15,84 **** CCOOPPYYRRIIGGHHTT ! Readline is Copyright (C) 1989-2002 by the Free Software ! Foundation, Inc. DDEESSCCRRIIPPTTIIOONN ! rreeaaddlliinnee will read a line from the terminal and return it, ! using pprroommpptt as a prompt. If pprroommpptt is NNUULLLL or the empty ! string, no prompt is issued. The line returned is allo- ! cated with _m_a_l_l_o_c(3); the caller must free it when fin- ! ished. The line returned has the final newline removed, ! so only the text of the line remains. ! ! rreeaaddlliinnee offers editing capabilities while the user is ! entering the line. By default, the line editing commands ! are similar to those of emacs. A vi-style line editing ! interface is also available. ! ! This manual page describes only the most basic use of ! rreeaaddlliinnee. Much more functionality is available; see _T_h_e ! _G_N_U _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y and _T_h_e _G_N_U _H_i_s_t_o_r_y _L_i_b_r_a_r_y for addi- ! tional information. RREETTUURRNN VVAALLUUEE ! rreeaaddlliinnee returns the text of the line read. A blank line ! returns the empty string. If EEOOFF is encountered while ! reading a line, and the line is empty, NNUULLLL is returned. ! If an EEOOFF is read with a non-empty line, it is treated as ! a newline. NNOOTTAATTIIOONN ! An emacs-style notation is used to denote keystrokes. ! Control keys are denoted by C-_k_e_y, e.g., C-n means Con- ! trol-N. Similarly, _m_e_t_a keys are denoted by M-_k_e_y, so M-x ! means Meta-X. (On keyboards without a _m_e_t_a key, M-_x means ! ESC _x, i.e., press the Escape key then the _x key. This ! makes ESC the _m_e_t_a _p_r_e_f_i_x. The combination M-C-_x means ! ESC-Control-_x, or press the Escape key then hold the Con- ! trol key while pressing the _x key.) ! ! Readline commands may be given numeric _a_r_g_u_m_e_n_t_s, which ! normally act as a repeat count. Sometimes, however, it is ! the sign of the argument that is significant. Passing a ! negative argument to a command that acts in the forward ! direction (e.g., kkiillll--lliinnee) causes that command to act in ! a backward direction. Commands whose behavior with argu- ! ments deviates from this are noted. ! ! When a command is described as _k_i_l_l_i_n_g text, the text ! deleted is saved for possible future retrieval (_y_a_n_k_i_n_g). ! The killed text is saved in a _k_i_l_l _r_i_n_g. Consecutive ! kills cause the text to be accumulated into one unit, ! which can be yanked all at once. Commands which do not ! kill text separate the chunks of text on the kill ring. IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE ! Readline is customized by putting commands in an initial- ! ization file (the _i_n_p_u_t_r_c file). The name of this file is ! taken from the value of the IINNPPUUTTRRCC environment variable. ! If that variable is unset, the default is _~_/_._i_n_p_u_t_r_c. ! When a program which uses the readline library starts up, ! the init file is read, and the key bindings and variables ! are set. There are only a few basic constructs allowed in ! the readline init file. Blank lines are ignored. Lines ! beginning with a ## are comments. Lines beginning with a $$ ! indicate conditional constructs. Other lines denote key ! bindings and variable settings. Each program using this ! library may add its own commands and bindings. For example, placing --- 15,75 ---- CCOOPPYYRRIIGGHHTT ! Readline is Copyright (C) 1989-2004 by the Free Software Foundation, ! Inc. DDEESSCCRRIIPPTTIIOONN ! rreeaaddlliinnee will read a line from the terminal and return it, using pprroommpptt ! as a prompt. If pprroommpptt is NNUULLLL or the empty string, no prompt is ! issued. The line returned is allocated with _m_a_l_l_o_c(3); the caller must ! free it when finished. The line returned has the final newline ! removed, so only the text of the line remains. ! ! rreeaaddlliinnee offers editing capabilities while the user is entering the ! line. By default, the line editing commands are similar to those of ! emacs. A vi-style line editing interface is also available. ! ! This manual page describes only the most basic use of rreeaaddlliinnee. Much ! more functionality is available; see _T_h_e _G_N_U _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y and _T_h_e ! _G_N_U _H_i_s_t_o_r_y _L_i_b_r_a_r_y for additional information. RREETTUURRNN VVAALLUUEE ! rreeaaddlliinnee returns the text of the line read. A blank line returns the ! empty string. If EEOOFF is encountered while reading a line, and the line ! is empty, NNUULLLL is returned. If an EEOOFF is read with a non-empty line, ! it is treated as a newline. NNOOTTAATTIIOONN ! An emacs-style notation is used to denote keystrokes. Control keys are ! denoted by C-_k_e_y, e.g., C-n means Control-N. Similarly, _m_e_t_a keys are ! denoted by M-_k_e_y, so M-x means Meta-X. (On keyboards without a _m_e_t_a ! key, M-_x means ESC _x, i.e., press the Escape key then the _x key. This ! makes ESC the _m_e_t_a _p_r_e_f_i_x. The combination M-C-_x means ESC-Control-_x, ! or press the Escape key then hold the Control key while pressing the _x ! key.) ! ! Readline commands may be given numeric _a_r_g_u_m_e_n_t_s, which normally act as ! a repeat count. Sometimes, however, it is the sign of the argument ! that is significant. Passing a negative argument to a command that ! acts in the forward direction (e.g., kkiillll--lliinnee) causes that command to ! act in a backward direction. Commands whose behavior with arguments ! deviates from this are noted. ! ! When a command is described as _k_i_l_l_i_n_g text, the text deleted is saved ! for possible future retrieval (_y_a_n_k_i_n_g). The killed text is saved in a ! _k_i_l_l _r_i_n_g. Consecutive kills cause the text to be accumulated into one ! unit, which can be yanked all at once. Commands which do not kill text ! separate the chunks of text on the kill ring. IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE ! Readline is customized by putting commands in an initialization file ! (the _i_n_p_u_t_r_c file). The name of this file is taken from the value of ! the IINNPPUUTTRRCC environment variable. If that variable is unset, the ! default is _~_/_._i_n_p_u_t_r_c. When a program which uses the readline library ! starts up, the init file is read, and the key bindings and variables ! are set. There are only a few basic constructs allowed in the readline ! init file. Blank lines are ignored. Lines beginning with a ## are com- ! ments. Lines beginning with a $$ indicate conditional constructs. ! Other lines denote key bindings and variable settings. Each program ! using this library may add its own commands and bindings. For example, placing *************** *** 88,114 **** C-Meta-u: universal-argument ! into the _i_n_p_u_t_r_c would make M-C-u execute the readline ! command _u_n_i_v_e_r_s_a_l_-_a_r_g_u_m_e_n_t. ! The following symbolic character names are recognized ! while processing key bindings: _D_E_L, _E_S_C, _E_S_C_A_P_E, _L_F_D, _N_E_W_- ! _L_I_N_E, _R_E_T, _R_E_T_U_R_N, _R_U_B_O_U_T, _S_P_A_C_E, _S_P_C, and _T_A_B. ! ! In addition to command names, readline allows keys to be ! bound to a string that is inserted when the key is pressed ! (a _m_a_c_r_o). KKeeyy BBiinnddiinnggss ! The syntax for controlling key bindings in the _i_n_p_u_t_r_c ! file is simple. All that is required is the name of the ! command or the text of a macro and a key sequence to which ! it should be bound. The name may be specified in one of ! two ways: as a symbolic key name, possibly with _M_e_t_a_- or _C_o_n_t_r_o_l_- prefixes, or as a key sequence. ! When using the form kkeeyynnaammee:_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, _k_e_y_- ! _n_a_m_e is the name of a key spelled out in English. For ! example: Control-u: universal-argument --- 79,102 ---- C-Meta-u: universal-argument ! into the _i_n_p_u_t_r_c would make M-C-u execute the readline command _u_n_i_v_e_r_- ! _s_a_l_-_a_r_g_u_m_e_n_t. ! The following symbolic character names are recognized while processing ! key bindings: _D_E_L, _E_S_C, _E_S_C_A_P_E, _L_F_D, _N_E_W_L_I_N_E, _R_E_T, _R_E_T_U_R_N, _R_U_B_O_U_T, ! _S_P_A_C_E, _S_P_C, and _T_A_B. ! ! In addition to command names, readline allows keys to be bound to a ! string that is inserted when the key is pressed (a _m_a_c_r_o). KKeeyy BBiinnddiinnggss ! The syntax for controlling key bindings in the _i_n_p_u_t_r_c file is simple. ! All that is required is the name of the command or the text of a macro ! and a key sequence to which it should be bound. The name may be speci- ! fied in one of two ways: as a symbolic key name, possibly with _M_e_t_a_- or _C_o_n_t_r_o_l_- prefixes, or as a key sequence. ! When using the form kkeeyynnaammee:_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, _k_e_y_n_a_m_e is the name ! of a key spelled out in English. For example: Control-u: universal-argument *************** *** 116,131 **** Control-o: "> output" ! In the above example, _C_-_u is bound to the function uunniivveerr-- ! ssaall--aarrgguummeenntt, _M_-_D_E_L is bound to the function bbaacckk-- ! wwaarrdd--kkiillll--wwoorrdd, and _C_-_o is bound to run the macro ! expressed on the right hand side (that is, to insert the text ``> output'' into the line). ! In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, kkeeyy-- ! sseeqq differs from kkeeyynnaammee above in that strings denoting an ! entire key sequence may be specified by placing the ! sequence within double quotes. Some GNU Emacs style key ! escapes can be used, as in the following example, but the ! symbolic character names are not recognized. "\C-u": universal-argument --- 104,117 ---- Control-o: "> output" ! In the above example, _C_-_u is bound to the function uunniivveerrssaall--aarrgguummeenntt, ! _M_-_D_E_L is bound to the function bbaacckkwwaarrdd--kkiillll--wwoorrdd, and _C_-_o is bound to ! run the macro expressed on the right hand side (that is, to insert the text ``> output'' into the line). ! In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, kkeeyysseeqq differs ! from kkeeyynnaammee above in that strings denoting an entire key sequence may ! be specified by placing the sequence within double quotes. Some GNU ! Emacs style key escapes can be used, as in the following example, but ! the symbolic character names are not recognized. "\C-u": universal-argument *************** *** 133,143 **** "\e[11~": "Function Key 1" ! In this example, _C_-_u is again bound to the function uunnii-- ! vveerrssaall--aarrgguummeenntt. _C_-_x _C_-_r is bound to the function ! rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is bound to insert the ! text ``Function Key 1''. ! The full set of GNU Emacs style escape sequences available ! when specifying key sequences is \\CC-- control prefix \\MM-- meta prefix --- 119,128 ---- "\e[11~": "Function Key 1" ! In this example, _C_-_u is again bound to the function uunniivveerrssaall--aarrgguummeenntt. ! _C_-_x _C_-_r is bound to the function rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is ! bound to insert the text ``Function Key 1''. ! The full set of GNU Emacs style escape sequences available when speci- ! fying key sequences is \\CC-- control prefix \\MM-- meta prefix *************** *** 147,152 **** \\'' literal ', a single quote ! In addition to the GNU Emacs style escape sequences, a ! second set of backslash escapes is available: \\aa alert (bell) \\bb backspace --- 132,137 ---- \\'' literal ', a single quote ! In addition to the GNU Emacs style escape sequences, a second set of ! backslash escapes is available: \\aa alert (bell) \\bb backspace *************** *** 157,344 **** \\tt horizontal tab \\vv vertical tab ! \\_n_n_n the eight-bit character whose value is the ! octal value _n_n_n (one to three digits) ! \\xx_H_H the eight-bit character whose value is the ! hexadecimal value _H_H (one or two hex digits) ! ! When entering the text of a macro, single or double quotes ! should be used to indicate a macro definition. Unquoted ! text is assumed to be a function name. In the macro body, ! the backslash escapes described above are expanded. Back- ! slash will quote any other character in the macro text, ! including " and '. ! ! BBaasshh allows the current readline key bindings to be dis- ! played or modified with the bbiinndd builtin command. The ! editing mode may be switched during interactive use by ! using the --oo option to the sseett builtin command. Other ! programs using this library provide similar mechanisms. ! The _i_n_p_u_t_r_c file may be edited and re-read if a program ! does not provide any other means to incorporate new bind- ! ings. VVaarriiaabblleess ! Readline has variables that can be used to further cus- ! tomize its behavior. A variable may be set in the _i_n_p_u_t_r_c ! file with a statement of the form sseett _v_a_r_i_a_b_l_e_-_n_a_m_e _v_a_l_u_e ! Except where noted, readline variables can take the values ! OOnn or OOffff (without regard to case). The variables and ! their default values are: bbeellll--ssttyyllee ((aauuddiibbllee)) ! Controls what happens when readline wants to ring ! the terminal bell. If set to nnoonnee, readline never ! rings the bell. If set to vviissiibbllee, readline uses a ! visible bell if one is available. If set to aauuddii-- ! bbllee, readline attempts to ring the terminal's bell. ccoommmmeenntt--bbeeggiinn ((````##'''')) ! The string that is inserted in vvii mode when the ! iinnsseerrtt--ccoommmmeenntt command is executed. This command ! is bound to MM--## in emacs mode and to ## in vi com- ! mand mode. ccoommpplleettiioonn--iiggnnoorree--ccaassee ((OOffff)) ! If set to OOnn, readline performs filename matching ! and completion in a case-insensitive fashion. ccoommpplleettiioonn--qquueerryy--iitteemmss ((110000)) ! This determines when the user is queried about ! viewing the number of possible completions gener- ! ated by the ppoossssiibbllee--ccoommpplleettiioonnss command. It may ! be set to any integer value greater than or equal ! to zero. If the number of possible completions is ! greater than or equal to the value of this vari- ! able, the user is asked whether or not he wishes to ! view them; otherwise they are simply listed on the ! terminal. ccoonnvveerrtt--mmeettaa ((OOnn)) ! If set to OOnn, readline will convert characters with ! the eighth bit set to an ASCII key sequence by ! stripping the eighth bit and prefixing it with an ! escape character (in effect, using escape as the ! _m_e_t_a _p_r_e_f_i_x). ddiissaabbllee--ccoommpplleettiioonn ((OOffff)) ! If set to OOnn, readline will inhibit word comple- ! tion. Completion characters will be inserted into ! the line as if they had been mapped to sseellff--iinnsseerrtt. eeddiittiinngg--mmooddee ((eemmaaccss)) ! Controls whether readline begins with a set of key ! bindings similar to emacs or vi. eeddiittiinngg--mmooddee can ! be set to either eemmaaccss or vvii. eennaabbllee--kkeeyyppaadd ((OOffff)) ! When set to OOnn, readline will try to enable the ! application keypad when it is called. Some systems ! need this to enable the arrow keys. eexxppaanndd--ttiillddee ((OOffff)) ! If set to oonn, tilde expansion is performed when ! readline attempts word completion. hhiissttoorryy--pprreesseerrvvee--ppooiinntt ! If set to oonn, the history code attempts to place ! point at the same location on each history line ! retrived with pprreevviioouuss--hhiissttoorryy or nneexxtt--hhiissttoorryy. hhoorriizzoonnttaall--ssccrroollll--mmooddee ((OOffff)) ! When set to OOnn, makes readline use a single line ! for display, scrolling the input horizontally on a ! single screen line when it becomes longer than the ! screen width rather than wrapping to a new line. iinnppuutt--mmeettaa ((OOffff)) ! If set to OOnn, readline will enable eight-bit input ! (that is, it will not clear the eighth bit in the ! characters it reads), regardless of what the termi- ! nal claims it can support. The name mmeettaa--ffllaagg is a ! synonym for this variable. iisseeaarrcchh--tteerrmmiinnaattoorrss ((````CC--[[ CC--JJ'''')) ! The string of characters that should terminate an ! incremental search without subsequently executing ! the character as a command. If this variable has ! not been given a value, the characters _E_S_C and _C_-_J ! will terminate an incremental search. kkeeyymmaapp ((eemmaaccss)) ! Set the current readline keymap. The set of legal ! keymap names is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, ! _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_, _v_i_-_c_o_m_m_a_n_d, and _v_i_-_i_n_s_e_r_t. ! _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is equivalent ! to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is _e_m_a_c_s. ! The value of eeddiittiinngg--mmooddee also affects the default keymap. mmaarrkk--ddiirreeccttoorriieess ((OOnn)) ! If set to OOnn, completed directory names have a ! slash appended. mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff)) ! If set to OOnn, history lines that have been modified ! are displayed with a preceding asterisk (**). mmaarrkk--ssyymmlliinnkkeedd--ddiirreeccttoorriieess ((OOffff)) ! If set to OOnn, completed names which are symbolic ! links to directories have a slash appended (subject ! to the value of mmaarrkk--ddiirreeccttoorriieess). mmaattcchh--hhiiddddeenn--ffiilleess ((OOnn)) ! This variable, when set to OOnn, causes readline to ! match files whose names begin with a `.' (hidden ! files) when performing filename completion, unless ! the leading `.' is supplied by the user in the ! filename to be completed. oouuttppuutt--mmeettaa ((OOffff)) ! If set to OOnn, readline will display characters with ! the eighth bit set directly rather than as a meta- ! prefixed escape sequence. ppaaggee--ccoommpplleettiioonnss ((OOnn)) ! If set to OOnn, readline uses an internal _m_o_r_e-like ! pager to display a screenful of possible comple- ! tions at a time. pprriinntt--ccoommpplleettiioonnss--hhoorriizzoonnttaallllyy ((OOffff)) ! If set to OOnn, readline will display completions ! with matches sorted horizontally in alphabetical ! order, rather than down the screen. sshhooww--aallll--iiff--aammbbiigguuoouuss ((OOffff)) ! This alters the default behavior of the completion ! functions. If set to oonn, words which have more ! than one possible completion cause the matches to ! be listed immediately instead of ringing the bell. vviissiibbllee--ssttaattss ((OOffff)) ! If set to OOnn, a character denoting a file's type as ! reported by _s_t_a_t(2) is appended to the filename ! when listing possible completions. CCoonnddiittiioonnaall CCoonnssttrruuccttss ! Readline implements a facility similar in spirit to the ! conditional compilation features of the C preprocessor ! which allows key bindings and variable settings to be per- ! formed as the result of tests. There are four parser ! directives used. ! ! $$iiff The $$iiff construct allows bindings to be made based ! on the editing mode, the terminal being used, or ! the application using readline. The text of the ! test extends to the end of the line; no characters ! are required to isolate it. ! ! mmooddee The mmooddee== form of the $$iiff directive is used ! to test whether readline is in emacs or vi ! mode. This may be used in conjunction with ! the sseett kkeeyymmaapp command, for instance, to set ! bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and _e_m_a_c_s_- ! _c_t_l_x keymaps only if readline is starting ! out in emacs mode. ! ! tteerrmm The tteerrmm== form may be used to include termi- ! nal-specific key bindings, perhaps to bind ! the key sequences output by the terminal's ! function keys. The word on the right side ! of the == is tested against the full name of ! the terminal and the portion of the terminal ! name before the first --. This allows _s_u_n to ! match both _s_u_n and _s_u_n_-_c_m_d, for instance. aapppplliiccaattiioonn ! The aapppplliiccaattiioonn construct is used to include ! application-specific settings. Each program ! using the readline library sets the _a_p_p_l_i_c_a_- ! _t_i_o_n _n_a_m_e, and an initialization file can ! test for a particular value. This could be ! used to bind key sequences to functions use- ! ful for a specific program. For instance, ! the following command adds a key sequence ! that quotes the current or previous word in Bash: --- 142,314 ---- \\tt horizontal tab \\vv vertical tab ! \\_n_n_n the eight-bit character whose value is the octal value ! _n_n_n (one to three digits) ! \\xx_H_H the eight-bit character whose value is the hexadecimal ! value _H_H (one or two hex digits) ! ! When entering the text of a macro, single or double quotes should be ! used to indicate a macro definition. Unquoted text is assumed to be a ! function name. In the macro body, the backslash escapes described ! above are expanded. Backslash will quote any other character in the ! macro text, including " and '. ! ! BBaasshh allows the current readline key bindings to be displayed or modi- ! fied with the bbiinndd builtin command. The editing mode may be switched ! during interactive use by using the --oo option to the sseett builtin com- ! mand. Other programs using this library provide similar mechanisms. ! The _i_n_p_u_t_r_c file may be edited and re-read if a program does not pro- ! vide any other means to incorporate new bindings. VVaarriiaabblleess ! Readline has variables that can be used to further customize its behav- ! ior. A variable may be set in the _i_n_p_u_t_r_c file with a statement of the ! form sseett _v_a_r_i_a_b_l_e_-_n_a_m_e _v_a_l_u_e ! Except where noted, readline variables can take the values OOnn or OOffff ! (without regard to case). The variables and their default values are: bbeellll--ssttyyllee ((aauuddiibbllee)) ! Controls what happens when readline wants to ring the terminal ! bell. If set to nnoonnee, readline never rings the bell. If set to ! vviissiibbllee, readline uses a visible bell if one is available. If ! set to aauuddiibbllee, readline attempts to ring the terminal's bell. ccoommmmeenntt--bbeeggiinn ((````##'''')) ! The string that is inserted in vvii mode when the iinnsseerrtt--ccoommmmeenntt ! command is executed. This command is bound to MM--## in emacs mode ! and to ## in vi command mode. ccoommpplleettiioonn--iiggnnoorree--ccaassee ((OOffff)) ! If set to OOnn, readline performs filename matching and completion ! in a case-insensitive fashion. ccoommpplleettiioonn--qquueerryy--iitteemmss ((110000)) ! This determines when the user is queried about viewing the num- ! ber of possible completions generated by the ppoossssiibbllee--ccoommppllee-- ! ttiioonnss command. It may be set to any integer value greater than ! or equal to zero. If the number of possible completions is ! greater than or equal to the value of this variable, the user is ! asked whether or not he wishes to view them; otherwise they are ! simply listed on the terminal. ccoonnvveerrtt--mmeettaa ((OOnn)) ! If set to OOnn, readline will convert characters with the eighth ! bit set to an ASCII key sequence by stripping the eighth bit and ! prefixing it with an escape character (in effect, using escape ! as the _m_e_t_a _p_r_e_f_i_x). ddiissaabbllee--ccoommpplleettiioonn ((OOffff)) ! If set to OOnn, readline will inhibit word completion. Completion ! characters will be inserted into the line as if they had been ! mapped to sseellff--iinnsseerrtt. eeddiittiinngg--mmooddee ((eemmaaccss)) ! Controls whether readline begins with a set of key bindings sim- ! ilar to emacs or vi. eeddiittiinngg--mmooddee can be set to either eemmaaccss or ! vvii. eennaabbllee--kkeeyyppaadd ((OOffff)) ! When set to OOnn, readline will try to enable the application key- ! pad when it is called. Some systems need this to enable the ! arrow keys. eexxppaanndd--ttiillddee ((OOffff)) ! If set to oonn, tilde expansion is performed when readline ! attempts word completion. hhiissttoorryy--pprreesseerrvvee--ppooiinntt ! If set to oonn, the history code attempts to place point at the ! same location on each history line retrived with pprreevviioouuss--hhiiss-- ! ttoorryy or nneexxtt--hhiissttoorryy. hhoorriizzoonnttaall--ssccrroollll--mmooddee ((OOffff)) ! When set to OOnn, makes readline use a single line for display, ! scrolling the input horizontally on a single screen line when it ! becomes longer than the screen width rather than wrapping to a ! new line. iinnppuutt--mmeettaa ((OOffff)) ! If set to OOnn, readline will enable eight-bit input (that is, it ! will not clear the eighth bit in the characters it reads), ! regardless of what the terminal claims it can support. The name ! mmeettaa--ffllaagg is a synonym for this variable. iisseeaarrcchh--tteerrmmiinnaattoorrss ((````CC--[[ CC--JJ'''')) ! The string of characters that should terminate an incremental ! search without subsequently executing the character as a com- ! mand. If this variable has not been given a value, the charac- ! ters _E_S_C and _C_-_J will terminate an incremental search. kkeeyymmaapp ((eemmaaccss)) ! Set the current readline keymap. The set of legal keymap names ! is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_, ! _v_i_-_c_o_m_m_a_n_d, and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; ! _e_m_a_c_s is equivalent to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is ! _e_m_a_c_s. The value of eeddiittiinngg--mmooddee also affects the default keymap. mmaarrkk--ddiirreeccttoorriieess ((OOnn)) ! If set to OOnn, completed directory names have a slash appended. mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff)) ! If set to OOnn, history lines that have been modified are dis- ! played with a preceding asterisk (**). mmaarrkk--ssyymmlliinnkkeedd--ddiirreeccttoorriieess ((OOffff)) ! If set to OOnn, completed names which are symbolic links to direc- ! tories have a slash appended (subject to the value of ! mmaarrkk--ddiirreeccttoorriieess). mmaattcchh--hhiiddddeenn--ffiilleess ((OOnn)) ! This variable, when set to OOnn, causes readline to match files ! whose names begin with a `.' (hidden files) when performing ! filename completion, unless the leading `.' is supplied by the ! user in the filename to be completed. oouuttppuutt--mmeettaa ((OOffff)) ! If set to OOnn, readline will display characters with the eighth ! bit set directly rather than as a meta-prefixed escape sequence. ppaaggee--ccoommpplleettiioonnss ((OOnn)) ! If set to OOnn, readline uses an internal _m_o_r_e-like pager to dis- ! play a screenful of possible completions at a time. pprriinntt--ccoommpplleettiioonnss--hhoorriizzoonnttaallllyy ((OOffff)) ! If set to OOnn, readline will display completions with matches ! sorted horizontally in alphabetical order, rather than down the ! screen. sshhooww--aallll--iiff--aammbbiigguuoouuss ((OOffff)) ! This alters the default behavior of the completion functions. ! If set to oonn, words which have more than one possible completion ! cause the matches to be listed immediately instead of ringing ! the bell. ! sshhooww--aallll--iiff--uunnmmooddiiffiieedd ((OOffff)) ! This alters the default behavior of the completion functions in ! a fashion similar to sshhooww--aallll--iiff--aammbbiigguuoouuss. If set to oonn, words ! which have more than one possible completion without any possi- ! ble partial completion (the possible completions don't share a ! common prefix) cause the matches to be listed immediately ! instead of ringing the bell. vviissiibbllee--ssttaattss ((OOffff)) ! If set to OOnn, a character denoting a file's type as reported by ! _s_t_a_t(2) is appended to the filename when listing possible com- ! pletions. CCoonnddiittiioonnaall CCoonnssttrruuccttss ! Readline implements a facility similar in spirit to the conditional ! compilation features of the C preprocessor which allows key bindings ! and variable settings to be performed as the result of tests. There ! are four parser directives used. ! ! $$iiff The $$iiff construct allows bindings to be made based on the edit- ! ing mode, the terminal being used, or the application using ! readline. The text of the test extends to the end of the line; ! no characters are required to isolate it. ! ! mmooddee The mmooddee== form of the $$iiff directive is used to test ! whether readline is in emacs or vi mode. This may be ! used in conjunction with the sseett kkeeyymmaapp command, for ! instance, to set bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and ! _e_m_a_c_s_-_c_t_l_x keymaps only if readline is starting out in ! emacs mode. ! ! tteerrmm The tteerrmm== form may be used to include terminal-specific ! key bindings, perhaps to bind the key sequences output by ! the terminal's function keys. The word on the right side ! of the == is tested against the full name of the terminal ! and the portion of the terminal name before the first --. ! This allows _s_u_n to match both _s_u_n and _s_u_n_-_c_m_d, for ! instance. aapppplliiccaattiioonn ! The aapppplliiccaattiioonn construct is used to include application- ! specific settings. Each program using the readline ! library sets the _a_p_p_l_i_c_a_t_i_o_n _n_a_m_e, and an initialization ! file can test for a particular value. This could be used ! to bind key sequences to functions useful for a specific ! program. For instance, the following command adds a key ! sequence that quotes the current or previous word in Bash: *************** *** 348,413 **** $$eennddiiff ! $$eennddiiff This command, as seen in the previous example, ter- ! minates an $$iiff command. ! $$eellssee Commands in this branch of the $$iiff directive are ! executed if the test fails. $$iinncclluuddee ! This directive takes a single filename as an argu- ! ment and reads commands and bindings from that ! file. For example, the following directive would ! read _/_e_t_c_/_i_n_p_u_t_r_c: $$iinncclluuddee _/_e_t_c_/_i_n_p_u_t_r_c SSEEAARRCCHHIINNGG ! Readline provides commands for searching through the com- ! mand history for lines containing a specified string. ! There are two search modes: _i_n_c_r_e_m_e_n_t_a_l and _n_o_n_-_i_n_c_r_e_m_e_n_- ! _t_a_l. ! ! Incremental searches begin before the user has finished ! typing the search string. As each character of the search ! string is typed, readline displays the next entry from the ! history matching the string typed so far. An incremental ! search requires only as many characters as needed to find ! the desired history entry. To search backward in the his- ! tory for a particular string, type CC--rr. Typing CC--ss ! searches forward through the history. The characters pre- ! sent in the value of the iisseeaarrcchh--tteerrmmiinnaattoorrss variable are ! used to terminate an incremental search. If that variable ! has not been assigned a value the _E_s_c_a_p_e and CC--JJ charac- ! ters will terminate an incremental search. CC--GG will abort ! an incremental search and restore the original line. When ! the search is terminated, the history entry containing the ! search string becomes the current line. ! ! To find other matching entries in the history list, type ! CC--ss or CC--rr as appropriate. This will search backward or ! forward in the history for the next line matching the ! search string typed so far. Any other key sequence bound ! to a readline command will terminate the search and exe- ! cute that command. For instance, a newline will terminate ! the search and accept the line, thereby executing the com- ! mand from the history list. A movement command will ter- ! minate the search, make the last line found the current ! line, and begin editing. ! ! Non-incremental searches read the entire search string ! before starting to search for matching history lines. The ! search string may be typed by the user or be part of the ! contents of the current line. EEDDIITTIINNGG CCOOMMMMAANNDDSS ! The following is a list of the names of the commands and ! the default key sequences to which they are bound. Com- ! mand names without an accompanying key sequence are ! unbound by default. ! ! In the following descriptions, _p_o_i_n_t refers to the current ! cursor position, and _m_a_r_k refers to a cursor position ! saved by the sseett--mmaarrkk command. The text between the point ! and mark is referred to as the _r_e_g_i_o_n. CCoommmmaannddss ffoorr MMoovviinngg --- 318,375 ---- $$eennddiiff ! $$eennddiiff This command, as seen in the previous example, terminates an $$iiff ! command. ! $$eellssee Commands in this branch of the $$iiff directive are executed if the ! test fails. $$iinncclluuddee ! This directive takes a single filename as an argument and reads ! commands and bindings from that file. For example, the follow- ! ing directive would read _/_e_t_c_/_i_n_p_u_t_r_c: $$iinncclluuddee _/_e_t_c_/_i_n_p_u_t_r_c SSEEAARRCCHHIINNGG ! Readline provides commands for searching through the command history ! for lines containing a specified string. There are two search modes: ! _i_n_c_r_e_m_e_n_t_a_l and _n_o_n_-_i_n_c_r_e_m_e_n_t_a_l. ! ! Incremental searches begin before the user has finished typing the ! search string. As each character of the search string is typed, read- ! line displays the next entry from the history matching the string typed ! so far. An incremental search requires only as many characters as ! needed to find the desired history entry. To search backward in the ! history for a particular string, type CC--rr. Typing CC--ss searches forward ! through the history. The characters present in the value of the ! iisseeaarrcchh--tteerrmmiinnaattoorrss variable are used to terminate an incremental ! search. If that variable has not been assigned a value the _E_s_c_a_p_e and ! CC--JJ characters will terminate an incremental search. CC--GG will abort an ! incremental search and restore the original line. When the search is ! terminated, the history entry containing the search string becomes the ! current line. ! ! To find other matching entries in the history list, type CC--ss or CC--rr as ! appropriate. This will search backward or forward in the history for ! the next line matching the search string typed so far. Any other key ! sequence bound to a readline command will terminate the search and exe- ! cute that command. For instance, a newline will terminate the search ! and accept the line, thereby executing the command from the history ! list. A movement command will terminate the search, make the last line ! found the current line, and begin editing. ! ! Non-incremental searches read the entire search string before starting ! to search for matching history lines. The search string may be typed ! by the user or be part of the contents of the current line. EEDDIITTIINNGG CCOOMMMMAANNDDSS ! The following is a list of the names of the commands and the default ! key sequences to which they are bound. Command names without an accom- ! panying key sequence are unbound by default. ! ! In the following descriptions, _p_o_i_n_t refers to the current cursor posi- ! tion, and _m_a_r_k refers to a cursor position saved by the sseett--mmaarrkk com- ! mand. The text between the point and mark is referred to as the ! _r_e_g_i_o_n. CCoommmmaannddss ffoorr MMoovviinngg *************** *** 421,435 **** Move back a character. ffoorrwwaarrdd--wwoorrdd ((MM--ff)) ! Move forward to the end of the next word. Words ! are composed of alphanumeric characters (letters ! and digits). bbaacckkwwaarrdd--wwoorrdd ((MM--bb)) ! Move back to the start of the current or previous ! word. Words are composed of alphanumeric charac- ! ters (letters and digits). cclleeaarr--ssccrreeeenn ((CC--ll)) ! Clear the screen leaving the current line at the ! top of the screen. With an argument, refresh the ! current line without clearing the screen. rreeddrraaww--ccuurrrreenntt--lliinnee Refresh the current line. --- 383,395 ---- Move back a character. ffoorrwwaarrdd--wwoorrdd ((MM--ff)) ! Move forward to the end of the next word. Words are composed of ! alphanumeric characters (letters and digits). bbaacckkwwaarrdd--wwoorrdd ((MM--bb)) ! Move back to the start of the current or previous word. Words ! are composed of alphanumeric characters (letters and digits). cclleeaarr--ssccrreeeenn ((CC--ll)) ! Clear the screen leaving the current line at the top of the ! screen. With an argument, refresh the current line without ! clearing the screen. rreeddrraaww--ccuurrrreenntt--lliinnee Refresh the current line. *************** *** 437,515 **** CCoommmmaannddss ffoorr MMaanniippuullaattiinngg tthhee HHiissttoorryy aacccceepptt--lliinnee ((NNeewwlliinnee,, RReettuurrnn)) ! Accept the line regardless of where the cursor is. ! If this line is non-empty, it may be added to the ! history list for future recall with aadddd__hhiissttoorryy(()). ! If the line is a modified history line, the history ! line is restored to its original state. pprreevviioouuss--hhiissttoorryy ((CC--pp)) ! Fetch the previous command from the history list, ! moving back in the list. nneexxtt--hhiissttoorryy ((CC--nn)) ! Fetch the next command from the history list, mov- ! ing forward in the list. bbeeggiinnnniinngg--ooff--hhiissttoorryy ((MM--<<)) Move to the first line in the history. eenndd--ooff--hhiissttoorryy ((MM-->>)) ! Move to the end of the input history, i.e., the ! line currently being entered. rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((CC--rr)) ! Search backward starting at the current line and ! moving `up' through the history as necessary. This ! is an incremental search. ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((CC--ss)) ! Search forward starting at the current line and ! moving `down' through the history as necessary. ! This is an incremental search. nnoonn--iinnccrreemmeennttaall--rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((MM--pp)) ! Search backward through the history starting at the ! current line using a non-incremental search for a ! string supplied by the user. ! nnoonn--iinnccrreemmeennttaall--ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((MM--nn)) ! Search forward through the history using a non- ! incremental search for a string supplied by the user. hhiissttoorryy--sseeaarrcchh--ffoorrwwaarrdd ! Search forward through the history for the string ! of characters between the start of the current line ! and the current cursor position (the _p_o_i_n_t). This ! is a non-incremental search. hhiissttoorryy--sseeaarrcchh--bbaacckkwwaarrdd ! Search backward through the history for the string ! of characters between the start of the current line ! and the point. This is a non-incremental search. yyaannkk--nntthh--aarrgg ((MM--CC--yy)) ! Insert the first argument to the previous command ! (usually the second word on the previous line) at ! point. With an argument _n, insert the _nth word ! from the previous command (the words in the previ- ! ous command begin with word 0). A negative argu- ! ment inserts the _nth word from the end of the pre- ! vious command. yyaannkk--llaasstt--aarrgg ((MM--..,, MM--__)) ! Insert the last argument to the previous command ! (the last word of the previous history entry). ! With an argument, behave exactly like yyaannkk--nntthh--aarrgg. ! Successive calls to yyaannkk--llaasstt--aarrgg move back through ! the history list, inserting the last argument of ! each line in turn. CCoommmmaannddss ffoorr CChhaannggiinngg TTeexxtt ddeelleettee--cchhaarr ((CC--dd)) ! Delete the character at point. If point is at the ! beginning of the line, there are no characters in ! the line, and the last character typed was not ! bound to ddeelleettee--cchhaarr, then return EEOOFF. bbaacckkwwaarrdd--ddeelleettee--cchhaarr ((RRuubboouutt)) ! Delete the character behind the cursor. When given ! a numeric argument, save the deleted text on the ! kill ring. ffoorrwwaarrdd--bbaacckkwwaarrdd--ddeelleettee--cchhaarr ! Delete the character under the cursor, unless the ! cursor is at the end of the line, in which case the ! character behind the cursor is deleted. qquuootteedd--iinnsseerrtt ((CC--qq,, CC--vv)) ! Add the next character that you type to the line ! verbatim. This is how to insert characters like ! CC--qq, for example. ttaabb--iinnsseerrtt ((MM--TTAABB)) Insert a tab character. --- 397,466 ---- CCoommmmaannddss ffoorr MMaanniippuullaattiinngg tthhee HHiissttoorryy aacccceepptt--lliinnee ((NNeewwlliinnee,, RReettuurrnn)) ! Accept the line regardless of where the cursor is. If this line ! is non-empty, it may be added to the history list for future ! recall with aadddd__hhiissttoorryy(()). If the line is a modified history ! line, the history line is restored to its original state. pprreevviioouuss--hhiissttoorryy ((CC--pp)) ! Fetch the previous command from the history list, moving back in ! the list. nneexxtt--hhiissttoorryy ((CC--nn)) ! Fetch the next command from the history list, moving forward in ! the list. bbeeggiinnnniinngg--ooff--hhiissttoorryy ((MM--<<)) Move to the first line in the history. eenndd--ooff--hhiissttoorryy ((MM-->>)) ! Move to the end of the input history, i.e., the line currently ! being entered. rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((CC--rr)) ! Search backward starting at the current line and moving `up' ! through the history as necessary. This is an incremental ! search. ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((CC--ss)) ! Search forward starting at the current line and moving `down' ! through the history as necessary. This is an incremental ! search. nnoonn--iinnccrreemmeennttaall--rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((MM--pp)) ! Search backward through the history starting at the current line ! using a non-incremental search for a string supplied by the user. + nnoonn--iinnccrreemmeennttaall--ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((MM--nn)) + Search forward through the history using a non-incremental + search for a string supplied by the user. hhiissttoorryy--sseeaarrcchh--ffoorrwwaarrdd ! Search forward through the history for the string of characters ! between the start of the current line and the current cursor ! position (the _p_o_i_n_t). This is a non-incremental search. hhiissttoorryy--sseeaarrcchh--bbaacckkwwaarrdd ! Search backward through the history for the string of characters ! between the start of the current line and the point. This is a ! non-incremental search. yyaannkk--nntthh--aarrgg ((MM--CC--yy)) ! Insert the first argument to the previous command (usually the ! second word on the previous line) at point. With an argument _n, ! insert the _nth word from the previous command (the words in the ! previous command begin with word 0). A negative argument ! inserts the _nth word from the end of the previous command. yyaannkk--llaasstt--aarrgg ((MM--..,, MM--__)) ! Insert the last argument to the previous command (the last word ! of the previous history entry). With an argument, behave ! exactly like yyaannkk--nntthh--aarrgg. Successive calls to yyaannkk--llaasstt--aarrgg ! move back through the history list, inserting the last argument ! of each line in turn. CCoommmmaannddss ffoorr CChhaannggiinngg TTeexxtt ddeelleettee--cchhaarr ((CC--dd)) ! Delete the character at point. If point is at the beginning of ! the line, there are no characters in the line, and the last ! character typed was not bound to ddeelleettee--cchhaarr, then return EEOOFF. bbaacckkwwaarrdd--ddeelleettee--cchhaarr ((RRuubboouutt)) ! Delete the character behind the cursor. When given a numeric ! argument, save the deleted text on the kill ring. ffoorrwwaarrdd--bbaacckkwwaarrdd--ddeelleettee--cchhaarr ! Delete the character under the cursor, unless the cursor is at ! the end of the line, in which case the character behind the cur- ! sor is deleted. qquuootteedd--iinnsseerrtt ((CC--qq,, CC--vv)) ! Add the next character that you type to the line verbatim. This ! is how to insert characters like CC--qq, for example. ttaabb--iinnsseerrtt ((MM--TTAABB)) Insert a tab character. *************** *** 517,554 **** Insert the character typed. ttrraannssppoossee--cchhaarrss ((CC--tt)) ! Drag the character before point forward over the ! character at point, moving point forward as well. ! If point is at the end of the line, then this ! transposes the two characters before point. Nega- ! tive arguments have no effect. ttrraannssppoossee--wwoorrddss ((MM--tt)) ! Drag the word before point past the word after ! point, moving point over that word as well. If ! point is at the end of the line, this transposes ! the last two words on the line. uuppccaassee--wwoorrdd ((MM--uu)) ! Uppercase the current (or following) word. With a ! negative argument, uppercase the previous word, but ! do not move point. ddoowwnnccaassee--wwoorrdd ((MM--ll)) ! Lowercase the current (or following) word. With a ! negative argument, lowercase the previous word, but ! do not move point. ccaappiittaalliizzee--wwoorrdd ((MM--cc)) ! Capitalize the current (or following) word. With a ! negative argument, capitalize the previous word, ! but do not move point. oovveerrwwrriittee--mmooddee ! Toggle overwrite mode. With an explicit positive ! numeric argument, switches to overwrite mode. With ! an explicit non-positive numeric argument, switches ! to insert mode. This command affects only eemmaaccss ! mode; vvii mode does overwrite differently. Each ! call to _r_e_a_d_l_i_n_e_(_) starts in insert mode. In over- ! write mode, characters bound to sseellff--iinnsseerrtt replace ! the text at point rather than pushing the text to ! the right. Characters bound to bbaacckk-- ! wwaarrdd--ddeelleettee--cchhaarr replace the character before point ! with a space. By default, this command is unbound. KKiilllliinngg aanndd YYaannkkiinngg --- 468,498 ---- Insert the character typed. ttrraannssppoossee--cchhaarrss ((CC--tt)) ! Drag the character before point forward over the character at ! point, moving point forward as well. If point is at the end of ! the line, then this transposes the two characters before point. ! Negative arguments have no effect. ttrraannssppoossee--wwoorrddss ((MM--tt)) ! Drag the word before point past the word after point, moving ! point over that word as well. If point is at the end of the ! line, this transposes the last two words on the line. uuppccaassee--wwoorrdd ((MM--uu)) ! Uppercase the current (or following) word. With a negative ! argument, uppercase the previous word, but do not move point. ddoowwnnccaassee--wwoorrdd ((MM--ll)) ! Lowercase the current (or following) word. With a negative ! argument, lowercase the previous word, but do not move point. ccaappiittaalliizzee--wwoorrdd ((MM--cc)) ! Capitalize the current (or following) word. With a negative ! argument, capitalize the previous word, but do not move point. oovveerrwwrriittee--mmooddee ! Toggle overwrite mode. With an explicit positive numeric argu- ! ment, switches to overwrite mode. With an explicit non-positive ! numeric argument, switches to insert mode. This command affects ! only eemmaaccss mode; vvii mode does overwrite differently. Each call ! to _r_e_a_d_l_i_n_e_(_) starts in insert mode. In overwrite mode, charac- ! ters bound to sseellff--iinnsseerrtt replace the text at point rather than ! pushing the text to the right. Characters bound to bbaacckk-- ! wwaarrdd--ddeelleettee--cchhaarr replace the character before point with a ! space. By default, this command is unbound. KKiilllliinngg aanndd YYaannkkiinngg *************** *** 558,766 **** Kill backward to the beginning of the line. uunniixx--lliinnee--ddiissccaarrdd ((CC--uu)) ! Kill backward from point to the beginning of the ! line. The killed text is saved on the kill-ring. kkiillll--wwhhoollee--lliinnee ! Kill all characters on the current line, no matter ! where point is. kkiillll--wwoorrdd ((MM--dd)) ! Kill from point the end of the current word, or if ! between words, to the end of the next word. Word ! boundaries are the same as those used by ffoorr-- ! wwaarrdd--wwoorrdd. bbaacckkwwaarrdd--kkiillll--wwoorrdd ((MM--RRuubboouutt)) ! Kill the word behind point. Word boundaries are ! the same as those used by bbaacckkwwaarrdd--wwoorrdd. uunniixx--wwoorrdd--rruubboouutt ((CC--ww)) ! Kill the word behind point, using white space as a ! word boundary. The killed text is saved on the ! kill-ring. ddeelleettee--hhoorriizzoonnttaall--ssppaaccee ((MM--\\)) Delete all spaces and tabs around point. kkiillll--rreeggiioonn ! Kill the text between the point and _m_a_r_k (saved ! cursor position). This text is referred to as the ! _r_e_g_i_o_n. ccooppyy--rreeggiioonn--aass--kkiillll Copy the text in the region to the kill buffer. ccooppyy--bbaacckkwwaarrdd--wwoorrdd ! Copy the word before point to the kill buffer. The ! word boundaries are the same as bbaacckkwwaarrdd--wwoorrdd. ccooppyy--ffoorrwwaarrdd--wwoorrdd ! Copy the word following point to the kill buffer. ! The word boundaries are the same as ffoorrwwaarrdd--wwoorrdd. yyaannkk ((CC--yy)) ! Yank the top of the kill ring into the buffer at ! point. yyaannkk--ppoopp ((MM--yy)) ! Rotate the kill ring, and yank the new top. Only ! works following yyaannkk or yyaannkk--ppoopp. NNuummeerriicc AArrgguummeennttss ddiiggiitt--aarrgguummeenntt ((MM--00,, MM--11,, ......,, MM----)) ! Add this digit to the argument already accumulat- ! ing, or start a new argument. M-- starts a nega- ! tive argument. uunniivveerrssaall--aarrgguummeenntt ! This is another way to specify an argument. If ! this command is followed by one or more digits, ! optionally with a leading minus sign, those digits ! define the argument. If the command is followed by ! digits, executing uunniivveerrssaall--aarrgguummeenntt again ends the ! numeric argument, but is otherwise ignored. As a ! special case, if this command is immediately fol- ! lowed by a character that is neither a digit or ! minus sign, the argument count for the next command ! is multiplied by four. The argument count is ini- ! tially one, so executing this function the first ! time makes the argument count four, a second time ! makes the argument count sixteen, and so on. CCoommpplleettiinngg ccoommpplleettee ((TTAABB)) ! Attempt to perform completion on the text before ! point. The actual completion performed is applica- ! tion-specific. BBaasshh, for instance, attempts com- ! pletion treating the text as a variable (if the ! text begins with $$), username (if the text begins ! with ~~), hostname (if the text begins with @@), or ! command (including aliases and functions) in turn. ! If none of these produces a match, filename comple- ! tion is attempted. GGddbb, on the other hand, allows ! completion of program functions and variables, and ! only attempts filename completion under certain ! circumstances. ppoossssiibbllee--ccoommpplleettiioonnss ((MM--??)) ! List the possible completions of the text before ! point. iinnsseerrtt--ccoommpplleettiioonnss ((MM--**)) ! Insert all completions of the text before point ! that would have been generated by ppoossssiibbllee--ccoommppllee-- ! ttiioonnss. mmeennuu--ccoommpplleettee ! Similar to ccoommpplleettee, but replaces the word to be ! completed with a single match from the list of pos- ! sible completions. Repeated execution of mmeennuu--ccoomm-- ! pplleettee steps through the list of possible comple- ! tions, inserting each match in turn. At the end of ! the list of completions, the bell is rung (subject ! to the setting of 00aanndd tthhee oorriiggiinnaall tteexxtt iiss ! rreessttoorreedd.. AAnn aarrgguummeenntt ooff _n mmoovveess _n ppoossiittiioonnss ffoorr-- ! wwaarrdd iinn tthhee lliisstt ooff mmaattcchheess;; aa nneeggaattiivvee aarrgguummeenntt ! mmaayy bbee uusseedd ttoo mmoovvee bbaacckkwwaarrdd tthhrroouugghh tthhee lliisstt.. ! TThhiiss ccoommmmaanndd iiss iinntteennddeedd ttoo bbee bboouunndd ttoo TTAABB,, bbuutt iiss ! uunnbboouunndd bbyy ddeeffaauulltt.. ddeelleettee--cchhaarr--oorr--lliisstt ! Deletes the character under the cursor if not at ! the beginning or end of the line (like ddeelleettee-- ! cchhaarr). If at the end of the line, behaves identi- ! cally to ppoossssiibbllee--ccoommpplleettiioonnss. KKeeyybbooaarrdd MMaaccrrooss ssttaarrtt--kkbbdd--mmaaccrroo ((CC--xx (()) ! Begin saving the characters typed into the current ! keyboard macro. eenndd--kkbbdd--mmaaccrroo ((CC--xx )))) ! Stop saving the characters typed into the current ! keyboard macro and store the definition. ccaallll--llaasstt--kkbbdd--mmaaccrroo ((CC--xx ee)) ! Re-execute the last keyboard macro defined, by mak- ! ing the characters in the macro appear as if typed ! at the keyboard. MMiisscceellllaanneeoouuss rree--rreeaadd--iinniitt--ffiillee ((CC--xx CC--rr)) ! Read in the contents of the _i_n_p_u_t_r_c file, and ! incorporate any bindings or variable assignments ! found there. aabboorrtt ((CC--gg)) ! Abort the current editing command and ring the ter- ! minal's bell (subject to the setting of ! bbeellll--ssttyyllee). ddoo--uuppppeerrccaassee--vveerrssiioonn ((MM--aa,, MM--bb,, MM--_x,, ......)) ! If the metafied character _x is lowercase, run the ! command that is bound to the corresponding upper- ! case character. pprreeffiixx--mmeettaa ((EESSCC)) ! Metafy the next character typed. EESSCC ff is equiva- ! lent to MMeettaa--ff. uunnddoo ((CC--__,, CC--xx CC--uu)) ! Incremental undo, separately remembered for each ! line. rreevveerrtt--lliinnee ((MM--rr)) ! Undo all changes made to this line. This is like ! executing the uunnddoo command enough times to return ! the line to its initial state. ttiillddee--eexxppaanndd ((MM--&&)) Perform tilde expansion on the current word. sseett--mmaarrkk ((CC--@@,, MM--<>)) ! Set the mark to the point. If a numeric argument ! is supplied, the mark is set to that position. eexxcchhaannggee--ppooiinntt--aanndd--mmaarrkk ((CC--xx CC--xx)) ! Swap the point with the mark. The current cursor ! position is set to the saved position, and the old ! cursor position is saved as the mark. cchhaarraacctteerr--sseeaarrcchh ((CC--]])) ! A character is read and point is moved to the next ! occurrence of that character. A negative count ! searches for previous occurrences. cchhaarraacctteerr--sseeaarrcchh--bbaacckkwwaarrdd ((MM--CC--]])) ! A character is read and point is moved to the pre- ! vious occurrence of that character. A negative ! count searches for subsequent occurrences. iinnsseerrtt--ccoommmmeenntt ((MM--##)) ! Without a numeric argument, the value of the read- ! line ccoommmmeenntt--bbeeggiinn variable is inserted at the ! beginning of the current line. If a numeric argu- ! ment is supplied, this command acts as a toggle: ! if the characters at the beginning of the line do ! not match the value of ccoommmmeenntt--bbeeggiinn, the value is ! inserted, otherwise the characters in ccoommmmeenntt--bbeeggiinn ! are deleted from the beginning of the line. In ! either case, the line is accepted as if a newline ! had been typed. The default value of ccoommmmeenntt--bbeeggiinn ! makes the current line a shell comment. If a ! numeric argument causes the comment character to be ! removed, the line will be executed by the shell. dduummpp--ffuunnccttiioonnss ! Print all of the functions and their key bindings ! to the readline output stream. If a numeric ! argument is supplied, the output is formatted in ! such a way that it can be made part of an _i_n_p_u_t_r_c ! file. dduummpp--vvaarriiaabblleess ! Print all of the settable variables and their val- ! ues to the readline output stream. If a numeric ! argument is supplied, the output is formatted in ! such a way that it can be made part of an _i_n_p_u_t_r_c ! file. dduummpp--mmaaccrrooss ! Print all of the readline key sequences bound to ! macros and the strings they ouput. If a numeric ! argument is supplied, the output is formatted in ! such a way that it can be made part of an _i_n_p_u_t_r_c ! file. eemmaaccss--eeddiittiinngg--mmooddee ((CC--ee)) ! When in vvii command mode, this causes a switch to ! eemmaaccss editing mode. vvii--eeddiittiinngg--mmooddee ((MM--CC--jj)) ! When in eemmaaccss editing mode, this causes a switch to ! vvii editing mode. DDEEFFAAUULLTT KKEEYY BBIINNDDIINNGGSS ! The following is a list of the default emacs and vi bind- ! ings. Characters with the eighth bit set are written as ! M-, and are referred to as _m_e_t_a_f_i_e_d characters. ! The printable ASCII characters not mentioned in the list ! of emacs standard bindings are bound to the sseellff--iinnsseerrtt ! function, which just inserts the given character into the ! input line. In vi insertion mode, all characters not ! specifically mentioned are bound to sseellff--iinnsseerrtt. Charac- ! ters assigned to signal generation by _s_t_t_y(1) or the ter- ! minal driver, such as C-Z or C-C, retain that function. ! Upper and lower case metafied characters are bound to the ! same function in the emacs mode meta keymap. The remain- ! ing characters are unbound, which causes readline to ring ! the bell (subject to the setting of the bbeellll--ssttyyllee vari- ! able). EEmmaaccss MMooddee --- 502,685 ---- Kill backward to the beginning of the line. uunniixx--lliinnee--ddiissccaarrdd ((CC--uu)) ! Kill backward from point to the beginning of the line. The ! killed text is saved on the kill-ring. kkiillll--wwhhoollee--lliinnee ! Kill all characters on the current line, no matter where point ! is. kkiillll--wwoorrdd ((MM--dd)) ! Kill from point the end of the current word, or if between ! words, to the end of the next word. Word boundaries are the ! same as those used by ffoorrwwaarrdd--wwoorrdd. bbaacckkwwaarrdd--kkiillll--wwoorrdd ((MM--RRuubboouutt)) ! Kill the word behind point. Word boundaries are the same as ! those used by bbaacckkwwaarrdd--wwoorrdd. uunniixx--wwoorrdd--rruubboouutt ((CC--ww)) ! Kill the word behind point, using white space as a word bound- ! ary. The killed text is saved on the kill-ring. ! uunniixx--ffiilleennaammee--rruubboouutt ! Kill the word behind point, using white space and the slash ! character as the word boundaries. The killed text is saved on ! the kill-ring. ddeelleettee--hhoorriizzoonnttaall--ssppaaccee ((MM--\\)) Delete all spaces and tabs around point. kkiillll--rreeggiioonn ! Kill the text between the point and _m_a_r_k (saved cursor posi- ! tion). This text is referred to as the _r_e_g_i_o_n. ccooppyy--rreeggiioonn--aass--kkiillll Copy the text in the region to the kill buffer. ccooppyy--bbaacckkwwaarrdd--wwoorrdd ! Copy the word before point to the kill buffer. The word bound- ! aries are the same as bbaacckkwwaarrdd--wwoorrdd. ccooppyy--ffoorrwwaarrdd--wwoorrdd ! Copy the word following point to the kill buffer. The word ! boundaries are the same as ffoorrwwaarrdd--wwoorrdd. yyaannkk ((CC--yy)) ! Yank the top of the kill ring into the buffer at point. yyaannkk--ppoopp ((MM--yy)) ! Rotate the kill ring, and yank the new top. Only works follow- ! ing yyaannkk or yyaannkk--ppoopp. NNuummeerriicc AArrgguummeennttss ddiiggiitt--aarrgguummeenntt ((MM--00,, MM--11,, ......,, MM----)) ! Add this digit to the argument already accumulating, or start a ! new argument. M-- starts a negative argument. uunniivveerrssaall--aarrgguummeenntt ! This is another way to specify an argument. If this command is ! followed by one or more digits, optionally with a leading minus ! sign, those digits define the argument. If the command is fol- ! lowed by digits, executing uunniivveerrssaall--aarrgguummeenntt again ends the ! numeric argument, but is otherwise ignored. As a special case, ! if this command is immediately followed by a character that is ! neither a digit or minus sign, the argument count for the next ! command is multiplied by four. The argument count is initially ! one, so executing this function the first time makes the argu- ! ment count four, a second time makes the argument count sixteen, ! and so on. CCoommpplleettiinngg ccoommpplleettee ((TTAABB)) ! Attempt to perform completion on the text before point. The ! actual completion performed is application-specific. BBaasshh, for ! instance, attempts completion treating the text as a variable ! (if the text begins with $$), username (if the text begins with ! ~~), hostname (if the text begins with @@), or command (including ! aliases and functions) in turn. If none of these produces a ! match, filename completion is attempted. GGddbb, on the other ! hand, allows completion of program functions and variables, and ! only attempts filename completion under certain circumstances. ppoossssiibbllee--ccoommpplleettiioonnss ((MM--??)) ! List the possible completions of the text before point. iinnsseerrtt--ccoommpplleettiioonnss ((MM--**)) ! Insert all completions of the text before point that would have ! been generated by ppoossssiibbllee--ccoommpplleettiioonnss. mmeennuu--ccoommpplleettee ! Similar to ccoommpplleettee, but replaces the word to be completed with ! a single match from the list of possible completions. Repeated ! execution of mmeennuu--ccoommpplleettee steps through the list of possible ! completions, inserting each match in turn. At the end of the ! list of completions, the bell is rung (subject to the setting of ! bbeellll--ssttyyllee) and the original text is restored. An argument of _n ! moves _n positions forward in the list of matches; a negative ! argument may be used to move backward through the list. This ! command is intended to be bound to TTAABB, but is unbound by ! default. ddeelleettee--cchhaarr--oorr--lliisstt ! Deletes the character under the cursor if not at the beginning ! or end of the line (like ddeelleettee--cchhaarr). If at the end of the ! line, behaves identically to ppoossssiibbllee--ccoommpplleettiioonnss. KKeeyybbooaarrdd MMaaccrrooss ssttaarrtt--kkbbdd--mmaaccrroo ((CC--xx (()) ! Begin saving the characters typed into the current keyboard ! macro. eenndd--kkbbdd--mmaaccrroo ((CC--xx )))) ! Stop saving the characters typed into the current keyboard macro ! and store the definition. ccaallll--llaasstt--kkbbdd--mmaaccrroo ((CC--xx ee)) ! Re-execute the last keyboard macro defined, by making the char- ! acters in the macro appear as if typed at the keyboard. MMiisscceellllaanneeoouuss rree--rreeaadd--iinniitt--ffiillee ((CC--xx CC--rr)) ! Read in the contents of the _i_n_p_u_t_r_c file, and incorporate any ! bindings or variable assignments found there. aabboorrtt ((CC--gg)) ! Abort the current editing command and ring the terminal's bell ! (subject to the setting of bbeellll--ssttyyllee). ddoo--uuppppeerrccaassee--vveerrssiioonn ((MM--aa,, MM--bb,, MM--_x,, ......)) ! If the metafied character _x is lowercase, run the command that ! is bound to the corresponding uppercase character. pprreeffiixx--mmeettaa ((EESSCC)) ! Metafy the next character typed. EESSCC ff is equivalent to MMeettaa--ff. uunnddoo ((CC--__,, CC--xx CC--uu)) ! Incremental undo, separately remembered for each line. rreevveerrtt--lliinnee ((MM--rr)) ! Undo all changes made to this line. This is like executing the ! uunnddoo command enough times to return the line to its initial ! state. ttiillddee--eexxppaanndd ((MM--&&)) Perform tilde expansion on the current word. sseett--mmaarrkk ((CC--@@,, MM--<>)) ! Set the mark to the point. If a numeric argument is supplied, ! the mark is set to that position. eexxcchhaannggee--ppooiinntt--aanndd--mmaarrkk ((CC--xx CC--xx)) ! Swap the point with the mark. The current cursor position is ! set to the saved position, and the old cursor position is saved ! as the mark. cchhaarraacctteerr--sseeaarrcchh ((CC--]])) ! A character is read and point is moved to the next occurrence of ! that character. A negative count searches for previous occur- ! rences. cchhaarraacctteerr--sseeaarrcchh--bbaacckkwwaarrdd ((MM--CC--]])) ! A character is read and point is moved to the previous occur- ! rence of that character. A negative count searches for subse- ! quent occurrences. iinnsseerrtt--ccoommmmeenntt ((MM--##)) ! Without a numeric argument, the value of the readline ccoomm-- ! mmeenntt--bbeeggiinn variable is inserted at the beginning of the current ! line. If a numeric argument is supplied, this command acts as a ! toggle: if the characters at the beginning of the line do not ! match the value of ccoommmmeenntt--bbeeggiinn, the value is inserted, other- ! wise the characters in ccoommmmeenntt--bbeeggiinn are deleted from the begin- ! ning of the line. In either case, the line is accepted as if a ! newline had been typed. The default value of ccoommmmeenntt--bbeeggiinn ! makes the current line a shell comment. If a numeric argument ! causes the comment character to be removed, the line will be ! executed by the shell. dduummpp--ffuunnccttiioonnss ! Print all of the functions and their key bindings to the read- ! line output stream. If a numeric argument is supplied, the out- ! put is formatted in such a way that it can be made part of an ! _i_n_p_u_t_r_c file. dduummpp--vvaarriiaabblleess ! Print all of the settable variables and their values to the ! readline output stream. If a numeric argument is supplied, the ! output is formatted in such a way that it can be made part of an ! _i_n_p_u_t_r_c file. dduummpp--mmaaccrrooss ! Print all of the readline key sequences bound to macros and the ! strings they output. If a numeric argument is supplied, the ! output is formatted in such a way that it can be made part of an ! _i_n_p_u_t_r_c file. eemmaaccss--eeddiittiinngg--mmooddee ((CC--ee)) ! When in vvii command mode, this causes a switch to eemmaaccss editing ! mode. vvii--eeddiittiinngg--mmooddee ((MM--CC--jj)) ! When in eemmaaccss editing mode, this causes a switch to vvii editing ! mode. DDEEFFAAUULLTT KKEEYY BBIINNDDIINNGGSS ! The following is a list of the default emacs and vi bindings. Charac- ! ters with the eighth bit set are written as M-, and are ! referred to as _m_e_t_a_f_i_e_d characters. The printable ASCII characters not ! mentioned in the list of emacs standard bindings are bound to the ! sseellff--iinnsseerrtt function, which just inserts the given character into the ! input line. In vi insertion mode, all characters not specifically men- ! tioned are bound to sseellff--iinnsseerrtt. Characters assigned to signal genera- ! tion by _s_t_t_y(1) or the terminal driver, such as C-Z or C-C, retain that ! function. Upper and lower case metafied characters are bound to the ! same function in the emacs mode meta keymap. The remaining characters ! are unbound, which causes readline to ring the bell (subject to the ! setting of the bbeellll--ssttyyllee variable). EEmmaaccss MMooddee *************** *** 975,992 **** BBUUGG RREEPPOORRTTSS ! If you find a bug in rreeaaddlliinnee,, you should report it. But ! first, you should make sure that it really is a bug, and ! that it appears in the latest version of the rreeaaddlliinnee ! library that you have. ! ! Once you have determined that a bug actually exists, mail ! a bug report to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g. If you have a fix, ! you are welcome to mail that as well! Suggestions and ! `philosophical' bug reports may be mailed to _b_u_g_-_r_e_a_d_- ! _l_i_n_e@_g_n_u_._o_r_g or posted to the Usenet newsgroup ggnnuu..bbaasshh..bbuugg. ! Comments and bug reports concerning this manual page ! should be directed to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u. BBUUGGSS --- 894,909 ---- BBUUGG RREEPPOORRTTSS ! If you find a bug in rreeaaddlliinnee,, you should report it. But first, you ! should make sure that it really is a bug, and that it appears in the ! latest version of the rreeaaddlliinnee library that you have. ! ! Once you have determined that a bug actually exists, mail a bug report ! to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g. If you have a fix, you are welcome to mail ! that as well! Suggestions and `philosophical' bug reports may be ! mailed to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g or posted to the Usenet newsgroup ggnnuu..bbaasshh..bbuugg. ! Comments and bug reports concerning this manual page should be directed ! to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u. BBUUGGSS *************** *** 995,997 **** ! GNU Readline 4.3 2002 January 22 READLINE(3) --- 912,914 ---- ! GNU Readline 5.0 2004 January 28 READLINE(3) diff -aNrc2 readline-4.3-patched/doc/readline.3 readline-5.0/doc/readline.3 *** readline-4.3-patched/doc/readline.3 Tue Apr 16 17:10:30 2002 --- readline-5.0/doc/readline.3 Wed Jan 28 15:49:19 2004 *************** *** 7,13 **** .\" chet@ins.CWRU.Edu .\" ! .\" Last Change: Tue Jan 22 09:18:25 EST 2002 .\" ! .TH READLINE 3 "2002 January 22" "GNU Readline 4.3" .\" .\" File Name macro. This used to be `.PN', for Path Name, --- 7,13 ---- .\" chet@ins.CWRU.Edu .\" ! .\" Last Change: Wed Jan 28 15:43:53 EST 2004 .\" ! .TH READLINE 3 "2004 January 28" "GNU Readline 5.0" .\" .\" File Name macro. This used to be `.PN', for Path Name, *************** *** 35,40 **** .fi .SH COPYRIGHT ! .if n Readline is Copyright (C) 1989\-2002 by the Free Software Foundation, Inc. ! .if t Readline is Copyright \(co 1989\-2002 by the Free Software Foundation, Inc. .SH DESCRIPTION .LP --- 35,40 ---- .fi .SH COPYRIGHT ! .if n Readline is Copyright (C) 1989\-2004 by the Free Software Foundation, Inc. ! .if t Readline is Copyright \(co 1989\-2004 by the Free Software Foundation, Inc. .SH DESCRIPTION .LP *************** *** 466,469 **** --- 466,479 ---- matches to be listed immediately instead of ringing the bell. .TP + .B show\-all\-if\-unmodified (Off) + This alters the default behavior of the completion functions in + a fashion similar to \fBshow\-all\-if\-ambiguous\fP. + If set to + .BR on , + words which have more than one possible completion without any + possible partial completion (the possible completions don't share + a common prefix) cause the matches to be listed immediately instead + of ringing the bell. + .TP .B visible\-stats (Off) If set to \fBOn\fP, a character denoting a file's type as reported *************** *** 788,791 **** --- 798,806 ---- The killed text is saved on the kill-ring. .TP + .B unix\-filename\-rubout + Kill the word behind point, using white space and the slash character + as the word boundaries. + The killed text is saved on the kill-ring. + .TP .B delete\-horizontal\-space (M\-\e) Delete all spaces and tabs around point. *************** *** 869,873 **** of possible completions, inserting each match in turn. At the end of the list of completions, the bell is rung ! (subject to the setting of \Bbell\-style\fP) and the original text is restored. An argument of \fIn\fP moves \fIn\fP positions forward in the list --- 884,888 ---- of possible completions, inserting each match in turn. At the end of the list of completions, the bell is rung ! (subject to the setting of \fBbell\-style\fP) and the original text is restored. An argument of \fIn\fP moves \fIn\fP positions forward in the list *************** *** 980,984 **** .B dump\-macros Print all of the readline key sequences bound to macros and the ! strings they ouput. If a numeric argument is supplied, the output is formatted in such a way that it can be made part of an \fIinputrc\fP file. --- 995,999 ---- .B dump\-macros Print all of the readline key sequences bound to macros and the ! strings they output. If a numeric argument is supplied, the output is formatted in such a way that it can be made part of an \fIinputrc\fP file. diff -aNrc2 readline-4.3-patched/doc/readline.dvi readline-5.0/doc/readline.dvi *** readline-4.3-patched/doc/readline.dvi Thu Jun 27 13:54:36 2002 --- readline-5.0/doc/readline.dvi Tue Jul 27 09:31:31 2004 *************** *** 1,54 **** ! ÷ƒ’À;è TeX output 2002.06.27:1354‹ÿÿÿÿŸòŽ ƒ3* þšé‘GóBÂÖN ¼j cmbx12ëBGNU–ƧReadline“LibraryŽ‘GŸ 0‰±ž¸Ÿ šª’Ï€Úó2Kñ`y ó3 ! cmr10ÝEdition–¦f4.3,“for“ó3ßêÝ,›9and‘8©ž™š¸hŽ‘#uŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘#uŸÙš‰ffÐlŽ‘qSž™š¸iŽŽ‘"BÞÝall–8©stand“for“themselv²!es“when“seen“in“this“text,˜or“in“an“init“ le“(seeŽ¦‘GSection–¦ý1.3“[Readline“Init“File],‘ç"page“4).‘ß¡If“yš²!our“k˜eybMÞoard“lac˜ks“a“ž™š¸hŽ‘‘ÉŸù@‰ffWˆŸÀ­LFDŽŽ‘‘ÉŸÙš‰ffWˆŽ‘fÞ™š¸iŽŽ‘ ¦¢Ýk˜ey‘ÿe,‘ç"t˜yping“ž™š¸hŽ‘‘ÉŸù@‰ff ‘ÒŸÀ­C-jŽŽ‘‘ÉŸÙš‰ff ‘ÒŽ‘¡ ž™š¸iŽŽŽ¦‘GÝwill–‹OproMÞduce“the“desired“cš²!haracter.‘ÔÕThe“ž™š¸hŽ‘vŸù@‰ff,(ŸÀ­RETŽŽ‘vŸÙš‰ff,(Ž‘µž™š¸iŽŽ‘CæÝk˜ey“ma˜y“bšMÞe“lab˜eled“ž™š¸hŽ‘vŸù@‰ffëŸÀ­ReturnŽŽ‘vŸÙš‰ff뎑 xž™š¸iŽŽ‘'/©Ýor“ž™š¸hŽ‘vŸù@‰ff©­ŸÀ­EnÃŽterŽŽ‘vŸÙš‰ff©­Ž‘:ž™š¸iŽŽ‘!ÁkÝon“someŽ¦‘Gk²!eybMÞoards.ŽŸ×”‘GëT1.2‘™Readline‘f@InŒÌteractionŽŽ¤‰n‘!GÝOften–kduring“an“in•²!teractiv“e–ksession“yš²!ou“t˜ypMÞe“in“a“long“line“of“text,‘&jonly“to“notice“that“theŽ¦‘G rst–ãÒwš²!ord“on“the“line“is“misspMÞelled.‘–"The“Readline“library“giv˜es“y˜ou“a“set“of“commands“forŽ¦‘Gmanipulating–“¡the“text“as“yš²!ou“t˜ypMÞe“it“in,‘—ballo˜wing“y˜ou“to“just“ x“y˜our“t˜ypMÞo,‘—band“not“forcingŽ¦‘Gyš²!ou–`ùto“ret˜ypMÞe“the“ma‘›»jorit˜y“of“the“line.‘ƹUsing“these“editing“commands,‘nÛy˜ou“mo˜v˜e“the“cursorŽ¦‘Gto–the“place“that“needs“correction,‘;Zand“delete“or“insert“the“text“of“the“corrections.‘CZThen,Ž¦‘Gwhen–½#yš²!ou“are“satis ed“with“the“line,‘ÂÒy˜ou“simply“press“ž™š¸hŽ‘§ïŸù@‰ff,(ŸÀ­RETŽŽ‘§ïŸÙš‰ff,(Ž‘Q‰ž™š¸iŽŽ‘êkÝ.‘"Y‘ÿeou“do“not“ha˜v˜e“to“bMÞe“at“theŽ¦‘Gend–N4of“the“line“to“press“ž™š¸hŽ‘9Ÿù@‰ff,(ŸÀ­RETŽŽ‘9ŸÙš‰ff,(Ž‘âšž™š¸iŽŽ‘{|Ý;‘¢the“en²!tire“line“is“accepted“regardless“of“the“loMÞcation“of“theŽ¦‘Gcursor–¦fwithin“the“line.ŽŸ¬v‘Gó]ÂÖN  #× cmbx12ë]1.2.1‘d(Readline–íMBare“Essen–átialsŽŽ¡‘!GÝIn–Äiorder“to“enš²!ter“c˜haracters“in˜to“the“line,‘ñ›simply“t˜ypMÞe“them.‘’‰The“t˜ypMÞed“c˜haracter“appMÞearsŽ¦‘Gwhere–æNthe“cursor“wš²!as,‘öHand“then“the“cursor“mo˜v˜es“one“space“to“the“righ˜t.‘–If“y˜ou“mist˜ypMÞe“aŽ¦‘Gc•²!haracter,›¦fy“ou˜can˜use˜y“our˜erase˜c“haracter˜to˜bac“k˜up˜and˜delete˜the˜mist“ypMÞed˜c“haracter.ŽŸ‰n‘!GSometimes–³lyš²!ou“ma˜y“mist˜ypMÞe“a“c˜haracter,‘¶®and“not“notice“the“error“un˜til“y˜ou“ha˜v˜e“t˜ypMÞedŽ¦‘Gsevš²!eral–wøother“c˜haracters.‘ÎcIn“that“case,‘Ay˜ou“can“t˜ypMÞe“äC-b“Ýto“mo˜v˜e“the“cursor“to“the“left,‘AandŽ¦‘Gthen–¦fcorrect“yš²!our“mistak˜e.‘ÝÝAfterw˜ards,“y˜ou“can“mo˜v˜e“the“cursor“to“the“righ˜t“with“äC-fÝ.ŽŽŒ‹HŸò‘GÝ2’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘!GWhen–é"yš²!ou“add“text“in“the“middle“of“a“line,‘ùÑy˜ou“will“notice“that“c˜haracters“to“the“righ˜tŽ¤ 33‘Gof–q”the“cursor“are“`pushed“o•²!v“er'–q”to“makš²!e“roMÞom“for“the“text“that“y˜ou“ha˜v˜e“inserted.‘ÌBLik˜ewise,Ž¡‘Gwhen–‚ùyš²!ou“delete“text“bMÞehind“the“cursor,‘ºc˜haracters“to“the“righ˜t“of“the“cursor“are“`pulledŽ¡‘Gbacš²!k'–¹Õto“ ll“in“the“blank“space“created“b˜y“the“remo˜v‘ÿdDal“of“the“text.‘A‘¹™list“of“the“bare“essen˜tialsŽ¡‘Gfor–¦fediting“the“text“of“an“input“line“follo²!ws.ŽŸn‹‘GäC-b‘(‘õÝMo•²!v“e›¦fbac“k˜one˜c“haracter.Ž¤ZÑGäC-f‘(‘õÝMo•²!v“e›¦fforw“ard˜one˜c“haracter.Ž¡‘Gž™š¸hŽ‘üŸù@‰ff“úŸÀ­DELŽŽ‘üŸÙš‰ff“úŽ‘& ž™š¸iŽŽ‘-LÇÝor‘¦fž™š¸hŽ‘‘2Ÿù@‰ff&,ñŸÀ­BacÃŽkspaceŽŽ‘‘2ŸÙš‰ff&,ñŽ‘,;•ž™š¸iŽŽŽ© 33‘Kâ:ÝDelete–¦fthe“c²!haracter“to“the“left“of“the“cursor.Ž¡‘GäC-d‘(‘õÝDelete–¦fthe“c²!haracter“underneath“the“cursor.Ž¡‘GPrin•²!ting‘¦fc“haractersŽŽ¦‘Kâ:Insert–¦fthe“cš²!haracter“in˜to“the“line“at“the“cursor.Ž¡‘GäC-_–¦fÝor“äC-x“C-uŽ¦‘Kâ:ÝUndo–jthe“last“editing“command.‘÷éY‘ÿeou“can“undo“all“the“w•²!a“y›jbac“k˜to˜an˜empt“yŽ¦‘Kâ:line.Ž¤n‹‘G(DepMÞending– on“yš²!our“con guration,‘0¶the“ž™š¸hŽ‘ÿØŸù@‰ff&,ñŸÀ­BacÃŽkspaceŽŽ‘ÿØŸÙš‰ff&,ñŽ‘,ª;ž™š¸iŽŽ‘4X)Ýk˜ey“bMÞe“set“to“delete“the“c˜haracter“to“theŽ¦‘Gleft–ö¿of“the“cursor“and“the“ž™š¸hŽ‘á‹Ÿù@‰ff“úŸÀ­DELŽŽ‘á‹ŸÙš‰ff“úŽ‘ò÷ž™š¸iŽŽ‘‚˜Ýkš²!ey“set“to“delete“the“c˜haracter“underneath“the“cursor,‘ ! Õlik˜eŽ¦‘GäC-dÝ,–¦frather“than“the“c²!haracter“to“the“left“of“the“cursor.)ŽŸO ‘Gë]1.2.2‘d(Readline›íMMo•–áv“emen“t˜CommandsŽŽŸZÑ!GÝThe›"úabMÞo•²!v“e˜table˜describMÞes˜the˜most˜basic˜k“eystrok“es˜that˜y“ou˜need˜in˜order˜to˜do˜editingŽ¦‘Gof–Ìthe“input“line.‘«ªF‘ÿeor“yš²!our“con˜v˜enience,‘-ëman˜y“other“commands“ha˜v˜e“bMÞeen“added“in“additionŽ¦‘Gto›ÖõäC-bÝ,–ãäC-fÝ,“äC-dÝ,“and˜ž™š¸hŽ‘ÁÁŸù@‰ff“úŸÀ­DELŽŽ‘ÁÁŸÙš‰ff“úŽ‘Ó-ž™š¸iŽŽ‘lÝ.‘o‹Here˜are˜some˜commands˜for˜mo²!ving˜more˜rapidly˜abMÞout˜theŽ¦‘Gline.Ž¡‘GäC-a‘(‘õÝMo•²!v“e–¦fto“the“start“of“the“line.Ž¤ZÑGäC-e‘(‘õÝMo•²!v“e–¦fto“the“end“of“the“line.Ž¡‘GäM-f‘(‘õÝMo•²!v“e›¦fforw“ard˜a˜w“ord,˜where˜a˜w“ord˜is˜compMÞosed˜of˜letters˜and˜digits.Ž¡‘GäM-b‘(‘õÝMo•²!v“e›¦fbac“kw“ard˜a˜w“ord.Ž¡‘GäC-l‘(‘õÝClear–¦fthe“screen,“reprinš²!ting“the“curren˜t“line“at“the“top.ŽŸn‹‘!GNotice–ôKhoš²!w“äC-f“Ýmo˜v˜es“forw˜ard“a“c˜haracter,‘êwhile“äM-f“Ýmo˜v˜es“forw˜ard“a“w˜ord.‘¢It“is“a“loMÞoseŽ¦‘Gcon•²!v“en“tion–—†that“conš²!trol“k˜eystrok˜es“opMÞerate“on“c˜haracters“while“meta“k˜eystrok˜es“opMÞerate“onŽ¦‘Gw²!ords.ŽŸO ‘Gë]1.2.3‘d(Readline–íMKilling“CommandsŽŽŸZÑ!GáKilling‘lÝtext–{émeans“to“delete“the“text“from“the“line,‘±Jbut“to“sa•²!v“e–{éit“a•²!w“a“y–{éfor“later“use,Ž¦‘Gusually–Zbš²!y“áy˜anking‘rÝ(re-inserting)“it“bac˜k“in˜to“the“line.‘3¹(`Cut'“and“`paste'“are“more“recen˜tŽ¦‘Gjargon–¦ffor“`kill'“and“`y²!ank'.)ŽŸZÑ!GIf–¡°the“description“for“a“command“saš²!ys“that“it“`kills'“text,‘¢¡then“y˜ou“can“bMÞe“sure“that“y˜ouŽ¦‘Gcan–¦fget“the“text“bacš²!k“in“a“di eren˜t“(or“the“same)“place“later.ŽŽŒ‹ Ÿò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’MH3ŽŽŽ ƒ3* ý ÌÖ‘!GWhen–Ê›yš²!ou“use“a“kill“command,‘ö‘the“text“is“sa˜v˜ed“in“a“ákill-ringÝ.‘”šAn˜y“n˜um˜bMÞer“of“consecutiv˜eŽ¤ 33‘Gkills›¸$sa•²!v“e˜all˜of˜the˜killed˜text˜together,‘¼“so˜that˜when˜y“ou˜y“ank˜it˜bac“k,‘¼“y“ou˜get˜it˜all.‘TheŽ¡‘Gkill–âèring“is“not“line“spMÞeci c;‘(the“text“that“yš²!ou“killed“on“a“previously“t˜ypMÞed“line“is“a˜v‘ÿdDailableŽ¡‘Gto–¦fbMÞe“y•²!ank“ed›¦fbac“k˜later,˜when˜y“ou˜are˜t“yping˜another˜line.ŽŸó¶‘!GHere–¦fis“the“list“of“commands“for“killing“text.Ž¤´9‘GäC-k‘(‘õÝKill–¦fthe“text“from“the“curren²!t“cursor“pMÞosition“to“the“end“of“the“line.Ž¡‘GäM-d‘(‘õÝKill–)šfrom“the“cursor“to“the“end“of“the“currenš²!t“w˜ord,–Bor,“if–)šbMÞet˜w˜een“w˜ords,‘Bto“theŽ© 33‘Kâ:end–¦fof“the“next“wš²!ord.‘ÝÝW‘ÿeord“bMÞoundaries“are“the“same“as“those“used“b˜y“äM-fÝ.Ž¡‘GäM-ž™š¸hŽ‘êÌŸù@‰ff“úŸÀ­DELŽŽ‘êÌŸÙš‰ff“úŽ‘ü8ž™š¸iŽŽ‘.QŸÝKill–«ofrom“the“cursor“the“start“of“the“currenš²!t“w˜ord,–¬±or,“if–«obMÞet˜w˜een“w˜ords,‘¬±to“theŽ¦‘Kâ:start–of“the“previous“wš²!ord.‘ÁâW‘ÿeord“bMÞoundaries“are“the“same“as“those“used“b˜yŽ¦‘Kâ:äM-bÝ.Ž¡‘GäC-w‘(‘õÝKill–Àxfrom“the“cursor“to“the“previous“whitespace.‘,This“is“di eren²!t“than“äM-ž™š¸hŽ‘êÌŸù@‰ff“úŸÀ­DELŽŽ‘êÌŸÙš‰ff“úŽ‘ü8ž™š¸iŽŽŽ¦‘Kâ:ÝbšMÞecause–¦fthe“w²!ord“b˜oundaries“di er.Ž¡‘!GHere–ýáis“hoš²!w“to“áy˜ank‘§åÝthe“text“bac˜k“in˜to“the“line.‘äNY‘ÿeanking“means“to“cop˜y“the“most-Ž¦‘Grecen²!tly-killed–¦ftext“from“the“kill“bu er.Ž¡‘GäC-y‘(‘õÝY‘ÿeank–¦fthe“most“recenš²!tly“killed“text“bac˜k“in˜to“the“bu er“at“the“cursor.Ž¡‘GäM-y‘(‘õÝRotate–'!the“kill-ring,‘GPand“y²!ank“the“new“top.‘`Y‘ÿeou“can“only“do“this“if“the“priorŽ¦‘Kâ:command–¦fis“äC-y“Ýor“äM-yÝ.Ž¤A‰‘Gë]1.2.4‘d(Readline‘íMArgumen–átsŽŽŸó¶‘!GÝY‘ÿeou–‚Ücan“pass“nš²!umeric“argumen˜ts“to“Readline“commands.‘ÒSometimes“the“argumen˜t“actsŽ¦‘Gas–Ѥa“repMÞeat“counš²!t,‘sother“times“it“is“the“àsign‘¨¯Ýof“the“argumen˜t“that“is“signi can˜t.‘_–If“y˜ouŽ¦‘Gpass–a“negativš²!e“argumen˜t“to“a“command“whic˜h“normally“acts“in“a“forw˜ard“direction,‘ìthatŽ¦‘Gcommand–=Üwill“act“in“a“bac•²!kw“ard–=Üdirection.‘¤?F‘ÿeor“example,‘c¹to“kill“text“bac²!k“to“the“start“ofŽ¦‘Gthe–¦fline,“yš²!ou“migh˜t“t˜ypMÞe“`ÞM--“C-kÝ'.ŽŸó¶‘!GThe–bOgeneral“w•²!a“y–bOto“pass“nš²!umeric“argumen˜ts“to“a“command“is“to“t˜ypšMÞe“meta“digits“b˜eforeŽ¦‘Gthe–´command.‘RIf“the“ rst“`digit'“tš²!ypMÞed“is“a“min˜us“sign“(`Þ-Ý'),‘¸then“the“sign“of“the“argumen˜tŽ¦‘Gwill––ŠbMÞe“negativš²!e.‘®HOnce“y˜ou“ha˜v˜e“t˜ypMÞed“one“meta“digit“to“get“the“argumen˜t“started,‘Ò’y˜ouŽ¦‘Gcan–vòt²!ypMÞe“the“remainder“of“the“digits,›€oand“then“the“command.‘Î F‘ÿeor“example,˜to“giv²!e“the“äC-dŽ¦‘GÝcommand–~Gan“argumenš²!t“of“10,‘´?y˜ou“could“t˜ypMÞe“`ÞM-1–¦f0“C-dÝ',‘´?whic˜h–~Gwill“delete“the“next“tenŽ¦‘Gc²!haracters–¦fon“the“input“line.Ž¡‘Gë]1.2.5‘d(Searc–áhing–íMfor“Commands“in“the“HistoryŽŽŸó¶‘!GÝReadline–àTproš²!vides“commands“for“searc˜hing“through“the“command“history“for“lines“con-Ž¦‘Gtaining–¦fa“spMÞeci ed“string.‘ÝÝThere“are“t•²!w“o›¦fsearc“h˜moMÞdes:‘ÝÝáincremen“tal‘¸Ýand˜ánon-incremen“talÝ.ŽŸó¶‘!GIncremen•²!tal›¸searc“hes˜b•MÞegin˜b“efore˜the˜user˜has˜ nished˜t•²!yping˜the˜searc“h˜string.‘­£As˜eac“hŽ¦‘Gcš²!haracter–@|of“the“searc˜h“string“is“t˜ypMÞed,‘gReadline“displa˜ys“the“next“en˜try“from“the“historyŽ¦‘Gmatcš²!hing–â+the“string“t˜ypMÞed“so“far.‘œtAn“incremen˜tal“searc˜h“requires“only“as“man˜y“c˜haracters“asŽ¦‘Gneeded–tõto“ nd“the“desired“history“enš²!try–ÿe.‘ÍbT“o–tõsearc˜h“bac˜kw˜ard“in“the“history“for“a“particularŽ¦‘Gstring,‘0t•²!ypMÞe›‰cäC-rÝ.‘Ô1T“yping˜äC-s˜Ýsearc“hes˜forw“ard˜through˜the˜history‘ÿe.‘Ô1The˜c“haracters˜presen“tŽ¦‘Gin–^the“v›ÿdDalue“of“the“Þisearch-terminators“Ýv˜ariable“are“used“to“terminate“an“incremen²!talŽ¦‘Gsearc²!h.‘ƒ–If–ˆNthat“v›ÿdDariable“has“not“bMÞeen“assigned“a“v˜alue,‘ÀÈthe“ž™š¸hŽ‘sŸù@‰ff¤TŸÀ­ESCŽŽ‘sŸÙš‰ff¤TŽ‘”àž™š¸iŽŽ‘¶Ýand“äC-J“Ýc²!haracters“willŽŽŒ‹)çŸò‘GÝ4’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Gterminate–Can“incremenš²!tal“searc˜h.‘ 3täC-g“Ýwill“abMÞort“an“incremen˜tal“searc˜h“and“restore“theŽ¤ 33‘Goriginal–xÓline.‘άWhen“the“searcš²!h“is“terminated,‘ðthe“history“en˜try“con˜taining“the“searc˜h“stringŽ¡‘GbMÞecomes–¦fthe“curren²!t“line.Ž©Ù™‘!GT‘ÿeo–¹¾ nd“other“matcš²!hing“en˜tries“in“the“history“list,‘¾”t˜ypMÞe“äC-r“Ýor“äC-s“Ýas“appropriate.‘äThisŽ¡‘Gwill–#“searcš²!h“bac˜kw˜ard“or“forw˜ard“in“the“history“for“the“next“en˜try“matc˜hing“the“searc˜h“stringŽ¡‘Gtš²!ypMÞed–ˆ5so“far.‘ƒIAn˜y“other“k˜ey“sequence“bMÞound“to“a“Readline“command“will“terminate“theŽ¡‘Gsearcš²!h–‡„and“execute“that“command.‘~=F‘ÿeor“instance,‘Àäa“ž™š¸hŽ‘rPŸù@‰ff,(ŸÀ­RETŽŽ‘rPŸÙš‰ff,(Ž‘êž™š¸iŽŽ‘Ki“Ýkš²!ey“sequence“b˜y“stripping“the“eigh˜th“bit“and“pre xing“anŽ¡’…³-ž™š¸hŽ’ˆùŸù@‰ff¤TŸÀ­ESCŽŽ’ˆùŸÙš‰ff¤TŽ’˜¿¿ž™š¸iŽŽ’ jzÝc•²!haracter,‘,µcon“v“erting–Ùthem“to“a“meta-pre xed“k²!ey“sequence.Ž¡’…³-The–¦fdefault“v‘ÿdDalue“is“`ÞonÝ'.Ž¦‘Kâ:Þdisable-completionŽ¡’…³-ÝIf–gset“to“`ÞOnÝ',‘—@Readline“will“inhibit“w²!ord“completion.‘èCompletionŽ¡’…³-cš²!haracters–!Ÿwill“bMÞe“inserted“in˜to“the“line“as“if“they“had“bšMÞeen“mapp˜edŽ¡’…³-to–¦fÞself-insertÝ.‘ÝÝThe“default“is“`ÞoffÝ'.Ž¦‘Kâ:Þediting-modeŽ¡’…³-ÝThe–rÖÞediting-mode“Ýv‘ÿdDariable“conš²!trols“whic˜h“default“set“of“k˜ey“bind-Ž¡’…³-ings–?is“used.‘§%By“default,‘#Readline“starts“up“in“Emacs“editing“moMÞde,Ž¡’…³-where–~«the“k•²!eystrok“es–~«are“most“similar“to“Emacs.‘ПThis“v‘ÿdDariable“canŽ¡’…³-bMÞe–¦fset“to“either“`ÞemacsÝ'“or“`ÞviÝ'.Ž¦‘Kâ:Þenable-keypadŽ¡’…³-ÝWhen–Ìïset“to“`ÞonÝ',‘ømReadline“will“try“to“enable“the“application“k²!eypadŽ¡’…³-when–1Ûit“is“called.‘·Some“systems“need“this“to“enable“the“arroš²!w“k˜eys.Ž¡’…³-The–¦fdefault“is“`ÞoffÝ'.Ž¦‘Kâ:Þexpand-tildeŽ¡’…³-ÝIf–Pset“to“`ÞonÝ',‘a[tilde“expansion“is“pMÞerformed“when“Readline“attemptsŽ¡’…³-w²!ord–¦fcompletion.‘ÝÝThe“default“is“`ÞoffÝ'.ŽŸNN’…³-If–’Žset“to“`ÞonÝ',‘–†the“history“cošMÞde“attempts“to“place“p˜oin²!t“at“the“sameŽ¡’…³-loMÞcation–žon“eacš²!h“history“line“retriv˜ed“with“Þprevious-history“ÝorŽ¡’…³-Þnext-historyÝ.ŽŽŒ‹HYŸò‘GÝ6’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Kâ:Þhorizontal-scroll-modeŽ¤ 33’…³-ÝThis–NËv‘ÿdDariable“can“bMÞe“set“to“either“`ÞonÝ'“or“`ÞoffÝ'.‘× Setting“it“to“`ÞonÝ'Ž¡’…³-means–$jthat“the“text“of“the“lines“bMÞeing“edited“will“scroll“horizon²!tallyŽ¡’…³-on–ÎÁa“single“screen“line“when“they“are“longer“than“the“width“of“theŽ¡’…³-screen,›:Åinstead–Ýof“wrapping“on²!to“a“new“screen“line.‘±By“default,˜thisŽ¡’…³-v‘ÿdDariable–¦fis“set“to“`ÞoffÝ'.Ž©ÌÍ‘Kâ:Þinput-metaŽ¡’…³-ÝIf–¾Ìset“to“`ÞonÝ',‘ÄåReadline“will“enable“eigh²!t-bit“input“(it“will“not“clearŽ¡’…³-the–Ã"eighš²!th“bit“in“the“c˜haracters“it“reads),‘ ! Pregardless“of“what“theŽ¡’…³-terminal–ÌÖclaims“it“can“suppMÞort.›Q-The“default“v‘ÿdDalue“is“`ÞoffÝ'.˜TheŽ¡’…³-name–¦fÞmeta-flag“Ýis“a“synon²!ym“for“this“v‘ÿdDariable.Ž¦‘Kâ:Þisearch-terminatorsŽ¡’…³-ÝThe–5Ñstring“of“cš²!haracters“that“should“terminate“an“incremen˜talŽ¡’…³-searcš²!h–ú|without“subsequen˜tly“executing“the“c˜haracter“as“a“commandŽ¡’…³-(see–Z±Section“1.2.5“[Searc²!hing],‘ÇÃpage“3).‘ ú¾If“this“v‘ÿdDariable“has“notŽ¡’…³-bMÞeen–Ç„givš²!en“a“v‘ÿdDalue,‘ÏÌthe“c˜haracters“ž™š¸hŽ‘²PŸù@‰ff¤TŸÀ­ESCŽŽ‘²PŸÙš‰ff¤TŽ‘Ôž™š¸iŽŽ‘4|Ýand“äC-J“Ýwill“terminate“anŽ¡’…³-incremen•²!tal‘¦fsearc“h.Ž¦‘Kâ:Þkeymap‘R÷ÝSets–©5Readline's“idea“of“the“currenš²!t“k˜eymap“for“k˜ey“binding“com-Ž¡’…³-mands.‘ ä™Acceptable–SOÞkeymap“Ýnames“are“ÞemacsÝ,‘¾‰Þemacs-standardÝ,Ž¡’…³-Þemacs-metaÝ,– 0Þemacs-ctlxÝ,“ÞviÝ,“Þvi-moveÝ,“Þvi-commandÝ,“andŽ¡’…³-Þvi-insertÝ.‘öÚÞvi–®ºÝis“equiv›ÿdDalen²!t“to“Þvi-commandÝ;‘2äÞemacs“Ýis“equiv˜alen²!tŽ¡’…³-to–Ó¯Þemacs-standardÝ.›e¸The“default“v‘ÿdDalue“is“ÞemacsÝ.˜The“v‘ÿdDalue“of“theŽ¡’…³-Þediting-mode–¦fÝv‘ÿdDariable“also“a ects“the“default“k²!eymap.Ž¦‘Kâ:Þmark-directoriesŽ¡’…³-ÝIf––¿set“to“`ÞonÝ',‘ÒÕcompleted“directory“names“ha•²!v“e––¿a“slash“appMÞended.Ž¡’…³-The–¦fdefault“is“`ÞonÝ'.Ž¦‘Kâ:Þmark-modified-linesŽ¡’…³-ÝThis–N”v‘ÿdDariable,›xŸwhen“set“to“`ÞonÝ',˜causes“Readline“to“displa²!y“an“as-Ž¡’…³-terisk– š(`Þ*Ý')“at“the“start“of“history“lines“whicš²!h“ha˜v˜e“bšMÞeen“mo˜di ed.Ž¡’…³-This–¦fv‘ÿdDariable“is“`ÞoffÝ'“b²!y“default.Ž¦‘Kâ:Þmark-symlinked-directoriesŽ¡’…³-ÝIf–_set“to“`ÞonÝ',‘ÍÙcompleted“names“whicš²!h“are“sym˜bMÞolic“links“to“di-Ž¡’…³-rectories›|ha•²!v“e˜a˜slash˜appMÞended˜(sub‘›»ject˜to˜the˜v‘ÿdDalue˜of˜Þmark-Ž¡’…³-directoriesÝ).‘ÝÝThe–¦fdefault“is“`ÞoffÝ'.Ž¦‘Kâ:Þmatch-hidden-filesŽ¡’…³-ÝThis–«sv‘ÿdDariable,›Ý£when“set“to“`ÞonÝ',˜causes“Readline“to“matc²!h“ les“whoseŽ¡’…³-names–MÍbšMÞegin“with“a“`Þ.Ý'“(hidden“ les)“when“p˜erforming“ lenameŽ¡’…³-completion,‘R unless–ü•the“leading“`Þ.Ý'“is“supplied“b²!y“the“user“in“theŽ¡’…³- lename–¦fto“bMÞe“completed.‘ÝÝThis“v‘ÿdDariable“is“`ÞonÝ'“b²!y“default.Ž¦‘Kâ:Þoutput-metaŽ¡’…³-ÝIf–Aset“to“`ÞonÝ',‘gªReadline“will“displaš²!y“c˜haracters“with“the“eigh˜th“bitŽ¡’…³-set–`!directly“rather“than“as“a“meta-pre xed“escapMÞe“sequence.‘ TheŽ¡’…³-default–¦fis“`ÞoffÝ'.ŽŽŒ‹T+Ÿò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’MH7ŽŽŽ ƒ3* ý ÌÖ‘Kâ:Þpage-completionsŽ¤ 33’…³-ÝIf–ôset“to“`ÞonÝ',‘,×Readline“uses“an“inš²!ternal“ÞmoreÝ-lik˜e“pager“to“displa˜yŽ¡’…³-a–ã¹screenful“of“pMÞossible“completions“at“a“time.‘•ÖThis“v‘ÿdDariable“is“`ÞonÝ'Ž¡’…³-b²!y‘¦fdefault.Ž©¨©‘Kâ:Þprint-completions-horizontallyŽ¡’…³-ÝIf–àset“to“`ÞonÝ',‘»Readline“will“displaš²!y“completions“with“matc˜hes“sortedŽ¡’…³-horizonš²!tally–8Ôin“alphabMÞetical“order,‘orather“than“do˜wn“the“screen.Ž¡’…³-The–¦fdefault“is“`ÞoffÝ'.Ž¦‘Kâ:Þshow-all-if-ambiguousŽ¡’…³-ÝThis–™]alters“the“default“bMÞeha²!vior“of“the“completion“functions.‘Ù…If“setŽ¡’…³-to–L`ÞonÝ',‘^.wš²!ords“whic˜h“ha˜v˜e“more“than“one“pMÞossible“completion“causeŽ¡’…³-the–­matc²!hes“to“bšMÞe“listed“immediately“instead“of“ringing“the“b˜ell.Ž¡’…³-The–¦fdefault“v‘ÿdDalue“is“`ÞoffÝ'.Ž¦‘Kâ:Þvisible-statsŽ¡’…³-ÝIf–Ôvset“to“`ÞonÝ',‘ßúa“cš²!haracter“denoting“a“ le's“t˜ypšMÞe“is“app˜ended“to“theŽ¡’…³- lename–¦fwhen“listing“pMÞossible“completions.‘ÝÝThe“default“is“`ÞoffÝ'.Ž¦‘GKey‘¦fBindingsŽ¡‘Kâ:The– synš²!tax“for“con˜trolling“k˜ey“bindings“in“the“init“ le“is“simple.‘ First“y˜ouŽ¡‘Kâ:need–QÓto“ nd“the“name“of“the“command“that“yš²!ou“w˜an˜t“to“c˜hange.‘Á¬The“follo˜wingŽ¡‘Kâ:sections–Oconš²!tain“tables“of“the“command“name,‘yLthe“default“k˜eybinding,‘yLif“an˜y‘ÿe,Ž¡‘Kâ:and–¦fa“short“description“of“what“the“command“doMÞes.Ž©mî‘Kâ:Once–P…yš²!ou“kno˜w“the“name“of“the“command,‘{ simply“place“on“a“line“in“the“initŽ¡‘Kâ: le– the“name“of“the“kš²!ey“y˜ou“wish“to“bind“the“command“to,›$'a“colon,˜and“thenŽ¡‘Kâ:the–Ö«name“of“the“command.‘n«The“name“of“the“kš²!ey“can“bMÞe“expressed“in“di eren˜tŽ¡‘Kâ:w•²!a“ys,–¦fdepMÞending“on“what“y²!ou“ nd“most“comfortable.Ž¦‘Kâ:In–SÞaddition“to“command“names,‘“output"Ž¦’…³-ÝIn–¥3the“abšMÞo•²!v“e–¥3example,‘äåäC-u“Ýis“b˜ound“to“the“function“Þuniversal-Ž¤ 33’…³-argumentÝ,‘ÄôäM-DEL–‹¥Ýis“bMÞound“to“the“function“Þbackward-kill-wordÝ,Ž¡’…³-and–®¿äC-o“Ýis“bMÞound“to“run“the“macro“expressed“on“the“righ²!t“handŽ¡’…³-side–¦f(that“is,“to“insert“the“text“`Þ>“outputÝ'“in²!to“the“line).Ž¦’…³-A‘qn•²!um“bšMÞer–q4of“sym²!b˜olic“c²!haracter“names“are“recognized“while“pro-Ž¡’…³-cessing–Ôöthis“kš²!ey“binding“syn˜tax:‘u%áDELÝ,“áESCÝ,“áESCAPEÝ,“áLFDÝ,“áNEW-Ž¡’…³-LINEÝ,–¦fáRETÝ,“áRETURNÝ,“áRš²!UBOUTÝ,“áSP‘ÿeA˜CEÝ,“áSPCÝ,“and“áT‘ÿeABÝ.ŽŸ¨©‘Kâ:Þ"ák²!eyseq@æÞ"Ý:‘ÝÝáfunction-name‘CmÝor‘¦fámacroŽŽ¡’…³-kš²!eyseq‘ú«Ýdi ers–¹Åfrom“ák˜eyname‘VÌÝabMÞo˜v˜e“in“that“strings“denoting“an“en-Ž¡’…³-tire– hk²!ey“sequence“can“bšMÞe“sp˜eci ed,‘%èbš²!y“placing“the“k˜ey“sequence“inŽ¡’…³-double–‰ôquotes.‘ÔbSome“ãgnu“ÝEmacs“stš²!yle“k˜ey“escapšMÞes“can“b˜e“used,‘¤asŽŽŒ‹`AŸò‘GÝ8’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ’…³-in–Ãthe“folloš²!wing“example,‘(Ùbut“the“spMÞecial“c˜haracter“names“are“notŽ© 33’…³-recognized.ŽŸÃû’¢›‚Þ"\C-u":‘¿ªuniversal-argumentŽ¤ €’¢›‚"\C-x\C-r":‘¿ªre-read-init-fileŽ¡’¢›‚"\e[11~":–¿ª"Function“Key“1"ŽŸw.’…³-ÝIn–Â×the“abšMÞo•²!v“e–Â×example,‘ÉòäC-u“Ýis“again“b˜ound“to“the“functionŽ¦’…³-Þuniversal-argument–?ßÝ(just“as“it“w²!as“in“the“ rst“example),‘¦=`äC-xŽ¦’…³-C-rÝ'–ópis“bMÞound“to“the“function“Þre-read-init-fileÝ,‘F²and“`ž™š¸hŽ‘êÌŸù@‰ff¤TŸÀ­ESCŽŽ‘êÌŸÙš‰ff¤TŽ‘ ’ž™š¸iŽŽ‘KÚž™šhŽ‘6¦Ÿù@‰ff\tŸÀ­[ŽŽ‘6¦Ÿ‰ff\tŽ‘Œž™š¸iŽŽŽ¦’…³-ž™šhŽ’ˆùŸù@‰ff@ŸÀ­1ŽŽ’ˆùŸÙš‰ff@Ž’Œ[ož™š¸iŽŽ’“š·ž™šhŽ’–…ƒŸù@‰ff@ŸÀ­1ŽŽ’–…ƒŸÙš‰ff@Ž’šBùž™š¸iŽŽ’¡‚Až™šhŽ’¤m Ÿù@‰ff¿ªŸÀÞ~ŽŽ’¤m ŸÙš‰ff¿ªŽ’©ª)ž™š¸iŽŽ’­C Ý'–¦fis“bMÞound“to“insert“the“text“`ÞFunction“Key“1Ý'.Ž¤»)‘Kâ:The–’Äfolloš²!wing“ãgnu“ÝEmacs“st˜yle“escapMÞe“sequences“are“a˜v‘ÿdDailable“when“spMÞecifyingŽ¦‘Kâ:k²!ey‘¦fsequences:Ž¡‘Kâ:ä\C-‘(‘õÝcon²!trol‘¦fpre xŽ¡‘Kâ:ä\M-‘(‘õÝmeta‘¦fpre xŽ¡‘Kâ:ä\e‘.QŸÝan–¦fescapMÞe“c²!haracterŽ¡‘Kâ:ä\\‘.QŸÝbac²!kslashŽ¡‘Kâ:ä\Þ"‘.QŸž™š¸hŽ‘1)Ž¡‘Kâ:ÝMo•²!v“e–¦fto“the“end“of“the“input“history‘ÿe,“i.e.,“the“line“currenš²!tly“bMÞeing“en˜tered.Ž¦‘GÞreverse-search-history‘¦f(C-r)Ž¡‘Kâ:ÝSearc•²!h›½:bac“kw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`up'˜through˜the˜his-Ž¡‘Kâ:tory–¦fas“necessary‘ÿe.‘ÝÝThis“is“an“incremenš²!tal“searc˜h.Ž¦‘GÞforward-search-history‘¦f(C-s)Ž¡‘Kâ:ÝSearc•²!h›‰÷forw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`do“wn'˜through˜the˜theŽ¡‘Kâ:history–¦fas“necessary‘ÿe.‘ÝÝThis“is“an“incremenš²!tal“searc˜h.Ž¦‘GÞnon-incremental-reverse-search-history‘¦f(M-p)Ž¡‘Kâ:ÝSearc•²!h›½:bac“kw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`up'˜through˜the˜his-Ž¡‘Kâ:tory–Ryas“necessary“using“a“non-incremenš²!tal“searc˜h“for“a“string“supplied“b˜y“theŽ¡‘Kâ:user.Ž¦‘GÞnon-incremental-forward-search-history‘¦f(M-n)Ž¡‘Kâ:ÝSearc•²!h›‰÷forw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`do“wn'˜through˜the˜theŽ¡‘Kâ:history–3ªas“necessary“using“a“non-incremenš²!tal“searc˜h“for“a“string“supplied“b˜y“theŽ¡‘Kâ:user.Ž¦‘GÞhistory-search-forward‘¦f()Ž¡‘Kâ:ÝSearc•²!h›úOforw“ard˜through˜the˜history˜for˜the˜string˜of˜c“haracters˜bMÞet“w“een˜theŽ¡‘Kâ:start–7®of“the“currenš²!t“line“and“the“pMÞoin˜t.‘‘¶This“is“a“non-incremen˜tal“searc˜h.‘‘¶ByŽ¡‘Kâ:default,–¦fthis“command“is“un²!bMÞound.Ž¦‘GÞhistory-search-backward‘¦f()Ž¡‘Kâ:ÝSearc•²!h›-»bac“kw“ard˜through˜the˜history˜for˜the˜string˜of˜c“haracters˜bMÞet“w“een˜theŽ¡‘Kâ:start–7®of“the“currenš²!t“line“and“the“pMÞoin˜t.‘‘¶This“is“a“non-incremen˜tal“searc˜h.‘‘¶ByŽ¡‘Kâ:default,–¦fthis“command“is“un²!bMÞound.Ž¦‘GÞyank-nth-arg‘¦f(M-C-y)Ž¡‘Kâ:ÝInsert–@the“ rst“argumenš²!t“to“the“previous“command“(usually“the“second“w˜ord“onŽ¡‘Kâ:the–˜Gprevious“line)“at“pMÞoinš²!t.‘Ù(With“an“argumen˜t“ánÝ,‘›insert“the“ánÝth“w˜ord“from“theŽ¡‘Kâ:previous–<command“(the“wš²!ords“in“the“previous“command“bMÞegin“with“w˜ord“0).‘ºhAŽ¡‘Kâ:negativ•²!e›Þargumen“t˜inserts˜the˜ánÝth˜w“ord˜from˜the˜end˜of˜the˜previous˜command.Ž¦‘GÞyank-last-arg–¦f(M-.“or“M-_)Ž¡‘Kâ:ÝInsert–5Elast“argumenš²!t“to“the“previous“command“(the“last“w˜ord“of“the“previousŽ¡‘Kâ:history–¬fenš²!try).‘ïÜWith“an“argumen˜t,‘­æbMÞeha˜v˜e“exactly“lik˜e“Þyank-nth-argÝ.‘ïÜSucces-Ž¡‘Kâ:sivš²!e–&—calls“to“Þyank-last-arg“Ýmo˜v˜e“bac˜k“through“the“history“list,‘F£inserting“theŽ¡‘Kâ:last–¦fargumenš²!t“of“eac˜h“line“in“turn.ŽŽŒ‹—±Ÿò‘GÝ14’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Gë]1.4.3‘d(Commands–íMF›þÄ£or“Changing“T˜extŽŽŸ ê‘GÞdelete-char‘¦f(C-d)Ž¤ 33‘Kâ:ÝDelete–«¤the“cš²!haracter“at“pMÞoin˜t.‘í–If“pMÞoin˜t“is“at“the“bMÞeginning“of“the“line,‘ìóthereŽ¡‘Kâ:are–rÝno“cš²!haracters“in“the“line,‘¥ûand“the“last“c˜haracter“t˜ypMÞed“w˜as“not“bMÞound“toŽ¡‘Kâ:Þdelete-charÝ,–¦fthen“return“ãeofÝ.Ž©m·‘GÞbackward-delete-char‘¦f(Rubout)Ž¡‘Kâ:ÝDelete–Ÿ§the“cš²!haracter“bMÞehind“the“cursor.‘ÛA‘Ÿ¥n˜umeric“argumen˜t“means“to“kill“theŽ¡‘Kâ:c²!haracters–¦finstead“of“deleting“them.Ž¦‘GÞforward-backward-delete-char‘¦f()Ž¡‘Kâ:ÝDelete–˜‘the“c²!haracter“under“the“cursor,‘Õunless“the“cursor“is“at“the“end“of“theŽ¡‘Kâ:line,‘×~in–Í­whicš²!h“case“the“c˜haracter“bMÞehind“the“cursor“is“deleted.‘S±By“default,‘×~thisŽ¡‘Kâ:is–¦fnot“bMÞound“to“a“k²!ey‘ÿe.Ž¦‘GÞquoted-insert–¦f(C-q“or“C-v)Ž¡‘Kâ:ÝAdd–¸the“next“cš²!haracter“t˜ypMÞed“to“the“line“v˜erbatim.‘CÔThis“is“ho˜w“to“insert“k˜eyŽ¡‘Kâ:sequences–¦flik²!e“äC-qÝ,“for“example.Ž¦‘GÞtab-insert‘¦f(M-ž™š¸hŽ‘êÌŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘êÌŸÙš‰ffÐlŽ‘8ªž™š¸iŽŽ‘ÑŒÞ)Ž¡‘Kâ:ÝInsert–¦fa“tab“c²!haracter.Ž¦‘GÞself-insert–¦f(a,“b,“A,“1,“!,“...Ž‘åe)Ž¡‘Kâ:ÝInsert‘¦fy²!ourself.Ž¦‘GÞtranspose-chars‘¦f(C-t)Ž¡‘Kâ:ÝDrag–Õãthe“cš²!haracter“bMÞefore“the“cursor“forw˜ard“o˜v˜er“the“c˜haracter“at“the“cursor,Ž¡‘Kâ:moš²!ving–C"the“cursor“forw˜ard“as“w˜ell.‘´If“the“insertion“pMÞoin˜t“is“at“the“end“of“theŽ¡‘Kâ:line,‘ÕÍthen–¡¦this“transpMÞoses“the“last“t•²!w“o›¡¦c“haracters˜of˜the˜line.‘†óNegativ“e˜argumen“tsŽ¡‘Kâ:ha•²!v“e–¦fno“e ect.Ž¦‘GÞtranspose-words‘¦f(M-t)Ž¡‘Kâ:ÝDrag–áÜthe“w²!ord“bšMÞefore“p˜oinš²!t“past“the“w˜ord“after“pMÞoin˜t,‘ðºmo˜ving“pMÞoin˜t“past“thatŽ¡‘Kâ:wš²!ord–g¸as“w˜ell.‘ÈøIf“the“insertion“pMÞoin˜t“is“at“the“end“of“the“line,‘tAthis“transpMÞoses“theŽ¡‘Kâ:last›¦ft•²!w“o˜w“ords˜on˜the˜line.Ž¦‘GÞupcase-word‘¦f(M-u)Ž¡‘Kâ:ÝUppMÞercase–ÖÓthe“currenš²!t“(or“follo˜wing)“w˜ord.‘o#With“a“negativ˜e“argumen˜t,‘âîuppMÞer-Ž¡‘Kâ:case–¦fthe“previous“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.Ž¦‘GÞdowncase-word‘¦f(M-l)Ž¡‘Kâ:ÝLo•²!w“ercase–”ãthe“currenš²!t“(or“follo˜wing)“w˜ord.‘‚²With“a“negativ˜e“argumen˜t,‘Ë–lo˜w˜ercaseŽ¡‘Kâ:the–¦fprevious“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.Ž¦‘GÞcapitalize-word‘¦f(M-c)Ž¡‘Kâ:ÝCapitalize–6the“currenš²!t“(or“follo˜wing)“w˜ord.‘€#With“a“negativ˜e“argumen˜t,‘ÅrcapitalizeŽ¡‘Kâ:the–¦fprevious“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.ŽŽŒ‹¢kŸò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®15ŽŽŽ ƒ3* ý ÌÖ‘GÞoverwrite-mode‘¦f()Ž¤ 33‘Kâ:ÝT‘ÿeoggle›öo•²!v“erwrite˜mo•MÞde.‘Í With˜an˜explicit˜p“ositiv•²!e˜n“umeric˜argumen“t,‘ ! switc“hesŽ¡‘Kâ:to›™ÿo•²!v“erwrite˜mo•MÞde.‘„fWith˜an˜explicit˜non-p“ositiv•²!e˜n“umeric˜argumen“t,‘Ï®switc“hes˜toŽ¡‘Kâ:insert–¬ÛmošMÞde.‘ñ=This“command“a ects“only“Þemacs“Ýmo˜de;‘°Þvi“Ýmo˜de“do˜es“o•²!v“erwriteŽ¡‘Kâ:di eren•²!tly‘ÿe.‘ÝÝEac“h–¦fcall“to“Þreadline()“Ýstarts“in“insert“moMÞde.Ž©Yé‘Kâ:In›Ço•²!v“erwrite˜moMÞde,‘‰c“haracters˜b•MÞound˜to˜Þself-insert˜Ýreplace˜the˜text˜at˜p“oin²!tŽ¡‘Kâ:rather–þîthan“pushing“the“text“to“the“righ²!t.‘çtCharacters“bMÞound“to“Þbackward-Ž¡‘Kâ:delete-char–¦fÝreplace“the“c²!haracter“bšMÞefore“p˜oin²!t“with“a“space.Ž¦‘Kâ:By–¦fdefault,“this“command“is“un²!bMÞound.ŽŸšÙ‘Gë]1.4.4‘d(Killing–íMAnd“Y‘þÄ£ankingŽŽŸôÑGÞkill-line‘¦f(C-k)Ž¡‘Kâ:ÝKill–¦fthe“text“from“pMÞoin²!t“to“the“end“of“the“line.Ž©§U‘GÞbackward-kill-line–¦f(C-x“Rubout)Ž¡‘Kâ:ÝKill›¦fbac•²!kw“ard˜to˜the˜bMÞeginning˜of˜the˜line.Ž¦‘GÞunix-line-discard‘¦f(C-u)Ž¡‘Kâ:ÝKill›¦fbac•²!kw“ard˜from˜the˜cursor˜to˜the˜bMÞeginning˜of˜the˜curren“t˜line.Ž¦‘GÞkill-whole-line‘¦f()Ž¡‘Kâ:ÝKill–cjall“cš²!haracters“on“the“curren˜t“line,‘’ªno“matter“where“pMÞoin˜t“is.‘èBy“default,Ž¡‘Kâ:this–¦fis“un²!bMÞound.Ž¦‘GÞkill-word‘¦f(M-d)Ž¡‘Kâ:ÝKill–‡ from“pMÞoinš²!t“to“the“end“of“the“curren˜t“w˜ord,‘Qor“if“bMÞet˜w˜een“w˜ords,‘Qto“the“endŽ¡‘Kâ:of–¦fthe“next“w²!ord.‘ÝÝW‘ÿeord“bMÞoundaries“are“the“same“as“Þforward-wordÝ.Ž¦‘GÞbackward-kill-word‘¦f(M-ž™š¸hŽ‘êÌŸù@‰ff“úŸÀ­DELŽŽ‘êÌŸÙš‰ff“úŽ‘ü8ž™š¸iŽŽ‘•Þ)Ž¡‘Kâ:ÝKill–wÖthe“w²!ord“bšMÞehind“p˜oin²!t.‘ÎXW‘ÿeord“b˜oundaries“are“the“same“as“Þbackward-wordÝ.Ž¦‘GÞunix-word-rubout‘¦f(C-w)Ž¡‘Kâ:ÝKill–ÍLthe“w²!ord“bšMÞehind“p˜oinš²!t,‘×using“white“space“as“a“w˜ord“bMÞoundary‘ÿe.‘RThe“killedŽ¡‘Kâ:text–¦fis“sa•²!v“ed–¦fon“the“kill-ring.Ž¦‘GÞdelete-horizontal-space‘¦f()Ž¡‘Kâ:ÝDelete–¦fall“spaces“and“tabs“around“pMÞoinš²!t.‘ÝÝBy“default,“this“is“un˜bMÞound.Ž¦‘GÞkill-region‘¦f()Ž¡‘Kâ:ÝKill–¦fthe“text“in“the“currenš²!t“region.‘ÝÝBy“default,“this“command“is“un˜bMÞound.Ž¦‘GÞcopy-region-as-kill‘¦f()Ž¡‘Kâ:ÝCopš²!y–³the“text“in“the“region“to“the“kill“bu er,‘0Eso“it“can“bMÞe“y˜ank˜ed“righ˜t“a˜w˜a˜y‘ÿe.Ž¡‘Kâ:By–¦fdefault,“this“command“is“un²!bMÞound.Ž¦‘GÞcopy-backward-word‘¦f()Ž¡‘Kâ:ÝCopš²!y–žthe“w˜ord“bšMÞefore“p˜oinš²!t“to“the“kill“bu er.‘ÄÿThe“w˜ord“bMÞoundaries“are“theŽ¡‘Kâ:same–¦fas“Þbackward-wordÝ.‘ÝÝBy“default,“this“command“is“un²!bMÞound.ŽŽŒ‹¬Ÿò‘GÝ16’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘GÞcopy-forward-word‘¦f()Ž¤ 33‘Kâ:ÝCopš²!y–º8the“w˜ord“follo˜wing“pMÞoin˜t“to“the“kill“bu er.‘SThe“w˜ord“bMÞoundaries“are“theŽ¡‘Kâ:same–¦fas“Þforward-wordÝ.‘ÝÝBy“default,“this“command“is“un²!bMÞound.Ž©{‘GÞyank‘¦f(C-y)Ž¡‘Kâ:ÝY‘ÿeank–¦fthe“top“of“the“kill“ring“inš²!to“the“bu er“at“pMÞoin˜t.Ž¦‘GÞyank-pop‘¦f(M-y)Ž¡‘Kâ:ÝRotate–'!the“kill-ring,‘GPand“y²!ank“the“new“top.‘`Y‘ÿeou“can“only“do“this“if“the“priorŽ¡‘Kâ:command–¦fis“Þyank“Ýor“Þyank-popÝ.ŽŸáG‘Gë]1.4.5‘d(Spiecifying–íMNumeric“Argumen–átsŽŽŸ{‘GÞdigit-argument–¦f(äM-0Þ,“äM-1Þ,“...Ž‘‹ËäM--Þ)Ž¡‘Kâ:ÝAdd–:Lthis“digit“to“the“argumenš²!t“already“accum˜ulating,‘Oëor“start“a“new“argumen˜t.Ž¡‘Kâ:äM--–¦fÝstarts“a“negativš²!e“argumen˜t.Ž¦‘GÞuniversal-argument‘¦f()Ž¡‘Kâ:ÝThis–kis“another“w•²!a“y–kto“spMÞecify“an“argumenš²!t.‘«ßIf“this“command“is“follo˜w˜ed“b˜y“oneŽ¡‘Kâ:or–more“digits,›“³optionally“with“a“leading“min²!us“sign,˜those“digits“de ne“the“ar-Ž¡‘Kâ:gumenš²!t.‘ÐÚIf–\the“command“is“follo˜w˜ed“b˜y“digits,‘‡+executing“Þuniversal-argumentŽ¡‘Kâ:Ýagain–Ñ«ends“the“nš²!umeric“argumen˜t,‘Ü|but“is“otherwise“ignored.‘_«As“a“spMÞecial“case,Ž¡‘Kâ:if–ñúthis“command“is“immediately“follo•²!w“ed›ñúb“y˜a˜c“haracter˜that˜is˜neither˜a˜digitŽ¡‘Kâ:or–Zwminš²!us“sign,‘i§the“argumen˜t“coun˜t“for“the“next“command“is“m˜ultiplied“b˜y“four.Ž¡‘Kâ:The–{targumenš²!t“coun˜t“is“initially“one,‘°¸so“executing“this“function“the“ rst“timeŽ¡‘Kâ:makš²!es–Ï2the“argumen˜t“coun˜t“four,‘Ùea“second“time“mak˜es“the“argumen˜t“coun˜t“six-Ž¡‘Kâ:teen,–¦fand“so“on.‘ÝÝBy“default,“this“is“not“bMÞound“to“a“k²!ey‘ÿe.ŽŸáG‘Gë]1.4.6‘d(Letting–íMReadline“T–áypie“F›þÄ£or“Y˜ouŽŽŸ{‘GÞcomplete‘¦f(ž™š¸hŽ‘êÌŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘êÌŸÙš‰ffÐlŽ‘8ªž™š¸iŽŽ‘ÑŒÞ)Ž¡‘Kâ:ÝA²!ttempt–¶èto“pšMÞerform“completion“on“the“text“b˜efore“p˜oin²!t.‘ŽThe“actual“completionŽ¡‘Kâ:pšMÞerformed–¦fis“application-sp˜eci c.‘ÝÝThe“default“is“ lename“completion.Ž¦‘GÞpossible-completions‘¦f(M-?)Ž¡‘Kâ:ÝList–¦fthe“pšMÞossible“completions“of“the“text“b˜efore“p˜oin²!t.Ž¦‘GÞinsert-completions‘¦f(M-*)Ž¡‘Kâ:ÝInsert–«µall“completions“of“the“text“bšMÞefore“p˜oinš²!t“that“w˜ould“ha˜v˜e“bMÞeen“generatedŽ¡‘Kâ:b²!y‘¦fÞpossible-completionsÝ.Ž¦‘GÞmenu-complete‘¦f()Ž¡‘Kâ:ÝSimilar–ÛVto“ÞcompleteÝ,‘óbut“replaces“the“wš²!ord“to“bMÞe“completed“with“a“single“matc˜hŽ¡‘Kâ:from–‹æthe“list“of“pšMÞossible“completions.‘Ž^Rep˜eated“execution“of“Þmenu-completeŽ¡‘Kâ:Ýsteps–Õ¯through“the“list“of“pMÞossible“completions,‘!inserting“eacš²!h“matc˜h“in“turn.Ž¡‘Kâ:A²!t–jthe“end“of“the“list“of“completions,‘›šthe“bMÞell“is“rung“(sub‘›»ject“to“the“settingŽ¡‘Kâ:of–ThÞbell-styleÝ)“and“the“original“text“is“restored.‘çãAn“argumenš²!t“of“án“Ýmo˜v˜es“ánŽ¡‘Kâ:ÝpMÞositions–,Rforwš²!ard“in“the“list“of“matc˜hes;‘oGa“negativ˜e“argumen˜t“ma˜y“bMÞe“used“toŽ¡‘Kâ:mo•²!v“e›™Žbac“kw“ard˜through˜the˜list.‘·UThis˜command˜is˜in“tended˜to˜b•MÞe˜b“ound˜toŽ¡‘Kâ:ž™š¸hŽ‘NÍŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘NÍŸÙš‰ffÐlŽ‘`äž™š¸iŽŽ‘c³ÆÝ,–¦fbut“is“unš²!bMÞound“b˜y“default.ŽŽŒ‹·Ÿò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®17ŽŽŽ ƒ3* ý ÌÖ‘GÞdelete-char-or-list‘¦f()Ž¤ 33‘Kâ:ÝDeletes–9{the“c²!haracter“under“the“cursor“if“not“at“the“bMÞeginning“or“end“of“the“lineŽ¡‘Kâ:(likš²!e–~±Þdelete-charÝ).‘СIf“at“the“end“of“the“line,‘†¢bMÞeha˜v˜es“iden˜tically“to“Þpossible-Ž¡‘Kâ:completionsÝ.‘ÝÝThis–¦fcommand“is“unš²!bMÞound“b˜y“default.ŽŸh­‘Gë]1.4.7‘d(Keybioard‘íMMacrosŽŽŸ¶ ! ‘GÞstart-kbd-macro–¦f(C-x“()Ž¡‘Kâ:ÝBegin–¦fsaš²!ving“the“c˜haracters“t˜ypMÞed“in˜to“the“curren˜t“k˜eybMÞoard“macro.Ž©´‘GÞend-kbd-macro–¦f(C-x“))Ž¡‘Kâ:ÝStop–G!saš²!ving“the“c˜haracters“t˜ypMÞed“in˜to“the“curren˜t“k˜eybMÞoard“macro“and“sa˜v˜e“theŽ¡‘Kâ:de nition.Ž¦‘GÞcall-last-kbd-macro–¦f(C-x“e)Ž¡‘Kâ:ÝRe-execute–9Bthe“last“kš²!eybMÞoard“macro“de ned,‘]ùb˜y“making“the“c˜haracters“in“theŽ¡‘Kâ:macro–¦fappšMÞear“as“if“t²!yp˜ed“at“the“k²!eyb˜oard.ŽŸh­‘Gë]1.4.8‘d(Some–íMMiscellaneous“CommandsŽŽŸ¶ ! ‘GÞre-read-init-file–¦f(C-x“C-r)Ž¡‘Kâ:ÝRead– kin“the“con•²!ten“ts– kof“the“áinputrc‘JoÝ le,‘ÔÐand“incorpMÞorate“an²!y“bindings“or“v‘ÿdDariableŽ¡‘Kâ:assignmen²!ts–¦ffound“there.Ž¦‘GÞabort‘¦f(C-g)Ž¡‘Kâ:ÝAbšMÞort–/the“curren²!t“editing“command“and“ring“the“terminal's“b˜ell“(sub‘›»ject“to“theŽ¡‘Kâ:setting–¦fof“Þbell-styleÝ).Ž¦‘GÞdo-uppercase-version–¦f(M-a,“M-b,“M-áxÞ,“...Ž‘åe)Ž¡‘Kâ:ÝIf–Qõthe“meta ed“cš²!haracter“áx‘TÝis“lo˜w˜ercase,‘bØrun“the“command“that“is“bMÞound“to“theŽ¡‘Kâ:corresp•MÞonding›¦fupp“ercase˜c²!haracter.Ž¦‘GÞprefix-meta‘¦f(ž™š¸hŽ‘êÌŸù@‰ff¤TŸÀ­ESCŽŽ‘êÌŸÙš‰ff¤TŽ‘ ’ž™š¸iŽŽ‘¥tÞ)Ž¡‘Kâ:ÝMetafy–‚2the“next“cš²!haracter“t˜ypMÞed.‘q@This“is“for“k˜eybMÞoards“without“a“meta“k˜ey‘ÿe.Ž¡‘Kâ:Tš²!yping–¦f`ž™š¸hŽ‘êÌŸù@‰ff¤TŸÀ­ESCŽŽ‘êÌŸÙš‰ff¤TŽ‘ ’ž™š¸iŽŽ‘KÚÞfÝ'“is“equiv‘ÿdDalen˜t“to“t˜yping“äM-fÝ.Ž¦‘GÞundo–¦f(C-_“or“C-x“C-u)Ž¡‘Kâ:ÝIncremenš²!tal–¦fundo,“separately“remem˜bMÞered“for“eac˜h“line.Ž¦‘GÞrevert-line‘¦f(M-r)Ž¡‘Kâ:ÝUndo–úall“cš²!hanges“made“to“this“line.‘ØäThis“is“lik˜e“executing“the“Þundo“ÝcommandŽ¡‘Kâ:enough–¦ftimes“to“get“bac²!k“to“the“bMÞeginning.Ž¦‘GÞtilde-expand‘¦f(M-~)Ž¡‘Kâ:ÝPš²!erform–¦ftilde“expansion“on“the“curren˜t“w˜ord.Ž¦‘GÞset-mark‘¦f(C-@)Ž¡‘Kâ:ÝSet–ðthe“mark“to“the“pMÞoinš²!t.‘ºØIf“a“n˜umeric“argumen˜t“is“supplied,‘ythe“mark“is“setŽ¡‘Kâ:to–¦fthat“pMÞosition.ŽŽŒ‹æŸò‘GÝ18’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘GÞexchange-point-and-mark–¦f(C-x“C-x)Ž¤ 33‘Kâ:ÝSwš²!ap–¾Òthe“pMÞoin˜t“with“the“mark.‘'!The“curren˜t“cursor“pMÞosition“is“set“to“the“sa˜v˜edŽ¡‘Kâ:pšMÞosition,–¦fand“the“old“cursor“p˜osition“is“sa•²!v“ed–¦fas“the“mark.Ž©Æ‘GÞcharacter-search‘¦f(C-])Ž¡‘Kâ:ÝA‘ü&cš²!haracter–üQis“read“and“pMÞoin˜t“is“mo˜v˜ed“to“the“next“oMÞccurrence“of“that“c˜haracter.Ž¡‘Kâ:A–¦fnegativš²!e“coun˜t“searc˜hes“for“previous“oMÞccurrences.Ž¦‘GÞcharacter-search-backward‘¦f(M-C-])Ž¡‘Kâ:ÝA‘c"cš²!haracter–c•is“read“and“pMÞoin˜t“is“mo˜v˜ed“to“the“previous“oMÞccurrence“of“thatŽ¡‘Kâ:c•²!haracter.‘ÝÝA›¦fnegativ“e˜coun“t˜searc“hes˜for˜subsequen“t˜oMÞccurrences.Ž¦‘GÞinsert-comment‘¦f(M-#)Ž¡‘Kâ:ÝWithout–GÑa“nš²!umeric“argumen˜t,‘p+the“v›ÿdDalue“of“the“Þcomment-begin“Ýv˜ariable“is“in-Ž¡‘Kâ:serted–Ìèat“the“bMÞeginning“of“the“currenš²!t“line.‘QdIf“a“n˜umeric“argumen˜t“is“supplied,Ž¡‘Kâ:this–cøcommand“acts“as“a“toggle:‘Yif“the“c²!haracters“at“the“bMÞeginning“of“the“lineŽ¡‘Kâ:do–¬Ânot“matc²!h“the“v›ÿdDalue“of“Þcomment-beginÝ,‘®Ythe“v˜alue“is“inserted,‘®Yotherwise“theŽ¡‘Kâ:c²!haracters–Ó6in“Þcomment-begin“Ýare“deleted“from“the“bMÞeginning“of“the“line.‘dMInŽ¡‘Kâ:either–¦fcase,“the“line“is“accepted“as“if“a“newline“had“bšMÞeen“t²!yp˜ed.Ž¦‘GÞdump-functions‘¦f()Ž¡‘Kâ:ÝPrinš²!t–,Qall“of“the“functions“and“their“k˜ey“bindings“to“the“Readline“output“stream.Ž¡‘Kâ:If–Îïa“nš²!umeric“argumen˜t“is“supplied,‘Ùthe“output“is“formatted“in“suc˜h“a“w˜a˜y“thatŽ¡‘Kâ:it–¦fcan“bšMÞe“made“part“of“an“áinputrc‘PjÝ le.‘ÝÝThis“command“is“un²!b˜ound“b²!y“default.Ž¦‘GÞdump-variables‘¦f()Ž¡‘Kâ:ÝPrin²!t–ŽÉall“of“the“settable“v›ÿdDariables“and“their“v˜alues“to“the“Readline“output“stream.Ž¡‘Kâ:If–Îïa“nš²!umeric“argumen˜t“is“supplied,‘Ùthe“output“is“formatted“in“suc˜h“a“w˜a˜y“thatŽ¡‘Kâ:it–¦fcan“bšMÞe“made“part“of“an“áinputrc‘PjÝ le.‘ÝÝThis“command“is“un²!b˜ound“b²!y“default.Ž¦‘GÞdump-macros‘¦f()Ž¡‘Kâ:ÝPrinš²!t– ˆall“of“the“Readline“k˜ey“sequences“bMÞound“to“macros“and“the“strings“theyŽ¡‘Kâ:output.‘rŠIf–-Ja“nš²!umeric“argumen˜t“is“supplied,‘Othe“output“is“formatted“in“suc˜h“aŽ¡‘Kâ:w•²!a“y–šthat“it“can“bšMÞe“made“part“of“an“áinputrc‘DÝ le.‘ÙÃThis“command“is“un²!b˜ound“b²!yŽ¡‘Kâ:default.Ž¦‘GÞemacs-editing-mode‘¦f(C-e)Ž¡‘Kâ:ÝWhen–¦fin“Þvi“Ýcommand“mošMÞde,“this“causes“a“switc²!h“to“Þemacs“Ýediting“mo˜de.Ž¦‘GÞvi-editing-mode‘¦f(M-C-j)Ž¡‘Kâ:ÝWhen–¦fin“Þemacs“Ýediting“mošMÞde,“this“causes“a“switc²!h“to“Þvi“Ýediting“mo˜de.ŽŸ씑GëT1.5‘™Readline–f@vi“Mos3deŽŽŸ×d‘!GÝWhile–×Uthe“Readline“library“došMÞes“not“ha•²!v“e–×Ua“full“set“of“Þvi“Ýediting“functions,‘¿it“do˜es“con²!tainŽ¡‘Genough–to“allo²!w“simple“editing“of“the“line.‘.ƒThe“Readline“Þvi“ÝmošMÞde“b˜eha•²!v“es–as“sp˜eci ed“inŽ¡‘Gthe–¦fãposix“Ý1003.2“standard.ŽŸ×d‘!GIn–|Uorder“to“switcš²!h“in˜teractiv˜ely“bMÞet˜w˜een“Þemacs“Ýand“Þvi“Ýediting“moMÞdes,‘„¿use“the“commandŽ¡‘GäM-C-j–iÝ(bšMÞound“to“emacs-editing-mo˜de“when“in“Þvi“Ýmo˜de“and“to“vi-editing-mo˜de“in“ÞemacsŽ¡‘GÝmošMÞde).‘ÝÝThe–¦fReadline“default“is“Þemacs“Ýmo˜de.ŽŽŒ‹Í,Ÿò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®19ŽŽŽ ƒ3* ý ÌÖ‘!GWhen–›‰yš²!ou“en˜ter“a“line“in“Þvi“ÝmoMÞde,‘µy˜ou“are“already“placed“in“`insertion'“moMÞde,‘µas“if“y˜ouŽ¤ 33‘Ghad–&Gtš²!ypMÞed“an“`ÞiÝ'.‘³(Pressing“ž™š¸hŽ‘Ÿù@‰ff¤TŸÀ­ESCŽŽ‘ŸÙš‰ff¤TŽ‘2Ùž™š¸iŽŽ‘òÝswitc˜hes“y˜ou“in˜to“`command'“moMÞde,‘?çwhere“y˜ou“can“edit“theŽ¡‘Gtext–of“the“line“with“the“standard“Þvi“Ýmo•²!v“emen“t›k“eys,‘)–‡Ýin“an²!y“ le“that“uses“Readline's“features.‘û?Since“some“of“the“de -Ž¡‘Gnitions–¾„in“Þreadline.h“Ýuse“the“Þstdio“Ýlibrary‘ÿe,‘ÄŒthe“ le“Þ“Ýshould“bšMÞe“included“b˜eforeŽ¡‘GÞreadline.hÝ.Ž¦‘!GÞreadline.h–¬2Ýde nes“a“C‘¬1preprošMÞcessor“v‘ÿdDariable“that“should“b˜e“treated“as“an“in²!teger,‘­¥ÞRL_Ž¡‘GREADLINE_VERSIONÝ,‘Ûwhic•²!h›¨(ma“y˜b•MÞe˜used˜to˜conditionally˜compile˜application˜co“de˜dep“endingŽ¡‘Gon–4üthe“installed“Readline“v²!ersion.‘‰ The“v‘ÿdDalue“is“a“hexadecimal“encoMÞding“of“the“ma‘›»jor“andŽ¡‘Gminor–Rvš²!ersion“n˜um˜bMÞers“of“the“library‘ÿe,‘8Œof“the“form“0xáMMmmÝ.‘< áMM‘JâÝis“the“t˜w˜o-digit“ma‘›»jorŽ¡‘Gv•²!ersion›z.n“um“bMÞer;‘ˆëámm˜Ýis˜the˜t“w“o-digit˜minor˜v“ersion˜n“um“bMÞer.‘Ï F‘ÿeor˜Readline˜4.2,‘ƒfor˜example,Ž¡‘Gthe–¦fv‘ÿdDalue“of“ÞRL_READLINE_VERSION“Ýw²!ould“bMÞe“Þ0x0402Ý.ŽŽŒ‹è‚Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—23ŽŽŽ ƒ3* ý ÌÖ‘Gë]2.2.1‘d(Readline‘íMT–áypiedefsŽŽŸ‘!GÝF–ÿeor›¦freadabilt²!y“,˜w•²!e˜declare˜a˜n“um“bMÞer˜of˜new˜ob‘›»ject˜t“yp•MÞes,˜all˜p“oin²!ters˜to˜functions.Ž¤‘!GThe–IÖreason“for“declaring“these“new“tš²!ypMÞes“is“to“mak˜e“it“easier“to“write“coMÞde“describingŽ© 33‘GpMÞoinš²!ters–¦fto“C“functions“with“appropriately“protot˜ypMÞed“argumen˜ts“and“return“v‘ÿdDalues.Ž¡‘!GF‘ÿeor–m½instance,‘Ÿ“saš²!y“w˜e“w˜an˜t“to“declare“a“v‘ÿdDariable“áfunc‘ÁÝas“a“pMÞoin˜ter“to“a“function“whic˜hŽ¦‘Gtak•²!es›©t“w“o˜Þint˜Ýargumen“ts˜and˜returns˜an˜Þint˜Ý(this˜is˜the˜t“ypMÞe˜of˜all˜of˜the˜Readline˜bindableŽ¦‘Gfunctions).‘ÝÝInstead–¦fof“the“classic“C“declarationŽ¡‘!GÞint‘¦f(*func)();Ž¡‘GÝor–¦fthe“ANSI-C“st²!yle“declarationŽ¡‘!GÞint–¦f(*func)(int,“int);Ž¡‘GÝw•²!e›¦fma“y˜writeŽ¡‘!GÞrl_command_func_t‘¦f*func;Ž¡‘!GÝThe–¦ffull“list“of“function“pMÞoinš²!ter“t˜ypMÞes“a˜v‘ÿdDailable“isŽŸ:‘GÞtypedef–¦fint“rl_command_func_t“(int,“int);Ž¤à$‘Gtypedef–¦fchar“*rl_compentry_func_t“(const“char“*,“int);Ž¡‘Gtypedef–¦fchar“**rl_completion_func_t“(const“char“*,“int,“int);Ž¡‘Gtypedef–¦fchar“*rl_quote_func_t“(char“*,“int,“char“*);Ž¡‘Gtypedef–¦fchar“*rl_dequote_func_t“(char“*,“int);Ž¡‘Gtypedef–¦fint“rl_compignore_func_t“(char“**);Ž¡‘Gtypedef–¦fvoid“rl_compdisp_func_t“(char“**,“int,“int);Ž¡‘Gtypedef–¦fint“rl_hook_func_t“(void);Ž¡‘Gtypedef–¦fint“rl_getc_func_t“(FILE“*);Ž¡‘Gtypedef–¦fint“rl_linebuf_func_t“(char“*,“int);Ž¡‘Gtypedef–¦fint“rl_intfunc_t“(int);Ž¡‘G#define–¦frl_ivoidfunc_t“rl_hook_func_tŽ¡‘Gtypedef–¦fint“rl_icpfunc_t“(char“*);Ž¡‘Gtypedef–¦fint“rl_icppfunc_t“(char“**);Ž¡‘Gtypedef–¦fvoid“rl_voidfunc_t“(void);Ž¡‘Gtypedef–¦fvoid“rl_vintfunc_t“(int);Ž¡‘Gtypedef–¦fvoid“rl_vcpfunc_t“(char“*);Ž¡‘Gtypedef–¦fvoid“rl_vcppfunc_t“(char“**);ŽŸÔ‘Gë]2.2.2‘d(W›þÄ£riting–íMa“New“F˜unctionŽŽŸ‘!GÝIn–Üôorder“to“write“new“functions“for“Readline,‘ê—yš²!ou“need“to“kno˜w“the“calling“con˜v˜en˜tionsŽ¦‘Gfor›l¶k•²!eybMÞoard-in“v“ok“ed˜functions,‘žJand˜the˜names˜of˜the˜v‘ÿdDariables˜that˜describMÞe˜the˜curren“tŽ¦‘Gstate–¦fof“the“line“read“so“far.ŽŸ‘!GThe–¦fcalling“sequence“for“a“command“Þfoo“ÝloMÞoks“lik²!eŽŽŒ‹ö=Ÿò‘GÝ24’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘.ùœÞint–¿ªfoo“(int“count,“int“key)Ž¤Hœ‘GÝwhere–Pgácounš²!t‘gÝis“the“n˜umeric“argumen˜t“(or“1“if“defaulted)“and“ák˜ey‘@Ýis“the“k˜ey“that“in˜v˜ok˜edŽ© 33‘Gthis‘¦ffunction.Ž¡‘!GIt–Äis“completely“up“to“the“function“as“to“what“should“bMÞe“done“with“the“nš²!umeric“argumen˜t.Ž¦‘GSome–Ï;functions“use“it“as“a“repMÞeat“coun²!t,›psome“as“a“ ag,˜and“others“to“c²!hoMÞose“alternateŽ¦‘GbMÞehaš²!vior–4ñ(refreshing“the“curren˜t“line“as“oppMÞosed“to“refreshing“the“screen,‘˜“for“example).Ž¦‘GSome–ýcš²!hoMÞose“to“ignore“it.‘á°In“general,‘©if“a“function“uses“the“n˜umeric“argumen˜t“as“a“repMÞeatŽ¦‘Gcoun²!t,‘itit–Z7should“bšMÞe“able“to“do“something“useful“with“b˜oth“negativ²!e“and“p˜ositivš²!e“argumen˜ts.Ž¦‘GAš²!t–¦fthe“v˜ery“least,“it“should“bMÞe“a˜w˜are“that“it“can“bMÞe“passed“a“negativ˜e“argumen˜t.Ž¡‘!GA‘Uícommand–Vfunction“should“return“0“if“its“action“completes“successfully‘ÿe,‘fand“a“non-zeroŽ¦‘Gv‘ÿdDalue–¦fif“some“error“oMÞccurs.ŽŸ!µ‡‘GëT2.3‘™Readline‘f@V‘þ¦fariablesŽŽŸHœ‘!GÝThese–¦fv›ÿdDariables“are“a²!v˜ailable“to“function“writers.Ž¤sn’«‰V‘ÿeariableŽŽ‘Gó=ßêthis“is“the“address“of“a“function“to“call“just“bMÞefore“Þreadline“Ýprin²!ts“theŽ¡‘.ùœ rst‘¦fprompt.Ž¦’«‰V‘ÿeariableŽŽ‘Gèrl_hook_func_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Ípre‘Óõ‰ˆŠ#ØŽ“input‘Óõ‰ˆŠ#ØŽ“hob"okŽ¡‘.ùœÝIf–CÜnon-zero,‘k9this“is“the“address“of“a“function“to“call“after“the“ rst“prompt“has“bMÞeenŽ¡‘.ùœprinš²!ted–¦fand“just“bMÞefore“Þreadline“Ýstarts“reading“input“c˜haracters.Ž¦’«‰V‘ÿeariableŽŽ‘Gèrl_hook_func_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ›÷Íev•Þen“t‘Óõ‰ˆŠ#ØŽ˜hob"okŽ¡‘.ùœÝIf–ânon-zero,‘0ìthis“is“the“address“of“a“function“to“call“p•MÞerio“dically–âwhen“Readline“isŽ¡‘.ùœw²!aiting–€*for“terminal“input.‘ÑBy“default,‘‡Ïthis“will“bMÞe“called“at“most“ten“times“a“secondŽ¡‘.ùœif–¦fthere“is“no“k²!eybMÞoard“input.Ž¦’«‰V‘ÿeariableŽŽ‘Gèrl_getc_func_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Ígetc‘Óõ‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝIf–§Wnon-zero,‘§“Readline“will“call“indirectly“through“this“pMÞoinš²!ter“to“get“a“c˜haracter“fromŽ¡‘.ùœthe–ž`input“stream.‘ÅËBy“default,›Ü^it“is“set“to“Þrl_getcÝ,˜the“default“Readline“c²!haracterŽ¡‘.ùœinput–¦ffunction“(see“Section“2.4.8“[Character“Input],“page“34).Ž¦’«‰V‘ÿeariableŽŽ‘Gèrl_voidfunc_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷ÍredisplaÞy‘Óõ‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝIf–S­non-zero,‘~ÿReadline“will“call“indirectly“through“this“pšMÞoin²!ter“to“up˜date“the“displa²!yŽ¡‘.ùœwith–=Ôthe“currenš²!t“con˜ten˜ts“of“the“editing“bu er.‘»By“default,‘R¾it“is“set“to“Þrl_redisplayÝ,Ž¡‘.ùœthe–¦fdefault“Readline“redisplaš²!y“function“(see“Section“2.4.6“[Redispla˜y],“page“33).Ž¦’«‰V‘ÿeariableŽŽ‘Gèrl_vintfunc_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Íprep‘Óõ‰ˆŠ#ØŽ“term‘Óõ‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝIf–âÏnon-zero,‘ íReadline“will“call“indirectly“through“this“pMÞoin²!ter“to“initialize“the“terminal.Ž¡‘.ùœThe–ufunction“takš²!es“a“single“argumen˜t,‘©Gan“Þint“Ý ag“that“sa˜ys“whether“or“not“to“useŽ¡‘.ùœeigh•²!t-bit›Èc“haracters.‘5By˜default,‘5athis˜is˜set˜to˜Þrl_prep_terminal˜Ý(see˜Section˜2.4.9Ž¡‘.ùœ[T‘ÿeerminal–¦fManagemen²!t],“page“35).Ž¦’«‰V‘ÿeariableŽŽ‘Gèrl_voidfunc_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Ídeprep‘Óõ‰ˆŠ#ØŽ“term‘Óõ‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝIf–eynon-zero,‘•>Readline“will“call“indirectly“through“this“pMÞoin²!ter“to“reset“the“terminal.Ž¡‘.ùœThis–4function“should“undo“the“e ects“of“Þrl_prep_term_functionÝ.‘ˆXBy“default,‘XthisŽ¡‘.ùœis–¦fset“to“Þrl_deprep_terminal“Ý(see“Section“2.4.9“[T‘ÿeerminal“Managemen²!t],“page“35).Ž¦’«‰V‘ÿeariableŽŽ‘GèKeymap‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íexecuting‘Óõ‰ˆŠ#ØŽ“kÞeymapŽ¡‘.ùœÝThis–ROv‘ÿdDariable“is“set“to“the“kš²!eymap“(see“Section“2.4.2“[Keymaps],‘}Hpage“29)“in“whic˜hŽ¡‘.ùœthe–¦fcurrenš²!tly“executing“readline“function“w˜as“found.ŽŽŒ‹AŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—27ŽŽŽ ƒ3* ý ÌÖ’«‰V‘ÿeariableŽŽ‘GèKeymap‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íbinding‘Óõ‰ˆŠ#ØŽ“kÞeymapŽ¤ 33‘.ùœÝThis–ROv‘ÿdDariable“is“set“to“the“kš²!eymap“(see“Section“2.4.2“[Keymaps],‘}Hpage“29)“in“whic˜hŽ¡‘.ùœthe–¦flast“k²!ey“binding“oMÞccurred.Ž©ÜŽ’«‰V‘ÿeariableŽŽ‘Gèchar–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Íexecuting‘Óõ‰ˆŠ#ØŽ“macroŽ¡‘.ùœÝThis–¦fv‘ÿdDariable“is“set“to“the“text“of“anš²!y“curren˜tly-executing“macro.Ž¦’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íreadline‘Óõ‰ˆŠ#ØŽ“stateŽ¡‘.ùœÝA‘#¨v›ÿdDariable–#Èwith“bit“v˜alues“that“encapsulate“the“curren²!t“Readline“state.‘VA‘#¨bit“is“setŽ¡‘.ùœwith–½the“ÞRL_SETSTATE“Ýmacro,‘Ç“and“unset“with“the“ÞRL_UNSETSTATE“Ýmacro.‘“ãUse“theŽ¡‘.ùœÞRL_ISSTATE–zÝmacro“to“test“whether“a“particular“state“bit“is“set.‘X¬Curren²!t“state“bitsŽ¡‘.ùœinclude:ŽŸà‘.ùœÞRL_STATE_NONEŽ¡‘hÊÝReadline–¦fhas“not“y²!et“bšMÞeen“called,“nor“has“it“b˜egun“to“in²!tialize.Ž©Àû‘.ùœÞRL_STATE_INITIALIZINGŽ¡‘hÊÝReadline–¦fis“initializing“its“in²!ternal“data“structures.Ž¦‘.ùœÞRL_STATE_INITIALIZEDŽ¡‘hÊÝReadline–¦fhas“completed“its“initialization.Ž¦‘.ùœÞRL_STATE_TERMPREPPEDŽ¡‘hÊÝReadline–r[has“mošMÞdi ed“the“terminal“mo˜des“to“do“its“o²!wn“input“and“redis-Ž¡‘hÊpla²!y‘ÿe.Ž¦‘.ùœÞRL_STATE_READCMDŽ¡‘hÊÝReadline–¦fis“reading“a“command“from“the“k²!eybMÞoard.Ž¦‘.ùœÞRL_STATE_METANEXTŽ¡‘hÊÝReadline–¦fis“reading“more“input“after“reading“the“meta-pre x“c²!haracter.Ž¦‘.ùœÞRL_STATE_DISPATCHINGŽ¡‘hÊÝReadline–¦fis“dispatc²!hing“to“a“command.Ž¦‘.ùœÞRL_STATE_MOREINPUTŽ¡‘hÊÝReadline–¦fis“reading“more“input“while“executing“an“editing“command.Ž¦‘.ùœÞRL_STATE_ISEARCHŽ¡‘hÊÝReadline–¦fis“pMÞerforming“an“incremenš²!tal“history“searc˜h.Ž¦‘.ùœÞRL_STATE_NSEARCHŽ¡‘hÊÝReadline–¦fis“pMÞerforming“a“non-incremenš²!tal“history“searc˜h.Ž¦‘.ùœÞRL_STATE_SEARCHŽ¡‘hÊÝReadline–péis“searcš²!hing“bac˜kw˜ard“or“forw˜ard“through“the“history“for“a“string.Ž¦‘.ùœÞRL_STATE_NUMERICARGŽ¡‘hÊÝReadline–¦fis“reading“a“nš²!umeric“argumen˜t.Ž¦‘.ùœÞRL_STATE_MACROINPUTŽ¡‘hÊÝReadline–çis“currenš²!tly“getting“its“input“from“a“previously-de ned“k˜eybMÞoardŽ¡‘hÊmacro.ŽŽŒ‹&ÄŸò‘GÝ28’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘.ùœÞRL_STATE_MACRODEFŽ¤ 33‘hÊÝReadline–¦fis“currenš²!tly“reading“c˜haracters“de ning“a“k˜eybMÞoard“macro.Ž©ʵ‘.ùœÞRL_STATE_OVERWRITEŽ¡‘hÊÝReadline–¦fis“in“o•²!v“erwrite‘¦fmoMÞde.Ž¦‘.ùœÞRL_STATE_COMPLETINGŽ¡‘hÊÝReadline–¦fis“pMÞerforming“w²!ord“completion.Ž¦‘.ùœÞRL_STATE_SIGHANDLERŽ¡‘hÊÝReadline–¦fis“curren²!tly“executing“the“readline“signal“handler.Ž¦‘.ùœÞRL_STATE_UNDOINGŽ¡‘hÊÝReadline–¦fis“pMÞerforming“an“undo.Ž¦‘.ùœÞRL_STATE_DONEŽ¡‘hÊÝReadline–T†has“read“a“k²!ey“sequence“bšMÞound“to“Þaccept-line“Ýand“is“ab˜out“toŽ¡‘hÊreturn–¦fthe“line“to“the“caller.Ž©ù¹’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íexplicit‘Óõ‰ˆŠ#ØŽ“argŽ¡‘.ùœÝSet–©]to“a“non-zero“v‘ÿdDalue“if“an“explicit“nš²!umeric“argumen˜t“w˜as“spMÞeci ed“b˜y“the“user.Ž¡‘.ùœOnly–¦fv‘ÿdDalid“in“a“bindable“command“function.Ž¦’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷ÍnÞumeric‘Óõ‰ˆŠ#ØŽ“argŽ¡‘.ùœÝSet–r,to“the“v‘ÿdDalue“of“anš²!y“n˜umeric“argumen˜t“explicitly“spMÞeci ed“b˜y“the“user“bMÞeforeŽ¡‘.ùœexecuting–´the“curren²!t“Readline“function.‘°LOnly“v‘ÿdDalid“in“a“bindable“command“function.Ž¦’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íediting‘Óõ‰ˆŠ#ØŽ“mob"deŽ¡‘.ùœÝSet–pto“a“v›ÿdDalue“denoting“Readline's“curren²!t“editing“moMÞde.‘§‹A‘Fv˜alue“of“á1‘â©Ýmeans“ReadlineŽ¡‘.ùœis–¦fcurren²!tly“in“emacs“mošMÞde;“á0‘…ŸÝmeans“that“vi“mo˜de“is“activ²!e.ŽŸ zÆ‘GëT2.4‘™Readline›f@Con•ŒÌv“enience˜F‘þ¦functionsŽŽŸ#/‘Gë]2.4.1‘d(Naming–íMa“F‘þÄ£unctionŽŽŸʵ‘!GÝThe–Æluser“can“dynamically“cš²!hange“the“bindings“of“k˜eys“while“using“Readline.‘=îThis“isŽ¡‘Gdone–m.bš²!y“represen˜ting“the“function“with“a“descriptiv˜e“name.‘26The“user“is“able“to“t˜ypMÞe“theŽ¡‘Gdescriptivš²!e–¦fname“when“referring“to“the“function.‘ÝÝTh˜us,“in“an“init“ le,“one“migh˜t“ ndŽŸ‚‘.ùœÞMeta-Rubout:‘ Tbackward-kill-wordŽŸʵ‘!GÝThis–Î0binds“the“k•²!eystrok“e‘Î0ž™š¸hŽ‘¸üŸù@‰ff2)nŸÀ­Meta-RubThese“functions“allo˜w“y˜ou“to“c˜hange“whic˜hŽ¡‘Gkš²!eymap–¦fis“activ˜e.Ž¦’¨sF‘ÿeunctionŽŽ‘GèKeymap‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íget‘Óõ‰ˆŠ#ØŽ“kÞeymap‘yšâ(Þvoidâ)Ž¡‘.ùœÝReturns–¦fthe“currenš²!tly“activ˜e“k˜eymap.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íset‘Óõ‰ˆŠ#ØŽ“kÞeymap‘yšâ(ÞKeymap‘¦fkeymapâ)Ž¡‘.ùœÝMak•²!es›¦fák“eymap‘ûgÝthe˜curren“tly˜activ“e˜k“eymap.Ž¦’¨sF‘ÿeunctionŽŽ‘GèKeymap‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íget‘Óõ‰ˆŠ#ØŽ“kšÞeymap‘Óõ‰ˆŠ#ØŽ“b˜y‘Óõ‰ˆŠ#ØŽ“name‘yšâ(Þconst–¦fchar“*nameâ)Ž¡‘.ùœÝReturn–ý>the“kš²!eymap“matc˜hing“ánameÝ.‘âdáname‘šEÝis“one“whic˜h“w˜ould“bMÞe“supplied“in“a“ÞsetŽ¡‘.ùœkeymap–¦fÝinputrc“line“(see“Section“1.3“[Readline“Init“File],“page“4).Ž¦’¨sF‘ÿeunctionŽŽ‘Gèchar–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Íget‘Óõ‰ˆŠ#ØŽ“kÞeymap‘Óõ‰ˆŠ#ØŽ“name‘yšâ(ÞKeymap‘¦fkeymapâ)Ž¡‘.ùœÝReturn–ý>the“name“matcš²!hing“ák˜eymapÝ.‘âdáname‘šEÝis“one“whic˜h“w˜ould“bMÞe“supplied“in“a“ÞsetŽ¡‘.ùœkeymap–¦fÝinputrc“line“(see“Section“1.3“[Readline“Init“File],“page“4).ŽŽŒ‹:pŸò‘GÝ30’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Gë]2.4.3‘d(Binding‘íMKeysŽŽŸÌÍ‘!GÝKey–ߺsequences“are“assoMÞciate“with“functions“through“the“kš²!eymap.‘›¤Readline“has“sev˜eral“in-Ž¤ 33‘Gternal‘€²k²!eymaps:‘ËÞemacs_standard_keymapÝ,–ˆ<Þemacs_meta_keymapÝ,“Þemacs_ctlx_keymapÝ,“Þvi_Ž¡‘Gmovement_keymapÝ,‘qxand–¨Þvi_insertion_keymapÝ.‘ +¢Þemacs_standard_keymap“Ýis“the“default,Ž¡‘Gand–¦fthe“examples“in“this“man²!ual“assume“that.Ž©ÌÍ‘!GSince–QÞreadline()“Ýinstalls“a“set“of“default“k²!ey“bindings“the“ rst“time“it“is“called,‘b#there“isŽ¡‘Galw•²!a“ys–ëíthe“danger“that“a“custom“binding“installed“bMÞefore“the“ rst“call“to“Þreadline()“ÝwillŽ¡‘GbMÞe›o•²!v“erridden.‘®An˜alternate˜mec“hanism˜is˜to˜install˜custom˜k“ey˜bindings˜in˜an˜initializationŽ¡‘Gfunction–uŠassigned“to“the“Þrl_startup_hook“Ýv‘ÿdDariable“(see“Section“2.3“[Readline“V‘ÿeariables],Ž¡‘Gpage‘¦f24).Ž¦‘!GThese–¦ffunctions“manage“k²!ey“bindings.Ž©33’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íbind‘Óõ‰ˆŠ#ØŽ“kÞey‘yšâ(Þint–¦fkey,“rl_command_func_t“*functionâ)Ž¡‘.ùœÝBinds–ö½ákš²!ey‘æÕÝto“áfunction“Ýin“the“curren˜tly“activ˜e“k˜eymap.‘ÎãReturns“non-zero“in“the“caseŽ¡‘.ùœof–¦fan“inš²!v‘ÿdDalid“ák˜eyÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íbind‘Óõ‰ˆŠ#ØŽ“kÞey‘Óõ‰ˆŠ#ØŽ“in‘Óõ‰ˆŠ#ØŽ“map‘yšâ(Þint–¦fkey,“rl_command_func_t“*function,Ž¡‘DGKeymap‘¦fmapâ)Ž¡‘.ùœÝBind–¦fákš²!ey‘–~Ýto“áfunction“Ýin“ámapÝ.‘ÝÝReturns“non-zero“in“the“case“of“an“in˜v‘ÿdDalid“ák˜eyÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷ÍunšÞbind‘Óõ‰ˆŠ#ØŽ“k˜ey‘yšâ(Þint‘¦fkeyâ)Ž¡‘.ùœÝBind–[rákš²!ey‘KŠÝto“the“n˜ull“function“in“the“curren˜tly“activ˜e“k˜eymap.‘ýReturns“non-zero“inŽ¡‘.ùœcase–¦fof“error.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷ÍunšÞbind‘Óõ‰ˆŠ#ØŽ“k˜ey‘Óõ‰ˆŠ#ØŽ“in‘Óõ‰ˆŠ#ØŽ“map‘yšâ(Þint–¦fkey,“Keymap“mapâ)Ž¡‘.ùœÝBind–¦fákš²!ey‘–~Ýto“the“n˜ull“function“in“ámapÝ.‘ÝÝReturns“non-zero“in“case“of“error.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷ÍunÞbind‘Óõ‰ˆŠ#ØŽ“function‘Óõ‰ˆŠ#ØŽ“in‘Óõ‰ˆŠ#ØŽ“map‘yšâ(Þrl_command_func_t‘¦f*function,Ž¡‘DGKeymap‘¦fmapâ)Ž¡‘.ùœÝUnš²!bind–¦fall“k˜eys“that“execute“áfunction“Ýin“ámapÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷ÍunÞbind‘Óõ‰ˆŠ#ØŽ“command‘Óõ‰ˆŠ#ØŽ“in‘Óõ‰ˆŠ#ØŽ“map‘yšâ(Þconst–¦fchar“*command,“KeymapŽ¡‘DGmapâ)Ž¡‘.ùœÝUnš²!bind–¦fall“k˜eys“that“are“bMÞound“to“ácommand‘¸Ýin“ámapÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íset‘Óõ‰ˆŠ#ØŽ“kÞey‘yšâ(Þconst–¦fchar“*keyseq,“rl_command_func_t“*function,Ž¡‘DGKeymap‘¦fmapâ)Ž¡‘.ùœÝBind–Éthe“kš²!ey“sequence“represen˜ted“b˜y“the“string“ák˜eyseq‘B¯Ýto“the“function“áfunctionÝ.‘¦þThisŽ¡‘.ùœmakš²!es–&Enew“k˜eymaps“as“necessary‘ÿe.‘³(The“initial“k˜eymap“in“whic˜h“to“do“bindings“is“ámapÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ígeneric‘Óõ‰ˆŠ#ØŽ“bind‘yšâ(Þint–¦ftype,“const“char“*keyseq,“char“*data,Ž¡‘DGKeymap‘¦fmapâ)Ž¡‘.ùœÝBind–>ïthe“kš²!ey“sequence“represen˜ted“b˜y“the“string“ák˜eyseq‘ÕÝto“the“arbitrary“pMÞoin˜ter“ádataÝ.Ž¡‘.ùœát•²!ypšMÞe‘•Ýsa“ys–jŽwhat“kind“of“data“is“p˜oinš²!ted“to“b˜y“ádataÝ;‘~this“can“bMÞe“a“function“(ÞISFUNCÝ),‘v†aŽ¡‘.ùœmacro–Š™(ÞISMACRÝ),‘(or“a“kš²!eymap“(ÞISKMAPÝ).‘Ô™This“mak˜es“new“k˜eymaps“as“necessary‘ÿe.‘Ô™TheŽ¡‘.ùœinitial–¦fkš²!eymap“in“whic˜h“to“do“bindings“is“ámapÝ.ŽŽŒ‹F3Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—31ŽŽŽ ƒ3* ý ÌÖ’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íparse‘Óõ‰ˆŠ#ØŽ“and‘Óõ‰ˆŠ#ØŽ“bind‘yšâ(Þchar‘¦f*lineâ)Ž¤ 33‘.ùœÝP²!arse–‡yáline‘$€Ýas“if“it“had“bšMÞeen“read“from“the“Þinputrc“Ý le“and“p˜erform“anš²!y“k˜ey“bindingsŽ¡‘.ùœand–¦fv‘ÿdDariable“assignmen²!ts“found“(see“Section“1.3“[Readline“Init“File],“page“4).Ž©L’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íread‘Óõ‰ˆŠ#ØŽ“init‘Óõ‰ˆŠ#ØŽ“ le‘yšâ(Þconst–¦fchar“*filenameâ)Ž¡‘.ùœÝRead–È8kš²!eybindings“and“v‘ÿdDariable“assignmen˜ts“from“á lename‘e?Ý(see“Section“1.3“[ReadlineŽ¡‘.ùœInit–¦fFile],“page“4).ŽŸ‘Gë]2.4.4‘d(Assoiciating–íMF‘þÄ£unction“Names“and“BindingsŽŽŸb8‘!GÝThese–ŒQfunctions“alloš²!w“y˜ou“to“ nd“out“what“k˜eys“in˜v˜ok˜e“named“functions“and“the“functionsŽ¡‘Gin•²!v“ok“ed›MLb“y˜a˜particular˜k“ey˜sequence.‘À*Y‘ÿeou˜ma“y˜also˜assoMÞciate˜a˜new˜function˜name˜with˜anŽ¡‘Garbitrary‘¦ffunction.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèrl_command_func_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Ínamed‘Óõ‰ˆŠ#ØŽ“function‘yšâ(Þconst–¦fchar“*nameâ)Ž¡‘.ùœÝReturn–¦fthe“function“with“name“ánameÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèrl_command_func_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Ífunction‘Óõ‰ˆŠ#ØŽ“of‘Óõ‰ˆŠ#ØŽ“kÞeyseq‘yšâ(Þconst‘¦fcharŽ¡‘DG*keyseq,–¦fKeymap“map,“int“*typeâ)Ž¡‘.ùœÝReturn–è³the“function“in•²!v“ok“ed›è³b“y˜ák“eyseq‘)™Ýin˜k“eymap˜ámapÝ.‘¤ÃIf˜ámap‘=´Ýis˜ÞNULLÝ,‘ùFthe˜curren“tŽ¡‘.ùœkš²!eymap–q¤is“used.‘?˜If“át˜ypMÞe‘«Ýis“not“ÞNULLÝ,‘¤tthe“t˜ypMÞe“of“the“ob‘›»ject“is“returned“in“the“ÞintŽ¡‘.ùœÝv‘ÿdDariable–¦fit“pMÞoin²!ts“to“(one“of“ÞISFUNCÝ,“ÞISKMAPÝ,“or“ÞISMACRÝ).Ž¦’¨sF‘ÿeunctionŽŽ‘Gèchar–™˜**“çrl‘Óõ‰ˆŠ#ØŽ›÷Íin•Þv“oking‘Óõ‰ˆŠ#ØŽ˜k“eyseqs‘yšâ(Þrl_command_func_t‘¦f*functionâ)Ž¡‘.ùœÝReturn–¿ëan“arraš²!y“of“strings“represen˜ting“the“k˜ey“sequences“used“to“in˜v˜ok˜e“áfunction“ÝinŽ¡‘.ùœthe–¦fcurrenš²!t“k˜eymap.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèchar–™˜**“çrl‘Óõ‰ˆŠ#ØŽ›÷Íin•Þv“oking‘Óõ‰ˆŠ#ØŽ˜k“eyseqs‘Óõ‰ˆŠ#ØŽ˜in‘Óõ‰ˆŠ#ØŽ˜map‘yšâ(Þrl_command_func_tŽ¡‘DG*function,–¦fKeymap“mapâ)Ž¡‘.ùœÝReturn–¿ëan“arraš²!y“of“strings“represen˜ting“the“k˜ey“sequences“used“to“in˜v˜ok˜e“áfunction“ÝinŽ¡‘.ùœthe–¦fk²!eymap“ámapÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ífunction‘Óõ‰ˆŠ#ØŽ“dumpb"er‘yšâ(Þint‘¦freadableâ)Ž¡‘.ùœÝPrinš²!t–‚Òthe“readline“function“names“and“the“k˜ey“sequences“curren˜tly“bMÞound“to“them“toŽ¡‘.ùœÞrl_outstreamÝ.‘¿ÕIf–LMáreadable‘éTÝis“non-zero,‘^Rthe“list“is“formatted“in“sucš²!h“a“w˜a˜y“that“it“canŽ¡‘.ùœbMÞe–¦fmade“part“of“an“Þinputrc“Ý le“and“re-read.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ílist‘Óõ‰ˆŠ#ØŽ“funmap‘Óõ‰ˆŠ#ØŽ“names‘yšâ(Þvoidâ)Ž¡‘.ùœÝPrin²!t–¦fthe“names“of“all“bindable“Readline“functions“to“Þrl_outstreamÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèconst–™˜char“**“çrl‘Óõ‰ˆŠ#ØŽ–÷Ífunmap‘Óõ‰ˆŠ#ØŽ“names‘yšâ(Þvoidâ)Ž¡‘.ùœÝReturn–Sa“NULL‘0terminated“arraš²!y“of“kno˜wn“function“names.‘°×The“arra˜y“is“sorted.‘°×TheŽ¡‘.ùœarraš²!y– itself“is“alloMÞcated,‘(†but“not“the“strings“inside.‘©jY‘ÿeou“should“Þfree()“Ýthe“arra˜y“whenŽ¡‘.ùœyš²!ou–¦fare“done,“but“not“the“pMÞoin˜ters.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íadd‘Óõ‰ˆŠ#ØŽ“funmap‘Óõ‰ˆŠ#ØŽ“enÞtry‘yšâ(Þconst–¦fchar“*name,“rl_command_func_tŽ¡‘DG*functionâ)Ž¡‘.ùœÝAdd–ð³áname‘ºÝto“the“list“of“bindable“Readline“command“names,‘Gand“mak²!e“áfunction“ÝtheŽ¡‘.ùœfunction–¦fto“bMÞe“called“when“áname‘CmÝis“in•²!v“ok“ed.ŽŽŒ‹ TŸò‘GÝ32’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Gë]2.4.5‘d(Allo–áwing‘íMUndoingŽŽŸwÖ‘!GÝSuppMÞorting–&Œthe“undo“command“is“a“painless“thing,‘@and“makš²!es“y˜our“functions“m˜uc˜h“moreŽ¤ 33‘Guseful.‘ÝÝIt–¦fis“certainly“easy“to“try“something“if“yš²!ou“kno˜w“y˜ou“can“undo“it.Ž©wÖ‘!GIf–è*y²!our“function“simply“inserts“text“once,›8›or“deletes“text“once,˜and“uses“Þrl_insert_Ž¡‘Gtext()–Y)Ýor“Þrl_delete_text()“Ýto“do“it,‘hœthen“undoing“is“already“done“for“y²!ou“automatically‘ÿe.Ž¦‘!GIf–u†yš²!ou“do“m˜ultiple“insertions“or“m˜ultiple“deletions,‘²€or“an˜y“com˜bination“of“these“opMÞerations,Ž¡‘Gyš²!ou–‘should“group“them“together“in˜to“one“opMÞeration.‘œ]This“is“done“with“Þrl_begin_undo_Ž¡‘Ggroup()–¦fÝand“Þrl_end_undo_group()Ý.Ž¦‘!GThe–¦ftš²!ypMÞes“of“ev˜en˜ts“that“can“bMÞe“undone“are:ŽŸÄ£‘.ùœÞenum–¿ªundo_code“{“UNDO_DELETE,“UNDO_INSERT,“UNDO_BEGIN,“UNDO_END“};Ž¦‘!GÝNotice–£¯that“ÞUNDO_DELETE“Ýmeans“to“insert“some“text,‘¤:and“ÞUNDO_INSERT“Ýmeans“to“deleteŽ¡‘Gsome–O²text.‘ÀöThat“is,›a the“undo“coMÞde“tells“what“to“undo,˜not“ho²!w“to“undo“it.‘ÀöÞUNDO_BEGIN“ÝandŽ¡‘GÞUNDO_END–¦fÝare“tags“added“b²!y“Þrl_begin_undo_group()“Ýand“Þrl_end_undo_group()Ý.Ž© ’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íbb"egin‘Óõ‰ˆŠ#ØŽ“undo‘Óõ‰ˆŠ#ØŽ“group‘yšâ(Þvoidâ)Ž¡‘.ùœÝBegins–·‡sa²!ving“undo“information“in“a“group“construct.‘AThe“undo“information“usuallyŽ¡‘.ùœcomes–þIfrom“calls“to“Þrl_insert_text()“Ýand“Þrl_delete_text()Ý,‘TAbut“could“bMÞe“theŽ¡‘.ùœresult–¦fof“calls“to“Þrl_add_undo()Ý.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íend‘Óõ‰ˆŠ#ØŽ“undo‘Óõ‰ˆŠ#ØŽ“group‘yšâ(Þvoidâ)Ž¡‘.ùœÝCloses–{the“curren²!t“undo“group“started“with“Þrl_begin_undo_group‘¦f()Ý.‘ÏmThere“shouldŽ¡‘.ùœbMÞe–¦fone“call“to“Þrl_end_undo_group()“Ýfor“eac²!h“call“to“Þrl_begin_undo_group()Ý.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íadd‘Óõ‰ˆŠ#ØŽ“undo‘yšâ(Þenum–¦fundo_code“what,“int“start,“int“end,“charŽ¡‘DG*textâ)Ž¡‘.ùœÝRemem•²!bMÞer›ího“w˜to˜undo˜an˜ev“en“t˜(according˜to˜áwhat=Ý).‘/rThe˜a ected˜text˜runs˜fromŽ¡‘.ùœástart‘ãfÝto–¦fáendÝ,“and“encompasses“átextÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ífree‘Óõ‰ˆŠ#ØŽ“undo‘Óõ‰ˆŠ#ØŽ“list‘yšâ(Þvoidâ)Ž¡‘.ùœÝF‘ÿeree–¦fthe“existing“undo“list.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ído‘Óõ‰ˆŠ#ØŽ“undo‘yšâ(Þvoidâ)Ž¡‘.ùœÝUndo–¾§the“ rst“thing“on“the“undo“list.‘žReturns“Þ0“Ýif“there“w²!as“nothing“to“undo,‘ínon-zeroŽ¡‘.ùœif–¦fsomething“w²!as“undone.ŽŸ¼y‘!GFinally‘ÿe,›Á#if–»Êy²!ou“neither“insert“nor“delete“text,˜but“directly“moMÞdify“the“existing“text“(e.g.,Ž¡‘Gc²!hange–§its“case),›çKcall“Þrl_modifying()“Ýonce,˜just“bšMÞefore“y²!ou“mo˜dify“the“text.‘àY‘ÿeou“m²!ustŽ¡‘Gsupply–¦fthe“indices“of“the“text“range“that“y²!ou“are“going“to“moMÞdify‘ÿe.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ‘÷Ímob"difying‘yšâ(Þint–¦fstart,“int“endâ)Ž¡‘.ùœÝT‘ÿeell–Ô-Readline“to“sa•²!v“e–Ô-the“text“bMÞet•²!w“een–Ô-ástart‘-Ýand“áend‘BÝas“a“single“undo“unit.‘g3It“isŽ¡‘.ùœassumed–¦fthat“yš²!ou“will“subsequen˜tly“moMÞdify“that“text.ŽŽŒ‹!b]Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—33ŽŽŽ ƒ3* ý ÌÖ‘Gë]2.4.6‘d(Redispla–áyŽŽŸ$¨õ’¨sÝF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ‘÷ÍredisplaÞy‘yšâ(Þvoidâ)Ž¤ 33‘.ùœÝChange–Šwhat's“displa•²!y“ed–Šon“the“screen“to“re ect“the“currenš²!t“con˜ten˜ts“of“Þrl_line_Ž¡‘.ùœbufferÝ.Ž©¨õ’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íforced‘Óõ‰ˆŠ#ØŽ“upb"date‘Óõ‰ˆŠ#ØŽ“displaÞy‘yšâ(Þvoidâ)Ž¡‘.ùœÝF‘ÿeorce–Äóthe“line“to“bšMÞe“up˜dated“and“redispla•²!y“ed,‘ –whether–Äóor“not“Readline“thinks“theŽ¡‘.ùœscreen–¦fdispla²!y“is“correct.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íon‘Óõ‰ˆŠ#ØŽ“new‘Óõ‰ˆŠ#ØŽ“line‘yšâ(Þvoidâ)Ž¡‘.ùœÝT‘ÿeell–•Ðthe“upMÞdate“functions“that“wš²!e“ha˜v˜e“mo˜v˜ed“on˜to“a“new“(empt˜y)“line,‘™!usually“afterŽ¡‘.ùœouputting–¦fa“newline.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íon‘Óõ‰ˆŠ#ØŽ“new‘Óõ‰ˆŠ#ØŽ“line‘Óõ‰ˆŠ#ØŽ“with‘Óõ‰ˆŠ#ØŽ“prompt‘yšâ(Þvoidâ)Ž¡‘.ùœÝT‘ÿeell–ó the“upMÞdate“functions“that“wš²!e“ha˜v˜e“mo˜v˜ed“on˜to“a“new“line,‘awith“árl‘¨/‰x³HøŽ‘ñ'prompt‘0 ÝalreadyŽ¡‘.ùœdispla•²!y“ed.‘Ë®This–oÚcould“bMÞe“used“bš²!y“applications“that“w˜an˜t“to“output“the“prompt“stringŽ¡‘.ùœthemselvš²!es,‘\Çbut–J_still“need“Readline“to“kno˜w“the“prompt“string“length“for“redispla˜y‘ÿe.‘¿0ItŽ¡‘.ùœshould–¦fbMÞe“used“after“setting“árl‘¨/‰x³HøŽ–ñ'already‘¨/‰x³HøŽ“promptedÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íreset‘Óõ‰ˆŠ#ØŽ“line‘Óõ‰ˆŠ#ØŽ“state‘yšâ(Þvoidâ)Ž¡‘.ùœÝReset–*‘the“displaš²!y“state“to“a“clean“state“and“redispla˜y“the“curren˜t“line“starting“on“aŽ¡‘.ùœnew‘¦fline.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ‘÷Ícrlf‘yšâ(Þvoidâ)Ž¡‘.ùœÝMo•²!v“e–¦fthe“cursor“to“the“start“of“the“next“screen“line.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷ÍshošÞw‘Óõ‰ˆŠ#ØŽ“c˜har‘yšâ(Þint‘¦fcâ)Ž¡‘.ùœÝDispla•²!y›ç³c“haracter˜ác‘‘·Ýon˜Þrl_outstreamÝ.‘¡ÅIf˜Readline˜has˜not˜bMÞeen˜set˜to˜displa“y˜metaŽ¡‘.ùœcš²!haracters–Ødirectly‘ÿe,‘9(this“will“con˜v˜ert“meta“c˜haracters“to“a“meta-pre xed“k˜ey“sequence.Ž¡‘.ùœThis–¦fis“inš²!tended“for“use“b˜y“applications“whic˜h“wish“to“do“their“o˜wn“redispla˜y‘ÿe.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ‘÷Ímessage‘yšâ(Þconst–¦fchar“*,“...Ž‘åeâ)Ž¡‘.ùœÝThe–y¦argumenš²!ts“are“a“format“string“as“w˜ould“bšMÞe“supplied“to“ÞprintfÝ,‘µÌp˜ossibly“con²!tainingŽ¡‘.ùœcon•²!v“ersion–NÂspMÞeci cations“sucš²!h“as“`Þ%dÝ',‘¸Ùand“an˜y“additional“argumen˜ts“necessary“toŽ¡‘.ùœsatisfy–ø•the“con•²!v“ersion–ø•spMÞeci cations.‘ÔjThe“resulting“string“is“displa•²!y“ed–ø•in“the“áec²!hoŽ¡‘.ùœareaÝ.‘ÝÝThe–¦fecš²!ho“area“is“also“used“to“displa˜y“n˜umeric“argumen˜ts“and“searc˜h“strings.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íclear‘Óõ‰ˆŠ#ØŽ“message‘yšâ(Þvoidâ)Ž¡‘.ùœÝClear–¦fthe“message“in“the“ec²!ho“area.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ›÷Ísa•Þv“e‘Óõ‰ˆŠ#ØŽ˜prompt‘yšâ(Þvoidâ)Ž¡‘.ùœÝSa•²!v“e–,the“loMÞcal“Readline“prompt“displaš²!y“state“in“preparation“for“displa˜ying“a“newŽ¡‘.ùœmessage–¦fin“the“message“area“with“Þrl_message()Ý.ŽŽŒ‹"o(Ÿò‘GÝ34’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Írestore‘Óõ‰ˆŠ#ØŽ“prompt‘yšâ(Þvoidâ)Ž¤ 33‘.ùœÝRestore–!Pthe“loMÞcal“Readline“prompt“displaš²!y“state“sa˜v˜ed“b˜y“the“most“recen˜t“call“toŽ¡‘.ùœÞrl_save_promptÝ.Ž©jÚ’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íexpand‘Óõ‰ˆŠ#ØŽ“prompt‘yšâ(Þchar‘¦f*promptâ)Ž¡‘.ùœÝExpand–#&anš²!y“spMÞecial“c˜haracter“sequences“in“áprompt‘`&Ýand“set“up“the“loMÞcal“ReadlineŽ¡‘.ùœprompt–M%redisplaš²!y“v‘ÿdDariables.‘ÒThis“function“is“called“b˜y“Þreadline()Ý.‘ÒIt“ma˜y“also“bMÞeŽ¡‘.ùœcalled–‰vto“expand“the“primary“prompt“if“the“Þrl_on_new_line_with_prompt()“ÝfunctionŽ¡‘.ùœor– êÞrl_already_prompted“Ýv‘ÿdDariable“is“used.‘« It“returns“the“n•²!um“bMÞer– êof“visible“c²!haractersŽ¡‘.ùœon–¦fthe“last“line“of“the“(pMÞossibly“m²!ulti-line)“prompt.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íset‘Óõ‰ˆŠ#ØŽ“prompt‘yšâ(Þconst–¦fchar“*promptâ)Ž¡‘.ùœÝMakš²!e–;³Readline“use“áprompt‘x³Ýfor“subsequen˜t“redispla˜y‘ÿe.‘ºLThis“calls“Þrl_expand_prompt()Ž¡‘.ùœÝto–¦fexpand“the“prompt“and“sets“Þrl_prompt“Ýto“the“result.ŽŸî1‘Gë]2.4.7‘d(Moidifying‘íMT‘þÄ£extŽŽŸ!jÚ’¨sÝF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íinsert‘Óõ‰ˆŠ#ØŽ“text‘yšâ(Þconst–¦fchar“*textâ)Ž¡‘.ùœÝInsert–ËÂátext‘ÂÝinš²!to“the“line“at“the“curren˜t“cursor“pMÞosition.‘MòReturns“the“n˜um˜bMÞer“of“c˜har-Ž¡‘.ùœacters‘¦finserted.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ídelete‘Óõ‰ˆŠ#ØŽ“text‘yšâ(Þint–¦fstart,“int“endâ)Ž¡‘.ùœÝDelete–ˆthe“text“bMÞet•²!w“een–ˆástart‘ÅÝand“áend‘öÓÝin“the“currenš²!t“line.‘„/Returns“the“n˜um˜bMÞer“ofŽ¡‘.ùœc²!haracters‘¦fdeleted.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèchar–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷ÍcopÞy‘Óõ‰ˆŠ#ØŽ“text‘yšâ(Þint–¦fstart,“int“endâ)Ž¡‘.ùœÝReturn–¦fa“copš²!y“of“the“text“bMÞet˜w˜een“ástart‘ãfÝand“áend‘¸Ýin“the“curren˜t“line.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íkill‘Óõ‰ˆŠ#ØŽ“text‘yšâ(Þint–¦fstart,“int“endâ)Ž¡‘.ùœÝCopš²!y–œthe“text“bMÞet˜w˜een“ástart‘WœÝand“áend‘ˆîÝin“the“curren˜t“line“to“the“kill“ring,‘7ªappMÞendingŽ¡‘.ùœor–øprepMÞending“to“the“last“kill“if“the“last“command“w²!as“a“kill“command.‘)”The“text“isŽ¡‘.ùœdeleted.‘ÈIf–_ástart‘E_Ýis“less“than“áendÝ,› Ýthe“text“is“appMÞended,˜otherwise“prepMÞended.‘ÈIf“theŽ¡‘.ùœlast–¦fcommand“w²!as“not“a“kill,“a“new“kill“ring“slot“is“used.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ípush‘Óõ‰ˆŠ#ØŽ“macro‘Óõ‰ˆŠ#ØŽ“input‘yšâ(Þchar‘¦f*macroâ)Ž¡‘.ùœÝCause–d’ámacro‘ñbÝto“bšMÞe“inserted“in²!to“the“line,‘q¼as“if“it“had“b˜een“in•²!v“ok“ed›d’b“y˜a˜k“ey˜bMÞound˜toŽ¡‘.ùœa–¦fmacro.‘ÝÝNot“espMÞecially“useful;“use“Þrl_insert_text()“Ýinstead.ŽŸî1‘Gë]2.4.8‘d(Character‘íMInputŽŽŸ!jÚ’¨sÝF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íread‘Óõ‰ˆŠ#ØŽ“kÞey‘yšâ(Þvoidâ)Ž¡‘.ùœÝReturn–Š7the“next“cš²!haracter“a˜v‘ÿdDailable“from“Readline's“curren˜t“input“stream.‘ÔxThis“han-Ž¡‘.ùœdles–Sµinput“inserted“in²!to“the“input“stream“via“árl‘¨/‰x³HøŽ–ñ'pMÞending‘¨/‰x³HøŽ“input‘µÝ(see–SµSection“2.3“[Read-Ž¡‘.ùœline–¸©V‘ÿeariables],›ý:page“24)“and“Þrl_stuff_char()Ý,˜macros,˜and“c²!haracters“read“fromŽ¡‘.ùœthe–×kš²!eybMÞoard.‘2/While“w˜aiting“for“input,‘43this“function“will“call“an˜y“function“assignedŽ¡‘.ùœto–¦fthe“Þrl_event_hook“Ýv‘ÿdDariable.ŽŽŒ‹#{áŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—35ŽŽŽ ƒ3* ý ÌÖ’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ‘÷Ígetc‘yšâ(ÞFILE‘¦f*streamâ)Ž¤ 33‘.ùœÝReturn–Œthe“next“cš²!haracter“a˜v‘ÿdDailable“from“ástreamÝ,‘Äáwhic˜h“is“assumed“to“bMÞe“the“k˜eybMÞoard.Ž©!Fä’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ístu ‘Óõ‰ˆŠ#ØŽ“cÞhar‘yšâ(Þint‘¦fcâ)Ž¡‘.ùœÝInsert–òác‘œÝin²!to“the“Readline“input“stream.‘ÀáIt“will“bšMÞe“Þ"ÝreadÞ"“Ýb˜efore“Readline“attemptsŽ¡‘.ùœto–6×read“cš²!haracters“from“the“terminal“with“Þrl_read_key()Ý.‘¸®Up“to“512“c˜haracters“ma˜yŽ¡‘.ùœbMÞe–¬+pushed“bacš²!k.‘ï,Þrl_stuff_char“Ýreturns“1“if“the“c˜haracter“w˜as“successfully“inserted;Ž¡‘.ùœ0‘¦fotherwise.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íexecute‘Óõ‰ˆŠ#ØŽ“next‘yšâ(Þint‘¦fcâ)Ž¡‘.ùœÝMak²!e–HÆác‘òÊÝbšMÞe“the“next“command“to“b˜e“executed“when“Þrl_read_key()“Ýis“called.‘ÄþThisŽ¡‘.ùœsets‘¦fárl‘¨/‰x³HøŽ–ñ'pMÞending‘¨/‰x³HøŽ“inputÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íclear‘Óõ‰ˆŠ#ØŽ“pb"ending‘Óõ‰ˆŠ#ØŽ“input‘yšâ(Þvoidâ)Ž¡‘.ùœÝUnset›,\árl‘¨/‰x³HøŽ–ñ'pMÞending‘¨/‰x³HøŽ“inputÝ,‘Ùe ectiv•²!ely˜negating˜the˜e ect˜of˜an“y˜previous˜call˜to˜Þrl_Ž¡‘.ùœexecute_next()Ý.‘zYThis–…:w²!orks“only“if“the“pšMÞending“input“has“not“already“b˜een“readŽ¡‘.ùœwith‘¦fÞrl_read_key()Ý.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íset‘Óõ‰ˆŠ#ØŽ“kÞeybb"oard‘Óõ‰ˆŠ#ØŽ“input‘Óõ‰ˆŠ#ØŽ“timeout‘yšâ(Þint‘¦fuâ)Ž¡‘.ùœÝWhile–ÑŽwš²!aiting“for“k˜eybMÞoard“input“in“Þrl_read_key()Ý,‘WReadline“will“w˜ait“for“áu“Ými-Ž¡‘.ùœcroseconds–éNfor“input“bMÞefore“calling“an²!y“function“assigned“to“Þrl_event_hookÝ.‘¦–TheŽ¡‘.ùœdefault–¦fwš²!aiting“p•MÞerio“d–¦fis“one-ten˜th“of“a“second.‘ÝÝReturns“the“old“timeout“v‘ÿdDalue.ŽŸbv‘Gë]2.4.9‘d(T‘þÄ£erminal‘íMManagemen–átŽŽŸ(Fä’¨sÝF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íprep‘Óõ‰ˆŠ#ØŽ“terminal‘yšâ(Þint‘¦fmeta_flagâ)Ž¡‘.ùœÝMoMÞdify–¦the“terminal“settings“for“Readline's“use,‘wµso“Þreadline()“Ýcan“read“a“singleŽ¡‘.ùœcš²!haracter–Æ2at“a“time“from“the“k˜eybMÞoard.‘=AThe“ámeta‘¨/‰x³HøŽ‘ñ' ag‘¶JÝargumen˜t“should“bMÞe“non-zeroŽ¡‘.ùœif–¦fReadline“should“read“eigh²!t-bit“input.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ídeprep‘Óõ‰ˆŠ#ØŽ“terminal‘yšâ(Þvoidâ)Ž¡‘.ùœÝUndo–Ë­the“e ects“of“Þrl_prep_terminal()Ý,‘Ôþleaš²!ving“the“terminal“in“the“state“in“whic˜hŽ¡‘.ùœit–¦fwš²!as“bMÞefore“the“most“recen˜t“call“to“Þrl_prep_terminal()Ý.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷ÍttÞy‘Óõ‰ˆŠ#ØŽ“set‘Óõ‰ˆŠ#ØŽ“default‘Óõ‰ˆŠ#ØŽ“bindings‘yšâ(ÞKeymap‘¦fkmapâ)Ž¡‘.ùœÝRead–oÝthe“opMÞerating“system's“terminal“editing“cš²!haracters“(as“w˜ould“bMÞe“displa˜y˜ed“b˜yŽ¡‘.ùœÞsttyÝ)–¦fto“their“Readline“equiv‘ÿdDalen²!ts.‘ÝÝThe“bindings“are“pMÞerformed“in“ákmapÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íreset‘Óõ‰ˆŠ#ØŽ“terminal‘yšâ(Þconst–¦fchar“*terminal_nameâ)Ž¡‘.ùœÝReinitialize–ð[Readline's“idea“of“the“terminal“settings“using“áterminal‘¨/‰x³HøŽ‘ñ'name‘bÝas“the“termi-Ž¡‘.ùœnal–àt²!ypMÞe“(e.g.,›î‡Þvt100Ý).‘ŠúIf“áterminal‘¨/‰x³HøŽ‘ñ'name‘}!Ýis“ÞNULLÝ,˜the“v‘ÿdDalue“of“the“ÞTERM“Ýen•²!vironmen“tŽ¡‘.ùœv‘ÿdDariable–¦fis“used.ŽŽŒ‹$‰˜Ÿò‘GÝ36’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Gë]2.4.10‘d(Utilit–áy‘íMF‘þÄ£unctionsŽŽŸ!@q’¨sÝF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íreplace‘Óõ‰ˆŠ#ØŽ“line‘yšâ(Þconst–¦fchar“*text,“int“clear_undoâ)Ž¤ 33‘.ùœÝReplace–¼Jthe“con•²!ten“ts–¼Jof“Þrl_line_buffer“Ýwith“átextÝ.‘ŠThe“pMÞoin²!t“and“mark“are“pre-Ž¡‘.ùœserv²!ed,›=oif–#1pMÞossible.‘²!If“áclear‘¨/‰x³HøŽ‘ñ'undo‘°Ýis“non-zero,˜the“undo“list“assoMÞciated“with“the“curren²!tŽ¡‘.ùœline–¦fis“cleared.Ž©@q’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íextend‘Óõ‰ˆŠ#ØŽ“line‘Óõ‰ˆŠ#ØŽ“bu er‘yšâ(Þint‘¦flenâ)Ž¡‘.ùœÝEnsure–ž4that“Þrl_line_buffer“Ýhas“enough“space“to“hold“álen“Ýc²!haracters,‘ŸØpMÞossibly“real-Ž¡‘.ùœloMÞcating–¦fit“if“necessary‘ÿe.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ‘÷Íinitialize‘yšâ(Þvoidâ)Ž¡‘.ùœÝInitialize–n8or“re-initialize“Readline's“in²!ternal“state.‘5RIt's“not“strictly“necessary“to“callŽ¡‘.ùœthis;–¦fÞreadline()“Ýcalls“it“bMÞefore“reading“an²!y“input.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ‘÷Íding‘yšâ(Þvoidâ)Ž¡‘.ùœÝRing–¦fthe“terminal“bšMÞell,“ob˜eying“the“setting“of“Þbell-styleÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ‘÷Íalphabb"etic‘yšâ(Þint‘¦fcâ)Ž¡‘.ùœÝReturn–¦f1“if“ác‘PjÝis“an“alphabMÞetic“c²!haracter.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷ÍdisplašÞy‘Óõ‰ˆŠ#ØŽ“matc˜h‘Óõ‰ˆŠ#ØŽ“list‘yšâ(Þchar–¦f**matches,“int“len,“int“maxâ)Ž¡‘.ùœÝA‘#;con•²!v“enience–#[function“for“displa²!ying“a“list“of“strings“in“columnar“format“on“Read-Ž¡‘.ùœline's–woutput“stream.‘Þmatches“Ýis“the“list“of“strings,›»in“argv“format,˜suc²!h“as“a“list“ofŽ¡‘.ùœcompletion–é9matcš²!hes.‘žÎÞlen“Ýis“the“n˜um˜bMÞer“of“strings“in“ÞmatchesÝ,‘and“Þmax“Ýis“the“length“ofŽ¡‘.ùœthe–$ˆlongest“string“in“ÞmatchesÝ.‘²“This“function“uses“the“setting“of“Þprint-completions-Ž¡‘.ùœhorizontally–YðÝto“select“hoš²!w“the“matc˜hes“are“displa˜y˜ed“(see“Section“1.3.1“[ReadlineŽ¡‘.ùœInit–¦fFile“Syn²!tax],“page“4).ŽŸò‘!GThe–Ûfolloš²!wing“are“implemen˜ted“as“macros,‘èlik²!e“erasing“a“line.‘}÷ReadlineŽ¡‘.ùœdoMÞes–4Anot“use“all“of“a“terminal's“capabilities,‘W·and“this“function“will“return“v‘ÿdDalues“forŽ¡‘.ùœonly–¦fthose“capabilities“Readline“uses.ŽŸÏ‘Gë]2.4.12‘d(Alternate‘íMIn–áterfaceŽŽŸ<‘!GÝAn–_Âalternate“inš²!terface“is“a˜v‘ÿdDailable“to“plain“Þreadline()Ý.‘ ! ñSome“applications“need“toŽ¡‘Gin•²!terlea“v“e›|™k“eybMÞoard˜I/O‘|Žwith˜ le,–„õdevice,“or˜windo•²!w˜system˜I/O,˜t“ypically˜b“y˜using˜a˜mainŽ¡‘GlošMÞop–Seto“Þselect()“Ýon“v‘ÿdDarious“ le“descriptors.‘Â2T‘ÿeo“accomo˜date“this“need,‘cÿreadline“can“also“b˜eŽ¡‘Gin•²!v“ok“ed–¾=as“a“`callbacš²!k'“function“from“an“ev˜en˜t“loMÞop.‘%cThere“are“functions“a˜v‘ÿdDailable“to“mak˜eŽ¡‘Gthis‘¦feasy‘ÿe.ŽŽŒ‹&£ÑŸò‘GÝ38’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷ÍcallbacÞk‘Óõ‰ˆŠ#ØŽ“handler‘Óõ‰ˆŠ#ØŽ“install‘yšâ(Þconst–¦fchar“*prompt,Ž¤ 33‘DGrl_vcpfunc_t‘¦f*lhandlerâ)Ž¡‘.ùœÝSet–ùÅup“the“terminal“for“readline“I/O‘ù™and“displa²!y“the“initial“expanded“v‘ÿdDalue“of“ápromptÝ.Ž¡‘.ùœSa•²!v“e–Í:the“v‘ÿdDalue“of“álhandler‘–cÝto“use“as“a“function“to“call“when“a“complete“line“of“inputŽ¡‘.ùœhas–¦fbMÞeen“enš²!tered.‘ÝÝThe“function“tak˜es“the“text“of“the“line“as“an“argumen˜t.Ž©æe’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷ÍcallbacšÞk‘Óõ‰ˆŠ#ØŽ“read‘Óõ‰ˆŠ#ØŽ“c˜har‘yšâ(Þvoidâ)Ž¡‘.ùœÝWhenevš²!er– Þan“application“determines“that“k˜eybMÞoard“input“is“a˜v‘ÿdDailable,‘%=“rl_end)Ž© €‘EøDreturn‘¿ª(0);Ž¡‘:xðif–¿ª(count“<“0)Ž¦‘EøD{Ž¦‘Qw˜direction–¿ª=“-1;Ž¦‘Qw˜count–¿ª=“-count;Ž¦‘EøD}Ž¦‘:xðelseŽ¦‘EøDdirection–¿ª=“1;ŽŽŒ‹'±}Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—39ŽŽŽ ƒ3* ý­LÖ‘:xðÞ/*–¿ªFind“the“end“of“the“range“to“modify.“*/Ž¤ €‘:xðend–¿ª=“start“+“(count“*“direction);Ž©‘:xð/*–¿ªForce“it“to“be“within“range.“*/Ž¡‘:xðif–¿ª(end“>“rl_end)Ž¡‘EøDend–¿ª=“rl_end;Ž¡‘:xðelse–¿ªif“(end“<“0)Ž¡‘EøDend–¿ª=“0;Ž¦‘:xðif–¿ª(start“==“end)Ž¡‘EøDreturn‘¿ª(0);Ž¦‘:xðif–¿ª(start“>“end)Ž¡‘EøD{Ž¡‘Qw˜int–¿ªtemp“=“start;Ž¡‘Qw˜start–¿ª=“end;Ž¡‘Qw˜end–¿ª=“temp;Ž¡‘EøD}Ž¦‘:xð/*–¿ªTell“readline“that“we“are“modifying“the“line,Ž¡‘K·îso–¿ªit“will“save“the“undo“information.“*/Ž¡‘:xðrl_modifying–¿ª(start,“end);Ž¦‘:xðfor–¿ª(i“=“start;“i“!=“end;“i++)Ž¡‘EøD{Ž¡‘Qw˜if–¿ª(_rl_uppercase_p“(rl_line_buffer[i]))Ž¡‘\öìrl_line_buffer[i]–¿ª=“_rl_to_lower“(rl_line_buffer[i]);Ž¡‘Qw˜else–¿ªif“(_rl_lowercase_p“(rl_line_buffer[i]))Ž¡‘\öìrl_line_buffer[i]–¿ª=“_rl_to_upper“(rl_line_buffer[i]);Ž¡‘EøD}Ž¡‘:xð/*–¿ªMove“point“to“on“top“of“the“last“character“changed.“*/Ž¡‘:xðrl_point–¿ª=“(direction“==“1)“?“end“-“1“:“start;Ž¡‘:xðreturn‘¿ª(0);Ž¡‘.ùœ}ŽŸ"qÑGëT2.5‘™Readline–f@Signal“HandlingŽŽŸ“ç‘!GÝSignals–žare“asyncš²!hronous“ev˜en˜ts“sen˜t“to“a“proMÞcess“b˜y“the“Unix“k˜ernel,‘Xlsometimes“onŽ¤ 33‘GbšMÞehalf–Æ_of“another“pro˜cess.‘=ÈThey“are“inš²!tended“to“indicate“exceptional“ev˜en˜ts,‘]lik˜e“a“userŽ¡‘Gpressing–šˆthe“inš²!terrupt“k˜ey“on“his“terminal,‘œèor“a“net˜w˜ork“connection“bMÞeing“brok˜en.‘ÙèThere“isŽ¡‘Ga–*Çclass“of“signals“that“can“bšMÞe“sen²!t“to“the“pro˜cess“currenš²!tly“reading“input“from“the“k˜eybMÞoard.Ž¡‘GSince–3ÙReadline“c²!hanges“the“terminal“attributes“when“it“is“called,‘JÂit“needs“to“pšMÞerform“sp˜ecialŽ¡‘GproMÞcessing–OBwhen“sucš²!h“a“signal“is“receiv˜ed“in“order“to“restore“the“terminal“to“a“sane“state,‘`¯orŽ¡‘Gproš²!vide–¦fapplication“writers“with“functions“to“do“so“man˜ually‘ÿe.ŽŸ“ç‘!GReadline–Øúconš²!tains“an“in˜ternal“signal“handler“that“is“installed“for“a“n˜um˜bMÞer“of“signalsŽ¡‘G(ÞSIGINTÝ,–h]ÞSIGQUITÝ,“ÞSIGTERMÝ,“ÞSIGALRMÝ,“ÞSIGTSTPÝ,“ÞSIGTTINÝ,“and–_ÞSIGTTOUÝ).‘ ÈWhen“one“ofŽ¡‘Gthese–Ï_signals“is“receiv²!ed,‘Ùžthe“signal“handler“will“reset“the“terminal“attributes“to“those“thatŽŽŒ‹(½_Ÿò‘GÝ40’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Gwš²!ere–D‹in“e ect“bMÞefore“Þreadline()“Ýw˜as“called,‘Xreset“the“signal“handling“to“what“it“w˜as“bMÞeforeŽ¤ 33‘GÞreadline()–lTÝw²!as“called,‘ÝÏand“resend“the“signal“to“the“calling“application.‘ ! /§If“and“whenŽ¡‘Gthe–"calling“application's“signal“handler“returns,‘0ÐReadline“will“reinitialize“the“terminal“andŽ¡‘Gcon•²!tin“ue–dLto“accept“input.‘ÇÔWhen“a“ÞSIGINT“Ýis“receiv²!ed,‘q…the“Readline“signal“handler“pMÞerformsŽ¡‘Gsome–¦žadditional“w•²!ork,‘æ«whic“h–¦žwill“cause“anš²!y“partially-en˜tered“line“to“bšMÞe“ab˜orted“(see“theŽ¡‘Gdescription–¦fof“Þrl_free_line_state()“ÝbMÞelo²!w).Ž©¬Í‘!GThere–ëªis“an“additional“Readline“signal“handler,›for“ÞSIGWINCHÝ,˜whicš²!h“the“k˜ernel“sends“to“aŽ¡‘GproMÞcess–v`whenevš²!er“the“terminal's“size“c˜hanges“(for“example,‘ûif“a“user“resizes“an“ÞxtermÝ).‘ÍÛTheŽ¡‘GReadline–GtÞSIGWINCH“Ýhandler“upMÞdates“Readline's“in²!ternal“screen“size“information,‘o·and“thenŽ¡‘Gcalls–÷an²!y“ÞSIGWINCH“Ýsignal“handler“the“calling“application“has“installed.‘Readline“calls“theŽ¡‘Gapplication's–;ÞSIGWINCH“Ýsignal“handler“without“resetting“the“terminal“to“its“original“state.Ž¡‘GIf–Ö«the“application's“signal“handler“došMÞes“more“than“up˜date“its“idea“of“the“terminal“size“andŽ¡‘Greturn–Ž(for“example,‘’ìa“Þlongjmp“Ýbac²!k“to“a“main“prošMÞcessing“lo˜op),‘’ìit“àmust‘—øÝcall“Þrl_cleanup_Ž¡‘Gafter_signal()–¦fÝ(describšMÞed“b˜elo²!w),“to“restore“the“terminal“state.Ž¦‘!GReadline–o#proš²!vides“t˜w˜o“v‘ÿdDariables“that“allo˜w“application“writers“to“con˜trol“whether“or“notŽ¡‘Git–û.will“catcš²!h“certain“signals“and“act“on“them“when“they“are“receiv˜ed.‘Ü6It“is“impMÞortan˜t“thatŽ¡‘Gapplications–f“c²!hange“the“v›ÿdDalues“of“these“v˜ariables“only“when“calling“Þreadline()Ý,‘–not“in“aŽ¡‘Gsignal–¦fhandler,“so“Readline's“in²!ternal“signal“state“is“not“corrupted.ŽŸ“3’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷ÍcatcÞh‘Óõ‰ˆŠ#ØŽ“signalsŽ¡‘.ùœÝIf–w*this“v‘ÿdDariable“is“non-zero,›€œReadline“will“install“signal“handlers“for“ÞSIGINTÝ,˜ÞSIGQUITÝ,Ž¡‘.ùœÞSIGTERMÝ,–¦fÞSIGALRMÝ,“ÞSIGTSTPÝ,“ÞSIGTTINÝ,“and“ÞSIGTTOUÝ.Ž¦‘.ùœThe–¦fdefault“v‘ÿdDalue“of“Þrl_catch_signals“Ýis“1.ŽŸ“3’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷ÍcatcšÞh‘Óõ‰ˆŠ#ØŽ“sigwinc˜hŽ¡‘.ùœÝIf–¦fthis“v‘ÿdDariable“is“non-zero,“Readline“will“install“a“signal“handler“for“ÞSIGWINCHÝ.Ž¦‘.ùœThe–¦fdefault“v‘ÿdDalue“of“Þrl_catch_sigwinch“Ýis“1.ŽŸ ‘!GIf–¸0an“application“doMÞes“not“wish“to“ha•²!v“e–¸0Readline“catcš²!h“an˜y“signals,‘¼¢or“to“handle“signalsŽ¡‘Gother–¤Ãthan“those“Readline“catc²!hes“(ÞSIGHUPÝ,›äZfor“example),˜Readline“proš²!vides“con˜v˜enienceŽ¡‘Gfunctions–¦fto“do“the“necessary“terminal“and“inš²!ternal“state“clean˜up“upMÞon“receipt“of“a“signal.Ž©“3’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷ÍcleanÞup‘Óõ‰ˆŠ#ØŽ“after‘Óõ‰ˆŠ#ØŽ“signal‘yšâ(Þvoidâ)Ž¡‘.ùœÝThis–¦function“will“reset“the“state“of“the“terminal“to“what“it“w²!as“bMÞefore“Þreadline()Ž¡‘.ùœÝwš²!as–†called,‘Œ~and“remo˜v˜e“the“Readline“signal“handlers“for“all“signals,‘Œ~depMÞending“on“theŽ¡‘.ùœv‘ÿdDalues–¦fof“Þrl_catch_signals“Ýand“Þrl_catch_sigwinchÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ífree‘Óõ‰ˆŠ#ØŽ“line‘Óõ‰ˆŠ#ØŽ“state‘yšâ(Þvoidâ)Ž¡‘.ùœÝThis–µwill“free“anš²!y“partial“state“assoMÞciated“with“the“curren˜t“input“line“(undo“infor-Ž¡‘.ùœmation,‘z$anš²!y–˜partial“history“en˜try‘ÿe,‘z$an˜y“partially-en˜tered“k˜eybMÞoard“macro,‘z$and“an˜yŽ¡‘.ùœpartially-en•²!tered›½Õn“umeric˜argumen“t).‘ $)This˜should˜b•MÞe˜called˜b“efore˜Þrl_cleanup_Ž¡‘.ùœafter_signal()Ý.‘ LãThe– ½Readline“signal“handler“for“ÞSIGINT“Ýcalls“this“to“abMÞort“theŽ¡‘.ùœcurren²!t–¦finput“line.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íreset‘Óõ‰ˆŠ#ØŽ“after‘Óõ‰ˆŠ#ØŽ“signal‘yšâ(Þvoidâ)Ž¡‘.ùœÝThis–k¶will“reinitialize“the“terminal“and“reinstall“an²!y“Readline“signal“handlers,‘wsdepMÞend-Ž¡‘.ùœing–¦fon“the“v‘ÿdDalues“of“Þrl_catch_signals“Ýand“Þrl_catch_sigwinchÝ.ŽŽŒ‹)Æ*Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—41ŽŽŽ ƒ3* ý ÌÖ‘!GIf–»µan“application“doMÞes“not“wish“Readline“to“catcš²!h“ÞSIGWINCHÝ,‘ it“ma˜y“call“Þrl_resize_Ž¤ 33‘Gterminal()–BÝor“Þrl_set_screen_size()“Ýto“force“Readline“to“upMÞdate“its“idea“of“the“terminalŽ¡‘Gsize–¦fwhen“a“ÞSIGWINCH“Ýis“receiv²!ed.Ž©Rk’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íresize‘Óõ‰ˆŠ#ØŽ“terminal‘yšâ(Þvoidâ)Ž¡‘.ùœÝUpMÞdate–¦fReadline's“inš²!ternal“screen“size“b˜y“reading“v‘ÿdDalues“from“the“k˜ernel.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íset‘Óõ‰ˆŠ#ØŽ“screen‘Óõ‰ˆŠ#ØŽ“size‘yšâ(Þint–¦frows,“int“colsâ)Ž¡‘.ùœÝSet–¦fReadline's“idea“of“the“terminal“size“to“áro•²!ws›èÝro“ws–¦fand“ácols˜Ýcolumns.ŽŸ߈‘!GIf–¹an“application“doMÞes“not“w•²!an“t–¹to“install“a“ÞSIGWINCH“Ýhandler,‘but“is“still“in²!terested“inŽ¡‘Gthe–¦fscreen“dimensions,“Readline's“idea“of“the“screen“size“ma²!y“bMÞe“queried.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèvoid‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íget‘Óõ‰ˆŠ#ØŽ“screen‘Óõ‰ˆŠ#ØŽ“size‘yšâ(Þint–¦f*rows,“int“*colsâ)Ž¡‘.ùœÝReturn–GReadline's“idea“of“the“terminal's“size“in“the“v‘ÿdDariables“pMÞoinš²!ted“to“b˜y“the“argu-Ž¡‘.ùœmen²!ts.ŽŸ߈‘!GThe–¦ffolloš²!wing“functions“install“and“remo˜v˜e“Readline's“signal“handlers.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íset‘Óõ‰ˆŠ#ØŽ“signals‘yšâ(Þvoidâ)Ž¡‘.ùœÝInstall–7ÂReadline's“signal“handler“for“ÞSIGINTÝ,–\ÞSIGQUITÝ,“ÞSIGTERMÝ,“ÞSIGALRMÝ,“ÞSIGTSTPÝ,Ž¡‘.ùœÞSIGTTINÝ,–ô—ÞSIGTTOUÝ,“and›È#ÞSIGWINCHÝ,“depMÞending˜on˜the˜v‘ÿdDalues˜of˜Þrl_catch_signals˜ÝandŽ¡‘.ùœÞrl_catch_sigwinchÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íclear‘Óõ‰ˆŠ#ØŽ“signals‘yšâ(Þvoidâ)Ž¡‘.ùœÝRemo•²!v“e–¦fall“of“the“Readline“signal“handlers“installed“b²!y“Þrl_set_signals()Ý.ŽŸ¬U‘GëT2.6‘™Custom‘f@CompletersŽŽ©l¥‘!GÝTš²!ypically‘ÿe,‘ÿa–ýGprogram“that“reads“commands“from“the“user“has“a“w˜a˜y“of“disam˜biguatingŽ¡‘Gcommands–B and“data.‘± If“yš²!our“program“is“one“of“these,‘ithen“it“can“pro˜vide“completion“forŽ¡‘Gcommands,–ˆÃdata,“or–[bšMÞoth.‘Ñ„The“follo²!wing“sections“describ˜e“hoš²!w“y˜our“program“and“ReadlineŽ¡‘Gco•MÞop“erate–¦fto“pro²!vide“this“service.ŽŸ¬U‘Gë]2.6.1‘d(Ho–áw–íMCompleting“W‘þÄ£orksŽŽ¦‘!GÝIn–úorder“to“complete“some“text,‘;ßthe“full“list“of“pšMÞossible“completions“m²!ust“b˜e“a²!v‘ÿdDailable.Ž¡‘GThat–is,‘3&it“is“not“pMÞossible“to“accurately“expand“a“partial“wš²!ord“without“kno˜wing“all“of“theŽ¡‘GpMÞossible–3—wš²!ords“whic˜h“mak˜e“sense“in“that“con˜text.‘…pThe“Readline“library“pro˜vides“the“userŽ¡‘Ginš²!terface–ÿ!to“completion,‘Pand“t˜w˜o“of“the“most“common“completion“functions:‘S lename“andŽ¡‘Gusername.‘„F‘ÿeor–˜Úcompleting“other“tš²!ypMÞes“of“text,‘ÎÂy˜ou“m˜ust“write“y˜our“o˜wn“completion“function.Ž¡‘GThis–¦fsection“describMÞes“exactly“what“sucš²!h“functions“m˜ust“do,“and“pro˜vides“an“example.Ž¤l¥‘!GThere–¦fare“three“ma‘›»jor“functions“used“to“pMÞerform“completion:Ž¡‘-1.Ž‘'¿«The–6@user-in²!terface“function“Þrl_complete()Ý.‘ kThis“function“is“called“with“the“sameŽ¤ 33‘'¿«argumenš²!ts–YWas“other“bindable“Readline“functions:‘C¿ácoun˜t‘–WÝand“áin˜v˜oking‘¨/‰x³HøŽ‘ñ'k˜eyÝ.‘ö°It“isolatesŽ¡‘'¿«the–ƒ,w²!ord“to“bMÞe“completed“and“calls“Þrl_completion_matches()“Ýto“generate“a“list“ofŽ¡‘'¿«pšMÞossible–¼?completions.‘iIt“then“either“lists“the“p˜ossible“completions,‘Á¶inserts“the“p˜ossibleŽ¡‘'¿«completions,›ÞÎor–m actually“pMÞerforms“the“completion,˜depšMÞending“on“whic²!h“b˜eha²!vior“isŽ¡‘'¿«desired.ŽŽŒ‹*ÖŸò‘GÝ42’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘-2.Ž‘'¿«The–Œin²!ternal“function“Þrl_completion_matches()“Ýuses“an“application-supplied“ágener-Ž¤ 33‘'¿«ator‘:yÝfunction–qPto“generate“the“list“of“pMÞossible“matcš²!hes,‘¤ and“then“returns“the“arra˜y“ofŽ¡‘'¿«these–¯>matc²!hes.‘øeThe“caller“should“place“the“address“of“its“generator“function“in“Þrl_Ž¡‘'¿«completion_entry_functionÝ.ŽŸ¨Ò‘-3.Ž‘'¿«The–¿generator“function“is“called“repMÞeatedly“from“Þrl_completion_matches()Ý,‘íLreturningŽ¡‘'¿«a–ñÒstring“eacš²!h“time.‘À The“argumen˜ts“to“the“generator“function“are“átext‘.ÒÝand“ástateÝ.‘À átextŽ¡‘'¿«Ýis–Ùâthe“partial“w²!ord“to“bMÞe“completed.‘xQástate‘véÝis“zero“the“ rst“time“the“function“is“called,Ž¡‘'¿«alloš²!wing–G2the“generator“to“pMÞerform“an˜y“necessary“initialization,‘¯eand“a“pMÞositiv˜e“non-Ž¡‘'¿«zero–¡inš²!teger“for“eac˜h“subsequen˜t“call.‘Ñ›The“generator“function“returns“Þ(char‘¦f*)NULL“ÝtoŽ¡‘'¿«inform–’þÞrl_completion_matches()“Ýthat“there“are“no“more“pMÞossibilities“left.‘£¦UsuallyŽ¡‘'¿«the–§^generator“function“computes“the“list“of“pMÞossible“completions“when“ástate‘DeÝis“zero,Ž¡‘'¿«and–jreturns“them“one“at“a“time“on“subsequenš²!t“calls.‘«ßEac˜h“string“the“generator“functionŽ¡‘'¿«returns–Ô¨as“a“matcš²!h“m˜ust“bšMÞe“allo˜cated“with“Þmalloc()Ý;‘ëÉReadline“frees“the“strings“whenŽ¡‘'¿«it–¦fhas“ nished“with“them.Ž©ôí’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ‘÷Ícomplete‘yšâ(Þint–¦fignore,“int“invoking_keyâ)Ž¡‘.ùœÝComplete–¯tthe“w²!ord“at“or“bšMÞefore“p˜oinš²!t.‘ùY‘ÿeou“ha˜v˜e“supplied“the“function“that“doMÞes“theŽ¡‘.ùœinitial–ð™simple“matc²!hing“selection“algorithm“(see“Þrl_completion_matches()Ý).‘¼wTheŽ¡‘.ùœdefault–¦fis“to“do“ lename“completion.Ž¦’«‰V‘ÿeariableŽŽ‘Gèrl_compentry_func_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Ícompletion‘Óõ‰ˆŠ#ØŽ“enÞtry‘Óõ‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝThis–ÌJis“a“pMÞoin²!ter“to“the“generator“function“for“Þrl_completion_matches()Ý.‘OˆIf“theŽ¡‘.ùœv‘ÿdDalue–Ùîof“Þrl_completion_entry_function“Ýis“ÞNULL“Ýthen“the“default“ lename“generatorŽ¡‘.ùœfunction,–¦fÞrl_filename_completion_function()Ý,“is“used.ŽŸÖ|‘Gë]2.6.2‘d(Completion‘íMF‘þÄ£unctionsŽŽŸq‘!GÝHere–¦fis“the“complete“list“of“callable“completion“functions“presen²!t“in“Readline.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ícomplete‘Óõ‰ˆŠ#ØŽ“inÞternal‘yšâ(Þint‘¦fwhat_to_doâ)Ž¡‘.ùœÝComplete–‚ ! the“w²!ord“at“or“bšMÞefore“p˜oinš²!t.‘pÊáwhat‘¨/‰x³HøŽ–ñ'to‘¨/‰x³HøŽ“do‘ÚÝsa˜ys–‚ ! what“to“do“with“the“com-Ž¡‘.ùœpletion.›(éA‘¿cv‘ÿdDalue–¿jof“`Þ?Ý'“means“list“the“pMÞossible“completions.˜`ÞTABÝ'“means“do“standardŽ¡‘.ùœcompletion.›&'`Þ*Ý'–¾means“insert“all“of“the“pMÞossible“completions.˜`Þ!Ý'“means“to“displa²!y“allŽ¡‘.ùœof–!)the“pMÞossible“completions,›?Úif“there“is“more“than“one,˜as“w²!ell“as“pMÞerforming“partialŽ¡‘.ùœcompletion.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ‘÷Ícomplete‘yšâ(Þint–¦fignore,“int“invoking_keyâ)Ž¡‘.ùœÝComplete–ñèthe“w²!ord“at“or“bšMÞefore“p˜oinš²!t.‘ÀbY‘ÿeou“ha˜v˜e“supplied“the“function“that“doMÞesŽ¡‘.ùœthe–õàinitial“simple“matc²!hing“selection“algorithm“(see“Þrl_completion_matches()“ÝandŽ¡‘.ùœÞrl_completion_entry_functionÝ).›×XThe–Nädefault“is“to“do“ lename“completion.˜ThisŽ¡‘.ùœcalls–¦fÞrl_complete_internal()“Ýwith“an“argumenš²!t“depMÞending“on“áin˜v˜oking‘¨/‰x³HøŽ‘ñ'k˜eyÝ.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ípb"ossible‘Óõ‰ˆŠ#ØŽ“completions‘yšâ(Þint–¦fcount,“int“invoking_keyâ)Ž¡‘.ùœÝList–ÞÇthe“pMÞossible“completions.›‡See“description“of“Þrl_complete‘¦f()Ý.˜This“calls“Þrl_Ž¡‘.ùœcomplete_internal()–¦fÝwith“an“argumen²!t“of“`Þ?Ý'.ŽŽŒ‹+äæŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—43ŽŽŽ ƒ3* ý ÌÖ’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íinsert‘Óõ‰ˆŠ#ØŽ“completions‘yšâ(Þint–¦fcount,“int“invoking_keyâ)Ž¤ 33‘.ùœÝInsert– Ëthe“list“of“pMÞossible“completions“in²!to“the“line,‘"¤deleting“the“partially-completedŽ¡‘.ùœw²!ord.›WâSee–Ïdescription“of“Þrl_complete()Ý.˜This“calls“Þrl_complete_internal()“ÝwithŽ¡‘.ùœan–¦fargumen²!t“of“`Þ*Ý'.Ž©ê’¨sF‘ÿeunctionŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ícompletion‘Óõ‰ˆŠ#ØŽ“mob"de‘yšâ(Þrl_command_func_t‘¦f*cfuncâ)Ž¡‘.ùœÝReturns–´the“apppriate“v‘ÿdDalue“to“pass“to“Þrl_complete_internal()“ÝdepMÞending“onŽ¡‘.ùœwhether–Cœácfunc‘í Ýwš²!as“called“t˜wice“in“succession“and“the“v‘ÿdDalue“of“the“Þshow-all-if-Ž¡‘.ùœambiguous–ªÆÝv‘ÿdDariable.‘êþApplication-spMÞeci c“completion“functions“ma²!y“use“this“functionŽ¡‘.ùœto–¦fpresenš²!t“the“same“in˜terface“as“Þrl_complete()Ý.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèchar–™˜**“çrl‘Óõ‰ˆŠ#ØŽ–÷Ícompletion‘Óõ‰ˆŠ#ØŽ“matcÞhes‘yšâ(Þconst–¦fchar“*text,Ž¡‘DGrl_compentry_func_t‘¦f*entry_funcâ)Ž¡‘.ùœÝReturns–Œ^an“arraš²!y“of“strings“whic˜h“is“a“list“of“completions“for“átextÝ.‘ÄIf“there“are“noŽ¡‘.ùœcompletions,‘C;returns–#ÝÞNULLÝ.‘VCThe“ rst“enš²!try“in“the“returned“arra˜y“is“the“substitutionŽ¡‘.ùœfor–)GátextÝ.›´(The“remaining“en²!tries“are“the“pMÞossible“completions.˜The“arra²!y“is“terminatedŽ¡‘.ùœwith–¦fa“ÞNULL“ÝpMÞoin²!ter.ŽŸp'‘.ùœáenš²!try‘¨/‰x³HøŽ‘ñ'func‘ÍñÝis–#ía“function“of“t˜w˜o“args,‘>and“returns“a“Þchar‘¦f*Ý.‘²_The“ rst“argumen˜t“is“átextÝ.Ž¡‘.ùœThe–úsecond“is“a“state“argumenš²!t;‘3{it“is“zero“on“the“ rst“call,‘and“non-zero“on“subsequen˜tŽ¡‘.ùœcalls.‘ báenš²!try‘¨/‰x³HøŽ‘ñ'func‘—ùÝreturns–íõa“ÞNULL“ÝpMÞoin˜ter“to“the“caller“when“there“are“no“more“matc˜hes.Ž¦’¨sF‘ÿeunctionŽŽ‘Gèchar–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Í lename‘Óõ‰ˆŠ#ØŽ“completion‘Óõ‰ˆŠ#ØŽ“function‘yšâ(Þconst–¦fchar“*text,“intŽ¡‘DGstateâ)Ž¡‘.ùœÝA‘‹generator–°function“for“ lename“completion“in“the“general“case.‘¬öátext‘P°Ýis“a“partial“ le-Ž¡‘.ùœname.‘Ó=The–†…Bash“source“is“a“useful“reference“for“writing“custom“completion“functionsŽ¡‘.ùœ(the–¦fBash“completion“functions“call“this“and“other“Readline“functions).Ž¦’¨sF‘ÿeunctionŽŽ‘Gèchar–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Íusername‘Óõ‰ˆŠ#ØŽ“completion‘Óõ‰ˆŠ#ØŽ“function‘yšâ(Þconst–¦fchar“*text,Ž¡‘DGint‘¦fstateâ)Ž¡‘.ùœÝA‘l&completion–l5generator“for“usernames.‘Êwátext‘©5Ýconš²!tains“a“partial“username“preceded“b˜yŽ¡‘.ùœa–«ºrandom“c²!haracter“(usually“`Þ~Ý').‘íÚAs“with“all“completion“generators,‘­ástate‘HÁÝis“zero“onŽ¡‘.ùœthe–¦f rst“call“and“non-zero“for“subsequen²!t“calls.ŽŸyç‘Gë]2.6.3‘d(Completion‘íMV‘þÄ£ariablesŽŽŸ#ê’«‰ÝV‘ÿeariableŽŽ‘Gèrl_compentry_func_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Ícompletion‘Óõ‰ˆŠ#ØŽ“enÞtry‘Óõ‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝA‘{pMÞoin²!ter–“to“the“generator“function“for“Þrl_completion_matches()Ý.‘ûdÞNULL“Ýmeans“toŽ¡‘.ùœuse–¦fÞrl_filename_completion_function()Ý,“the“default“ lename“completer.Ž¦’«‰V‘ÿeariableŽŽ‘Gèrl_completion_func_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Íattempted‘Óõ‰ˆŠ#ØŽ“completion‘Óõ‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝA‘,„pMÞoinš²!ter–,§to“an“alternativ˜e“function“to“create“matc˜hes.‘pŸThe“function“is“called“withŽ¡‘.ùœátextÝ,–îûástartÝ,“and–Á áendÝ.‘‘qástart‘þ Ýand“áend‘/rÝare“indices“in“Þrl_line_buffer“Ýde ning“the“bMÞound-Ž¡‘.ùœaries–of“átextÝ,‘9]whicš²!h“is“a“c˜haracter“string.‘°oIf“this“function“exists“and“returns“ÞNULLÝ,‘9]or“ifŽ¡‘.ùœthis– v›ÿdDariable“is“set“to“ÞNULLÝ,‘Ôùthen“Þrl_complete()“Ýwill“call“the“v˜alue“of“Þrl_completion_Ž¡‘.ùœentry_function–hÚÝto“generate“matcš²!hes,‘u)otherwise“the“arra˜y“of“strings“returned“will“bMÞeŽŽŒ‹,ó¬Ÿò‘GÝ44’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘.ùœused.‘‹tIf–¯,this“function“sets“the“Þrl_attempted_completion_over“Ýv‘ÿdDariable“to“a“non-zeroŽ¤ 33‘.ùœv‘ÿdDalue,‘-óReadline–×will“not“pMÞerform“its“default“completion“ev²!en“if“this“function“returnsŽ¡‘.ùœno‘¦fmatc²!hes.Ž© ! =’«‰V‘ÿeariableŽŽ‘Gèrl_quote_func_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Í lename‘Óõ‰ˆŠ#ØŽ“quoting‘Óõ‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝA‘è–pšMÞoin²!ter–è§to“a“function“that“will“quote“a“ lename“in“an“application-sp˜eci c“fashion.Ž¡‘.ùœThis–·Kis“called“if“ lename“completion“is“bMÞeing“attempted“and“one“of“the“c²!haractersŽ¡‘.ùœin–ü’Þrl_filename_quote_characters“ÝappMÞears“in“a“completed“ lename.‘à`The“functionŽ¡‘.ùœis–ŠAcalled“with“átextÝ,›Ã8ámatc•²!h‘¨/‰x³HøŽ‘ñ't“yp•MÞeÝ,˜and›ŠAáquote‘¨/‰x³HøŽ‘ñ'p“oin²!terÝ.‘‰oThe˜átext‘ÇAÝis˜the˜ lename˜to˜b“eŽ¡‘.ùœquoted.‘ [The›%{ámatc•²!h‘¨/‰x³HøŽ‘ñ't“ypMÞe‘‚Ýis˜either˜ÞSINGLE_MATCHÝ,‘…@if˜there˜is˜only˜one˜completionŽ¡‘.ùœmatc²!h,‘Ì‚or–ÄãÞMULT_MATCHÝ.‘9TSome“functions“use“this“to“decide“whether“or“not“to“insert“aŽ¡‘.ùœclosing–“±quote“cš²!haracter.‘‚LThe“áquote‘¨/‰x³HøŽ‘ñ'pMÞoin˜ter‘\ÚÝis“a“pMÞoin˜ter“to“an˜y“opMÞening“quote“c˜haracterŽ¡‘.ùœthe–¦fuser“tš²!ypMÞed.‘ÝÝSome“functions“c˜hoMÞose“to“reset“this“c˜haracter.Ž¦’«‰V‘ÿeariableŽŽ‘Gèrl_dequote_func_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Í lename‘Óõ‰ˆŠ#ØŽ“dequoting‘Óõ‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝA‘Ž¼pMÞoinš²!ter–ŽÂto“a“function“that“will“remo˜v˜e“application-spMÞeci c“quoting“c˜haracters“fromŽ¡‘.ùœa–çž lename“bMÞefore“completion“is“attempted,‘÷ìso“those“cš²!haracters“do“not“in˜terfere“withŽ¡‘.ùœmatc²!hing–“áthe“text“against“names“in“the“ lesystem.‘¦OIt“is“called“with“átextÝ,‘Ï@the“textŽ¡‘.ùœof–#the“wš²!ord“to“bMÞe“dequoted,‘‚@and“áquote‘¨/‰x³HøŽ‘ñ'c˜harÝ,‘‚@whic˜h“is“the“quoting“c˜haracter“thatŽ¡‘.ùœdelimits–ê the“ lename“(usually“`Þ'Ý'“or“`Þ"Ý').‘¨ÎIf“áquote‘¨/‰x³HøŽ‘ñ'cš²!har‘³5Ýis“zero,‘úõthe“ lename“w˜as“notŽ¡‘.ùœin–¦fan“em²!bMÞedded“string.Ž¦’«‰V‘ÿeariableŽŽ‘Gèrl_linebuf_func_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷ÍcÞhar‘Óõ‰ˆŠ#ØŽ“is‘Óõ‰ˆŠ#ØŽ“quoted‘Óõ‰ˆŠ#ØŽ“pŽ¡‘.ùœÝA‘kÿpšMÞoin²!ter–l2to“a“function“to“call“that“determines“whether“or“not“a“sp˜eci c“c²!haracterŽ¡‘.ùœin–#^the“line“bu er“is“quoted,‘Bœaccording“to“whatevš²!er“quoting“mec˜hanism“the“programŽ¡‘.ùœcalling–úÎReadline“uses.‘¤«The“function“is“called“with“t•²!w“o›úÎargumen“ts:‘ˆátextÝ,‘ the˜text˜of˜theŽ¡‘.ùœline,–´­and›±ÒáindexÝ,“the˜index˜of˜the˜c²!haracter˜in˜the˜line.‘!It˜is˜used˜to˜decide˜whether˜aŽ¡‘.ùœc²!haracter–ŸFfound“in“Þrl_completer_word_break_characters“Ýshould“bMÞe“used“to“breakŽ¡‘.ùœw²!ords–¦ffor“the“completer.Ž¦’«‰V‘ÿeariableŽŽ‘Gèrl_compignore_func_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Íignore‘Óõ‰ˆŠ#ØŽ“some‘Óõ‰ˆŠ#ØŽ“completions‘Óõ‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝThis–†hfunction,›¾hif“de ned,˜is“called“b²!y“the“completer“when“real“ lename“completionŽ¡‘.ùœis–¸done,‘1after“all“the“matcš²!hing“names“ha˜v˜e“bMÞeen“generated.‘+ÔIt“is“passed“a“ÞNULL“Ýter-Ž¡‘.ùœminated–³Zarraš²!y“of“matc˜hes.‘¸The“ rst“elemen˜t“(Þmatches[0]Ý)“is“the“maximal“substringŽ¡‘.ùœcommon–tEto“all“matcš²!hes.‘Í(This“function“can“re-arrange“the“list“of“matc˜hes“as“required,Ž¡‘.ùœbut–¦feacš²!h“elemen˜t“deleted“from“the“arra˜y“m˜ust“bMÞe“freed.Ž¦’«‰V‘ÿeariableŽŽ‘Gèrl_icppfunc_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Ídirectory‘Óõ‰ˆŠ#ØŽ“completion‘Óõ‰ˆŠ#ØŽ“hob"okŽ¡‘.ùœÝThis–qAfunction,›ã÷if“de ned,˜is“allo•²!w“ed–qAto“mošMÞdify“the“directory“p˜ortion“of“ lenamesŽ¡‘.ùœReadline–c«completes.‘¬It“is“called“with“the“address“of“a“string“(the“curren²!t“directoryŽ¡‘.ùœname)–v,as“an“argumenš²!t,‘ªand“ma˜y“moMÞdify“that“string.‘M/If“the“string“is“replaced“withŽ¡‘.ùœa–ÌMnew“string,‘Æthe“old“v‘ÿdDalue“should“bšMÞe“freed.‘O’An²!y“mo˜di ed“directory“name“shouldŽ¡‘.ùœha•²!v“e–€Êa“trailing“slash.‘ÑTThe“mošMÞdi ed“v‘ÿdDalue“will“b˜e“displa•²!y“ed–€Êas“part“of“the“completion,Ž¡‘.ùœreplacing–c9the“directory“pšMÞortion“of“the“pathname“the“user“t²!yp˜ed.‘ÇyIt“returns“an“in²!tegerŽ¡‘.ùœthat–÷,should“bšMÞe“non-zero“if“the“function“mo˜di es“its“directory“argumen²!t.‘Ð0It“could“b˜eŽ¡‘.ùœused–¦fto“expand“sym²!bMÞolic“links“or“shell“v‘ÿdDariables“in“pathnames.ŽŽŒ‹-Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—45ŽŽŽ ƒ3* ý ÌÖ’«‰V‘ÿeariableŽŽ‘Gèrl_compdisp_func_t–™˜*“çrl‘Óõ‰ˆŠ#ØŽ–÷Ícompletion‘Óõ‰ˆŠ#ØŽ“displašÞy‘Óõ‰ˆŠ#ØŽ“matc˜hes‘Óõ‰ˆŠ#ØŽ“hob"okŽ¤ 33‘.ùœÝIf–£xnon-zero,‘×Athen“this“is“the“address“of“a“function“to“call“when“completing“a“wš²!ord“w˜ouldŽ¡‘.ùœnormally–¨¶displaš²!y“the“list“of“pMÞossible“matc˜hes.‘‰MThis“function“is“called“in“lieu“of“ReadlineŽ¡‘.ùœdisplaš²!ying–…‡the“list.‘{?It“tak˜es“three“argumen˜ts:‘œ(Þchar‘¦f**ámatc˜hesÝ,‘½NÞint“án˜um‘¨/‰x³HøŽ‘ñ'matc˜hesÝ,Ž¡‘.ùœÞint–Sámax‘¨/‰x³HøŽ‘ñ'lengthÝ)“where“ámatcš²!hes‘Æ—Ýis“the“arra˜y“of“matc˜hing“strings,‘c¿án˜um‘¨/‰x³HøŽ‘ñ'matc˜hes‘Æ—Ýis“theŽ¡‘.ùœn•²!um“bMÞer–Œžof“strings“in“that“arra²!y‘ÿe,‘‘Æand“ámax‘¨/‰x³HøŽ‘ñ'length“Ýis“the“length“of“the“longest“string“inŽ¡‘.ùœthat–_@arraš²!y‘ÿe.‘Æ&Readline“pro˜vides“a“con˜v˜enience“function,–m{Þrl_display_match_listÝ,“thatŽ¡‘.ùœtakš²!es–-®care“of“doing“the“displa˜y“to“Readline's“output“stream.‘sµThat“function“ma˜y“bMÞeŽ¡‘.ùœcalled–¦ffrom“this“hoMÞok.Ž© Í’«‰V‘ÿeariableŽŽ‘Gèconst–™˜char“*“çrl‘Óõ‰ˆŠ#ØŽ–÷Íbasic‘Óõ‰ˆŠ#ØŽ“wšÞord‘Óõ‰ˆŠ#ØŽ“break‘Óõ‰ˆŠ#ØŽ“c˜haractersŽ¡‘.ùœÝThe–Oobasic“list“of“cš²!haracters“that“signal“a“break“bMÞet˜w˜een“w˜ords“for“the“completerŽ¡‘.ùœroutine.‘M¼The–v[default“v›ÿdDalue“of“this“v˜ariable“is“the“cš²!haracters“whic˜h“break“w˜ords“forŽ¡‘.ùœcompletion–¦fin“Bash:‘ÝÝÞ"“\t\n\"\\'`@$><=;|&{("Ý.Ž¦’«‰V‘ÿeariableŽŽ‘Gèconst–™˜char“*“çrl‘Óõ‰ˆŠ#ØŽ–÷Íbasic‘Óõ‰ˆŠ#ØŽ“quote‘Óõ‰ˆŠ#ØŽ“cÞharactersŽ¡‘.ùœÝA–¦flist“of“quote“cš²!haracters“whic˜h“can“cause“a“w˜ord“break.Ž¦’«‰V‘ÿeariableŽŽ‘Gèconst–™˜char“*“çrl‘Óõ‰ˆŠ#ØŽ–÷Ícompleter‘Óõ‰ˆŠ#ØŽ“wšÞord‘Óõ‰ˆŠ#ØŽ“break‘Óõ‰ˆŠ#ØŽ“c˜haractersŽ¡‘.ùœÝThe–Ïlist“of“cš²!haracters“that“signal“a“break“bMÞet˜w˜een“w˜ords“for“Þrl_complete_Ž¡‘.ùœinternal()Ý.‘ÝÝThe–¦fdefault“list“is“the“v‘ÿdDalue“of“Þrl_basic_word_break_charactersÝ.Ž¦’«‰V‘ÿeariableŽŽ‘Gèconst–™˜char“*“çrl‘Óõ‰ˆŠ#ØŽ–÷Ícompleter‘Óõ‰ˆŠ#ØŽ“quote‘Óõ‰ˆŠ#ØŽ“cÞharactersŽ¡‘.ùœÝA‘ Clist– ^of“cš²!haracters“whic˜h“can“bMÞe“used“to“quote“a“substring“of“the“line.‘ÄCompletionŽ¡‘.ùœoMÞccurs–&­on“the“en²!tire“substring,‘@8and“within“the“substring“Þrl_completer_word_break_Ž¡‘.ùœcharacters–8\Ýare“treated“as“anš²!y“other“c˜haracter,‘\Ùunless“they“also“appMÞear“within“thisŽ¡‘.ùœlist.Ž¦’«‰V‘ÿeariableŽŽ‘Gèconst–™˜char“*“çrl‘Óõ‰ˆŠ#ØŽ–÷Í lename‘Óõ‰ˆŠ#ØŽ“quote‘Óõ‰ˆŠ#ØŽ“cÞharactersŽ¡‘.ùœÝA‘ ]list– wof“cš²!haracters“that“cause“a“ lename“to“bMÞe“quoted“b˜y“the“completer“when“theyŽ¡‘.ùœappMÞear–¦fin“a“completed“ lename.‘ÝÝThe“default“is“the“n²!ull“string.Ž¦’«‰V‘ÿeariableŽŽ‘Gèconst–™˜char“*“çrl‘Óõ‰ˆŠ#ØŽ–÷Íspb"ecial‘Óõ‰ˆŠ#ØŽ“pre xesŽ¡‘.ùœÝThe–S­list“of“cš²!haracters“that“are“w˜ord“break“c˜haracters,‘d8but“should“bMÞe“left“in“átext‘­ÝwhenŽ¡‘.ùœit–ô¡is“passed“to“the“completion“function.‘¢œPrograms“can“use“this“to“help“determine“whatŽ¡‘.ùœkind–„Àof“completing“to“do.‘Ò¦F‘ÿeor“instance,‘‹{Bash“sets“this“v‘ÿdDariable“to“Þ"Ý$Þ@"“Ýso“that“it“canŽ¡‘.ùœcomplete–¦fshell“v‘ÿdDariables“and“hostnames.Ž¦’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ícompletion‘Óõ‰ˆŠ#ØŽ“query‘Óõ‰ˆŠ#ØŽ“itemsŽ¡‘.ùœÝUp–YAto“this“manš²!y“items“will“bMÞe“displa˜y˜ed“in“respšMÞonse“to“a“p˜ossible-completions“call.Ž¡‘.ùœAfter–nQthat,‘y‰wš²!e“ask“the“user“if“she“is“sure“she“w˜an˜ts“to“see“them“all.‘Ë,The“default“v‘ÿdDalueŽ¡‘.ùœis‘¦f100.Ž¦’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ícompletion‘Óõ‰ˆŠ#ØŽ“appb"end‘Óõ‰ˆŠ#ØŽ“cÞharacterŽ¡‘.ùœÝWhen–ýºa“single“completion“alternativš²!e“matc˜hes“at“the“end“of“the“command“line,‘thisŽ¡‘.ùœcš²!haracter–’?is“appMÞended“to“the“inserted“completion“text.‘ÐThe“default“is“a“space“c˜haracterŽŽŒ‹.òŸò‘GÝ46’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘.ùœ(`‘¦f').‘·Setting–2this“to“the“nš²!ull“c˜haracter“(`Þ\0Ý')“prev˜en˜ts“an˜ything“bšMÞeing“app˜ended“auto-Ž¤ 33‘.ùœmatically‘ÿe.‘ÍThis–søcan“bMÞe“cš²!hanged“in“custom“completion“functions“to“pro˜vide“the“\mostŽ¡‘.ùœsensible–?öwš²!ord“separator“c˜haracter"“according“to“an“application-spMÞeci c“command“lineŽ¡‘.ùœsyn²!tax‘¦fspMÞeci cation.Ž©ff’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ícompletion‘Óõ‰ˆŠ#ØŽ“suppress‘Óõ‰ˆŠ#ØŽ“appb"endŽ¡‘.ùœÝIf›@—non-zero,‘g#árl‘¨/‰x³HøŽ–ñ'completion‘¨/‰x³HøŽ“appMÞend‘¨/‰x³HøŽ“c•²!haracter‘ ÀÝis˜not˜appMÞended˜to˜matc“hes˜at˜the˜endŽ¡‘.ùœof–Ošthe“command“line,‘`öas“describšMÞed“ab˜o•²!v“e.‘ÀîIt–Ošis“set“to“0“b˜efore“an²!y“application-sp˜eci cŽ¡‘.ùœcompletion–¦ffunction“is“called.Ž¦’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ícompletion‘Óõ‰ˆŠ#ØŽ“mark‘Óõ‰ˆŠ#ØŽ“symlink‘Óõ‰ˆŠ#ØŽ“dirsŽ¡‘.ùœÝIf–ѧnon-zero,‘Üwa“slash“will“bšMÞe“app˜ended“to“completed“ lenames“that“are“sym²!b˜olic“linksŽ¡‘.ùœto–ærdirectory“names,‘ Ösub‘›»ject“to“the“v›ÿdDalue“of“the“user-settable“ámark-directories‘YôÝv˜ariable.Ž¡‘.ùœThis–¹v‘ÿdDariable“exists“so“that“application“completion“functions“can“o•²!v“erride–¹the“user'sŽ¡‘.ùœglobal–Zípreference“(set“via“the“ámark-symlink²!ed-directories‘ÎoÝReadline“v‘ÿdDariable)“if“appro-Ž¡‘.ùœpriate.‘É)This–hJv‘ÿdDariable“is“set“to“the“user's“preference“bMÞefore“an²!y“application“completionŽ¡‘.ùœfunction–_)is“called,›Zso“unless“that“function“moMÞdi es“the“v‘ÿdDalue,˜the“user's“preferencesŽ¡‘.ùœare‘¦fhonored.Ž¦’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íignore‘Óõ‰ˆŠ#ØŽ“completion‘Óõ‰ˆŠ#ØŽ“duplicatesŽ¡‘.ùœÝIf–¦fnon-zero,“then“duplicates“in“the“matcš²!hes“are“remo˜v˜ed.‘ÝÝThe“default“is“1.Ž¦’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Í lename‘Óõ‰ˆŠ#ØŽ“completion‘Óõ‰ˆŠ#ØŽ“desiredŽ¡‘.ùœÝNon-zero–Ñmeans“that“the“results“of“the“matc²!hes“are“to“bMÞe“treated“as“ lenames.‘]ÄThisŽ¡‘.ùœis–.³àalways‘ËÝzero“on“enš²!try‘ÿe,‘F£and“can“only“bMÞe“c˜hanged“within“a“completion“en˜try“generatorŽ¡‘.ùœfunction.‘ì¢If–¨it“is“set“to“a“non-zero“v‘ÿdDalue,‘W8directory“names“ha•²!v“e–¨a“slash“appMÞendedŽ¡‘.ùœand–5ÑReadline“attempts“to“quote“completed“ lenames“if“they“conš²!tain“an˜y“c˜haractersŽ¡‘.ùœin–­áÞrl_filename_quote_characters“Ýand“Þrl_filename_quoting_desired“Ýis“set“to“aŽ¡‘.ùœnon-zero‘¦fv‘ÿdDalue.Ž¦’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Í lename‘Óõ‰ˆŠ#ØŽ“quoting‘Óõ‰ˆŠ#ØŽ“desiredŽ¡‘.ùœÝNon-zero–^nmeans“that“the“results“of“the“matc²!hes“are“to“bMÞe“quoted“using“double“quotesŽ¡‘.ùœ(or–â¤an“application-spMÞeci c“quoting“mecš²!hanism)“if“the“completed“ lename“con˜tains“an˜yŽ¡‘.ùœcš²!haracters–¤Ÿin“Þrl_filename_quote_charsÝ.‘ÝEThis“is“àalways‘Š·Ýnon-zero“on“en˜try‘ÿe,‘¤úand“canŽ¡‘.ùœonly–ÊôbMÞe“cš²!hanged“within“a“completion“en˜try“generator“function.‘”·The“quoting“is“e ectedŽ¡‘.ùœvia–¦fa“call“to“the“function“pMÞoinš²!ted“to“b˜y“Þrl_filename_quoting_functionÝ.Ž¦’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íattempted‘Óõ‰ˆŠ#ØŽ“completion‘Óõ‰ˆŠ#ØŽ“o•Þv“erŽ¡‘.ùœÝIf– Oan“application-spMÞeci c“completion“function“assigned“to“Þrl_attempted_Ž¡‘.ùœcompletion_function–bÝsets“this“v›ÿdDariable“to“a“non-zero“v˜alue,‘•Readline“will“notŽ¡‘.ùœpMÞerform–Žºits“default“ lename“completion“ev²!en“if“the“application's“completion“functionŽ¡‘.ùœreturns–¦fno“matcš²!hes.‘ÝÝIt“should“bMÞe“set“only“b˜y“an“application's“completion“function.Ž¦’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Ícompletion‘Óõ‰ˆŠ#ØŽ“tÞypb"eŽ¡‘.ùœÝSet–61to“a“cš²!haracter“describing“the“t˜ypMÞe“of“completion“Readline“is“curren˜tly“attempt-Ž¡‘.ùœing;‘.qsee–the“description“of“Þrl_complete_internal()“Ý(see“Section“2.6.2“[CompletionŽ¡‘.ùœF‘ÿeunctions],–¦fpage“42)“for“the“list“of“c²!haracters.ŽŽŒ‹/# Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—47ŽŽŽ ƒ3* ý ÌÖ’«‰V‘ÿeariableŽŽ‘Gèint‘™˜çrl‘Óõ‰ˆŠ#ØŽ–÷Íinhibit‘Óõ‰ˆŠ#ØŽ“completionŽ¤ 33‘.ùœÝIf–d`this“v‘ÿdDariable“is“non-zero,‘q•completion“is“inhibited.‘ÇÛThe“completion“c²!haracter“will“bMÞeŽ¡‘.ùœinserted–¦fas“an²!y“other“bMÞound“to“Þself-insertÝ.ŽŸ‘Gë]2.6.4‘d(A–íMShort“Completion“ExampleŽŽŸ33‘!GÝHere–q}is“a“small“application“demonstrating“the“use“of“the“GNU‘q/Readline“library‘ÿe.‘våIt“is“calledŽ¡‘GÞfilemanÝ,‘lGand–D´the“source“coMÞde“resides“in“`Þexamples/fileman.cÝ'.‘¸ÆThis“sample“applicationŽ¡‘Gpro²!vides–#þcompletion“of“command“names,›>line“editing“features,˜and“access“to“the“history“list.ŽŽŒ‹03fŸò‘GÝ48’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘.ùœÞ/*–¿ªfileman.c“--“A“tiny“application“which“demonstrates“how“to“use“theŽ¤ €‘@8šGNU–¿ªReadline“library.‘ TThis“application“interactively“allows“usersŽ¡‘@8što–¿ªmanipulate“files“and“their“modes.“*/Ž©‘.ùœ#include‘¿ªŽ¡‘.ùœ#include‘¿ªŽ¡‘.ùœ#include‘¿ªŽ¡‘.ùœ#include‘¿ªŽ¡‘.ùœ#include‘¿ªŽ¦‘.ùœ#include‘¿ªŽ¡‘.ùœ#include‘¿ªŽ¦‘.ùœextern–¿ªchar“*xmalloc“();Ž¦‘.ùœ/*–¿ªThe“names“of“functions“that“actually“do“the“manipulation.“*/Ž¡‘.ùœint–¿ªcom_list“__P((char“*));Ž¡‘.ùœint–¿ªcom_view“__P((char“*));Ž¡‘.ùœint–¿ªcom_rename“__P((char“*));Ž¡‘.ùœint–¿ªcom_stat“__P((char“*));Ž¡‘.ùœint–¿ªcom_pwd“__P((char“*));Ž¡‘.ùœint–¿ªcom_delete“__P((char“*));Ž¡‘.ùœint–¿ªcom_help“__P((char“*));Ž¡‘.ùœint–¿ªcom_cd“__P((char“*));Ž¡‘.ùœint–¿ªcom_quit“__P((char“*));Ž¦‘.ùœ/*–¿ªA“structure“which“contains“information“on“the“commands“this“programŽ¡‘@8šcan–¿ªunderstand.“*/Ž¦‘.ùœtypedef–¿ªstruct“{Ž¡‘:xðchar–¿ª*name;“/*“User“printable“name“of“the“function.“*/Ž¡‘:xðrl_icpfunc_t–¿ª*func;“/*“Function“to“call“to“do“the“job.“*/Ž¡‘:xðchar–¿ª*doc;“/*“Documentation“for“this“function.‘ T*/Ž¡‘.ùœ}‘¿ªCOMMAND;Ž¦‘.ùœCOMMAND–¿ªcommands[]“=“{Ž¡‘:xð{–¿ª"cd",“com_cd,“"Change“to“directory“DIR"“},Ž¡‘:xð{–¿ª"delete",“com_delete,“"Delete“FILE"“},Ž¡‘:xð{–¿ª"help",“com_help,“"Display“this“text"“},Ž¡‘:xð{–¿ª"?",“com_help,“"Synonym“for“`help'"“},Ž¡‘:xð{–¿ª"list",“com_list,“"List“files“in“DIR"“},Ž¡‘:xð{–¿ª"ls",“com_list,“"Synonym“for“`list'"“},Ž¡‘:xð{–¿ª"pwd",“com_pwd,“"Print“the“current“working“directory"“},Ž¡‘:xð{–¿ª"quit",“com_quit,“"Quit“using“Fileman"“},Ž¡‘:xð{–¿ª"rename",“com_rename,“"Rename“FILE“to“NEWNAME"“},Ž¡‘:xð{–¿ª"stat",“com_stat,“"Print“out“statistics“on“FILE"“},Ž¡‘:xð{–¿ª"view",“com_view,“"View“the“contents“of“FILE"“},Ž¡‘:xð{–¿ª(char“*)NULL,“(rl_icpfunc_t“*)NULL,“(char“*)NULL“}Ž¡‘.ùœ};ŽŽŒ‹16oŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—49ŽŽŽ ƒ3* ý­LÖ‘.ùœÞ/*–¿ªForward“declarations.“*/Ž¤ €‘.ùœchar–¿ª*stripwhite“();Ž¡‘.ùœCOMMAND–¿ª*find_command“();Ž©‘.ùœ/*–¿ªThe“name“of“this“program,“as“taken“from“argv[0].“*/Ž¡‘.ùœchar‘¿ª*progname;Ž¦‘.ùœ/*–¿ªWhen“non-zero,“this“means“the“user“is“done“using“this“program.“*/Ž¡‘.ùœint‘¿ªdone;Ž¦‘.ùœchar‘¿ª*Ž¡‘.ùœdupstr‘¿ª(s)Ž¡‘K·îint‘¿ªs;Ž¡‘.ùœ{Ž¡‘:xðchar‘¿ª*r;Ž¦‘:xðr–¿ª=“xmalloc“(strlen“(s)“+“1);Ž¡‘:xðstrcpy–¿ª(r,“s);Ž¡‘:xðreturn‘¿ª(r);Ž¡‘.ùœ}Ž¦‘.ùœmain–¿ª(argc,“argv)Ž¡‘K·îint‘¿ªargc;Ž¡‘K·îchar‘¿ª**argv;Ž¡‘.ùœ{Ž¡‘:xðchar–¿ª*line,“*s;Ž¦‘:xðprogname–¿ª=“argv[0];Ž¦‘:xðinitialize_readline–¿ª();“/*“Bind“our“completer.“*/Ž¦‘:xð/*–¿ªLoop“reading“and“executing“lines“until“the“user“quits.“*/Ž¡‘:xðfor–¿ª(“;“done“==“0;“)Ž¡‘EøD{Ž¡‘Qw˜line–¿ª=“readline“("FileMan:“");Ž¦‘Qw˜if‘¿ª(!line)Ž¡‘\öìbreak;Ž¦‘Qw˜/*–¿ªRemove“leading“and“trailing“whitespace“from“the“line.Ž¡‘b¶–Then,–¿ªif“there“is“anything“left,“add“it“to“the“history“listŽ¡‘b¶–and–¿ªexecute“it.“*/Ž¡‘Qw˜s–¿ª=“stripwhite“(line);Ž¦‘Qw˜if‘¿ª(*s)Ž¡‘\öì{Ž¡‘hv@add_history‘¿ª(s);Ž¡‘hv@execute_line‘¿ª(s);ŽŽŒ‹2>sŸò‘GÝ50’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘\öìÞ}Ž©‘Qw˜free‘¿ª(line);Ž¤ €‘EøD}Ž¡‘:xðexit‘¿ª(0);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¿ªExecute“a“command“line.“*/Ž¡‘.ùœintŽ¡‘.ùœexecute_line‘¿ª(line)Ž¡‘K·îchar‘¿ª*line;Ž¡‘.ùœ{Ž¡‘:xðregister–¿ªint“i;Ž¡‘:xðCOMMAND‘¿ª*command;Ž¡‘:xðchar‘¿ª*word;Ž¦‘:xð/*–¿ªIsolate“the“command“word.“*/Ž¡‘:xði–¿ª=“0;Ž¡‘:xðwhile–¿ª(line[i]“&&“whitespace“(line[i]))Ž¡‘EøDi++;Ž¡‘:xðword–¿ª=“line“+“i;Ž¦‘:xðwhile–¿ª(line[i]“&&“!whitespace“(line[i]))Ž¡‘EøDi++;Ž¦‘:xðif‘¿ª(line[i])Ž¡‘EøDline[i++]–¿ª=“'\0';Ž¦‘:xðcommand–¿ª=“find_command“(word);Ž¦‘:xðif‘¿ª(!command)Ž¡‘EøD{Ž¡‘Qw˜fprintf–¿ª(stderr,“"%s:“No“such“command“for“FileMan.\n",“word);Ž¡‘Qw˜return‘¿ª(-1);Ž¡‘EøD}Ž¦‘:xð/*–¿ªGet“argument“to“command,“if“any.“*/Ž¡‘:xðwhile–¿ª(whitespace“(line[i]))Ž¡‘EøDi++;Ž¦‘:xðword–¿ª=“line“+“i;Ž¦‘:xð/*–¿ªCall“the“function.“*/Ž¡‘:xðreturn–¿ª((*(command->func))“(word));Ž¡‘.ùœ}Ž¦‘.ùœ/*–¿ªLook“up“NAME“as“the“name“of“a“command,“and“return“a“pointer“to“thatŽ¡‘@8šcommand.‘ TReturn–¿ªa“NULL“pointer“if“NAME“isn't“a“command“name.“*/Ž¡‘.ùœCOMMAND‘¿ª*ŽŽŒ‹3CDŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—51ŽŽŽ ƒ3* ý ÌÖ‘.ùœÞfind_command‘¿ª(name)Ž¤ €‘K·îchar‘¿ª*name;Ž¡‘.ùœ{Ž¡‘:xðregister–¿ªint“i;Ž©‘:xðfor–¿ª(i“=“0;“commands[i].name;“i++)Ž¡‘EøDif–¿ª(strcmp“(name,“commands[i].name)“==“0)Ž¡‘Qw˜return‘¿ª(&commands[i]);Ž¦‘:xðreturn–¿ª((COMMAND“*)NULL);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¿ªStrip“whitespace“from“the“start“and“end“of“STRING.‘ TReturn“a“pointerŽ¡‘@8šinto–¿ªSTRING.“*/Ž¡‘.ùœchar‘¿ª*Ž¡‘.ùœstripwhite‘¿ª(string)Ž¡‘K·îchar‘¿ª*string;Ž¡‘.ùœ{Ž¡‘:xðregister–¿ªchar“*s,“*t;Ž¦‘:xðfor–¿ª(s“=“string;“whitespace“(*s);“s++)Ž¡‘EøD;Ž¦‘:xðif–¿ª(*s“==“0)Ž¡‘EøDreturn‘¿ª(s);Ž¦‘:xðt–¿ª=“s“+“strlen“(s)“-“1;Ž¡‘:xðwhile–¿ª(t“>“s“&&“whitespace“(*t))Ž¡‘EøDt--;Ž¡‘:xð*++t–¿ª=“'\0';Ž¦‘:xðreturn‘¿ªs;Ž¡‘.ùœ}Ž¦‘.ùœ/*–¿ª****************************************************************“*/Ž¡‘.ùœ/*’{iÔ*/Ž¡‘.ùœ/*‘gyôInterface–¿ªto“Readline“Completion‘[ú */Ž¡‘.ùœ/*’{iÔ*/Ž¡‘.ùœ/*–¿ª****************************************************************“*/Ž¦‘.ùœchar–¿ª*command_generator“__P((const“char“*,“int));Ž¡‘.ùœchar–¿ª**fileman_completion“__P((const“char“*,“int,“int));Ž¦‘.ùœ/*–¿ªTell“the“GNU“Readline“library“how“to“complete.‘ TWe“want“to“try“toŽ¡‘@8šcomplete–¿ªon“command“names“if“this“is“the“first“word“in“the“line,“orŽ¡‘@8šon–¿ªfilenames“if“not.“*/Ž¡‘.ùœinitialize_readline‘¿ª()Ž¡‘.ùœ{Ž¡‘:xð/*–¿ªAllow“conditional“parsing“of“the“~/.inputrc“file.“*/ŽŽŒ‹4GПò‘GÝ52’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘:xðÞrl_readline_name–¿ª=“"FileMan";Ž©‘:xð/*–¿ªTell“the“completer“that“we“want“a“crack“first.“*/Ž¤ €‘:xðrl_attempted_completion_function–¿ª=“fileman_completion;Ž¡‘.ùœ}Ž¦‘.ùœ/*–¿ªAttempt“to“complete“on“the“contents“of“TEXT.‘ TSTART“and“ENDŽ¡‘@8šbound–¿ªthe“region“of“rl_line_buffer“that“contains“the“word“toŽ¡‘@8šcomplete.› TTEXT–¿ªis“the“word“to“complete.˜We“can“use“the“entireŽ¡‘@8šcontents–¿ªof“rl_line_buffer“in“case“we“want“to“do“some“simpleŽ¡‘@8šparsing.‘ TReturnthe–¿ªarray“of“matches,“or“NULL“if“there“aren't“any.“*/Ž¡‘.ùœchar‘¿ª**Ž¡‘.ùœfileman_completion–¿ª(text,“start,“end)Ž¡‘K·îconst–¿ªchar“*text;Ž¡‘K·îint–¿ªstart,“end;Ž¡‘.ùœ{Ž¡‘:xðchar‘¿ª**matches;Ž¦‘:xðmatches–¿ª=“(char“**)NULL;Ž¦‘:xð/*–¿ªIf“this“word“is“at“the“start“of“the“line,“then“it“is“a“commandŽ¡‘K·îto–¿ªcomplete.‘ TOtherwise“it“is“the“name“of“a“file“in“the“currentŽ¡‘K·îdirectory.‘¿ª*/Ž¡‘:xðif–¿ª(start“==“0)Ž¡‘EøDmatches–¿ª=“rl_completion_matches“(text,“command_generator);Ž¦‘:xðreturn‘¿ª(matches);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¿ªGenerator“function“for“command“completion.‘ TSTATE“lets“usŽ¡‘@8šknow–¿ªwhether“to“start“from“scratch;“without“any“stateŽ¡‘@8š(i.e.–¿ªSTATE“==“0),“then“we“start“at“the“top“of“the“list.“*/Ž¡‘.ùœchar‘¿ª*Ž¡‘.ùœcommand_generator–¿ª(text,“state)Ž¡‘K·îconst–¿ªchar“*text;Ž¡‘K·îint‘¿ªstate;Ž¡‘.ùœ{Ž¡‘:xðstatic–¿ªint“list_index,“len;Ž¡‘:xðchar‘¿ª*name;Ž¦‘:xð/*–¿ªIf“this“is“a“new“word“to“complete,“initialize“now.‘ TThisŽ¡‘K·îincludes–¿ªsaving“the“length“of“TEXT“for“efficiency,“andŽ¡‘K·îinitializing–¿ªthe“index“variable“to“0.“*/Ž¡‘:xðif‘¿ª(!state)Ž¡‘EøD{Ž¡‘Qw˜list_index–¿ª=“0;Ž¡‘Qw˜len–¿ª=“strlen“(text);Ž¡‘EøD}ŽŽŒ‹5M¬Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—53ŽŽŽ ƒ3* ý ÌÖ‘:xðÞ/*–¿ªReturn“the“next“name“which“partially“matches“from“theŽ¤ €‘K·îcommand–¿ªlist.“*/Ž¡‘:xðwhile–¿ª(name“=“commands[list_index].name)Ž¡‘EøD{Ž¡‘Qw˜list_index++;Ž©‘Qw˜if–¿ª(strncmp“(name,“text,“len)“==“0)Ž¡‘\öìreturn‘¿ª(dupstr(name));Ž¡‘EøD}Ž¦‘:xð/*–¿ªIf“no“names“matched,“then“return“NULL.“*/Ž¡‘:xðreturn–¿ª((char“*)NULL);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¿ª****************************************************************“*/Ž¡‘.ùœ/*’{iÔ*/Ž¡‘.ùœ/*’„8FFileMan‘¿ªCommands’›6î*/Ž¡‘.ùœ/*’{iÔ*/Ž¡‘.ùœ/*–¿ª****************************************************************“*/Ž¦‘.ùœ/*–¿ªString“to“pass“to“system“().‘ TThis“is“for“the“LIST,“VIEW“and“RENAMEŽ¡‘@8šcommands.‘¿ª*/Ž¡‘.ùœstatic–¿ªchar“syscom[1024];Ž¦‘.ùœ/*–¿ªList“the“file(s)“named“in“arg.“*/Ž¡‘.ùœcom_list‘¿ª(arg)Ž¡‘K·îchar‘¿ª*arg;Ž¡‘.ùœ{Ž¡‘:xðif‘¿ª(!arg)Ž¡‘EøDarg–¿ª=“"";Ž¦‘:xðsprintf–¿ª(syscom,“"ls“-FClg“%s",“arg);Ž¡‘:xðreturn–¿ª(system“(syscom));Ž¡‘.ùœ}Ž¦‘.ùœcom_view‘¿ª(arg)Ž¡‘K·îchar‘¿ª*arg;Ž¡‘.ùœ{Ž¡‘:xðif–¿ª(!valid_argument“("view",“arg))Ž¡‘EøDreturn‘¿ª1;Ž¦‘:xðsprintf–¿ª(syscom,“"more“%s",“arg);Ž¡‘:xðreturn–¿ª(system“(syscom));Ž¡‘.ùœ}Ž¦‘.ùœcom_rename‘¿ª(arg)Ž¡‘K·îchar‘¿ª*arg;Ž¡‘.ùœ{Ž¡‘:xðtoo_dangerous‘¿ª("rename");ŽŽŒ‹6T¦Ÿò‘GÝ54’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘:xðÞreturn‘¿ª(1);Ž¤ €‘.ùœ}Ž©‘.ùœcom_stat‘¿ª(arg)Ž¡‘K·îchar‘¿ª*arg;Ž¡‘.ùœ{Ž¡‘:xðstruct–¿ªstat“finfo;Ž¦‘:xðif–¿ª(!valid_argument“("stat",“arg))Ž¡‘EøDreturn‘¿ª(1);Ž¦‘:xðif–¿ª(stat“(arg,“&finfo)“==“-1)Ž¡‘EøD{Ž¡‘Qw˜perror‘¿ª(arg);Ž¡‘Qw˜return‘¿ª(1);Ž¡‘EøD}Ž¦‘:xðprintf–¿ª("Statistics“for“`%s':\n",“arg);Ž¦‘:xðprintf–¿ª("%s“has“%d“link%s,“and“is“%d“byte%s“in“length.\n",“arg,Ž¡‘hv@finfo.st_nlink,Ž¡‘hv@(finfo.st_nlink–¿ª==“1)“?“""“:“"s",Ž¡‘hv@finfo.st_size,Ž¡‘hv@(finfo.st_size–¿ª==“1)“?“""“:“"s");Ž¡‘:xðprintf–¿ª("Inode“Last“Change“at:“%s",“ctime“(&finfo.st_ctime));Ž¡‘:xðprintf–¿ª("‘"}üLast“access“at:“%s",“ctime“(&finfo.st_atime));Ž¡‘:xðprintf–¿ª("‘þ¨Last“modified“at:“%s",“ctime“(&finfo.st_mtime));Ž¡‘:xðreturn‘¿ª(0);Ž¡‘.ùœ}Ž¦‘.ùœcom_delete‘¿ª(arg)Ž¡‘K·îchar‘¿ª*arg;Ž¡‘.ùœ{Ž¡‘:xðtoo_dangerous‘¿ª("delete");Ž¡‘:xðreturn‘¿ª(1);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¿ªPrint“out“help“for“ARG,“or“for“all“of“the“commands“if“ARG“isŽ¡‘@8šnot–¿ªpresent.“*/Ž¡‘.ùœcom_help‘¿ª(arg)Ž¡‘K·îchar‘¿ª*arg;Ž¡‘.ùœ{Ž¡‘:xðregister–¿ªint“i;Ž¡‘:xðint–¿ªprinted“=“0;Ž¦‘:xðfor–¿ª(i“=“0;“commands[i].name;“i++)Ž¡‘EøD{Ž¡‘Qw˜if–¿ª(!*arg“||“(strcmp“(arg,“commands[i].name)“==“0))Ž¡‘\öì{ŽŽŒ‹7YþŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—55ŽŽŽ ƒ3* ý ÌÖ‘hv@Þprintf–¿ª("%s\t\t%s.\n",“commands[i].name,“commands[i].doc);Ž¤ €‘hv@printed++;Ž¡‘\öì}Ž¡‘EøD}Ž©‘:xðif‘¿ª(!printed)Ž¡‘EøD{Ž¡‘Qw˜printf–¿ª("No“commands“match“`%s'.‘ TPossibilties“are:\n",“arg);Ž¦‘Qw˜for–¿ª(i“=“0;“commands[i].name;“i++)Ž¡‘\öì{Ž¡‘hv@/*–¿ªPrint“in“six“columns.“*/Ž¡‘hv@if–¿ª(printed“==“6)Ž¡‘sõ”{Ž¡‘tèprinted–¿ª=“0;Ž¡‘tèprintf‘¿ª("\n");Ž¡‘sõ”}Ž¦‘hv@printf–¿ª("%s\t",“commands[i].name);Ž¡‘hv@printed++;Ž¡‘\öì}Ž¦‘Qw˜if‘¿ª(printed)Ž¡‘\öìprintf‘¿ª("\n");Ž¡‘EøD}Ž¡‘:xðreturn‘¿ª(0);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¿ªChange“to“the“directory“ARG.“*/Ž¡‘.ùœcom_cd‘¿ª(arg)Ž¡‘K·îchar‘¿ª*arg;Ž¡‘.ùœ{Ž¡‘:xðif–¿ª(chdir“(arg)“==“-1)Ž¡‘EøD{Ž¡‘Qw˜perror‘¿ª(arg);Ž¡‘Qw˜return‘¿ª1;Ž¡‘EøD}Ž¦‘:xðcom_pwd‘¿ª("");Ž¡‘:xðreturn‘¿ª(0);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¿ªPrint“out“the“current“working“directory.“*/Ž¡‘.ùœcom_pwd‘¿ª(ignore)Ž¡‘K·îchar‘¿ª*ignore;Ž¡‘.ùœ{Ž¡‘:xðchar–¿ªdir[1024],“*s;Ž¦‘:xðs–¿ª=“getcwd“(dir,“sizeof(dir)“-“1);ŽŽŒ‹8_Ÿò‘GÝ56’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘:xðÞif–¿ª(s“==“0)Ž¤ €‘EøD{Ž¡‘Qw˜printf–¿ª("Error“getting“pwd:“%s\n",“dir);Ž¡‘Qw˜return‘¿ª1;Ž¡‘EøD}Ž©‘:xðprintf–¿ª("Current“directory“is“%s\n",“dir);Ž¡‘:xðreturn‘¿ª0;Ž¡‘.ùœ}Ž¦‘.ùœ/*–¿ªThe“user“wishes“to“quit“using“this“program.‘ TJust“set“DONEŽ¡‘@8šnon-zero.‘¿ª*/Ž¡‘.ùœcom_quit‘¿ª(arg)Ž¡‘K·îchar‘¿ª*arg;Ž¡‘.ùœ{Ž¡‘:xðdone–¿ª=“1;Ž¡‘:xðreturn‘¿ª(0);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¿ªFunction“which“tells“you“that“you“can't“do“this.“*/Ž¡‘.ùœtoo_dangerous‘¿ª(caller)Ž¡‘K·îchar‘¿ª*caller;Ž¡‘.ùœ{Ž¡‘:xðfprintf‘¿ª(stderr,Ž¡‘n5ê"%s:–¿ªToo“dangerous“for“me“to“distribute.\n"Ž¡‘n5êcaller);Ž¡‘:xðfprintf–¿ª(stderr,“"Write“it“yourself.\n");Ž¡‘.ùœ}Ž¦‘.ùœ/*–¿ªReturn“non-zero“if“ARG“is“a“valid“argument“for“CALLER,Ž¡‘@8šelse–¿ªprint“an“error“message“and“return“zero.“*/Ž¡‘.ùœintŽ¡‘.ùœvalid_argument–¿ª(caller,“arg)Ž¡‘K·îchar–¿ª*caller,“*arg;Ž¡‘.ùœ{Ž¡‘:xðif–¿ª(!arg“||“!*arg)Ž¡‘EøD{Ž¡‘Qw˜fprintf–¿ª(stderr,“"%s:“Argument“required.\n",“caller);Ž¡‘Qw˜return‘¿ª(0);Ž¡‘EøD}Ž¦‘:xðreturn‘¿ª(1);Ž¡‘.ùœ}ŽŽŒ‹9c`Ÿò‘GÝConcept‘¦fIndex’`¶)57ŽŽŽ ƒ3* ý ÌÖ‘GëKConcept‘z³IndexŽŽ ×– ÿQÅ›‘GëTCŽ¤´p‘Góo´‹Ç cmr9¬command‘Tediting‘ª‘ÅUó%¼j‘¹ cmti9Ð.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ i¬1Ž©Í‘GëTEŽ¡‘G¬editing–Tcommand“lines‘ ! =‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Š¬1Ž¦‘GëTIŽ¡‘G¬initialization–T le,“readlineC‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¸\¬4ŽŸ ‘Gin¾9teraction,‘Treadline}°‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘òý¬1Ž¦‘GëTKŽ¡‘G¬kill‘Tring‘D‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘‘‘¬3ŽŸ ‘Gkilling‘Ttext‘bõ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ØA¬2ŽŽ ÿQÅ›’óáðëTNŽ¤ù’óáð¬notation,‘Treadline‘ᬑÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Vø¬1Ž©#üÕ’óáðëTRŽ¡’óáð¬readline,‘Tfunction‘$X‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘™¥¬21Ž¦’óáðëTVŽ¡’óáð¬v‘ÿ|rariables,‘Treadline3Š‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¨×¬4Ž¦’óáðëTYŽ¡’óáð¬y¾9anking‘Ttext;Û‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘±'¬2ŽŽŽŽŒ‹:gÏŸò‘GÝ58’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3*Œ‹;sÉŸò‘GÝF›ÿeunction–¦fand“V˜ariable“Index’œÃ59ŽŽŽ ƒ3* ý ÌÖ‘GëKF›þaGunction–z³and“V˜ariable“IndexŽŽ _3* ýÆÌÖ‘ ! ‰£ÙÜ+ŽŽ©é?‘GóߤN cmtt9É_rl_digit_p‘¿‹‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 4ج36Ž¤ "D‘GÉ_rl_digit_value‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬37Ž¡‘GÉ_rl_lowercase_p‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬36Ž¡‘GÉ_rl_to_lower‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬36Ž¡‘GÉ_rl_to_upper‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬36Ž¡‘GÉ_rl_uppercase_p‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬36ŽŸç‘GëTAŽ¦‘GÉabort‘T(C-g)a«‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Öø¬17Ž¡‘GÉaccept-line–T(Newline“or“Return)‘¶&‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘+s¬12ŽŸç‘GëTBŽ¦‘GÉbackward-char‘T(C-b)‘+\‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ©¬12Ž¡‘GÉbackward-delete-char‘T(Rubout)‘›y‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Ƭ14Ž¡‘GÉbackward-kill-line–T(C-x“Rubout)‘‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ‰S¬15Ž¡‘GÉbackward-kill-word‘T(M-ž™š¸hŽ‘êÌŸù@‰ff“úŸÀ­DELŽŽ‘êÌŸÙš‰ff“úŽ‘ü8ž™š¸iŽŽ‘•É)‘Í­‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Bú¬15Ž¡‘GÉbackward-word‘T(M-b)‘+\‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ©¬12Ž¡‘GÉbeginning-of-history‘T(M-<)‘!בÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ —$¬13Ž¡‘GÉbeginning-of-line‘T(C-a)x4‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘í¬12Ž¡‘GbAÇell-st¾9yle‘÷z‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘lƬ5ŽŸ§‘GëTCŽ¦‘GÉcall-last-kbd-macro–T(C-x“e)‘—-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ z¬17Ž¡‘GÉcapitalize-word‘T(M-c)‘ÑÈ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘G¬14Ž¡‘GÉcharacter-search‘T(C-])‘¤þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘K¬18Ž¡‘GÉcharacter-search-backward‘T(M-C-])‘èQ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘]ž¬18Ž¡‘GÉclear-screen‘T(C-l)‘X&‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ís¬12Ž¡‘Gcommen¾9t-bAÇegin‘f‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ûf¬5Ž¡‘GÉcomplete‘T(ž™š¸hŽ‘êÌŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘êÌŸÙš‰ffÐlŽ‘8ªž™š¸iŽŽ‘ÑŒÉ)‘˜ë‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 8¬16Ž¡‘Gcompletion-query-items:°‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¯ý¬5Ž¡‘Gcon•¾9v“ert-meta‘‚‡‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘÷Ô¬5Ž¡‘GÉcopy-backward-word‘T()‘ÑÈ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘G¬15Ž¡‘GÉcopy-forward-word‘T()‘þ’‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘s߬16Ž¡‘GÉcopy-region-as-kill‘T()‘¤þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘K¬15ŽŸç‘GëTDŽ¦‘GÉdelete-char‘T(C-d)‘„ð‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ú=¬14Ž¡‘GÉdelete-char-or-list‘T()‘¤þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘K¬17Ž¡‘GÉdelete-horizontal-space‘T()‘!בÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ —$¬15Ž¡‘GÉdigit-argument–T(óAßê’óáðÉemacs-editing-mode‘T(C-e)Kj‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘À·¬18Ž¡’óáðenable-k¾9eypad‘d‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ú¬5Ž¡’óáðÉend-kbd-macro–T(C-x“))‘£é‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 6¬17Ž¡’óáðÉend-of-history‘T(M->)‘þ’‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘s߬13Ž¡’óáðÉend-of-line‘T(C-e)‘„ð‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ú=¬12Ž¡’óáðÉexchange-point-and-mark–T(C-x“C-x)‘ºr‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ /¿¬18Ž¡’óáðexpand-tilde‘ž‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘`¬5ŽŸ!èz’óáðëTFŽ¦’óáðÉforward-backward-delete-char‘T()‘Aå‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘·2¬14Ž¡’óáðÉforward-char‘T(C-f)‘X&‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ís¬12Ž¡’óáðÉforward-search-history‘T(C-s)‘ÈC‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ =¬13Ž¡’óáðÉforward-word‘T(M-f)‘X&‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ís¬12ŽŸ \Œ’óáðëTHŽ¦’óáð¬history-preserv•¾9e-pAÇoin“t‘4þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ªJ¬5Ž¡’óáðÉhistory-search-backward‘T()‘!בÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ —$¬13Ž¡’óáðÉhistory-search-forward‘T() ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘“í¬13Ž¡’óáðhorizon¾9tal-scroll-moAÇde‘š®‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ú¬6ŽŸ \Œ’óáðëTIŽ¦’óáð¬input-meta‘!.‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘–z¬6Ž¡’óáðÉinsert-comment‘T(M-#)‘þ’‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘s߬18Ž¡’óáðÉinsert-completions‘T(M-*)Kj‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘À·¬16Ž¡’óáðisearc¾9h-terminators ! ¿‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘€ ¬6ŽŸ \Œ’óáðëTKŽ¦’óáð¬k¾9eymap‘`D‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Õ‘¬6Ž¡’óáðÉkill-line‘T(C-k)‘Þ„‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ SѬ15Ž¡’óáðÉkill-region‘T()‘ N‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ €›¬15Ž¡’óáðÉkill-whole-line‘T()‘X&‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ís¬15Ž¡’óáðÉkill-word‘T(M-d)‘Þ„‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ SѬ15ŽŸ \Œ’óáðëTMŽ¦’óáð¬mark-moAÇdi ed-lines‘ª‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘“ö¬6Ž¡’óáðmark-symlink¾9ed-directories‘½‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 2T¬6Ž¡’óáðmatc¾9h-hidden- les‘åÄ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ [¬6Ž¡’óáðÉmenu-complete‘T()‘±º‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ '¬16Ž¡’óáðmeta- agZ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÏZ¬6ŽŽŽŽŒ‹<t)Ÿò‘GÝ60’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3*ŸÚ ýÆÌÖ‘GëTNŽŸ©m‘GÉnext-history‘T(C-n)‘X&‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ís¬13Ž¤ à‘GÉnon-incremental-forward-search-history‘T(M-n)Ž© ‘%‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘q¬13Ž¡‘GÉnon-incremental-reverse-search-history‘T(M-p)Ž¦‘%‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘q¬13Ž©t ‘GëTOŽŸ©m‘G¬output-meta}¢‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘òî¬6Ž¡‘GÉoverwrite-mode‘T()‘„ð‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ú=¬15Ž¦‘GëTPŽ©©m‘G¬page-completions‘äÞ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Z+¬7Ž¡‘GÉpossible-completions‘T(M-?)‘!בÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ —$¬16Ž¡‘GÉprefix-meta‘T(ž™š¸hŽ‘êÌŸù@‰ff¤TŸÀ­ESCŽŽ‘êÌŸÙš‰ff¤TŽ‘ ’ž™š¸iŽŽ‘¥tÉ)‘¨™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ æ¬17Ž¡‘GÉprevious-history‘T(C-p)‘¤þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘K¬12Ž¤?÷‘GëTQŽ¦‘GÉquoted-insert–T(C-q“or“C-v)‘–‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ e¬14Ž¡‘GëTRŽ¦‘GÉre-read-init-file–T(C-x“C-r)‘—-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ z¬17Ž¤ à‘GÉreadlineè‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘‹5¬21Ž¡‘GÉredraw-current-line‘T()‘¤þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘K¬12Ž¡‘GÉreverse-search-history‘T(C-r)‘ÈC‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ =¬13Ž¡‘GÉrevert-line‘T(M-r)‘„ð‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ú=¬17Ž¡‘GÉrl_add_defun‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬28Ž¡‘GÉrl_add_funmap_entryY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬31Ž¡‘GÉrl_add_undo‘¿‹‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 4ج32Ž¡‘GÉrl_alphabetic‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬36Ž¡‘GÉrl_already_promptedY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬25Ž¡‘GÉrl_attempted_completion_functionBú‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¸G¬43Ž¡‘GÉrl_attempted_completion_over‘ö"‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ko¬46Ž¡‘GÉrl_basic_quote_characters‘|€‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ñͬ45Ž¡‘GÉrl_basic_word_break_characters‘œŽ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Û¬45Ž¡‘GÉrl_begin_undo_groupY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬32Ž¡‘GÉrl_bind_key‘¿‹‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 4ج30Ž¡‘GÉrl_bind_key_in_map‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬30Ž¡‘GÉrl_binding_keymap‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬27Ž¡‘GÉrl_callback_handler_install‘"ì‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘˜9¬38Ž¡‘GÉrl_callback_handler_remove‘O¶‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ŭ38Ž¡‘GÉrl_callback_read_char‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬38Ž¡‘GÉrl_catch_signals‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬40Ž¡‘GÉrl_catch_sigwinch‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬40Ž¡‘GÉrl_char_is_quoted_pY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬44Ž¡‘GÉrl_cleanup_after_signal‘Ö‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Ka¬40Ž¡‘GÉrl_clear_message‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬33Ž¡‘GÉrl_clear_pending_input‘Þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ x+¬35ŽŽ ýÆÌÖ’óáðÉrl_clear_signals‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬41Ž¤ ))’óáðÉrl_complete‘¿‹‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 4ج42Ž¡’óáðÉrl_complete_internal,q‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¡¾¬42Ž¡’óáðÉrl_completer_quote_characters‘ÉX‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘>¥¬45Ž¡’óáðÉrl_completer_word_break_characters‘g‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Ž´¬45Ž¡’óáðÉrl_completion_append_character‘œŽ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Û¬45Ž¡’óáðÉrl_completion_display_matches_hook‘g‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Ž´¬45Ž¡’óáðÉrl_completion_entry_functionš‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘‡ç¬42,‘T43Ž¡’óáðÉrl_completion_mark_symlink_dirsoÄ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘å¬46Ž¡’óáðÉrl_completion_matches‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬43Ž¡’óáðÉrl_completion_mode‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬43Ž¡’óáðÉrl_completion_query_items‘|€‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ñͬ45Ž¡’óáðÉrl_completion_suppress_append‘ÉX‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘>¥¬46Ž¡’óáðÉrl_completion_type‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬46Ž¡’óáðÉrl_copy_keymap‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬29Ž¡’óáðÉrl_copy_text‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬34Ž¡’óáðÉrl_crlfB²‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘·ÿ¬33Ž¡’óáðÉrl_delete_text‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬34Ž¡’óáðÉrl_deprep_term_function‘Ö‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Ka¬26Ž¡’óáðÉrl_deprep_terminal‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬35Ž¡’óáðÉrl_dingB²‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘·ÿ¬36Ž¡’óáðÉrl_directory_completion_hook‘ö"‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ko¬44Ž¡’óáðÉrl_discard_keymap‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬29Ž¡’óáðÉrl_dispatching‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬25Ž¡’óáðÉrl_display_match_list‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬36Ž¡’óáðÉrl_do_undo‘ìU‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ a¢¬32Ž¡’óáðÉrl_doneB²‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘·ÿ¬24Ž¡’óáðÉrl_editing_mode‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬28Ž¡’óáðÉrl_endo|‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘äɬ24Ž¡’óáðÉrl_end_undo_group‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬32Ž¡’óáðÉrl_erase_empty_lineY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬25Ž¡’óáðÉrl_event_hook‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬26Ž¡’óáðÉrl_execute_next‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬35Ž¡’óáðÉrl_executing_keymapY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬26Ž¡’óáðÉrl_executing_macro‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬27Ž¡’óáðÉrl_expand_prompt‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬34Ž¡’óáðÉrl_explicit_arg‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬28Ž¡’óáðÉrl_extend_line_buffer‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬36Ž¡’óáðÉrl_filename_completion_desired‘œŽ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Û¬46Ž¡’óáðÉrl_filename_completion_functionoÄ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘å¬43Ž¡’óáðÉrl_filename_dequoting_function‘œŽ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Û¬44Ž¡’óáðÉrl_filename_quote_characters‘ö"‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ko¬45Ž¡’óáðÉrl_filename_quoting_desired‘"ì‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘˜9¬46Ž¡’óáðÉrl_filename_quoting_function‘ö"‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ko¬44Ž¡’óáðÉrl_forced_update_display‘©J‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ —¬33Ž¡’óáðÉrl_free_line_state‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬40Ž¡’óáðÉrl_free_undo_list‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬32Ž¡’óáðÉrl_function_dumper‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬31Ž¡’óáðÉrl_function_of_keyseq‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬31Ž¡’óáðÉrl_funmap_names‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬31Ž¡’óáðÉrl_generic_bind‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬30Ž¡’óáðÉrl_get_keymap‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬29ŽŽŽŽŒ‹=µÊŸò‘GÝF›ÿeunction–¦fand“V˜ariable“Index’œÃ61ŽŽŽ ƒ3*ŸÚ ýÆÌÖ‘GÉrl_get_keymap_by_name‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬29Ž¤ ))‘GÉrl_get_keymap_name‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬29Ž¡‘GÉrl_get_screen_size‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬41Ž¡‘GÉrl_get_termcap‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬37Ž¡‘GÉrl_getcB²‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘·ÿ¬35Ž¡‘GÉrl_getc_function‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬26Ž¡‘GÉrl_gnu_readline_p‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬25Ž¡‘GÉrl_ignore_completion_duplicatesoÄ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘å¬46Ž¡‘GÉrl_ignore_some_completions_function‘ì‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ aê¬44Ž¡‘GÉrl_inhibit_completion‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬47Ž¡‘GÉrl_initialize‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬36Ž¡‘GÉrl_insert_completions‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬43Ž¡‘GÉrl_insert_text‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬34Ž¡‘GÉrl_instream‘¿‹‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 4ج25Ž¡‘GÉrl_invoking_keyseqsY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬31Ž¡‘GÉrl_invoking_keyseqs_in_map‘O¶‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ŭ31Ž¡‘GÉrl_kill_text‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬34Ž¡‘GÉrl_last_func‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬26Ž¡‘GÉrl_library_version‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬25Ž¡‘GÉrl_line_buffer‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬24Ž¡‘GÉrl_list_funmap_names,q‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¡¾¬31Ž¡‘GÉrl_macro_bind‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬37Ž¡‘GÉrl_macro_dumper‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬37Ž¡‘GÉrl_make_bare_keymapY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬29Ž¡‘GÉrl_make_keymap‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬29Ž¡‘GÉrl_markB²‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘·ÿ¬24Ž¡‘GÉrl_message‘ìU‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ a¢¬33Ž¡‘GÉrl_modifying‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬32Ž¡‘GÉrl_named_function‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬31Ž¡‘GÉrl_num_chars_to_read,q‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¡¾¬24Ž¡‘GÉrl_numeric_arg‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬28Ž¡‘GÉrl_on_new_line‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬33Ž¡‘GÉrl_on_new_line_with_prompt‘O¶‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ŭ33Ž¡‘GÉrl_outstream‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬26Ž¡‘GÉrl_parse_and_bind‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬31Ž¡‘GÉrl_pending_input‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬24Ž¡‘GÉrl_pointè‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘‹5¬24Ž¡‘GÉrl_possible_completions‘Ö‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Ka¬42Ž¡‘GÉrl_pre_input_hook‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬26Ž¡‘GÉrl_prep_term_function‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬26Ž¡‘GÉrl_prep_terminal‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬35Ž¡‘GÉrl_prompt‘‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Žl¬25Ž¡‘GÉrl_push_macro_inputY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬34Ž¡‘GÉrl_read_init_file‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬31Ž¡‘GÉrl_read_key‘¿‹‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 4ج34Ž¡‘GÉrl_readline_name‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬25Ž¡‘GÉrl_readline_state‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬27Ž¡‘GÉrl_readline_versionY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬25Ž¡‘GÉrl_redisplay‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬33Ž¡‘GÉrl_redisplay_function‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬26Ž¡‘GÉrl_replace_line‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬36Ž¡‘GÉrl_reset_after_signal‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬40ŽŽ ýÆÌÖ’óáðÉrl_reset_line_stateY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬33Ž¤ ’óáðÉrl_reset_terminal‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬35Ž¡’óáðÉrl_resize_terminal‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬41Ž¡’óáðÉrl_restore_prompt‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬34Ž¡’óáðÉrl_save_prompt‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬33Ž¡’óáðÉrl_set_key‘ìU‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ a¢¬30Ž¡’óáðÉrl_set_keyboard_input_timeout‘ÉX‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘>¥¬35Ž¡’óáðÉrl_set_keymap‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬29Ž¡’óáðÉrl_set_paren_blink_timeout‘O¶‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ŭ37Ž¡’óáðÉrl_set_prompt‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬34Ž¡’óáðÉrl_set_screen_size‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬41Ž¡’óáðÉrl_set_signals‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬41Ž¡’óáðÉrl_show_char‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬33Ž¡’óáðÉrl_special_prefixesY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬45Ž¡’óáðÉrl_startup_hook‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬26Ž¡’óáðÉrl_stuff_char‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬35Ž¡’óáðÉrl_terminal_name‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬25Ž¡’óáðÉrl_tty_set_default_bindings‘"ì‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘˜9¬35Ž¡’óáðÉrl_unbind_command_in_map‘©J‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ —¬30Ž¡’óáðÉrl_unbind_function_in_map‘|€‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ñͬ30Ž¡’óáðÉrl_unbind_key‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬30Ž¡’óáðÉrl_unbind_key_in_map,q‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¡¾¬30Ž¡’óáðÉrl_username_completion_functionoÄ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘å¬43Ž¡’óáðÉrl_variable_bind‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬37Ž¡’óáðÉrl_variable_dumper‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬37ŽŸg$’óáðëTSŽ©¸c’óáðÉself-insert–T(a,“b,“A,“1,“!,“...Ž‘B)‘Ͼ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘E ¬14Ž¡’óáðÉset-mark‘T(C-@)‘ N‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ €›¬17Ž¡’óáðsho•¾9w-all-if-am“biguous‘Áà‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 7,¬7Ž¡’óáðÉstart-kbd-macro–T(C-x“()‘JU‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¿¢¬17ŽŸ›6’óáðëTTŽ¦’óáðÉtab-insert‘T(M-ž™š¸hŽ‘êÌŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘êÌŸÙš‰ffÐlŽ‘8ªž™š¸iŽŽ‘ÑŒÉ)‘åÑÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘[¬14Ž¡’óáðÉtilde-expand‘T(M-~)‘X&‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ís¬17Ž¡’óáðÉtranspose-chars‘T(C-t)‘ÑÈ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘G¬14Ž¡’óáðÉtranspose-words‘T(M-t)‘ÑÈ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘G¬14ŽŸg$’óáðëTUŽ¦’óáðÉundo–T(C-_“or“C-x“C-u)‘*‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘w¬17Ž¡’óáðÉuniversal-argument‘T()‘ÑÈ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘G¬16Ž¡’óáðÉunix-line-discard‘T(C-u)x4‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘í¬15Ž¡’óáðÉunix-word-rubout‘T(C-w)‘¤þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘K¬15Ž¡’óáðÉupcase-word‘T(M-u)‘„ð‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ú=¬14ŽŸg$’óáðëTVŽ¦’óáðÉvi-editing-mode‘T(M-C-j)x4‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘í¬18Ž¡’óáðvisible-stats‘Ó¬‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Hù¬7ŽŽŽŽŒ‹>ŠŸò‘GÝ62’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý·zŸé¯\‘GëTYŽŸP¤‘GÉyank‘T(C-y)‘Žu‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¬16ŽŽŸé¯\’óáðÉyank-last-arg–T(M-.“or“M-_)‘–‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ e¬13Ž¤ (R’óáðÉyank-nth-arg‘T(M-C-y)‘þ’‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘s߬13Ž¡’óáðÉyank-pop‘T(M-y)‘ N‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ €›¬16ŽŽŽŽŒ‹ÿÿÿÿ^‰Ÿò’À¥TÝiŽŽŽ ƒ3* ý ÌÖ‘GëKT‘þaGable–z³of“Con–ÿuÂten“tsŽŽŸ)33‘GëT1‘32Command–ffLine“Editing‘‚j‘32óUF C–ff ! cmbxti10ëU.Ž–…‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž‘mßëT1Ž©ÿ‘6GÝ1.1‘ ! ó5In²!troMÞduction–¦fto“Line“Editing‘ \‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ÞŒÝ1Ž¤ 33‘6G1.2‘ ó5Readline‘¦fIn²!teraction‘ÿì‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ÕÝ1Ž¡‘ZG1.2.1‘ --- 1,13 ---- ! ÷ƒ’À;è TeX output 2004.07.27:0931‹ÿÿÿÿŸòŽ ƒ3* þšé‘GóFÂÖN ¼j cmbx12ëFGNU–ƧReadline“LibraryŽ‘GŸ 0‰±ž¸Ÿ šª’Ï€Úó2Kñ`y ó3 ! cmr10ÝEdition–¦f5.0,“for“ó3ßêÝ17Ž¡‘ZG1.4.8‘ ! ó5Some–¦fMiscellaneous“Commands‘œ1‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ qaÝ17Ž¡‘6G1.5‘ ! ó5Readline–¦fvi“MoMÞde‘9»‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ìÝ18ŽŸ33‘GëT2‘32Programming–ffwith“GNU“Readline‘À–‘32ëU.Ž–…‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž‘¬ ëT21Ž¦‘6GÝ2.1‘ ó5Basic‘¦fBeha²!vior‘Þz‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ³«Ý21Ž¡‘6G2.2‘ ó5Custom‘¦fF‘ÿeunctions‘Ë‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘  óÝ22Ž¡‘ZG2.2.1‘ ó5Readline‘¦fT²!ypMÞedefs‘Hh‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ! ˜Ý23Ž¡‘ZG2.2.2‘ ó5W›ÿeriting–¦fa“New“F˜unctionjo‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ? Ý23Ž¡‘6G2.3‘ ó5Readline‘¦fV‘ÿeariables‘}x‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ R©Ý24Ž¡‘6G2.4‘ --- 24,46 ---- ó5Readline–¦fInit“File“Syn²!tax‘¨¹‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ }éÝ4Ž¡‘ZG1.3.2‘ ó5Conditional–¦fInit“Constructs#Œ‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ø½Ý9Ž¡‘ZG1.3.3‘ ! ó5Sample–¦fInit“File‘š÷‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ! p'Ý10Ž¡‘6G1.4‘ ! ó5Bindable–¦fReadline“Commands‘ƒ9‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ XjÝ13Ž¡‘ZG1.4.1‘ ! ó5Commands–¦fF‘ÿeor“Mo²!ving‘5Ø‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ Ý13Ž¡‘ZG1.4.2‘ ó5Commands–¦fF‘ÿeor“Manipulating“The“History‘3ì‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ! Ý13Ž¡‘ZG1.4.3‘ ó5Commands–¦fF›ÿeor“Changing“T˜ext‘ŽŠ‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ c»Ý14Ž¡‘ZG1.4.4‘ ! ó5Killing–¦fAnd“Y‘ÿeanking‘â‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ îÝ16Ž¡‘ZG1.4.5‘ ó5SpMÞecifying–¦fNumeric“Argumen²!ts‘`‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ! בÝ17Ž¡‘ZG1.4.6‘ ó5Letting–¦fReadline“T²!ypMÞe“F›ÿeor“Y˜ou‘^Ý‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ! 4 Ý17Ž¡‘ZG1.4.7‘ ó5KeybMÞoard‘¦fMacroshï‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ >Ý17Ž¡‘ZG1.4.8‘ ! ó5Some–¦fMiscellaneous“Commands‘œ1‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ qaÝ18Ž¡‘6G1.5‘ ! ó5Readline–¦fvi“MoMÞde‘9»‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ìÝ19ŽŸ33‘GëX2‘32Programming–ffwith“GNU“Readline‘À–‘32ëY.Ž–…‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž‘¬ ëX21Ž¦‘6GÝ2.1‘ ó5Basic‘¦fBeha²!vior‘Þz‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ³«Ý21Ž¡‘6G2.2‘ ó5Custom‘¦fF‘ÿeunctions‘Ë‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘  óÝ22Ž¡‘ZG2.2.1‘ ó5Readline‘¦fT²!ypMÞedefs‘Hh‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ! ˜Ý22Ž¡‘ZG2.2.2‘ ó5W›ÿeriting–¦fa“New“F˜unctionjo‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ? Ý23Ž¡‘6G2.3‘ ó5Readline‘¦fV‘ÿeariables‘}x‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ R©Ý24Ž¡‘6G2.4‘ *************** *** 89,98 **** ó5Naming–¦fa“F‘ÿeunction‘íy‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ©Ý28Ž¡‘ZG2.4.2‘ ! ó5Selecting–¦fa“Keymap{š‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ PÊÝ29Ž¡‘ZG2.4.3‘ ! ó5Binding‘¦fKeys0"‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ RÝ30Ž¡‘ZG2.4.4‘ ó5AssoMÞciating–¦fF‘ÿeunction“Names“and“Bindings‘ñ½‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ÆíÝ31Ž¡‘ZG2.4.5‘ ! ó5Allo²!wing‘¦fUndoing‘t1‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ IbÝ32Ž¡‘ZG2.4.6‘ ó5Redispla²!y‘‰æ‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ! _Ý33Ž¡‘ZG2.4.7‘ ó5MoMÞdifying‘¦fT‘ÿeext‘œY‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ q‰Ý34Ž¡‘ZG2.4.8‘ ó5Character‘¦fInput‘¶‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ --- 48,57 ---- ó5Naming–¦fa“F‘ÿeunction‘íy‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ©Ý28Ž¡‘ZG2.4.2‘ ! ó5Selecting–¦fa“Keymap{š‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ PÊÝ28Ž¡‘ZG2.4.3‘ ! ó5Binding‘¦fKeys0"‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ RÝ29Ž¡‘ZG2.4.4‘ ó5AssoMÞciating–¦fF‘ÿeunction“Names“and“Bindings‘ñ½‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ÆíÝ31Ž¡‘ZG2.4.5‘ ! ó5Allo²!wing‘¦fUndoing‘t1‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ IbÝ31Ž¡‘ZG2.4.6‘ ó5Redispla²!y‘‰æ‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ! _Ý32Ž¡‘ZG2.4.7‘ ó5MoMÞdifying‘¦fT‘ÿeext‘œY‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ q‰Ý34Ž¡‘ZG2.4.8‘ ó5Character‘¦fInput‘¶‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ *************** *** 101,108 **** ¯ñÝ35Ž¡‘ZG2.4.10‘ ó5Utilit²!y‘¦fF‘ÿeunctions‘ ‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ! àBÝ36Ž¡‘ZG2.4.11‘ ! ó5Miscellaneous‘¦fF‘ÿeunctionsr‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ T¢Ý37Ž¡‘ZG2.4.12‘ ó5Alternate‘¦fIn²!terface‘–o‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ kŸÝ37Ž¡‘ZG2.4.13‘ ! ó5A–¦fReadline“Example‘n‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ïŸÝ38ŽŽŒ‹ÿÿÿþbñŸò‘GÝii’=æNGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý†ÌÖ‘6G2.5‘ ó5Readline–¦fSignal“Handling‘Ï‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ¤óÝ39Ž¤ 33‘6G2.6‘ --- 60,67 ---- ¯ñÝ35Ž¡‘ZG2.4.10‘ ó5Utilit²!y‘¦fF‘ÿeunctions‘ ‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ! àBÝ35Ž¡‘ZG2.4.11‘ ! ó5Miscellaneous‘¦fF‘ÿeunctionsr‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ T¢Ý36Ž¡‘ZG2.4.12‘ ó5Alternate‘¦fIn²!terface‘–o‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ kŸÝ37Ž¡‘ZG2.4.13‘ ! ó5A–¦fReadline“Example‘n‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ïŸÝ38ŽŽŒ‹ÿÿÿþlŸò‘GÝii’=æNGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý†ÌÖ‘6G2.5‘ ó5Readline–¦fSignal“Handling‘Ï‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ¤óÝ39Ž¤ 33‘6G2.6‘ *************** *** 114,119 **** ó5Completion‘¦fV‘ÿeariables‘Ñk‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ¦œÝ43Ž¡‘ZG2.6.4‘ ! ó5A–¦fShort“Completion“Example$K‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ù|Ý47ŽŸ33‘GëTConcept‘ffIndex‘H~‘32ëU.Ž–…‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž‘3óëT57ŽŸ ÿ‘GF›þ¦function–ffand“V˜ariable“Index‘â.‘32ëU.Ž–…‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž‘ ͤëT59ŽŽŒøŽÌƒ’À;è…ïöïÿ Bó]ÂÖN  #× cmbx12óUF C–ff ! cmbxti10óTÂÖN ff cmbx12óKÂÖN G® cmbx12óBÂÖN ¼j cmbx12óAßêÝ,›9and‘8©ž™š¸hŽ‘#uŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘#uŸÙš‰ffÐlŽ‘qSž™š¸iŽŽ‘"BÞÝall–8©stand“for“themselv²!es“when“seen“in“this“text,˜or“in“an“init“ le“(seeŽ¦‘GSection–¦ý1.3“[Readline“Init“File],‘ç"page“4).‘ß¡If“yš²!our“k˜eybMÞoard“lac˜ks“a“ž™š¸hŽ‘‘ÉŸù@‰ffWˆŸÀ­LFDŽŽ‘‘ÉŸÙš‰ffWˆŽ‘fÞ™š¸iŽŽ‘ ¦¢Ýk˜ey‘ÿe,‘ç"t˜yping“ž™š¸hŽ‘‘ÉŸù@‰ff ‘ÒŸÀ­C-jŽŽ‘‘ÉŸÙš‰ff ‘ÒŽ‘¡ ž™š¸iŽŽŽ¦‘GÝwill–‹OproMÞduce“the“desired“cš²!haracter.‘ÔÕThe“ž™š¸hŽ‘vŸù@‰ff,(ŸÀ­RETŽŽ‘vŸÙš‰ff,(Ž‘µž™š¸iŽŽ‘CæÝk˜ey“ma˜y“bšMÞe“lab˜eled“ž™š¸hŽ‘vŸù@‰ffëŸÀ­ReturnŽŽ‘vŸÙš‰ff뎑 xž™š¸iŽŽ‘'/©Ýor“ž™š¸hŽ‘vŸù@‰ff©­ŸÀ­EnÃŽterŽŽ‘vŸÙš‰ff©­Ž‘:ž™š¸iŽŽ‘!ÁkÝon“someŽ¦‘Gk²!eybMÞoards.ŽŸh ‘GëX1.2‘™Readline‘f@InŒÌteractionŽŽ¤Þ›‘!GÝOften–kduring“an“in•²!teractiv“e–ksession“yš²!ou“t˜ypMÞe“in“a“long“line“of“text,‘&jonly“to“notice“that“theŽ¦‘G rst–ãÒwš²!ord“on“the“line“is“misspMÞelled.‘–"The“Readline“library“giv˜es“y˜ou“a“set“of“commands“forŽ¦‘Gmanipulating–“¡the“text“as“yš²!ou“t˜ypMÞe“it“in,‘—ballo˜wing“y˜ou“to“just“ x“y˜our“t˜ypMÞo,‘—band“not“forcingŽ¦‘Gyš²!ou–`ùto“ret˜ypMÞe“the“ma‘›»jorit˜y“of“the“line.‘ƹUsing“these“editing“commands,‘nÛy˜ou“mo˜v˜e“the“cursorŽ¦‘Gto–the“place“that“needs“correction,‘;Zand“delete“or“insert“the“text“of“the“corrections.‘CZThen,Ž¦‘Gwhen–½#yš²!ou“are“satis ed“with“the“line,‘ÂÒy˜ou“simply“press“ž™š¸hŽ‘§ïŸù@‰ff,(ŸÀ­RETŽŽ‘§ïŸÙš‰ff,(Ž‘Q‰ž™š¸iŽŽ‘êkÝ.‘"Y‘ÿeou“do“not“ha˜v˜e“to“bMÞe“at“theŽ¦‘Gend–N4of“the“line“to“press“ž™š¸hŽ‘9Ÿù@‰ff,(ŸÀ­RETŽŽ‘9ŸÙš‰ff,(Ž‘âšž™š¸iŽŽ‘{|Ý;‘¢the“en²!tire“line“is“accepted“regardless“of“the“loMÞcation“of“theŽ¦‘Gcursor–¦fwithin“the“line.ŽŸh ‘GóaÂÖN  #× cmbx12ëa1.2.1‘d(Readline–íMBare“Essen–átialsŽŽ¡‘!GÝIn–Äiorder“to“enš²!ter“c˜haracters“in˜to“the“line,‘ñ›simply“t˜ypMÞe“them.‘’‰The“t˜ypMÞed“c˜haracter“appMÞearsŽ¦‘Gwhere–æNthe“cursor“wš²!as,‘öHand“then“the“cursor“mo˜v˜es“one“space“to“the“righ˜t.‘–If“y˜ou“mist˜ypMÞe“aŽ¦‘Gc•²!haracter,›¦fy“ou˜can˜use˜y“our˜erase˜c“haracter˜to˜bac“k˜up˜and˜delete˜the˜mist“ypMÞed˜c“haracter.ŽŸ«h‘!GSometimes–³lyš²!ou“ma˜y“mist˜ypMÞe“a“c˜haracter,‘¶®and“not“notice“the“error“un˜til“y˜ou“ha˜v˜e“t˜ypMÞedŽ¦‘Gsevš²!eral–wøother“c˜haracters.‘ÎcIn“that“case,‘Ay˜ou“can“t˜ypMÞe“äC-b“Ýto“mo˜v˜e“the“cursor“to“the“left,‘AandŽ¦‘Gthen–¦fcorrect“yš²!our“mistak˜e.‘ÝÝAfterw˜ards,“y˜ou“can“mo˜v˜e“the“cursor“to“the“righ˜t“with“äC-fÝ.ŽŽŒ‹@VŸò‘GÝ2’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘!GWhen–é"yš²!ou“add“text“in“the“middle“of“a“line,‘ùÑy˜ou“will“notice“that“c˜haracters“to“the“righ˜tŽ¤ 33‘Gof–q”the“cursor“are“`pushed“o•²!v“er'–q”to“makš²!e“roMÞom“for“the“text“that“y˜ou“ha˜v˜e“inserted.‘ÌBLik˜ewise,Ž¡‘Gwhen–‚ùyš²!ou“delete“text“bMÞehind“the“cursor,‘ºc˜haracters“to“the“righ˜t“of“the“cursor“are“`pulledŽ¡‘Gbacš²!k'–¹Õto“ ll“in“the“blank“space“created“b˜y“the“remo˜v‘ÿdDal“of“the“text.‘A‘¹™list“of“the“bare“essen˜tialsŽ¡‘Gfor–¦fediting“the“text“of“an“input“line“follo²!ws.Ž¤¯‹‘GäC-b‘(‘õÝMo•²!v“e›¦fbac“k˜one˜c“haracter.Ž¡‘GäC-f‘(‘õÝMo•²!v“e›¦fforw“ard˜one˜c“haracter.Ž¡‘Gž™š¸hŽ‘üŸù@‰ff“úŸÀ­DELŽŽ‘üŸÙš‰ff“úŽ‘& ž™š¸iŽŽ‘-LÇÝor‘¦fž™š¸hŽ‘‘2Ÿù@‰ff&,ñŸÀ­BacÃŽkspaceŽŽ‘‘2ŸÙš‰ff&,ñŽ‘,;•ž™š¸iŽŽŽ© 33‘Kâ:ÝDelete–¦fthe“c²!haracter“to“the“left“of“the“cursor.Ž¡‘GäC-d‘(‘õÝDelete–¦fthe“c²!haracter“underneath“the“cursor.Ž¡‘GPrin•²!ting‘¦fc“haractersŽŽ¦‘Kâ:Insert–¦fthe“cš²!haracter“in˜to“the“line“at“the“cursor.Ž¡‘GäC-_–¦fÝor“äC-x“C-uŽ¦‘Kâ:ÝUndo–jthe“last“editing“command.‘÷éY‘ÿeou“can“undo“all“the“w•²!a“y›jbac“k˜to˜an˜empt“yŽ¦‘Kâ:line.Ž¡‘G(DepMÞending– on“yš²!our“con guration,‘0¶the“ž™š¸hŽ‘ÿØŸù@‰ff&,ñŸÀ­BacÃŽkspaceŽŽ‘ÿØŸÙš‰ff&,ñŽ‘,ª;ž™š¸iŽŽ‘4X)Ýk˜ey“bMÞe“set“to“delete“the“c˜haracter“to“theŽ¦‘Gleft–ö¿of“the“cursor“and“the“ž™š¸hŽ‘á‹Ÿù@‰ff“úŸÀ­DELŽŽ‘á‹ŸÙš‰ff“úŽ‘ò÷ž™š¸iŽŽ‘‚˜Ýkš²!ey“set“to“delete“the“c˜haracter“underneath“the“cursor,‘ ! Õlik˜eŽ¦‘GäC-dÝ,–¦frather“than“the“c²!haracter“to“the“left“of“the“cursor.)ŽŸ:ƒ‘Gëa1.2.2‘d(Readline›íMMo•–áv“emen“t˜CommandsŽŽŸ$’‘!GÝThe›"úabMÞo•²!v“e˜table˜describMÞes˜the˜most˜basic˜k“eystrok“es˜that˜y“ou˜need˜in˜order˜to˜do˜editingŽ¦‘Gof–Ìthe“input“line.‘«ªF‘ÿeor“yš²!our“con˜v˜enience,‘-ëman˜y“other“commands“ha˜v˜e“bMÞeen“added“in“additionŽ¦‘Gto›ÖõäC-bÝ,–ãäC-fÝ,“äC-dÝ,“and˜ž™š¸hŽ‘ÁÁŸù@‰ff“úŸÀ­DELŽŽ‘ÁÁŸÙš‰ff“úŽ‘Ó-ž™š¸iŽŽ‘lÝ.‘o‹Here˜are˜some˜commands˜for˜mo²!ving˜more˜rapidly˜abMÞout˜theŽ¦‘Gline.Ž¡‘GäC-a‘(‘õÝMo•²!v“e–¦fto“the“start“of“the“line.Ž¡‘GäC-e‘(‘õÝMo•²!v“e–¦fto“the“end“of“the“line.Ž¡‘GäM-f‘(‘õÝMo•²!v“e›¦fforw“ard˜a˜w“ord,˜where˜a˜w“ord˜is˜compMÞosed˜of˜letters˜and˜digits.Ž¡‘GäM-b‘(‘õÝMo•²!v“e›¦fbac“kw“ard˜a˜w“ord.Ž¡‘GäC-l‘(‘õÝClear–¦fthe“screen,“reprinš²!ting“the“curren˜t“line“at“the“top.Ž¡‘!GNotice–ôKhoš²!w“äC-f“Ýmo˜v˜es“forw˜ard“a“c˜haracter,‘êwhile“äM-f“Ýmo˜v˜es“forw˜ard“a“w˜ord.‘¢It“is“a“loMÞoseŽ¦‘Gcon•²!v“en“tion–—†that“conš²!trol“k˜eystrok˜es“opMÞerate“on“c˜haracters“while“meta“k˜eystrok˜es“opMÞerate“onŽ¦‘Gw²!ords.ŽŸ:ƒ‘Gëa1.2.3‘d(Readline–íMKilling“CommandsŽŽŸ$’‘!GáKilling‘lÝtext–{émeans“to“delete“the“text“from“the“line,‘±Jbut“to“sa•²!v“e–{éit“a•²!w“a“y–{éfor“later“use,Ž¦‘Gusually–Zbš²!y“áy˜anking‘rÝ(re-inserting)“it“bac˜k“in˜to“the“line.‘3¹(`Cut'“and“`paste'“are“more“recen˜tŽ¦‘Gjargon–¦ffor“`kill'“and“`y²!ank'.)ŽŸñ_‘!GIf–¡°the“description“for“a“command“saš²!ys“that“it“`kills'“text,‘¢¡then“y˜ou“can“bMÞe“sure“that“y˜ouŽ¦‘Gcan–¦fget“the“text“bacš²!k“in“a“di eren˜t“(or“the“same)“place“later.ŽŽŒ‹UïŸò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’MH3ŽŽŽ ƒ3* ý ÌÖ‘!GWhen–Ê›yš²!ou“use“a“kill“command,‘ö‘the“text“is“sa˜v˜ed“in“a“ákill-ringÝ.‘”šAn˜y“n˜um˜bMÞer“of“consecutiv˜eŽ¤ 33‘Gkills›¸$sa•²!v“e˜all˜of˜the˜killed˜text˜together,‘¼“so˜that˜when˜y“ou˜y“ank˜it˜bac“k,‘¼“y“ou˜get˜it˜all.‘TheŽ¡‘Gkill–âèring“is“not“line“spMÞeci c;‘(the“text“that“yš²!ou“killed“on“a“previously“t˜ypMÞed“line“is“a˜v‘ÿdDailableŽ¡‘Gto–¦fbMÞe“y•²!ank“ed›¦fbac“k˜later,˜when˜y“ou˜are˜t“yping˜another˜line.ŽŸûç‘!GHere–¦fis“the“list“of“commands“for“killing“text.Ž¤Ä›‘GäC-k‘(‘õÝKill–¦fthe“text“from“the“curren²!t“cursor“pMÞosition“to“the“end“of“the“line.Ž¡‘GäM-d‘(‘õÝKill–)šfrom“the“cursor“to“the“end“of“the“currenš²!t“w˜ord,–Bor,“if–)šbMÞet˜w˜een“w˜ords,‘Bto“theŽ© 33‘Kâ:end–¦fof“the“next“wš²!ord.‘ÝÝW‘ÿeord“bMÞoundaries“are“the“same“as“those“used“b˜y“äM-fÝ.Ž¡‘GäM-ž™š¸hŽ‘êÌŸù@‰ff“úŸÀ­DELŽŽ‘êÌŸÙš‰ff“úŽ‘ü8ž™š¸iŽŽ‘.QŸÝKill–«ofrom“the“cursor“the“start“of“the“currenš²!t“w˜ord,–¬±or,“if–«obMÞet˜w˜een“w˜ords,‘¬±to“theŽ¦‘Kâ:start–of“the“previous“wš²!ord.‘ÁâW‘ÿeord“bMÞoundaries“are“the“same“as“those“used“b˜yŽ¦‘Kâ:äM-bÝ.Ž¡‘GäC-w‘(‘õÝKill–Àxfrom“the“cursor“to“the“previous“whitespace.‘,This“is“di eren²!t“than“äM-ž™š¸hŽ‘êÌŸù@‰ff“úŸÀ­DELŽŽ‘êÌŸÙš‰ff“úŽ‘ü8ž™š¸iŽŽŽ¦‘Kâ:ÝbšMÞecause–¦fthe“w²!ord“b˜oundaries“di er.Ž¡‘!GHere–ýáis“hoš²!w“to“áy˜ank‘§åÝthe“text“bac˜k“in˜to“the“line.‘äNY‘ÿeanking“means“to“cop˜y“the“most-Ž¦‘Grecen²!tly-killed–¦ftext“from“the“kill“bu er.Ž¡‘GäC-y‘(‘õÝY‘ÿeank–¦fthe“most“recenš²!tly“killed“text“bac˜k“in˜to“the“bu er“at“the“cursor.Ž¡‘GäM-y‘(‘õÝRotate–'!the“kill-ring,‘GPand“y²!ank“the“new“top.‘`Y‘ÿeou“can“only“do“this“if“the“priorŽ¦‘Kâ:command–¦fis“äC-y“Ýor“äM-yÝ.Ž¤Z‘Gëa1.2.4‘d(Readline‘íMArgumen–átsŽŽŸ/‘!GÝY‘ÿeou–‚Ücan“pass“nš²!umeric“argumen˜ts“to“Readline“commands.‘ÒSometimes“the“argumen˜t“actsŽ¦‘Gas–Ѥa“repMÞeat“counš²!t,‘sother“times“it“is“the“àsign‘¨¯Ýof“the“argumen˜t“that“is“signi can˜t.‘_–If“y˜ouŽ¦‘Gpass–a“negativš²!e“argumen˜t“to“a“command“whic˜h“normally“acts“in“a“forw˜ard“direction,‘ìthatŽ¦‘Gcommand–=Üwill“act“in“a“bac•²!kw“ard–=Üdirection.‘¤?F‘ÿeor“example,‘c¹to“kill“text“bac²!k“to“the“start“ofŽ¦‘Gthe–¦fline,“yš²!ou“migh˜t“t˜ypMÞe“`ÞM--“C-kÝ'.ŽŸûç‘!GThe–bOgeneral“w•²!a“y–bOto“pass“nš²!umeric“argumen˜ts“to“a“command“is“to“t˜ypšMÞe“meta“digits“b˜eforeŽ¦‘Gthe–´command.‘RIf“the“ rst“`digit'“tš²!ypMÞed“is“a“min˜us“sign“(`Þ-Ý'),‘¸then“the“sign“of“the“argumen˜tŽ¦‘Gwill––ŠbMÞe“negativš²!e.‘®HOnce“y˜ou“ha˜v˜e“t˜ypMÞed“one“meta“digit“to“get“the“argumen˜t“started,‘Ò’y˜ouŽ¦‘Gcan–vòt²!ypMÞe“the“remainder“of“the“digits,›€oand“then“the“command.‘Î F‘ÿeor“example,˜to“giv²!e“the“äC-dŽ¦‘GÝcommand–~Gan“argumenš²!t“of“10,‘´?y˜ou“could“t˜ypMÞe“`ÞM-1–¦f0“C-dÝ',‘´?whic˜h–~Gwill“delete“the“next“tenŽ¦‘Gc²!haracters–¦fon“the“input“line.Ž¡‘Gëa1.2.5‘d(Searc–áhing–íMfor“Commands“in“the“HistoryŽŽŸ/‘!GÝReadline–àTproš²!vides“commands“for“searc˜hing“through“the“command“history“for“lines“con-Ž¦‘Gtaining–¦fa“spMÞeci ed“string.‘ÝÝThere“are“t•²!w“o›¦fsearc“h˜moMÞdes:‘ÝÝáincremen“tal‘¸Ýand˜ánon-incremen“talÝ.ŽŸûç‘!GIncremen•²!tal›¸searc“hes˜b•MÞegin˜b“efore˜the˜user˜has˜ nished˜t•²!yping˜the˜searc“h˜string.‘­£As˜eac“hŽ¦‘Gcš²!haracter–@|of“the“searc˜h“string“is“t˜ypMÞed,‘gReadline“displa˜ys“the“next“en˜try“from“the“historyŽ¦‘Gmatcš²!hing–â+the“string“t˜ypMÞed“so“far.‘œtAn“incremen˜tal“searc˜h“requires“only“as“man˜y“c˜haracters“asŽ¦‘Gneeded–tõto“ nd“the“desired“history“enš²!try–ÿe.‘ÍbT“o–tõsearc˜h“bac˜kw˜ard“in“the“history“for“a“particularŽ¦‘Gstring,‘0t•²!ypMÞe›‰cäC-rÝ.‘Ô1T“yping˜äC-s˜Ýsearc“hes˜forw“ard˜through˜the˜history‘ÿe.‘Ô1The˜c“haracters˜presen“tŽ¦‘Gin–^the“v›ÿdDalue“of“the“Þisearch-terminators“Ýv˜ariable“are“used“to“terminate“an“incremen²!talŽŽŒ‹b½Ÿò‘GÝ4’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Gsearc²!h.‘ƒ–If–ˆNthat“v›ÿdDariable“has“not“bMÞeen“assigned“a“v˜alue,‘ÀÈthe“ž™š¸hŽ‘sŸù@‰ff¤TŸÀ­ESCŽŽ‘sŸÙš‰ff¤TŽ‘”àž™š¸iŽŽ‘¶Ýand“äC-J“Ýc²!haracters“willŽ¤ 33‘Gterminate–Can“incremenš²!tal“searc˜h.‘ 3täC-g“Ýwill“abMÞort“an“incremen˜tal“searc˜h“and“restore“theŽ¡‘Goriginal–xÓline.‘άWhen“the“searcš²!h“is“terminated,‘ðthe“history“en˜try“con˜taining“the“searc˜h“stringŽ¡‘GbMÞecomes–¦fthe“curren²!t“line.Ž©‘!GT‘ÿeo–¹¾ nd“other“matcš²!hing“en˜tries“in“the“history“list,‘¾”t˜ypMÞe“äC-r“Ýor“äC-s“Ýas“appropriate.‘äThisŽ¡‘Gwill–#“searcš²!h“bac˜kw˜ard“or“forw˜ard“in“the“history“for“the“next“en˜try“matc˜hing“the“searc˜h“stringŽ¡‘Gtš²!ypMÞed–ˆ5so“far.‘ƒIAn˜y“other“k˜ey“sequence“bMÞound“to“a“Readline“command“will“terminate“theŽ¡‘Gsearcš²!h–‡„and“execute“that“command.‘~=F‘ÿeor“instance,‘Àäa“ž™š¸hŽ‘rPŸù@‰ff,(ŸÀ­RETŽŽ‘rPŸÙš‰ff,(Ž‘êž™š¸iŽŽ‘Ki“Ýkš²!ey“sequence“b˜y“stripping“the“eigh˜th“bit“and“pre xing“anŽ¡’…³-ž™š¸hŽ’ˆùŸù@‰ff¤TŸÀ­ESCŽŽ’ˆùŸÙš‰ff¤TŽ’˜¿¿ž™š¸iŽŽ’ jzÝc•²!haracter,‘,µcon“v“erting–Ùthem“to“a“meta-pre xed“k²!ey“sequence.Ž¡’…³-The–¦fdefault“v‘ÿdDalue“is“`ÞonÝ'.Ž¦‘Kâ:Þdisable-completionŽ¡’…³-ÝIf–gset“to“`ÞOnÝ',‘—@Readline“will“inhibit“w²!ord“completion.‘èCompletionŽ¡’…³-cš²!haracters–!Ÿwill“bMÞe“inserted“in˜to“the“line“as“if“they“had“bšMÞeen“mapp˜edŽ¡’…³-to–¦fÞself-insertÝ.‘ÝÝThe“default“is“`ÞoffÝ'.Ž¦‘Kâ:Þediting-modeŽ¡’…³-ÝThe–rÖÞediting-mode“Ýv‘ÿdDariable“conš²!trols“whic˜h“default“set“of“k˜ey“bind-Ž¡’…³-ings–?is“used.‘§%By“default,‘#Readline“starts“up“in“Emacs“editing“moMÞde,Ž¡’…³-where–~«the“k•²!eystrok“es–~«are“most“similar“to“Emacs.‘ПThis“v‘ÿdDariable“canŽ¡’…³-bMÞe–¦fset“to“either“`ÞemacsÝ'“or“`ÞviÝ'.Ž¦‘Kâ:Þenable-keypadŽ¡’…³-ÝWhen–Ìïset“to“`ÞonÝ',‘ømReadline“will“try“to“enable“the“application“k²!eypadŽ¡’…³-when–1Ûit“is“called.‘·Some“systems“need“this“to“enable“the“arroš²!w“k˜eys.Ž¡’…³-The–¦fdefault“is“`ÞoffÝ'.Ž¦‘Kâ:Þexpand-tildeŽ¡’…³-ÝIf–Pset“to“`ÞonÝ',‘a[tilde“expansion“is“pMÞerformed“when“Readline“attemptsŽ¡’…³-w²!ord–¦fcompletion.‘ÝÝThe“default“is“`ÞoffÝ'.ŽŽŒ‹€TŸò‘GÝ6’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ’…³-If–’Žset“to“`ÞonÝ',‘–†the“history“cošMÞde“attempts“to“place“p˜oin²!t“at“the“sameŽ¤ 33’…³-loMÞcation–Kon“eacš²!h“history“line“retriev˜ed“with“Þprevious-history“ÝorŽ¡’…³-Þnext-historyÝ.Ž©s3‘Kâ:Þhorizontal-scroll-modeŽ¡’…³-ÝThis–NËv‘ÿdDariable“can“bMÞe“set“to“either“`ÞonÝ'“or“`ÞoffÝ'.‘× Setting“it“to“`ÞonÝ'Ž¡’…³-means–$jthat“the“text“of“the“lines“bMÞeing“edited“will“scroll“horizon²!tallyŽ¡’…³-on–ÎÁa“single“screen“line“when“they“are“longer“than“the“width“of“theŽ¡’…³-screen,›:Åinstead–Ýof“wrapping“on²!to“a“new“screen“line.‘±By“default,˜thisŽ¡’…³-v‘ÿdDariable–¦fis“set“to“`ÞoffÝ'.Ž¦‘Kâ:Þinput-metaŽ¡’…³-ÝIf–¾Ìset“to“`ÞonÝ',‘ÄåReadline“will“enable“eigh²!t-bit“input“(it“will“not“clearŽ¡’…³-the–Ã"eighš²!th“bit“in“the“c˜haracters“it“reads),‘ ! Pregardless“of“what“theŽ¡’…³-terminal–ÌÖclaims“it“can“suppMÞort.›Q-The“default“v‘ÿdDalue“is“`ÞoffÝ'.˜TheŽ¡’…³-name–¦fÞmeta-flag“Ýis“a“synon²!ym“for“this“v‘ÿdDariable.Ž¦‘Kâ:Þisearch-terminatorsŽ¡’…³-ÝThe–5Ñstring“of“cš²!haracters“that“should“terminate“an“incremen˜talŽ¡’…³-searcš²!h–ú|without“subsequen˜tly“executing“the“c˜haracter“as“a“commandŽ¡’…³-(see–Z±Section“1.2.5“[Searc²!hing],‘ÇÃpage“3).‘ ú¾If“this“v‘ÿdDariable“has“notŽ¡’…³-bMÞeen–Ç„givš²!en“a“v‘ÿdDalue,‘ÏÌthe“c˜haracters“ž™š¸hŽ‘²PŸù@‰ff¤TŸÀ­ESCŽŽ‘²PŸÙš‰ff¤TŽ‘Ôž™š¸iŽŽ‘4|Ýand“äC-J“Ýwill“terminate“anŽ¡’…³-incremen•²!tal‘¦fsearc“h.Ž¦‘Kâ:Þkeymap‘R÷ÝSets–©5Readline's“idea“of“the“currenš²!t“k˜eymap“for“k˜ey“binding“com-Ž¡’…³-mands.‘ ä™Acceptable–SOÞkeymap“Ýnames“are“ÞemacsÝ,‘¾‰Þemacs-standardÝ,Ž¡’…³-Þemacs-metaÝ,– 0Þemacs-ctlxÝ,“ÞviÝ,“Þvi-moveÝ,“Þvi-commandÝ,“andŽ¡’…³-Þvi-insertÝ.‘öÚÞvi–®ºÝis“equiv›ÿdDalen²!t“to“Þvi-commandÝ;‘2äÞemacs“Ýis“equiv˜alen²!tŽ¡’…³-to–Ó¯Þemacs-standardÝ.›e¸The“default“v‘ÿdDalue“is“ÞemacsÝ.˜The“v‘ÿdDalue“of“theŽ¡’…³-Þediting-mode–¦fÝv‘ÿdDariable“also“a ects“the“default“k²!eymap.Ž¦‘Kâ:Þmark-directoriesŽ¡’…³-ÝIf––¿set“to“`ÞonÝ',‘ÒÕcompleted“directory“names“ha•²!v“e––¿a“slash“appMÞended.Ž¡’…³-The–¦fdefault“is“`ÞonÝ'.Ž¦‘Kâ:Þmark-modified-linesŽ¡’…³-ÝThis–N”v‘ÿdDariable,›xŸwhen“set“to“`ÞonÝ',˜causes“Readline“to“displa²!y“an“as-Ž¡’…³-terisk– š(`Þ*Ý')“at“the“start“of“history“lines“whicš²!h“ha˜v˜e“bšMÞeen“mo˜di ed.Ž¡’…³-This–¦fv‘ÿdDariable“is“`ÞoffÝ'“b²!y“default.Ž¦‘Kâ:Þmark-symlinked-directoriesŽ¡’…³-ÝIf–_set“to“`ÞonÝ',‘ÍÙcompleted“names“whicš²!h“are“sym˜bMÞolic“links“to“di-Ž¡’…³-rectories›|ha•²!v“e˜a˜slash˜appMÞended˜(sub‘›»ject˜to˜the˜v‘ÿdDalue˜of˜Þmark-Ž¡’…³-directoriesÝ).‘ÝÝThe–¦fdefault“is“`ÞoffÝ'.Ž¦‘Kâ:Þmatch-hidden-filesŽ¡’…³-ÝThis–«sv‘ÿdDariable,›Ý£when“set“to“`ÞonÝ',˜causes“Readline“to“matc²!h“ les“whoseŽ¡’…³-names–MÍbšMÞegin“with“a“`Þ.Ý'“(hidden“ les)“when“p˜erforming“ lenameŽ¡’…³-completion,‘R unless–ü•the“leading“`Þ.Ý'“is“supplied“b²!y“the“user“in“theŽ¡’…³- lename–¦fto“bMÞe“completed.‘ÝÝThis“v‘ÿdDariable“is“`ÞonÝ'“b²!y“default.ŽŽŒ‹Œ@Ÿò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’MH7ŽŽŽ ƒ3* ý ÌÖ‘Kâ:Þoutput-metaŽ¤ 33’…³-ÝIf–Aset“to“`ÞonÝ',‘gªReadline“will“displaš²!y“c˜haracters“with“the“eigh˜th“bitŽ¡’…³-set–`!directly“rather“than“as“a“meta-pre xed“escapMÞe“sequence.‘ TheŽ¡’…³-default–¦fis“`ÞoffÝ'.Ž©ii‘Kâ:Þpage-completionsŽ¡’…³-ÝIf–ôset“to“`ÞonÝ',‘,×Readline“uses“an“inš²!ternal“ÞmoreÝ-lik˜e“pager“to“displa˜yŽ¡’…³-a–ã¹screenful“of“pMÞossible“completions“at“a“time.‘•ÖThis“v‘ÿdDariable“is“`ÞonÝ'Ž¡’…³-b²!y‘¦fdefault.Ž¦‘Kâ:Þprint-completions-horizontallyŽ¡’…³-ÝIf–àset“to“`ÞonÝ',‘»Readline“will“displaš²!y“completions“with“matc˜hes“sortedŽ¡’…³-horizonš²!tally–8Ôin“alphabMÞetical“order,‘orather“than“do˜wn“the“screen.Ž¡’…³-The–¦fdefault“is“`ÞoffÝ'.Ž¦‘Kâ:Þshow-all-if-ambiguousŽ¡’…³-ÝThis–™]alters“the“default“bMÞeha²!vior“of“the“completion“functions.‘Ù…If“setŽ¡’…³-to–L`ÞonÝ',‘^.wš²!ords“whic˜h“ha˜v˜e“more“than“one“pMÞossible“completion“causeŽ¡’…³-the–­matc²!hes“to“bšMÞe“listed“immediately“instead“of“ringing“the“b˜ell.Ž¡’…³-The–¦fdefault“v‘ÿdDalue“is“`ÞoffÝ'.Ž¦‘Kâ:Þshow-all-if-unmodifiedŽ¡’…³-ÝThis–¤‰alters“the“default“bMÞeha²!vior“of“the“completion“functions“in“aŽ¡’…³-fashion–€similar“to“ásho•²!w-all-if-am“biguousÝ.‘«If–€set“to“`ÞonÝ',‘-®wš²!ords“whic˜hŽ¡’…³-ha•²!v“e–²Ömore“than“one“pšMÞossible“completion“without“an²!y“p˜ossible“par-Ž¡’…³-tial–Ãcompletion“(the“pMÞossible“completions“don't“share“a“commonŽ¡’…³-pre x)–¢cause“the“matc²!hes“to“bMÞe“listed“immediately“instead“of“ring-Ž¡’…³-ing–¦fthe“bMÞell.‘ÝÝThe“default“v‘ÿdDalue“is“`ÞoffÝ'.Ž¦‘Kâ:Þvisible-statsŽ¡’…³-ÝIf–Ôvset“to“`ÞonÝ',‘ßúa“cš²!haracter“denoting“a“ le's“t˜ypšMÞe“is“app˜ended“to“theŽ¡’…³- lename–¦fwhen“listing“pMÞossible“completions.‘ÝÝThe“default“is“`ÞoffÝ'.Ž¦‘GKey‘¦fBindingsŽ¡‘Kâ:The– synš²!tax“for“con˜trolling“k˜ey“bindings“in“the“init“ le“is“simple.‘ First“y˜ouŽ¡‘Kâ:need–QÓto“ nd“the“name“of“the“command“that“yš²!ou“w˜an˜t“to“c˜hange.‘Á¬The“follo˜wingŽ¡‘Kâ:sections–Oconš²!tain“tables“of“the“command“name,‘yLthe“default“k˜eybinding,‘yLif“an˜y‘ÿe,Ž¡‘Kâ:and–¦fa“short“description“of“what“the“command“doMÞes.Ž©NN‘Kâ:Once–P…yš²!ou“kno˜w“the“name“of“the“command,‘{ simply“place“on“a“line“in“the“initŽ¡‘Kâ: le– the“name“of“the“kš²!ey“y˜ou“wish“to“bind“the“command“to,›$'a“colon,˜and“thenŽ¡‘Kâ:the–Ö«name“of“the“command.‘n«The“name“of“the“kš²!ey“can“bMÞe“expressed“in“di eren˜tŽ¡‘Kâ:w•²!a“ys,–¦fdepMÞending“on“what“y²!ou“ nd“most“comfortable.Ž¦‘Kâ:In–SÞaddition“to“command“names,‘“output"ŽŽŒ‹˜AŸò‘GÝ8’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ’…³-In–¥3the“abšMÞo•²!v“e–¥3example,‘äåäC-u“Ýis“b˜ound“to“the“function“Þuniversal-Ž¤ 33’…³-argumentÝ,‘ÄôäM-DEL–‹¥Ýis“bMÞound“to“the“function“Þbackward-kill-wordÝ,Ž¡’…³-and–®¿äC-o“Ýis“bMÞound“to“run“the“macro“expressed“on“the“righ²!t“handŽ¡’…³-side–¦f(that“is,“to“insert“the“text“`Þ>“outputÝ'“in²!to“the“line).Ž©i+’…³-A‘qn•²!um“bšMÞer–q4of“sym²!b˜olic“c²!haracter“names“are“recognized“while“pro-Ž¡’…³-cessing–Ôöthis“kš²!ey“binding“syn˜tax:‘u%áDELÝ,“áESCÝ,“áESCAPEÝ,“áLFDÝ,“áNEW-Ž¡’…³-LINEÝ,–¦fáRETÝ,“áRETURNÝ,“áRš²!UBOUTÝ,“áSP‘ÿeA˜CEÝ,“áSPCÝ,“and“áT‘ÿeABÝ.ŽŸŸ#‘Kâ:Þ"ák²!eyseq@æÞ"Ý:‘ÝÝáfunction-name‘CmÝor‘¦fámacroŽŽ¡’…³-kš²!eyseq‘ú«Ýdi ers–¹Åfrom“ák˜eyname‘VÌÝabMÞo˜v˜e“in“that“strings“denoting“an“en-Ž¡’…³-tire– hk²!ey“sequence“can“bšMÞe“sp˜eci ed,‘%èbš²!y“placing“the“k˜ey“sequence“inŽ¡’…³-double–‰ôquotes.‘ÔbSome“ãgnu“ÝEmacs“stš²!yle“k˜ey“escapšMÞes“can“b˜e“used,‘¤asŽ¡’…³-in–Ãthe“folloš²!wing“example,‘(Ùbut“the“spMÞecial“c˜haracter“names“are“notŽ¡’…³-recognized.Ž¦’¢›‚Þ"\C-u":‘¿ªuniversal-argumentŽ¡’¢›‚"\C-x\C-r":‘¿ªre-read-init-fileŽ¡’¢›‚"\e[11~":–¿ª"Function“Key“1"Ž¦’…³-ÝIn–Â×the“abšMÞo•²!v“e–Â×example,‘ÉòäC-u“Ýis“again“b˜ound“to“the“functionŽ¡’…³-Þuniversal-argument–?ßÝ(just“as“it“w²!as“in“the“ rst“example),‘¦=`äC-xŽ¡’…³-C-rÝ'–ópis“bMÞound“to“the“function“Þre-read-init-fileÝ,‘F²and“`ž™š¸hŽ‘êÌŸù@‰ff¤TŸÀ­ESCŽŽ‘êÌŸÙš‰ff¤TŽ‘ ’ž™š¸iŽŽ‘KÚž™šhŽ‘6¦Ÿù@‰ff\tŸÀ­[ŽŽ‘6¦Ÿ‰ff\tŽ‘Œž™š¸iŽŽŽ¡’…³-ž™šhŽ’ˆùŸù@‰ff@ŸÀ­1ŽŽ’ˆùŸÙš‰ff@Ž’Œ[ož™š¸iŽŽ’“š·ž™šhŽ’–…ƒŸù@‰ff@ŸÀ­1ŽŽ’–…ƒŸÙš‰ff@Ž’šBùž™š¸iŽŽ’¡‚Až™šhŽ’¤m Ÿù@‰ff¿ªŸÀÞ~ŽŽ’¤m ŸÙš‰ff¿ªŽ’©ª)ž™š¸iŽŽ’­C Ý'–¦fis“bMÞound“to“insert“the“text“`ÞFunction“Key“1Ý'.Ž©Ÿ#‘Kâ:The–’Äfolloš²!wing“ãgnu“ÝEmacs“st˜yle“escapMÞe“sequences“are“a˜v‘ÿdDailable“when“spMÞecifyingŽ¡‘Kâ:k²!ey‘¦fsequences:Ž¦‘Kâ:ä\C-‘(‘õÝcon²!trol‘¦fpre xŽ¦‘Kâ:ä\M-‘(‘õÝmeta‘¦fpre xŽ¦‘Kâ:ä\e‘.QŸÝan–¦fescapMÞe“c²!haracterŽ¦‘Kâ:ä\\‘.QŸÝbac²!kslashŽ¦‘Kâ:ä\Þ"‘.QŸž™š¸hŽ‘1)Ž¡‘Kâ:ÝMo•²!v“e–¦fto“the“end“of“the“input“history‘ÿe,“i.e.,“the“line“currenš²!tly“bMÞeing“en˜tered.Ž¦‘GÞreverse-search-history‘¦f(C-r)Ž¡‘Kâ:ÝSearc•²!h›½:bac“kw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`up'˜through˜the˜his-Ž¡‘Kâ:tory–¦fas“necessary‘ÿe.‘ÝÝThis“is“an“incremenš²!tal“searc˜h.Ž¦‘GÞforward-search-history‘¦f(C-s)Ž¡‘Kâ:ÝSearc•²!h›‰÷forw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`do“wn'˜through˜the˜theŽ¡‘Kâ:history–¦fas“necessary‘ÿe.‘ÝÝThis“is“an“incremenš²!tal“searc˜h.Ž¦‘GÞnon-incremental-reverse-search-history‘¦f(M-p)Ž¡‘Kâ:ÝSearc•²!h›½:bac“kw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`up'˜through˜the˜his-Ž¡‘Kâ:tory–Ryas“necessary“using“a“non-incremenš²!tal“searc˜h“for“a“string“supplied“b˜y“theŽ¡‘Kâ:user.Ž¦‘GÞnon-incremental-forward-search-history‘¦f(M-n)Ž¡‘Kâ:ÝSearc•²!h›‰÷forw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`do“wn'˜through˜the˜theŽ¡‘Kâ:history–3ªas“necessary“using“a“non-incremenš²!tal“searc˜h“for“a“string“supplied“b˜y“theŽ¡‘Kâ:user.Ž¦‘GÞhistory-search-forward‘¦f()Ž¡‘Kâ:ÝSearc•²!h›úOforw“ard˜through˜the˜history˜for˜the˜string˜of˜c“haracters˜bMÞet“w“een˜theŽ¡‘Kâ:start–7®of“the“currenš²!t“line“and“the“pMÞoin˜t.‘‘¶This“is“a“non-incremen˜tal“searc˜h.‘‘¶ByŽ¡‘Kâ:default,–¦fthis“command“is“un²!bMÞound.Ž¦‘GÞhistory-search-backward‘¦f()Ž¡‘Kâ:ÝSearc•²!h›-»bac“kw“ard˜through˜the˜history˜for˜the˜string˜of˜c“haracters˜bMÞet“w“een˜theŽ¡‘Kâ:start–7®of“the“currenš²!t“line“and“the“pMÞoin˜t.‘‘¶This“is“a“non-incremen˜tal“searc˜h.‘‘¶ByŽ¡‘Kâ:default,–¦fthis“command“is“un²!bMÞound.Ž¦‘GÞyank-nth-arg‘¦f(M-C-y)Ž¡‘Kâ:ÝInsert–@the“ rst“argumenš²!t“to“the“previous“command“(usually“the“second“w˜ord“onŽ¡‘Kâ:the–˜Gprevious“line)“at“pMÞoinš²!t.‘Ù(With“an“argumen˜t“ánÝ,‘›insert“the“ánÝth“w˜ord“from“theŽ¡‘Kâ:previous–<command“(the“wš²!ords“in“the“previous“command“bMÞegin“with“w˜ord“0).‘ºhAŽ¡‘Kâ:negativ•²!e›Þargumen“t˜inserts˜the˜ánÝth˜w“ord˜from˜the˜end˜of˜the˜previous˜command.Ž¦‘GÞyank-last-arg–¦f(M-.“or“M-_)Ž¡‘Kâ:ÝInsert–5Elast“argumenš²!t“to“the“previous“command“(the“last“w˜ord“of“the“previousŽ¡‘Kâ:history–¬fenš²!try).‘ïÜWith“an“argumen˜t,‘­æbMÞeha˜v˜e“exactly“lik˜e“Þyank-nth-argÝ.‘ïÜSucces-Ž¡‘Kâ:sivš²!e–&—calls“to“Þyank-last-arg“Ýmo˜v˜e“bac˜k“through“the“history“list,‘F£inserting“theŽ¡‘Kâ:last–¦fargumenš²!t“of“eac˜h“line“in“turn.ŽŽŒ‹ÒŸò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®15ŽŽŽ ƒ3* ý ÌÖ‘Gëa1.4.3‘d(Commands–íMF›þÄ£or“Changing“T˜extŽŽŸ×î‘GÞdelete-char‘¦f(C-d)Ž¤ 33‘Kâ:ÝDelete–«¤the“cš²!haracter“at“pMÞoin˜t.‘í–If“pMÞoin˜t“is“at“the“bMÞeginning“of“the“line,‘ìóthereŽ¡‘Kâ:are–rÝno“cš²!haracters“in“the“line,‘¥ûand“the“last“c˜haracter“t˜ypMÞed“w˜as“not“bMÞound“toŽ¡‘Kâ:Þdelete-charÝ,–¦fthen“return“ãeofÝ.Ž©C‘GÞbackward-delete-char‘¦f(Rubout)Ž¡‘Kâ:ÝDelete–Ÿ§the“cš²!haracter“bMÞehind“the“cursor.‘ÛA‘Ÿ¥n˜umeric“argumen˜t“means“to“kill“theŽ¡‘Kâ:c²!haracters–¦finstead“of“deleting“them.Ž¦‘GÞforward-backward-delete-char‘¦f()Ž¡‘Kâ:ÝDelete–˜‘the“c²!haracter“under“the“cursor,‘Õunless“the“cursor“is“at“the“end“of“theŽ¡‘Kâ:line,‘×~in–Í­whicš²!h“case“the“c˜haracter“bMÞehind“the“cursor“is“deleted.‘S±By“default,‘×~thisŽ¡‘Kâ:is–¦fnot“bMÞound“to“a“k²!ey‘ÿe.Ž¦‘GÞquoted-insert–¦f(C-q“or“C-v)Ž¡‘Kâ:ÝAdd–¸the“next“cš²!haracter“t˜ypMÞed“to“the“line“v˜erbatim.‘CÔThis“is“ho˜w“to“insert“k˜eyŽ¡‘Kâ:sequences–¦flik²!e“äC-qÝ,“for“example.Ž¦‘GÞtab-insert‘¦f(M-ž™š¸hŽ‘êÌŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘êÌŸÙš‰ffÐlŽ‘8ªž™š¸iŽŽ‘ÑŒÞ)Ž¡‘Kâ:ÝInsert–¦fa“tab“c²!haracter.Ž¦‘GÞself-insert–¦f(a,“b,“A,“1,“!,“...Ž‘åe)Ž¡‘Kâ:ÝInsert‘¦fy²!ourself.Ž¦‘GÞtranspose-chars‘¦f(C-t)Ž¡‘Kâ:ÝDrag–Õãthe“cš²!haracter“bMÞefore“the“cursor“forw˜ard“o˜v˜er“the“c˜haracter“at“the“cursor,Ž¡‘Kâ:moš²!ving–C"the“cursor“forw˜ard“as“w˜ell.‘´If“the“insertion“pMÞoin˜t“is“at“the“end“of“theŽ¡‘Kâ:line,‘ÕÍthen–¡¦this“transpMÞoses“the“last“t•²!w“o›¡¦c“haracters˜of˜the˜line.‘†óNegativ“e˜argumen“tsŽ¡‘Kâ:ha•²!v“e–¦fno“e ect.Ž¦‘GÞtranspose-words‘¦f(M-t)Ž¡‘Kâ:ÝDrag–áÜthe“w²!ord“bšMÞefore“p˜oinš²!t“past“the“w˜ord“after“pMÞoin˜t,‘ðºmo˜ving“pMÞoin˜t“past“thatŽ¡‘Kâ:wš²!ord–g¸as“w˜ell.‘ÈøIf“the“insertion“pMÞoin˜t“is“at“the“end“of“the“line,‘tAthis“transpMÞoses“theŽ¡‘Kâ:last›¦ft•²!w“o˜w“ords˜on˜the˜line.Ž¦‘GÞupcase-word‘¦f(M-u)Ž¡‘Kâ:ÝUppMÞercase–ÖÓthe“currenš²!t“(or“follo˜wing)“w˜ord.‘o#With“a“negativ˜e“argumen˜t,‘âîuppMÞer-Ž¡‘Kâ:case–¦fthe“previous“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.Ž¦‘GÞdowncase-word‘¦f(M-l)Ž¡‘Kâ:ÝLo•²!w“ercase–”ãthe“currenš²!t“(or“follo˜wing)“w˜ord.‘‚²With“a“negativ˜e“argumen˜t,‘Ë–lo˜w˜ercaseŽ¡‘Kâ:the–¦fprevious“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.Ž¦‘GÞcapitalize-word‘¦f(M-c)Ž¡‘Kâ:ÝCapitalize–6the“currenš²!t“(or“follo˜wing)“w˜ord.‘€#With“a“negativ˜e“argumen˜t,‘ÅrcapitalizeŽ¡‘Kâ:the–¦fprevious“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.Ž¦‘GÞoverwrite-mode‘¦f()Ž¡‘Kâ:ÝT‘ÿeoggle›öo•²!v“erwrite˜mo•MÞde.‘Í With˜an˜explicit˜p“ositiv•²!e˜n“umeric˜argumen“t,‘ ! switc“hesŽ¡‘Kâ:to›™ÿo•²!v“erwrite˜mo•MÞde.‘„fWith˜an˜explicit˜non-p“ositiv•²!e˜n“umeric˜argumen“t,‘Ï®switc“hes˜toŽŽŒ‹Ý¡Ÿò‘GÝ16’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Kâ:insert–¬ÛmošMÞde.‘ñ=This“command“a ects“only“Þemacs“Ýmo˜de;‘°Þvi“Ýmo˜de“do˜es“o•²!v“erwriteŽ¤ 33‘Kâ:di eren•²!tly‘ÿe.‘ÝÝEac“h–¦fcall“to“Þreadline()“Ýstarts“in“insert“moMÞde.Ž©®‘Kâ:In›Ço•²!v“erwrite˜moMÞde,‘‰c“haracters˜b•MÞound˜to˜Þself-insert˜Ýreplace˜the˜text˜at˜p“oin²!tŽ¡‘Kâ:rather–þîthan“pushing“the“text“to“the“righ²!t.‘çtCharacters“bMÞound“to“Þbackward-Ž¡‘Kâ:delete-char–¦fÝreplace“the“c²!haracter“bšMÞefore“p˜oin²!t“with“a“space.Ž¦‘Kâ:By–¦fdefault,“this“command“is“un²!bMÞound.ŽŸp¤‘Gëa1.4.4‘d(Killing–íMAnd“Y‘þÄ£ankingŽŽŸáG‘GÞkill-line‘¦f(C-k)Ž¡‘Kâ:ÝKill–¦fthe“text“from“pMÞoin²!t“to“the“end“of“the“line.Ž©(õ‘GÞbackward-kill-line–¦f(C-x“Rubout)Ž¡‘Kâ:ÝKill›¦fbac•²!kw“ard˜to˜the˜bMÞeginning˜of˜the˜line.Ž¦‘GÞunix-line-discard‘¦f(C-u)Ž¡‘Kâ:ÝKill›¦fbac•²!kw“ard˜from˜the˜cursor˜to˜the˜bMÞeginning˜of˜the˜curren“t˜line.Ž¦‘GÞkill-whole-line‘¦f()Ž¡‘Kâ:ÝKill–cjall“cš²!haracters“on“the“curren˜t“line,‘’ªno“matter“where“pMÞoin˜t“is.‘èBy“default,Ž¡‘Kâ:this–¦fis“un²!bMÞound.Ž¦‘GÞkill-word‘¦f(M-d)Ž¡‘Kâ:ÝKill–‡ from“pMÞoinš²!t“to“the“end“of“the“curren˜t“w˜ord,‘Qor“if“bMÞet˜w˜een“w˜ords,‘Qto“the“endŽ¡‘Kâ:of–¦fthe“next“w²!ord.‘ÝÝW‘ÿeord“bMÞoundaries“are“the“same“as“Þforward-wordÝ.Ž¦‘GÞbackward-kill-word‘¦f(M-ž™š¸hŽ‘êÌŸù@‰ff“úŸÀ­DELŽŽ‘êÌŸÙš‰ff“úŽ‘ü8ž™š¸iŽŽ‘•Þ)Ž¡‘Kâ:ÝKill–wÖthe“w²!ord“bšMÞehind“p˜oin²!t.‘ÎXW‘ÿeord“b˜oundaries“are“the“same“as“Þbackward-wordÝ.Ž¦‘GÞunix-word-rubout‘¦f(C-w)Ž¡‘Kâ:ÝKill–ÍLthe“w²!ord“bšMÞehind“p˜oinš²!t,‘×using“white“space“as“a“w˜ord“bMÞoundary‘ÿe.‘RThe“killedŽ¡‘Kâ:text–¦fis“sa•²!v“ed–¦fon“the“kill-ring.Ž¦‘GÞunix-filename-rubout‘¦f()Ž¡‘Kâ:ÝKill–]Üthe“w²!ord“bšMÞehind“p˜oinš²!t,‘‹¹using“white“space“and“the“slash“c˜haracter“as“theŽ¡‘Kâ:wš²!ord–¦fbMÞoundaries.‘ÝÝThe“killed“text“is“sa˜v˜ed“on“the“kill-ring.Ž¦‘GÞdelete-horizontal-space‘¦f()Ž¡‘Kâ:ÝDelete–¦fall“spaces“and“tabs“around“pMÞoinš²!t.‘ÝÝBy“default,“this“is“un˜bMÞound.Ž¦‘GÞkill-region‘¦f()Ž¡‘Kâ:ÝKill–¦fthe“text“in“the“currenš²!t“region.‘ÝÝBy“default,“this“command“is“un˜bMÞound.Ž¦‘GÞcopy-region-as-kill‘¦f()Ž¡‘Kâ:ÝCopš²!y–³the“text“in“the“region“to“the“kill“bu er,‘0Eso“it“can“bMÞe“y˜ank˜ed“righ˜t“a˜w˜a˜y‘ÿe.Ž¡‘Kâ:By–¦fdefault,“this“command“is“un²!bMÞound.Ž¦‘GÞcopy-backward-word‘¦f()Ž¡‘Kâ:ÝCopš²!y–žthe“w˜ord“bšMÞefore“p˜oinš²!t“to“the“kill“bu er.‘ÄÿThe“w˜ord“bMÞoundaries“are“theŽ¡‘Kâ:same–¦fas“Þbackward-wordÝ.‘ÝÝBy“default,“this“command“is“un²!bMÞound.Ž¦‘GÞcopy-forward-word‘¦f()Ž¡‘Kâ:ÝCopš²!y–º8the“w˜ord“follo˜wing“pMÞoin˜t“to“the“kill“bu er.‘SThe“w˜ord“bMÞoundaries“are“theŽ¡‘Kâ:same–¦fas“Þforward-wordÝ.‘ÝÝBy“default,“this“command“is“un²!bMÞound.ŽŽŒ‹軟ò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®17ŽŽŽ ƒ3* ý ÌÖ‘GÞyank‘¦f(C-y)Ž¤ 33‘Kâ:ÝY‘ÿeank–¦fthe“top“of“the“kill“ring“inš²!to“the“bu er“at“pMÞoin˜t.Ž©FÓ‘GÞyank-pop‘¦f(M-y)Ž¡‘Kâ:ÝRotate–'!the“kill-ring,‘GPand“y²!ank“the“new“top.‘`Y‘ÿeou“can“only“do“this“if“the“priorŽ¡‘Kâ:command–¦fis“Þyank“Ýor“Þyank-popÝ.ŽŸp‘Gëa1.4.5‘d(Spiecifying–íMNumeric“Argumen–átsŽŽŸp6‘GÞdigit-argument–¦f(äM-0Þ,“äM-1Þ,“...Ž‘‹ËäM--Þ)Ž¡‘Kâ:ÝAdd–:Lthis“digit“to“the“argumenš²!t“already“accum˜ulating,‘Oëor“start“a“new“argumen˜t.Ž¡‘Kâ:äM--–¦fÝstarts“a“negativš²!e“argumen˜t.Ž¦‘GÞuniversal-argument‘¦f()Ž¡‘Kâ:ÝThis–kis“another“w•²!a“y–kto“spMÞecify“an“argumenš²!t.‘«ßIf“this“command“is“follo˜w˜ed“b˜y“oneŽ¡‘Kâ:or–more“digits,›“³optionally“with“a“leading“min²!us“sign,˜those“digits“de ne“the“ar-Ž¡‘Kâ:gumenš²!t.‘ÐÚIf–\the“command“is“follo˜w˜ed“b˜y“digits,‘‡+executing“Þuniversal-argumentŽ¡‘Kâ:Ýagain–Ñ«ends“the“nš²!umeric“argumen˜t,‘Ü|but“is“otherwise“ignored.‘_«As“a“spMÞecial“case,Ž¡‘Kâ:if–ñúthis“command“is“immediately“follo•²!w“ed›ñúb“y˜a˜c“haracter˜that˜is˜neither˜a˜digitŽ¡‘Kâ:or–Zwminš²!us“sign,‘i§the“argumen˜t“coun˜t“for“the“next“command“is“m˜ultiplied“b˜y“four.Ž¡‘Kâ:The–{targumenš²!t“coun˜t“is“initially“one,‘°¸so“executing“this“function“the“ rst“timeŽ¡‘Kâ:makš²!es–Ï2the“argumen˜t“coun˜t“four,‘Ùea“second“time“mak˜es“the“argumen˜t“coun˜t“six-Ž¡‘Kâ:teen,–¦fand“so“on.‘ÝÝBy“default,“this“is“not“bMÞound“to“a“k²!ey‘ÿe.ŽŸp‘Gëa1.4.6‘d(Letting–íMReadline“T–áypie“F›þÄ£or“Y˜ouŽŽŸp6‘GÞcomplete‘¦f(ž™š¸hŽ‘êÌŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘êÌŸÙš‰ffÐlŽ‘8ªž™š¸iŽŽ‘ÑŒÞ)Ž¡‘Kâ:ÝA²!ttempt–¶èto“pšMÞerform“completion“on“the“text“b˜efore“p˜oin²!t.‘ŽThe“actual“completionŽ¡‘Kâ:pšMÞerformed–¦fis“application-sp˜eci c.‘ÝÝThe“default“is“ lename“completion.Ž¦‘GÞpossible-completions‘¦f(M-?)Ž¡‘Kâ:ÝList–¦fthe“pšMÞossible“completions“of“the“text“b˜efore“p˜oin²!t.Ž¦‘GÞinsert-completions‘¦f(M-*)Ž¡‘Kâ:ÝInsert–«µall“completions“of“the“text“bšMÞefore“p˜oinš²!t“that“w˜ould“ha˜v˜e“bMÞeen“generatedŽ¡‘Kâ:b²!y‘¦fÞpossible-completionsÝ.Ž¦‘GÞmenu-complete‘¦f()Ž¡‘Kâ:ÝSimilar–ÛVto“ÞcompleteÝ,‘óbut“replaces“the“wš²!ord“to“bMÞe“completed“with“a“single“matc˜hŽ¡‘Kâ:from–‹æthe“list“of“pšMÞossible“completions.‘Ž^Rep˜eated“execution“of“Þmenu-completeŽ¡‘Kâ:Ýsteps–Õ¯through“the“list“of“pMÞossible“completions,‘!inserting“eacš²!h“matc˜h“in“turn.Ž¡‘Kâ:A²!t–jthe“end“of“the“list“of“completions,‘›šthe“bMÞell“is“rung“(sub‘›»ject“to“the“settingŽ¡‘Kâ:of–ThÞbell-styleÝ)“and“the“original“text“is“restored.‘çãAn“argumenš²!t“of“án“Ýmo˜v˜es“ánŽ¡‘Kâ:ÝpMÞositions–,Rforwš²!ard“in“the“list“of“matc˜hes;‘oGa“negativ˜e“argumen˜t“ma˜y“bMÞe“used“toŽ¡‘Kâ:mo•²!v“e›™Žbac“kw“ard˜through˜the˜list.‘·UThis˜command˜is˜in“tended˜to˜b•MÞe˜b“ound˜toŽ¡‘Kâ:ž™š¸hŽ‘NÍŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘NÍŸÙš‰ffÐlŽ‘`äž™š¸iŽŽ‘c³ÆÝ,–¦fbut“is“unš²!bMÞound“b˜y“default.Ž¦‘GÞdelete-char-or-list‘¦f()Ž¡‘Kâ:ÝDeletes–9{the“c²!haracter“under“the“cursor“if“not“at“the“bMÞeginning“or“end“of“the“lineŽ¡‘Kâ:(likš²!e–~±Þdelete-charÝ).‘СIf“at“the“end“of“the“line,‘†¢bMÞeha˜v˜es“iden˜tically“to“Þpossible-Ž¡‘Kâ:completionsÝ.‘ÝÝThis–¦fcommand“is“unš²!bMÞound“b˜y“default.ŽŽŒ‹óñŸò‘GÝ18’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Gëa1.4.7‘d(Keybioard‘íMMacrosŽŽŸ¢¾‘GÞstart-kbd-macro–¦f(C-x“()Ž¤ 33‘Kâ:ÝBegin–¦fsaš²!ving“the“c˜haracters“t˜ypMÞed“in˜to“the“curren˜t“k˜eybMÞoard“macro.Ž©«ã‘GÞend-kbd-macro–¦f(C-x“))Ž¡‘Kâ:ÝStop–G!saš²!ving“the“c˜haracters“t˜ypMÞed“in˜to“the“curren˜t“k˜eybMÞoard“macro“and“sa˜v˜e“theŽ¡‘Kâ:de nition.Ž¦‘GÞcall-last-kbd-macro–¦f(C-x“e)Ž¡‘Kâ:ÝRe-execute–9Bthe“last“kš²!eybMÞoard“macro“de ned,‘]ùb˜y“making“the“c˜haracters“in“theŽ¡‘Kâ:macro–¦fappšMÞear“as“if“t²!yp˜ed“at“the“k²!eyb˜oard.ŽŸñ_‘Gëa1.4.8‘d(Some–íMMiscellaneous“CommandsŽŽŸ¢¾‘GÞre-read-init-file–¦f(C-x“C-r)Ž¡‘Kâ:ÝRead– kin“the“con•²!ten“ts– kof“the“áinputrc‘JoÝ le,‘ÔÐand“incorpMÞorate“an²!y“bindings“or“v‘ÿdDariableŽ¡‘Kâ:assignmen²!ts–¦ffound“there.Ž¦‘GÞabort‘¦f(C-g)Ž¡‘Kâ:ÝAbšMÞort–/the“curren²!t“editing“command“and“ring“the“terminal's“b˜ell“(sub‘›»ject“to“theŽ¡‘Kâ:setting–¦fof“Þbell-styleÝ).Ž¦‘GÞdo-uppercase-version–¦f(M-a,“M-b,“M-äxÞ,“...Ž‘åe)Ž¡‘Kâ:ÝIf–Qõthe“meta ed“cš²!haracter“áx‘TÝis“lo˜w˜ercase,‘bØrun“the“command“that“is“bMÞound“to“theŽ¡‘Kâ:corresp•MÞonding›¦fupp“ercase˜c²!haracter.Ž¦‘GÞprefix-meta‘¦f(ž™š¸hŽ‘êÌŸù@‰ff¤TŸÀ­ESCŽŽ‘êÌŸÙš‰ff¤TŽ‘ ’ž™š¸iŽŽ‘¥tÞ)Ž¡‘Kâ:ÝMetafy–‚2the“next“cš²!haracter“t˜ypMÞed.‘q@This“is“for“k˜eybMÞoards“without“a“meta“k˜ey‘ÿe.Ž¡‘Kâ:Tš²!yping–¦f`ž™š¸hŽ‘êÌŸù@‰ff¤TŸÀ­ESCŽŽ‘êÌŸÙš‰ff¤TŽ‘ ’ž™š¸iŽŽ‘KÚÞfÝ'“is“equiv‘ÿdDalen˜t“to“t˜yping“äM-fÝ.Ž¦‘GÞundo–¦f(C-_“or“C-x“C-u)Ž¡‘Kâ:ÝIncremenš²!tal–¦fundo,“separately“remem˜bMÞered“for“eac˜h“line.Ž¦‘GÞrevert-line‘¦f(M-r)Ž¡‘Kâ:ÝUndo–úall“cš²!hanges“made“to“this“line.‘ØäThis“is“lik˜e“executing“the“Þundo“ÝcommandŽ¡‘Kâ:enough–¦ftimes“to“get“bac²!k“to“the“bMÞeginning.Ž¦‘GÞtilde-expand‘¦f(M-~)Ž¡‘Kâ:ÝPš²!erform–¦ftilde“expansion“on“the“curren˜t“w˜ord.Ž¦‘GÞset-mark‘¦f(C-@)Ž¡‘Kâ:ÝSet–ðthe“mark“to“the“pMÞoinš²!t.‘ºØIf“a“n˜umeric“argumen˜t“is“supplied,‘ythe“mark“is“setŽ¡‘Kâ:to–¦fthat“pMÞosition.Ž¦‘GÞexchange-point-and-mark–¦f(C-x“C-x)Ž¡‘Kâ:ÝSwš²!ap–¾Òthe“pMÞoin˜t“with“the“mark.‘'!The“curren˜t“cursor“pMÞosition“is“set“to“the“sa˜v˜edŽ¡‘Kâ:pšMÞosition,–¦fand“the“old“cursor“p˜osition“is“sa•²!v“ed–¦fas“the“mark.Ž¦‘GÞcharacter-search‘¦f(C-])Ž¡‘Kâ:ÝA‘ü&cš²!haracter–üQis“read“and“pMÞoin˜t“is“mo˜v˜ed“to“the“next“oMÞccurrence“of“that“c˜haracter.Ž¡‘Kâ:A–¦fnegativš²!e“coun˜t“searc˜hes“for“previous“oMÞccurrences.ŽŽŒ‹ôŸò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®19ŽŽŽ ƒ3* ý ÌÖ‘GÞcharacter-search-backward‘¦f(M-C-])Ž¤ 33‘Kâ:ÝA‘c"cš²!haracter–c•is“read“and“pMÞoin˜t“is“mo˜v˜ed“to“the“previous“oMÞccurrence“of“thatŽ¡‘Kâ:c•²!haracter.‘ÝÝA›¦fnegativ“e˜coun“t˜searc“hes˜for˜subsequen“t˜oMÞccurrences.Ž©33‘GÞinsert-comment‘¦f(M-#)Ž¡‘Kâ:ÝWithout–GÑa“nš²!umeric“argumen˜t,‘p+the“v›ÿdDalue“of“the“Þcomment-begin“Ýv˜ariable“is“in-Ž¡‘Kâ:serted–Ìèat“the“bMÞeginning“of“the“currenš²!t“line.‘QdIf“a“n˜umeric“argumen˜t“is“supplied,Ž¡‘Kâ:this–cøcommand“acts“as“a“toggle:‘Yif“the“c²!haracters“at“the“bMÞeginning“of“the“lineŽ¡‘Kâ:do–¬Ânot“matc²!h“the“v›ÿdDalue“of“Þcomment-beginÝ,‘®Ythe“v˜alue“is“inserted,‘®Yotherwise“theŽ¡‘Kâ:c²!haracters–Ó6in“Þcomment-begin“Ýare“deleted“from“the“bMÞeginning“of“the“line.‘dMInŽ¡‘Kâ:either–¦fcase,“the“line“is“accepted“as“if“a“newline“had“bšMÞeen“t²!yp˜ed.Ž¦‘GÞdump-functions‘¦f()Ž¡‘Kâ:ÝPrinš²!t–,Qall“of“the“functions“and“their“k˜ey“bindings“to“the“Readline“output“stream.Ž¡‘Kâ:If–Îïa“nš²!umeric“argumen˜t“is“supplied,‘Ùthe“output“is“formatted“in“suc˜h“a“w˜a˜y“thatŽ¡‘Kâ:it–¦fcan“bšMÞe“made“part“of“an“áinputrc‘PjÝ le.‘ÝÝThis“command“is“un²!b˜ound“b²!y“default.Ž¦‘GÞdump-variables‘¦f()Ž¡‘Kâ:ÝPrin²!t–ŽÉall“of“the“settable“v›ÿdDariables“and“their“v˜alues“to“the“Readline“output“stream.Ž¡‘Kâ:If–Îïa“nš²!umeric“argumen˜t“is“supplied,‘Ùthe“output“is“formatted“in“suc˜h“a“w˜a˜y“thatŽ¡‘Kâ:it–¦fcan“bšMÞe“made“part“of“an“áinputrc‘PjÝ le.‘ÝÝThis“command“is“un²!b˜ound“b²!y“default.Ž¦‘GÞdump-macros‘¦f()Ž¡‘Kâ:ÝPrinš²!t– ˆall“of“the“Readline“k˜ey“sequences“bMÞound“to“macros“and“the“strings“theyŽ¡‘Kâ:output.‘rŠIf–-Ja“nš²!umeric“argumen˜t“is“supplied,‘Othe“output“is“formatted“in“suc˜h“aŽ¡‘Kâ:w•²!a“y–šthat“it“can“bšMÞe“made“part“of“an“áinputrc‘DÝ le.‘ÙÃThis“command“is“un²!b˜ound“b²!yŽ¡‘Kâ:default.Ž¦‘GÞemacs-editing-mode‘¦f(C-e)Ž¡‘Kâ:ÝWhen–¦fin“Þvi“Ýcommand“mošMÞde,“this“causes“a“switc²!h“to“Þemacs“Ýediting“mo˜de.Ž¦‘GÞvi-editing-mode‘¦f(M-C-j)Ž¡‘Kâ:ÝWhen–¦fin“Þemacs“Ýediting“mošMÞde,“this“causes“a“switc²!h“to“Þvi“Ýediting“mo˜de.ŽŸ‘GëX1.5‘™Readline–f@vi“Mos3deŽŽŸff‘!GÝWhile–×Uthe“Readline“library“došMÞes“not“ha•²!v“e–×Ua“full“set“of“Þvi“Ýediting“functions,‘¿it“do˜es“con²!tainŽ¡‘Genough–to“allo²!w“simple“editing“of“the“line.‘.ƒThe“Readline“Þvi“ÝmošMÞde“b˜eha•²!v“es–as“sp˜eci ed“inŽ¡‘Gthe–¦fãposix“Ý1003.2“standard.Ž©33‘!GIn–|Uorder“to“switcš²!h“in˜teractiv˜ely“bMÞet˜w˜een“Þemacs“Ýand“Þvi“Ýediting“moMÞdes,‘„¿use“the“commandŽ¡‘GäM-C-j–iÝ(bšMÞound“to“emacs-editing-mo˜de“when“in“Þvi“Ýmo˜de“and“to“vi-editing-mo˜de“in“ÞemacsŽ¡‘GÝmošMÞde).‘ÝÝThe–¦fReadline“default“is“Þemacs“Ýmo˜de.Ž¦‘!GWhen–›‰yš²!ou“en˜ter“a“line“in“Þvi“ÝmoMÞde,‘µy˜ou“are“already“placed“in“`insertion'“moMÞde,‘µas“if“y˜ouŽ¡‘Ghad–&Gtš²!ypMÞed“an“`ÞiÝ'.‘³(Pressing“ž™š¸hŽ‘Ÿù@‰ff¤TŸÀ­ESCŽŽ‘ŸÙš‰ff¤TŽ‘2Ùž™š¸iŽŽ‘òÝswitc˜hes“y˜ou“in˜to“`command'“moMÞde,‘?çwhere“y˜ou“can“edit“theŽ¡‘Gtext–of“the“line“with“the“standard“Þvi“Ýmo•²!v“emen“t›k“eys,‘)–‡Ýin“an²!y“ le“that“uses“Readline's“features.‘û?Since“some“of“the“de -Ž¡‘Gnitions–¾„in“Þreadline.h“Ýuse“the“Þstdio“Ýlibrary‘ÿe,‘ÄŒthe“ le“Þ“Ýshould“bšMÞe“included“b˜eforeŽ¡‘GÞreadline.hÝ.Ž¦‘!GÞreadline.h–¬2Ýde nes“a“C‘¬1preprošMÞcessor“v‘ÿdDariable“that“should“b˜e“treated“as“an“in²!teger,‘­¥ÞRL_Ž¡‘GREADLINE_VERSIONÝ,‘Ûwhic•²!h›¨(ma“y˜b•MÞe˜used˜to˜conditionally˜compile˜application˜co“de˜dep“endingŽ¡‘Gon–4üthe“installed“Readline“v²!ersion.‘‰ The“v‘ÿdDalue“is“a“hexadecimal“encoMÞding“of“the“ma‘›»jor“andŽ¡‘Gminor–Rvš²!ersion“n˜um˜bMÞers“of“the“library‘ÿe,‘8Œof“the“form“0xáMMmmÝ.‘< áMM‘JâÝis“the“t˜w˜o-digit“ma‘›»jorŽ¡‘Gv•²!ersion›z.n“um“bMÞer;‘ˆëámm˜Ýis˜the˜t“w“o-digit˜minor˜v“ersion˜n“um“bMÞer.‘Ï F‘ÿeor˜Readline˜4.2,‘ƒfor˜example,Ž¡‘Gthe–¦fv‘ÿdDalue“of“ÞRL_READLINE_VERSION“Ýw²!ould“bMÞe“Þ0x0402Ý.ŽŽŒ‹#úŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—23ŽŽŽ ƒ3* ý ÌÖ‘Gëa2.2.1‘d(Readline‘íMT–áypiedefsŽŽŸ‘!GÝF–ÿeor›¦freadabilt²!y“,˜w•²!e˜declare˜a˜n“um“bMÞer˜of˜new˜ob‘›»ject˜t“yp•MÞes,˜all˜p“oin²!ters˜to˜functions.Ž¤ÝÞ‘!GThe–IÖreason“for“declaring“these“new“tš²!ypMÞes“is“to“mak˜e“it“easier“to“write“coMÞde“describingŽ© 33‘GpMÞoinš²!ters–¦fto“C“functions“with“appropriately“protot˜ypMÞed“argumen˜ts“and“return“v‘ÿdDalues.Ž¡‘!GF‘ÿeor–m½instance,‘Ÿ“saš²!y“w˜e“w˜an˜t“to“declare“a“v‘ÿdDariable“áfunc‘ÁÝas“a“pMÞoin˜ter“to“a“function“whic˜hŽ¦‘Gtak•²!es›©t“w“o˜Þint˜Ýargumen“ts˜and˜returns˜an˜Þint˜Ý(this˜is˜the˜t“ypMÞe˜of˜all˜of˜the˜Readline˜bindableŽ¦‘Gfunctions).‘ÝÝInstead–¦fof“the“classic“C“declarationŽ¡‘!GÞint‘¦f(*func)();Ž¡‘GÝor–¦fthe“ANSI-C“st²!yle“declarationŽ¡‘!GÞint–¦f(*func)(int,“int);Ž¡‘GÝw•²!e›¦fma“y˜writeŽ¡‘!GÞrl_command_func_t‘¦f*func;Ž¡‘!GÝThe–¦ffull“list“of“function“pMÞoinš²!ter“t˜ypMÞes“a˜v‘ÿdDailable“isŽŸˆ‰‘GÞtypedef–¦fint“rl_command_func_t“(int,“int);Ž¦‘Gtypedef–¦fchar“*rl_compentry_func_t“(const“char“*,“int);Ž¦‘Gtypedef–¦fchar“**rl_completion_func_t“(const“char“*,“int,“int);Ž¦‘Gtypedef–¦fchar“*rl_quote_func_t“(char“*,“int,“char“*);Ž¦‘Gtypedef–¦fchar“*rl_dequote_func_t“(char“*,“int);Ž¦‘Gtypedef–¦fint“rl_compignore_func_t“(char“**);Ž¦‘Gtypedef–¦fvoid“rl_compdisp_func_t“(char“**,“int,“int);Ž¦‘Gtypedef–¦fint“rl_hook_func_t“(void);Ž¦‘Gtypedef–¦fint“rl_getc_func_t“(FILE“*);Ž¦‘Gtypedef–¦fint“rl_linebuf_func_t“(char“*,“int);Ž¦‘Gtypedef–¦fint“rl_intfunc_t“(int);Ž¦‘G#define–¦frl_ivoidfunc_t“rl_hook_func_tŽ¦‘Gtypedef–¦fint“rl_icpfunc_t“(char“*);Ž¦‘Gtypedef–¦fint“rl_icppfunc_t“(char“**);Ž¦‘Gtypedef–¦fvoid“rl_voidfunc_t“(void);Ž¦‘Gtypedef–¦fvoid“rl_vintfunc_t“(int);Ž¦‘Gtypedef–¦fvoid“rl_vcpfunc_t“(char“*);Ž¦‘Gtypedef–¦fvoid“rl_vcppfunc_t“(char“**);ŽŸUU‘Gëa2.2.2‘d(W›þÄ£riting–íMa“New“F˜unctionŽŽŸ‘!GÝIn–Üôorder“to“write“new“functions“for“Readline,‘ê—yš²!ou“need“to“kno˜w“the“calling“con˜v˜en˜tionsŽ¦‘Gfor›l¶k•²!eybMÞoard-in“v“ok“ed˜functions,‘žJand˜the˜names˜of˜the˜v‘ÿdDariables˜that˜describMÞe˜the˜curren“tŽ¦‘Gstate–¦fof“the“line“read“so“far.Ž¡‘!GThe–¦fcalling“sequence“for“a“command“Þfoo“ÝloMÞoks“lik²!eŽ¡‘.ùœÞint–¿ªfoo“(int“count,“int“key)Ž¡‘GÝwhere–Pgácounš²!t‘gÝis“the“n˜umeric“argumen˜t“(or“1“if“defaulted)“and“ák˜ey‘@Ýis“the“k˜ey“that“in˜v˜ok˜edŽ¦‘Gthis‘¦ffunction.Ž¡‘!GIt–Äis“completely“up“to“the“function“as“to“what“should“bMÞe“done“with“the“nš²!umeric“argumen˜t.Ž¦‘GSome–Ï;functions“use“it“as“a“repMÞeat“coun²!t,›psome“as“a“ ag,˜and“others“to“c²!hoMÞose“alternateŽŽŒ‹1ÈŸò‘GÝ24’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘GbMÞehaš²!vior–4ñ(refreshing“the“curren˜t“line“as“oppMÞosed“to“refreshing“the“screen,‘˜“for“example).Ž¤ 33‘GSome–ýcš²!hoMÞose“to“ignore“it.‘á°In“general,‘©if“a“function“uses“the“n˜umeric“argumen˜t“as“a“repMÞeatŽ¡‘Gcoun²!t,‘itit–Z7should“bšMÞe“able“to“do“something“useful“with“b˜oth“negativ²!e“and“p˜ositivš²!e“argumen˜ts.Ž¡‘GAš²!t–¦fthe“v˜ery“least,“it“should“bMÞe“a˜w˜are“that“it“can“bMÞe“passed“a“negativ˜e“argumen˜t.ŽŸthis“is“the“address“of“a“function“to“call“just“bMÞefore“Þreadline“Ýprin²!ts“theŽ¡‘.ùœ rst‘¦fprompt.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèrl_hook_func_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|pre‘÷R‰ˆŠ#ØŽ“input‘÷R‰ˆŠ#ØŽ“hob"okŽ¡‘.ùœÝIf–CÜnon-zero,‘k9this“is“the“address“of“a“function“to“call“after“the“ rst“prompt“has“bMÞeenŽ¡‘.ùœprinš²!ted–¦fand“just“bMÞefore“Þreadline“Ýstarts“reading“input“c˜haracters.ŽŽŒ‹IíŸò‘GÝ26’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ’–3[V‘ÿeariable]ŽŽ‘Gèrl_hook_func_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ›|ev•Þen“t‘÷R‰ˆŠ#ØŽ˜hob"okŽ¤ 33‘.ùœÝIf–ânon-zero,‘0ìthis“is“the“address“of“a“function“to“call“p•MÞerio“dically–âwhen“Readline“isŽ¡‘.ùœw²!aiting–€*for“terminal“input.‘ÑBy“default,‘‡Ïthis“will“bMÞe“called“at“most“ten“times“a“secondŽ¡‘.ùœif–¦fthere“is“no“k²!eybMÞoard“input.Ž©r7’–3[V‘ÿeariable]ŽŽ‘Gèrl_getc_func_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|getc‘÷R‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝIf–§Wnon-zero,‘§“Readline“will“call“indirectly“through“this“pMÞoinš²!ter“to“get“a“c˜haracter“fromŽ¡‘.ùœthe–ž`input“stream.‘ÅËBy“default,›Ü^it“is“set“to“Þrl_getcÝ,˜the“default“Readline“c²!haracterŽ¡‘.ùœinput–¦ffunction“(see“Section“2.4.8“[Character“Input],“page“34).Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèrl_voidfunc_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|redisplaÞy‘÷R‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝIf–S­non-zero,‘~ÿReadline“will“call“indirectly“through“this“pšMÞoin²!ter“to“up˜date“the“displa²!yŽ¡‘.ùœwith–=Ôthe“currenš²!t“con˜ten˜ts“of“the“editing“bu er.‘»By“default,‘R¾it“is“set“to“Þrl_redisplayÝ,Ž¡‘.ùœthe–¦fdefault“Readline“redisplaš²!y“function“(see“Section“2.4.6“[Redispla˜y],“page“32).Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèrl_vintfunc_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|prep‘÷R‰ˆŠ#ØŽ“term‘÷R‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝIf–âÏnon-zero,‘ íReadline“will“call“indirectly“through“this“pMÞoin²!ter“to“initialize“the“terminal.Ž¡‘.ùœThe–ufunction“takš²!es“a“single“argumen˜t,‘©Gan“Þint“Ý ag“that“sa˜ys“whether“or“not“to“useŽ¡‘.ùœeigh•²!t-bit›Èc“haracters.‘5By˜default,‘5athis˜is˜set˜to˜Þrl_prep_terminal˜Ý(see˜Section˜2.4.9Ž¡‘.ùœ[T‘ÿeerminal–¦fManagemen²!t],“page“35).Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèrl_voidfunc_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|deprep‘÷R‰ˆŠ#ØŽ“term‘÷R‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝIf–eynon-zero,‘•>Readline“will“call“indirectly“through“this“pMÞoin²!ter“to“reset“the“terminal.Ž¡‘.ùœThis–4function“should“undo“the“e ects“of“Þrl_prep_term_functionÝ.‘ˆXBy“default,‘XthisŽ¡‘.ùœis–¦fset“to“Þrl_deprep_terminal“Ý(see“Section“2.4.9“[T‘ÿeerminal“Managemen²!t],“page“35).Ž¦’–3[V‘ÿeariable]ŽŽ‘GèKeymap‘™˜çrl‘÷R‰ˆŠ#ØŽ–|executing‘÷R‰ˆŠ#ØŽ“kÞeymapŽ¡‘.ùœÝThis–ROv‘ÿdDariable“is“set“to“the“kš²!eymap“(see“Section“2.4.2“[Keymaps],‘}Hpage“28)“in“whic˜hŽ¡‘.ùœthe–¦fcurrenš²!tly“executing“readline“function“w˜as“found.Ž¦’–3[V‘ÿeariable]ŽŽ‘GèKeymap‘™˜çrl‘÷R‰ˆŠ#ØŽ–|binding‘÷R‰ˆŠ#ØŽ“kÞeymapŽ¡‘.ùœÝThis–ROv‘ÿdDariable“is“set“to“the“kš²!eymap“(see“Section“2.4.2“[Keymaps],‘}Hpage“28)“in“whic˜hŽ¡‘.ùœthe–¦flast“k²!ey“binding“oMÞccurred.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèchar–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|executing‘÷R‰ˆŠ#ØŽ“macroŽ¡‘.ùœÝThis–¦fv‘ÿdDariable“is“set“to“the“text“of“anš²!y“curren˜tly-executing“macro.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|readline‘÷R‰ˆŠ#ØŽ“stateŽ¡‘.ùœÝA‘#¨v›ÿdDariable–#Èwith“bit“v˜alues“that“encapsulate“the“curren²!t“Readline“state.‘VA‘#¨bit“is“setŽ¡‘.ùœwith–½the“ÞRL_SETSTATE“Ýmacro,‘Ç“and“unset“with“the“ÞRL_UNSETSTATE“Ýmacro.‘“ãUse“theŽ¡‘.ùœÞRL_ISSTATE–zÝmacro“to“test“whether“a“particular“state“bit“is“set.‘X¬Curren²!t“state“bitsŽ¡‘.ùœinclude:ŽŸbv‘.ùœÞRL_STATE_NONEŽ¡‘hÊÝReadline–¦fhas“not“y²!et“bšMÞeen“called,“nor“has“it“b˜egun“to“in²!tialize.Ž©Rµ‘.ùœÞRL_STATE_INITIALIZINGŽ¡‘hÊÝReadline–¦fis“initializing“its“in²!ternal“data“structures.Ž¦‘.ùœÞRL_STATE_INITIALIZEDŽ¡‘hÊÝReadline–¦fhas“completed“its“initialization.ŽŽŒ‹XéŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—27ŽŽŽ ƒ3* ý ÌÖ‘.ùœÞRL_STATE_TERMPREPPEDŽ¤ 33‘hÊÝReadline–r[has“mošMÞdi ed“the“terminal“mo˜des“to“do“its“o²!wn“input“and“redis-Ž¡‘hÊpla²!y‘ÿe.Ž©]]‘.ùœÞRL_STATE_READCMDŽ¡‘hÊÝReadline–¦fis“reading“a“command“from“the“k²!eybMÞoard.Ž¦‘.ùœÞRL_STATE_METANEXTŽ¡‘hÊÝReadline–¦fis“reading“more“input“after“reading“the“meta-pre x“c²!haracter.Ž¦‘.ùœÞRL_STATE_DISPATCHINGŽ¡‘hÊÝReadline–¦fis“dispatc²!hing“to“a“command.Ž¦‘.ùœÞRL_STATE_MOREINPUTŽ¡‘hÊÝReadline–¦fis“reading“more“input“while“executing“an“editing“command.Ž¦‘.ùœÞRL_STATE_ISEARCHŽ¡‘hÊÝReadline–¦fis“pMÞerforming“an“incremenš²!tal“history“searc˜h.Ž¦‘.ùœÞRL_STATE_NSEARCHŽ¡‘hÊÝReadline–¦fis“pMÞerforming“a“non-incremenš²!tal“history“searc˜h.Ž¦‘.ùœÞRL_STATE_SEARCHŽ¡‘hÊÝReadline–péis“searcš²!hing“bac˜kw˜ard“or“forw˜ard“through“the“history“for“a“string.Ž¦‘.ùœÞRL_STATE_NUMERICARGŽ¡‘hÊÝReadline–¦fis“reading“a“nš²!umeric“argumen˜t.Ž¦‘.ùœÞRL_STATE_MACROINPUTŽ¡‘hÊÝReadline–çis“currenš²!tly“getting“its“input“from“a“previously-de ned“k˜eybMÞoardŽ¡‘hÊmacro.Ž¦‘.ùœÞRL_STATE_MACRODEFŽ¡‘hÊÝReadline–¦fis“currenš²!tly“reading“c˜haracters“de ning“a“k˜eybMÞoard“macro.Ž¦‘.ùœÞRL_STATE_OVERWRITEŽ¡‘hÊÝReadline–¦fis“in“o•²!v“erwrite‘¦fmoMÞde.Ž¦‘.ùœÞRL_STATE_COMPLETINGŽ¡‘hÊÝReadline–¦fis“pMÞerforming“w²!ord“completion.Ž¦‘.ùœÞRL_STATE_SIGHANDLERŽ¡‘hÊÝReadline–¦fis“curren²!tly“executing“the“readline“signal“handler.Ž¦‘.ùœÞRL_STATE_UNDOINGŽ¡‘hÊÝReadline–¦fis“pMÞerforming“an“undo.Ž¦‘.ùœÞRL_STATE_DONEŽ¡‘hÊÝReadline–T†has“read“a“k²!ey“sequence“bšMÞound“to“Þaccept-line“Ýand“is“ab˜out“toŽ¡‘hÊreturn–¦fthe“line“to“the“caller.ŽŸ‡‡’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|explicit‘÷R‰ˆŠ#ØŽ“argŽ¡‘.ùœÝSet–©]to“a“non-zero“v‘ÿdDalue“if“an“explicit“nš²!umeric“argumen˜t“w˜as“spMÞeci ed“b˜y“the“user.Ž¡‘.ùœOnly–¦fv‘ÿdDalid“in“a“bindable“command“function.ŽŽŒ‹fãŸò‘GÝ28’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|nÞumeric‘÷R‰ˆŠ#ØŽ“argŽ¤ 33‘.ùœÝSet–r,to“the“v‘ÿdDalue“of“anš²!y“n˜umeric“argumen˜t“explicitly“spMÞeci ed“b˜y“the“user“bMÞeforeŽ¡‘.ùœexecuting–´the“curren²!t“Readline“function.‘°LOnly“v‘ÿdDalid“in“a“bindable“command“function.Ž©£‚’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|editing‘÷R‰ˆŠ#ØŽ“mob"deŽ¡‘.ùœÝSet–pto“a“v›ÿdDalue“denoting“Readline's“curren²!t“editing“moMÞde.‘§‹A‘Fv˜alue“of“á1‘â©Ýmeans“ReadlineŽ¡‘.ùœis–¦fcurren²!tly“in“emacs“mošMÞde;“á0‘…ŸÝmeans“that“vi“mo˜de“is“activ²!e.ŽŸpO‘GëX2.4‘™Readline›f@Con•ŒÌv“enience˜F‘þ¦functionsŽŽŸ'£‚‘Gëa2.4.1‘d(Naming–íMa“F‘þÄ£unctionŽŽŸ6€‘!GÝThe–Æluser“can“dynamically“cš²!hange“the“bindings“of“k˜eys“while“using“Readline.‘=îThis“isŽ¡‘Gdone–m.bš²!y“represen˜ting“the“function“with“a“descriptiv˜e“name.‘26The“user“is“able“to“t˜ypMÞe“theŽ¡‘Gdescriptivš²!e–¦fname“when“referring“to“the“function.‘ÝÝTh˜us,“in“an“init“ le,“one“migh˜t“ ndŽ¤M‘.ùœÞMeta-Rubout:‘ Tbackward-kill-wordŽ¡‘!GÝThis–Î0binds“the“k•²!eystrok“e‘Î0ž™š¸hŽ‘¸üŸù@‰ff2)nŸÀ­Meta-Rub‰x³HøŽ‘Ñtinsert,‘Í}the“lo˜w˜ercaseŽ¡‘.ùœMeta–µÝcš²!haracters“bMÞound“to“run“their“equiv‘ÿdDalen˜ts,‘åøand“the“Meta“digits“bšMÞound“to“pro˜duceŽ¡‘.ùœn•²!umeric‘¦fargumen“ts.ŽŽŒ‹nºŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—29ŽŽŽ ƒ3* ý ÌÖ’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|discard‘÷R‰ˆŠ#ØŽ“kÞeymap‘yšâ(ÞKeymap‘¦fkeymapâ)Ž¤ 33‘.ùœÝF‘ÿeree–¦fthe“storage“assoMÞciated“with“ák²!eymapÝ.Ž©)ã‘!GReadline–qhas“sevš²!eral“in˜ternal“k˜eymaps.‘ ! >These“functions“allo˜w“y˜ou“to“c˜hange“whic˜hŽ¡‘Gkš²!eymap–¦fis“activ˜e.Ž¦’“z[F‘ÿeunction]ŽŽ‘GèKeymap‘™˜çrl‘÷R‰ˆŠ#ØŽ–|get‘÷R‰ˆŠ#ØŽ“kÞeymap‘yšâ(Þvoidâ)Ž¡‘.ùœÝReturns–¦fthe“currenš²!tly“activ˜e“k˜eymap.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|set‘÷R‰ˆŠ#ØŽ“kÞeymap‘yšâ(ÞKeymap‘¦fkeymapâ)Ž¡‘.ùœÝMak•²!es›¦fák“eymap‘ûgÝthe˜curren“tly˜activ“e˜k“eymap.Ž¦’“z[F‘ÿeunction]ŽŽ‘GèKeymap‘™˜çrl‘÷R‰ˆŠ#ØŽ–|get‘÷R‰ˆŠ#ØŽ“kšÞeymap‘÷R‰ˆŠ#ØŽ“b˜y‘÷R‰ˆŠ#ØŽ“name‘yšâ(Þconst–¦fchar“*nameâ)Ž¡‘.ùœÝReturn–ý>the“kš²!eymap“matc˜hing“ánameÝ.‘âdáname‘šEÝis“one“whic˜h“w˜ould“bMÞe“supplied“in“a“ÞsetŽ¡‘.ùœkeymap–¦fÝinputrc“line“(see“Section“1.3“[Readline“Init“File],“page“4).Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèchar–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|get‘÷R‰ˆŠ#ØŽ“kÞeymap‘÷R‰ˆŠ#ØŽ“name‘yšâ(ÞKeymap‘¦fkeymapâ)Ž¡‘.ùœÝReturn–ý>the“name“matcš²!hing“ák˜eymapÝ.‘âdáname‘šEÝis“one“whic˜h“w˜ould“bMÞe“supplied“in“a“ÞsetŽ¡‘.ùœkeymap–¦fÝinputrc“line“(see“Section“1.3“[Readline“Init“File],“page“4).ŽŸö±‘Gëa2.4.3‘d(Binding‘íMKeysŽŽŸ ö‘!GÝKey–ߺsequences“are“assoMÞciate“with“functions“through“the“kš²!eymap.‘›¤Readline“has“sev˜eral“in-Ž¡‘Gternal‘€²k²!eymaps:‘ËÞemacs_standard_keymapÝ,–ˆ<Þemacs_meta_keymapÝ,“Þemacs_ctlx_keymapÝ,“Þvi_Ž¡‘Gmovement_keymapÝ,‘qxand–¨Þvi_insertion_keymapÝ.‘ +¢Þemacs_standard_keymap“Ýis“the“default,Ž¡‘Gand–¦fthe“examples“in“this“man²!ual“assume“that.Ž©ÚÑ!GSince–QÞreadline()“Ýinstalls“a“set“of“default“k²!ey“bindings“the“ rst“time“it“is“called,‘b#there“isŽ¡‘Galw•²!a“ys–ëíthe“danger“that“a“custom“binding“installed“bMÞefore“the“ rst“call“to“Þreadline()“ÝwillŽ¡‘GbMÞe›o•²!v“erridden.‘®An˜alternate˜mec“hanism˜is˜to˜install˜custom˜k“ey˜bindings˜in˜an˜initializationŽ¡‘Gfunction–uŠassigned“to“the“Þrl_startup_hook“Ýv‘ÿdDariable“(see“Section“2.3“[Readline“V‘ÿeariables],Ž¡‘Gpage‘¦f24).Ž¦‘!GThese–¦ffunctions“manage“k²!ey“bindings.Ž©)ã’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|bind‘÷R‰ˆŠ#ØŽ“kÞey‘yšâ(Þint–¦fkey,“rl_command_func_t“*functionâ)Ž¡‘.ùœÝBinds–ö½ákš²!ey‘æÕÝto“áfunction“Ýin“the“curren˜tly“activ˜e“k˜eymap.‘ÎãReturns“non-zero“in“the“caseŽ¡‘.ùœof–¦fan“inš²!v‘ÿdDalid“ák˜eyÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|bind‘÷R‰ˆŠ#ØŽ“kÞey‘÷R‰ˆŠ#ØŽ“in‘÷R‰ˆŠ#ØŽ“map‘yšâ(Þint–¦fkey,“rl_command_func_t“*function,Ž¡‘DGKeymap‘¦fmapâ)Ž¡‘.ùœÝBind–¦fákš²!ey‘–~Ýto“áfunction“Ýin“ámapÝ.‘ÝÝReturns“non-zero“in“the“case“of“an“in˜v‘ÿdDalid“ák˜eyÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|bind‘÷R‰ˆŠ#ØŽ“kšÞey‘÷R‰ˆŠ#ØŽ“if‘÷R‰ˆŠ#ØŽ“un˜bb"ound‘yšâ(Þint–¦fkey,“rl_command_func_tŽ¡‘DG*functionâ)Ž¡‘.ùœÝBinds–Iákš²!ey‘9,Ýto“áfunction“Ýif“it“is“not“already“bMÞound“in“the“curren˜tly“activ˜e“k˜eymap.Ž¡‘.ùœReturns–¦fnon-zero“in“the“case“of“an“inš²!v‘ÿdDalid“ák˜ey‘–~Ýor“if“ák˜ey‘–~Ýis“already“bMÞound.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|bind‘÷R‰ˆŠ#ØŽ“kšÞey‘÷R‰ˆŠ#ØŽ“if‘÷R‰ˆŠ#ØŽ“un˜bb"ound‘÷R‰ˆŠ#ØŽ“in‘÷R‰ˆŠ#ØŽ“map‘yšâ(Þint‘¦fkey,Ž¡‘DGrl_command_func_t–¦f*function,“Keymap“mapâ)Ž¡‘.ùœÝBinds–GÓák²!ey‘7ëÝto“áfunction“Ýif“it“is“not“already“bMÞound“in“ámapÝ.‘¾WReturns“non-zero“in“the“caseŽ¡‘.ùœof–¦fan“inš²!v‘ÿdDalid“ák˜ey‘–~Ýor“if“ák˜ey‘–~Ýis“already“bMÞound.ŽŽŒ‹|dŸò‘GÝ30’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|unšÞbind‘÷R‰ˆŠ#ØŽ“k˜ey‘yšâ(Þint‘¦fkeyâ)Ž¤ 33‘.ùœÝBind–[rákš²!ey‘KŠÝto“the“n˜ull“function“in“the“curren˜tly“activ˜e“k˜eymap.‘ýReturns“non-zero“inŽ¡‘.ùœcase–¦fof“error.Ž©¸’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|unšÞbind‘÷R‰ˆŠ#ØŽ“k˜ey‘÷R‰ˆŠ#ØŽ“in‘÷R‰ˆŠ#ØŽ“map‘yšâ(Þint–¦fkey,“Keymap“mapâ)Ž¡‘.ùœÝBind–¦fákš²!ey‘–~Ýto“the“n˜ull“function“in“ámapÝ.‘ÝÝReturns“non-zero“in“case“of“error.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|unÞbind‘÷R‰ˆŠ#ØŽ“function‘÷R‰ˆŠ#ØŽ“in‘÷R‰ˆŠ#ØŽ“map‘yšâ(Þrl_command_func_t‘¦f*function,Ž¡‘DGKeymap‘¦fmapâ)Ž¡‘.ùœÝUnš²!bind–¦fall“k˜eys“that“execute“áfunction“Ýin“ámapÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|unÞbind‘÷R‰ˆŠ#ØŽ“command‘÷R‰ˆŠ#ØŽ“in‘÷R‰ˆŠ#ØŽ“map‘yšâ(Þconst–¦fchar“*command,“KeymapŽ¡‘DGmapâ)Ž¡‘.ùœÝUnš²!bind–¦fall“k˜eys“that“are“bMÞound“to“ácommand‘¸Ýin“ámapÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|bind‘÷R‰ˆŠ#ØŽ“kÞeyseq‘yšâ(Þconst–¦fchar“*keyseq,“rl_command_func_tŽ¡‘DG*functionâ)Ž¡‘.ùœÝBind–,Žthe“kš²!ey“sequence“represen˜ted“b˜y“the“string“ák˜eyseq‘mtÝto“the“function“áfunctionÝ,Ž¡‘.ùœbMÞeginning–c®in“the“currenš²!t“k˜eymap.‘Ç This“mak˜es“new“k˜eymaps“as“necessary‘ÿe.‘Ç The“returnŽ¡‘.ùœv‘ÿdDalue–¦fis“non-zero“if“ákš²!eyseq‘çLÝis“in˜v‘ÿdDalid.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|bind‘÷R‰ˆŠ#ØŽ“kÞeyseq‘÷R‰ˆŠ#ØŽ“in‘÷R‰ˆŠ#ØŽ“map‘yšâ(Þconst–¦fchar“*keyseq,Ž¡‘DGrl_command_func_t–¦f*function,“Keymap“mapâ)Ž¡‘.ùœÝBind–Éthe“kš²!ey“sequence“represen˜ted“b˜y“the“string“ák˜eyseq‘B¯Ýto“the“function“áfunctionÝ.‘¦þThisŽ¡‘.ùœmakš²!es–€&new“k˜eymaps“as“necessary‘ÿe.›ÑInitial“bindings“are“pMÞerformed“in“ámapÝ.˜The“returnŽ¡‘.ùœv‘ÿdDalue–¦fis“non-zero“if“ákš²!eyseq‘çLÝis“in˜v‘ÿdDalid.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|set‘÷R‰ˆŠ#ØŽ“kÞey‘yšâ(Þconst–¦fchar“*keyseq,“rl_command_func_t“*function,Ž¡‘DGKeymap‘¦fmapâ)Ž¡‘.ùœÝEquiv‘ÿdDalen²!t–¦fto“Þrl_bind_keyseq_in_mapÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|bind‘÷R‰ˆŠ#ØŽ“kšÞeyseq‘÷R‰ˆŠ#ØŽ“if‘÷R‰ˆŠ#ØŽ“un˜bb"ound‘yšâ(Þconst–¦fchar“*keyseq,Ž¡‘DGrl_command_func_t‘¦f*functionâ)Ž¡‘.ùœÝBinds–Cóákš²!eyseq‘„ÙÝto“áfunction“Ýif“it“is“not“already“bMÞound“in“the“curren˜tly“activ˜e“k˜eymap.Ž¡‘.ùœReturns–¦fnon-zero“in“the“case“of“an“inš²!v‘ÿdDalid“ák˜eyseq‘çLÝor“if“ák˜eyseq‘çLÝis“already“bMÞound.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|bind‘÷R‰ˆŠ#ØŽ“kšÞeyseq‘÷R‰ˆŠ#ØŽ“if‘÷R‰ˆŠ#ØŽ“un˜bb"ound‘÷R‰ˆŠ#ØŽ“in‘÷R‰ˆŠ#ØŽ“map‘yšâ(Þconst–¦fchar“*keyseq,Ž¡‘DGrl_command_func_t–¦f*function,“Keymap“mapâ)Ž¡‘.ùœÝBinds–×ák²!eyseq‘ùÝto“áfunction“Ýif“it“is“not“already“bMÞound“in“ámapÝ.‘oãReturns“non-zero“in“theŽ¡‘.ùœcase–¦fof“an“inš²!v‘ÿdDalid“ák˜eyseq‘çLÝor“if“ák˜eyseq‘çLÝis“already“bMÞound.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|generic‘÷R‰ˆŠ#ØŽ“bind‘yšâ(Þint–¦ftype,“const“char“*keyseq,“char“*data,Ž¡‘DGKeymap‘¦fmapâ)Ž¡‘.ùœÝBind–>ïthe“kš²!ey“sequence“represen˜ted“b˜y“the“string“ák˜eyseq‘ÕÝto“the“arbitrary“pMÞoin˜ter“ádataÝ.Ž¡‘.ùœát•²!ypšMÞe‘•Ýsa“ys–jŽwhat“kind“of“data“is“p˜oinš²!ted“to“b˜y“ádataÝ;‘~this“can“bMÞe“a“function“(ÞISFUNCÝ),‘v†aŽ¡‘.ùœmacro–Š™(ÞISMACRÝ),‘(or“a“kš²!eymap“(ÞISKMAPÝ).‘Ô™This“mak˜es“new“k˜eymaps“as“necessary‘ÿe.‘Ô™TheŽ¡‘.ùœinitial–¦fkš²!eymap“in“whic˜h“to“do“bindings“is“ámapÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|parse‘÷R‰ˆŠ#ØŽ“and‘÷R‰ˆŠ#ØŽ“bind‘yšâ(Þchar‘¦f*lineâ)Ž¡‘.ùœÝP²!arse–‡yáline‘$€Ýas“if“it“had“bšMÞeen“read“from“the“Þinputrc“Ý le“and“p˜erform“anš²!y“k˜ey“bindingsŽ¡‘.ùœand–¦fv‘ÿdDariable“assignmen²!ts“found“(see“Section“1.3“[Readline“Init“File],“page“4).ŽŽŒ‹‹(Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—31ŽŽŽ ƒ3* ý ÌÖ’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|read‘÷R‰ˆŠ#ØŽ“init‘÷R‰ˆŠ#ØŽ“ le‘yšâ(Þconst–¦fchar“*filenameâ)Ž¤ 33‘.ùœÝRead–È8kš²!eybindings“and“v‘ÿdDariable“assignmen˜ts“from“á lename‘e?Ý(see“Section“1.3“[ReadlineŽ¡‘.ùœInit–¦fFile],“page“4).ŽŸ ïÕ‘Gëa2.4.4‘d(Assoiciating–íMF‘þÄ£unction“Names“and“BindingsŽŽŸ ^P‘!GÝThese–ŒQfunctions“alloš²!w“y˜ou“to“ nd“out“what“k˜eys“in˜v˜ok˜e“named“functions“and“the“functionsŽ¡‘Gin•²!v“ok“ed›MLb“y˜a˜particular˜k“ey˜sequence.‘À*Y‘ÿeou˜ma“y˜also˜assoMÞciate˜a˜new˜function˜name˜with˜anŽ¡‘Garbitrary‘¦ffunction.Ž©#’“z[F‘ÿeunction]ŽŽ‘Gèrl_command_func_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|named‘÷R‰ˆŠ#ØŽ“function‘yšâ(Þconst–¦fchar“*nameâ)Ž¡‘.ùœÝReturn–¦fthe“function“with“name“ánameÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèrl_command_func_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|function‘÷R‰ˆŠ#ØŽ“of‘÷R‰ˆŠ#ØŽ“kÞeyseq‘yšâ(Þconst–¦fchar“*keyseq,Ž¡‘DGKeymap–¦fmap,“int“*typeâ)Ž¡‘.ùœÝReturn–è³the“function“in•²!v“ok“ed›è³b“y˜ák“eyseq‘)™Ýin˜k“eymap˜ámapÝ.‘¤ÃIf˜ámap‘=´Ýis˜ÞNULLÝ,‘ùFthe˜curren“tŽ¡‘.ùœkš²!eymap–q¤is“used.‘?˜If“át˜ypMÞe‘«Ýis“not“ÞNULLÝ,‘¤tthe“t˜ypMÞe“of“the“ob‘›»ject“is“returned“in“the“ÞintŽ¡‘.ùœÝv‘ÿdDariable–¦fit“pMÞoin²!ts“to“(one“of“ÞISFUNCÝ,“ÞISKMAPÝ,“or“ÞISMACRÝ).Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèchar–™˜**“çrl‘÷R‰ˆŠ#ØŽ›|in•Þv“oking‘÷R‰ˆŠ#ØŽ˜k“eyseqs‘yšâ(Þrl_command_func_t‘¦f*functionâ)Ž¡‘.ùœÝReturn–¿ëan“arraš²!y“of“strings“represen˜ting“the“k˜ey“sequences“used“to“in˜v˜ok˜e“áfunction“ÝinŽ¡‘.ùœthe–¦fcurrenš²!t“k˜eymap.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèchar–™˜**“çrl‘÷R‰ˆŠ#ØŽ›|in•Þv“oking‘÷R‰ˆŠ#ØŽ˜k“eyseqs‘÷R‰ˆŠ#ØŽ˜in‘÷R‰ˆŠ#ØŽ˜map‘yšâ(Þrl_command_func_tŽ¡‘DG*function,–¦fKeymap“mapâ)Ž¡‘.ùœÝReturn–¿ëan“arraš²!y“of“strings“represen˜ting“the“k˜ey“sequences“used“to“in˜v˜ok˜e“áfunction“ÝinŽ¡‘.ùœthe–¦fk²!eymap“ámapÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|function‘÷R‰ˆŠ#ØŽ“dumpb"er‘yšâ(Þint‘¦freadableâ)Ž¡‘.ùœÝPrinš²!t–‚Òthe“readline“function“names“and“the“k˜ey“sequences“curren˜tly“bMÞound“to“them“toŽ¡‘.ùœÞrl_outstreamÝ.‘¿ÕIf–LMáreadable‘éTÝis“non-zero,‘^Rthe“list“is“formatted“in“sucš²!h“a“w˜a˜y“that“it“canŽ¡‘.ùœbMÞe–¦fmade“part“of“an“Þinputrc“Ý le“and“re-read.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|list‘÷R‰ˆŠ#ØŽ“funmap‘÷R‰ˆŠ#ØŽ“names‘yšâ(Þvoidâ)Ž¡‘.ùœÝPrin²!t–¦fthe“names“of“all“bindable“Readline“functions“to“Þrl_outstreamÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèconst–™˜char“**“çrl‘÷R‰ˆŠ#ØŽ–|funmap‘÷R‰ˆŠ#ØŽ“names‘yšâ(Þvoidâ)Ž¡‘.ùœÝReturn–Sa“NULL‘0terminated“arraš²!y“of“kno˜wn“function“names.‘°×The“arra˜y“is“sorted.‘°×TheŽ¡‘.ùœarraš²!y– itself“is“alloMÞcated,‘(†but“not“the“strings“inside.‘©jY‘ÿeou“should“Þfree()“Ýthe“arra˜y“whenŽ¡‘.ùœyš²!ou–¦fare“done,“but“not“the“pMÞoin˜ters.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|add‘÷R‰ˆŠ#ØŽ“funmap‘÷R‰ˆŠ#ØŽ“enÞtry‘yšâ(Þconst–¦fchar“*name,“rl_command_func_tŽ¡‘DG*functionâ)Ž¡‘.ùœÝAdd–ð³áname‘ºÝto“the“list“of“bindable“Readline“command“names,‘Gand“mak²!e“áfunction“ÝtheŽ¡‘.ùœfunction–¦fto“bMÞe“called“when“áname‘CmÝis“in•²!v“ok“ed.ŽŽŒ‹ šæŸò‘GÝ32’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Gëa2.4.5‘d(Allo–áwing‘íMUndoingŽŽŸã‘!GÝSuppMÞorting–&Œthe“undo“command“is“a“painless“thing,‘@and“makš²!es“y˜our“functions“m˜uc˜h“moreŽ¤ 33‘Guseful.‘ÝÝIt–¦fis“certainly“easy“to“try“something“if“yš²!ou“kno˜w“y˜ou“can“undo“it.Ž©¯å‘!GIf–è*y²!our“function“simply“inserts“text“once,›8›or“deletes“text“once,˜and“uses“Þrl_insert_Ž¡‘Gtext()–Y)Ýor“Þrl_delete_text()“Ýto“do“it,‘hœthen“undoing“is“already“done“for“y²!ou“automatically‘ÿe.Ž¦‘!GIf–u†yš²!ou“do“m˜ultiple“insertions“or“m˜ultiple“deletions,‘²€or“an˜y“com˜bination“of“these“opMÞerations,Ž¡‘Gyš²!ou–‘should“group“them“together“in˜to“one“opMÞeration.‘œ]This“is“done“with“Þrl_begin_undo_Ž¡‘Ggroup()–¦fÝand“Þrl_end_undo_group()Ý.Ž¦‘!GThe–¦ftš²!ypMÞes“of“ev˜en˜ts“that“can“bMÞe“undone“are:ŽŸ ü²‘.ùœóߤN cmtt9Éenum–¹–undo_code“{“UNDO_DELETE,“UNDO_INSERT,“UNDO_BEGIN,“UNDO_END“};Ž¦‘!GÝNotice–£¯that“ÞUNDO_DELETE“Ýmeans“to“insert“some“text,‘¤:and“ÞUNDO_INSERT“Ýmeans“to“deleteŽ¡‘Gsome–O²text.‘ÀöThat“is,›a the“undo“coMÞde“tells“what“to“undo,˜not“ho²!w“to“undo“it.‘ÀöÞUNDO_BEGIN“ÝandŽ¡‘GÞUNDO_END–¦fÝare“tags“added“b²!y“Þrl_begin_undo_group()“Ýand“Þrl_end_undo_group()Ý.Ž©©J’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|bb"egin‘÷R‰ˆŠ#ØŽ“undo‘÷R‰ˆŠ#ØŽ“group‘yšâ(Þvoidâ)Ž¡‘.ùœÝBegins–·‡sa²!ving“undo“information“in“a“group“construct.‘AThe“undo“information“usuallyŽ¡‘.ùœcomes–þIfrom“calls“to“Þrl_insert_text()“Ýand“Þrl_delete_text()Ý,‘TAbut“could“bMÞe“theŽ¡‘.ùœresult–¦fof“calls“to“Þrl_add_undo()Ý.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|end‘÷R‰ˆŠ#ØŽ“undo‘÷R‰ˆŠ#ØŽ“group‘yšâ(Þvoidâ)Ž¡‘.ùœÝCloses–{the“curren²!t“undo“group“started“with“Þrl_begin_undo_group‘¦f()Ý.‘ÏmThere“shouldŽ¡‘.ùœbMÞe–¦fone“call“to“Þrl_end_undo_group()“Ýfor“eac²!h“call“to“Þrl_begin_undo_group()Ý.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|add‘÷R‰ˆŠ#ØŽ“undo‘yšâ(Þenum–¦fundo_code“what,“int“start,“int“end,“charŽ¡‘DG*textâ)Ž¡‘.ùœÝRemem•²!bMÞer›ího“w˜to˜undo˜an˜ev“en“t˜(according˜to˜áwhat=Ý).‘/rThe˜a ected˜text˜runs˜fromŽ¡‘.ùœástart‘ãfÝto–¦fáendÝ,“and“encompasses“átextÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|free‘÷R‰ˆŠ#ØŽ“undo‘÷R‰ˆŠ#ØŽ“list‘yšâ(Þvoidâ)Ž¡‘.ùœÝF‘ÿeree–¦fthe“existing“undo“list.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|do‘÷R‰ˆŠ#ØŽ“undo‘yšâ(Þvoidâ)Ž¡‘.ùœÝUndo–¾§the“ rst“thing“on“the“undo“list.‘žReturns“Þ0“Ýif“there“w²!as“nothing“to“undo,‘ínon-zeroŽ¡‘.ùœif–¦fsomething“w²!as“undone.Ž¦‘!GFinally‘ÿe,›Á#if–»Êy²!ou“neither“insert“nor“delete“text,˜but“directly“moMÞdify“the“existing“text“(e.g.,Ž¡‘Gc²!hange–§its“case),›çKcall“Þrl_modifying()“Ýonce,˜just“bšMÞefore“y²!ou“mo˜dify“the“text.‘àY‘ÿeou“m²!ustŽ¡‘Gsupply–¦fthe“indices“of“the“text“range“that“y²!ou“are“going“to“moMÞdify‘ÿe.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ‘|mob"difying‘yšâ(Þint–¦fstart,“int“endâ)Ž¡‘.ùœÝT‘ÿeell–Ô-Readline“to“sa•²!v“e–Ô-the“text“bMÞet•²!w“een–Ô-ástart‘-Ýand“áend‘BÝas“a“single“undo“unit.‘g3It“isŽ¡‘.ùœassumed–¦fthat“yš²!ou“will“subsequen˜tly“moMÞdify“that“text.ŽŸv‘Gëa2.4.6‘d(Redispla–áyŽŽŸã’“zÝ[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ‘|redisplaÞy‘yšâ(Þvoidâ)Ž¡‘.ùœÝChange–Šwhat's“displa•²!y“ed–Šon“the“screen“to“re ect“the“currenš²!t“con˜ten˜ts“of“Þrl_line_Ž¡‘.ùœbufferÝ.ŽŽŒ‹!§ûŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—33ŽŽŽ ƒ3* ý ÌÖ’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|forced‘÷R‰ˆŠ#ØŽ“upb"date‘÷R‰ˆŠ#ØŽ“displaÞy‘yšâ(Þvoidâ)Ž¤ 33‘.ùœÝF‘ÿeorce–Äóthe“line“to“bšMÞe“up˜dated“and“redispla•²!y“ed,‘ –whether–Äóor“not“Readline“thinks“theŽ¡‘.ùœscreen–¦fdispla²!y“is“correct.Ž©p£’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|on‘÷R‰ˆŠ#ØŽ“new‘÷R‰ˆŠ#ØŽ“line‘yšâ(Þvoidâ)Ž¡‘.ùœÝT‘ÿeell–•Ðthe“upMÞdate“functions“that“wš²!e“ha˜v˜e“mo˜v˜ed“on˜to“a“new“(empt˜y)“line,‘™!usually“afterŽ¡‘.ùœouputting–¦fa“newline.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|on‘÷R‰ˆŠ#ØŽ“new‘÷R‰ˆŠ#ØŽ“line‘÷R‰ˆŠ#ØŽ“with‘÷R‰ˆŠ#ØŽ“prompt‘yšâ(Þvoidâ)Ž¡‘.ùœÝT‘ÿeell–ã_the“upMÞdate“functions“that“wš²!e“ha˜v˜e“mo˜v˜ed“on˜to“a“new“line,‘ ! awith“árl‘Ä>‰x³HøŽ‘Ñtprompt‘ _ÝalreadyŽ¡‘.ùœdispla•²!y“ed.‘Ë®This–oÚcould“bMÞe“used“bš²!y“applications“that“w˜an˜t“to“output“the“prompt“stringŽ¡‘.ùœthemselvš²!es,‘\Çbut–J_still“need“Readline“to“kno˜w“the“prompt“string“length“for“redispla˜y‘ÿe.‘¿0ItŽ¡‘.ùœshould–¦fbMÞe“used“after“setting“árl‘Ä>‰x³HøŽ–Ñtalready‘Ä>‰x³HøŽ“promptedÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|reset‘÷R‰ˆŠ#ØŽ“line‘÷R‰ˆŠ#ØŽ“state‘yšâ(Þvoidâ)Ž¡‘.ùœÝReset–*‘the“displaš²!y“state“to“a“clean“state“and“redispla˜y“the“curren˜t“line“starting“on“aŽ¡‘.ùœnew‘¦fline.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ‘|crlf‘yšâ(Þvoidâ)Ž¡‘.ùœÝMo•²!v“e–¦fthe“cursor“to“the“start“of“the“next“screen“line.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|shošÞw‘÷R‰ˆŠ#ØŽ“c˜har‘yšâ(Þint‘¦fcâ)Ž¡‘.ùœÝDispla•²!y›ç³c“haracter˜ác‘‘·Ýon˜Þrl_outstreamÝ.‘¡ÅIf˜Readline˜has˜not˜bMÞeen˜set˜to˜displa“y˜metaŽ¡‘.ùœcš²!haracters–Ødirectly‘ÿe,‘9(this“will“con˜v˜ert“meta“c˜haracters“to“a“meta-pre xed“k˜ey“sequence.Ž¡‘.ùœThis–¦fis“inš²!tended“for“use“b˜y“applications“whic˜h“wish“to“do“their“o˜wn“redispla˜y‘ÿe.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ‘|message‘yšâ(Þconst–¦fchar“*,“...Ž‘åeâ)Ž¡‘.ùœÝThe–y¦argumenš²!ts“are“a“format“string“as“w˜ould“bšMÞe“supplied“to“ÞprintfÝ,‘µÌp˜ossibly“con²!tainingŽ¡‘.ùœcon•²!v“ersion–NÂspMÞeci cations“sucš²!h“as“`Þ%dÝ',‘¸Ùand“an˜y“additional“argumen˜ts“necessary“toŽ¡‘.ùœsatisfy–ø•the“con•²!v“ersion–ø•spMÞeci cations.‘ÔjThe“resulting“string“is“displa•²!y“ed–ø•in“the“áec²!hoŽ¡‘.ùœareaÝ.‘ÝÝThe–¦fecš²!ho“area“is“also“used“to“displa˜y“n˜umeric“argumen˜ts“and“searc˜h“strings.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|clear‘÷R‰ˆŠ#ØŽ“message‘yšâ(Þvoidâ)Ž¡‘.ùœÝClear–¦fthe“message“in“the“ec²!ho“area.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ›|sa•Þv“e‘÷R‰ˆŠ#ØŽ˜prompt‘yšâ(Þvoidâ)Ž¡‘.ùœÝSa•²!v“e–,the“loMÞcal“Readline“prompt“displaš²!y“state“in“preparation“for“displa˜ying“a“newŽ¡‘.ùœmessage–¦fin“the“message“area“with“Þrl_message()Ý.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|restore‘÷R‰ˆŠ#ØŽ“prompt‘yšâ(Þvoidâ)Ž¡‘.ùœÝRestore–!Pthe“loMÞcal“Readline“prompt“displaš²!y“state“sa˜v˜ed“b˜y“the“most“recen˜t“call“toŽ¡‘.ùœÞrl_save_promptÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|expand‘÷R‰ˆŠ#ØŽ“prompt‘yšâ(Þchar‘¦f*promptâ)Ž¡‘.ùœÝExpand–#&anš²!y“spMÞecial“c˜haracter“sequences“in“áprompt‘`&Ýand“set“up“the“loMÞcal“ReadlineŽ¡‘.ùœprompt–M%redisplaš²!y“v‘ÿdDariables.‘ÒThis“function“is“called“b˜y“Þreadline()Ý.‘ÒIt“ma˜y“also“bMÞeŽ¡‘.ùœcalled–‰vto“expand“the“primary“prompt“if“the“Þrl_on_new_line_with_prompt()“ÝfunctionŽ¡‘.ùœor– êÞrl_already_prompted“Ýv‘ÿdDariable“is“used.‘« It“returns“the“n•²!um“bMÞer– êof“visible“c²!haractersŽ¡‘.ùœon–/the“last“line“of“the“(pMÞossibly“mš²!ulti-line)“prompt.‘8Applications“ma˜y“indicate“thatŽ¡‘.ùœthe–XFprompt“conš²!tains“c˜haracters“that“tak˜e“up“no“ph˜ysical“screen“space“when“displa˜y˜edŽŽŒ‹"µØŸò‘GÝ34’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘.ùœb•²!y›ìxbrac“k“eting˜a˜sequence˜of˜suc“h˜c“haracters˜with˜the˜spMÞecial˜mark“ers˜ÞRL_PROMPT_Ž¤ 33‘.ùœSTART_IGNORE–±ØÝand“ÞRL_PROMPT_END_IGNORE“Ý(declared“in“`Þreadline.hÝ'.‘2This“ma²!y“bMÞeŽ¡‘.ùœused–¦fto“em²!bšMÞed“terminal-sp˜eci c“escap˜e“sequences“in“prompts.Ž©™’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|set‘÷R‰ˆŠ#ØŽ“prompt‘yšâ(Þconst–¦fchar“*promptâ)Ž¡‘.ùœÝMakš²!e–;³Readline“use“áprompt‘x³Ýfor“subsequen˜t“redispla˜y‘ÿe.‘ºLThis“calls“Þrl_expand_prompt()Ž¡‘.ùœÝto–¦fexpand“the“prompt“and“sets“Þrl_prompt“Ýto“the“result.ŽŸæf‘Gëa2.4.7‘d(Moidifying‘íMT‘þÄ£extŽŽŸÙ™’“zÝ[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|insert‘÷R‰ˆŠ#ØŽ“text‘yšâ(Þconst–¦fchar“*textâ)Ž¡‘.ùœÝInsert–ËÂátext‘ÂÝinš²!to“the“line“at“the“curren˜t“cursor“pMÞosition.‘MòReturns“the“n˜um˜bMÞer“of“c˜har-Ž¡‘.ùœacters‘¦finserted.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|delete‘÷R‰ˆŠ#ØŽ“text‘yšâ(Þint–¦fstart,“int“endâ)Ž¡‘.ùœÝDelete–ˆthe“text“bMÞet•²!w“een–ˆástart‘ÅÝand“áend‘öÓÝin“the“currenš²!t“line.‘„/Returns“the“n˜um˜bMÞer“ofŽ¡‘.ùœc²!haracters‘¦fdeleted.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèchar–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|copÞy‘÷R‰ˆŠ#ØŽ“text‘yšâ(Þint–¦fstart,“int“endâ)Ž¡‘.ùœÝReturn–¦fa“copš²!y“of“the“text“bMÞet˜w˜een“ástart‘ãfÝand“áend‘¸Ýin“the“curren˜t“line.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|kill‘÷R‰ˆŠ#ØŽ“text‘yšâ(Þint–¦fstart,“int“endâ)Ž¡‘.ùœÝCopš²!y–œthe“text“bMÞet˜w˜een“ástart‘WœÝand“áend‘ˆîÝin“the“curren˜t“line“to“the“kill“ring,‘7ªappMÞendingŽ¡‘.ùœor–øprepMÞending“to“the“last“kill“if“the“last“command“w²!as“a“kill“command.‘)”The“text“isŽ¡‘.ùœdeleted.‘ÈIf–_ástart‘E_Ýis“less“than“áendÝ,› Ýthe“text“is“appMÞended,˜otherwise“prepMÞended.‘ÈIf“theŽ¡‘.ùœlast–¦fcommand“w²!as“not“a“kill,“a“new“kill“ring“slot“is“used.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|push‘÷R‰ˆŠ#ØŽ“macro‘÷R‰ˆŠ#ØŽ“input‘yšâ(Þchar‘¦f*macroâ)Ž¡‘.ùœÝCause–d’ámacro‘ñbÝto“bšMÞe“inserted“in²!to“the“line,‘q¼as“if“it“had“b˜een“in•²!v“ok“ed›d’b“y˜a˜k“ey˜bMÞound˜toŽ¡‘.ùœa–¦fmacro.‘ÝÝNot“espMÞecially“useful;“use“Þrl_insert_text()“Ýinstead.ŽŸæf‘Gëa2.4.8‘d(Character‘íMInputŽŽŸÙ™’“zÝ[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|read‘÷R‰ˆŠ#ØŽ“kÞey‘yšâ(Þvoidâ)Ž¡‘.ùœÝReturn–Š7the“next“cš²!haracter“a˜v‘ÿdDailable“from“Readline's“curren˜t“input“stream.‘ÔxThis“han-Ž¡‘.ùœdles–.Sinput“inserted“in²!to“the“input“stream“via“árl‘Ä>‰x³HøŽ–ÑtpMÞending‘Ä>‰x³HøŽ“input‘kSÝ(see–.SSection“2.3“[Read-Ž¡‘.ùœline–¸©V‘ÿeariables],›ý:page“24)“and“Þrl_stuff_char()Ý,˜macros,˜and“c²!haracters“read“fromŽ¡‘.ùœthe–×kš²!eybMÞoard.‘2/While“w˜aiting“for“input,‘43this“function“will“call“an˜y“function“assignedŽ¡‘.ùœto–¦fthe“Þrl_event_hook“Ýv‘ÿdDariable.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ‘|getc‘yšâ(ÞFILE‘¦f*streamâ)Ž¡‘.ùœÝReturn–Œthe“next“cš²!haracter“a˜v‘ÿdDailable“from“ástreamÝ,‘Äáwhic˜h“is“assumed“to“bMÞe“the“k˜eybMÞoard.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|stu ‘÷R‰ˆŠ#ØŽ“cÞhar‘yšâ(Þint‘¦fcâ)Ž¡‘.ùœÝInsert–òác‘œÝin²!to“the“Readline“input“stream.‘ÀáIt“will“bšMÞe“Þ"ÝreadÞ"“Ýb˜efore“Readline“attemptsŽ¡‘.ùœto–6×read“cš²!haracters“from“the“terminal“with“Þrl_read_key()Ý.‘¸®Up“to“512“c˜haracters“ma˜yŽ¡‘.ùœbMÞe–¬+pushed“bacš²!k.‘ï,Þrl_stuff_char“Ýreturns“1“if“the“c˜haracter“w˜as“successfully“inserted;Ž¡‘.ùœ0‘¦fotherwise.ŽŽŒ‹#Å|Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—35ŽŽŽ ƒ3* ý ÌÖ’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|execute‘÷R‰ˆŠ#ØŽ“next‘yšâ(Þint‘¦fcâ)Ž¤ 33‘.ùœÝMak²!e–HÆác‘òÊÝbšMÞe“the“next“command“to“b˜e“executed“when“Þrl_read_key()“Ýis“called.‘ÄþThisŽ¡‘.ùœsets‘¦fárl‘Ä>‰x³HøŽ–ÑtpMÞending‘Ä>‰x³HøŽ“inputÝ.Ž©Ãù’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|clear‘÷R‰ˆŠ#ØŽ“pb"ending‘÷R‰ˆŠ#ØŽ“input‘yšâ(Þvoidâ)Ž¡‘.ùœÝUnset›|árl‘Ä>‰x³HøŽ–ÑtpMÞending‘Ä>‰x³HøŽ“inputÝ,‘\e ectiv•²!ely˜negating˜the˜e ect˜of˜an“y˜previous˜call˜to˜Þrl_Ž¡‘.ùœexecute_next()Ý.‘zYThis–…:w²!orks“only“if“the“pšMÞending“input“has“not“already“b˜een“readŽ¡‘.ùœwith‘¦fÞrl_read_key()Ý.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|set‘÷R‰ˆŠ#ØŽ“kÞeybb"oard‘÷R‰ˆŠ#ØŽ“input‘÷R‰ˆŠ#ØŽ“timeout‘yšâ(Þint‘¦fuâ)Ž¡‘.ùœÝWhile–ÑŽwš²!aiting“for“k˜eybMÞoard“input“in“Þrl_read_key()Ý,‘WReadline“will“w˜ait“for“áu“Ými-Ž¡‘.ùœcroseconds–éNfor“input“bMÞefore“calling“an²!y“function“assigned“to“Þrl_event_hookÝ.‘¦–TheŽ¡‘.ùœdefault–¦fwš²!aiting“p•MÞerio“d–¦fis“one-ten˜th“of“a“second.‘ÝÝReturns“the“old“timeout“v‘ÿdDalue.ŽŸÆ‘Gëa2.4.9‘d(T‘þÄ£erminal‘íMManagemen–átŽŽŸAS’“zÝ[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|prep‘÷R‰ˆŠ#ØŽ“terminal‘yšâ(Þint‘¦fmeta_flagâ)Ž¡‘.ùœÝMoMÞdify–¦the“terminal“settings“for“Readline's“use,‘wµso“Þreadline()“Ýcan“read“a“singleŽ¡‘.ùœcš²!haracter–¶,at“a“time“from“the“k˜eybMÞoard.‘ 0The“ámeta‘Ä>‰x³HøŽ‘Ñt ag‘¦DÝargumen˜t“should“bMÞe“non-zeroŽ¡‘.ùœif–¦fReadline“should“read“eigh²!t-bit“input.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|deprep‘÷R‰ˆŠ#ØŽ“terminal‘yšâ(Þvoidâ)Ž¡‘.ùœÝUndo–Ë­the“e ects“of“Þrl_prep_terminal()Ý,‘Ôþleaš²!ving“the“terminal“in“the“state“in“whic˜hŽ¡‘.ùœit–¦fwš²!as“bMÞefore“the“most“recen˜t“call“to“Þrl_prep_terminal()Ý.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|ttÞy‘÷R‰ˆŠ#ØŽ“set‘÷R‰ˆŠ#ØŽ“default‘÷R‰ˆŠ#ØŽ“bindings‘yšâ(ÞKeymap‘¦fkmapâ)Ž¡‘.ùœÝRead–oÝthe“opMÞerating“system's“terminal“editing“cš²!haracters“(as“w˜ould“bMÞe“displa˜y˜ed“b˜yŽ¡‘.ùœÞsttyÝ)–¦fto“their“Readline“equiv‘ÿdDalen²!ts.‘ÝÝThe“bindings“are“pMÞerformed“in“ákmapÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|ttÞy‘÷R‰ˆŠ#ØŽ“unset‘÷R‰ˆŠ#ØŽ“default‘÷R‰ˆŠ#ØŽ“bindings‘yšâ(ÞKeymap‘¦fkmapâ)Ž¡‘.ùœÝReset–Ò;the“bindings“manipulated“b²!y“Þrl_tty_set_default_bindings“Ýso“that“the“ter-Ž¡‘.ùœminal–¯editing“c²!haracters“are“bšMÞound“to“Þrl_insertÝ.‘2¹The“bindings“are“p˜erformed“inŽ¡‘.ùœákmapÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|reset‘÷R‰ˆŠ#ØŽ“terminal‘yšâ(Þconst–¦fchar“*terminal_nameâ)Ž¡‘.ùœÝReinitialize–Û÷Readline's“idea“of“the“terminal“settings“using“áterminal‘Ä>‰x³HøŽ‘Ñtname‘xþÝas“the“termi-Ž¡‘.ùœnal–Ñ¢t²!ypMÞe“(e.g.,›ÜqÞvt100Ý).‘_If“áterminal‘Ä>‰x³HøŽ‘Ñtname‘n©Ýis“ÞNULLÝ,˜the“v‘ÿdDalue“of“the“ÞTERM“Ýen•²!vironmen“tŽ¡‘.ùœv‘ÿdDariable–¦fis“used.ŽŸÆ‘Gëa2.4.10‘d(Utilit–áy‘íMF‘þÄ£unctionsŽŽŸAS’“zÝ[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|replace‘÷R‰ˆŠ#ØŽ“line‘yšâ(Þconst–¦fchar“*text,“int“clear_undoâ)Ž¡‘.ùœÝReplace–¼Jthe“con•²!ten“ts–¼Jof“Þrl_line_buffer“Ýwith“átextÝ.‘ŠThe“pMÞoin²!t“and“mark“are“pre-Ž¡‘.ùœserv²!ed,›.eif–epMÞossible.‘«ÝIf“áclear‘Ä>‰x³HøŽ‘Ñtundo‘5Ýis“non-zero,˜the“undo“list“assoMÞciated“with“the“curren²!tŽ¡‘.ùœline–¦fis“cleared.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|extend‘÷R‰ˆŠ#ØŽ“line‘÷R‰ˆŠ#ØŽ“bu er‘yšâ(Þint‘¦flenâ)Ž¡‘.ùœÝEnsure–ž4that“Þrl_line_buffer“Ýhas“enough“space“to“hold“álen“Ýc²!haracters,‘ŸØpMÞossibly“real-Ž¡‘.ùœloMÞcating–¦fit“if“necessary‘ÿe.ŽŽŒ‹$Ó¦Ÿò‘GÝ36’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ‘|initialize‘yšâ(Þvoidâ)Ž¤ 33‘.ùœÝInitialize–n8or“re-initialize“Readline's“in²!ternal“state.‘5RIt's“not“strictly“necessary“to“callŽ¡‘.ùœthis;–¦fÞreadline()“Ýcalls“it“bMÞefore“reading“an²!y“input.Ž©M~’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ‘|ding‘yšâ(Þvoidâ)Ž¡‘.ùœÝRing–¦fthe“terminal“bšMÞell,“ob˜eying“the“setting“of“Þbell-styleÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ‘|alphabb"etic‘yšâ(Þint‘¦fcâ)Ž¡‘.ùœÝReturn–¦f1“if“ác‘PjÝis“an“alphabMÞetic“c²!haracter.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|displašÞy‘÷R‰ˆŠ#ØŽ“matc˜h‘÷R‰ˆŠ#ØŽ“list‘yšâ(Þchar–¦f**matches,“int“len,“int“maxâ)Ž¡‘.ùœÝA‘#;con•²!v“enience–#[function“for“displa²!ying“a“list“of“strings“in“columnar“format“on“Read-Ž¡‘.ùœline's–woutput“stream.‘Þmatches“Ýis“the“list“of“strings,›»in“argv“format,˜suc²!h“as“a“list“ofŽ¡‘.ùœcompletion–é9matcš²!hes.‘žÎÞlen“Ýis“the“n˜um˜bMÞer“of“strings“in“ÞmatchesÝ,‘and“Þmax“Ýis“the“length“ofŽ¡‘.ùœthe–$ˆlongest“string“in“ÞmatchesÝ.‘²“This“function“uses“the“setting“of“Þprint-completions-Ž¡‘.ùœhorizontally–YðÝto“select“hoš²!w“the“matc˜hes“are“displa˜y˜ed“(see“Section“1.3.1“[ReadlineŽ¡‘.ùœInit–¦fFile“Syn²!tax],“page“4).Ž¦‘!GThe–Ûfolloš²!wing“are“implemen˜ted“as“macros,‘èlik²!e“erasing“a“line.‘}÷ReadlineŽ¡‘.ùœdoMÞes–4Anot“use“all“of“a“terminal's“capabilities,‘W·and“this“function“will“return“v‘ÿdDalues“forŽ¡‘.ùœonly–¦fthose“capabilities“Readline“uses.ŽŸXp‘Gëa2.4.12‘d(Alternate‘íMIn–áterfaceŽŽŸ.‹‘!GÝAn–_Âalternate“inš²!terface“is“a˜v‘ÿdDailable“to“plain“Þreadline()Ý.‘ ! ñSome“applications“need“toŽ¡‘Gin•²!terlea“v“e›|™k“eybMÞoard˜I/O‘|Žwith˜ le,–„õdevice,“or˜windo•²!w˜system˜I/O,˜t“ypically˜b“y˜using˜a˜mainŽ¡‘GlošMÞop–Seto“Þselect()“Ýon“v‘ÿdDarious“ le“descriptors.‘Â2T‘ÿeo“accomo˜date“this“need,‘cÿreadline“can“also“b˜eŽ¡‘Gin•²!v“ok“ed–¾=as“a“`callbacš²!k'“function“from“an“ev˜en˜t“loMÞop.‘%cThere“are“functions“a˜v‘ÿdDailable“to“mak˜eŽ¡‘Gthis‘¦feasy‘ÿe.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|callbacÞk‘÷R‰ˆŠ#ØŽ“handler‘÷R‰ˆŠ#ØŽ“install‘yšâ(Þconst–¦fchar“*prompt,Ž¡‘DGrl_vcpfunc_t‘¦f*lhandlerâ)Ž¡‘.ùœÝSet–ùÅup“the“terminal“for“readline“I/O‘ù™and“displa²!y“the“initial“expanded“v‘ÿdDalue“of“ápromptÝ.Ž¡‘.ùœSa•²!v“e–Í:the“v‘ÿdDalue“of“álhandler‘–cÝto“use“as“a“function“to“call“when“a“complete“line“of“inputŽ¡‘.ùœhas–¦fbMÞeen“enš²!tered.‘ÝÝThe“function“tak˜es“the“text“of“the“line“as“an“argumen˜t.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|callbacšÞk‘÷R‰ˆŠ#ØŽ“read‘÷R‰ˆŠ#ØŽ“c˜har‘yšâ(Þvoidâ)Ž¡‘.ùœÝWhenevš²!er– Þan“application“determines“that“k˜eybMÞoard“input“is“a˜v‘ÿdDailable,‘%=“rl_end)Ž© 33‘EøDreturn‘¿ª(0);Ž¡‘:xðif–¿ª(count“<“0)Ž¦‘EøD{Ž¦‘Qw˜direction–¿ª=“-1;Ž¦‘Qw˜count–¿ª=“-count;Ž¦‘EøD}Ž¦‘:xðelseŽ¦‘EøDdirection–¿ª=“1;Ž¡‘:xð/*–¿ªFind“the“end“of“the“range“to“modify.“*/Ž¦‘:xðend–¿ª=“start“+“(count“*“direction);Ž¡‘:xð/*–¿ªForce“it“to“be“within“range.“*/Ž¦‘:xðif–¿ª(end“>“rl_end)Ž¦‘EøDend–¿ª=“rl_end;Ž¦‘:xðelse–¿ªif“(end“<“0)Ž¦‘EøDend–¿ª=“0;Ž¡‘:xðif–¿ª(start“==“end)Ž¦‘EøDreturn‘¿ª(0);Ž¡‘:xðif–¿ª(start“>“end)Ž¦‘EøD{Ž¦‘Qw˜int–¿ªtemp“=“start;Ž¦‘Qw˜start–¿ª=“end;Ž¦‘Qw˜end–¿ª=“temp;ŽŽŒ‹'ÞŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—39ŽŽŽ ƒ3* ý ÌÖ‘EøDÞ}Ž©ff‘:xð/*–¿ªTell“readline“that“we“are“modifying“the“line,Ž¤ 33‘K·îso–¿ªit“will“save“the“undo“information.“*/Ž¡‘:xðrl_modifying–¿ª(start,“end);Ž¦‘:xðfor–¿ª(i“=“start;“i“!=“end;“i++)Ž¡‘EøD{Ž¡‘Qw˜if–¿ª(_rl_uppercase_p“(rl_line_buffer[i]))Ž¡‘\öìrl_line_buffer[i]–¿ª=“_rl_to_lower“(rl_line_buffer[i]);Ž¡‘Qw˜else–¿ªif“(_rl_lowercase_p“(rl_line_buffer[i]))Ž¡‘\öìrl_line_buffer[i]–¿ª=“_rl_to_upper“(rl_line_buffer[i]);Ž¡‘EøD}Ž¡‘:xð/*–¿ªMove“point“to“on“top“of“the“last“character“changed.“*/Ž¡‘:xðrl_point–¿ª=“(direction“==“1)“?“end“-“1“:“start;Ž¡‘:xðreturn‘¿ª(0);Ž¡‘.ùœ}ŽŸŠø‘GëX2.5‘™Readline–f@Signal“HandlingŽŽŸê‘!GÝSignals–žare“asyncš²!hronous“ev˜en˜ts“sen˜t“to“a“proMÞcess“b˜y“the“Unix“k˜ernel,‘Xlsometimes“onŽ¡‘GbšMÞehalf–Æ_of“another“pro˜cess.‘=ÈThey“are“inš²!tended“to“indicate“exceptional“ev˜en˜ts,‘]lik˜e“a“userŽ¡‘Gpressing–šˆthe“inš²!terrupt“k˜ey“on“his“terminal,‘œèor“a“net˜w˜ork“connection“bMÞeing“brok˜en.‘ÙèThere“isŽ¡‘Ga–*Çclass“of“signals“that“can“bšMÞe“sen²!t“to“the“pro˜cess“currenš²!tly“reading“input“from“the“k˜eybMÞoard.Ž¡‘GSince–3ÙReadline“c²!hanges“the“terminal“attributes“when“it“is“called,‘JÂit“needs“to“pšMÞerform“sp˜ecialŽ¡‘GproMÞcessing–OBwhen“sucš²!h“a“signal“is“receiv˜ed“in“order“to“restore“the“terminal“to“a“sane“state,‘`¯orŽ¡‘Gproš²!vide–¦fapplication“writers“with“functions“to“do“so“man˜ually‘ÿe.Ž©¶Û‘!GReadline–Øúconš²!tains“an“in˜ternal“signal“handler“that“is“installed“for“a“n˜um˜bMÞer“of“signalsŽ¡‘G(ÞSIGINTÝ,–h]ÞSIGQUITÝ,“ÞSIGTERMÝ,“ÞSIGALRMÝ,“ÞSIGTSTPÝ,“ÞSIGTTINÝ,“and–_ÞSIGTTOUÝ).‘ ÈWhen“one“ofŽ¡‘Gthese–Ï_signals“is“receiv²!ed,‘Ùžthe“signal“handler“will“reset“the“terminal“attributes“to“those“thatŽ¡‘Gwš²!ere–D‹in“e ect“bMÞefore“Þreadline()“Ýw˜as“called,‘Xreset“the“signal“handling“to“what“it“w˜as“bMÞeforeŽ¡‘GÞreadline()–lTÝw²!as“called,‘ÝÏand“resend“the“signal“to“the“calling“application.‘ ! /§If“and“whenŽ¡‘Gthe–"calling“application's“signal“handler“returns,‘0ÐReadline“will“reinitialize“the“terminal“andŽ¡‘Gcon•²!tin“ue–dLto“accept“input.‘ÇÔWhen“a“ÞSIGINT“Ýis“receiv²!ed,‘q…the“Readline“signal“handler“pMÞerformsŽ¡‘Gsome–¦žadditional“w•²!ork,‘æ«whic“h–¦žwill“cause“anš²!y“partially-en˜tered“line“to“bšMÞe“ab˜orted“(see“theŽ¡‘Gdescription–¦fof“Þrl_free_line_state()“ÝbMÞelo²!w).Ž¦‘!GThere–ëªis“an“additional“Readline“signal“handler,›for“ÞSIGWINCHÝ,˜whicš²!h“the“k˜ernel“sends“to“aŽ¡‘GproMÞcess–v`whenevš²!er“the“terminal's“size“c˜hanges“(for“example,‘ûif“a“user“resizes“an“ÞxtermÝ).‘ÍÛTheŽ¡‘GReadline–GtÞSIGWINCH“Ýhandler“upMÞdates“Readline's“in²!ternal“screen“size“information,‘o·and“thenŽ¡‘Gcalls–÷an²!y“ÞSIGWINCH“Ýsignal“handler“the“calling“application“has“installed.‘Readline“calls“theŽ¡‘Gapplication's–;ÞSIGWINCH“Ýsignal“handler“without“resetting“the“terminal“to“its“original“state.Ž¡‘GIf–Ö«the“application's“signal“handler“došMÞes“more“than“up˜date“its“idea“of“the“terminal“size“andŽ¡‘Greturn–Ž(for“example,‘’ìa“Þlongjmp“Ýbac²!k“to“a“main“prošMÞcessing“lo˜op),‘’ìit“àmust‘—øÝcall“Þrl_cleanup_Ž¡‘Gafter_signal()–¦fÝ(describšMÞed“b˜elo²!w),“to“restore“the“terminal“state.Ž¦‘!GReadline–o#proš²!vides“t˜w˜o“v‘ÿdDariables“that“allo˜w“application“writers“to“con˜trol“whether“or“notŽ¡‘Git–û.will“catcš²!h“certain“signals“and“act“on“them“when“they“are“receiv˜ed.‘Ü6It“is“impMÞortan˜t“thatŽŽŒ‹(Ÿò‘GÝ40’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Gapplications–f“c²!hange“the“v›ÿdDalues“of“these“v˜ariables“only“when“calling“Þreadline()Ý,‘–not“in“aŽ¤ 33‘Gsignal–¦fhandler,“so“Readline's“in²!ternal“signal“state“is“not“corrupted.Ž©‘¹’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|catcÞh‘÷R‰ˆŠ#ØŽ“signalsŽ¡‘.ùœÝIf–w*this“v‘ÿdDariable“is“non-zero,›€œReadline“will“install“signal“handlers“for“ÞSIGINTÝ,˜ÞSIGQUITÝ,Ž¡‘.ùœÞSIGTERMÝ,–¦fÞSIGALRMÝ,“ÞSIGTSTPÝ,“ÞSIGTTINÝ,“and“ÞSIGTTOUÝ.ŽŸbv‘.ùœThe–¦fdefault“v‘ÿdDalue“of“Þrl_catch_signals“Ýis“1.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|catcšÞh‘÷R‰ˆŠ#ØŽ“sigwinc˜hŽ¡‘.ùœÝIf–¦fthis“v‘ÿdDariable“is“non-zero,“Readline“will“install“a“signal“handler“for“ÞSIGWINCHÝ.ŽŸbv‘.ùœThe–¦fdefault“v‘ÿdDalue“of“Þrl_catch_sigwinch“Ýis“1.Ž¦‘!GIf–¸0an“application“doMÞes“not“wish“to“ha•²!v“e–¸0Readline“catcš²!h“an˜y“signals,‘¼¢or“to“handle“signalsŽ¡‘Gother–¤Ãthan“those“Readline“catc²!hes“(ÞSIGHUPÝ,›äZfor“example),˜Readline“proš²!vides“con˜v˜enienceŽ¡‘Gfunctions–¦fto“do“the“necessary“terminal“and“inš²!ternal“state“clean˜up“upMÞon“receipt“of“a“signal.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|cleanÞup‘÷R‰ˆŠ#ØŽ“after‘÷R‰ˆŠ#ØŽ“signal‘yšâ(Þvoidâ)Ž¡‘.ùœÝThis–¦function“will“reset“the“state“of“the“terminal“to“what“it“w²!as“bMÞefore“Þreadline()Ž¡‘.ùœÝwš²!as–†called,‘Œ~and“remo˜v˜e“the“Readline“signal“handlers“for“all“signals,‘Œ~depMÞending“on“theŽ¡‘.ùœv‘ÿdDalues–¦fof“Þrl_catch_signals“Ýand“Þrl_catch_sigwinchÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|free‘÷R‰ˆŠ#ØŽ“line‘÷R‰ˆŠ#ØŽ“state‘yšâ(Þvoidâ)Ž¡‘.ùœÝThis–µwill“free“anš²!y“partial“state“assoMÞciated“with“the“curren˜t“input“line“(undo“infor-Ž¡‘.ùœmation,‘z$anš²!y–˜partial“history“en˜try‘ÿe,‘z$an˜y“partially-en˜tered“k˜eybMÞoard“macro,‘z$and“an˜yŽ¡‘.ùœpartially-en•²!tered›½Õn“umeric˜argumen“t).‘ $)This˜should˜b•MÞe˜called˜b“efore˜Þrl_cleanup_Ž¡‘.ùœafter_signal()Ý.‘ LãThe– ½Readline“signal“handler“for“ÞSIGINT“Ýcalls“this“to“abMÞort“theŽ¡‘.ùœcurren²!t–¦finput“line.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|reset‘÷R‰ˆŠ#ØŽ“after‘÷R‰ˆŠ#ØŽ“signal‘yšâ(Þvoidâ)Ž¡‘.ùœÝThis–k¶will“reinitialize“the“terminal“and“reinstall“an²!y“Readline“signal“handlers,‘wsdepMÞend-Ž¡‘.ùœing–¦fon“the“v‘ÿdDalues“of“Þrl_catch_signals“Ýand“Þrl_catch_sigwinchÝ.Ž¦‘!GIf–»µan“application“doMÞes“not“wish“Readline“to“catcš²!h“ÞSIGWINCHÝ,‘ it“ma˜y“call“Þrl_resize_Ž¡‘Gterminal()–BÝor“Þrl_set_screen_size()“Ýto“force“Readline“to“upMÞdate“its“idea“of“the“terminalŽ¡‘Gsize–¦fwhen“a“ÞSIGWINCH“Ýis“receiv²!ed.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|resize‘÷R‰ˆŠ#ØŽ“terminal‘yšâ(Þvoidâ)Ž¡‘.ùœÝUpMÞdate–¦fReadline's“inš²!ternal“screen“size“b˜y“reading“v‘ÿdDalues“from“the“k˜ernel.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|set‘÷R‰ˆŠ#ØŽ“screen‘÷R‰ˆŠ#ØŽ“size‘yšâ(Þint–¦frows,“int“colsâ)Ž¡‘.ùœÝSet–¦fReadline's“idea“of“the“terminal“size“to“áro•²!ws›èÝro“ws–¦fand“ácols˜Ýcolumns.Ž¦‘!GIf–¹an“application“doMÞes“not“w•²!an“t–¹to“install“a“ÞSIGWINCH“Ýhandler,‘but“is“still“in²!terested“inŽ¡‘Gthe–¦fscreen“dimensions,“Readline's“idea“of“the“screen“size“ma²!y“bMÞe“queried.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèvoid‘™˜çrl‘÷R‰ˆŠ#ØŽ–|get‘÷R‰ˆŠ#ØŽ“screen‘÷R‰ˆŠ#ØŽ“size‘yšâ(Þint–¦f*rows,“int“*colsâ)Ž¡‘.ùœÝReturn–GReadline's“idea“of“the“terminal's“size“in“the“v‘ÿdDariables“pMÞoinš²!ted“to“b˜y“the“argu-Ž¡‘.ùœmen²!ts.Ž¦‘!GThe–¦ffolloš²!wing“functions“install“and“remo˜v˜e“Readline's“signal“handlers.ŽŽŒ‹)äŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—41ŽŽŽ ƒ3* ý ÌÖ’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|set‘÷R‰ˆŠ#ØŽ“signals‘yšâ(Þvoidâ)Ž¤ 33‘.ùœÝInstall–7ÂReadline's“signal“handler“for“ÞSIGINTÝ,–\ÞSIGQUITÝ,“ÞSIGTERMÝ,“ÞSIGALRMÝ,“ÞSIGTSTPÝ,Ž¡‘.ùœÞSIGTTINÝ,–ô—ÞSIGTTOUÝ,“and›È#ÞSIGWINCHÝ,“depMÞending˜on˜the˜v‘ÿdDalues˜of˜Þrl_catch_signals˜ÝandŽ¡‘.ùœÞrl_catch_sigwinchÝ.ŽŸÝ’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|clear‘÷R‰ˆŠ#ØŽ“signals‘yšâ(Þvoidâ)Ž¡‘.ùœÝRemo•²!v“e–¦fall“of“the“Readline“signal“handlers“installed“b²!y“Þrl_set_signals()Ý.ŽŸ %U‘GëX2.6‘™Custom‘f@CompletersŽŽ©Û»‘!GÝTš²!ypically‘ÿe,‘ÿa–ýGprogram“that“reads“commands“from“the“user“has“a“w˜a˜y“of“disam˜biguatingŽ¡‘Gcommands–B and“data.‘± If“yš²!our“program“is“one“of“these,‘ithen“it“can“pro˜vide“completion“forŽ¡‘Gcommands,–ˆÃdata,“or–[bšMÞoth.‘Ñ„The“follo²!wing“sections“describ˜e“hoš²!w“y˜our“program“and“ReadlineŽ¡‘Gco•MÞop“erate–¦fto“pro²!vide“this“service.ŽŸꪑGëa2.6.1‘d(Ho–áw–íMCompleting“W‘þÄ£orksŽŽ¦‘!GÝIn–úorder“to“complete“some“text,‘;ßthe“full“list“of“pšMÞossible“completions“m²!ust“b˜e“a²!v‘ÿdDailable.Ž¡‘GThat–is,‘3&it“is“not“pMÞossible“to“accurately“expand“a“partial“wš²!ord“without“kno˜wing“all“of“theŽ¡‘GpMÞossible–3—wš²!ords“whic˜h“mak˜e“sense“in“that“con˜text.‘…pThe“Readline“library“pro˜vides“the“userŽ¡‘Ginš²!terface–ÿ!to“completion,‘Pand“t˜w˜o“of“the“most“common“completion“functions:‘S lename“andŽ¡‘Gusername.‘„F‘ÿeor–˜Úcompleting“other“tš²!ypMÞes“of“text,‘ÎÂy˜ou“m˜ust“write“y˜our“o˜wn“completion“function.Ž¡‘GThis–¦fsection“describMÞes“exactly“what“sucš²!h“functions“m˜ust“do,“and“pro˜vides“an“example.Ž¤¨ˆ‘!GThere–¦fare“three“ma‘›»jor“functions“used“to“pMÞerform“completion:Ž¡‘-1.Ž‘'¿«The–6@user-in²!terface“function“Þrl_complete()Ý.‘ kThis“function“is“called“with“the“sameŽ¤ 33‘'¿«argumenš²!ts–Has“other“bindable“Readline“functions:‘!=ácoun˜t‘…Ýand“áin˜v˜oking‘Ä>‰x³HøŽ‘Ñtk˜eyÝ.‘ÂíIt“isolatesŽ¡‘'¿«the–ƒ,w²!ord“to“bMÞe“completed“and“calls“Þrl_completion_matches()“Ýto“generate“a“list“ofŽ¡‘'¿«pšMÞossible–¼?completions.‘iIt“then“either“lists“the“p˜ossible“completions,‘Á¶inserts“the“p˜ossibleŽ¡‘'¿«completions,›ÞÎor–m actually“pMÞerforms“the“completion,˜depšMÞending“on“whic²!h“b˜eha²!vior“isŽ¡‘'¿«desired.Ž©mÞ‘-2.Ž‘'¿«The–Œin²!ternal“function“Þrl_completion_matches()“Ýuses“an“application-supplied“ágener-Ž¡‘'¿«ator‘:yÝfunction–qPto“generate“the“list“of“pMÞossible“matcš²!hes,‘¤ and“then“returns“the“arra˜y“ofŽ¡‘'¿«these–¯>matc²!hes.‘øeThe“caller“should“place“the“address“of“its“generator“function“in“Þrl_Ž¡‘'¿«completion_entry_functionÝ.Ž¦‘-3.Ž‘'¿«The–¿generator“function“is“called“repMÞeatedly“from“Þrl_completion_matches()Ý,‘íLreturningŽ¡‘'¿«a–ñÒstring“eacš²!h“time.‘À The“argumen˜ts“to“the“generator“function“are“átext‘.ÒÝand“ástateÝ.‘À átextŽ¡‘'¿«Ýis–Ùâthe“partial“w²!ord“to“bMÞe“completed.‘xQástate‘véÝis“zero“the“ rst“time“the“function“is“called,Ž¡‘'¿«alloš²!wing–G2the“generator“to“pMÞerform“an˜y“necessary“initialization,‘¯eand“a“pMÞositiv˜e“non-Ž¡‘'¿«zero–¡inš²!teger“for“eac˜h“subsequen˜t“call.‘Ñ›The“generator“function“returns“Þ(char‘¦f*)NULL“ÝtoŽ¡‘'¿«inform–’þÞrl_completion_matches()“Ýthat“there“are“no“more“pMÞossibilities“left.‘£¦UsuallyŽ¡‘'¿«the–§^generator“function“computes“the“list“of“pMÞossible“completions“when“ástate‘DeÝis“zero,Ž¡‘'¿«and–jreturns“them“one“at“a“time“on“subsequenš²!t“calls.‘«ßEac˜h“string“the“generator“functionŽ¡‘'¿«returns–Ô¨as“a“matcš²!h“m˜ust“bšMÞe“allo˜cated“with“Þmalloc()Ý;‘ëÉReadline“frees“the“strings“whenŽ¡‘'¿«it–Žhas“ nished“with“them.‘TSuc²!h“a“generator“function“is“referred“to“as“an“áapplication-Ž¡‘'¿«spMÞeci c–¦fcompletion“functionÝ.ŽŽŒ‹*$|Ÿò‘GÝ42’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ‘|complete‘yšâ(Þint–¦fignore,“int“invoking_keyâ)Ž¤ 33‘.ùœÝComplete–¯tthe“w²!ord“at“or“bšMÞefore“p˜oinš²!t.‘ùY‘ÿeou“ha˜v˜e“supplied“the“function“that“doMÞes“theŽ¡‘.ùœinitial–ð™simple“matc²!hing“selection“algorithm“(see“Þrl_completion_matches()Ý).‘¼wTheŽ¡‘.ùœdefault–¦fis“to“do“ lename“completion.Ž© Ä’–3[V‘ÿeariable]ŽŽ‘Gèrl_compentry_func_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|completion‘÷R‰ˆŠ#ØŽ“enÞtry‘÷R‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝThis–ÌJis“a“pMÞoin²!ter“to“the“generator“function“for“Þrl_completion_matches()Ý.‘OˆIf“theŽ¡‘.ùœv‘ÿdDalue–Ùîof“Þrl_completion_entry_function“Ýis“ÞNULL“Ýthen“the“default“ lename“generatorŽ¡‘.ùœfunction,–×êÞrl_filename_completion_function()Ý,“is–gused.‘ ! !‚An“áapplication-spMÞeci cŽ¡‘.ùœcompletion–†Ëfunction“Ýis“a“function“whose“address“is“assigned“to“Þrl_completion_entry_Ž¡‘.ùœfunction–¦fÝand“whose“return“v‘ÿdDalues“are“used“to“generate“pMÞossible“completions.ŽŸí‘‘Gëa2.6.2‘d(Completion‘íMF‘þÄ£unctionsŽŽŸ`A‘!GÝHere–¦fis“the“complete“list“of“callable“completion“functions“presen²!t“in“Readline.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|complete‘÷R‰ˆŠ#ØŽ“inÞternal‘yšâ(Þint‘¦fwhat_to_doâ)Ž¡‘.ùœÝComplete–fthe“w²!ord“at“or“bšMÞefore“p˜oinš²!t.‘­áwhat‘Ä>‰x³HøŽ–Ñtto‘Ä>‰x³HøŽ“do‘òÑÝsa˜ys–fwhat“to“do“with“the“com-Ž¡‘.ùœpletion.›(éA‘¿cv‘ÿdDalue–¿jof“`Þ?Ý'“means“list“the“pMÞossible“completions.˜`ÞTABÝ'“means“do“standardŽ¡‘.ùœcompletion.›&'`Þ*Ý'–¾means“insert“all“of“the“pMÞossible“completions.˜`Þ!Ý'“means“to“displa²!y“allŽ¡‘.ùœof–!)the“pMÞossible“completions,›?Úif“there“is“more“than“one,˜as“w²!ell“as“pMÞerforming“partialŽ¡‘.ùœcompletion.‘¾*`Þ@Ý'–GMis“similar“to“`Þ!Ý',‘ZRbut“pšMÞossible“completions“are“not“listed“if“the“p˜ossibleŽ¡‘.ùœcompletions–¦fshare“a“common“pre x.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ‘|complete‘yšâ(Þint–¦fignore,“int“invoking_keyâ)Ž¡‘.ùœÝComplete–ñèthe“w²!ord“at“or“bšMÞefore“p˜oinš²!t.‘ÀbY‘ÿeou“ha˜v˜e“supplied“the“function“that“doMÞesŽ¡‘.ùœthe–õàinitial“simple“matc²!hing“selection“algorithm“(see“Þrl_completion_matches()“ÝandŽ¡‘.ùœÞrl_completion_entry_functionÝ).›×XThe–Nädefault“is“to“do“ lename“completion.˜ThisŽ¡‘.ùœcalls–¦fÞrl_complete_internal()“Ýwith“an“argumenš²!t“depMÞending“on“áin˜v˜oking‘Ä>‰x³HøŽ‘Ñtk˜eyÝ.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|pb"ossible‘÷R‰ˆŠ#ØŽ“completions‘yšâ(Þint–¦fcount,“int“invoking_keyâ)Ž¡‘.ùœÝList–ÞÇthe“pMÞossible“completions.›‡See“description“of“Þrl_complete‘¦f()Ý.˜This“calls“Þrl_Ž¡‘.ùœcomplete_internal()–¦fÝwith“an“argumen²!t“of“`Þ?Ý'.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|insert‘÷R‰ˆŠ#ØŽ“completions‘yšâ(Þint–¦fcount,“int“invoking_keyâ)Ž¡‘.ùœÝInsert– Ëthe“list“of“pMÞossible“completions“in²!to“the“line,‘"¤deleting“the“partially-completedŽ¡‘.ùœw²!ord.›WâSee–Ïdescription“of“Þrl_complete()Ý.˜This“calls“Þrl_complete_internal()“ÝwithŽ¡‘.ùœan–¦fargumen²!t“of“`Þ*Ý'.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|completion‘÷R‰ˆŠ#ØŽ“mob"de‘yšâ(Þrl_command_func_t‘¦f*cfuncâ)Ž¡‘.ùœÝReturns–´the“apppriate“v‘ÿdDalue“to“pass“to“Þrl_complete_internal()“ÝdepMÞending“onŽ¡‘.ùœwhether–çxácfunc‘‘|Ýwš²!as“called“t˜wice“in“succession“and“the“v‘ÿdDalues“of“the“Þshow-all-if-Ž¡‘.ùœambiguous–OŽÝand“Þshow-all-if-unmodified“Ýv‘ÿdDariables.‘ÀêApplication-spMÞeci c“completionŽ¡‘.ùœfunctions–¦fmaš²!y“use“this“function“to“presen˜t“the“same“in˜terface“as“Þrl_complete()Ý.Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèchar–™˜**“çrl‘÷R‰ˆŠ#ØŽ–|completion‘÷R‰ˆŠ#ØŽ“matcÞhes‘yšâ(Þconst–¦fchar“*text,Ž¡‘DGrl_compentry_func_t‘¦f*entry_funcâ)Ž¡‘.ùœÝReturns–Œ^an“arraš²!y“of“strings“whic˜h“is“a“list“of“completions“for“átextÝ.‘ÄIf“there“are“noŽ¡‘.ùœcompletions,‘C;returns–#ÝÞNULLÝ.‘VCThe“ rst“enš²!try“in“the“returned“arra˜y“is“the“substitutionŽŽŒ‹+3ºŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—43ŽŽŽ ƒ3* ý ÌÖ‘.ùœfor–)GátextÝ.›´(The“remaining“en²!tries“are“the“pMÞossible“completions.˜The“arra²!y“is“terminatedŽ¤ 33‘.ùœwith–¦fa“ÞNULL“ÝpMÞoin²!ter.ŽŸI$‘.ùœáenš²!try‘Ä>‰x³HøŽ‘Ñtfunc‘hoÝis–¾ka“function“of“t˜w˜o“args,‘land“returns“a“Þchar‘¦f*Ý.‘%íThe“ rst“argumen˜t“isŽ¡‘.ùœátextÝ.‘××The–¤dsecond“is“a“state“argumen²!t;‘#cit“is“zero“on“the“ rst“call,‘ããand“non-zero“onŽ¡‘.ùœsubsequen•²!t›~calls.‘$áen“try‘Ä>‰x³HøŽ‘Ñtfunc‘º‚Ýreturns˜a˜ÞNULL˜ÝpMÞoin“ter˜to˜the˜caller˜when˜there˜are˜noŽ¡‘.ùœmore‘¦fmatc²!hes.Ž©_’“z[F‘ÿeunction]ŽŽ‘Gèchar–™˜*“çrl‘÷R‰ˆŠ#ØŽ–| lename‘÷R‰ˆŠ#ØŽ“completion‘÷R‰ˆŠ#ØŽ“function‘yšâ(Þconst–¦fchar“*text,“intŽ¡‘DGstateâ)Ž¡‘.ùœÝA‘‹generator–°function“for“ lename“completion“in“the“general“case.‘¬öátext‘P°Ýis“a“partial“ le-Ž¡‘.ùœname.‘‚UThe–“ÎBash“source“is“a“useful“reference“for“writing“application-spMÞeci c“completionŽ¡‘.ùœfunctions–¦f(the“Bash“completion“functions“call“this“and“other“Readline“functions).Ž¦’“z[F‘ÿeunction]ŽŽ‘Gèchar–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|username‘÷R‰ˆŠ#ØŽ“completion‘÷R‰ˆŠ#ØŽ“function‘yšâ(Þconst–¦fchar“*text,“intŽ¡‘DGstateâ)Ž¡‘.ùœÝA‘l&completion–l5generator“for“usernames.‘Êwátext‘©5Ýconš²!tains“a“partial“username“preceded“b˜yŽ¡‘.ùœa–«ºrandom“c²!haracter“(usually“`Þ~Ý').‘íÚAs“with“all“completion“generators,‘­ástate‘HÁÝis“zero“onŽ¡‘.ùœthe–¦f rst“call“and“non-zero“for“subsequen²!t“calls.ŽŸ+ã‘Gëa2.6.3‘d(Completion‘íMV‘þÄ£ariablesŽŽŸ|W’–3Ý[V‘ÿeariable]ŽŽ‘Gèrl_compentry_func_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|completion‘÷R‰ˆŠ#ØŽ“enÞtry‘÷R‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝA‘{pMÞoin²!ter–“to“the“generator“function“for“Þrl_completion_matches()Ý.‘ûdÞNULL“Ýmeans“toŽ¡‘.ùœuse–¦fÞrl_filename_completion_function()Ý,“the“default“ lename“completer.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèrl_completion_func_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|attempted‘÷R‰ˆŠ#ØŽ“completion‘÷R‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝA‘,„pMÞoinš²!ter–,§to“an“alternativ˜e“function“to“create“matc˜hes.‘pŸThe“function“is“called“withŽ¡‘.ùœátextÝ,–îûástartÝ,“and–Á áendÝ.‘‘qástart‘þ Ýand“áend‘/rÝare“indices“in“Þrl_line_buffer“Ýde ning“the“bMÞound-Ž¡‘.ùœaries–of“átextÝ,‘9]whicš²!h“is“a“c˜haracter“string.‘°oIf“this“function“exists“and“returns“ÞNULLÝ,‘9]or“ifŽ¡‘.ùœthis– v›ÿdDariable“is“set“to“ÞNULLÝ,‘Ôùthen“Þrl_complete()“Ýwill“call“the“v˜alue“of“Þrl_completion_Ž¡‘.ùœentry_function–hÚÝto“generate“matcš²!hes,‘u)otherwise“the“arra˜y“of“strings“returned“will“bMÞeŽ¡‘.ùœused.‘‹tIf–¯,this“function“sets“the“Þrl_attempted_completion_over“Ýv‘ÿdDariable“to“a“non-zeroŽ¡‘.ùœv‘ÿdDalue,‘-óReadline–×will“not“pMÞerform“its“default“completion“ev²!en“if“this“function“returnsŽ¡‘.ùœno‘¦fmatc²!hes.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèrl_quote_func_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–| lename‘÷R‰ˆŠ#ØŽ“quoting‘÷R‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝA‘è–pšMÞoin²!ter–è§to“a“function“that“will“quote“a“ lename“in“an“application-sp˜eci c“fashion.Ž¡‘.ùœThis–·Kis“called“if“ lename“completion“is“bMÞeing“attempted“and“one“of“the“c²!haractersŽ¡‘.ùœin–ü’Þrl_filename_quote_characters“ÝappMÞears“in“a“completed“ lename.‘à`The“functionŽ¡‘.ùœis–mPcalled“with“átextÝ,›Ÿ ! ámatc•²!h‘Ä>‰x³HøŽ‘Ñtt“yp•MÞeÝ,˜and›mPáquote‘Ä>‰x³HøŽ‘Ñtp“oin²!terÝ.‘2œThe˜átext‘ªPÝis˜the˜ lename˜to˜b“eŽ¡‘.ùœquoted.‘ (TThe›Žámatc•²!h‘Ä>‰x³HøŽ‘Ñtt“ypMÞe‘±•Ýis˜either˜ÞSINGLE_MATCHÝ,‘pif˜there˜is˜only˜one˜completionŽ¡‘.ùœmatc²!h,‘Ì‚or–ÄãÞMULT_MATCHÝ.‘9TSome“functions“use“this“to“decide“whether“or“not“to“insert“aŽ¡‘.ùœclosing–çquote“cš²!haracter.‘{³The“áquote‘Ä>‰x³HøŽ‘ÑtpMÞoin˜ter‘IÝis“a“pMÞoin˜ter“to“an˜y“opMÞening“quote“c˜haracterŽ¡‘.ùœthe–¦fuser“tš²!ypMÞed.‘ÝÝSome“functions“c˜hoMÞose“to“reset“this“c˜haracter.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèrl_dequote_func_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–| lename‘÷R‰ˆŠ#ØŽ“dequoting‘÷R‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝA‘Ž¼pMÞoinš²!ter–ŽÂto“a“function“that“will“remo˜v˜e“application-spMÞeci c“quoting“c˜haracters“fromŽ¡‘.ùœa–çž lename“bMÞefore“completion“is“attempted,‘÷ìso“those“cš²!haracters“do“not“in˜terfere“withŽŽŒ‹,CªŸò‘GÝ44’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘.ùœmatc²!hing–“áthe“text“against“names“in“the“ lesystem.‘¦OIt“is“called“with“átextÝ,‘Ï@the“textŽ¤ 33‘.ùœof–xthe“wš²!ord“to“bMÞe“dequoted,‘m|and“áquote‘Ä>‰x³HøŽ‘Ñtc˜harÝ,‘m|whic˜h“is“the“quoting“c˜haracter“thatŽ¡‘.ùœdelimits–Ü>the“ lename“(usually“`Þ'Ý'“or“`Þ"Ý').‘fIf“áquote‘Ä>‰x³HøŽ‘Ñtcš²!har‘¥gÝis“zero,‘é´the“ lename“w˜as“notŽ¡‘.ùœin–¦fan“em²!bMÞedded“string.Ž©fg’–3[V‘ÿeariable]ŽŽ‘Gèrl_linebuf_func_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|cÞhar‘÷R‰ˆŠ#ØŽ“is‘÷R‰ˆŠ#ØŽ“quoted‘÷R‰ˆŠ#ØŽ“pŽ¡‘.ùœÝA‘kÿpšMÞoin²!ter–l2to“a“function“to“call“that“determines“whether“or“not“a“sp˜eci c“c²!haracterŽ¡‘.ùœin–#^the“line“bu er“is“quoted,‘Bœaccording“to“whatevš²!er“quoting“mec˜hanism“the“programŽ¡‘.ùœcalling–úÎReadline“uses.‘¤«The“function“is“called“with“t•²!w“o›úÎargumen“ts:‘ˆátextÝ,‘ the˜text˜of˜theŽ¡‘.ùœline,–´­and›±ÒáindexÝ,“the˜index˜of˜the˜c²!haracter˜in˜the˜line.‘!It˜is˜used˜to˜decide˜whether˜aŽ¡‘.ùœc²!haracter–ŸFfound“in“Þrl_completer_word_break_characters“Ýshould“bMÞe“used“to“breakŽ¡‘.ùœw²!ords–¦ffor“the“completer.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèrl_compignore_func_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|ignore‘÷R‰ˆŠ#ØŽ“some‘÷R‰ˆŠ#ØŽ“completions‘÷R‰ˆŠ#ØŽ“functionŽ¡‘.ùœÝThis–†hfunction,›¾hif“de ned,˜is“called“b²!y“the“completer“when“real“ lename“completionŽ¡‘.ùœis–¸done,‘1after“all“the“matcš²!hing“names“ha˜v˜e“bMÞeen“generated.‘+ÔIt“is“passed“a“ÞNULL“Ýter-Ž¡‘.ùœminated–³Zarraš²!y“of“matc˜hes.‘¸The“ rst“elemen˜t“(Þmatches[0]Ý)“is“the“maximal“substringŽ¡‘.ùœcommon–tEto“all“matcš²!hes.‘Í(This“function“can“re-arrange“the“list“of“matc˜hes“as“required,Ž¡‘.ùœbut–¦feacš²!h“elemen˜t“deleted“from“the“arra˜y“m˜ust“bMÞe“freed.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèrl_icppfunc_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|directory‘÷R‰ˆŠ#ØŽ“completion‘÷R‰ˆŠ#ØŽ“hob"okŽ¡‘.ùœÝThis–qAfunction,›ã÷if“de ned,˜is“allo•²!w“ed–qAto“mošMÞdify“the“directory“p˜ortion“of“ lenamesŽ¡‘.ùœReadline–c«completes.‘¬It“is“called“with“the“address“of“a“string“(the“curren²!t“directoryŽ¡‘.ùœname)–v,as“an“argumenš²!t,‘ªand“ma˜y“moMÞdify“that“string.‘M/If“the“string“is“replaced“withŽ¡‘.ùœa–ÌMnew“string,‘Æthe“old“v‘ÿdDalue“should“bšMÞe“freed.‘O’An²!y“mo˜di ed“directory“name“shouldŽ¡‘.ùœha•²!v“e–€Êa“trailing“slash.‘ÑTThe“mošMÞdi ed“v‘ÿdDalue“will“b˜e“displa•²!y“ed–€Êas“part“of“the“completion,Ž¡‘.ùœreplacing–c9the“directory“pšMÞortion“of“the“pathname“the“user“t²!yp˜ed.‘ÇyIt“returns“an“in²!tegerŽ¡‘.ùœthat–÷,should“bšMÞe“non-zero“if“the“function“mo˜di es“its“directory“argumen²!t.‘Ð0It“could“b˜eŽ¡‘.ùœused–¦fto“expand“sym²!bMÞolic“links“or“shell“v‘ÿdDariables“in“pathnames.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèrl_compdisp_func_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|completion‘÷R‰ˆŠ#ØŽ“displašÞy‘÷R‰ˆŠ#ØŽ“matc˜hes‘÷R‰ˆŠ#ØŽ“hob"okŽ¡‘.ùœÝIf–£xnon-zero,‘×Athen“this“is“the“address“of“a“function“to“call“when“completing“a“wš²!ord“w˜ouldŽ¡‘.ùœnormally–¨¶displaš²!y“the“list“of“pMÞossible“matc˜hes.‘‰MThis“function“is“called“in“lieu“of“ReadlineŽ¡‘.ùœdisplaš²!ying–s7the“list.‘DPIt“tak˜es“three“argumen˜ts:‘w(Þchar‘¦f**ámatc˜hesÝ,‘¦kÞint“án˜um‘Ä>‰x³HøŽ‘Ñtmatc˜hesÝ,Ž¡‘.ùœÞint–-ámax‘Ä>‰x³HøŽ‘ÑtlengthÝ)“where“ámatcš²!hes‘ “Ýis“the“arra˜y“of“matc˜hing“strings,‘EUán˜um‘Ä>‰x³HøŽ‘Ñtmatc˜hes‘ “Ýis“theŽ¡‘.ùœn•²!um“bMÞer–}wof“strings“in“that“arra²!y‘ÿe,‘…§and“ámax‘Ä>‰x³HøŽ‘Ñtlength“Ýis“the“length“of“the“longest“string“inŽ¡‘.ùœthat–_@arraš²!y‘ÿe.‘Æ&Readline“pro˜vides“a“con˜v˜enience“function,–m{Þrl_display_match_listÝ,“thatŽ¡‘.ùœtakš²!es–-®care“of“doing“the“displa˜y“to“Readline's“output“stream.‘sµThat“function“ma˜y“bMÞeŽ¡‘.ùœcalled–¦ffrom“this“hoMÞok.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèconst–™˜char“*“çrl‘÷R‰ˆŠ#ØŽ–|basic‘÷R‰ˆŠ#ØŽ“wšÞord‘÷R‰ˆŠ#ØŽ“break‘÷R‰ˆŠ#ØŽ“c˜haractersŽ¡‘.ùœÝThe–Oobasic“list“of“cš²!haracters“that“signal“a“break“bMÞet˜w˜een“w˜ords“for“the“completerŽ¡‘.ùœroutine.‘M¼The–v[default“v›ÿdDalue“of“this“v˜ariable“is“the“cš²!haracters“whic˜h“break“w˜ords“forŽ¡‘.ùœcompletion–¦fin“Bash:‘ÝÝÞ"“\t\n\"\\'`@$><=;|&{("Ý.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèconst–™˜char“*“çrl‘÷R‰ˆŠ#ØŽ–|basic‘÷R‰ˆŠ#ØŽ“quote‘÷R‰ˆŠ#ØŽ“cÞharactersŽ¡‘.ùœÝA–¦flist“of“quote“cš²!haracters“whic˜h“can“cause“a“w˜ord“break.ŽŽŒ‹-T\Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—45ŽŽŽ ƒ3* ý ÌÖ’–3[V‘ÿeariable]ŽŽ‘Gèconst–™˜char“*“çrl‘÷R‰ˆŠ#ØŽ–|completer‘÷R‰ˆŠ#ØŽ“wšÞord‘÷R‰ˆŠ#ØŽ“break‘÷R‰ˆŠ#ØŽ“c˜haractersŽ¤ 33‘.ùœÝThe–Ïlist“of“cš²!haracters“that“signal“a“break“bMÞet˜w˜een“w˜ords“for“Þrl_complete_Ž¡‘.ùœinternal()Ý.‘ÝÝThe–¦fdefault“list“is“the“v‘ÿdDalue“of“Þrl_basic_word_break_charactersÝ.Ž©™’–3[V‘ÿeariable]ŽŽ‘Gèrl_cpvfunc_t–™˜*“çrl‘÷R‰ˆŠ#ØŽ–|completion‘÷R‰ˆŠ#ØŽ“wÞord‘÷R‰ˆŠ#ØŽ“break‘÷R‰ˆŠ#ØŽ“hob"okŽ¡‘.ùœÝIf–Èënon-zero,‘ÑŒthis“is“the“address“of“a“function“to“call“when“Readline“is“deciding“whereŽ¡‘.ùœto–¡separate“wš²!ords“for“w˜ord“completion.‘FIt“should“return“a“c˜haracter“string“lik˜e“Þrl_Ž¡‘.ùœcompleter_word_break_characters–ôëÝto“bšMÞe“used“to“p˜erform“the“curren²!t“completion.Ž¡‘.ùœThe–øMfunction“maš²!y“c˜hoMÞose“to“set“Þrl_completer_word_break_characters“Ýitself.‘£ÕIf“theŽ¡‘.ùœfunction–¦freturns“ÞNULLÝ,“Þrl_completer_word_break_characters“Ýis“used.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèconst–™˜char“*“çrl‘÷R‰ˆŠ#ØŽ–|completer‘÷R‰ˆŠ#ØŽ“quote‘÷R‰ˆŠ#ØŽ“cÞharactersŽ¡‘.ùœÝA‘ Clist– ^of“cš²!haracters“whic˜h“can“bMÞe“used“to“quote“a“substring“of“the“line.‘ÄCompletionŽ¡‘.ùœoMÞccurs–&­on“the“en²!tire“substring,‘@8and“within“the“substring“Þrl_completer_word_break_Ž¡‘.ùœcharacters–8\Ýare“treated“as“anš²!y“other“c˜haracter,‘\Ùunless“they“also“appMÞear“within“thisŽ¡‘.ùœlist.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèconst–™˜char“*“çrl‘÷R‰ˆŠ#ØŽ–| lename‘÷R‰ˆŠ#ØŽ“quote‘÷R‰ˆŠ#ØŽ“cÞharactersŽ¡‘.ùœÝA‘ ]list– wof“cš²!haracters“that“cause“a“ lename“to“bMÞe“quoted“b˜y“the“completer“when“theyŽ¡‘.ùœappMÞear–¦fin“a“completed“ lename.‘ÝÝThe“default“is“the“n²!ull“string.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèconst–™˜char“*“çrl‘÷R‰ˆŠ#ØŽ–|spb"ecial‘÷R‰ˆŠ#ØŽ“pre xesŽ¡‘.ùœÝThe–S­list“of“cš²!haracters“that“are“w˜ord“break“c˜haracters,‘d8but“should“bMÞe“left“in“átext‘­ÝwhenŽ¡‘.ùœit–ô¡is“passed“to“the“completion“function.‘¢œPrograms“can“use“this“to“help“determine“whatŽ¡‘.ùœkind–„Àof“completing“to“do.‘Ò¦F‘ÿeor“instance,‘‹{Bash“sets“this“v‘ÿdDariable“to“Þ"Ý$Þ@"“Ýso“that“it“canŽ¡‘.ùœcomplete–¦fshell“v‘ÿdDariables“and“hostnames.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|completion‘÷R‰ˆŠ#ØŽ“query‘÷R‰ˆŠ#ØŽ“itemsŽ¡‘.ùœÝUp–YAto“this“manš²!y“items“will“bMÞe“displa˜y˜ed“in“respšMÞonse“to“a“p˜ossible-completions“call.Ž¡‘.ùœAfter–nQthat,‘y‰wš²!e“ask“the“user“if“she“is“sure“she“w˜an˜ts“to“see“them“all.‘Ë,The“default“v‘ÿdDalueŽ¡‘.ùœis‘¦f100.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|completion‘÷R‰ˆŠ#ØŽ“appb"end‘÷R‰ˆŠ#ØŽ“cÞharacterŽ¡‘.ùœÝWhen–ýºa“single“completion“alternativš²!e“matc˜hes“at“the“end“of“the“command“line,‘thisŽ¡‘.ùœcš²!haracter–’?is“appMÞended“to“the“inserted“completion“text.‘ÐThe“default“is“a“space“c˜haracterŽ¡‘.ùœ(`‘¦f').‘ ! F•Setting–sùthis“to“the“nš²!ull“c˜haracter“(`Þ\0Ý')“prev˜en˜ts“an˜ything“bšMÞeing“app˜endedŽ¡‘.ùœautomatically‘ÿe.‘„•This–ˆ£can“bšMÞe“c²!hanged“in“application-sp˜eci c“completion“functions“toŽ¡‘.ùœproš²!vide–Æùthe“\most“sensible“w˜ord“separator“c˜haracter"“according“to“an“application-Ž¡‘.ùœspšMÞeci c–¦fcommand“line“syn²!tax“sp˜eci cation.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|completion‘÷R‰ˆŠ#ØŽ“suppress‘÷R‰ˆŠ#ØŽ“appb"endŽ¡‘.ùœÝIf›þðnon-zero,‘árl‘Ä>‰x³HøŽ–Ñtcompletion‘Ä>‰x³HøŽ“appMÞend‘Ä>‰x³HøŽ“c•²!haracter‘ÈÝis˜not˜appMÞended˜to˜matc“hes˜at˜the˜endŽ¡‘.ùœof–Ošthe“command“line,‘`öas“describšMÞed“ab˜o•²!v“e.‘ÀîIt–Ošis“set“to“0“b˜efore“an²!y“application-sp˜eci cŽ¡‘.ùœcompletion–¦ffunction“is“called,“and“maš²!y“only“bMÞe“c˜hanged“within“suc˜h“a“function.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|completion‘÷R‰ˆŠ#ØŽ“quote‘÷R‰ˆŠ#ØŽ“cÞharacterŽ¡‘.ùœÝWhen–X;Readline“is“completing“quoted“text,‘„°as“delimited“bš²!y“one“of“the“c˜haracters“inŽ¡‘.ùœárl‘Ä>‰x³HøŽ–Ñtcompleter‘Ä>‰x³HøŽ“quote‘Ä>‰x³HøŽ“cš²!haractersÝ,‘òCit–¯äsets“this“v‘ÿdDariable“to“the“quoting“c˜haracter“found.Ž¡‘.ùœThis–¦fis“set“bšMÞefore“an²!y“application-sp˜eci c“completion“function“is“called.ŽŽŒ‹.eµŸò‘GÝ46’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|completion‘÷R‰ˆŠ#ØŽ“suppress‘÷R‰ˆŠ#ØŽ“quoteŽ¤ 33‘.ùœÝIf–àDnon-zero,‘î»Readline“došMÞes“not“app˜end“a“matcš²!hing“quote“c˜haracter“when“pMÞerformingŽ¡‘.ùœcompletion–ÓGon“a“quoted“string.‘—}It“is“set“to“0“bšMÞefore“an²!y“application-sp˜eci c“completionŽ¡‘.ùœfunction–¦fis“called,“and“maš²!y“only“bMÞe“c˜hanged“within“suc˜h“a“function.Ž©¾+’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|completion‘÷R‰ˆŠ#ØŽ“found‘÷R‰ˆŠ#ØŽ“quoteŽ¡‘.ùœÝWhen–ÌúReadline“is“completing“quoted“text,‘ÖŸit“sets“this“v›ÿdDariable“to“a“non-zero“v˜alue“ifŽ¡‘.ùœthe–‡¿wš²!ord“bMÞeing“completed“con˜tains“or“is“delimited“b˜y“an˜y“quoting“c˜haracters,‘ÁincludingŽ¡‘.ùœbacš²!kslashes.‘ÝÝThis–¦fis“set“bMÞefore“an˜y“application-spMÞeci c“completion“function“is“called.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|completion‘÷R‰ˆŠ#ØŽ“mark‘÷R‰ˆŠ#ØŽ“symlink‘÷R‰ˆŠ#ØŽ“dirsŽ¡‘.ùœÝIf–ѧnon-zero,‘Üwa“slash“will“bšMÞe“app˜ended“to“completed“ lenames“that“are“sym²!b˜olic“linksŽ¡‘.ùœto–ærdirectory“names,‘ Ösub‘›»ject“to“the“v›ÿdDalue“of“the“user-settable“ámark-directories‘YôÝv˜ariable.Ž¡‘.ùœThis–Imv‘ÿdDariable“exists“so“that“application-spMÞeci c“completion“functions“can“o•²!v“erride‘ImtheŽ¡‘.ùœuser's–global“preference“(set“via“the“ámark-symlink²!ed-directories‘Š’ÝReadline“v‘ÿdDariable)Ž¡‘.ùœif–„appropriate.‘vöThis“v‘ÿdDariable“is“set“to“the“user's“preference“bMÞefore“an²!y“application-Ž¡‘.ùœspšMÞeci c–Îcompletion“function“is“called,‘×ìso“unless“that“function“mo˜di es“the“v‘ÿdDalue,‘×ìtheŽ¡‘.ùœuser's–¦fpreferences“are“honored.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|ignore‘÷R‰ˆŠ#ØŽ“completion‘÷R‰ˆŠ#ØŽ“duplicatesŽ¡‘.ùœÝIf–¦fnon-zero,“then“duplicates“in“the“matcš²!hes“are“remo˜v˜ed.‘ÝÝThe“default“is“1.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–| lename‘÷R‰ˆŠ#ØŽ“completion‘÷R‰ˆŠ#ØŽ“desiredŽ¡‘.ùœÝNon-zero–Ñmeans“that“the“results“of“the“matc²!hes“are“to“bMÞe“treated“as“ lenames.‘]ÄThisŽ¡‘.ùœis–Ì'àalways‘²?Ýzero“when“completion“is“attempted,‘—and“can“only“bMÞe“c²!hanged“within“anŽ¡‘.ùœapplication-spMÞeci c–¼õcompletion“function.‘!‰If“it“is“set“to“a“non-zero“v‘ÿdDalue“bš²!y“suc˜h“aŽ¡‘.ùœfunction,‘Þdirectory–¬ ! names“ha•²!v“e–¬ ! a“slash“appMÞended“and“Readline“attempts“to“quote“com-Ž¡‘.ùœpleted–6 lenames“if“they“conš²!tain“an˜y“c˜haracters“in“Þrl_filename_quote_charactersŽ¡‘.ùœÝand–¦fÞrl_filename_quoting_desired“Ýis“set“to“a“non-zero“v‘ÿdDalue.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–| lename‘÷R‰ˆŠ#ØŽ“quoting‘÷R‰ˆŠ#ØŽ“desiredŽ¡‘.ùœÝNon-zero–^nmeans“that“the“results“of“the“matc²!hes“are“to“bMÞe“quoted“using“double“quotesŽ¡‘.ùœ(or–8an“application-spMÞeci c“quoting“mecš²!hanism)“if“the“completed“ lename“con˜tainsŽ¡‘.ùœan•²!y›QJc“haracters˜in˜Þrl_filename_quote_charsÝ.‘Á~This˜is˜àalways‘7bÝnon-zero˜when˜comple-Ž¡‘.ùœtion–Q is“attempted,‘band“can“only“bšMÞe“c²!hanged“within“an“application-sp˜eci c“completionŽ¡‘.ùœfunction.‘} The–…¯quoting“is“e ected“via“a“call“to“the“function“pMÞoinš²!ted“to“b˜y“Þrl_filename_Ž¡‘.ùœquoting_functionÝ.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|attempted‘÷R‰ˆŠ#ØŽ“completion‘÷R‰ˆŠ#ØŽ“o•Þv“erŽ¡‘.ùœÝIf– Oan“application-spMÞeci c“completion“function“assigned“to“Þrl_attempted_Ž¡‘.ùœcompletion_function–bÝsets“this“v›ÿdDariable“to“a“non-zero“v˜alue,‘•Readline“will“notŽ¡‘.ùœpMÞerform–Žºits“default“ lename“completion“ev²!en“if“the“application's“completion“functionŽ¡‘.ùœreturns–¦fno“matcš²!hes.‘ÝÝIt“should“bMÞe“set“only“b˜y“an“application's“completion“function.Ž¦’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|completion‘÷R‰ˆŠ#ØŽ“tÞypb"eŽ¡‘.ùœÝSet–61to“a“cš²!haracter“describing“the“t˜ypMÞe“of“completion“Readline“is“curren˜tly“attempt-Ž¡‘.ùœing;‘.qsee–the“description“of“Þrl_complete_internal()“Ý(see“Section“2.6.2“[CompletionŽ¡‘.ùœF‘ÿeunctions],‘˜%page–gÌ42)“for“the“list“of“c²!haracters.‘"This“is“set“to“the“appropriate“v‘ÿdDalueŽ¡‘.ùœbšMÞefore–Í¡an²!y“application-sp˜eci c“completion“function“is“called,‘×oalloš²!wing“suc˜h“functionsŽ¡‘.ùœto–¦fpresenš²!t“the“same“in˜terface“as“Þrl_complete()Ý.ŽŽŒ‹/v¦Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—47ŽŽŽ ƒ3* ý ÌÖ’–3[V‘ÿeariable]ŽŽ‘Gèint‘™˜çrl‘÷R‰ˆŠ#ØŽ–|inhibit‘÷R‰ˆŠ#ØŽ“completionŽ¤ 33‘.ùœÝIf–d`this“v‘ÿdDariable“is“non-zero,‘q•completion“is“inhibited.‘ÇÛThe“completion“c²!haracter“will“bMÞeŽ¡‘.ùœinserted–¦fas“an²!y“other“bMÞound“to“Þself-insertÝ.ŽŸ‘Gëa2.6.4‘d(A–íMShort“Completion“ExampleŽŽŸff‘!GÝHere–q}is“a“small“application“demonstrating“the“use“of“the“GNU‘q/Readline“library‘ÿe.‘våIt“is“calledŽ¡‘GÞfilemanÝ,‘lGand–D´the“source“coMÞde“resides“in“`Þexamples/fileman.cÝ'.‘¸ÆThis“sample“applicationŽ¡‘Gpro²!vides–#þcompletion“of“command“names,›>line“editing“features,˜and“access“to“the“history“list.ŽŽŒ‹0‡ìŸò‘GÝ48’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘.ùœÉ/*–¹–fileman.c“--“A“tiny“application“which“demonstrates“how“to“use“theŽ¤ ! €‘=&^GNU–¹–Readline“library.‘ s,This“application“interactively“allows“usersŽ¡‘=&^to–¹–manipulate“files“and“their“modes.“*/Ž©‘.ùœ#include‘¹–Ž¡‘.ùœ#include‘¹–Ž¡‘.ùœ#include‘¹–Ž¡‘.ùœ#include‘¹–Ž¡‘.ùœ#include‘¹–Ž¦‘.ùœ#include‘¹–Ž¡‘.ùœ#include‘¹–Ž¦‘.ùœextern–¹–char“*xmalloc“();Ž¦‘.ùœ/*–¹–The“names“of“functions“that“actually“do“the“manipulation.“*/Ž¡‘.ùœint–¹–com_list“__P((char“*));Ž¡‘.ùœint–¹–com_view“__P((char“*));Ž¡‘.ùœint–¹–com_rename“__P((char“*));Ž¡‘.ùœint–¹–com_stat“__P((char“*));Ž¡‘.ùœint–¹–com_pwd“__P((char“*));Ž¡‘.ùœint–¹–com_delete“__P((char“*));Ž¡‘.ùœint–¹–com_help“__P((char“*));Ž¡‘.ùœint–¹–com_cd“__P((char“*));Ž¡‘.ùœint–¹–com_quit“__P((char“*));Ž¦‘.ùœ/*–¹–A“structure“which“contains“information“on“the“commands“this“programŽ¡‘=&^can–¹–understand.“*/Ž¦‘.ùœtypedef–¹–struct“{Ž¡‘8lÈchar–¹–*name;“/*“User“printable“name“of“the“function.“*/Ž¡‘8lÈrl_icpfunc_t–¹–*func;“/*“Function“to“call“to“do“the“job.“*/Ž¡‘8lÈchar–¹–*doc;“/*“Documentation“for“this“function.‘ s,*/Ž¡‘.ùœ}‘¹–COMMAND;Ž¦‘.ùœCOMMAND–¹–commands[]“=“{Ž¡‘8lÈ{–¹–"cd",“com_cd,“"Change“to“directory“DIR"“},Ž¡‘8lÈ{–¹–"delete",“com_delete,“"Delete“FILE"“},Ž¡‘8lÈ{–¹–"help",“com_help,“"Display“this“text"“},Ž¡‘8lÈ{–¹–"?",“com_help,“"Synonym“for“`help'"“},Ž¡‘8lÈ{–¹–"list",“com_list,“"List“files“in“DIR"“},Ž¡‘8lÈ{–¹–"ls",“com_list,“"Synonym“for“`list'"“},Ž¡‘8lÈ{–¹–"pwd",“com_pwd,“"Print“the“current“working“directory"“},Ž¡‘8lÈ{–¹–"quit",“com_quit,“"Quit“using“Fileman"“},Ž¡‘8lÈ{–¹–"rename",“com_rename,“"Rename“FILE“to“NEWNAME"“},Ž¡‘8lÈ{–¹–"stat",“com_stat,“"Print“out“statistics“on“FILE"“},Ž¡‘8lÈ{–¹–"view",“com_view,“"View“the“contents“of“FILE"“},Ž¡‘8lÈ{–¹–(char“*)NULL,“(rl_icpfunc_t“*)NULL,“(char“*)NULL“}Ž¡‘.ùœ};Ž¦‘.ùœ/*–¹–Forward“declarations.“*/Ž¡‘.ùœchar–¹–*stripwhite“();Ž¡‘.ùœCOMMAND–¹–*find_command“();Ž¦‘.ùœ/*–¹–The“name“of“this“program,“as“taken“from“argv[0].“*/Ž¡‘.ùœchar‘¹–*progname;Ž¦‘.ùœ/*–¹–When“non-zero,“this“means“the“user“is“done“using“this“program.“*/ŽŽŒ‹1Š÷Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—49ŽŽŽ ƒ3* ý ÌÖ‘.ùœÉint‘¹–done;Ž©‘.ùœchar‘¹–*Ž¤ ! €‘.ùœdupstr‘¹–(s)Ž¡‘F™Šint‘¹–s;Ž¡‘.ùœ{Ž¡‘8lÈchar‘¹–*r;Ž¦‘8lÈr–¹–=“xmalloc“(strlen“(s)“+“1);Ž¡‘8lÈstrcpy–¹–(r,“s);Ž¡‘8lÈreturn‘¹–(r);Ž¡‘.ùœ}Ž¦‘.ùœmain–¹–(argc,“argv)Ž¡‘F™Šint‘¹–argc;Ž¡‘F™Šchar‘¹–**argv;Ž¡‘.ùœ{Ž¡‘8lÈchar–¹–*line,“*s;Ž¦‘8lÈprogname–¹–=“argv[0];Ž¦‘8lÈinitialize_readline–¹–();“/*“Bind“our“completer.“*/Ž¦‘8lÈ/*–¹–Loop“reading“and“executing“lines“until“the“user“quits.“*/Ž¡‘8lÈfor–¹–(“;“done“==“0;“)Ž¡‘Aßô{Ž¡‘KS line–¹–=“readline“("FileMan:“");Ž¦‘KS if‘¹–(!line)Ž¡‘TÆLbreak;Ž¦‘KS /*–¹–Remove“leading“and“trailing“whitespace“from“the“line.Ž¡‘YâThen,–¹–if“there“is“anything“left,“add“it“to“the“history“listŽ¡‘Yâand–¹–execute“it.“*/Ž¡‘KS s–¹–=“stripwhite“(line);Ž¦‘KS if‘¹–(*s)Ž¡‘TÆL{Ž¡‘^9xadd_history‘¹–(s);Ž¡‘^9xexecute_line‘¹–(s);Ž¡‘TÆL}Ž¦‘KS free‘¹–(line);Ž¡‘Aßô}Ž¡‘8lÈexit‘¹–(0);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Execute“a“command“line.“*/Ž¡‘.ùœintŽ¡‘.ùœexecute_line‘¹–(line)Ž¡‘F™Šchar‘¹–*line;Ž¡‘.ùœ{Ž¡‘8lÈregister–¹–int“i;Ž¡‘8lÈCOMMAND‘¹–*command;Ž¡‘8lÈchar‘¹–*word;Ž¦‘8lÈ/*–¹–Isolate“the“command“word.“*/Ž¡‘8lÈi–¹–=“0;ŽŽŒ‹2”Ÿò‘GÝ50’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘8lÈÉwhile–¹–(line[i]“&&“whitespace“(line[i]))Ž¤ ! €‘Aßôi++;Ž¡‘8lÈword–¹–=“line“+“i;Ž©‘8lÈwhile–¹–(line[i]“&&“!whitespace“(line[i]))Ž¡‘Aßôi++;Ž¦‘8lÈif‘¹–(line[i])Ž¡‘Aßôline[i++]–¹–=“'\0';Ž¦‘8lÈcommand–¹–=“find_command“(word);Ž¦‘8lÈif‘¹–(!command)Ž¡‘Aßô{Ž¡‘KS fprintf–¹–(stderr,“"%s:“No“such“command“for“FileMan.\n",“word);Ž¡‘KS return‘¹–(-1);Ž¡‘Aßô}Ž¦‘8lÈ/*–¹–Get“argument“to“command,“if“any.“*/Ž¡‘8lÈwhile–¹–(whitespace“(line[i]))Ž¡‘Aßôi++;Ž¦‘8lÈword–¹–=“line“+“i;Ž¦‘8lÈ/*–¹–Call“the“function.“*/Ž¡‘8lÈreturn–¹–((*(command->func))“(word));Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Look“up“NAME“as“the“name“of“a“command,“and“return“a“pointer“to“thatŽ¡‘=&^command.‘ s,Return–¹–a“NULL“pointer“if“NAME“isn't“a“command“name.“*/Ž¡‘.ùœCOMMAND‘¹–*Ž¡‘.ùœfind_command‘¹–(name)Ž¡‘F™Šchar‘¹–*name;Ž¡‘.ùœ{Ž¡‘8lÈregister–¹–int“i;Ž¦‘8lÈfor–¹–(i“=“0;“commands[i].name;“i++)Ž¡‘Aßôif–¹–(strcmp“(name,“commands[i].name)“==“0)Ž¡‘KS return‘¹–(&commands[i]);Ž¦‘8lÈreturn–¹–((COMMAND“*)NULL);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Strip“whitespace“from“the“start“and“end“of“STRING.‘ s,Return“a“pointerŽ¡‘=&^into–¹–STRING.“*/Ž¡‘.ùœchar‘¹–*Ž¡‘.ùœstripwhite‘¹–(string)Ž¡‘F™Šchar‘¹–*string;Ž¡‘.ùœ{Ž¡‘8lÈregister–¹–char“*s,“*t;Ž¦‘8lÈfor–¹–(s“=“string;“whitespace“(*s);“s++)Ž¡‘Aßô;Ž¦‘8lÈif–¹–(*s“==“0)Ž¡‘Aßôreturn‘¹–(s);Ž¦‘8lÈt–¹–=“s“+“strlen“(s)“-“1;ŽŽŒ‹3˜úŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—51ŽŽŽ ƒ3* ý ÌÖ‘8lÈÉwhile–¹–(t“>“s“&&“whitespace“(*t))Ž¤ ! €‘Aßôt--;Ž¡‘8lÈ*++t–¹–=“'\0';Ž©‘8lÈreturn‘¹–s;Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–****************************************************************“*/Ž¡‘.ùœ/*’7ج*/Ž¡‘.ùœ/*‘U ŒInterface–¹–to“Readline“Completion‘K™`*/Ž¡‘.ùœ/*’7ج*/Ž¡‘.ùœ/*–¹–****************************************************************“*/Ž¦‘.ùœchar–¹–*command_generator“__P((const“char“*,“int));Ž¡‘.ùœchar–¹–**fileman_completion“__P((const“char“*,“int,“int));Ž¦‘.ùœ/*–¹–Tell“the“GNU“Readline“library“how“to“complete.‘ s,We“want“to“try“toŽ¡‘=&^complete–¹–on“command“names“if“this“is“the“first“word“in“the“line,“orŽ¡‘=&^on–¹–filenames“if“not.“*/Ž¡‘.ùœinitialize_readline‘¹–()Ž¡‘.ùœ{Ž¡‘8lÈ/*–¹–Allow“conditional“parsing“of“the“~/.inputrc“file.“*/Ž¡‘8lÈrl_readline_name–¹–=“"FileMan";Ž¦‘8lÈ/*–¹–Tell“the“completer“that“we“want“a“crack“first.“*/Ž¡‘8lÈrl_attempted_completion_function–¹–=“fileman_completion;Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Attempt“to“complete“on“the“contents“of“TEXT.‘ s,START“and“ENDŽ¡‘=&^bound–¹–the“region“of“rl_line_buffer“that“contains“the“word“toŽ¡‘=&^complete.› s,TEXT–¹–is“the“word“to“complete.˜We“can“use“the“entireŽ¡‘=&^contents–¹–of“rl_line_buffer“in“case“we“want“to“do“some“simpleŽ¡‘=&^parsing.‘ s,Returnthe–¹–array“of“matches,“or“NULL“if“there“aren't“any.“*/Ž¡‘.ùœchar‘¹–**Ž¡‘.ùœfileman_completion–¹–(text,“start,“end)Ž¡‘F™Šconst–¹–char“*text;Ž¡‘F™Šint–¹–start,“end;Ž¡‘.ùœ{Ž¡‘8lÈchar‘¹–**matches;Ž¦‘8lÈmatches–¹–=“(char“**)NULL;Ž¦‘8lÈ/*–¹–If“this“word“is“at“the“start“of“the“line,“then“it“is“a“commandŽ¡‘F™Što–¹–complete.‘ s,Otherwise“it“is“the“name“of“a“file“in“the“currentŽ¡‘F™Šdirectory.‘¹–*/Ž¡‘8lÈif–¹–(start“==“0)Ž¡‘Aßômatches–¹–=“rl_completion_matches“(text,“command_generator);Ž¦‘8lÈreturn‘¹–(matches);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Generator“function“for“command“completion.‘ s,STATE“lets“usŽ¡‘=&^know–¹–whether“to“start“from“scratch;“without“any“stateŽ¡‘=&^(i.e.–¹–STATE“==“0),“then“we“start“at“the“top“of“the“list.“*/Ž¡‘.ùœchar‘¹–*Ž¡‘.ùœcommand_generator–¹–(text,“state)Ž¡‘F™Šconst–¹–char“*text;Ž¡‘F™Šint‘¹–state;ŽŽŒ‹4ž°Ÿò‘GÝ52’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘.ùœÉ{Ž¤ ! €‘8lÈstatic–¹–int“list_index,“len;Ž¡‘8lÈchar‘¹–*name;Ž©‘8lÈ/*–¹–If“this“is“a“new“word“to“complete,“initialize“now.‘ s,ThisŽ¡‘F™Šincludes–¹–saving“the“length“of“TEXT“for“efficiency,“andŽ¡‘F™Šinitializing–¹–the“index“variable“to“0.“*/Ž¡‘8lÈif‘¹–(!state)Ž¡‘Aßô{Ž¡‘KS list_index–¹–=“0;Ž¡‘KS len–¹–=“strlen“(text);Ž¡‘Aßô}Ž¦‘8lÈ/*–¹–Return“the“next“name“which“partially“matches“from“theŽ¡‘F™Šcommand–¹–list.“*/Ž¡‘8lÈwhile–¹–(name“=“commands[list_index].name)Ž¡‘Aßô{Ž¡‘KS list_index++;Ž¦‘KS if–¹–(strncmp“(name,“text,“len)“==“0)Ž¡‘TÆLreturn‘¹–(dupstr(name));Ž¡‘Aßô}Ž¦‘8lÈ/*–¹–If“no“names“matched,“then“return“NULL.“*/Ž¡‘8lÈreturn–¹–((char“*)NULL);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–****************************************************************“*/Ž¡‘.ùœ/*’7ج*/Ž¡‘.ùœ/*‘l¬zFileMan‘¹–Commands‘’Ò*/Ž¡‘.ùœ/*’7ج*/Ž¡‘.ùœ/*–¹–****************************************************************“*/Ž¦‘.ùœ/*–¹–String“to“pass“to“system“().‘ s,This“is“for“the“LIST,“VIEW“and“RENAMEŽ¡‘=&^commands.‘¹–*/Ž¡‘.ùœstatic–¹–char“syscom[1024];Ž¦‘.ùœ/*–¹–List“the“file(s)“named“in“arg.“*/Ž¡‘.ùœcom_list‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈif‘¹–(!arg)Ž¡‘Aßôarg–¹–=“"";Ž¦‘8lÈsprintf–¹–(syscom,“"ls“-FClg“%s",“arg);Ž¡‘8lÈreturn–¹–(system“(syscom));Ž¡‘.ùœ}Ž¦‘.ùœcom_view‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈif–¹–(!valid_argument“("view",“arg))Ž¡‘Aßôreturn‘¹–1;Ž¦‘8lÈsprintf–¹–(syscom,“"more“%s",“arg);Ž¡‘8lÈreturn–¹–(system“(syscom));Ž¡‘.ùœ}ŽŽŒ‹5§jŸò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—53ŽŽŽ ƒ3* ý ÌÖ‘.ùœÉcom_rename‘¹–(arg)Ž¤ ! €‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈtoo_dangerous‘¹–("rename");Ž¡‘8lÈreturn‘¹–(1);Ž¡‘.ùœ}Ž©‘.ùœcom_stat‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈstruct–¹–stat“finfo;Ž¦‘8lÈif–¹–(!valid_argument“("stat",“arg))Ž¡‘Aßôreturn‘¹–(1);Ž¦‘8lÈif–¹–(stat“(arg,“&finfo)“==“-1)Ž¡‘Aßô{Ž¡‘KS perror‘¹–(arg);Ž¡‘KS return‘¹–(1);Ž¡‘Aßô}Ž¦‘8lÈprintf–¹–("Statistics“for“`%s':\n",“arg);Ž¦‘8lÈprintf–¹–("%s“has“%d“link%s,“and“is“%d“byte%s“in“length.\n",“arg,Ž¡‘^9xfinfo.st_nlink,Ž¡‘^9x(finfo.st_nlink–¹–==“1)“?“""“:“"s",Ž¡‘^9xfinfo.st_size,Ž¡‘^9x(finfo.st_size–¹–==“1)“?“""“:“"s");Ž¡‘8lÈprintf–¹–("Inode“Last“Change“at:“%s",“ctime“(&finfo.st_ctime));Ž¡‘8lÈprintf–¹–("‘Y„Last“access“at:“%s",“ctime“(&finfo.st_atime));Ž¡‘8lÈprintf–¹–("‘æXLast“modified“at:“%s",“ctime“(&finfo.st_mtime));Ž¡‘8lÈreturn‘¹–(0);Ž¡‘.ùœ}Ž¦‘.ùœcom_delete‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈtoo_dangerous‘¹–("delete");Ž¡‘8lÈreturn‘¹–(1);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Print“out“help“for“ARG,“or“for“all“of“the“commands“if“ARG“isŽ¡‘=&^not–¹–present.“*/Ž¡‘.ùœcom_help‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈregister–¹–int“i;Ž¡‘8lÈint–¹–printed“=“0;Ž¦‘8lÈfor–¹–(i“=“0;“commands[i].name;“i++)Ž¡‘Aßô{Ž¡‘KS if–¹–(!*arg“||“(strcmp“(arg,“commands[i].name)“==“0))Ž¡‘TÆL{Ž¡‘^9xprintf–¹–("%s\t\t%s.\n",“commands[i].name,“commands[i].doc);Ž¡‘^9xprinted++;Ž¡‘TÆL}Ž¡‘Aßô}ŽŽŒ‹6­§Ÿò‘GÝ54’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘8lÈÉif‘¹–(!printed)Ž¤ ! €‘Aßô{Ž¡‘KS printf–¹–("No“commands“match“`%s'.‘ s,Possibilties“are:\n",“arg);Ž©‘KS for–¹–(i“=“0;“commands[i].name;“i++)Ž¡‘TÆL{Ž¡‘^9x/*–¹–Print“in“six“columns.“*/Ž¡‘^9xif–¹–(printed“==“6)Ž¡‘g¬¤{Ž¡‘qÐprinted–¹–=“0;Ž¡‘qÐprintf‘¹–("\n");Ž¡‘g¬¤}Ž¦‘^9xprintf–¹–("%s\t",“commands[i].name);Ž¡‘^9xprinted++;Ž¡‘TÆL}Ž¦‘KS if‘¹–(printed)Ž¡‘TÆLprintf‘¹–("\n");Ž¡‘Aßô}Ž¡‘8lÈreturn‘¹–(0);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Change“to“the“directory“ARG.“*/Ž¡‘.ùœcom_cd‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;Ž¡‘.ùœ{Ž¡‘8lÈif–¹–(chdir“(arg)“==“-1)Ž¡‘Aßô{Ž¡‘KS perror‘¹–(arg);Ž¡‘KS return‘¹–1;Ž¡‘Aßô}Ž¦‘8lÈcom_pwd‘¹–("");Ž¡‘8lÈreturn‘¹–(0);Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Print“out“the“current“working“directory.“*/Ž¡‘.ùœcom_pwd‘¹–(ignore)Ž¡‘F™Šchar‘¹–*ignore;Ž¡‘.ùœ{Ž¡‘8lÈchar–¹–dir[1024],“*s;Ž¦‘8lÈs–¹–=“getcwd“(dir,“sizeof(dir)“-“1);Ž¡‘8lÈif–¹–(s“==“0)Ž¡‘Aßô{Ž¡‘KS printf–¹–("Error“getting“pwd:“%s\n",“dir);Ž¡‘KS return‘¹–1;Ž¡‘Aßô}Ž¦‘8lÈprintf–¹–("Current“directory“is“%s\n",“dir);Ž¡‘8lÈreturn‘¹–0;Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–The“user“wishes“to“quit“using“this“program.‘ s,Just“set“DONEŽ¡‘=&^non-zero.‘¹–*/Ž¡‘.ùœcom_quit‘¹–(arg)Ž¡‘F™Šchar‘¹–*arg;ŽŽŒ‹7³Ÿò‘GÝChapter–¦f2:‘ÝÝProgramming“with“GNU“Readline’Ê—55ŽŽŽ ƒ3* ý ÌÖ‘.ùœÉ{Ž¤ ! €‘8lÈdone–¹–=“1;Ž¡‘8lÈreturn‘¹–(0);Ž¡‘.ùœ}Ž©‘.ùœ/*–¹–Function“which“tells“you“that“you“can't“do“this.“*/Ž¡‘.ùœtoo_dangerous‘¹–(caller)Ž¡‘F™Šchar‘¹–*caller;Ž¡‘.ùœ{Ž¡‘8lÈfprintf‘¹–(stderr,Ž¡‘bó"%s:–¹–Too“dangerous“for“me“to“distribute.\n"Ž¡‘bócaller);Ž¡‘8lÈfprintf–¹–(stderr,“"Write“it“yourself.\n");Ž¡‘.ùœ}Ž¦‘.ùœ/*–¹–Return“non-zero“if“ARG“is“a“valid“argument“for“CALLER,Ž¡‘=&^else–¹–print“an“error“message“and“return“zero.“*/Ž¡‘.ùœintŽ¡‘.ùœvalid_argument–¹–(caller,“arg)Ž¡‘F™Šchar–¹–*caller,“*arg;Ž¡‘.ùœ{Ž¡‘8lÈif–¹–(!arg“||“!*arg)Ž¡‘Aßô{Ž¡‘KS fprintf–¹–(stderr,“"%s:“Argument“required.\n",“caller);Ž¡‘KS return‘¹–(0);Ž¡‘Aßô}Ž¦‘8lÈreturn‘¹–(1);Ž¡‘.ùœ}ŽŽŒ‹8¸¦Ÿò‘GÝ56’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3*Œ‹9»èŸò‘GÝAppMÞendix–¦fA:“Copš²!ying“This“Man˜ual’ý~57ŽŽŽ ƒ3* ý ÌÖ‘GëOApp‘Š=endix‘záAŽ‘~ïùCop›ÿuÂying–z³This“Man˜ualŽŽŸ/#בGëXA.1‘™GNU–f@F‘þ¦free“Dos3cumenŒÌtation“LicenseŽŽ¤ff’¨4AÝV‘ÿeersion–¦f1.2,“No•²!v“em“bMÞer‘¦f2002ŽŸ¸‘.ùœCop•²!yrigh“t‘±ž«‚cŽŽŽ‘¦fæ ŽŽŽŽ‘@Ý2000,2001,2002–¦fF›ÿeree“Soft•²!w“are–¦fF˜oundation,“Inc.Ž© 33‘.ùœ59–¦fT‘ÿeemple“Place,“Suite“330,“Boston,“MA‘LÌ02111-1307,“USAŽ¡‘.ùœEv•²!ery“one–¦fis“pMÞermitted“to“copš²!y“and“distribute“v˜erbatim“copiesŽ¦‘.ùœof–¦fthis“license“doMÞcumenš²!t,“but“c˜hanging“it“is“not“allo˜w˜ed.ŽŸ¸‘-0.Ž‘'¿«PREAMBLEŽ¤¨ö‘'¿«The–vQpurpMÞose“of“this“License“is“to“makš²!e“a“man˜ual,›ªLtextb•MÞo“ok,˜or–vQother“functional“andŽ¦‘'¿«useful–žïdoMÞcumenš²!t“áfree‘;öÝin“the“sense“of“freedom:‘Ú!to“assure“ev˜ery˜one“the“e ectiv˜e“freedomŽ¦‘'¿«to–Æ9cop²!y“and“redistribute“it,›Î.with“or“without“moMÞdifying“it,˜either“commercially“or“non-Ž¦‘'¿«commercially–ÿe.‘cÏSecondarily“,‘Hàthis–(aLicense“preservš²!es“for“the“author“and“publisher“a“w˜a˜yŽ¦‘'¿«to–W9get“credit“for“their“w²!ork,‘ƒmwhile“not“bšMÞeing“considered“resp˜onsible“for“mo˜di cationsŽ¦‘'¿«made–¦fb²!y“others.Ž¡‘'¿«This–È/License“is“a“kind“of“\cop•²!yleft",‘ô¡whic“h–È/means“that“deriv‘ÿdDativš²!e“w˜orks“of“the“doMÞcumen˜tŽ¦‘'¿«m•²!ust›õthemselv“es˜bMÞe˜free˜in˜the˜same˜sense.‘ ‰It˜complemen“ts˜the˜GNU‘ÙGeneral˜PublicŽ¦‘'¿«License,–¦fwhicš²!h“is“a“cop˜yleft“license“designed“for“free“soft˜w˜are.Ž¡‘'¿«W‘ÿee›‹#ha•²!v“e˜designed˜this˜License˜in˜order˜to˜use˜it˜for˜man“uals˜for˜free˜soft“w“are,‘—bMÞecauseŽ¦‘'¿«free›?soft•²!w“are˜needs˜free˜doMÞcumen“tation:‘³a˜free˜program˜should˜come˜with˜man“ualsŽ¦‘'¿«proš²!viding–urthe“same“freedoms“that“the“soft˜w˜are“doMÞes.‘ÍŒBut“this“License“is“not“limited“toŽ¦‘'¿«soft•²!w“are›­âman“uals;‘±¡it˜can˜bMÞe˜used˜for˜an“y˜textual˜w“ork,‘¯Âregardless˜of˜sub‘›»ject˜matter˜orŽ¦‘'¿«whether–Ç2it“is“published“as“a“prin²!ted“b•MÞo“ok.‘@AW‘ÿee–Ç2recommend“this“License“principally“forŽ¦‘'¿«w²!orks–¦fwhose“purpMÞose“is“instruction“or“reference.Ž¡‘-1.Ž‘'¿«APPLICABILITY–¦fAND“DEFINITIONSŽ¡‘'¿«This–Ì>License“applies“to“anš²!y“man˜ual“or“other“w˜ork,‘³in“an˜y“medium,‘³that“con˜tains“aŽ¦‘'¿«notice–ýplaced“bš²!y“the“cop˜yrigh˜t“holder“sa˜ying“it“can“bMÞe“distributed“under“the“termsŽ¦‘'¿«of–€†this“License.‘l=Sucš²!h“a“notice“gran˜ts“a“w˜orld-wide,‘·ro˜y˜alt˜y-free“license,‘·unlimited“inŽ¦‘'¿«duration,‘â ! to–o·use“that“wš²!ork“under“the“conditions“stated“herein.‘ ! 9ÏThe“\DoMÞcumen˜t",Ž¦‘'¿«bMÞeloš²!w,‘tkrefers–gìto“an˜y“suc˜h“man˜ual“or“w˜ork.‘É ! An˜y“mem˜bMÞer“of“the“public“is“a“licensee,‘tkandŽ¦‘'¿«is–ÿaddressed“as“\yš²!ou".‘¦@Y‘ÿeou“accept“the“license“if“y˜ou“cop˜y‘ÿe,‘ îmoMÞdify“or“distribute“the“w˜orkŽ¦‘'¿«in–¦fa“w•²!a“y–¦frequiring“pMÞermission“under“cop•²!yrigh“t‘¦fla“w.Ž¡‘'¿«A‘ ¦\MošMÞdi ed– ÀV‘ÿeersion"“of“the“Do˜cumenš²!t“means“an˜y“w˜ork“con˜taining“the“DoMÞcumen˜t“orŽ¦‘'¿«a–‚hpMÞortion“of“it,›¹heither“copied“v²!erbatim,˜or“with“moMÞdi cations“and/or“translated“in²!toŽ¦‘'¿«another‘¦flanguage.Ž¡‘'¿«A‘ž\Secondary–ÀSection"“is“a“named“appšMÞendix“or“a“fron²!t-matter“section“of“the“Do˜cumen²!tŽ¦‘'¿«that–Ž/deals“exclusivš²!ely“with“the“relationship“of“the“publishers“or“authors“of“the“DoMÞcumen˜tŽ¦‘'¿«to–z the“DoMÞcumenš²!t's“o˜v˜erall“sub‘›»ject“(or“to“related“matters)“and“con˜tains“nothing“thatŽ¦‘'¿«could–Ø®fall“directly“within“that“o•²!v“erall›Ø®sub‘›»ject.‘t¶(Th“us,‘%@if˜the˜DoMÞcumen“t˜is˜in˜part˜aŽ¦‘'¿«textb•MÞo“ok–Õ†of“mathematics,‘ÿLa“Secondary“Section“maš²!y“not“explain“an˜y“mathematics.)‘˜=TheŽ¦‘'¿«relationship–GÞcould“bMÞe“a“matter“of“historical“connection“with“the“sub‘›»ject“or“with“relatedŽŽŒ‹:¼HŸò‘GÝ58’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘'¿«matters,›jor–B÷of“legal,˜commercial,˜philosophical,˜ethical“or“pšMÞolitical“p˜osition“regardingŽ¤ 33‘'¿«them.Ž©ø¯‘'¿«The›r\In•²!v‘ÿdDarian“t˜Sections"˜are˜certain˜Secondary˜Sections˜whose˜titles˜are˜designated,‘0ÖasŽ¡‘'¿«bšMÞeing–2Dthose“of“In•²!v‘ÿdDarian“t–2DSections,‘I~in“the“notice“that“sa²!ys“that“the“Do˜cumen²!t“is“releasedŽ¡‘'¿«under–S5this“License.‘Â"If“a“section“došMÞes“not“ t“the“ab˜o•²!v“e–S5de nition“of“Secondary“then“it“isŽ¡‘'¿«not›Óallo•²!w“ed˜to˜bMÞe˜designated˜as˜In“v‘ÿdDarian“t.‘eSThe˜DoMÞcumen“t˜ma“y˜con“tain˜zero˜In“v‘ÿdDarian“tŽ¡‘'¿«Sections.‘¢ÄIf–õthe“DošMÞcumen²!t“do˜es“not“idenš²!tify“an˜y“In˜v‘ÿdDarian˜t“Sections“then“there“are“none.Ž¦‘'¿«The›f­\Co•²!v“er˜T–ÿeexts"˜are˜certain˜short˜passages˜of˜text˜that˜are˜listed,‘–¾as˜F“ron•²!t-Co“v“erŽ¡‘'¿«T›ÿeexts–-or“Bac•²!k-Co“v“er–-T˜exts,‘"8in“the“notice“that“saš²!ys“that“the“DoMÞcumen˜t“is“released“underŽ¡‘'¿«this›’License.‘¯AA‘nF‘ÿeron•²!t-Co“v“er˜T‘ÿeext˜ma“y˜bMÞe˜at˜most˜5˜w“ords,‘6‰and˜a˜Bac“k-Co“v“er˜T‘ÿeext˜ma“yŽ¡‘'¿«bMÞe–¦fat“most“25“w²!ords.Ž¦‘'¿«A‘C¦\T‘ÿeransparen•²!t"›CÎcop“y˜of˜the˜DoMÞcumen“t˜means˜a˜mac“hine-readable˜cop“y‘ÿe,‘k(represen“tedŽ¡‘'¿«in–Jma“format“whose“spMÞeci cation“is“a²!v‘ÿdDailable“to“the“general“public,‘sothat“is“suitable“forŽ¡‘'¿«revising–Îàthe“doMÞcumenš²!t“straigh˜tforw˜ardly“with“generic“text“editors“or“(for“images“com-Ž¡‘'¿«pMÞosed–ÚÃof“pixels)“generic“painš²!t“programs“or“(for“dra˜wings)“some“widely“a˜v‘ÿdDailable“dra˜wingŽ¡‘'¿«editor,‘…úand–}ßthat“is“suitable“for“input“to“text“formatters“or“for“automatic“translation“toŽ¡‘'¿«a–9Ov‘ÿdDarietš²!y“of“formats“suitable“for“input“to“text“formatters.‘¹€A‘93cop˜y“made“in“an“otherwiseŽ¡‘'¿«T‘ÿeransparen²!t–„æ le“format“whose“markup,›¼…or“absence“of“markup,˜has“bMÞeen“arranged“toŽ¡‘'¿«th•²!w“art–0ûor“discourage“subsequenš²!t“moMÞdi cation“b˜y“readers“is“not“T‘ÿeransparen˜t.‘¶ºAn“imageŽ¡‘'¿«format– Éis“not“T‘ÿeransparenš²!t“if“used“for“an˜y“substan˜tial“amoun˜t“of“text.‘MA‘ ©cop˜y“that“isŽ¡‘'¿«not–¦f\T‘ÿeransparen²!t"“is“called“\Opaque".Ž¦‘'¿«Examples–cXof“suitable“formats“for“T‘ÿeransparen²!t“copies“include“plain“ãasci>Ki“ÝwithoutŽ¡‘'¿«markup,› 'T‘ÿeexinfo–Ä›input“format,˜LaT‘þ,³Ÿ[wEŽ‘B X‘ÄQinput“format,˜ãsgml“Ýor“ãxml“Ýusing“a“publiclyŽ¡‘'¿«a²!v‘ÿdDailable–ÉeãdtdÝ,›Ò%and“standard-conforming“simple“ãhtmlÝ,˜P²!ostScript“or“ãpdf“Ýdesigned“forŽ¡‘'¿«hš²!uman––ëmoMÞdi cation.‘¯mExamples“of“transparen˜t“image“formats“include“ãpngÝ,‘Ó ãxÁ´cf“ÝandŽ¡‘'¿«ãjpgÝ.‘©QOpaque–”âformats“include“proprietary“formats“that“can“bMÞe“read“and“edited“onlyŽ¡‘'¿«bš²!y–¼Mproprietary“w˜ord“proMÞcessors,‘Æãsgml“Ýor“ãxml“Ýfor“whic˜h“the“ãdtd“Ýand/or“proMÞcessingŽ¡‘'¿«toMÞols–¶_are“not“generally“aš²!v‘ÿdDailable,‘º]and“the“mac˜hine-generated“ãhtmlÝ,‘º]P˜ostScript“or“ãpdfŽ¡‘'¿«ÝproMÞduced–¦fbš²!y“some“w˜ord“prošMÞcessors“for“output“purp˜oses“only‘ÿe.Ž¦‘'¿«The–Ü\Title“Pš²!age"“means,‘<ùfor“a“prin˜ted“b•MÞo“ok,›<ùthe–Ütitle“page“itself,˜plus“sucš²!h“follo˜wingŽ¡‘'¿«pages–RÃas“are“needed“to“hold,–c}legibly‘ÿe,“the–RÃmaterial“this“License“requires“to“appMÞear“in“theŽ¡‘'¿«title–1.page.‘¶ÊF‘ÿeor“wš²!orks“in“formats“whic˜h“do“not“ha˜v˜e“an˜y“title“page“as“suc˜h,‘HŸ\Title“P˜age"Ž¡‘'¿«means–­Žthe“text“near“the“most“prominenš²!t“appMÞearance“of“the“w˜ork's“title,‘¯Xpreceding“theŽ¡‘'¿«bšMÞeginning–¦fof“the“b˜o˜dy“of“the“text.Ž¦‘'¿«A›ísection–ò\En²!titled“XYZ"˜means“a“named“subunit“of“the“DoMÞcumen²!t“whose“title“eitherŽ¡‘'¿«is–Uªprecisely“XYZ›U•or“con²!tains“XYZ˜in“parenš²!theses“follo˜wing“text“that“translates“XYZ‘U•inŽ¡‘'¿«another–þ¯language.‘¥ö(Here“XYZ‘þ„stands“for“a“spšMÞeci c“section“name“men²!tioned“b˜elo•²!w,‘ :suc“hŽ¡‘'¿«as›aa\Ac•²!kno“wledgemen“ts",–o/\Dedications",“\Endorsemen²!ts",“or˜\History".)‘ÆÛT‘ÿeo˜\Preserv²!eŽ¡‘'¿«the–›Title"“of“sucš²!h“a“section“when“y˜ou“mošMÞdify“the“Do˜cumen²!t“means“that“it“remains“aŽ¡‘'¿«section–¦f\En²!titled“XYZ"“according“to“this“de nition.Ž¦‘'¿«The–SuDoMÞcumenš²!t“ma˜y“include“W‘ÿearran˜t˜y“Disclaimers“next“to“the“notice“whic˜h“states“thatŽ¡‘'¿«this–¹License“applies“to“the“DoMÞcumenš²!t.‘×These“W‘ÿearran˜t˜y“Disclaimers“are“considered“toŽ¡‘'¿«bMÞe–„ýincluded“bš²!y“reference“in“this“License,‘¼£but“only“as“regards“disclaiming“w˜arran˜ties:Ž¡‘'¿«anš²!y–nother“implication“that“these“W‘ÿearran˜t˜y“Disclaimers“ma˜y“ha˜v˜e“is“v˜oid“and“has“noŽ¡‘'¿«e ect–¦fon“the“meaning“of“this“License.ŽŽŒ‹;ËCŸò‘GÝAppMÞendix–¦fA:“Copš²!ying“This“Man˜ual’ý~59ŽŽŽ ƒ3* ý ÌÖ‘-2.Ž‘'¿«VERBA‘ÿeTIM‘¦fCOPYINGŽ©™™‘'¿«Y‘ÿeou–’ùmaš²!y“cop˜y“and“distribute“the“DoMÞcumen˜t“in“an˜y“medium,‘Îeither“commercially“orŽ¤ 33‘'¿«noncommercially‘ÿe,›zªpro²!vided–that“this“License,˜the“cop•²!yrigh“t–notices,˜and“the“licenseŽ¡‘'¿«notice–Ksaš²!ying“this“License“applies“to“the“DoMÞcumen˜t“are“reproMÞduced“in“all“copies,‘t7andŽ¡‘'¿«that–1'yš²!ou“add“no“other“conditions“whatsoMÞev˜er“to“those“of“this“License.‘¶ÈY‘ÿeou“ma˜y“not“useŽ¡‘'¿«tecš²!hnical–ò“measures“to“obstruct“or“con˜trol“the“reading“or“further“cop˜ying“of“the“copiesŽ¡‘'¿«y•²!ou›òÇmak“e˜or˜distribute.‘¡þHo“w“ev“er,‘´y“ou˜ma“y˜accept˜compMÞensation˜in˜exc“hange˜for˜copies.Ž¡‘'¿«If–Þyš²!ou“distribute“a“large“enough“n˜um˜bMÞer“of“copies“y˜ou“m˜ust“also“follo˜w“the“conditionsŽ¡‘'¿«in–¦fsection“3.Ž¦‘'¿«Y‘ÿeou–}ìmaš²!y“also“lend“copies,‘¹7under“the“same“conditions“stated“abMÞo˜v˜e,‘¹7and“y˜ou“ma˜y“publiclyŽ¡‘'¿«displa²!y‘¦fcopies.Ž¦‘-3.Ž‘'¿«COPYING–¦fIN“QUANTITYŽ¦‘'¿«If–Ãyš²!ou“publish“prin˜ted“copies“(or“copies“in“media“that“commonly“ha˜v˜e“prin˜ted“co˜v˜ers)“ofŽ¡‘'¿«the‘Ñ.DošMÞcumen•²!t,‘Ûàn“um“b˜ering–Ñ.more“than“100,‘Ûàand“the“Do˜cumen²!t's“license“notice“requiresŽ¡‘'¿«Co•²!v“er›ÜT‘ÿeexts,‘<ùy“ou˜m“ust˜enclose˜the˜copies˜in˜co“v“ers˜that˜carry–ÿe,‘<ùclearly˜and˜legibly“,‘<ùallŽ¡‘'¿«these›´@Co•²!v“er˜T–ÿeexts:‘ù‘F“ron•²!t-Co“v“er˜T‘ÿeexts˜on˜the˜fron“t˜co“v“er,‘÷¶and˜Bac“k-Co“v“er˜T‘ÿeexts˜onŽ¡‘'¿«the–öbacš²!k“co˜v˜er.‘Ñ Both“co˜v˜ers“m˜ust“also“clearly“and“legibly“iden˜tify“y˜ou“as“the“publisherŽ¡‘'¿«of–,these“copies.‘H.The“fronš²!t“co˜v˜er“m˜ust“presen˜t“the“full“title“with“all“w˜ords“of“the“titleŽ¡‘'¿«equally–³xprominenš²!t“and“visible.‘Y‘ÿeou“ma˜y“add“other“material“on“the“co˜v˜ers“in“addition.Ž¡‘'¿«Copš²!ying–Y4with“c˜hanges“limited“to“the“co˜v˜ers,‘…ças“long“as“they“preserv˜e“the“title“of“theŽ¡‘'¿«DošMÞcumen²!t–uand“satisfy“these“conditions,‘¨Åcan“b˜e“treated“as“vš²!erbatim“cop˜ying“in“otherŽ¡‘'¿«respMÞects.Ž¦‘'¿«If–î|the“required“texts“for“either“co•²!v“er–î|are“toMÞo“vš²!oluminous“to“ t“legibly‘ÿe,‘‚y˜ou“should“putŽ¡‘'¿«the–ò rst“ones“listed“(as“manš²!y“as“ t“reasonably)“on“the“actual“co˜v˜er,‘ùand“con˜tin˜ue“theŽ¡‘'¿«rest–¦fonš²!to“adjacen˜t“pages.Ž¦‘'¿«If–?|yš²!ou“publish“or“distribute“Opaque“copies“of“the“DoMÞcumen˜t“n˜um˜bMÞering“more“than“100,Ž¡‘'¿«y•²!ou›\3m“ust˜either˜include˜a˜mac“hine-readable˜T‘ÿeransparen“t˜cop“y˜along˜with˜eac“h˜OpaqueŽ¡‘'¿«copš²!y‘ÿe,‘[>or–7state“in“or“with“eac˜h“Opaque“cop˜y“a“computer-net˜w˜ork“loMÞcation“from“whic˜hŽ¡‘'¿«the–éSgeneral“net•²!w“ork-using–éSpublic“has“access“to“doš²!wnload“using“public-standard“net˜w˜orkŽ¡‘'¿«protoMÞcols–¬=a“complete“T‘ÿeransparenš²!t“cop˜y“of“the“DoMÞcumen˜t,‘í³free“of“added“material.‘ïcIfŽ¡‘'¿«yš²!ou–ªuse“the“latter“option,‘êùy˜ou“m˜ust“tak˜e“reasonably“pruden˜t“steps,‘êùwhen“y˜ou“bMÞeginŽ¡‘'¿«distribution–—lof“Opaque“copies“in“quan•²!tit“y›ÿe,‘Ó®to–—lensure“that“this“T˜ransparenš²!t“cop˜y“willŽ¡‘'¿«remain– Cthš²!us“accessible“at“the“stated“loMÞcation“un˜til“at“least“one“y˜ear“after“the“last“timeŽ¡‘'¿«yš²!ou–k‘distribute“an“Opaque“cop˜y“(directly“or“through“y˜our“agen˜ts“or“retailers)“of“thatŽ¡‘'¿«edition–¦fto“the“public.Ž¦‘'¿«It–&Nis“requested,›FHbut“not“required,˜that“yš²!ou“con˜tact“the“authors“of“the“DoMÞcumen˜t“w˜ellŽ¡‘'¿«bMÞefore–oÅredistributing“anš²!y“large“n˜um˜bMÞer“of“copies,‘z²to“giv˜e“them“a“c˜hance“to“pro˜vide“y˜ouŽ¡‘'¿«with–¦fan“upšMÞdated“v²!ersion“of“the“Do˜cumen²!t.Ž¦‘-4.Ž‘'¿«MODIFICA‘ÿeTIONSŽ¦‘'¿«Y‘ÿeou–*maš²!y“cop˜y“and“distribute“a“MošMÞdi ed“V‘ÿeersion“of“the“Do˜cumen²!t“under“the“conditionsŽ¡‘'¿«of–…šsections“2“and“3“abšMÞo•²!v“e,‘¿]pro“vided–…šthat“y²!ou“release“the“Mo˜di ed“V‘ÿeersion“under“preciselyŽ¡‘'¿«this–{ÞLicense,‘„`with“the“MošMÞdi ed“V‘ÿeersion“ lling“the“role“of“the“Do˜cumen•²!t,‘„`th“us‘{ÞlicensingŽ¡‘'¿«distribution–¸and“mošMÞdi cation“of“the“Mo˜di ed“V‘ÿeersion“to“who˜ev²!er“p˜ossesses“a“cop²!y“ofŽ¡‘'¿«it.‘ÝÝIn–¦faddition,“yš²!ou“m˜ust“do“these“things“in“the“MoMÞdi ed“V‘ÿeersion:ŽŽŒ‹<Ý`Ÿò‘GÝ60’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘*òÄA.Ž‘=nUse–ípin“the“Title“Pš²!age“(and“on“the“co˜v˜ers,‘ÿ2if“an˜y)“a“title“distinct“from“that“of“theŽ¤ 33‘=nDoMÞcumenš²!t,‘+and–ˆfrom“those“of“previous“v˜ersions“(whic˜h“should,‘+if“there“w˜ere“an˜y‘ÿe,Ž¡‘=nbšMÞe–Âølisted“in“the“History“section“of“the“Do˜cumenš²!t).‘3“Y‘ÿeou“ma˜y“use“the“same“title“asŽ¡‘=na–¦fprevious“vš²!ersion“if“the“original“publisher“of“that“v˜ersion“giv˜es“pMÞermission.Ž©¬Í‘+gB.Ž‘=nList–ª\on“the“Title“P²!age,›«Yas“authors,˜one“or“more“pšMÞersons“or“en²!tities“resp˜onsible“forŽ¡‘=nauthorship–"of“the“mošMÞdi cations“in“the“Mo˜di ed“V‘ÿeersion,‘<|together“with“at“least“ v²!eŽ¡‘=nof–߸the“principal“authors“of“the“DoMÞcumenš²!t“(all“of“its“principal“authors,‘tif“it“has“few˜erŽ¡‘=nthan–¦f vš²!e),“unless“they“release“y˜ou“from“this“requiremen˜t.Ž¦‘+@¢C.Ž‘=nState–±Óon“the“Title“page“the“name“of“the“publisher“of“the“MoMÞdi ed“V‘ÿeersion,‘´®as“theŽ¡‘=npublisher.Ž¦‘*ËÕD.Ž‘=nPreservš²!e–¦fall“the“cop˜yrigh˜t“notices“of“the“DoMÞcumen˜t.Ž¦‘+µoE.Ž‘=nAdd–Äean“appropriate“cop•²!yrigh“t–Äenotice“for“yš²!our“moMÞdi cations“adjacen˜t“to“the“otherŽ¡‘=ncop•²!yrigh“t‘¦fnotices.Ž¦‘,LF.Ž‘=nInclude,›hSimmediately–XÎafter“the“cop•²!yrigh“t–XÎnotices,˜a“license“notice“giving“the“publicŽ¡‘=npšMÞermission–ïËto“use“the“Mo˜di ed“V‘ÿeersion“under“the“terms“of“this“License,‘Pin“the“formŽ¡‘=nshoš²!wn–¦fin“the“Addendum“bMÞelo˜w.Ž¦‘*‘nG.Ž‘=nPreservš²!e–¼min“that“license“notice“the“full“lists“of“In˜v‘ÿdDarian˜t“Sections“and“required“Co˜v˜erŽ¡‘=nT‘ÿeexts–¦fgivš²!en“in“the“DoMÞcumen˜t's“license“notice.Ž¦‘*òÄH.Ž‘=nInclude–¦fan“unaltered“cop²!y“of“this“License.Ž¦‘/4çI.Ž‘=nPreservš²!e–Ú†the“section“En˜titled“\History",‘çŽPreserv˜e“its“Title,‘çŽand“add“to“it“an“itemŽ¡‘=nstating–_ at“least“the“title,–mQy²!ear,“new›_ authors,“and˜publisher˜of˜the˜MoMÞdi ed˜V‘ÿeersionŽ¡‘=nas–ÄXgivš²!en“on“the“Title“P˜age.‘7²If“there“is“no“section“En˜titled“\History"“in“the“DoMÞcu-Ž¡‘=nmen²!t,›O#create–-done“stating“the“title,˜y²!ear,˜authors,˜and“publisher“of“the“DoMÞcumen²!tŽ¡‘=nas–Wgivš²!en“on“its“Title“P˜age,‘ƒGthen“add“an“item“describing“the“MoMÞdi ed“V‘ÿeersion“asŽ¡‘=nstated–¦fin“the“previous“sen²!tence.Ž¦‘-ˆ¢J.Ž‘=nPreservš²!e–æthe“net˜w˜ork“loMÞcation,‘õúif“an˜y‘ÿe,‘õúgiv˜en“in“the“DoMÞcumen˜t“for“public“access“toŽ¡‘=na–½…T‘ÿeransparenš²!t“cop˜y“of“the“DoMÞcumen˜t,‘ÃMand“lik˜ewise“the“net˜w˜ork“loMÞcations“giv˜en“inŽ¡‘=nthe–Í„DoMÞcumenš²!t“for“previous“v˜ersions“it“w˜as“based“on.‘S6These“ma˜y“bMÞe“placed“in“theŽ¡‘=n\History"–8section.‘¦ÎY‘ÿeou“maš²!y“omit“a“net˜w˜ork“loMÞcation“for“a“w˜ork“that“w˜as“publishedŽ¡‘=nat–Kleast“four“y²!ears“bšMÞefore“the“Do˜cumen²!t“itself,‘t?or“if“the“original“publisher“of“theŽ¡‘=nvš²!ersion–¦fit“refers“to“giv˜es“pMÞermission.Ž¦‘*¤åK.Ž‘=nF‘ÿeor–Ùranš²!y“section“En˜titled“\Ac˜kno˜wledgemen˜ts"“or“\Dedications",‘pPreserv˜e“the“TitleŽ¡‘=nof–/Rthe“section,‘G#and“preservš²!e“in“the“section“all“the“substance“and“tone“of“eac˜h“of“theŽ¡‘=ncon•²!tributor›¦fac“kno“wledgemen“ts˜and/or˜dedications˜giv“en˜therein.Ž¦‘,Q*L.Ž‘=nPreservš²!e–?Ôall“the“In˜v‘ÿdDarian˜t“Sections“of“the“DoMÞcumen˜t,‘f/unaltered“in“their“text“andŽ¡‘=nin–PÜtheir“titles.‘Ý@Section“n•²!um“bMÞers–PÜor“the“equiv‘ÿdDalen²!t“are“not“considered“part“of“theŽ¡‘=nsection‘¦ftitles.Ž¦‘)M.Ž‘=nDelete–°5anš²!y“section“En˜titled“\Endorsemen˜ts".‘ûJSuc˜h“a“section“ma˜y“not“bMÞe“includedŽ¡‘=nin–¦fthe“MoMÞdi ed“V‘ÿeersion.Ž¦‘*òÄN.Ž‘=nDo–g!not“retitle“anš²!y“existing“section“to“bMÞe“En˜titled“\Endorsemen˜ts"“or“to“con ict“inŽ¡‘=ntitle–¦fwith“anš²!y“In˜v‘ÿdDarian˜t“Section.Ž¦‘*¤åO.Ž‘=nPreserv•²!e›¦fan“y˜W‘ÿearran“t“y˜Disclaimers.ŽŸ&g‘'¿«If–Øthe“MošMÞdi ed“V‘ÿeersion“includes“new“fron²!t-matter“sections“or“app˜endices“that“qualifyŽ¡‘'¿«as–XSecondary“Sections“and“conš²!tain“no“material“copied“from“the“DoMÞcumen˜t,‘gµy˜ou“ma˜y“atŽŽŒ‹=îŸò‘GÝAppMÞendix–¦fA:“Copš²!ying“This“Man˜ual’ý~61ŽŽŽ ƒ3* ý ÌÖ‘'¿«yš²!our–ãkoption“designate“some“or“all“of“these“sections“as“in˜v‘ÿdDarian˜t.‘”íT‘ÿeo“do“this,‘ò­add“theirŽ¤ 33‘'¿«titles–@«to“the“list“of“In•²!v‘ÿdDarian“t–@«Sections“in“the“MoMÞdi ed“V‘ÿeersion's“license“notice.‘¬¬TheseŽ¡‘'¿«titles–¦fmš²!ust“bMÞe“distinct“from“an˜y“other“section“titles.Ž©× ! ‘'¿«Y‘ÿeou–pmaš²!y“add“a“section“En˜titled“\Endorsemen˜ts",‘s²pro˜vided“it“con˜tains“nothing“butŽ¡‘'¿«endorsemenš²!ts–‘of“y˜our“MoMÞdi ed“V‘ÿeersion“b˜y“v‘ÿdDarious“parties|for“example,‘•Ystatemen˜ts“ofŽ¡‘'¿«pšMÞeer–D review“or“that“the“text“has“b˜een“appro•²!v“ed›D b“y˜an˜organization˜as˜the˜authoritativ“eŽ¡‘'¿«de nition–¦fof“a“standard.Ž¦‘'¿«Y‘ÿeou–f,maš²!y“add“a“passage“of“up“to“ v˜e“w˜ords“as“a“F‘ÿeron˜t-Co˜v˜er“T‘ÿeext,‘sand“a“passage“of“upŽ¡‘'¿«to–@25“wš²!ords“as“a“Bac˜k-Co˜v˜er“T‘ÿeext,‘Tìto“the“end“of“the“list“of“Co˜v˜er“T‘ÿeexts“in“the“MoMÞdi edŽ¡‘'¿«V›ÿeersion.‘Õ+Only–N+one“passage“of“F˜ron•²!t-Co“v“er–N+T˜ext“and“one“of“Bac•²!k-Co“v“er–N+T˜ext“ma²!y“bMÞeŽ¡‘'¿«added–NÁbš²!y“(or“through“arrangemen˜ts“made“b˜y)“an˜y“one“en˜tit˜y‘ÿe.‘À¦If“the“DoMÞcumen˜t“alreadyŽ¡‘'¿«includes–Éa“co•²!v“er–Étext“for“the“same“co•²!v“er,‘/!previously–Éadded“bš²!y“y˜ou“or“b˜y“arrangemen˜tŽ¡‘'¿«made–:Çbš²!y“the“same“en˜tit˜y“y˜ou“are“acting“on“bMÞehalf“of,‘_ßy˜ou“ma˜y“not“add“another;‘„÷butŽ¡‘'¿«y•²!ou›)ma“y˜replace˜the˜old˜one,‘2on˜explicit˜pMÞermission˜from˜the˜previous˜publisher˜thatŽ¡‘'¿«added–¦fthe“old“one.Ž¦‘'¿«The–^author(s)“and“publisher(s)“of“the“DoMÞcumenš²!t“do“not“b˜y“this“License“giv˜e“pMÞermissionŽ¡‘'¿«to–¤juse“their“names“for“publicitš²!y“for“or“to“assert“or“imply“endorsemen˜t“of“an˜y“MoMÞdi edŽ¡‘'¿«V‘ÿeersion.Ž¦‘-5.Ž‘'¿«COMBINING‘¦fDOCUMENTSŽ¦‘'¿«Y‘ÿeou–¦Çmaš²!y“com˜bine“the“DoMÞcumen˜t“with“other“doMÞcumen˜ts“released“under“this“License,Ž¡‘'¿«under–—sthe“terms“de ned“in“section“4“abšMÞo•²!v“e–—sfor“mo˜di ed“v•²!ersions,‘Ó¶pro“vided–—sthat“y²!ouŽ¡‘'¿«include– in“the“comš²!bination“all“of“the“In˜v‘ÿdDarian˜t“Sections“of“all“of“the“original“doMÞcumen˜ts,Ž¡‘'¿«unmoMÞdi ed,‘L3and–5¦list“them“all“as“In•²!v‘ÿdDarian“t–5¦Sections“of“yš²!our“com˜bined“w˜ork“in“its“licenseŽ¡‘'¿«notice,–¦fand“that“yš²!ou“preserv˜e“all“their“W‘ÿearran˜t˜y“Disclaimers.Ž¦‘'¿«The–¢@comš²!bined“w˜ork“need“only“con˜tain“one“cop˜y“of“this“License,‘£and“m˜ultiple“iden˜ticalŽ¡‘'¿«In•²!v‘ÿdDarian“t–æÝSections“maš²!y“bMÞe“replaced“with“a“single“cop˜y‘ÿe.‘ŸBIf“there“are“m˜ultiple“In˜v‘ÿdDarian˜tŽ¡‘'¿«Sections–6Çwith“the“same“name“but“di erenš²!t“con˜ten˜ts,‘Mmak˜e“the“title“of“eac˜h“suc˜h“sectionŽ¡‘'¿«unique–bbš²!y“adding“at“the“end“of“it,‘1!in“paren˜theses,‘1!the“name“of“the“original“author“orŽ¡‘'¿«publisher–of“that“section“if“knoš²!wn,‘!­or“else“a“unique“n˜um˜bMÞer.‘¦Mak˜e“the“same“adjustmen˜tŽ¡‘'¿«to–î‡the“section“titles“in“the“list“of“In•²!v‘ÿdDarian“t–î‡Sections“in“the“license“notice“of“the“com²!binedŽ¡‘'¿«w²!ork.Ž¦‘'¿«In–ö"the“com•²!bination,‘Jy“ou›ö"m“ust˜com“bine˜an“y˜sections˜En“titled˜\History"˜in˜the˜v‘ÿdDari-Ž¡‘'¿«ous–ÜÛoriginal“doMÞcumenš²!ts,‘êxforming“one“section“En˜titled“\History";‘ølik˜ewise“com˜bine“an˜yŽ¡‘'¿«sections–ÑEnš²!titled“\Ac˜kno˜wledgemen˜ts",‘Û¿and“an˜y“sections“En˜titled“\Dedications".‘]çY‘ÿeouŽ¡‘'¿«mš²!ust–¦fdelete“all“sections“En˜titled“\Endorsemen˜ts."Ž¦‘-6.Ž‘'¿«COLLECTIONS–¦fOF“DOCUMENTSŽ¦‘'¿«Y‘ÿeou–Ò¤maš²!y“mak˜e“a“collection“consisting“of“the“DoMÞcumen˜t“and“other“doMÞcumen˜ts“releasedŽ¡‘'¿«under–this“License,‘sÚand“replace“the“individual“copies“of“this“License“in“the“v‘ÿdDariousŽ¡‘'¿«doMÞcumenš²!ts–Dwith“a“single“cop˜y“that“is“included“in“the“collection,‘yºpro˜vided“that“y˜ouŽ¡‘'¿«folloš²!w–t”the“rules“of“this“License“for“v˜erbatim“cop˜ying“of“eac˜h“of“the“doMÞcumen˜ts“in“allŽ¡‘'¿«other‘¦frespMÞects.Ž¦‘'¿«Y‘ÿeou–Æ=maš²!y“extract“a“single“doMÞcumen˜t“from“suc˜h“a“collection,‘Î3and“distribute“it“individu-Ž¡‘'¿«ally–4under“this“License,‘Wmproš²!vided“y˜ou“insert“a“cop˜y“of“this“License“in˜to“the“extractedŽ¡‘'¿«doMÞcumen•²!t,‘ùøand›éAfollo“w˜this˜License˜in˜all˜other˜respMÞects˜regarding˜v“erbatim˜cop“ying˜ofŽ¡‘'¿«that‘¦fdoMÞcumen²!t.ŽŽŒ‹>ýõŸò‘GÝ62’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘-7.Ž‘'¿«Aš²!GGREGA‘ÿeTION–¦fWITH“INDEPENDENT“W˜ORKSŽ©™™‘'¿«A‘]Æcompilation–]Øof“the“DoMÞcumenš²!t“or“its“deriv‘ÿdDativ˜es“with“other“separate“and“indepMÞenden˜tŽ¤ 33‘'¿«doMÞcumenš²!ts–ÿhor“w˜orks,‘©in“or“on“a“v˜olume“of“a“storage“or“distribution“medium,‘©is“calledŽ¡‘'¿«an– \aggregate"“if“the“cop•²!yrigh“t– resulting“from“the“compilation“is“not“used“to“limit“theŽ¡‘'¿«legal–1 righš²!ts“of“the“compilation's“users“bMÞey˜ond“what“the“individual“w˜orks“pMÞermit.‘¶¾WhenŽ¡‘'¿«the–QÝDošMÞcumen²!t“is“included“an“aggregate,‘bÅthis“License“do˜es“not“apply“to“the“other“w²!orksŽ¡‘'¿«in–¦fthe“aggregate“whicš²!h“are“not“themselv˜es“deriv‘ÿdDativ˜e“w˜orks“of“the“DoMÞcumen˜t.Ž¦‘'¿«If–»Vthe“Co•²!v“er–»VT‘ÿeext“requiremenš²!t“of“section“3“is“applicable“to“these“copies“of“the“DoMÞcumen˜t,Ž¡‘'¿«then–°Dif“the“DoMÞcumenš²!t“is“less“than“one“half“of“the“en˜tire“aggregate,‘á~the“DoMÞcumen˜t's“Co˜v˜erŽ¡‘'¿«T‘ÿeexts–0maš²!y“bMÞe“placed“on“co˜v˜ers“that“brac˜k˜et“the“DoMÞcumen˜t“within“the“aggregate,‘G°or“theŽ¡‘'¿«electronic–5qequiv‘ÿdDalenš²!t“of“co˜v˜ers“if“the“DoMÞcumen˜t“is“in“electronic“form.‘ŠýOtherwise“theyŽ¡‘'¿«mš²!ust–¦fappMÞear“on“prin˜ted“co˜v˜ers“that“brac˜k˜et“the“whole“aggregate.Ž¦‘-8.Ž‘'¿«TRANSLA‘ÿeTIONŽ¦‘'¿«T‘ÿeranslation–̯is“considered“a“kind“of“moMÞdi cation,‘Aso“yš²!ou“ma˜y“distribute“translationsŽ¡‘'¿«of–Tþthe“DoMÞcumenš²!t“under“the“terms“of“section“4.‘ é¤Replacing“In˜v‘ÿdDarian˜t“Sections“withŽ¡‘'¿«translations–v²requires“spšMÞecial“p˜ermission“from“their“cop•²!yrigh“t–v²holders,‘êÅbut“yš²!ou“ma˜yŽ¡‘'¿«include–ðktranslations“of“some“or“all“In•²!v‘ÿdDarian“t–ðkSections“in“addition“to“the“original“v²!ersionsŽ¡‘'¿«of–Æthese“In•²!v‘ÿdDarian“t–ÆSections.‘=Y‘ÿeou“ma²!y“include“a“translation“of“this“License,‘Î ! and“all“theŽ¡‘'¿«license–òúnotices“in“the“DoMÞcumenš²!t,‘Fand“an˜y“W‘ÿearran˜t˜y“Disclaimers,‘Fpro˜vided“that“y˜ouŽ¡‘'¿«also–Ïinclude“the“original“English“vš²!ersion“of“this“License“and“the“original“v˜ersions“ofŽ¡‘'¿«those–notices“and“disclaimers.‘5äIn“case“of“a“disagreemenš²!t“bMÞet˜w˜een“the“translation“andŽ¡‘'¿«the–:•original“vš²!ersion“of“this“License“or“a“notice“or“disclaimer,‘_ the“original“v˜ersion“willŽ¡‘'¿«prev‘ÿdDail.Ž¦‘'¿«If–pèa“section“in“the“DoMÞcumenš²!t“is“En˜titled“\Ac˜kno˜wledgemen˜ts",–{›\Dedications",“or‘pè\His-Ž¡‘'¿«tory",‘A¿the–(•requiremenš²!t“(section“4)“to“Preserv˜e“its“Title“(section“1)“will“t˜ypically“requireŽ¡‘'¿«c²!hanging–¦fthe“actual“title.Ž¦‘-9.Ž‘'¿«TERMINA‘ÿeTIONŽ¦‘'¿«Y‘ÿeou–”maš²!y“not“cop˜y–ÿe,›—¾moMÞdify“,˜sublicense,˜or–”distribute“the“DoMÞcumen²!t“except“as“expresslyŽ¡‘'¿«proš²!vided–=for“under“this“License.‘ýbAn˜y“other“attempt“to“cop˜y–ÿe,›^2moMÞdify“,˜sublicense‘=orŽ¡‘'¿«distribute–f?the“DoMÞcumenš²!t“is“v˜oid,‘–5and“will“automatically“terminate“y˜our“righ˜ts“underŽ¡‘'¿«this›V8License.‘Ã#Ho•²!w“ev“er,‘fAparties˜who˜ha“v“e˜receiv“ed˜copies,‘fAor˜righ“ts,‘fAfrom˜y“ou˜under˜thisŽ¡‘'¿«License–i+will“not“ha•²!v“e–i+their“licenses“terminated“so“long“as“suc²!h“parties“remain“in“fullŽ¡‘'¿«compliance.Ž¦‘‡“10.Ž‘'¿«FUTURE–¦fREVISIONS“OF“THIS“LICENSEŽ¦‘'¿«The–ÿaF›ÿeree“Soft•²!w“are–ÿaF˜oundation“maš²!y“publish“new,‘U revised“v˜ersions“of“the“GNU‘ÿ F‘ÿereeŽ¡‘'¿«DoMÞcumenš²!tation–ÙâLicense“from“time“to“time.‘xRSuc˜h“new“v˜ersions“will“bMÞe“similar“in“spiritŽ¡‘'¿«to– æthe“presenš²!t“v˜ersion,‘?†but“ma˜y“di er“in“detail“to“address“new“problems“or“concerns.Ž¡‘'¿«See‘¦fÞhttp://www.gnu.org/copyleft/Ý.Ž¦‘'¿«Eac•²!h›ˆ×v“ersion˜of˜the˜License˜is˜giv“en˜a˜distinguishing˜v“ersion˜n“um“b•MÞer.‘ÔIf˜the˜Do“cumen²!tŽ¡‘'¿«spšMÞeci es–r”that“a“particular“n•²!um“b˜ered›r”v“ersion˜of˜this˜License˜\or˜an“y˜later˜v“ersion"Ž¡‘'¿«applies–æQto“it,‘öKyš²!ou“ha˜v˜e“the“option“of“follo˜wing“the“terms“and“conditions“either“of“thatŽ¡‘'¿«spMÞeci ed–Žvš²!ersion“or“of“an˜y“later“v˜ersion“that“has“bMÞeen“published“(not“as“a“draft)“b˜yŽ¡‘'¿«the–î!F›ÿeree“Soft•²!w“are–î!F˜oundation.‘µIf“the“DošMÞcumen²!t“do˜es“not“sp˜ecify“a“vš²!ersion“n˜um˜bMÞer“ofŽ¡‘'¿«this–$œLicense,‘D)yš²!ou“ma˜y“c˜hoMÞose“an˜y“v˜ersion“ev˜er“published“(not“as“a“draft)“b˜y“the“F‘ÿereeŽ¡‘'¿«Soft•²!w“are‘¦fF‘ÿeoundation.ŽŽŒ‹?ÝŸò‘GÝAppMÞendix–¦fA:“Copš²!ying“This“Man˜ual’ý~63ŽŽŽ ƒ3* ý ÌÖ‘GëaA.1.1‘d(ADDENDUM:–íMHoš–áw“to“use“this“License“for“y˜our“doicumen˜tsŽŽŸff‘!GÝT‘ÿeo–FØuse“this“License“in“a“doMÞcumenš²!t“y˜ou“ha˜v˜e“written,‘Yôinclude“a“cop˜y“of“the“License“in“theŽ¤ 33‘GdoMÞcumenš²!t–¦fand“put“the“follo˜wing“cop˜yrigh˜t“and“license“notices“just“after“the“title“page:Ž© €‘8lÈÉCopyright‘¹–(C)‘ s,óAßê)‘þ’‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘s߬14Ž¡’óáðÉend-of-line‘T(C-e)‘„ð‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ú=¬13Ž¡’óáðÉexchange-point-and-mark–T(C-x“C-x)‘ºr‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ /¿¬18Ž¡’óáðexpand-tilde‘ž‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘`¬5ŽŸO¶’óáðëXFŽ¦’óáðÉforward-backward-delete-char‘T()‘Aå‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘·2¬15Ž¡’óáðÉforward-char‘T(C-f)‘X&‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ís¬13Ž¡’óáðÉforward-search-history‘T(C-s)‘ÈC‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ =¬14Ž¡’óáðÉforward-word‘T(M-f)‘X&‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ís¬13ŽŸOµ’óáðëXHŽ¦’óáð¬history-preserv•¾9e-pAÇoin“t‘4þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ªJ¬5Ž¡’óáðÉhistory-search-backward‘T()‘!בÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ —$¬14Ž¡’óáðÉhistory-search-forward‘T() ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘“í¬14Ž¡’óáðhorizon¾9tal-scroll-moAÇde‘š®‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ú¬6ŽŸNs’óáðëXIŽ¦’óáð¬input-meta‘!.‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘–z¬6Ž¡’óáðÉinsert-comment‘T(M-#)‘þ’‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘s߬19Ž¡’óáðÉinsert-completions‘T(M-*)Kj‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘À·¬17Ž¡’óáðisearc¾9h-terminators ! ¿‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘€ ¬6ŽŸNs’óáðëXKŽ¦’óáð¬k¾9eymap‘`D‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Õ‘¬6Ž¡’óáðÉkill-line‘T(C-k)‘Þ„‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ SѬ16Ž¡’óáðÉkill-region‘T()‘ N‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ €›¬16Ž¡’óáðÉkill-whole-line‘T()‘X&‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ís¬16Ž¡’óáðÉkill-word‘T(M-d)‘Þ„‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ SѬ16ŽŸOµ’óáðëXMŽ¦’óáð¬mark-moAÇdi ed-lines‘ª‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘“ö¬6Ž¡’óáðmark-symlink¾9ed-directories‘½‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 2T¬6Ž¡’óáðmatc¾9h-hidden- les‘åÄ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ [¬6Ž¡’óáðÉmenu-complete‘T()‘±º‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ '¬17Ž¡’óáðmeta- agZ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÏZ¬6ŽŸO¶’óáðëXNŽ¦’óáðÉnext-history‘T(C-n)‘X&‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ís¬14Ž¡’óáðÉnon-incremental-forward-search-history‘T(M-n)Ž© ! €’^(‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘q¬14Ž¡’óáðÉnon-incremental-reverse-search-history‘T(M-p)Ž¦’^(‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘q¬14ŽŽŽŽŒ‹D4¾Ÿò‘GÝ68’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘GëXOŽ¤G(‘G¬output-meta}¢‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘òî¬7Ž© ! §‘GÉoverwrite-mode‘T()‘„ð‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ú=¬15ŽŸ×`‘GëXPŽ¡‘G¬page-completions‘äÞ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Z+¬7Ž¦‘GÉpossible-completions‘T(M-?)‘!בÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ —$¬17Ž¦‘GÉprefix-meta‘T(ž™š¸hŽ‘êÌŸù@‰ff¤TŸÀ­ESCŽŽ‘êÌŸÙš‰ff¤TŽ‘ ’ž™š¸iŽŽ‘¥tÉ)‘¨™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ æ¬18Ž¦‘GÉprevious-history‘T(C-p)‘¤þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘K¬14Ž©a‘GëXQŽ¡‘GÉquoted-insert–T(C-q“or“C-v)‘–‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ e¬15Ž¦‘GëXRŽ¡‘GÉre-read-init-file–T(C-x“C-r)‘—-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ z¬18Ž¤ ! §‘GÉreadlineè‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘‹5¬21Ž¡‘GÉredraw-current-line‘T()‘¤þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘K¬13Ž¡‘GÉreverse-search-history‘T(C-r)‘ÈC‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ =¬14Ž¡‘GÉrevert-line‘T(M-r)‘„ð‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ú=¬18Ž¡‘GÉrl_add_defun‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬28Ž¡‘GÉrl_add_funmap_entryY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬31Ž¡‘GÉrl_add_undo‘¿‹‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 4ج32Ž¡‘GÉrl_alphabetic‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬36Ž¡‘GÉrl_already_promptedY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬25Ž¡‘GÉrl_attempted_completion_functionBú‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¸G¬43Ž¡‘GÉrl_attempted_completion_over‘ö"‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ko¬46Ž¡‘GÉrl_basic_quote_characters‘|€‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ñͬ44Ž¡‘GÉrl_basic_word_break_characters‘œŽ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Û¬44Ž¡‘GÉrl_begin_undo_groupY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬32Ž¡‘GÉrl_bind_key‘¿‹‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 4ج29Ž¡‘GÉrl_bind_key_if_unbound‘Þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ x+¬29Ž¡‘GÉrl_bind_key_if_unbound_in_map‘ÉX‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘>¥¬29Ž¡‘GÉrl_bind_key_in_map‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬29Ž¡‘GÉrl_bind_keyseq‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬30Ž¡‘GÉrl_bind_keyseq_if_unbound‘|€‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ñͬ30Ž¡‘GÉrl_bind_keyseq_if_unbound_in_mapBú‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¸G¬30Ž¡‘GÉrl_bind_keyseq_in_map‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬30Ž¡‘GÉrl_binding_keymap‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬26Ž¡‘GÉrl_callback_handler_install‘"ì‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘˜9¬37Ž¡‘GÉrl_callback_handler_remove‘O¶‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ŭ37Ž¡‘GÉrl_callback_read_char‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬37Ž¡‘GÉrl_catch_signals‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬40Ž¡‘GÉrl_catch_sigwinch‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬40Ž¡‘GÉrl_char_is_quoted_pY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬44Ž¡‘GÉrl_cleanup_after_signal‘Ö‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Ka¬40Ž¡‘GÉrl_clear_message‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬33Ž¡‘GÉrl_clear_pending_input‘Þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ x+¬35Ž¡‘GÉrl_clear_signals‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬41Ž¡‘GÉrl_complete‘¿‹‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 4ج42Ž¡‘GÉrl_complete_internal,q‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¡¾¬42Ž¡‘GÉrl_completer_quote_characters‘ÉX‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘>¥¬45Ž¡‘GÉrl_completer_word_break_characters‘g‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Ž´¬45Ž¡‘GÉrl_completion_append_character‘œŽ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Û¬45Ž¡‘GÉrl_completion_display_matches_hook‘g‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Ž´¬44ŽŽ ý ÌÖ’óáðÉrl_completion_entry_functionš‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘‡ç¬42,‘T43Ž¤ ! §’óáðÉrl_completion_found_quote‘|€‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ñͬ46Ž¡’óáðÉrl_completion_mark_symlink_dirsoÄ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘å¬46Ž¡’óáðÉrl_completion_matches‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬42Ž¡’óáðÉrl_completion_mode‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬42Ž¡’óáðÉrl_completion_query_items‘|€‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ñͬ45Ž¡’óáðÉrl_completion_quote_character‘ÉX‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘>¥¬45Ž¡’óáðÉrl_completion_suppress_append‘ÉX‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘>¥¬45Ž¡’óáðÉrl_completion_suppress_quote‘ö"‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ko¬46Ž¡’óáðÉrl_completion_type‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬46Ž¡’óáðÉrl_completion_word_break_hook‘ÉX‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘>¥¬45Ž¡’óáðÉrl_copy_keymap‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬28Ž¡’óáðÉrl_copy_text‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬34Ž¡’óáðÉrl_crlfB²‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘·ÿ¬33Ž¡’óáðÉrl_delete_text‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬34Ž¡’óáðÉrl_deprep_term_function‘Ö‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Ka¬26Ž¡’óáðÉrl_deprep_terminal‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬35Ž¡’óáðÉrl_dingB²‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘·ÿ¬36Ž¡’óáðÉrl_directory_completion_hook‘ö"‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ko¬44Ž¡’óáðÉrl_discard_keymap‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬29Ž¡’óáðÉrl_dispatching‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬24Ž¡’óáðÉrl_display_match_list‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬36Ž¡’óáðÉrl_do_undo‘ìU‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ a¢¬32Ž¡’óáðÉrl_doneB²‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘·ÿ¬24Ž¡’óáðÉrl_editing_mode‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬28Ž¡’óáðÉrl_endo|‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘äɬ24Ž¡’óáðÉrl_end_undo_group‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬32Ž¡’óáðÉrl_erase_empty_lineY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬24Ž¡’óáðÉrl_event_hook‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬26Ž¡’óáðÉrl_execute_next‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬35Ž¡’óáðÉrl_executing_keymapY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬26Ž¡’óáðÉrl_executing_macro‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬26Ž¡’óáðÉrl_expand_prompt‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬33Ž¡’óáðÉrl_explicit_arg‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬27Ž¡’óáðÉrl_extend_line_buffer‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬35Ž¡’óáðÉrl_filename_completion_desired‘œŽ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Û¬46Ž¡’óáðÉrl_filename_completion_functionoÄ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘å¬43Ž¡’óáðÉrl_filename_dequoting_function‘œŽ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Û¬43Ž¡’óáðÉrl_filename_quote_characters‘ö"‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ko¬45Ž¡’óáðÉrl_filename_quoting_desired‘"ì‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘˜9¬46Ž¡’óáðÉrl_filename_quoting_function‘ö"‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ko¬43Ž¡’óáðÉrl_forced_update_display‘©J‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ —¬33Ž¡’óáðÉrl_free_line_state‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬40Ž¡’óáðÉrl_free_undo_list‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬32Ž¡’óáðÉrl_function_dumper‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬31Ž¡’óáðÉrl_function_of_keyseq‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬31Ž¡’óáðÉrl_funmap_names‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬31Ž¡’óáðÉrl_generic_bind‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬30Ž¡’óáðÉrl_get_keymap‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬29Ž¡’óáðÉrl_get_keymap_by_name‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬29Ž¡’óáðÉrl_get_keymap_name‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬29Ž¡’óáðÉrl_get_screen_size‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬40Ž¡’óáðÉrl_get_termcap‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬37Ž¡’óáðÉrl_getcB²‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘·ÿ¬34Ž¡’óáðÉrl_getc_function‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬26Ž¡’óáðÉrl_gnu_readline_p‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬25Ž¡’óáðÉrl_ignore_completion_duplicatesoÄ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘å¬46Ž¡’óáðÉrl_ignore_some_completions_function‘ì‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ aê¬44ŽŽŽŽŒ‹Ez3Ÿò‘GÝF›ÿeunction–¦fand“V˜ariable“Index’œÃ69ŽŽŽ ƒ3*ŸÃoY ýÝ]}‘GÉrl_inhibit_completion‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬47Ž¤ ! ƒ ‘GÉrl_initialize‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬36Ž¡‘GÉrl_insert_completions‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬42Ž¡‘GÉrl_insert_text‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬34Ž¡‘GÉrl_instream‘¿‹‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 4ج25Ž¡‘GÉrl_invoking_keyseqsY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬31Ž¡‘GÉrl_invoking_keyseqs_in_map‘O¶‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ŭ31Ž¡‘GÉrl_kill_text‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬34Ž¡‘GÉrl_last_func‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬25Ž¡‘GÉrl_library_version‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬25Ž¡‘GÉrl_line_buffer‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬24Ž¡‘GÉrl_list_funmap_names,q‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¡¾¬31Ž¡‘GÉrl_macro_bind‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬36Ž¡‘GÉrl_macro_dumper‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬36Ž¡‘GÉrl_make_bare_keymapY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬28Ž¡‘GÉrl_make_keymap‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬28Ž¡‘GÉrl_markB²‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘·ÿ¬24Ž¡‘GÉrl_message‘ìU‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ a¢¬33Ž¡‘GÉrl_modifying‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬32Ž¡‘GÉrl_named_function‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬31Ž¡‘GÉrl_num_chars_to_read,q‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¡¾¬24Ž¡‘GÉrl_numeric_arg‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬28Ž¡‘GÉrl_on_new_line‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬33Ž¡‘GÉrl_on_new_line_with_prompt‘O¶‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ŭ33Ž¡‘GÉrl_outstream‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬25Ž¡‘GÉrl_parse_and_bind‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬30Ž¡‘GÉrl_pending_input‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬24Ž¡‘GÉrl_pointè‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘‹5¬24Ž¡‘GÉrl_possible_completions‘Ö‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Ka¬42Ž¡‘GÉrl_pre_input_hook‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬25Ž¡‘GÉrl_prep_term_function‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬26Ž¡‘GÉrl_prep_terminal‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬35Ž¡‘GÉrl_prompt‘‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Žl¬25Ž¡‘GÉrl_push_macro_inputY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬34Ž¡‘GÉrl_read_init_file‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬31Ž¡‘GÉrl_read_key‘¿‹‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 4ج34Ž¡‘GÉrl_readline_name‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬25Ž¡‘GÉrl_readline_state‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬26Ž¡‘GÉrl_readline_versionY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬25Ž¡‘GÉrl_redisplay‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬32Ž¡‘GÉrl_redisplay_function‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬26Ž¡‘GÉrl_replace_line‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬35Ž¡‘GÉrl_reset_after_signal‘/¨‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¤õ¬40Ž¡‘GÉrl_reset_line_stateY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬33Ž¡‘GÉrl_reset_terminal‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬35Ž¡‘GÉrl_resize_terminal‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬40Ž¡‘GÉrl_restore_prompt‘²Ï‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘(¬33Ž¡‘GÉrl_save_prompt‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬33Ž¡‘GÉrl_set_key‘ìU‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ a¢¬30Ž¡‘GÉrl_set_keyboard_input_timeout‘ÉX‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘>¥¬35Ž¡‘GÉrl_set_keymap‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬29Ž¡‘GÉrl_set_paren_blink_timeout‘O¶‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ŭ37Ž¡‘GÉrl_set_prompt‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬34ŽŽ ýÝ]}’óáðÉrl_set_screen_size‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬40Ž¤ ! ŒÃ’óáðÉrl_set_signals‘9-‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘®z¬41Ž¡’óáðÉrl_show_char‘’Á‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ ¬33Ž¡’óáðÉrl_special_prefixesY;‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Έ¬45Ž¡’óáðÉrl_startup_hook‘ c‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘°¬25Ž¡’óáðÉrl_stuff_char‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬34Ž¡’óáðÉrl_terminal_name‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬25Ž¡’óáðÉrl_tty_set_default_bindings‘"ì‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘˜9¬35Ž¡’óáðÉrl_tty_unset_default_bindings‘ÉX‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘>¥¬35Ž¡’óáðÉrl_unbind_command_in_map‘©J‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ —¬30Ž¡’óáðÉrl_unbind_function_in_map‘|€‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ñͬ30Ž¡’óáðÉrl_unbind_key‘e÷‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ÛD¬30Ž¡’óáðÉrl_unbind_key_in_map,q‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¡¾¬30Ž¡’óáðÉrl_username_completion_functionoÄ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘å¬43Ž¡’óáðÉrl_variable_bind‘ß™‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Tæ¬37Ž¡’óáðÉrl_variable_dumper‘†‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ûR¬37ŽŸ8’óáðëXSŽ©5’óáðÉself-insert–T(a,“b,“A,“1,“!,“...Ž‘B)‘Ͼ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘E ¬15Ž¡’óáðÉset-mark‘T(C-@)‘ N‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ €›¬18Ž¡’óáðsho•¾9w-all-if-am“biguous‘Áà‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ 7,¬7Ž¡’óáðsho¾9w-all-if-unmoAÇdi ed‘Àæ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘63¬7Ž¡’óáðÉstart-kbd-macro–T(C-x“()‘JU‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¿¢¬18ŽŸM7’óáðëXTŽ¦’óáðÉtab-insert‘T(M-ž™š¸hŽ‘êÌŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘êÌŸÙš‰ffÐlŽ‘8ªž™š¸iŽŽ‘ÑŒÉ)‘åÑÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘[¬15Ž¡’óáðÉtilde-expand‘T(M-~)‘X&‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘Ís¬18Ž¡’óáðÉtranspose-chars‘T(C-t)‘ÑÈ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘G¬15Ž¡’óáðÉtranspose-words‘T(M-t)‘ÑÈ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘G¬15ŽŸ8’óáðëXUŽ¦’óáðÉundo–T(C-_“or“C-x“C-u)‘*‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘w¬18Ž¡’óáðÉuniversal-argument‘T()‘ÑÈ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘G¬17Ž¡’óáðÉunix-filename-rubout‘T()x4‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘í¬16Ž¡’óáðÉunix-line-discard‘T(C-u)x4‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘í¬16Ž¡’óáðÉunix-word-rubout‘T(C-w)‘¤þ‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘K¬16Ž¡’óáðÉupcase-word‘T(M-u)‘„ð‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ú=¬15ŽŸ8’óáðëXVŽ¦’óáðÉvi-editing-mode‘T(M-C-j)x4‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘í¬19Ž¡’óáðvisible-stats‘Ó¬‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ Hù¬7ŽŸKõ’óáðëXYŽ¦’óáðÉyank‘T(C-y)‘Žu‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘¬17Ž¡’óáðÉyank-last-arg–T(M-.“or“M-_)‘–‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ e¬14Ž¡’óáðÉyank-nth-arg‘T(M-C-y)‘þ’‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘s߬14Ž¡’óáðÉyank-pop‘T(M-y)‘ N‘ÅUÐ.Ž–`‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž“‘ÅU.Ž‘ €›¬17ŽŽŽŽŒ‹FÕÝŸò‘GÝ70’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3*Œø,=ƒ’À;è…ïöïÿ JóaÂÖN  #× cmbx12óYF C–ff ! cmbxti10óXÂÖN ff cmbx12óOÂÖN G® cmbx12óFÂÖN ¼j cmbx12óAßê !
!
beginning-of-line (C-a) !
Move to the start of the current line.

!

end-of-line (C-e) !
Move to the end of the line.

!

forward-char (C-f) !
Move forward a character.

!

backward-char (C-b) !
Move back a character.

!

forward-word (M-f) !
Move forward to the end of the next word. Words are composed of letters and digits.

!

backward-word (M-b) !
Move back to the start of the current or previous word. Words are composed of letters and digits.

!

clear-screen (C-l) !
Clear the screen and redraw the current line, leaving the current line at the top of the screen.

!

redraw-current-line () !
Refresh the current line. By default, this is unbound.

--- 1179,1230 ----

!
beginning-of-line (C-a) !
Move to the start of the current line.

!

end-of-line (C-e) !
Move to the end of the line.

!

forward-char (C-f) !
Move forward a character.

!

backward-char (C-b) !
Move back a character.

!

forward-word (M-f) !
Move forward to the end of the next word. Words are composed of letters and digits.

!

backward-word (M-b) !
Move back to the start of the current or previous word. Words are composed of letters and digits.

!

clear-screen (C-l) !
Clear the screen and redraw the current line, leaving the current line at the top of the screen.

!

redraw-current-line () !
Refresh the current line. By default, this is unbound.

*************** *** 1231,1235 ****         [Top] [Contents] ! [Index] [ ? ] --- 1244,1248 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 1239,1245 ****

!
accept-line (Newline or Return) !
Accept the line regardless of where the cursor is. If this line is --- 1252,1258 ----
!
accept-line (Newline or Return) !
Accept the line regardless of where the cursor is. If this line is *************** *** 1250,1295 ****

!

previous-history (C-p) !
Move `back' through the history list, fetching the previous command.

!

next-history (C-n) !
Move `forward' through the history list, fetching the next command.

!

beginning-of-history (M-<) !
Move to the first line in the history.

!

end-of-history (M->) !
Move to the end of the input history, i.e., the line currently being entered.

!

reverse-search-history (C-r) !
Search backward starting at the current line and moving `up' through the history as necessary. This is an incremental search.

!

forward-search-history (C-s) !
Search forward starting at the current line and moving `down' through the the history as necessary. This is an incremental search.

!

non-incremental-reverse-search-history (M-p) !
Search backward starting at the current line and moving `up' through the history as necessary using a non-incremental search --- 1263,1308 ----

!

previous-history (C-p) !
Move `back' through the history list, fetching the previous command.

!

next-history (C-n) !
Move `forward' through the history list, fetching the next command.

!

beginning-of-history (M-<) !
Move to the first line in the history.

!

end-of-history (M->) !
Move to the end of the input history, i.e., the line currently being entered.

!

reverse-search-history (C-r) !
Search backward starting at the current line and moving `up' through the history as necessary. This is an incremental search.

!

forward-search-history (C-s) !
Search forward starting at the current line and moving `down' through the the history as necessary. This is an incremental search.

!

non-incremental-reverse-search-history (M-p) !
Search backward starting at the current line and moving `up' through the history as necessary using a non-incremental search *************** *** 1297,1303 ****

!

non-incremental-forward-search-history (M-n) !
Search forward starting at the current line and moving `down' through the the history as necessary using a non-incremental search --- 1310,1316 ----

!

non-incremental-forward-search-history (M-n) !
Search forward starting at the current line and moving `down' through the the history as necessary using a non-incremental search *************** *** 1305,1311 ****

!

history-search-forward () !
Search forward through the history for the string of characters between the start of the current line and the point. --- 1318,1324 ----

!

history-search-forward () !
Search forward through the history for the string of characters between the start of the current line and the point. *************** *** 1314,1320 ****

!

history-search-backward () !
Search backward through the history for the string of characters between the start of the current line and the point. This --- 1327,1333 ----

!

history-search-backward () !
Search backward through the history for the string of characters between the start of the current line and the point. This *************** *** 1322,1328 ****

!

yank-nth-arg (M-C-y) !
Insert the first argument to the previous command (usually the second word on the previous line) at point. --- 1335,1341 ----

!

yank-nth-arg (M-C-y) !
Insert the first argument to the previous command (usually the second word on the previous line) at point. *************** *** 1333,1339 ****

!

yank-last-arg (M-. or M-_) !
Insert last argument to the previous command (the last word of the previous history entry). With an --- 1346,1352 ----

!

yank-last-arg (M-. or M-_) !
Insert last argument to the previous command (the last word of the previous history entry). With an *************** *** 1357,1361 ****         [Top] [Contents] ! [Index] [ ? ] --- 1370,1374 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 1365,1371 ****
!
delete-char (C-d) !
Delete the character at point. If point is at the beginning of the line, there are no characters in the line, and --- 1378,1384 ----
!
delete-char (C-d) !
Delete the character at point. If point is at the beginning of the line, there are no characters in the line, and *************** *** 1374,1387 ****

!

backward-delete-char (Rubout) !
Delete the character behind the cursor. A numeric argument means to kill the characters instead of deleting them.

!

forward-backward-delete-char () !
Delete the character under the cursor, unless the cursor is at the end of the line, in which case the character behind the cursor is --- 1387,1400 ----

!

backward-delete-char (Rubout) !
Delete the character behind the cursor. A numeric argument means to kill the characters instead of deleting them.

!

forward-backward-delete-char () !
Delete the character under the cursor, unless the cursor is at the end of the line, in which case the character behind the cursor is *************** *** 1389,1414 ****

!

quoted-insert (C-q or C-v) !
Add the next character typed to the line verbatim. This is how to insert key sequences like C-q, for example.

!

tab-insert (M-TAB) !
Insert a tab character.

!

self-insert (a, b, A, 1, !, ...) !
Insert yourself.

!

transpose-chars (C-t) !
Drag the character before the cursor forward over the character at the cursor, moving the --- 1402,1427 ----

!

quoted-insert (C-q or C-v) !
Add the next character typed to the line verbatim. This is how to insert key sequences like C-q, for example.

!

tab-insert (M-TAB) !
Insert a tab character.

!

self-insert (a, b, A, 1, !, ...) !
Insert yourself.

!

transpose-chars (C-t) !
Drag the character before the cursor forward over the character at the cursor, moving the *************** *** 1419,1425 ****

!

transpose-words (M-t) !
Drag the word before point past the word after point, moving point past that word as well. --- 1432,1438 ----

!

transpose-words (M-t) !
Drag the word before point past the word after point, moving point past that word as well. *************** *** 1428,1455 ****

!

upcase-word (M-u) !
Uppercase the current (or following) word. With a negative argument, uppercase the previous word, but do not move the cursor.

!

downcase-word (M-l) !
Lowercase the current (or following) word. With a negative argument, lowercase the previous word, but do not move the cursor.

!

capitalize-word (M-c) !
Capitalize the current (or following) word. With a negative argument, capitalize the previous word, but do not move the cursor.

!

overwrite-mode () !
Toggle overwrite mode. With an explicit positive numeric argument, switches to overwrite mode. With an explicit non-positive numeric --- 1441,1468 ----

!

upcase-word (M-u) !
Uppercase the current (or following) word. With a negative argument, uppercase the previous word, but do not move the cursor.

!

downcase-word (M-l) !
Lowercase the current (or following) word. With a negative argument, lowercase the previous word, but do not move the cursor.

!

capitalize-word (M-c) !
Capitalize the current (or following) word. With a negative argument, capitalize the previous word, but do not move the cursor.

!

overwrite-mode () !
Toggle overwrite mode. With an explicit positive numeric argument, switches to overwrite mode. With an explicit non-positive numeric *************** *** 1482,1486 ****         [Top] [Contents] ! [Index] [ ? ] --- 1495,1499 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 1491,1522 ****
!
kill-line (C-k) !
Kill the text from point to the end of the line.

!

backward-kill-line (C-x Rubout) !
Kill backward to the beginning of the line.

!

unix-line-discard (C-u) !
Kill backward from the cursor to the beginning of the current line.

!

kill-whole-line () !
Kill all characters on the current line, no matter where point is. By default, this is unbound.

!

kill-word (M-d) !
Kill from point to the end of the current word, or if between words, to the end of the next word. --- 1504,1535 ----
!
kill-line (C-k) !
Kill the text from point to the end of the line.

!

backward-kill-line (C-x Rubout) !
Kill backward to the beginning of the line.

!

unix-line-discard (C-u) !
Kill backward from the cursor to the beginning of the current line.

!

kill-whole-line () !
Kill all characters on the current line, no matter where point is. By default, this is unbound.

!

kill-word (M-d) !
Kill from point to the end of the current word, or if between words, to the end of the next word. *************** *** 1524,1564 ****

!

backward-kill-word (M-DEL) !
Kill the word behind point. Word boundaries are the same as backward-word.

!

unix-word-rubout (C-w) !
Kill the word behind point, using white space as a word boundary. The killed text is saved on the kill-ring.

!

delete-horizontal-space () !
Delete all spaces and tabs around point. By default, this is unbound.

!

kill-region () !
Kill the text in the current region. By default, this command is unbound.

!

copy-region-as-kill () !
Copy the text in the region to the kill buffer, so it can be yanked right away. By default, this command is unbound.

!

copy-backward-word () !
Copy the word before point to the kill buffer. The word boundaries are the same as backward-word. --- 1537,1585 ----

!

backward-kill-word (M-DEL) !
Kill the word behind point. Word boundaries are the same as backward-word.

!

unix-word-rubout (C-w) !
Kill the word behind point, using white space as a word boundary. The killed text is saved on the kill-ring.

! !

unix-filename-rubout () !
! Kill the word behind point, using white space and the slash character ! as the word boundaries. ! The killed text is saved on the kill-ring. !

! !

delete-horizontal-space () !
Delete all spaces and tabs around point. By default, this is unbound.

!

kill-region () !
Kill the text in the current region. By default, this command is unbound.

!

copy-region-as-kill () !
Copy the text in the region to the kill buffer, so it can be yanked right away. By default, this command is unbound.

!

copy-backward-word () !
Copy the word before point to the kill buffer. The word boundaries are the same as backward-word. *************** *** 1566,1572 ****

!

copy-forward-word () !
Copy the word following point to the kill buffer. The word boundaries are the same as forward-word. --- 1587,1593 ----

!

copy-forward-word () !
Copy the word following point to the kill buffer. The word boundaries are the same as forward-word. *************** *** 1574,1586 ****

!

yank (C-y) !
Yank the top of the kill ring into the buffer at point.

!

yank-pop (M-y) !
Rotate the kill-ring, and yank the new top. You can only do this if the prior command is yank or yank-pop. --- 1595,1607 ----

!

yank (C-y) !
Yank the top of the kill ring into the buffer at point.

!

yank-pop (M-y) !
Rotate the kill-ring, and yank the new top. You can only do this if the prior command is yank or yank-pop. *************** *** 1599,1603 ****         [Top] [Contents] ! [Index] [ ? ] --- 1620,1624 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 1606,1619 ****
!
digit-argument (M-0, M-1, ... M--) !
Add this digit to the argument already accumulating, or start a new argument. M-- starts a negative argument.

!

universal-argument () !
This is another way to specify an argument. If this command is followed by one or more digits, optionally with a --- 1627,1640 ----
!
digit-argument (M-0, M-1, ... M--) !
Add this digit to the argument already accumulating, or start a new argument. M-- starts a negative argument.

!

universal-argument () !
This is another way to specify an argument. If this command is followed by one or more digits, optionally with a *************** *** 1642,1646 ****         [Top] [Contents] ! [Index] [ ? ] --- 1663,1667 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 1650,1656 ****
!
complete (TAB) !
Attempt to perform completion on the text before point. The actual completion performed is application-specific. --- 1671,1677 ----
!
complete (TAB) !
Attempt to perform completion on the text before point. The actual completion performed is application-specific. *************** *** 1658,1677 ****

!

possible-completions (M-?) !
List the possible completions of the text before point.

!

insert-completions (M-*) !
Insert all completions of the text before point that would have been generated by possible-completions.

!

menu-complete () !
Similar to complete, but replaces the word to be completed with a single match from the list of possible completions. --- 1679,1698 ----

!

possible-completions (M-?) !
List the possible completions of the text before point.

!

insert-completions (M-*) !
Insert all completions of the text before point that would have been generated by possible-completions.

!

menu-complete () !
Similar to complete, but replaces the word to be completed with a single match from the list of possible completions. *************** *** 1688,1694 ****

!

delete-char-or-list () !
Deletes the character under the cursor if not at the beginning or end of the line (like delete-char). --- 1709,1715 ----

!

delete-char-or-list () !
Deletes the character under the cursor if not at the beginning or end of the line (like delete-char). *************** *** 1712,1716 ****         [Top] [Contents] ! [Index] [ ? ] --- 1733,1737 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 1719,1738 ****
!
start-kbd-macro (C-x () !
Begin saving the characters typed into the current keyboard macro.

!

end-kbd-macro (C-x )) !
Stop saving the characters typed into the current keyboard macro and save the definition.

!

call-last-kbd-macro (C-x e) !
Re-execute the last keyboard macro defined, by making the characters in the macro appear as if typed at the keyboard. --- 1740,1759 ----
!
start-kbd-macro (C-x () !
Begin saving the characters typed into the current keyboard macro.

!

end-kbd-macro (C-x )) !
Stop saving the characters typed into the current keyboard macro and save the definition.

!

call-last-kbd-macro (C-x e) !
Re-execute the last keyboard macro defined, by making the characters in the macro appear as if typed at the keyboard. *************** *** 1753,1757 ****         [Top] [Contents] ! [Index] [ ? ] --- 1774,1778 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 1760,1773 ****
!
re-read-init-file (C-x C-r) !
Read in the contents of the inputrc file, and incorporate any bindings or variable assignments found there.

!

abort (C-g) !
Abort the current editing command and ring the terminal's bell (subject to the setting of --- 1781,1794 ----
!
re-read-init-file (C-x C-r) !
Read in the contents of the inputrc file, and incorporate any bindings or variable assignments found there.

!

abort (C-g) !
Abort the current editing command and ring the terminal's bell (subject to the setting of *************** *** 1775,1788 ****

!

do-uppercase-version (M-a, M-b, M-x, ...) !
If the metafied character x is lowercase, run the command that is bound to the corresponding uppercase character.

!

prefix-meta (ESC) !
Metafy the next character typed. This is for keyboards without a meta key. Typing `ESC f' is equivalent to typing --- 1796,1809 ----

!

do-uppercase-version (M-a, M-b, M-x, ...) !
If the metafied character x is lowercase, run the command that is bound to the corresponding uppercase character.

!

prefix-meta (ESC) !
Metafy the next character typed. This is for keyboards without a meta key. Typing `ESC f' is equivalent to typing *************** *** 1790,1836 ****

!

undo (C-_ or C-x C-u) !
Incremental undo, separately remembered for each line.

!

revert-line (M-r) !
Undo all changes made to this line. This is like executing the undo command enough times to get back to the beginning.

!

tilde-expand (M-~) !
Perform tilde expansion on the current word.

!

set-mark (C-@) !
Set the mark to the point. If a numeric argument is supplied, the mark is set to that position.

!

exchange-point-and-mark (C-x C-x) !
Swap the point with the mark. The current cursor position is set to the saved position, and the old cursor position is saved as the mark.

!

character-search (C-]) !
A character is read and point is moved to the next occurrence of that character. A negative count searches for previous occurrences.

!

character-search-backward (M-C-]) !
A character is read and point is moved to the previous occurrence of that character. A negative count searches for subsequent --- 1811,1857 ----

!

undo (C-_ or C-x C-u) !
Incremental undo, separately remembered for each line.

!

revert-line (M-r) !
Undo all changes made to this line. This is like executing the undo command enough times to get back to the beginning.

!

tilde-expand (M-~) !
Perform tilde expansion on the current word.

!

set-mark (C-@) !
Set the mark to the point. If a numeric argument is supplied, the mark is set to that position.

!

exchange-point-and-mark (C-x C-x) !
Swap the point with the mark. The current cursor position is set to the saved position, and the old cursor position is saved as the mark.

!

character-search (C-]) !
A character is read and point is moved to the next occurrence of that character. A negative count searches for previous occurrences.

!

character-search-backward (M-C-]) !
A character is read and point is moved to the previous occurrence of that character. A negative count searches for subsequent *************** *** 1838,1844 ****

!

insert-comment (M-#) !
Without a numeric argument, the value of the comment-begin variable is inserted at the beginning of the current line. --- 1859,1865 ----

!

insert-comment (M-#) !
Without a numeric argument, the value of the comment-begin variable is inserted at the beginning of the current line. *************** *** 1851,1857 ****

!

dump-functions () !
Print all of the functions and their key bindings to the Readline output stream. If a numeric argument is supplied, --- 1872,1878 ----

!

dump-functions () !
Print all of the functions and their key bindings to the Readline output stream. If a numeric argument is supplied, *************** *** 1860,1866 ****

!

dump-variables () !
Print all of the settable variables and their values to the Readline output stream. If a numeric argument is supplied, --- 1881,1887 ----

!

dump-variables () !
Print all of the settable variables and their values to the Readline output stream. If a numeric argument is supplied, *************** *** 1869,1875 ****

!

dump-macros () !
Print all of the Readline key sequences bound to macros and the strings they output. If a numeric argument is supplied, --- 1890,1896 ----

!

dump-macros () !
Print all of the Readline key sequences bound to macros and the strings they output. If a numeric argument is supplied, *************** *** 1878,1891 ****

!

emacs-editing-mode (C-e) !
When in vi command mode, this causes a switch to emacs editing mode.

!

vi-editing-mode (M-C-j) !
When in emacs editing mode, this causes a switch to vi editing mode. --- 1899,1912 ----

!

emacs-editing-mode (C-e) !
When in vi command mode, this causes a switch to emacs editing mode.

!

vi-editing-mode (M-C-j) !
When in emacs editing mode, this causes a switch to vi editing mode. *************** *** 1906,1910 ****         [Top] [Contents] ! [Index] [ ? ] --- 1927,1931 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 1938,1942 ****

! Copyright (C) 1988-2002 Free Software Foundation, Inc.

--- 1959,1963 ----

! Copyright (C) 1988-2004 Free Software Foundation, Inc.

*************** *** 1966,1973 ****   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] --- 1987,1994 ----   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] *************** *** 2005,2012 ****   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] --- 2026,2033 ----   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] *************** *** 2022,2027 ****

! !

--- 2043,2048 ----

! !

*************** *** 2132,2136 ****         [Top] [Contents] ! [Index] [ ? ] --- 2153,2157 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 2182,2186 ****         [Top] [Contents] ! [Index] [ ? ] --- 2203,2207 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 2279,2283 ****         [Top] [Contents] ! [Index] [ ? ] --- 2300,2304 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 2324,2331 ****   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] --- 2345,2352 ----   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] *************** *** 2337,2341 ****

!

Variable: char * rl_line_buffer --- 2358,2362 ----

!

Variable: char * rl_line_buffer *************** *** 2347,2351 ****

!

Variable: int rl_point --- 2368,2372 ----

!

Variable: int rl_point *************** *** 2355,2359 ****

!

Variable: int rl_end --- 2376,2380 ----

!

Variable: int rl_end *************** *** 2364,2368 ****

!

Variable: int rl_mark --- 2385,2389 ----

!

Variable: int rl_mark *************** *** 2372,2376 ****

!

Variable: int rl_done --- 2393,2397 ----

!

Variable: int rl_done *************** *** 2380,2384 ****

!

Variable: int rl_num_chars_to_read --- 2401,2405 ----

!

Variable: int rl_num_chars_to_read *************** *** 2389,2393 ****

!

Variable: int rl_pending_input --- 2410,2414 ----

!

Variable: int rl_pending_input *************** *** 2397,2401 ****

!

Variable: int rl_dispatching --- 2418,2422 ----

!

Variable: int rl_dispatching *************** *** 2406,2410 ****

!

Variable: int rl_erase_empty_line --- 2427,2431 ----

!

Variable: int rl_erase_empty_line *************** *** 2416,2420 ****

!

Variable: char * rl_prompt --- 2437,2441 ----

!

Variable: char * rl_prompt *************** *** 2426,2430 ****

!

Variable: int rl_already_prompted --- 2447,2451 ----

!

Variable: int rl_already_prompted *************** *** 2439,2443 ****

!

Variable: const char * rl_library_version --- 2460,2464 ----

!

Variable: const char * rl_library_version *************** *** 2446,2450 ****

!

Variable: int rl_readline_version --- 2467,2471 ----

!

Variable: int rl_readline_version *************** *** 2457,2461 ****

!

Variable: int rl_gnu_readline_p --- 2478,2482 ----

!

Variable: int rl_gnu_readline_p *************** *** 2465,2469 ****

!

Variable: const char * rl_terminal_name --- 2486,2490 ----

!

Variable: const char * rl_terminal_name *************** *** 2474,2478 ****

!

Variable: const char * rl_readline_name --- 2495,2499 ----

!

Variable: const char * rl_readline_name *************** *** 2483,2487 ****

!

Variable: FILE * rl_instream --- 2504,2508 ----

!

Variable: FILE * rl_instream *************** *** 2491,2495 ****

!

Variable: FILE * rl_outstream --- 2512,2516 ----

!

Variable: FILE * rl_outstream *************** *** 2499,2503 ****

!

Variable: rl_command_func_t * rl_last_func --- 2520,2524 ----

!

Variable: rl_command_func_t * rl_last_func *************** *** 2508,2512 ****

!

Variable: rl_hook_func_t * rl_startup_hook --- 2529,2533 ----

!

Variable: rl_hook_func_t * rl_startup_hook *************** *** 2516,2520 ****

!

Variable: rl_hook_func_t * rl_pre_input_hook --- 2537,2541 ----

!

Variable: rl_hook_func_t * rl_pre_input_hook *************** *** 2525,2529 ****

!

Variable: rl_hook_func_t * rl_event_hook --- 2546,2550 ----

!

Variable: rl_hook_func_t * rl_event_hook *************** *** 2535,2539 ****

!

Variable: rl_getc_func_t * rl_getc_function --- 2556,2560 ----

!

Variable: rl_getc_func_t * rl_getc_function *************** *** 2545,2549 ****

!

Variable: rl_voidfunc_t * rl_redisplay_function --- 2566,2570 ----

!

Variable: rl_voidfunc_t * rl_redisplay_function *************** *** 2555,2559 ****

!

Variable: rl_vintfunc_t * rl_prep_term_function --- 2576,2580 ----

!

Variable: rl_vintfunc_t * rl_prep_term_function *************** *** 2566,2570 ****

!

Variable: rl_voidfunc_t * rl_deprep_term_function --- 2587,2591 ----

!

Variable: rl_voidfunc_t * rl_deprep_term_function *************** *** 2577,2581 ****

!

Variable: Keymap rl_executing_keymap --- 2598,2602 ----

!

Variable: Keymap rl_executing_keymap *************** *** 2585,2589 ****

!

Variable: Keymap rl_binding_keymap --- 2606,2610 ----

!

Variable: Keymap rl_binding_keymap *************** *** 2593,2597 ****

!

Variable: char * rl_executing_macro --- 2614,2618 ----

!

Variable: char * rl_executing_macro *************** *** 2600,2604 ****

!

Variable: int rl_readline_state --- 2621,2625 ----

!

Variable: int rl_readline_state *************** *** 2656,2660 ****

!

Variable: int rl_explicit_arg --- 2677,2681 ----

!

Variable: int rl_explicit_arg *************** *** 2664,2668 ****

!

Variable: int rl_numeric_arg --- 2685,2689 ----

!

Variable: int rl_numeric_arg *************** *** 2673,2677 ****

!

Variable: int rl_editing_mode --- 2694,2698 ----

!

Variable: int rl_editing_mode *************** *** 2693,2697 ****         [Top] [Contents] ! [Index] [ ? ] --- 2714,2718 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 2729,2733 ****         [Top] [Contents] ! [Index] [ ? ] --- 2750,2754 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 2751,2755 ****

!

Function: int rl_add_defun (const char *name, rl_command_func_t *function, int key) --- 2772,2776 ----

!

Function: int rl_add_defun (const char *name, rl_command_func_t *function, int key) *************** *** 2760,2768 ****

! Using this function alone is sufficient for most applications. It is ! the recommended way to add a few functions to the default functions that ! Readline has built in. If you need to do something other ! than adding a function to Readline, you may need to use the ! underlying functions described below.

--- 2781,2789 ----

! Using this function alone is sufficient for most applications. ! It is the recommended way to add a few functions to the default ! functions that Readline has built in. ! If you need to do something other than adding a function to Readline, ! you may need to use the underlying functions described below.

*************** *** 2778,2782 ****         [Top] [Contents] ! [Index] [ ? ] --- 2799,2803 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 2791,2795 ****

!

Function: Keymap rl_make_bare_keymap (void) --- 2812,2816 ----

!

Function: Keymap rl_make_bare_keymap (void) *************** *** 2800,2804 ****

!

Function: Keymap rl_copy_keymap (Keymap map) --- 2821,2825 ----

!

Function: Keymap rl_copy_keymap (Keymap map) *************** *** 2807,2811 ****

!

Function: Keymap rl_make_keymap (void) --- 2828,2832 ----

!

Function: Keymap rl_make_keymap (void) *************** *** 2816,2820 ****

!

Function: void rl_discard_keymap (Keymap keymap) --- 2837,2841 ----

!

Function: void rl_discard_keymap (Keymap keymap) *************** *** 2827,2831 ****

!

Function: Keymap rl_get_keymap (void) --- 2848,2852 ----

!

Function: Keymap rl_get_keymap (void) *************** *** 2834,2838 ****

!

Function: void rl_set_keymap (Keymap keymap) --- 2855,2859 ----

!

Function: void rl_set_keymap (Keymap keymap) *************** *** 2841,2845 ****

!

Function: Keymap rl_get_keymap_by_name (const char *name) --- 2862,2866 ----

!

Function: Keymap rl_get_keymap_by_name (const char *name) *************** *** 2849,2853 ****

!

Function: char * rl_get_keymap_name (Keymap keymap) --- 2870,2874 ----

!

Function: char * rl_get_keymap_name (Keymap keymap) *************** *** 2868,2872 ****         [Top] [Contents] ! [Index] [ ? ] --- 2889,2893 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 2894,2898 ****

!

Function: int rl_bind_key (int key, rl_command_func_t *function) --- 2915,2919 ----

!

Function: int rl_bind_key (int key, rl_command_func_t *function) *************** *** 2902,2914 ****

!

Function: int rl_bind_key_in_map (int key, rl_command_func_t *function, Keymap map) !
Bind key to function in map. Returns non-zero in the case ! of an invalid key.

!

Function: int rl_unbind_key (int key) --- 2923,2954 ----

!

Function: int rl_bind_key_in_map (int key, rl_command_func_t *function, Keymap map) !
Bind key to function in map. ! Returns non-zero in the case of an invalid key.

! !

!
Function: int rl_bind_key_if_unbound (int key, rl_command_func_t *function) !
Binds key to function if it is not already bound in the ! currently active keymap. ! Returns non-zero in the case of an invalid key or if key is ! already bound. !
!

! ! !

!
Function: int rl_bind_key_if_unbound_in_map (int key, rl_command_func_t *function, Keymap map) !
Binds key to function if it is not already bound in map. ! Returns non-zero in the case of an invalid key or if key is ! already bound. !
!

! !

Function: int rl_unbind_key (int key) *************** *** 2918,2922 ****

!

Function: int rl_unbind_key_in_map (int key, Keymap map) --- 2958,2962 ----

!

Function: int rl_unbind_key_in_map (int key, Keymap map) *************** *** 2926,2930 ****

!

Function: int rl_unbind_function_in_map (rl_command_func_t *function, Keymap map) --- 2966,2970 ----

!

Function: int rl_unbind_function_in_map (rl_command_func_t *function, Keymap map) *************** *** 2933,2937 ****

!

Function: int rl_unbind_command_in_map (const char *command, Keymap map) --- 2973,2977 ----

!

Function: int rl_unbind_command_in_map (const char *command, Keymap map) *************** *** 2940,2953 ****

!

!
Function: int rl_set_key (const char *keyseq, rl_command_func_t *function, Keymap map)
Bind the key sequence represented by the string keyseq to the function ! function. This makes new keymaps as ! necessary. The initial keymap in which to do bindings is map.

!

Function: int rl_generic_bind (int type, const char *keyseq, char *data, Keymap map) --- 2980,3030 ----

!

!
Function: int rl_bind_keyseq (const char *keyseq, rl_command_func_t *function)
Bind the key sequence represented by the string keyseq to the function ! function, beginning in the current keymap. ! This makes new keymaps as necessary. ! The return value is non-zero if keyseq is invalid.

! !

!
Function: int rl_bind_keyseq_in_map (const char *keyseq, rl_command_func_t *function, Keymap map) !
Bind the key sequence represented by the string keyseq to the function ! function. This makes new keymaps as necessary. ! Initial bindings are performed in map. ! The return value is non-zero if keyseq is invalid. !
!

! ! !

!
Function: int rl_set_key (const char *keyseq, rl_command_func_t *function, Keymap map) !
Equivalent to rl_bind_keyseq_in_map. !
!

! ! !

!
Function: int rl_bind_keyseq_if_unbound (const char *keyseq, rl_command_func_t *function) !
Binds keyseq to function if it is not already bound in the ! currently active keymap. ! Returns non-zero in the case of an invalid keyseq or if keyseq is ! already bound. !
!

! ! !

!
Function: int rl_bind_keyseq_if_unbound_in_map (const char *keyseq, rl_command_func_t *function, Keymap map) !
Binds keyseq to function if it is not already bound in map. ! Returns non-zero in the case of an invalid keyseq or if keyseq is ! already bound. !
!

! !

Function: int rl_generic_bind (int type, const char *keyseq, char *data, Keymap map) *************** *** 2960,2964 ****

!

Function: int rl_parse_and_bind (char *line) --- 3037,3041 ----

!

Function: int rl_parse_and_bind (char *line) *************** *** 2969,2973 ****

!

Function: int rl_read_init_file (const char *filename) --- 3046,3050 ----

!

Function: int rl_read_init_file (const char *filename) *************** *** 2988,2992 ****         [Top] [Contents] ! [Index] [ ? ] --- 3065,3069 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 3000,3004 ****

!

Function: rl_command_func_t * rl_named_function (const char *name) --- 3077,3081 ----

!

Function: rl_command_func_t * rl_named_function (const char *name) *************** *** 3007,3011 ****

!

Function: rl_command_func_t * rl_function_of_keyseq (const char *keyseq, Keymap map, int *type) --- 3084,3088 ----

!

Function: rl_command_func_t * rl_function_of_keyseq (const char *keyseq, Keymap map, int *type) *************** *** 3017,3021 ****

!

Function: char ** rl_invoking_keyseqs (rl_command_func_t *function) --- 3094,3098 ----

!

Function: char ** rl_invoking_keyseqs (rl_command_func_t *function) *************** *** 3025,3029 ****

!

Function: char ** rl_invoking_keyseqs_in_map (rl_command_func_t *function, Keymap map) --- 3102,3106 ----

!

Function: char ** rl_invoking_keyseqs_in_map (rl_command_func_t *function, Keymap map) *************** *** 3033,3037 ****

!

Function: void rl_function_dumper (int readable) --- 3110,3114 ----

!

Function: void rl_function_dumper (int readable) *************** *** 3043,3047 ****

!

Function: void rl_list_funmap_names (void) --- 3120,3124 ----

!

Function: void rl_list_funmap_names (void) *************** *** 3050,3054 ****

!

Function: const char ** rl_funmap_names (void) --- 3127,3131 ----

!

Function: const char ** rl_funmap_names (void) *************** *** 3059,3063 ****

!

Function: int rl_add_funmap_entry (const char *name, rl_command_func_t *function) --- 3136,3140 ----

!

Function: int rl_add_funmap_entry (const char *name, rl_command_func_t *function) *************** *** 3078,3082 ****         [Top] [Contents] ! [Index] [ ? ] --- 3155,3159 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 3114,3118 ****

!

Function: int rl_begin_undo_group (void) --- 3191,3195 ----

!

Function: int rl_begin_undo_group (void) *************** *** 3124,3128 ****

!

Function: int rl_end_undo_group (void) --- 3201,3205 ----

!

Function: int rl_end_undo_group (void) *************** *** 3133,3137 ****

!

Function: void rl_add_undo (enum undo_code what, int start, int end, char *text) --- 3210,3214 ----

!

Function: void rl_add_undo (enum undo_code what, int start, int end, char *text) *************** *** 3141,3145 ****

!

Function: void rl_free_undo_list (void) --- 3218,3222 ----

!

Function: void rl_free_undo_list (void) *************** *** 3148,3152 ****

!

Function: int rl_do_undo (void) --- 3225,3229 ----

!

Function: int rl_do_undo (void) *************** *** 3162,3166 ****

!

Function: int rl_modifying (int start, int end) --- 3239,3243 ----

!

Function: int rl_modifying (int start, int end) *************** *** 3182,3186 ****         [Top] [Contents] ! [Index] [ ? ] --- 3259,3263 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 3189,3193 ****

!

Function: void rl_redisplay (void) --- 3266,3270 ----

!

Function: void rl_redisplay (void) *************** *** 3197,3201 ****

!

Function: int rl_forced_update_display (void) --- 3274,3278 ----

!

Function: int rl_forced_update_display (void) *************** *** 3205,3209 ****

!

Function: int rl_on_new_line (void) --- 3282,3286 ----

!

Function: int rl_on_new_line (void) *************** *** 3213,3217 ****

!

Function: int rl_on_new_line_with_prompt (void) --- 3290,3294 ----

!

Function: int rl_on_new_line_with_prompt (void) *************** *** 3225,3229 ****

!

Function: int rl_reset_line_state (void) --- 3302,3306 ----

!

Function: int rl_reset_line_state (void) *************** *** 3233,3237 ****

!

Function: int rl_crlf (void) --- 3310,3314 ----

!

Function: int rl_crlf (void) *************** *** 3240,3244 ****

!

Function: int rl_show_char (int c) --- 3317,3321 ----

!

Function: int rl_show_char (int c) *************** *** 3251,3255 ****

!

Function: int rl_message (const char *, ...) --- 3328,3332 ----

!

Function: int rl_message (const char *, ...) *************** *** 3262,3266 ****

!

Function: int rl_clear_message (void) --- 3339,3343 ----

!

Function: int rl_clear_message (void) *************** *** 3269,3273 ****

!

Function: void rl_save_prompt (void) --- 3346,3350 ----

!

Function: void rl_save_prompt (void) *************** *** 3277,3281 ****

!

Function: void rl_restore_prompt (void) --- 3354,3358 ----

!

Function: void rl_restore_prompt (void) *************** *** 3285,3289 ****

!

Function: int rl_expand_prompt (char *prompt) --- 3362,3366 ----

!

Function: int rl_expand_prompt (char *prompt) *************** *** 3295,3302 **** It returns the number of visible characters on the last line of the (possibly multi-line) prompt.

!

Function: int rl_set_prompt (const char *prompt) --- 3372,3384 ---- It returns the number of visible characters on the last line of the (possibly multi-line) prompt. + Applications may indicate that the prompt contains characters that take + up no physical screen space when displayed by bracketing a sequence of + such characters with the special markers RL_PROMPT_START_IGNORE + and RL_PROMPT_END_IGNORE (declared in `readline.h'. This may + be used to embed terminal-specific escape sequences in prompts.

!

Function: int rl_set_prompt (const char *prompt) *************** *** 3318,3322 ****         [Top] [Contents] ! [Index] [ ? ] --- 3400,3404 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 3325,3329 ****

!

Function: int rl_insert_text (const char *text) --- 3407,3411 ----

!

Function: int rl_insert_text (const char *text) *************** *** 3333,3337 ****

!

Function: int rl_delete_text (int start, int end) --- 3415,3419 ----

!

Function: int rl_delete_text (int start, int end) *************** *** 3341,3345 ****

!

Function: char * rl_copy_text (int start, int end) --- 3423,3427 ----

!

Function: char * rl_copy_text (int start, int end) *************** *** 3349,3353 ****

!

Function: int rl_kill_text (int start, int end) --- 3431,3435 ----

!

Function: int rl_kill_text (int start, int end) *************** *** 3361,3365 ****

!

Function: int rl_push_macro_input (char *macro) --- 3443,3447 ----

!

Function: int rl_push_macro_input (char *macro) *************** *** 3381,3385 ****         [Top] [Contents] ! [Index] [ ? ] --- 3463,3467 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 3388,3392 ****

!

Function: int rl_read_key (void) --- 3470,3474 ----

!

Function: int rl_read_key (void) *************** *** 3400,3404 ****

!

Function: int rl_getc (FILE *stream) --- 3482,3486 ----

!

Function: int rl_getc (FILE *stream) *************** *** 3408,3412 ****

!

Function: int rl_stuff_char (int c) --- 3490,3494 ----

!

Function: int rl_stuff_char (int c) *************** *** 3419,3423 ****

!

Function: int rl_execute_next (int c) --- 3501,3505 ----

!

Function: int rl_execute_next (int c) *************** *** 3427,3431 ****

!

Function: int rl_clear_pending_input (void) --- 3509,3513 ----

!

Function: int rl_clear_pending_input (void) *************** *** 3436,3440 ****

!

Function: int rl_set_keyboard_input_timeout (int u) --- 3518,3522 ----

!

Function: int rl_set_keyboard_input_timeout (int u) *************** *** 3457,3461 ****         [Top] [Contents] ! [Index] [ ? ] --- 3539,3543 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 3464,3468 ****

!

Function: void rl_prep_terminal (int meta_flag) --- 3546,3550 ----

!

Function: void rl_prep_terminal (int meta_flag) *************** *** 3474,3478 ****

!

Function: void rl_deprep_terminal (void) --- 3556,3560 ----

!

Function: void rl_deprep_terminal (void) *************** *** 3483,3496 ****

!

Function: void rl_tty_set_default_bindings (Keymap kmap) !
Read the operating system's terminal editing characters (as would be displayed ! by stty) to their Readline equivalents. The bindings are performed ! in kmap.

!

Function: int rl_reset_terminal (const char *terminal_name) --- 3565,3587 ----

!

Function: void rl_tty_set_default_bindings (Keymap kmap) !
Read the operating system's terminal editing characters (as would be ! displayed by stty) to their Readline equivalents. ! The bindings are performed in kmap.

! !

!
Function: void rl_tty_unset_default_bindings (Keymap kmap) !
Reset the bindings manipulated by rl_tty_set_default_bindings so ! that the terminal editing characters are bound to rl_insert. ! The bindings are performed in kmap. !
!

! !

Function: int rl_reset_terminal (const char *terminal_name) *************** *** 3513,3517 ****         [Top] [Contents] ! [Index] [ ? ] --- 3604,3608 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 3520,3524 ****

!

Function: void rl_replace_line (const char *text, int clear_undo) --- 3611,3615 ----

!

Function: void rl_replace_line (const char *text, int clear_undo) *************** *** 3530,3534 ****

!

Function: int rl_extend_line_buffer (int len) --- 3621,3625 ----

!

Function: int rl_extend_line_buffer (int len) *************** *** 3538,3542 ****

!

Function: int rl_initialize (void) --- 3629,3633 ----

!

Function: int rl_initialize (void) *************** *** 3547,3551 ****

!

Function: int rl_ding (void) --- 3638,3642 ----

!

Function: int rl_ding (void) *************** *** 3554,3558 ****

!

Function: int rl_alphabetic (int c) --- 3645,3649 ----

!

Function: int rl_alphabetic (int c) *************** *** 3561,3565 ****

!

Function: void rl_display_match_list (char **matches, int len, int max) --- 3652,3656 ----

!

Function: void rl_display_match_list (char **matches, int len, int max) *************** *** 3578,3582 ****

!

Function: int _rl_uppercase_p (int c) --- 3669,3673 ----

!

Function: int _rl_uppercase_p (int c) *************** *** 3585,3589 ****

!

Function: int _rl_lowercase_p (int c) --- 3676,3680 ----

!

Function: int _rl_lowercase_p (int c) *************** *** 3592,3596 ****

!

Function: int _rl_digit_p (int c) --- 3683,3687 ----

!

Function: int _rl_digit_p (int c) *************** *** 3599,3603 ****

!

Function: int _rl_to_upper (int c) --- 3690,3694 ----

!

Function: int _rl_to_upper (int c) *************** *** 3607,3611 ****

!

Function: int _rl_to_lower (int c) --- 3698,3702 ----

!

Function: int _rl_to_lower (int c) *************** *** 3615,3619 ****

!

Function: int _rl_digit_value (int c) --- 3706,3710 ----

!

Function: int _rl_digit_value (int c) *************** *** 3633,3637 ****         [Top] [Contents] ! [Index] [ ? ] --- 3724,3728 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 3640,3644 ****

!

Function: int rl_macro_bind (const char *keyseq, const char *macro, Keymap map) --- 3731,3735 ----

!

Function: int rl_macro_bind (const char *keyseq, const char *macro, Keymap map) *************** *** 3650,3654 ****

!

Function: void rl_macro_dumper (int readable) --- 3741,3745 ----

!

Function: void rl_macro_dumper (int readable) *************** *** 3660,3664 ****

!

Function: int rl_variable_bind (const char *variable, const char *value) --- 3751,3755 ----

!

Function: int rl_variable_bind (const char *variable, const char *value) *************** *** 3670,3674 ****

!

Function: void rl_variable_dumper (int readable) --- 3761,3765 ----

!

Function: void rl_variable_dumper (int readable) *************** *** 3680,3684 ****

!

Function: int rl_set_paren_blink_timeout (int u) --- 3771,3775 ----

!

Function: int rl_set_paren_blink_timeout (int u) *************** *** 3688,3692 ****

!

Function: char * rl_get_termcap (const char *cap) --- 3779,3783 ----

!

Function: char * rl_get_termcap (const char *cap) *************** *** 3711,3715 ****         [Top] [Contents] ! [Index] [ ? ] --- 3802,3806 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 3726,3730 ****

!

Function: void rl_callback_handler_install (const char *prompt, rl_vcpfunc_t *lhandler) --- 3817,3821 ----

!

Function: void rl_callback_handler_install (const char *prompt, rl_vcpfunc_t *lhandler) *************** *** 3736,3740 ****

!

Function: void rl_callback_read_char (void) --- 3827,3831 ----

!

Function: void rl_callback_read_char (void) *************** *** 3755,3759 ****

!

Function: void rl_callback_handler_remove (void) --- 3846,3850 ----

!

Function: void rl_callback_handler_remove (void) *************** *** 3778,3782 ****         [Top] [Contents] ! [Index] [ ? ] --- 3869,3873 ----         [Top] [Contents] ! [Index] [ ? ] *************** *** 3857,3864 ****   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] --- 3948,3955 ----   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] *************** *** 3913,3917 ****

!

Variable: int rl_catch_signals --- 4004,4008 ----

!

Variable: int rl_catch_signals *************** *** 3925,3929 ****

!

Variable: int rl_catch_sigwinch --- 4016,4020 ----

!

Variable: int rl_catch_sigwinch *************** *** 3943,3947 ****

!

Function: void rl_cleanup_after_signal (void) --- 4034,4038 ----

!

Function: void rl_cleanup_after_signal (void) *************** *** 3953,3957 ****

!

Function: void rl_free_line_state (void) --- 4044,4048 ----

!

Function: void rl_free_line_state (void) *************** *** 3965,3969 ****

!

Function: void rl_reset_after_signal (void) --- 4056,4060 ----

!

Function: void rl_reset_after_signal (void) *************** *** 3980,3984 ****

!

Function: void rl_resize_terminal (void) --- 4071,4075 ----

!

Function: void rl_resize_terminal (void) *************** *** 3987,3991 ****

!

Function: void rl_set_screen_size (int rows, int cols) --- 4078,4082 ----

!

Function: void rl_set_screen_size (int rows, int cols) *************** *** 4000,4004 ****

!

Function: void rl_get_screen_size (int *rows, int *cols) --- 4091,4095 ----

!

Function: void rl_get_screen_size (int *rows, int *cols) *************** *** 4011,4015 ****

!

Function: int rl_set_signals (void) --- 4102,4106 ----

!

Function: int rl_set_signals (void) *************** *** 4021,4025 ****

!

Function: int rl_clear_signals (void) --- 4112,4116 ----

!

Function: int rl_clear_signals (void) *************** *** 4037,4044 ****   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] --- 4128,4135 ----   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] *************** *** 4070,4077 ****   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] --- 4161,4168 ----   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] *************** *** 4127,4130 **** --- 4218,4223 ---- returns as a match must be allocated with malloc(); Readline frees the strings when it has finished with them. + Such a generator function is referred to as an + application-specific completion function.

*************** *** 4132,4136 ****

!

Function: int rl_complete (int ignore, int invoking_key) --- 4225,4229 ----

!

Function: int rl_complete (int ignore, int invoking_key) *************** *** 4141,4145 ****

!

Variable: rl_compentry_func_t * rl_completion_entry_function --- 4234,4238 ----

!

Variable: rl_compentry_func_t * rl_completion_entry_function *************** *** 4149,4152 **** --- 4242,4248 ---- NULL then the default filename generator function, rl_filename_completion_function(), is used. + An application-specific completion function is a function whose + address is assigned to rl_completion_entry_function and whose + return values are used to generate possible completions.

*************** *** 4160,4167 ****   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] --- 4256,4263 ----   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] *************** *** 4174,4178 ****

!

Function: int rl_complete_internal (int what_to_do) --- 4270,4274 ----

!

Function: int rl_complete_internal (int what_to_do) *************** *** 4182,4190 **** insert all of the possible completions. `!' means to display all of the possible completions, if there is more than one, as well as ! performing partial completion.

!

Function: int rl_complete (int ignore, int invoking_key) --- 4278,4288 ---- insert all of the possible completions. `!' means to display all of the possible completions, if there is more than one, as well as ! performing partial completion. `@' is similar to `!', but ! possible completions are not listed if the possible completions share ! a common prefix.

!

Function: int rl_complete (int ignore, int invoking_key) *************** *** 4198,4202 ****

!

Function: int rl_possible_completions (int count, int invoking_key) --- 4296,4300 ----

!

Function: int rl_possible_completions (int count, int invoking_key) *************** *** 4207,4211 ****

!

Function: int rl_insert_completions (int count, int invoking_key) --- 4305,4309 ----

!

Function: int rl_insert_completions (int count, int invoking_key) *************** *** 4216,4225 ****

!

Function: int rl_completion_mode (rl_command_func_t *cfunc)
Returns the apppriate value to pass to rl_complete_internal() depending on whether cfunc was called twice in succession and ! the value of the show-all-if-ambiguous variable. Application-specific completion functions may use this function to present the same interface as rl_complete(). --- 4314,4324 ----

!

Function: int rl_completion_mode (rl_command_func_t *cfunc)
Returns the apppriate value to pass to rl_complete_internal() depending on whether cfunc was called twice in succession and ! the values of the show-all-if-ambiguous and ! show-all-if-unmodified variables. Application-specific completion functions may use this function to present the same interface as rl_complete(). *************** *** 4227,4231 ****

!

Function: char ** rl_completion_matches (const char *text, rl_compentry_func_t *entry_func) --- 4326,4330 ----

!

Function: char ** rl_completion_matches (const char *text, rl_compentry_func_t *entry_func) *************** *** 4245,4254 ****

!

Function: char * rl_filename_completion_function (const char *text, int state)
A generator function for filename completion in the general case. text is a partial filename. ! The Bash source is a useful reference for writing custom completion functions (the Bash completion functions call this and other Readline functions). --- 4344,4353 ----

!

Function: char * rl_filename_completion_function (const char *text, int state)
A generator function for filename completion in the general case. text is a partial filename. ! The Bash source is a useful reference for writing application-specific completion functions (the Bash completion functions call this and other Readline functions). *************** *** 4256,4260 ****

!

Function: char * rl_username_completion_function (const char *text, int state) --- 4355,4359 ----

!

Function: char * rl_username_completion_function (const char *text, int state) *************** *** 4274,4281 ****   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] --- 4373,4380 ----   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] *************** *** 4284,4297 ****

!

Variable: rl_compentry_func_t * rl_completion_entry_function
A pointer to the generator function for rl_completion_matches(). ! NULL means to use rl_filename_completion_function(), the default ! filename completer.

!

Variable: rl_completion_func_t * rl_attempted_completion_function --- 4383,4396 ----

!

Variable: rl_compentry_func_t * rl_completion_entry_function
A pointer to the generator function for rl_completion_matches(). ! NULL means to use rl_filename_completion_function(), ! the default filename completer.

!

Variable: rl_completion_func_t * rl_attempted_completion_function *************** *** 4310,4314 ****

!

Variable: rl_quote_func_t * rl_filename_quoting_function --- 4409,4413 ----

!

Variable: rl_quote_func_t * rl_filename_quoting_function *************** *** 4327,4331 ****

!

Variable: rl_dequote_func_t * rl_filename_dequoting_function --- 4426,4430 ----

!

Variable: rl_dequote_func_t * rl_filename_dequoting_function *************** *** 4340,4344 ****

!

Variable: rl_linebuf_func_t * rl_char_is_quoted_p --- 4439,4443 ----

!

Variable: rl_linebuf_func_t * rl_char_is_quoted_p *************** *** 4353,4357 ****

!

Variable: rl_compignore_func_t * rl_ignore_some_completions_function --- 4452,4456 ----

!

Variable: rl_compignore_func_t * rl_ignore_some_completions_function *************** *** 4366,4370 ****

!

Variable: rl_icppfunc_t * rl_directory_completion_hook --- 4465,4469 ----

!

Variable: rl_icppfunc_t * rl_directory_completion_hook *************** *** 4382,4386 ****

!

Variable: rl_compdisp_func_t * rl_completion_display_matches_hook --- 4481,4485 ----

!

Variable: rl_compdisp_func_t * rl_completion_display_matches_hook *************** *** 4399,4403 ****

!

Variable: const char * rl_basic_word_break_characters --- 4498,4502 ----

!

Variable: const char * rl_basic_word_break_characters *************** *** 4409,4413 ****

!

Variable: const char * rl_basic_quote_characters --- 4508,4512 ----

!

Variable: const char * rl_basic_quote_characters *************** *** 4416,4420 ****

!

Variable: const char * rl_completer_word_break_characters --- 4515,4519 ----

!

Variable: const char * rl_completer_word_break_characters *************** *** 4425,4429 ****

!

Variable: const char * rl_completer_quote_characters --- 4524,4540 ----

! !

!
Variable: rl_cpvfunc_t * rl_completion_word_break_hook !
If non-zero, this is the address of a function to call when Readline is ! deciding where to separate words for word completion. It should return ! a character string like rl_completer_word_break_characters to be ! used to perform the current completion. The function may choose to set ! rl_completer_word_break_characters itself. If the function ! returns NULL, rl_completer_word_break_characters is used. !
!

! !

Variable: const char * rl_completer_quote_characters *************** *** 4435,4439 ****

!

Variable: const char * rl_filename_quote_characters --- 4546,4550 ----

!

Variable: const char * rl_filename_quote_characters *************** *** 4443,4447 ****

!

Variable: const char * rl_special_prefixes --- 4554,4558 ----

!

Variable: const char * rl_special_prefixes *************** *** 4454,4458 ****

!

Variable: int rl_completion_query_items --- 4565,4569 ----

!

Variable: int rl_completion_query_items *************** *** 4463,4467 ****

!

Variable: int rl_completion_append_character --- 4574,4578 ----

!

Variable: int rl_completion_append_character *************** *** 4470,4474 **** default is a space character (` '). Setting this to the null character (`\0') prevents anything being appended automatically. ! This can be changed in custom completion functions to provide the "most sensible word separator character" according to an application-specific command line syntax specification. --- 4581,4585 ---- default is a space character (` '). Setting this to the null character (`\0') prevents anything being appended automatically. ! This can be changed in application-specific completion functions to provide the "most sensible word separator character" according to an application-specific command line syntax specification. *************** *** 4476,4489 ****

!

Variable: int rl_completion_suppress_append
If non-zero, rl_completion_append_character is not appended to ! matches at the end of the command line, as described above. It is ! set to 0 before any application-specific completion function is called.

!

Variable: int rl_completion_mark_symlink_dirs --- 4587,4631 ----

!

Variable: int rl_completion_suppress_append
If non-zero, rl_completion_append_character is not appended to ! matches at the end of the command line, as described above. ! It is set to 0 before any application-specific completion function ! is called, and may only be changed within such a function.

! !

!
Variable: int rl_completion_quote_character !
When Readline is completing quoted text, as delimited by one of the ! characters in rl_completer_quote_characters, it sets this variable ! to the quoting character found. ! This is set before any application-specific completion function is called. !
!

! ! !

!
Variable: int rl_completion_suppress_quote !
If non-zero, Readline does not append a matching quote character when ! performing completion on a quoted string. ! It is set to 0 before any application-specific completion function ! is called, and may only be changed within such a function. !
!

! ! !

!
Variable: int rl_completion_found_quote !
When Readline is completing quoted text, it sets this variable ! to a non-zero value if the word being completed contains or is delimited ! by any quoting characters, including backslashes. ! This is set before any application-specific completion function is called. !
!

! !

Variable: int rl_completion_mark_symlink_dirs *************** *** 4491,4504 **** symbolic links to directory names, subject to the value of the user-settable mark-directories variable. ! This variable exists so that application completion functions can ! override the user's global preference (set via the mark-symlinked-directories Readline variable) if appropriate. This variable is set to the user's preference before any ! application completion function is called, so unless that function ! modifies the value, the user's preferences are honored.

!

Variable: int rl_ignore_completion_duplicates --- 4633,4646 ---- symbolic links to directory names, subject to the value of the user-settable mark-directories variable. ! This variable exists so that application-specific completion functions ! can override the user's global preference (set via the mark-symlinked-directories Readline variable) if appropriate. This variable is set to the user's preference before any ! application-specific completion function is called, so unless that ! function modifies the value, the user's preferences are honored.

!

Variable: int rl_ignore_completion_duplicates *************** *** 4508,4525 ****

!

Variable: int rl_filename_completion_desired
Non-zero means that the results of the matches are to be treated as ! filenames. This is always zero on entry, and can only be changed ! within a completion entry generator function. If it is set to a non-zero ! value, directory names have a slash appended and Readline attempts to ! quote completed filenames if they contain any characters in ! rl_filename_quote_characters and rl_filename_quoting_desired ! is set to a non-zero value.

!

Variable: int rl_filename_quoting_desired --- 4650,4668 ----

!

Variable: int rl_filename_completion_desired
Non-zero means that the results of the matches are to be treated as ! filenames. This is always zero when completion is attempted, ! and can only be changed ! within an application-specific completion function. If it is set to a ! non-zero value by such a function, directory names have a slash appended ! and Readline attempts to quote completed filenames if they contain any ! characters in rl_filename_quote_characters and ! rl_filename_quoting_desired is set to a non-zero value.

!

Variable: int rl_filename_quoting_desired *************** *** 4528,4538 **** completed filename contains any characters in rl_filename_quote_chars. This is always non-zero ! on entry, and can only be changed within a completion entry generator ! function. The quoting is effected via a call to the function pointed to by rl_filename_quoting_function.

!

Variable: int rl_attempted_completion_over --- 4671,4682 ---- completed filename contains any characters in rl_filename_quote_chars. This is always non-zero ! when completion is attempted, and can only be changed within an ! application-specific completion function. ! The quoting is effected via a call to the function pointed to by rl_filename_quoting_function.

!

Variable: int rl_attempted_completion_over *************** *** 4545,4549 ****

!

Variable: int rl_completion_type --- 4689,4693 ----

!

Variable: int rl_completion_type *************** *** 4551,4558 **** attempting; see the description of rl_complete_internal() (see section 2.6.2 Completion Functions) for the list of characters.

!

Variable: int rl_inhibit_completion --- 4695,4705 ---- attempting; see the description of rl_complete_internal() (see section 2.6.2 Completion Functions) for the list of characters. + This is set to the appropriate value before any application-specific + completion function is called, allowing such functions to present + the same interface as rl_complete().

!

Variable: int rl_inhibit_completion *************** *** 4570,4577 ****   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] --- 4717,4724 ----   [ << ] [ Up ] ! [ >> ]         [Top] [Contents] ! [Index] [ ? ] *************** *** 5024,5028 ****

!


--- 5171,5175 ----

!


*************** *** 5030,5033 **** --- 5177,5741 ---- [ < ] [ > ] +   [ << ] + [ Up ] + [ >> ] +         [Top] + [Contents] + [Index] + [ ? ] + +

A. Copying This Manual

+ +

+ +

+ +
A.1 GNU Free Documentation License  License for copying this manual.
+

+ + +


+ + + + + + + + + + + +
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
+

A.1 GNU Free Documentation License

+ +

+ + +

+ Version 1.2, November 2002 +
+

+ +
 
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
+ 
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+ 

+ +

    +
  1. + PREAMBLE +

    + + The purpose of this License is to make a manual, textbook, or other + functional and useful document free in the sense of freedom: to + assure everyone the effective freedom to copy and redistribute it, + with or without modifying it, either commercially or noncommercially. + Secondarily, this License preserves for the author and publisher a way + to get credit for their work, while not being considered responsible + for modifications made by others. +

    + + This License is a kind of "copyleft", which means that derivative + works of the document must themselves be free in the same sense. It + complements the GNU General Public License, which is a copyleft + license designed for free software. +

    + + We have designed this License in order to use it for manuals for free + software, because free software needs free documentation: a free + program should come with manuals providing the same freedoms that the + software does. But this License is not limited to software manuals; + it can be used for any textual work, regardless of subject matter or + whether it is published as a printed book. We recommend this License + principally for works whose purpose is instruction or reference. +

    + +

  2. + APPLICABILITY AND DEFINITIONS +

    + + This License applies to any manual or other work, in any medium, that + contains a notice placed by the copyright holder saying it can be + distributed under the terms of this License. Such a notice grants a + world-wide, royalty-free license, unlimited in duration, to use that + work under the conditions stated herein. The "Document", below, + refers to any such manual or work. Any member of the public is a + licensee, and is addressed as "you". You accept the license if you + copy, modify or distribute the work in a way requiring permission + under copyright law. +

    + + A "Modified Version" of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. +

    + + A "Secondary Section" is a named appendix or a front-matter section + of the Document that deals exclusively with the relationship of the + publishers or authors of the Document to the Document's overall + subject (or to related matters) and contains nothing that could fall + directly within that overall subject. (Thus, if the Document is in + part a textbook of mathematics, a Secondary Section may not explain + any mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of legal, + commercial, philosophical, ethical or political position regarding + them. +

    + + The "Invariant Sections" are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the notice + that says that the Document is released under this License. If a + section does not fit the above definition of Secondary then it is not + allowed to be designated as Invariant. The Document may contain zero + Invariant Sections. If the Document does not identify any Invariant + Sections then there are none. +

    + + The "Cover Texts" are certain short passages of text that are listed, + as Front-Cover Texts or Back-Cover Texts, in the notice that says that + the Document is released under this License. A Front-Cover Text may + be at most 5 words, and a Back-Cover Text may be at most 25 words. +

    + + A "Transparent" copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, that is suitable for revising the document + straightforwardly with generic text editors or (for images composed of + pixels) generic paint programs or (for drawings) some widely available + drawing editor, and that is suitable for input to text formatters or + for automatic translation to a variety of formats suitable for input + to text formatters. A copy made in an otherwise Transparent file + format whose markup, or absence of markup, has been arranged to thwart + or discourage subsequent modification by readers is not Transparent. + An image format is not Transparent if used for any substantial amount + of text. A copy that is not "Transparent" is called "Opaque". +

    + + Examples of suitable formats for Transparent copies include plain + ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available + DTD, and standard-conforming simple HTML, + PostScript or PDF designed for human modification. Examples + of transparent image formats include PNG, XCF and + JPG. Opaque formats include proprietary formats that can be + read and edited only by proprietary word processors, SGML or + XML for which the DTD and/or processing tools are + not generally available, and the machine-generated HTML, + PostScript or PDF produced by some word processors for + output purposes only. +

    + + The "Title Page" means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the material + this License requires to appear in the title page. For works in + formats which do not have any title page as such, "Title Page" means + the text near the most prominent appearance of the work's title, + preceding the beginning of the body of the text. +

    + + A section "Entitled XYZ" means a named subunit of the Document whose + title either is precisely XYZ or contains XYZ in parentheses following + text that translates XYZ in another language. (Here XYZ stands for a + specific section name mentioned below, such as "Acknowledgements", + "Dedications", "Endorsements", or "History".) To "Preserve the Title" + of such a section when you modify the Document means that it remains a + section "Entitled XYZ" according to this definition. +

    + + The Document may include Warranty Disclaimers next to the notice which + states that this License applies to the Document. These Warranty + Disclaimers are considered to be included by reference in this + License, but only as regards disclaiming warranties: any other + implication that these Warranty Disclaimers may have is void and has + no effect on the meaning of this License. +

    + +

  3. + VERBATIM COPYING +

    + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License applies + to the Document are reproduced in all copies, and that you add no other + conditions whatsoever to those of this License. You may not use + technical measures to obstruct or control the reading or further + copying of the copies you make or distribute. However, you may accept + compensation in exchange for copies. If you distribute a large enough + number of copies you must also follow the conditions in section 3. +

    + + You may also lend copies, under the same conditions stated above, and + you may publicly display copies. +

    + +

  4. + COPYING IN QUANTITY +

    + + If you publish printed copies (or copies in media that commonly have + printed covers) of the Document, numbering more than 100, and the + Document's license notice requires Cover Texts, you must enclose the + copies in covers that carry, clearly and legibly, all these Cover + Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on + the back cover. Both covers must also clearly and legibly identify + you as the publisher of these copies. The front cover must present + the full title with all words of the title equally prominent and + visible. You may add other material on the covers in addition. + Copying with changes limited to the covers, as long as they preserve + the title of the Document and satisfy these conditions, can be treated + as verbatim copying in other respects. +

    + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto adjacent + pages. +

    + + If you publish or distribute Opaque copies of the Document numbering + more than 100, you must either include a machine-readable Transparent + copy along with each Opaque copy, or state in or with each Opaque copy + a computer-network location from which the general network-using + public has access to download using public-standard network protocols + a complete Transparent copy of the Document, free of added material. + If you use the latter option, you must take reasonably prudent steps, + when you begin distribution of Opaque copies in quantity, to ensure + that this Transparent copy will remain thus accessible at the stated + location until at least one year after the last time you distribute an + Opaque copy (directly or through your agents or retailers) of that + edition to the public. +

    + + It is requested, but not required, that you contact the authors of the + Document well before redistributing any large number of copies, to give + them a chance to provide you with an updated version of the Document. +

    + +

  5. + MODIFICATIONS +

    + + You may copy and distribute a Modified Version of the Document under + the conditions of sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the Modified + Version filling the role of the Document, thus licensing distribution + and modification of the Modified Version to whoever possesses a copy + of it. In addition, you must do these things in the Modified Version: +

    + +

      +
    1. + Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +

      + +

    2. + List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. +

      + +

    3. + State on the Title page the name of the publisher of the + Modified Version, as the publisher. +

      + +

    4. + Preserve all the copyright notices of the Document. +

      + +

    5. + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +

      + +

    6. + Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +

      + +

    7. + Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +

      + +

    8. + Include an unaltered copy of this License. +

      + +

    9. + Preserve the section Entitled "History", Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +

      + +

    10. + Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +

      + +

    11. + For any section Entitled "Acknowledgements" or "Dedications", Preserve + the Title of the section, and preserve in the section all the + substance and tone of each of the contributor acknowledgements and/or + dedications given therein. +

      + +

    12. + Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +

      + +

    13. + Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. +

      + +

    14. + Do not retitle any existing section to be Entitled "Endorsements" or + to conflict in title with any Invariant Section. +

      + +

    15. + Preserve any Warranty Disclaimers. +
    +

    + + If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no material + copied from the Document, you may at your option designate some or all + of these sections as invariant. To do this, add their titles to the + list of Invariant Sections in the Modified Version's license notice. + These titles must be distinct from any other section titles. +

    + + You may add a section Entitled "Endorsements", provided it contains + nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text has + been approved by an organization as the authoritative definition of a + standard. +

    + + You may add a passage of up to five words as a Front-Cover Text, and a + passage of up to 25 words as a Back-Cover Text, to the end of the list + of Cover Texts in the Modified Version. Only one passage of + Front-Cover Text and one of Back-Cover Text may be added by (or + through arrangements made by) any one entity. If the Document already + includes a cover text for the same cover, previously added by you or + by arrangement made by the same entity you are acting on behalf of, + you may not add another; but you may replace the old one, on explicit + permission from the previous publisher that added the old one. +

    + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to assert or + imply endorsement of any Modified Version. +

    + +

  6. + COMBINING DOCUMENTS +

    + + You may combine the Document with other documents released under this + License, under the terms defined in section 4 above for modified + versions, provided that you include in the combination all of the + Invariant Sections of all of the original documents, unmodified, and + list them all as Invariant Sections of your combined work in its + license notice, and that you preserve all their Warranty Disclaimers. +

    + + The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name but + different contents, make the title of each such section unique by + adding at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique number. + Make the same adjustment to the section titles in the list of + Invariant Sections in the license notice of the combined work. +

    + + In the combination, you must combine any sections Entitled "History" + in the various original documents, forming one section Entitled + "History"; likewise combine any sections Entitled "Acknowledgements", + and any sections Entitled "Dedications". You must delete all + sections Entitled "Endorsements." +

    + +

  7. + COLLECTIONS OF DOCUMENTS +

    + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies of this + License in the various documents with a single copy that is included in + the collection, provided that you follow the rules of this License for + verbatim copying of each of the documents in all other respects. +

    + + You may extract a single document from such a collection, and distribute + it individually under this License, provided you insert a copy of this + License into the extracted document, and follow this License in all + other respects regarding verbatim copying of that document. +

    + +

  8. + AGGREGATION WITH INDEPENDENT WORKS +

    + + A compilation of the Document or its derivatives with other separate + and independent documents or works, in or on a volume of a storage or + distribution medium, is called an "aggregate" if the copyright + resulting from the compilation is not used to limit the legal rights + of the compilation's users beyond what the individual works permit. + When the Document is included an aggregate, this License does not + apply to the other works in the aggregate which are not themselves + derivative works of the Document. +

    + + If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one half of + the entire aggregate, the Document's Cover Texts may be placed on + covers that bracket the Document within the aggregate, or the + electronic equivalent of covers if the Document is in electronic form. + Otherwise they must appear on printed covers that bracket the whole + aggregate. +

    + +

  9. + TRANSLATION +

    + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. + Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License, and all the license notices in the + Document, and any Warranty Disclaimers, provided that you also include + the original English version of this License and the original versions + of those notices and disclaimers. In case of a disagreement between + the translation and the original version of this License or a notice + or disclaimer, the original version will prevail. +

    + + If a section in the Document is Entitled "Acknowledgements", + "Dedications", or "History", the requirement (section 4) to Preserve + its Title (section 1) will typically require changing the actual + title. +

    + +

  10. + TERMINATION +

    + + You may not copy, modify, sublicense, or distribute the Document except + as expressly provided for under this License. Any other attempt to + copy, modify, sublicense or distribute the Document is void, and will + automatically terminate your rights under this License. However, + parties who have received copies, or rights, from you under this + License will not have their licenses terminated so long as such + parties remain in full compliance. +

    + +

  11. + FUTURE REVISIONS OF THIS LICENSE +

    + + The Free Software Foundation may publish new, revised versions + of the GNU Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + http://www.gnu.org/copyleft/. +

    + + Each version of the License is given a distinguishing version number. + If the Document specifies that a particular numbered version of this + License "or any later version" applies to it, you have the option of + following the terms and conditions either of that specified version or + of any later version that has been published (not as a draft) by the + Free Software Foundation. If the Document does not specify a version + number of this License, you may choose any version ever published (not + as a draft) by the Free Software Foundation. +

+

+ +


+ + + + + + + + + + + +
[ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
+

A.1.1 ADDENDUM: How to use this License for your documents

+ +

+ + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: +

+ +
 
  Copyright (C)  year  your name.
+   Permission is granted to copy, distribute and/or modify this document
+   under the terms of the GNU Free Documentation License, Version 1.2
+   or any later version published by the Free Software Foundation;
+   with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+   A copy of the license is included in the section entitled ``GNU
+   Free Documentation License''.
+ 

+ + If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, + replace the "with...Texts." line with this: +

+ +
 
    with the Invariant Sections being list their titles, with
+     the Front-Cover Texts being list, and with the Back-Cover Texts
+     being list.
+ 

+ + If you have Invariant Sections without Cover Texts, or some other + combination of the three, merge those two alternatives to suit the + situation. +

+ + If your document contains nontrivial examples of program code, we + recommend releasing these examples in parallel under your choice of + free software license, such as the GNU General Public License, + to permit their use in free software. +

+ + +


+ + + + *************** *** 5035,5047 **** !
[ < ][ > ]   [ << ] [ Up ]         [Top] [Contents][Index] [ ? ]

Concept Index

! ! !
Jump to:   C   E   I   --- 5743,5759 ----         [Top] [Contents][Index] [ ? ]

Concept Index

! ! + + + *************** *** 5066,5069 **** --- 5781,5787 ---- + + + *************** *** 5078,5082 **** ! --- 5796,5800 ---- ! *************** *** 5086,5093 **** !
Jump to:   A !   ! C   E   + F +   I   *************** *** 5060,5063 **** --- 5772,5778 ----
Index Entry Section

A
application-specific completion functions2.6 Custom Completers

C
command editing1.2.1 Readline Bare Essentials
editing command lines1.2.1 Readline Bare Essentials

F
FDL, GNU Free Documentation LicenseA.1 GNU Free Documentation License

I
initialization file, readline1.3 Readline Init File

R
readline, function2.1 Basic Behavior

V

R
readline, function2.1 Basic Behavior

V
yanking text1.2.3 Readline Killing Commands

!
Jump to:   C   E   I   --- 5804,5815 ----
yanking text1.2.3 Readline Killing Commands

!
Jump to:   A !   ! C   E   + F +   I   *************** *** 5106,5112 ****
! ! --- 5828,5834 ----
!
[ < ] [ > ]   [ << ]
! *************** *** 5115,5123 **** !
[ < ] [ > ]   [ << ]         [Top] [Contents][Index] [ ? ]

Function and Variable Index

! !
Jump to:   _   --- 5837,5845 ----         [Top] [Contents][Index] [ ? ]

Function and Variable Index

! ! ! ! ! ! ! ! ! ! - ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! - ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! - ! ! ! - ! ! ! ! ! - ! ! ! ! --- 5890,6018 ---- ! ! ! ! ! ! ! ! + ! ! ! ! ! ! + ! ! ! ! ! ! ! + ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! + ! + ! ! ! ! ! ! ! ! + *************** *** 5298,5540 **** ! ! - ! ! - ! ! ! ! ! - ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! - ! ! ! ! - ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
Jump to:   _   *************** *** 5168,5296 ****

_
_rl_digit_p2.4.10 Utility Functions
_rl_digit_value2.4.10 Utility Functions
_rl_lowercase_p2.4.10 Utility Functions
_rl_to_lower2.4.10 Utility Functions
_rl_to_upper2.4.10 Utility Functions
_rl_uppercase_p2.4.10 Utility Functions

A
abort (C-g)1.4.8 Some Miscellaneous Commands
abort (C-g)1.4.8 Some Miscellaneous Commands
accept-line (Newline or Return)1.4.2 Commands For Manipulating The History
accept-line (Newline or Return)1.4.2 Commands For Manipulating The History

B
backward-char (C-b)1.4.1 Commands For Moving
backward-char (C-b)1.4.1 Commands For Moving
backward-delete-char (Rubout)1.4.3 Commands For Changing Text
backward-delete-char (Rubout)1.4.3 Commands For Changing Text
backward-kill-line (C-x Rubout)1.4.4 Killing And Yanking
backward-kill-line (C-x Rubout)1.4.4 Killing And Yanking
backward-kill-word (M-DEL)1.4.4 Killing And Yanking
backward-kill-word (M-DEL)1.4.4 Killing And Yanking
backward-word (M-b)1.4.1 Commands For Moving
backward-word (M-b)1.4.1 Commands For Moving
beginning-of-history (M-&#60;)1.4.2 Commands For Manipulating The History
beginning-of-history (M-&#60;)1.4.2 Commands For Manipulating The History
beginning-of-line (C-a)1.4.1 Commands For Moving
beginning-of-line (C-a)1.4.1 Commands For Moving
bell-style1.3.1 Readline Init File Syntax

C
call-last-kbd-macro (C-x e)1.4.7 Keyboard Macros
call-last-kbd-macro (C-x e)1.4.7 Keyboard Macros
capitalize-word (M-c)1.4.3 Commands For Changing Text
capitalize-word (M-c)1.4.3 Commands For Changing Text
character-search (C-])1.4.8 Some Miscellaneous Commands
character-search (C-])1.4.8 Some Miscellaneous Commands
character-search-backward (M-C-])1.4.8 Some Miscellaneous Commands
character-search-backward (M-C-])1.4.8 Some Miscellaneous Commands
clear-screen (C-l)1.4.1 Commands For Moving
clear-screen (C-l)1.4.1 Commands For Moving
comment-begin1.3.1 Readline Init File Syntax
complete (TAB)1.4.6 Letting Readline Type For You
complete (TAB)1.4.6 Letting Readline Type For You
completion-query-items1.3.1 Readline Init File Syntax
convert-meta1.3.1 Readline Init File Syntax
copy-backward-word ()1.4.4 Killing And Yanking
copy-backward-word ()1.4.4 Killing And Yanking
copy-forward-word ()1.4.4 Killing And Yanking
copy-forward-word ()1.4.4 Killing And Yanking
copy-region-as-kill ()1.4.4 Killing And Yanking
copy-region-as-kill ()1.4.4 Killing And Yanking

D
delete-char (C-d)1.4.3 Commands For Changing Text
delete-char (C-d)1.4.3 Commands For Changing Text
delete-char-or-list ()1.4.6 Letting Readline Type For You
delete-char-or-list ()1.4.6 Letting Readline Type For You
delete-horizontal-space ()1.4.4 Killing And Yanking
delete-horizontal-space ()1.4.4 Killing And Yanking
digit-argument (M-0, M-1, <small>...</small> M--)1.4.5 Specifying Numeric Arguments
digit-argument (M-0, M-1, <small>...</small> M--)1.4.5 Specifying Numeric Arguments
disable-completion1.3.1 Readline Init File Syntax
do-uppercase-version (M-a, M-b, M-x, <small>...</small>)1.4.8 Some Miscellaneous Commands
do-uppercase-version (M-a, M-b, M-x, <small>...</small>)1.4.8 Some Miscellaneous Commands
downcase-word (M-l)1.4.3 Commands For Changing Text
downcase-word (M-l)1.4.3 Commands For Changing Text
dump-functions ()1.4.8 Some Miscellaneous Commands
dump-functions ()1.4.8 Some Miscellaneous Commands
dump-macros ()1.4.8 Some Miscellaneous Commands
dump-macros ()1.4.8 Some Miscellaneous Commands
dump-variables ()1.4.8 Some Miscellaneous Commands
dump-variables ()1.4.8 Some Miscellaneous Commands

E
editing-mode1.3.1 Readline Init File Syntax
emacs-editing-mode (C-e)1.4.8 Some Miscellaneous Commands
emacs-editing-mode (C-e)1.4.8 Some Miscellaneous Commands
enable-keypad1.3.1 Readline Init File Syntax
end-kbd-macro (C-x ))1.4.7 Keyboard Macros
end-kbd-macro (C-x ))1.4.7 Keyboard Macros
end-of-history (M-&#62;)1.4.2 Commands For Manipulating The History
end-of-history (M-&#62;)1.4.2 Commands For Manipulating The History
end-of-line (C-e)1.4.1 Commands For Moving
end-of-line (C-e)1.4.1 Commands For Moving
exchange-point-and-mark (C-x C-x)1.4.8 Some Miscellaneous Commands
exchange-point-and-mark (C-x C-x)1.4.8 Some Miscellaneous Commands
expand-tilde1.3.1 Readline Init File Syntax

F
forward-backward-delete-char ()1.4.3 Commands For Changing Text
forward-backward-delete-char ()1.4.3 Commands For Changing Text
forward-char (C-f)1.4.1 Commands For Moving
forward-char (C-f)1.4.1 Commands For Moving
forward-search-history (C-s)1.4.2 Commands For Manipulating The History
forward-search-history (C-s)1.4.2 Commands For Manipulating The History
forward-word (M-f)1.4.1 Commands For Moving
forward-word (M-f)1.4.1 Commands For Moving

H
history-preserve-point1.3.1 Readline Init File Syntax
history-search-backward ()1.4.2 Commands For Manipulating The History
history-search-backward ()1.4.2 Commands For Manipulating The History
history-search-forward ()1.4.2 Commands For Manipulating The History
history-search-forward ()1.4.2 Commands For Manipulating The History
horizontal-scroll-mode1.3.1 Readline Init File Syntax

I
input-meta1.3.1 Readline Init File Syntax
insert-comment (M-#)1.4.8 Some Miscellaneous Commands
insert-comment (M-#)1.4.8 Some Miscellaneous Commands
insert-completions (M-*)1.4.6 Letting Readline Type For You
insert-completions (M-*)1.4.6 Letting Readline Type For You
isearch-terminators1.3.1 Readline Init File Syntax

K
keymap1.3.1 Readline Init File Syntax
kill-line (C-k)1.4.4 Killing And Yanking
kill-line (C-k)1.4.4 Killing And Yanking
kill-region ()1.4.4 Killing And Yanking
kill-region ()1.4.4 Killing And Yanking
kill-whole-line ()1.4.4 Killing And Yanking
kill-whole-line ()1.4.4 Killing And Yanking
kill-word (M-d)1.4.4 Killing And Yanking
kill-word (M-d)1.4.4 Killing And Yanking

M

_
_rl_digit_p2.4.10 Utility Functions
_rl_digit_value2.4.10 Utility Functions
_rl_lowercase_p2.4.10 Utility Functions
_rl_to_lower2.4.10 Utility Functions
_rl_to_upper2.4.10 Utility Functions
_rl_uppercase_p2.4.10 Utility Functions

A
abort (C-g)1.4.8 Some Miscellaneous Commands
abort (C-g)1.4.8 Some Miscellaneous Commands
accept-line (Newline or Return)1.4.2 Commands For Manipulating The History
accept-line (Newline or Return)1.4.2 Commands For Manipulating The History

B
backward-char (C-b)1.4.1 Commands For Moving
backward-char (C-b)1.4.1 Commands For Moving
backward-delete-char (Rubout)1.4.3 Commands For Changing Text
backward-delete-char (Rubout)1.4.3 Commands For Changing Text
backward-kill-line (C-x Rubout)1.4.4 Killing And Yanking
backward-kill-line (C-x Rubout)1.4.4 Killing And Yanking
backward-kill-word (M-DEL)1.4.4 Killing And Yanking
backward-kill-word (M-DEL)1.4.4 Killing And Yanking
backward-word (M-b)1.4.1 Commands For Moving
backward-word (M-b)1.4.1 Commands For Moving
beginning-of-history (M-&#60;)1.4.2 Commands For Manipulating The History
beginning-of-history (M-&#60;)1.4.2 Commands For Manipulating The History
beginning-of-line (C-a)1.4.1 Commands For Moving
beginning-of-line (C-a)1.4.1 Commands For Moving
bell-style1.3.1 Readline Init File Syntax

C
call-last-kbd-macro (C-x e)1.4.7 Keyboard Macros
call-last-kbd-macro (C-x e)1.4.7 Keyboard Macros
capitalize-word (M-c)1.4.3 Commands For Changing Text
capitalize-word (M-c)1.4.3 Commands For Changing Text
character-search (C-])1.4.8 Some Miscellaneous Commands
character-search (C-])1.4.8 Some Miscellaneous Commands
character-search-backward (M-C-])1.4.8 Some Miscellaneous Commands
character-search-backward (M-C-])1.4.8 Some Miscellaneous Commands
clear-screen (C-l)1.4.1 Commands For Moving
clear-screen (C-l)1.4.1 Commands For Moving
comment-begin1.3.1 Readline Init File Syntax
complete (TAB)1.4.6 Letting Readline Type For You
complete (TAB)1.4.6 Letting Readline Type For You
completion-query-items1.3.1 Readline Init File Syntax
convert-meta1.3.1 Readline Init File Syntax
copy-backward-word ()1.4.4 Killing And Yanking
copy-backward-word ()1.4.4 Killing And Yanking
copy-forward-word ()1.4.4 Killing And Yanking
copy-forward-word ()1.4.4 Killing And Yanking
copy-region-as-kill ()1.4.4 Killing And Yanking
copy-region-as-kill ()1.4.4 Killing And Yanking

D
delete-char (C-d)1.4.3 Commands For Changing Text
delete-char (C-d)1.4.3 Commands For Changing Text
delete-char-or-list ()1.4.6 Letting Readline Type For You
delete-char-or-list ()1.4.6 Letting Readline Type For You
delete-horizontal-space ()1.4.4 Killing And Yanking
delete-horizontal-space ()1.4.4 Killing And Yanking
digit-argument (M-0, M-1, <small>...</small> M--)1.4.5 Specifying Numeric Arguments
digit-argument (M-0, M-1, <small>...</small> M--)1.4.5 Specifying Numeric Arguments
disable-completion1.3.1 Readline Init File Syntax
do-uppercase-version (M-a, M-b, M-x, <small>...</small>)1.4.8 Some Miscellaneous Commands
do-uppercase-version (M-a, M-b, M-x, <small>...</small>)1.4.8 Some Miscellaneous Commands
downcase-word (M-l)1.4.3 Commands For Changing Text
downcase-word (M-l)1.4.3 Commands For Changing Text
dump-functions ()1.4.8 Some Miscellaneous Commands
dump-functions ()1.4.8 Some Miscellaneous Commands
dump-macros ()1.4.8 Some Miscellaneous Commands
dump-macros ()1.4.8 Some Miscellaneous Commands
dump-variables ()1.4.8 Some Miscellaneous Commands
dump-variables ()1.4.8 Some Miscellaneous Commands

E
editing-mode1.3.1 Readline Init File Syntax
emacs-editing-mode (C-e)1.4.8 Some Miscellaneous Commands
emacs-editing-mode (C-e)1.4.8 Some Miscellaneous Commands
enable-keypad1.3.1 Readline Init File Syntax
end-kbd-macro (C-x ))1.4.7 Keyboard Macros
end-kbd-macro (C-x ))1.4.7 Keyboard Macros
end-of-history (M-&#62;)1.4.2 Commands For Manipulating The History
end-of-history (M-&#62;)1.4.2 Commands For Manipulating The History
end-of-line (C-e)1.4.1 Commands For Moving
end-of-line (C-e)1.4.1 Commands For Moving
exchange-point-and-mark (C-x C-x)1.4.8 Some Miscellaneous Commands
exchange-point-and-mark (C-x C-x)1.4.8 Some Miscellaneous Commands
expand-tilde1.3.1 Readline Init File Syntax

F
forward-backward-delete-char ()1.4.3 Commands For Changing Text
forward-backward-delete-char ()1.4.3 Commands For Changing Text
forward-char (C-f)1.4.1 Commands For Moving
forward-char (C-f)1.4.1 Commands For Moving
forward-search-history (C-s)1.4.2 Commands For Manipulating The History
forward-search-history (C-s)1.4.2 Commands For Manipulating The History
forward-word (M-f)1.4.1 Commands For Moving
forward-word (M-f)1.4.1 Commands For Moving

H
history-preserve-point1.3.1 Readline Init File Syntax
history-search-backward ()1.4.2 Commands For Manipulating The History
history-search-backward ()1.4.2 Commands For Manipulating The History
history-search-forward ()1.4.2 Commands For Manipulating The History
history-search-forward ()1.4.2 Commands For Manipulating The History
horizontal-scroll-mode1.3.1 Readline Init File Syntax

I
input-meta1.3.1 Readline Init File Syntax
insert-comment (M-#)1.4.8 Some Miscellaneous Commands
insert-comment (M-#)1.4.8 Some Miscellaneous Commands
insert-completions (M-*)1.4.6 Letting Readline Type For You
insert-completions (M-*)1.4.6 Letting Readline Type For You
isearch-terminators1.3.1 Readline Init File Syntax

K
keymap1.3.1 Readline Init File Syntax
kill-line (C-k)1.4.4 Killing And Yanking
kill-line (C-k)1.4.4 Killing And Yanking
kill-region ()1.4.4 Killing And Yanking
kill-region ()1.4.4 Killing And Yanking
kill-whole-line ()1.4.4 Killing And Yanking
kill-whole-line ()1.4.4 Killing And Yanking
kill-word (M-d)1.4.4 Killing And Yanking
kill-word (M-d)1.4.4 Killing And Yanking

M
mark-symlinked-directories1.3.1 Readline Init File Syntax
match-hidden-files1.3.1 Readline Init File Syntax
menu-complete ()1.4.6 Letting Readline Type For You
menu-complete ()1.4.6 Letting Readline Type For You
meta-flag1.3.1 Readline Init File Syntax

N
next-history (C-n)1.4.2 Commands For Manipulating The History
next-history (C-n)1.4.2 Commands For Manipulating The History
non-incremental-forward-search-history (M-n)1.4.2 Commands For Manipulating The History
non-incremental-forward-search-history (M-n)1.4.2 Commands For Manipulating The History
non-incremental-reverse-search-history (M-p)1.4.2 Commands For Manipulating The History
non-incremental-reverse-search-history (M-p)1.4.2 Commands For Manipulating The History

O
output-meta1.3.1 Readline Init File Syntax
overwrite-mode ()1.4.3 Commands For Changing Text
overwrite-mode ()1.4.3 Commands For Changing Text

P
page-completions1.3.1 Readline Init File Syntax
possible-completions (M-?)1.4.6 Letting Readline Type For You
possible-completions (M-?)1.4.6 Letting Readline Type For You
prefix-meta (ESC)1.4.8 Some Miscellaneous Commands
prefix-meta (ESC)1.4.8 Some Miscellaneous Commands
previous-history (C-p)1.4.2 Commands For Manipulating The History
previous-history (C-p)1.4.2 Commands For Manipulating The History

Q
quoted-insert (C-q or C-v)1.4.3 Commands For Changing Text
quoted-insert (C-q or C-v)1.4.3 Commands For Changing Text

R
re-read-init-file (C-x C-r)1.4.8 Some Miscellaneous Commands
re-read-init-file (C-x C-r)1.4.8 Some Miscellaneous Commands
readline2.1 Basic Behavior
redraw-current-line ()1.4.1 Commands For Moving
redraw-current-line ()1.4.1 Commands For Moving
reverse-search-history (C-r)1.4.2 Commands For Manipulating The History
reverse-search-history (C-r)1.4.2 Commands For Manipulating The History
revert-line (M-r)1.4.8 Some Miscellaneous Commands
revert-line (M-r)1.4.8 Some Miscellaneous Commands
rl_add_defun2.4.1 Naming a Function
rl_add_funmap_entry2.4.4 Associating Function Names and Bindings
rl_add_undo2.4.5 Allowing Undoing
rl_alphabetic2.4.10 Utility Functions
rl_already_prompted2.3 Readline Variables
rl_attempted_completion_function2.6.3 Completion Variables
rl_attempted_completion_over2.6.3 Completion Variables
rl_basic_quote_characters2.6.3 Completion Variables
rl_basic_word_break_characters2.6.3 Completion Variables
rl_begin_undo_group2.4.5 Allowing Undoing
rl_bind_key2.4.3 Binding Keys
rl_bind_key_in_map2.4.3 Binding Keys
rl_binding_keymap2.3 Readline Variables
rl_callback_handler_install2.4.12 Alternate Interface
rl_callback_handler_remove2.4.12 Alternate Interface
rl_callback_read_char2.4.12 Alternate Interface
rl_catch_signals2.5 Readline Signal Handling
rl_catch_sigwinch2.5 Readline Signal Handling
rl_char_is_quoted_p2.6.3 Completion Variables
rl_cleanup_after_signal2.5 Readline Signal Handling
rl_clear_message2.4.6 Redisplay
rl_clear_pending_input2.4.8 Character Input
rl_clear_signals2.5 Readline Signal Handling
rl_complete2.6.1 How Completing Works
rl_complete2.6.2 Completion Functions
rl_complete_internal2.6.2 Completion Functions
rl_completer_quote_characters2.6.3 Completion Variables
rl_completer_word_break_characters2.6.3 Completion Variables
rl_completion_append_character2.6.3 Completion Variables
rl_completion_display_matches_hook2.6.3 Completion Variables
rl_completion_entry_function2.6.1 How Completing Works
rl_completion_entry_function2.6.3 Completion Variables
rl_completion_mark_symlink_dirs2.6.3 Completion Variables
rl_completion_matches2.6.2 Completion Functions
rl_completion_mode2.6.2 Completion Functions
rl_completion_query_items2.6.3 Completion Variables
rl_completion_suppress_append2.6.3 Completion Variables
rl_completion_type2.6.3 Completion Variables
rl_copy_keymap2.4.2 Selecting a Keymap
rl_copy_text2.4.7 Modifying Text
rl_crlf2.4.6 Redisplay
rl_delete_text2.4.7 Modifying Text
rl_deprep_term_function2.3 Readline Variables
rl_deprep_terminal2.4.9 Terminal Management
rl_ding2.4.10 Utility Functions
rl_directory_completion_hook2.6.3 Completion Variables
rl_discard_keymap2.4.2 Selecting a Keymap
rl_dispatching2.3 Readline Variables
rl_display_match_list2.4.10 Utility Functions
rl_do_undo2.4.5 Allowing Undoing
rl_done2.3 Readline Variables
rl_editing_mode2.3 Readline Variables
rl_end2.3 Readline Variables
rl_end_undo_group2.4.5 Allowing Undoing
rl_erase_empty_line2.3 Readline Variables
rl_event_hook2.3 Readline Variables
rl_execute_next2.4.8 Character Input
rl_executing_keymap2.3 Readline Variables
rl_executing_macro2.3 Readline Variables
rl_expand_prompt2.4.6 Redisplay
rl_explicit_arg2.3 Readline Variables
rl_extend_line_buffer2.4.10 Utility Functions
rl_filename_completion_desired2.6.3 Completion Variables
rl_filename_completion_function2.6.2 Completion Functions
rl_filename_dequoting_function2.6.3 Completion Variables
rl_filename_quote_characters2.6.3 Completion Variables
rl_filename_quoting_desired2.6.3 Completion Variables
rl_filename_quoting_function2.6.3 Completion Variables
rl_forced_update_display2.4.6 Redisplay
rl_free_line_state2.5 Readline Signal Handling
rl_free_undo_list2.4.5 Allowing Undoing
rl_function_dumper2.4.4 Associating Function Names and Bindings
rl_function_of_keyseq2.4.4 Associating Function Names and Bindings
rl_funmap_names2.4.4 Associating Function Names and Bindings
rl_generic_bind2.4.3 Binding Keys
rl_get_keymap2.4.2 Selecting a Keymap
rl_get_keymap_by_name2.4.2 Selecting a Keymap
rl_get_keymap_name2.4.2 Selecting a Keymap
rl_get_screen_size2.5 Readline Signal Handling
rl_get_termcap2.4.11 Miscellaneous Functions
rl_getc2.4.8 Character Input
rl_getc_function2.3 Readline Variables
rl_gnu_readline_p2.3 Readline Variables
rl_ignore_completion_duplicates2.6.3 Completion Variables
rl_ignore_some_completions_function2.6.3 Completion Variables
rl_inhibit_completion2.6.3 Completion Variables
rl_initialize2.4.10 Utility Functions
rl_insert_completions2.6.2 Completion Functions
rl_insert_text2.4.7 Modifying Text
rl_instream2.3 Readline Variables
rl_invoking_keyseqs2.4.4 Associating Function Names and Bindings
rl_invoking_keyseqs_in_map2.4.4 Associating Function Names and Bindings
rl_kill_text2.4.7 Modifying Text
rl_last_func2.3 Readline Variables
rl_library_version2.3 Readline Variables
rl_line_buffer2.3 Readline Variables
rl_list_funmap_names2.4.4 Associating Function Names and Bindings
rl_macro_bind2.4.11 Miscellaneous Functions
rl_macro_dumper2.4.11 Miscellaneous Functions
rl_make_bare_keymap2.4.2 Selecting a Keymap
rl_make_keymap2.4.2 Selecting a Keymap
rl_mark2.3 Readline Variables
rl_message2.4.6 Redisplay
rl_modifying2.4.5 Allowing Undoing
rl_named_function2.4.4 Associating Function Names and Bindings
rl_num_chars_to_read2.3 Readline Variables
rl_numeric_arg2.3 Readline Variables
rl_on_new_line2.4.6 Redisplay
rl_on_new_line_with_prompt2.4.6 Redisplay
rl_outstream2.3 Readline Variables
rl_parse_and_bind2.4.3 Binding Keys
rl_pending_input2.3 Readline Variables
rl_point2.3 Readline Variables
rl_possible_completions2.6.2 Completion Functions
rl_pre_input_hook2.3 Readline Variables
rl_prep_term_function2.3 Readline Variables
rl_prep_terminal2.4.9 Terminal Management
rl_prompt2.3 Readline Variables
rl_push_macro_input2.4.7 Modifying Text
rl_read_init_file2.4.3 Binding Keys
rl_read_key2.4.8 Character Input
rl_readline_name2.3 Readline Variables
rl_readline_state2.3 Readline Variables
rl_readline_version2.3 Readline Variables
rl_redisplay2.4.6 Redisplay
rl_redisplay_function2.3 Readline Variables
rl_replace_line2.4.10 Utility Functions
rl_reset_after_signal2.5 Readline Signal Handling
rl_reset_line_state2.4.6 Redisplay
rl_reset_terminal2.4.9 Terminal Management
rl_resize_terminal2.5 Readline Signal Handling
rl_restore_prompt2.4.6 Redisplay
rl_save_prompt2.4.6 Redisplay
rl_set_key2.4.3 Binding Keys
rl_set_keyboard_input_timeout2.4.8 Character Input
rl_set_keymap2.4.2 Selecting a Keymap
rl_set_paren_blink_timeout2.4.11 Miscellaneous Functions
rl_set_prompt2.4.6 Redisplay
rl_set_screen_size2.5 Readline Signal Handling
rl_set_signals2.5 Readline Signal Handling
rl_show_char2.4.6 Redisplay
rl_special_prefixes2.6.3 Completion Variables
rl_startup_hook2.3 Readline Variables
rl_stuff_char2.4.8 Character Input
rl_terminal_name2.3 Readline Variables
rl_tty_set_default_bindings2.4.9 Terminal Management
rl_unbind_command_in_map2.4.3 Binding Keys
rl_unbind_function_in_map2.4.3 Binding Keys
rl_unbind_key2.4.3 Binding Keys
rl_unbind_key_in_map2.4.3 Binding Keys
rl_username_completion_function2.6.2 Completion Functions
rl_variable_bind2.4.11 Miscellaneous Functions
rl_variable_dumper2.4.11 Miscellaneous Functions

S
self-insert (a, b, A, 1, !, <small>...</small>)1.4.3 Commands For Changing Text
self-insert (a, b, A, 1, !, <small>...</small>)1.4.3 Commands For Changing Text
set-mark (C-@)1.4.8 Some Miscellaneous Commands
set-mark (C-@)1.4.8 Some Miscellaneous Commands
show-all-if-ambiguous1.3.1 Readline Init File Syntax
start-kbd-macro (C-x ()1.4.7 Keyboard Macros
start-kbd-macro (C-x ()1.4.7 Keyboard Macros

T
tab-insert (M-TAB)1.4.3 Commands For Changing Text
tab-insert (M-TAB)1.4.3 Commands For Changing Text
tilde-expand (M-~)1.4.8 Some Miscellaneous Commands
tilde-expand (M-~)1.4.8 Some Miscellaneous Commands
transpose-chars (C-t)1.4.3 Commands For Changing Text
transpose-chars (C-t)1.4.3 Commands For Changing Text
transpose-words (M-t)1.4.3 Commands For Changing Text
transpose-words (M-t)1.4.3 Commands For Changing Text

U
undo (C-_ or C-x C-u)1.4.8 Some Miscellaneous Commands
undo (C-_ or C-x C-u)1.4.8 Some Miscellaneous Commands
universal-argument ()1.4.5 Specifying Numeric Arguments
universal-argument ()1.4.5 Specifying Numeric Arguments
unix-line-discard (C-u)1.4.4 Killing And Yanking
unix-line-discard (C-u)1.4.4 Killing And Yanking
unix-word-rubout (C-w)1.4.4 Killing And Yanking
unix-word-rubout (C-w)1.4.4 Killing And Yanking
upcase-word (M-u)1.4.3 Commands For Changing Text
upcase-word (M-u)1.4.3 Commands For Changing Text

V
vi-editing-mode (M-C-j)1.4.8 Some Miscellaneous Commands
vi-editing-mode (M-C-j)1.4.8 Some Miscellaneous Commands
visible-stats1.3.1 Readline Init File Syntax

Y
yank (C-y)1.4.4 Killing And Yanking
yank (C-y)1.4.4 Killing And Yanking
yank-last-arg (M-. or M-_)1.4.2 Commands For Manipulating The History
yank-last-arg (M-. or M-_)1.4.2 Commands For Manipulating The History
yank-nth-arg (M-C-y)1.4.2 Commands For Manipulating The History
yank-nth-arg (M-C-y)1.4.2 Commands For Manipulating The History
yank-pop (M-y)1.4.4 Killing And Yanking
yank-pop (M-y)1.4.4 Killing And Yanking

! ! ! ! + + ! ! ! ! + + ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! + ! ! ! ! ! ! ! ! + ! ! ! ! ! ! ! ! !
Jump to:   _ --- 6020,6276 ----
mark-symlinked-directories1.3.1 Readline Init File Syntax
match-hidden-files1.3.1 Readline Init File Syntax
menu-complete ()1.4.6 Letting Readline Type For You
menu-complete ()1.4.6 Letting Readline Type For You
meta-flag1.3.1 Readline Init File Syntax

N
next-history (C-n)1.4.2 Commands For Manipulating The History
next-history (C-n)1.4.2 Commands For Manipulating The History
non-incremental-forward-search-history (M-n)1.4.2 Commands For Manipulating The History
non-incremental-forward-search-history (M-n)1.4.2 Commands For Manipulating The History
non-incremental-reverse-search-history (M-p)1.4.2 Commands For Manipulating The History
non-incremental-reverse-search-history (M-p)1.4.2 Commands For Manipulating The History

O
output-meta1.3.1 Readline Init File Syntax
overwrite-mode ()1.4.3 Commands For Changing Text
overwrite-mode ()1.4.3 Commands For Changing Text

P
page-completions1.3.1 Readline Init File Syntax
possible-completions (M-?)1.4.6 Letting Readline Type For You
possible-completions (M-?)1.4.6 Letting Readline Type For You
prefix-meta (ESC)1.4.8 Some Miscellaneous Commands
prefix-meta (ESC)1.4.8 Some Miscellaneous Commands
previous-history (C-p)1.4.2 Commands For Manipulating The History
previous-history (C-p)1.4.2 Commands For Manipulating The History

Q
quoted-insert (C-q or C-v)1.4.3 Commands For Changing Text
quoted-insert (C-q or C-v)1.4.3 Commands For Changing Text

R
re-read-init-file (C-x C-r)1.4.8 Some Miscellaneous Commands
re-read-init-file (C-x C-r)1.4.8 Some Miscellaneous Commands
readline2.1 Basic Behavior
redraw-current-line ()1.4.1 Commands For Moving
redraw-current-line ()1.4.1 Commands For Moving
reverse-search-history (C-r)1.4.2 Commands For Manipulating The History
reverse-search-history (C-r)1.4.2 Commands For Manipulating The History
revert-line (M-r)1.4.8 Some Miscellaneous Commands
revert-line (M-r)1.4.8 Some Miscellaneous Commands
rl_add_defun2.4.1 Naming a Function
rl_add_funmap_entry2.4.4 Associating Function Names and Bindings
rl_add_undo2.4.5 Allowing Undoing
rl_alphabetic2.4.10 Utility Functions
rl_already_prompted2.3 Readline Variables
rl_attempted_completion_function2.6.3 Completion Variables
rl_attempted_completion_over2.6.3 Completion Variables
rl_basic_quote_characters2.6.3 Completion Variables
rl_basic_word_break_characters2.6.3 Completion Variables
rl_begin_undo_group2.4.5 Allowing Undoing
rl_bind_key2.4.3 Binding Keys
rl_bind_key_if_unbound2.4.3 Binding Keys
rl_bind_key_if_unbound_in_map2.4.3 Binding Keys
rl_bind_key_in_map2.4.3 Binding Keys
rl_bind_keyseq2.4.3 Binding Keys
rl_bind_keyseq_if_unbound2.4.3 Binding Keys
rl_bind_keyseq_if_unbound_in_map2.4.3 Binding Keys
rl_bind_keyseq_in_map2.4.3 Binding Keys
rl_binding_keymap2.3 Readline Variables
rl_callback_handler_install2.4.12 Alternate Interface
rl_callback_handler_remove2.4.12 Alternate Interface
rl_callback_read_char2.4.12 Alternate Interface
rl_catch_signals2.5 Readline Signal Handling
rl_catch_sigwinch2.5 Readline Signal Handling
rl_char_is_quoted_p2.6.3 Completion Variables
rl_cleanup_after_signal2.5 Readline Signal Handling
rl_clear_message2.4.6 Redisplay
rl_clear_pending_input2.4.8 Character Input
rl_clear_signals2.5 Readline Signal Handling
rl_complete2.6.1 How Completing Works
rl_complete2.6.2 Completion Functions
rl_complete_internal2.6.2 Completion Functions
rl_completer_quote_characters2.6.3 Completion Variables
rl_completer_word_break_characters2.6.3 Completion Variables
rl_completion_append_character2.6.3 Completion Variables
rl_completion_display_matches_hook2.6.3 Completion Variables
rl_completion_entry_function2.6.1 How Completing Works
rl_completion_entry_function2.6.3 Completion Variables
rl_completion_found_quote2.6.3 Completion Variables
rl_completion_mark_symlink_dirs2.6.3 Completion Variables
rl_completion_matches2.6.2 Completion Functions
rl_completion_mode2.6.2 Completion Functions
rl_completion_query_items2.6.3 Completion Variables
rl_completion_quote_character2.6.3 Completion Variables
rl_completion_suppress_append2.6.3 Completion Variables
rl_completion_suppress_quote2.6.3 Completion Variables
rl_completion_type2.6.3 Completion Variables
rl_completion_word_break_hook2.6.3 Completion Variables
rl_copy_keymap2.4.2 Selecting a Keymap
rl_copy_text2.4.7 Modifying Text
rl_crlf2.4.6 Redisplay
rl_delete_text2.4.7 Modifying Text
rl_deprep_term_function2.3 Readline Variables
rl_deprep_terminal2.4.9 Terminal Management
rl_ding2.4.10 Utility Functions
rl_directory_completion_hook2.6.3 Completion Variables
rl_discard_keymap2.4.2 Selecting a Keymap
rl_dispatching2.3 Readline Variables
rl_display_match_list2.4.10 Utility Functions
rl_do_undo2.4.5 Allowing Undoing
rl_done2.3 Readline Variables
rl_editing_mode2.3 Readline Variables
rl_end2.3 Readline Variables
rl_end_undo_group2.4.5 Allowing Undoing
rl_erase_empty_line2.3 Readline Variables
rl_event_hook2.3 Readline Variables
rl_execute_next2.4.8 Character Input
rl_executing_keymap2.3 Readline Variables
rl_executing_macro2.3 Readline Variables
rl_expand_prompt2.4.6 Redisplay
rl_explicit_arg2.3 Readline Variables
rl_extend_line_buffer2.4.10 Utility Functions
rl_filename_completion_desired2.6.3 Completion Variables
rl_filename_completion_function2.6.2 Completion Functions
rl_filename_dequoting_function2.6.3 Completion Variables
rl_filename_quote_characters2.6.3 Completion Variables
rl_filename_quoting_desired2.6.3 Completion Variables
rl_filename_quoting_function2.6.3 Completion Variables
rl_forced_update_display2.4.6 Redisplay
rl_free_line_state2.5 Readline Signal Handling
rl_free_undo_list2.4.5 Allowing Undoing
rl_function_dumper2.4.4 Associating Function Names and Bindings
rl_function_of_keyseq2.4.4 Associating Function Names and Bindings
rl_funmap_names2.4.4 Associating Function Names and Bindings
rl_generic_bind2.4.3 Binding Keys
rl_get_keymap2.4.2 Selecting a Keymap
rl_get_keymap_by_name2.4.2 Selecting a Keymap
rl_get_keymap_name2.4.2 Selecting a Keymap
rl_get_screen_size2.5 Readline Signal Handling
rl_get_termcap2.4.11 Miscellaneous Functions
rl_getc2.4.8 Character Input
rl_getc_function2.3 Readline Variables
rl_gnu_readline_p2.3 Readline Variables
rl_ignore_completion_duplicates2.6.3 Completion Variables
rl_ignore_some_completions_function2.6.3 Completion Variables
rl_inhibit_completion2.6.3 Completion Variables
rl_initialize2.4.10 Utility Functions
rl_insert_completions2.6.2 Completion Functions
rl_insert_text2.4.7 Modifying Text
rl_instream2.3 Readline Variables
rl_invoking_keyseqs2.4.4 Associating Function Names and Bindings
rl_invoking_keyseqs_in_map2.4.4 Associating Function Names and Bindings
rl_kill_text2.4.7 Modifying Text
rl_last_func2.3 Readline Variables
rl_library_version2.3 Readline Variables
rl_line_buffer2.3 Readline Variables
rl_list_funmap_names2.4.4 Associating Function Names and Bindings
rl_macro_bind2.4.11 Miscellaneous Functions
rl_macro_dumper2.4.11 Miscellaneous Functions
rl_make_bare_keymap2.4.2 Selecting a Keymap
rl_make_keymap2.4.2 Selecting a Keymap
rl_mark2.3 Readline Variables
rl_message2.4.6 Redisplay
rl_modifying2.4.5 Allowing Undoing
rl_named_function2.4.4 Associating Function Names and Bindings
rl_num_chars_to_read2.3 Readline Variables
rl_numeric_arg2.3 Readline Variables
rl_on_new_line2.4.6 Redisplay
rl_on_new_line_with_prompt2.4.6 Redisplay
rl_outstream2.3 Readline Variables
rl_parse_and_bind2.4.3 Binding Keys
rl_pending_input2.3 Readline Variables
rl_point2.3 Readline Variables
rl_possible_completions2.6.2 Completion Functions
rl_pre_input_hook2.3 Readline Variables
rl_prep_term_function2.3 Readline Variables
rl_prep_terminal2.4.9 Terminal Management
rl_prompt2.3 Readline Variables
rl_push_macro_input2.4.7 Modifying Text
rl_read_init_file2.4.3 Binding Keys
rl_read_key2.4.8 Character Input
rl_readline_name2.3 Readline Variables
rl_readline_state2.3 Readline Variables
rl_readline_version2.3 Readline Variables
rl_redisplay2.4.6 Redisplay
rl_redisplay_function2.3 Readline Variables
rl_replace_line2.4.10 Utility Functions
rl_reset_after_signal2.5 Readline Signal Handling
rl_reset_line_state2.4.6 Redisplay
rl_reset_terminal2.4.9 Terminal Management
rl_resize_terminal2.5 Readline Signal Handling
rl_restore_prompt2.4.6 Redisplay
rl_save_prompt2.4.6 Redisplay
rl_set_key2.4.3 Binding Keys
rl_set_keyboard_input_timeout2.4.8 Character Input
rl_set_keymap2.4.2 Selecting a Keymap
rl_set_paren_blink_timeout2.4.11 Miscellaneous Functions
rl_set_prompt2.4.6 Redisplay
rl_set_screen_size2.5 Readline Signal Handling
rl_set_signals2.5 Readline Signal Handling
rl_show_char2.4.6 Redisplay
rl_special_prefixes2.6.3 Completion Variables
rl_startup_hook2.3 Readline Variables
rl_stuff_char2.4.8 Character Input
rl_terminal_name2.3 Readline Variables
rl_tty_set_default_bindings2.4.9 Terminal Management
rl_tty_unset_default_bindings2.4.9 Terminal Management
rl_unbind_command_in_map2.4.3 Binding Keys
rl_unbind_function_in_map2.4.3 Binding Keys
rl_unbind_key2.4.3 Binding Keys
rl_unbind_key_in_map2.4.3 Binding Keys
rl_username_completion_function2.6.2 Completion Functions
rl_variable_bind2.4.11 Miscellaneous Functions
rl_variable_dumper2.4.11 Miscellaneous Functions

S
self-insert (a, b, A, 1, !, <small>...</small>)1.4.3 Commands For Changing Text
self-insert (a, b, A, 1, !, <small>...</small>)1.4.3 Commands For Changing Text
set-mark (C-@)1.4.8 Some Miscellaneous Commands
set-mark (C-@)1.4.8 Some Miscellaneous Commands
show-all-if-ambiguous1.3.1 Readline Init File Syntax
show-all-if-unmodified1.3.1 Readline Init File Syntax
start-kbd-macro (C-x ()1.4.7 Keyboard Macros
start-kbd-macro (C-x ()1.4.7 Keyboard Macros

T
tab-insert (M-TAB)1.4.3 Commands For Changing Text
tab-insert (M-TAB)1.4.3 Commands For Changing Text
tilde-expand (M-~)1.4.8 Some Miscellaneous Commands
tilde-expand (M-~)1.4.8 Some Miscellaneous Commands
transpose-chars (C-t)1.4.3 Commands For Changing Text
transpose-chars (C-t)1.4.3 Commands For Changing Text
transpose-words (M-t)1.4.3 Commands For Changing Text
transpose-words (M-t)1.4.3 Commands For Changing Text

U
undo (C-_ or C-x C-u)1.4.8 Some Miscellaneous Commands
undo (C-_ or C-x C-u)1.4.8 Some Miscellaneous Commands
universal-argument ()1.4.5 Specifying Numeric Arguments
universal-argument ()1.4.5 Specifying Numeric Arguments
unix-filename-rubout ()1.4.4 Killing And Yanking
unix-filename-rubout ()1.4.4 Killing And Yanking
unix-line-discard (C-u)1.4.4 Killing And Yanking
unix-line-discard (C-u)1.4.4 Killing And Yanking
unix-word-rubout (C-w)1.4.4 Killing And Yanking
unix-word-rubout (C-w)1.4.4 Killing And Yanking
upcase-word (M-u)1.4.3 Commands For Changing Text
upcase-word (M-u)1.4.3 Commands For Changing Text

V
vi-editing-mode (M-C-j)1.4.8 Some Miscellaneous Commands
vi-editing-mode (M-C-j)1.4.8 Some Miscellaneous Commands
visible-stats1.3.1 Readline Init File Syntax

Y
yank (C-y)1.4.4 Killing And Yanking
yank (C-y)1.4.4 Killing And Yanking
yank-last-arg (M-. or M-_)1.4.2 Commands For Manipulating The History
yank-last-arg (M-. or M-_)1.4.2 Commands For Manipulating The History
yank-nth-arg (M-C-y)1.4.2 Commands For Manipulating The History
yank-nth-arg (M-C-y)1.4.2 Commands For Manipulating The History
yank-pop (M-y)1.4.4 Killing And Yanking
yank-pop (M-y)1.4.4 Killing And Yanking

!
Jump to:   _ *************** *** 5588,5592 ****
[Top] [Contents][Index] [ ? ]
--- 6324,6328 ----
[Top] [Contents][Index] [ ? ]
*************** *** 5705,5711 **** ! Concept Index
! Function and Variable Index
--- 6441,6457 ---- ! A. Copying This Manual
! ! Concept Index !
! Function and Variable Index
*************** *** 5715,5719 **** [Top] [Contents] ! [Index] [ ? ] --- 6461,6465 ---- [Top] [Contents] ! [Index] [ ? ] *************** *** 5724,5730 **** 2. Programming with GNU Readline
! Concept Index
! Function and Variable Index
--- 6470,6478 ---- 2. Programming with GNU Readline
! A. Copying This Manual !
! Concept Index
! Function and Variable Index
*************** *** 5735,5743 **** [Top] [Contents] ! [Index] [ ? ]

About this document

! This document was generated by Chet Ramey on June, 27 2002 using texi2html --- 6483,6491 ---- [Top] [Contents] ! [Index] [ ? ]

About this document

! This document was generated by Chet Ramey on July, 27 2004 using texi2html *************** *** 5901,5905 **** This document was generated ! by Chet Ramey on June, 27 2002 using texi2html --- 6649,6653 ---- This document was generated ! by Chet Ramey on July, 27 2004 using texi2html diff -aNrc2 readline-4.3-patched/doc/readline.info readline-5.0/doc/readline.info *** readline-4.3-patched/doc/readline.info Thu Jun 27 13:54:34 2002 --- readline-5.0/doc/readline.info Tue Jul 27 09:31:29 2004 *************** *** 1,29 **** ! This is readline.info, produced by makeinfo version 4.1 from ! /usr/homes/chet/src/bash/readline-src/doc/rlman.texinfo. ! INFO-DIR-SECTION Libraries ! START-INFO-DIR-ENTRY ! * Readline: (readline). The GNU readline library API ! END-INFO-DIR-ENTRY ! This document describes the GNU Readline Library, a utility which ! aids in the consistency of user interface across discrete programs that ! need to provide a command line interface. ! ! Copyright (C) 1988-2002 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this ! manual provided the copyright notice and this permission notice pare preserved on all copies. ! Permission is granted to copy and distribute modified versions of ! this manual under the conditions for verbatim copying, provided that ! the entire resulting derived work is distributed under the terms of a ! permission notice identical to this one. ! ! Permission is granted to copy and distribute translations of this ! manual into another language, under the above conditions for modified ! versions, except that this permission notice may be stated in a ! translation approved by the Free Software Foundation.  --- 1,31 ---- ! This is readline.info, produced by makeinfo version 4.5 from ! /usr/homes/chet/src/bash/readline-src/doc/rlman.texi. ! This manual describes the GNU Readline Library (version 5.0, 28 January ! 2004), a library which aids in the consistency of user interface across ! discrete programs which provide a command line interface. ! Copyright (C) 1988-2004 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this ! manual provided the copyright notice and this permission notice are preserved on all copies. ! Permission is granted to copy, distribute and/or modify this ! document under the terms of the GNU Free Documentation License, ! Version 1.1 or any later version published by the Free Software ! Foundation; with no Invariant Sections, with the Front-Cover texts ! being "A GNU Manual," and with the Back-Cover Texts as in (a) ! below. A copy of the license is included in the section entitled ! "GNU Free Documentation License." ! ! (a) The FSF's Back-Cover Text is: "You have freedom to copy and ! modify this GNU Manual, like GNU software. Copies published by ! the Free Software Foundation raise funds for GNU development." ! ! INFO-DIR-SECTION Libraries ! START-INFO-DIR-ENTRY ! * Readline: (readline). The GNU readline library API. ! END-INFO-DIR-ENTRY  *************** *** 34,39 **** This document describes the GNU Readline Library, a utility which ! aids in the consistency of user interface across discrete programs that ! need to provide a command line interface. * Menu: --- 36,41 ---- This document describes the GNU Readline Library, a utility which ! aids in the consistency of user interface across discrete programs which ! provide a command line interface. * Menu: *************** *** 41,44 **** --- 43,47 ---- * Command Line Editing:: GNU Readline User's Manual. * Programming with GNU Readline:: GNU Readline Programmer's Manual. + * Copying This Manual:: Copying this manual. * Concept Index:: Index of concepts described in this manual. * Function and Variable Index:: Index of externally visible functions *************** *** 245,248 **** --- 248,252 ---- different than `M-' because the word boundaries differ. + Here is how to "yank" the text back into the line. Yanking means to copy the most-recently-killed text from the kill buffer. *************** *** 395,404 **** `completion-query-items' The number of possible completions that determines when the ! user is asked whether he wants to see the list of ! possibilities. If the number of possible completions is ! greater than this value, Readline will ask the user whether ! or not he wishes to view them; otherwise, they are simply ! listed. This variable must be set to an integer value ! greater than or equal to 0. The default limit is `100'. `convert-meta' --- 399,408 ---- `completion-query-items' The number of possible completions that determines when the ! user is asked whether the list of possibilities should be ! displayed. If the number of possible completions is greater ! than this value, Readline will ask the user whether or not he ! wishes to view them; otherwise, they are simply listed. This ! variable must be set to an integer value greater than or ! equal to 0. The default limit is `100'. `convert-meta' *************** *** 429,433 **** If set to `on', the history code attempts to place point at ! the same location on each history line retrived with `previous-history' or `next-history'. --- 433,437 ---- If set to `on', the history code attempts to place point at ! the same location on each history line retrieved with `previous-history' or `next-history'. *************** *** 504,507 **** --- 508,520 ---- of ringing the bell. The default value is `off'. + `show-all-if-unmodified' + This alters the default behavior of the completion functions + in a fashion similar to SHOW-ALL-IF-AMBIGUOUS. If set to + `on', words which have more than one possible completion + without any possible partial completion (the possible + completions don't share a common prefix) cause the matches to + be listed immediately instead of ringing the bell. The + default value is `off'. + `visible-stats' If set to `on', a character denoting a file's type is *************** *** 509,512 **** --- 522,526 ---- The default is `off'. + Key Bindings The syntax for controlling key bindings in the init file is *************** *** 559,562 **** --- 573,577 ---- Key 1'. + The following GNU Emacs style escape sequences are available when specifying key sequences: *************** *** 624,627 **** --- 639,643 ---- "\C-x\\": "\\" +  File: readline.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File *************** *** 853,856 **** --- 869,873 ---- Refresh the current line. By default, this is unbound. +  File: readline.info, Node: Commands For History, Next: Commands For Text, Prev: Commands For Moving, Up: Bindable Readline Commands *************** *** 922,925 **** --- 939,943 ---- in turn. +  File: readline.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands *************** *** 989,992 **** --- 1007,1011 ---- By default, this command is unbound. +  File: readline.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands *************** *** 1021,1024 **** --- 1040,1048 ---- The killed text is saved on the kill-ring. + `unix-filename-rubout ()' + Kill the word behind point, using white space and the slash + character as the word boundaries. The killed text is saved on the + kill-ring. + `delete-horizontal-space ()' Delete all spaces and tabs around point. By default, this is *************** *** 1109,1112 **** --- 1133,1137 ---- unbound by default. +  File: readline.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands *************** *** 1126,1129 **** --- 1151,1155 ---- characters in the macro appear as if typed at the keyboard. +  File: readline.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands *************** *** 1213,1216 **** --- 1239,1243 ---- mode. +  File: readline.info, Node: Readline vi Mode, Prev: Bindable Readline Commands, Up: Command Line Editing *************** *** 1239,1243 **** that need to provide a command line interface. ! Copyright (C) 1988-2002 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this --- 1266,1270 ---- that need to provide a command line interface. ! Copyright (C) 1988-2004 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this *************** *** 1256,1260 ****  ! File: readline.info, Node: Programming with GNU Readline, Next: Concept Index, Prev: Command Line Editing, Up: Top Programming with GNU Readline --- 1283,1287 ----  ! File: readline.info, Node: Programming with GNU Readline, Next: Copying This Manual, Prev: Command Line Editing, Up: Top Programming with GNU Readline *************** *** 1469,1472 **** --- 1496,1500 ---- `typedef void rl_vcppfunc_t (char **);' +  File: readline.info, Node: Function Writing, Prev: Readline Typedefs, Up: Custom Functions *************** *** 1786,1794 **** FUNCTION using `rl_bind_key()'. ! Using this function alone is sufficient for most applications. It is ! the recommended way to add a few functions to the default functions that ! Readline has built in. If you need to do something other than adding a ! function to Readline, you may need to use the underlying functions ! described below.  --- 1814,1822 ---- FUNCTION using `rl_bind_key()'. ! Using this function alone is sufficient for most applications. It ! is the recommended way to add a few functions to the default functions ! that Readline has built in. If you need to do something other than ! adding a function to Readline, you may need to use the underlying ! functions described below.  *************** *** 1869,1872 **** --- 1897,1911 ---- invalid KEY. + - Function: int rl_bind_key_if_unbound (int key, rl_command_func_t + *function) + Binds KEY to FUNCTION if it is not already bound in the currently + active keymap. Returns non-zero in the case of an invalid KEY or + if KEY is already bound. + + - Function: int rl_bind_key_if_unbound_in_map (int key, + rl_command_func_t *function, Keymap map) + Binds KEY to FUNCTION if it is not already bound in MAP. Returns + non-zero in the case of an invalid KEY or if KEY is already bound. + - Function: int rl_unbind_key (int key) Bind KEY to the null function in the currently active keymap. *************** *** 1885,1893 **** Unbind all keys that are bound to COMMAND in MAP. - Function: int rl_set_key (const char *keyseq, rl_command_func_t *function, Keymap map) ! Bind the key sequence represented by the string KEYSEQ to the ! function FUNCTION. This makes new keymaps as necessary. The ! initial keymap in which to do bindings is MAP. - Function: int rl_generic_bind (int type, const char *keyseq, char --- 1924,1956 ---- Unbind all keys that are bound to COMMAND in MAP. + - Function: int rl_bind_keyseq (const char *keyseq, rl_command_func_t + *function) + Bind the key sequence represented by the string KEYSEQ to the + function FUNCTION, beginning in the current keymap. This makes + new keymaps as necessary. The return value is non-zero if KEYSEQ + is invalid. + + - Function: int rl_bind_keyseq_in_map (const char *keyseq, + rl_command_func_t *function, Keymap map) + Bind the key sequence represented by the string KEYSEQ to the + function FUNCTION. This makes new keymaps as necessary. Initial + bindings are performed in MAP. The return value is non-zero if + KEYSEQ is invalid. + - Function: int rl_set_key (const char *keyseq, rl_command_func_t *function, Keymap map) ! Equivalent to `rl_bind_keyseq_in_map'. ! ! - Function: int rl_bind_keyseq_if_unbound (const char *keyseq, ! rl_command_func_t *function) ! Binds KEYSEQ to FUNCTION if it is not already bound in the ! currently active keymap. Returns non-zero in the case of an ! invalid KEYSEQ or if KEYSEQ is already bound. ! ! - Function: int rl_bind_keyseq_if_unbound_in_map (const char *keyseq, ! rl_command_func_t *function, Keymap map) ! Binds KEYSEQ to FUNCTION if it is not already bound in MAP. ! Returns non-zero in the case of an invalid KEYSEQ or if KEYSEQ is ! already bound. - Function: int rl_generic_bind (int type, const char *keyseq, char *************** *** 2083,2087 **** `rl_already_prompted' variable is used. It returns the number of visible characters on the last line of the (possibly multi-line) ! prompt. - Function: int rl_set_prompt (const char *prompt) --- 2146,2155 ---- `rl_already_prompted' variable is used. It returns the number of visible characters on the last line of the (possibly multi-line) ! prompt. Applications may indicate that the prompt contains ! characters that take up no physical screen space when displayed by ! bracketing a sequence of such characters with the special markers ! `RL_PROMPT_START_IGNORE' and `RL_PROMPT_END_IGNORE' (declared in ! `readline.h'. This may be used to embed terminal-specific escape ! sequences in prompts. - Function: int rl_set_prompt (const char *prompt) *************** *** 2182,2185 **** --- 2250,2258 ---- bindings are performed in KMAP. + - Function: void rl_tty_unset_default_bindings (Keymap kmap) + Reset the bindings manipulated by `rl_tty_set_default_bindings' so + that the terminal editing characters are bound to `rl_insert'. + The bindings are performed in KMAP. + - Function: int rl_reset_terminal (const char *terminal_name) Reinitialize Readline's idea of the terminal settings using *************** *** 2579,2583 **** one at a time on subsequent calls. Each string the generator function returns as a match must be allocated with `malloc()'; ! Readline frees the strings when it has finished with them. --- 2652,2658 ---- one at a time on subsequent calls. Each string the generator function returns as a match must be allocated with `malloc()'; ! Readline frees the strings when it has finished with them. Such a ! generator function is referred to as an "application-specific ! completion function". *************** *** 2593,2596 **** --- 2668,2674 ---- `rl_completion_entry_function' is `NULL' then the default filename generator function, `rl_filename_completion_function()', is used. + An "application-specific completion function" is a function whose + address is assigned to `rl_completion_entry_function' and whose + return values are used to generate possible completions.  *************** *** 2609,2613 **** insert all of the possible completions. `!' means to display all of the possible completions, if there is more than one, as well as ! performing partial completion. - Function: int rl_complete (int ignore, int invoking_key) --- 2687,2693 ---- insert all of the possible completions. `!' means to display all of the possible completions, if there is more than one, as well as ! performing partial completion. `@' is similar to `!', but ! possible completions are not listed if the possible completions ! share a common prefix. - Function: int rl_complete (int ignore, int invoking_key) *************** *** 2631,2637 **** Returns the apppriate value to pass to `rl_complete_internal()' depending on whether CFUNC was called twice in succession and the ! value of the `show-all-if-ambiguous' variable. ! Application-specific completion functions may use this function to ! present the same interface as `rl_complete()'. - Function: char ** rl_completion_matches (const char *text, --- 2711,2717 ---- Returns the apppriate value to pass to `rl_complete_internal()' depending on whether CFUNC was called twice in succession and the ! values of the `show-all-if-ambiguous' and `show-all-if-unmodified' ! variables. Application-specific completion functions may use this ! function to present the same interface as `rl_complete()'. - Function: char ** rl_completion_matches (const char *text, *************** *** 2653,2658 **** A generator function for filename completion in the general case. TEXT is a partial filename. The Bash source is a useful reference ! for writing custom completion functions (the Bash completion ! functions call this and other Readline functions). - Function: char * rl_username_completion_function (const char *text, --- 2733,2738 ---- A generator function for filename completion in the general case. TEXT is a partial filename. The Bash source is a useful reference ! for writing application-specific completion functions (the Bash ! completion functions call this and other Readline functions). - Function: char * rl_username_completion_function (const char *text, *************** *** 2766,2769 **** --- 2846,2858 ---- `rl_basic_word_break_characters'. + - Variable: rl_cpvfunc_t * rl_completion_word_break_hook + If non-zero, this is the address of a function to call when + Readline is deciding where to separate words for word completion. + It should return a character string like + `rl_completer_word_break_characters' to be used to perform the + current completion. The function may choose to set + `rl_completer_word_break_characters' itself. If the function + returns `NULL', `rl_completer_word_break_characters' is used. + - Variable: const char * rl_completer_quote_characters A list of characters which can be used to quote a substring of the *************** *** 2794,2800 **** completion text. The default is a space character (` '). Setting this to the null character (`\0') prevents anything being appended ! automatically. This can be changed in custom completion functions ! to provide the "most sensible word separator character" according ! to an application-specific command line syntax specification. - Variable: int rl_completion_suppress_append --- 2883,2890 ---- completion text. The default is a space character (` '). Setting this to the null character (`\0') prevents anything being appended ! automatically. This can be changed in application-specific ! completion functions to provide the "most sensible word separator ! character" according to an application-specific command line ! syntax specification. - Variable: int rl_completion_suppress_append *************** *** 2802,2805 **** --- 2892,2914 ---- matches at the end of the command line, as described above. It is set to 0 before any application-specific completion function is + called, and may only be changed within such a function. + + - Variable: int rl_completion_quote_character + When Readline is completing quoted text, as delimited by one of the + characters in RL_COMPLETER_QUOTE_CHARACTERS, it sets this variable + to the quoting character found. This is set before any + application-specific completion function is called. + + - Variable: int rl_completion_suppress_quote + If non-zero, Readline does not append a matching quote character + when performing completion on a quoted string. It is set to 0 + before any application-specific completion function is called, and + may only be changed within such a function. + + - Variable: int rl_completion_found_quote + When Readline is completing quoted text, it sets this variable to + a non-zero value if the word being completed contains or is + delimited by any quoting characters, including backslashes. This + is set before any application-specific completion function is called. *************** *** 2808,2817 **** are symbolic links to directory names, subject to the value of the user-settable MARK-DIRECTORIES variable. This variable exists so ! that application completion functions can override the user's ! global preference (set via the MARK-SYMLINKED-DIRECTORIES Readline ! variable) if appropriate. This variable is set to the user's ! preference before any application completion function is called, ! so unless that function modifies the value, the user's preferences ! are honored. - Variable: int rl_ignore_completion_duplicates --- 2917,2926 ---- are symbolic links to directory names, subject to the value of the user-settable MARK-DIRECTORIES variable. This variable exists so ! that application-specific completion functions can override the ! user's global preference (set via the MARK-SYMLINKED-DIRECTORIES ! Readline variable) if appropriate. This variable is set to the ! user's preference before any application-specific completion ! function is called, so unless that function modifies the value, ! the user's preferences are honored. - Variable: int rl_ignore_completion_duplicates *************** *** 2821,2830 **** - Variable: int rl_filename_completion_desired Non-zero means that the results of the matches are to be treated as ! filenames. This is _always_ zero on entry, and can only be changed ! within a completion entry generator function. If it is set to a ! non-zero value, directory names have a slash appended and Readline ! attempts to quote completed filenames if they contain any ! characters in `rl_filename_quote_characters' and ! `rl_filename_quoting_desired' is set to a non-zero value. - Variable: int rl_filename_quoting_desired --- 2930,2940 ---- - Variable: int rl_filename_completion_desired Non-zero means that the results of the matches are to be treated as ! filenames. This is _always_ zero when completion is attempted, ! and can only be changed within an application-specific completion ! function. If it is set to a non-zero value by such a function, ! directory names have a slash appended and Readline attempts to ! quote completed filenames if they contain any characters in ! `rl_filename_quote_characters' and `rl_filename_quoting_desired' ! is set to a non-zero value. - Variable: int rl_filename_quoting_desired *************** *** 2832,2839 **** using double quotes (or an application-specific quoting mechanism) if the completed filename contains any characters in ! `rl_filename_quote_chars'. This is _always_ non-zero on entry, ! and can only be changed within a completion entry generator ! function. The quoting is effected via a call to the function ! pointed to by `rl_filename_quoting_function'. - Variable: int rl_attempted_completion_over --- 2942,2950 ---- using double quotes (or an application-specific quoting mechanism) if the completed filename contains any characters in ! `rl_filename_quote_chars'. This is _always_ non-zero when ! completion is attempted, and can only be changed within an ! application-specific completion function. The quoting is effected ! via a call to the function pointed to by ! `rl_filename_quoting_function'. - Variable: int rl_attempted_completion_over *************** *** 2848,2852 **** currently attempting; see the description of `rl_complete_internal()' (*note Completion Functions::) for the ! list of characters. - Variable: int rl_inhibit_completion --- 2959,2965 ---- currently attempting; see the description of `rl_complete_internal()' (*note Completion Functions::) for the ! list of characters. This is set to the appropriate value before ! any application-specific completion function is called, allowing ! such functions to present the same interface as `rl_complete()'. - Variable: int rl_inhibit_completion *************** *** 3303,3307 ****  ! File: readline.info, Node: Concept Index, Next: Function and Variable Index, Prev: Programming with GNU Readline, Up: Top Concept Index --- 3416,3861 ----  ! File: readline.info, Node: Copying This Manual, Next: Concept Index, Prev: Programming with GNU Readline, Up: Top ! ! Copying This Manual ! ******************* ! ! * Menu: ! ! * GNU Free Documentation License:: License for copying this manual. ! !  ! File: readline.info, Node: GNU Free Documentation License, Up: Copying This Manual ! ! GNU Free Documentation License ! ============================== ! ! Version 1.2, November 2002 ! Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. ! 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA ! ! Everyone is permitted to copy and distribute verbatim copies ! of this license document, but changing it is not allowed. ! ! 0. PREAMBLE ! ! The purpose of this License is to make a manual, textbook, or other ! functional and useful document "free" in the sense of freedom: to ! assure everyone the effective freedom to copy and redistribute it, ! with or without modifying it, either commercially or ! noncommercially. Secondarily, this License preserves for the ! author and publisher a way to get credit for their work, while not ! being considered responsible for modifications made by others. ! ! This License is a kind of "copyleft", which means that derivative ! works of the document must themselves be free in the same sense. ! It complements the GNU General Public License, which is a copyleft ! license designed for free software. ! ! We have designed this License in order to use it for manuals for ! free software, because free software needs free documentation: a ! free program should come with manuals providing the same freedoms ! that the software does. But this License is not limited to ! software manuals; it can be used for any textual work, regardless ! of subject matter or whether it is published as a printed book. ! We recommend this License principally for works whose purpose is ! instruction or reference. ! ! 1. APPLICABILITY AND DEFINITIONS ! ! This License applies to any manual or other work, in any medium, ! that contains a notice placed by the copyright holder saying it ! can be distributed under the terms of this License. Such a notice ! grants a world-wide, royalty-free license, unlimited in duration, ! to use that work under the conditions stated herein. The ! "Document", below, refers to any such manual or work. Any member ! of the public is a licensee, and is addressed as "you". You ! accept the license if you copy, modify or distribute the work in a ! way requiring permission under copyright law. ! ! A "Modified Version" of the Document means any work containing the ! Document or a portion of it, either copied verbatim, or with ! modifications and/or translated into another language. ! ! A "Secondary Section" is a named appendix or a front-matter section ! of the Document that deals exclusively with the relationship of the ! publishers or authors of the Document to the Document's overall ! subject (or to related matters) and contains nothing that could ! fall directly within that overall subject. (Thus, if the Document ! is in part a textbook of mathematics, a Secondary Section may not ! explain any mathematics.) The relationship could be a matter of ! historical connection with the subject or with related matters, or ! of legal, commercial, philosophical, ethical or political position ! regarding them. ! ! The "Invariant Sections" are certain Secondary Sections whose ! titles are designated, as being those of Invariant Sections, in ! the notice that says that the Document is released under this ! License. If a section does not fit the above definition of ! Secondary then it is not allowed to be designated as Invariant. ! The Document may contain zero Invariant Sections. If the Document ! does not identify any Invariant Sections then there are none. ! ! The "Cover Texts" are certain short passages of text that are ! listed, as Front-Cover Texts or Back-Cover Texts, in the notice ! that says that the Document is released under this License. A ! Front-Cover Text may be at most 5 words, and a Back-Cover Text may ! be at most 25 words. ! ! A "Transparent" copy of the Document means a machine-readable copy, ! represented in a format whose specification is available to the ! general public, that is suitable for revising the document ! straightforwardly with generic text editors or (for images ! composed of pixels) generic paint programs or (for drawings) some ! widely available drawing editor, and that is suitable for input to ! text formatters or for automatic translation to a variety of ! formats suitable for input to text formatters. A copy made in an ! otherwise Transparent file format whose markup, or absence of ! markup, has been arranged to thwart or discourage subsequent ! modification by readers is not Transparent. An image format is ! not Transparent if used for any substantial amount of text. A ! copy that is not "Transparent" is called "Opaque". ! ! Examples of suitable formats for Transparent copies include plain ! ASCII without markup, Texinfo input format, LaTeX input format, ! SGML or XML using a publicly available DTD, and ! standard-conforming simple HTML, PostScript or PDF designed for ! human modification. Examples of transparent image formats include ! PNG, XCF and JPG. Opaque formats include proprietary formats that ! can be read and edited only by proprietary word processors, SGML or ! XML for which the DTD and/or processing tools are not generally ! available, and the machine-generated HTML, PostScript or PDF ! produced by some word processors for output purposes only. ! ! The "Title Page" means, for a printed book, the title page itself, ! plus such following pages as are needed to hold, legibly, the ! material this License requires to appear in the title page. For ! works in formats which do not have any title page as such, "Title ! Page" means the text near the most prominent appearance of the ! work's title, preceding the beginning of the body of the text. ! ! A section "Entitled XYZ" means a named subunit of the Document ! whose title either is precisely XYZ or contains XYZ in parentheses ! following text that translates XYZ in another language. (Here XYZ ! stands for a specific section name mentioned below, such as ! "Acknowledgements", "Dedications", "Endorsements", or "History".) ! To "Preserve the Title" of such a section when you modify the ! Document means that it remains a section "Entitled XYZ" according ! to this definition. ! ! The Document may include Warranty Disclaimers next to the notice ! which states that this License applies to the Document. These ! Warranty Disclaimers are considered to be included by reference in ! this License, but only as regards disclaiming warranties: any other ! implication that these Warranty Disclaimers may have is void and ! has no effect on the meaning of this License. ! ! 2. VERBATIM COPYING ! ! You may copy and distribute the Document in any medium, either ! commercially or noncommercially, provided that this License, the ! copyright notices, and the license notice saying this License ! applies to the Document are reproduced in all copies, and that you ! add no other conditions whatsoever to those of this License. You ! may not use technical measures to obstruct or control the reading ! or further copying of the copies you make or distribute. However, ! you may accept compensation in exchange for copies. If you ! distribute a large enough number of copies you must also follow ! the conditions in section 3. ! ! You may also lend copies, under the same conditions stated above, ! and you may publicly display copies. ! ! 3. COPYING IN QUANTITY ! ! If you publish printed copies (or copies in media that commonly ! have printed covers) of the Document, numbering more than 100, and ! the Document's license notice requires Cover Texts, you must ! enclose the copies in covers that carry, clearly and legibly, all ! these Cover Texts: Front-Cover Texts on the front cover, and ! Back-Cover Texts on the back cover. Both covers must also clearly ! and legibly identify you as the publisher of these copies. The ! front cover must present the full title with all words of the ! title equally prominent and visible. You may add other material ! on the covers in addition. Copying with changes limited to the ! covers, as long as they preserve the title of the Document and ! satisfy these conditions, can be treated as verbatim copying in ! other respects. ! ! If the required texts for either cover are too voluminous to fit ! legibly, you should put the first ones listed (as many as fit ! reasonably) on the actual cover, and continue the rest onto ! adjacent pages. ! ! If you publish or distribute Opaque copies of the Document ! numbering more than 100, you must either include a ! machine-readable Transparent copy along with each Opaque copy, or ! state in or with each Opaque copy a computer-network location from ! which the general network-using public has access to download ! using public-standard network protocols a complete Transparent ! copy of the Document, free of added material. If you use the ! latter option, you must take reasonably prudent steps, when you ! begin distribution of Opaque copies in quantity, to ensure that ! this Transparent copy will remain thus accessible at the stated ! location until at least one year after the last time you ! distribute an Opaque copy (directly or through your agents or ! retailers) of that edition to the public. ! ! It is requested, but not required, that you contact the authors of ! the Document well before redistributing any large number of ! copies, to give them a chance to provide you with an updated ! version of the Document. ! ! 4. MODIFICATIONS ! ! You may copy and distribute a Modified Version of the Document ! under the conditions of sections 2 and 3 above, provided that you ! release the Modified Version under precisely this License, with ! the Modified Version filling the role of the Document, thus ! licensing distribution and modification of the Modified Version to ! whoever possesses a copy of it. In addition, you must do these ! things in the Modified Version: ! ! A. Use in the Title Page (and on the covers, if any) a title ! distinct from that of the Document, and from those of ! previous versions (which should, if there were any, be listed ! in the History section of the Document). You may use the ! same title as a previous version if the original publisher of ! that version gives permission. ! ! B. List on the Title Page, as authors, one or more persons or ! entities responsible for authorship of the modifications in ! the Modified Version, together with at least five of the ! principal authors of the Document (all of its principal ! authors, if it has fewer than five), unless they release you ! from this requirement. ! ! C. State on the Title page the name of the publisher of the ! Modified Version, as the publisher. ! ! D. Preserve all the copyright notices of the Document. ! ! E. Add an appropriate copyright notice for your modifications ! adjacent to the other copyright notices. ! ! F. Include, immediately after the copyright notices, a license ! notice giving the public permission to use the Modified ! Version under the terms of this License, in the form shown in ! the Addendum below. ! ! G. Preserve in that license notice the full lists of Invariant ! Sections and required Cover Texts given in the Document's ! license notice. ! ! H. Include an unaltered copy of this License. ! ! I. Preserve the section Entitled "History", Preserve its Title, ! and add to it an item stating at least the title, year, new ! authors, and publisher of the Modified Version as given on ! the Title Page. If there is no section Entitled "History" in ! the Document, create one stating the title, year, authors, ! and publisher of the Document as given on its Title Page, ! then add an item describing the Modified Version as stated in ! the previous sentence. ! ! J. Preserve the network location, if any, given in the Document ! for public access to a Transparent copy of the Document, and ! likewise the network locations given in the Document for ! previous versions it was based on. These may be placed in ! the "History" section. You may omit a network location for a ! work that was published at least four years before the ! Document itself, or if the original publisher of the version ! it refers to gives permission. ! ! K. For any section Entitled "Acknowledgements" or "Dedications", ! Preserve the Title of the section, and preserve in the ! section all the substance and tone of each of the contributor ! acknowledgements and/or dedications given therein. ! ! L. Preserve all the Invariant Sections of the Document, ! unaltered in their text and in their titles. Section numbers ! or the equivalent are not considered part of the section ! titles. ! ! M. Delete any section Entitled "Endorsements". Such a section ! may not be included in the Modified Version. ! ! N. Do not retitle any existing section to be Entitled ! "Endorsements" or to conflict in title with any Invariant ! Section. ! ! O. Preserve any Warranty Disclaimers. ! ! If the Modified Version includes new front-matter sections or ! appendices that qualify as Secondary Sections and contain no ! material copied from the Document, you may at your option ! designate some or all of these sections as invariant. To do this, ! add their titles to the list of Invariant Sections in the Modified ! Version's license notice. These titles must be distinct from any ! other section titles. ! ! You may add a section Entitled "Endorsements", provided it contains ! nothing but endorsements of your Modified Version by various ! parties--for example, statements of peer review or that the text ! has been approved by an organization as the authoritative ! definition of a standard. ! ! You may add a passage of up to five words as a Front-Cover Text, ! and a passage of up to 25 words as a Back-Cover Text, to the end ! of the list of Cover Texts in the Modified Version. Only one ! passage of Front-Cover Text and one of Back-Cover Text may be ! added by (or through arrangements made by) any one entity. If the ! Document already includes a cover text for the same cover, ! previously added by you or by arrangement made by the same entity ! you are acting on behalf of, you may not add another; but you may ! replace the old one, on explicit permission from the previous ! publisher that added the old one. ! ! The author(s) and publisher(s) of the Document do not by this ! License give permission to use their names for publicity for or to ! assert or imply endorsement of any Modified Version. ! ! 5. COMBINING DOCUMENTS ! ! You may combine the Document with other documents released under ! this License, under the terms defined in section 4 above for ! modified versions, provided that you include in the combination ! all of the Invariant Sections of all of the original documents, ! unmodified, and list them all as Invariant Sections of your ! combined work in its license notice, and that you preserve all ! their Warranty Disclaimers. ! ! The combined work need only contain one copy of this License, and ! multiple identical Invariant Sections may be replaced with a single ! copy. If there are multiple Invariant Sections with the same name ! but different contents, make the title of each such section unique ! by adding at the end of it, in parentheses, the name of the ! original author or publisher of that section if known, or else a ! unique number. Make the same adjustment to the section titles in ! the list of Invariant Sections in the license notice of the ! combined work. ! ! In the combination, you must combine any sections Entitled ! "History" in the various original documents, forming one section ! Entitled "History"; likewise combine any sections Entitled ! "Acknowledgements", and any sections Entitled "Dedications". You ! must delete all sections Entitled "Endorsements." ! ! 6. COLLECTIONS OF DOCUMENTS ! ! You may make a collection consisting of the Document and other ! documents released under this License, and replace the individual ! copies of this License in the various documents with a single copy ! that is included in the collection, provided that you follow the ! rules of this License for verbatim copying of each of the ! documents in all other respects. ! ! You may extract a single document from such a collection, and ! distribute it individually under this License, provided you insert ! a copy of this License into the extracted document, and follow ! this License in all other respects regarding verbatim copying of ! that document. ! ! 7. AGGREGATION WITH INDEPENDENT WORKS ! ! A compilation of the Document or its derivatives with other ! separate and independent documents or works, in or on a volume of ! a storage or distribution medium, is called an "aggregate" if the ! copyright resulting from the compilation is not used to limit the ! legal rights of the compilation's users beyond what the individual ! works permit. When the Document is included an aggregate, this ! License does not apply to the other works in the aggregate which ! are not themselves derivative works of the Document. ! ! If the Cover Text requirement of section 3 is applicable to these ! copies of the Document, then if the Document is less than one half ! of the entire aggregate, the Document's Cover Texts may be placed ! on covers that bracket the Document within the aggregate, or the ! electronic equivalent of covers if the Document is in electronic ! form. Otherwise they must appear on printed covers that bracket ! the whole aggregate. ! ! 8. TRANSLATION ! ! Translation is considered a kind of modification, so you may ! distribute translations of the Document under the terms of section ! 4. Replacing Invariant Sections with translations requires special ! permission from their copyright holders, but you may include ! translations of some or all Invariant Sections in addition to the ! original versions of these Invariant Sections. You may include a ! translation of this License, and all the license notices in the ! Document, and any Warranty Disclaimers, provided that you also ! include the original English version of this License and the ! original versions of those notices and disclaimers. In case of a ! disagreement between the translation and the original version of ! this License or a notice or disclaimer, the original version will ! prevail. ! ! If a section in the Document is Entitled "Acknowledgements", ! "Dedications", or "History", the requirement (section 4) to ! Preserve its Title (section 1) will typically require changing the ! actual title. ! ! 9. TERMINATION ! ! You may not copy, modify, sublicense, or distribute the Document ! except as expressly provided for under this License. Any other ! attempt to copy, modify, sublicense or distribute the Document is ! void, and will automatically terminate your rights under this ! License. However, parties who have received copies, or rights, ! from you under this License will not have their licenses ! terminated so long as such parties remain in full compliance. ! ! 10. FUTURE REVISIONS OF THIS LICENSE ! ! The Free Software Foundation may publish new, revised versions of ! the GNU Free Documentation License from time to time. Such new ! versions will be similar in spirit to the present version, but may ! differ in detail to address new problems or concerns. See ! `http://www.gnu.org/copyleft/'. ! ! Each version of the License is given a distinguishing version ! number. If the Document specifies that a particular numbered ! version of this License "or any later version" applies to it, you ! have the option of following the terms and conditions either of ! that specified version or of any later version that has been ! published (not as a draft) by the Free Software Foundation. If ! the Document does not specify a version number of this License, ! you may choose any version ever published (not as a draft) by the ! Free Software Foundation. ! ! ADDENDUM: How to use this License for your documents ! ---------------------------------------------------- ! ! To use this License in a document you have written, include a copy of ! the License in the document and put the following copyright and license ! notices just after the title page: ! ! Copyright (C) YEAR YOUR NAME. ! Permission is granted to copy, distribute and/or modify this document ! under the terms of the GNU Free Documentation License, Version 1.2 ! or any later version published by the Free Software Foundation; ! with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. ! A copy of the license is included in the section entitled ``GNU ! Free Documentation License''. ! ! If you have Invariant Sections, Front-Cover Texts and Back-Cover ! Texts, replace the "with...Texts." line with this: ! ! with the Invariant Sections being LIST THEIR TITLES, with ! the Front-Cover Texts being LIST, and with the Back-Cover Texts ! being LIST. ! ! If you have Invariant Sections without Cover Texts, or some other ! combination of the three, merge those two alternatives to suit the ! situation. ! ! If your document contains nontrivial examples of program code, we ! recommend releasing these examples in parallel under your choice of ! free software license, such as the GNU General Public License, to ! permit their use in free software. ! !  ! File: readline.info, Node: Concept Index, Next: Function and Variable Index, Prev: Copying This Manual, Up: Top Concept Index *************** *** 3310,3315 **** --- 3864,3871 ---- * Menu: + * application-specific completion functions: Custom Completers. * command editing: Readline Bare Essentials. * editing command lines: Readline Bare Essentials. + * FDL, GNU Free Documentation License: GNU Free Documentation License. * initialization file, readline: Readline Init File. * interaction, readline: Readline Interaction. *************** *** 3422,3426 **** --- 3978,3988 ---- * rl_begin_undo_group: Allowing Undoing. * rl_bind_key: Binding Keys. + * rl_bind_key_if_unbound: Binding Keys. + * rl_bind_key_if_unbound_in_map: Binding Keys. * rl_bind_key_in_map: Binding Keys. + * rl_bind_keyseq: Binding Keys. + * rl_bind_keyseq_if_unbound: Binding Keys. + * rl_bind_keyseq_if_unbound_in_map: Binding Keys. + * rl_bind_keyseq_in_map: Binding Keys. * rl_binding_keymap: Readline Variables. * rl_callback_handler_install: Alternate Interface. *************** *** 3443,3452 **** --- 4005,4018 ---- * rl_completion_entry_function <1>: Completion Variables. * rl_completion_entry_function: How Completing Works. + * rl_completion_found_quote: Completion Variables. * rl_completion_mark_symlink_dirs: Completion Variables. * rl_completion_matches: Completion Functions. * rl_completion_mode: Completion Functions. * rl_completion_query_items: Completion Variables. + * rl_completion_quote_character: Completion Variables. * rl_completion_suppress_append: Completion Variables. + * rl_completion_suppress_quote: Completion Variables. * rl_completion_type: Completion Variables. + * rl_completion_word_break_hook: Completion Variables. * rl_copy_keymap: Keymaps. * rl_copy_text: Modifying Text. *************** *** 3557,3560 **** --- 4123,4127 ---- * rl_terminal_name: Readline Variables. * rl_tty_set_default_bindings: Terminal Management. + * rl_tty_unset_default_bindings: Terminal Management. * rl_unbind_command_in_map: Binding Keys. * rl_unbind_function_in_map: Binding Keys. *************** *** 3567,3570 **** --- 4134,4138 ---- * set-mark (C-@): Miscellaneous Commands. * show-all-if-ambiguous: Readline Init File Syntax. + * show-all-if-unmodified: Readline Init File Syntax. * start-kbd-macro (C-x (): Keyboard Macros. * transpose-chars (C-t): Commands For Text. *************** *** 3572,3575 **** --- 4140,4144 ---- * undo (C-_ or C-x C-u): Miscellaneous Commands. * universal-argument (): Numeric Arguments. + * unix-filename-rubout (): Commands For Killing. * unix-line-discard (C-u): Commands For Killing. * unix-word-rubout (C-w): Commands For Killing. *************** *** 3584,3638 ****  Tag Table: ! Node: Top1164 ! Node: Command Line Editing1763 ! Node: Introduction and Notation2414 ! Node: Readline Interaction4032 ! Node: Readline Bare Essentials5219 ! Node: Readline Movement Commands7000 ! Node: Readline Killing Commands7957 ! Node: Readline Arguments9866 ! Node: Searching10902 ! Node: Readline Init File13045 ! Node: Readline Init File Syntax14106 ! Node: Conditional Init Constructs24989 ! Node: Sample Init File27514 ! Node: Bindable Readline Commands30698 ! Node: Commands For Moving31748 ! Node: Commands For History32597 ! Node: Commands For Text35455 ! Node: Commands For Killing38169 ! Node: Numeric Arguments40120 ! Node: Commands For Completion41248 ! Node: Keyboard Macros42780 ! Node: Miscellaneous Commands43339 ! Node: Readline vi Mode46688 ! Node: Programming with GNU Readline48506 ! Node: Basic Behavior49474 ! Node: Custom Functions52904 ! Node: Readline Typedefs54382 ! Node: Function Writing56011 ! Node: Readline Variables57219 ! Node: Readline Convenience Functions66642 ! Node: Function Naming67624 ! Node: Keymaps68876 ! Node: Binding Keys70632 ! Node: Associating Function Names and Bindings73558 ! Node: Allowing Undoing75803 ! Node: Redisplay78338 ! Node: Modifying Text81409 ! Node: Character Input82638 ! Node: Terminal Management84418 ! Node: Utility Functions85593 ! Node: Miscellaneous Functions87932 ! Node: Alternate Interface89996 ! Node: A Readline Example92141 ! Node: Readline Signal Handling94078 ! Node: Custom Completers99681 ! Node: How Completing Works100396 ! Node: Completion Functions103394 ! Node: Completion Variables106778 ! Node: A Short Completion Example117049 ! Node: Concept Index129602 ! Node: Function and Variable Index130424  End Tag Table --- 4153,4209 ----  Tag Table: ! Node: Top1336 ! Node: Command Line Editing1977 ! Node: Introduction and Notation2628 ! Node: Readline Interaction4246 ! Node: Readline Bare Essentials5433 ! Node: Readline Movement Commands7214 ! Node: Readline Killing Commands8171 ! Node: Readline Arguments10081 ! Node: Searching11117 ! Node: Readline Init File13260 ! Node: Readline Init File Syntax14321 ! Node: Conditional Init Constructs25684 ! Node: Sample Init File28209 ! Node: Bindable Readline Commands31393 ! Node: Commands For Moving32443 ! Node: Commands For History33293 ! Node: Commands For Text36152 ! Node: Commands For Killing38867 ! Node: Numeric Arguments40998 ! Node: Commands For Completion42126 ! Node: Keyboard Macros43659 ! Node: Miscellaneous Commands44219 ! Node: Readline vi Mode47569 ! Node: Programming with GNU Readline49387 ! Node: Basic Behavior50361 ! Node: Custom Functions53791 ! Node: Readline Typedefs55269 ! Node: Function Writing56899 ! Node: Readline Variables58107 ! Node: Readline Convenience Functions67530 ! Node: Function Naming68512 ! Node: Keymaps69764 ! Node: Binding Keys71520 ! Node: Associating Function Names and Bindings76042 ! Node: Allowing Undoing78287 ! Node: Redisplay80822 ! Node: Modifying Text84256 ! Node: Character Input85485 ! Node: Terminal Management87265 ! Node: Utility Functions88684 ! Node: Miscellaneous Functions91023 ! Node: Alternate Interface93087 ! Node: A Readline Example95232 ! Node: Readline Signal Handling97169 ! Node: Custom Completers102772 ! Node: How Completing Works103487 ! Node: Completion Functions106790 ! Node: Completion Variables110345 ! Node: A Short Completion Example122415 ! Node: Copying This Manual134968 ! Node: GNU Free Documentation License135208 ! Node: Concept Index157602 ! Node: Function and Variable Index158551  End Tag Table diff -aNrc2 readline-4.3-patched/doc/readline.pdf readline-5.0/doc/readline.pdf *** readline-4.3-patched/doc/readline.pdf Wed Dec 31 19:00:00 1969 --- readline-5.0/doc/readline.pdf Tue Jul 27 10:56:42 2004 *************** *** 0 **** --- 1,4752 ---- + %PDF-1.2 + 7 0 obj + << + /Type/Encoding + /Differences[33/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi + 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis + 255/dieresis] + >> + endobj + 10 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F1 + /FontDescriptor 9 0 R + /BaseFont/DAZODU+CMBX12 + /FirstChar 33 + /LastChar 196 + /Widths[342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 + 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 + 875 531.3 531.3 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 + 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 + 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.8 562.5 625 312.5 + 343.8 593.8 312.5 937.5 625 562.5 625 593.8 459.5 443.8 437.5 625 593.8 812.5 593.8 + 593.8 500 562.5 1125 562.5 562.5 562.5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 675.9 937.5 875 787 750 879.6 812.5 875 812.5 875 0 0 812.5 + 656.3 625 625 937.5 937.5 312.5 343.8 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 + 812.5 875 562.5 1018.5 1143.5 875 312.5 562.5] + >> + endobj + 13 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F2 + /FontDescriptor 12 0 R + /BaseFont/ZABSDM+CMR10 + /FirstChar 33 + /LastChar 196 + /Widths[277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 + 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 + 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 + 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 + 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 + 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 + 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 833.3 + 777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 0 0 722.2 583.3 555.6 555.6 833.3 833.3 + 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 + 277.8 500] + >> + endobj + 16 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F3 + /FontDescriptor 15 0 R + /BaseFont/ZWHOTQ+CMTT10 + /FirstChar 33 + /LastChar 196 + /Widths[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 0 0 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525] + >> + endobj + 18 0 obj + << + /Filter[/FlateDecode] + /Length 342 + >> + stream + xÚUQ=oÂ0Ýû+nt$8lŸÇ+PÕB;TRaÚHHN(åß×vR‘N‰Ÿî}Ü=àÈ9|Bü¬a^ÌV$Ç,…â"‡©HsŠÇ7¶~Þ'SÒŠmmy8Uµ ¯”=U®t·ä½ØÀ²B“õçfž›Á”2˜ß좕Áш`%¥ÂLû‰\ Ñny¨ºª©½ I–"Ÿ„?ÅŽ V³ÝÙ:C)GÚ(Ñ8Ü??C(Òñ’äĬk3 + f×™j4!”D“ÆÑMY'R³KŒ¹$çª ’ + âSò{r¿/”EæâËvý½¶åÙÞClÒ_sQ¶Ã%_jÛκúïЭuß qf{`_WýÓ§í¬?»¯O„ªÐP4›»ª$VA³ £?“âì ¸kŽ]P¼†‘ÒÙ1ëRÊXÁP­@c†j3o¦å¨ÚðÕ>üjí‘â + endstream + endobj + 20 0 obj + << + /F1 10 0 R + /F2 13 0 R + /F3 16 0 R + >> + endobj + 6 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 20 0 R + >> + endobj + 25 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F4 + /FontDescriptor 24 0 R + /BaseFont/FIJGBA+CMSY10 + /FirstChar 33 + /LastChar 196 + /Widths[1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 + 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 + 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 + 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 + 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 + 500 500 611.1 500 277.8 833.3 750 833.3 416.7 666.7 666.7 777.8 777.8 444.4 444.4 + 444.4 611.1 777.8 777.8 777.8 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 0 0 777.8 + 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 + 777.8 777.8 1000 1000 777.8 777.8 1000 777.8] + >> + endobj + 26 0 obj + << + /Filter[/FlateDecode] + /Length 1124 + >> + stream + xÚVKã6 ¾÷W{© ÄÛò+íiE»Å¢É(š[™k[íÌ4ÿ¾¤H;N&½ôKÅÇÇTœÀçűŸÎÃúî9rÂÀ_†Îz焹ãÉ4ò³ØY?ý%Ö{Ý»žŒÑ­eâXÔ´¯T_vzëzQ.”Õ Å°W´øøÛ7Òú]U­[ÖÛ®èN´ÙˆW4¨º^›–´?Xà*QN’Oè5¯t+QÄ×jIQ¥šÍþ½þäxVèx¡ôÃÄfð¶×%úÙ»^-E¡+6–Ð-~9h”¦íu?¨¶<‘Àìè{ìU7ÝSƒêvE©Ø`Ù™¾'S•LÔÀöy銆Ý]Ҹ{ÕÕhdžŽžð/MÀW§Œ)ãË8ü‹ÄÓñê£9 Ò©Ó/{Š4Xµ$ö£ÜHIöQx÷Ÿ àI?h56QÒœ%±ŸÄN`Âež{X MŠg7D§…¼2»£xߢc©Õ1Ƕ*¨ý‚„¿¶%g’&~–Q*ÃW"J£{æJ"…å%|b£"Á`èÛßí5Úˆ°€ ÀÛã`â‘„[¥AI˜´e4œ"¬Ñýè¯Y“ö¬c@¨ËZ&\ËÖaV Xk]*Zs©'PêuØ,ùë;“âÐ) *åÃŒõ‹º&ÊpŽr?[^Á|é)O fø^Âœ'sžQV@37Vr¹¼„îBVw¦£ucl>•ÞHÀ™‚¥ + Àà±QâM ý, s4©mûÀö,mÆÙùÌÎ!”ã$±ÅO{}ËCœÈ7Íÿyo>]É’T‰ Í¡æ«_køÿ± ÈWG=°W)ƒÅíc¦øÅ—âË=Ý ¢0 A)Ènþú¶º·ò_Ö?ü ÛwΣ + endstream + endobj + 27 0 obj + << + /F2 13 0 R + /F4 25 0 R + >> + endobj + 22 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 27 0 R + >> + endobj + 30 0 obj + << + /Type/Encoding + /Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/sterling/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi + 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis + 255/dieresis] + >> + endobj + 33 0 obj + << + /Encoding 30 0 R + /Type/Font + /Subtype/Type1 + /Name/F5 + /FontDescriptor 32 0 R + /BaseFont/TSHIZO+CMBXTI10 + /FirstChar 33 + /LastChar 196 + /Widths[386.1 620.6 944.4 868.5 944.4 885.5 355.6 473.3 473.3 591.1 885.5 355.6 414.4 + 355.6 591.1 591.1 591.1 591.1 591.1 591.1 591.1 591.1 591.1 591.1 591.1 355.6 355.6 + 386.1 885.5 591.1 591.1 885.5 865.5 816.7 826.7 875.5 756.7 727.2 895.3 896.1 471.7 + 610.5 895 697.8 1072.8 896.1 855 787.2 855 859.4 650 796.1 880.8 865.5 1160 865.5 + 865.5 708.9 356.1 620.6 356.1 591.1 355.6 355.6 591.1 532.2 532.2 591.1 532.2 400 + 532.2 591.1 355.6 355.6 532.2 296.7 944.4 650 591.1 591.1 532.2 501.7 486.9 385 620.6 + 532.2 767.8 560.6 561.7 490.6 591.1 1182.2 591.1 591.1 591.1 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 697.8 944.4 885.5 806.7 767.8 896.1 + 826.7 885.5 826.7 885.5 0 0 826.7 755.6 674.4 703.9 1044.7 1059.4 355.6 385 591.1 + 591.1 591.1 591.1 591.1 948.9 532.2 665 826.7 826.7 591.1 1022.8 1140.5 885.5 296.7 + 591.1] + >> + endobj + 36 0 obj + << + /Encoding 30 0 R + /Type/Font + /Subtype/Type1 + /Name/F6 + /FontDescriptor 35 0 R + /BaseFont/FSFYTI+CMTI10 + /FirstChar 33 + /LastChar 196 + /Widths[306.7 514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8 + 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 + 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 + 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 + 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 + 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 + 460 664.4 463.9 485.6 408.9 511.1 1022.2 511.1 511.1 511.1 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 627.2 817.8 766.7 692.2 664.4 743.3 715.6 + 766.7 715.6 766.7 0 0 715.6 613.3 562.2 587.8 881.7 894.4 306.7 332.2 511.1 511.1 + 511.1 511.1 511.1 831.3 460 536.7 715.6 715.6 511.1 882.8 985 766.7 255.6 511.1] + >> + endobj + 37 0 obj + << + /Filter[/FlateDecode] + /Length 1698 + >> + stream + xÚíZ[s£6}ï¯ð#~°]Òc’n¶—íN§qÚÙéôAk“„)àdóï+!!0âÝuâØÝ'ˆ(èð]Î9Ÿ&>ðýÉí¤º¼›œÏß\¢ ô‡“ùÍ„ + X0p2™ÿø·Oÿ™ÿòæN`Põ+3‚`T^9`Õï̧{âSMg8$^v£®w‘¥Sì{e$/È+ »˜¨•ä#@¹ >®ÖÓ„ˆÈ?\­DºÔ«¼ÓHß½]ÆeœÞêe‚fÈå]0ñ«5€\ƒR} ·./úaw«0aæ¡þºû Ãp6‘ ˆ(8|ß÷~N§(ôÊ<›Îäu¹Y”±Dv†1öÊL_ H˜lƒD›ÿ)8@: Ä€]0ü'‰ªpUÄ ïœòN¬¼š|ë…DMX ±° .<ÎòÛMÔöØ6BöÃ+iªmà$AÜì hà®"‘/T}¹3„½›,×76’ªŸâTÇWygPþ).Ê,ìá‹ho}µ»Ã@ÒÎÛ­Î<ÐÑâRß]Æ’›õ"C†„'Åž'ÌOîF†Ã »Û[ýˆ~ ÕgWºÍ‰ÏŽ&B]²¿…!)Â]Ð2MNÊÅY³T$]ÀäWE™KÂëªï²‰¼‚ò¾{±ÒÔ^?1îz¸îzWbµNÜ1äJeŽ'f¾½òÓ–äƒ~]+·¢Œ˜Êx§K£P%œÛ :Ì!Bh|óQÙošPKÖë®ʤeèêr¶Ý/§ yºi¢š’:'a£uìµYg»á„žÆI¤ñz“ˆÒ×ù“ÄË…¾"§»!>ðéÈ>ˆÝ~rw"½mö0eØ‹>—Ù!AùRGæù6ÇÊa2±7ivKbH~]9Qr»ÕvEú¯3Ú1>;rw _*d“®q£c¸Õüz=)uºˆo-~¤:Éã…ÆЊ•Ð)VdÜ°ƒ1Ò^Ø –eŽ%ÕÛ•¥Ýv»Ç¨T‘;~\W^äH¬Õ"AÃßw9Tîð0$MD„&“¢ÇOULd"_C,òÌñî!W˼èNåS² d&©²UmÅÅ"J‘FÙ¦xÊÿ`@~0Jè¿~Èú|­Î¥À©dïc뀩XZº°O¾‹Ùá7€|jµyo@1ÄË@äê5iJÍbï÷<»ÍÅj¥ëZxqy§ïÞ}¸Ö7öeu'3Hè=T¯î³†XÝ¿Ì5LñCuÛ¦ ;L9…îEØ;î„*Ë÷±¬ÂÝ€âr‰TÏ“å†à,Cvs±‘äwÕꇛ´š¾¸Ú>*[äls@­­Ž†: ÃÌ•”«( + õ¢etS8G`ÁiÀú½ƒŽ€H,ˆFõý¥Â6kâ‡T)ƒÛgµÂÃﶨÿTà‰Záe\¬“J öx†€¾ür²©÷jQ†ÑÒƬœ¶Aü U3Êš¹#&cÕÌx„wB[Œòz\¼Þ”N íŸ2vM‰­¸Âd,<¹ÆQ‡b.Éž>ŒPMîÄmT,SN èñµß>#–Û¨CcHA_Cu]ÆI\ꊹ‹t}‡¡Ó?LG@lÉ + £+zŽþ“6X| '=úFÜæ"0T“YÐRQ¶hSu@ûF,¥éŽÜìËÒ8z8ÅÌè…3×ðñíg}”¨wŸ]> + endobj + 29 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 38 0 R + >> + endobj + 41 0 obj + << + /Filter[/FlateDecode] + /Length 693 + >> + stream + xÚÝ—KSÛ0Çïý:Ê iW¶¤ÞRB Â¡ ôÐéÁ$< vÆq¦ðí«‡&±Ké 3;bD¤_òl¾(ÊÜ=Iú¹¸¬³ú>ú1ýD0a:!1ØÝ~3°$Šç|gÒ¯Åu™-Âü$+åÚp0I·~†Ô,Ñ„û“˜='Màv†×»èÞæžJ–¤­Ãh<ÑíUIb7$-Ô´…z¸^5ÕmÀxXÝ.y“׫>H°÷ðwŽoŒêãPÎRÙ2‘" ¥è€Zv¨™ˆbc =©"Pô×lµþù[¤VõÏöÒ00¯'ˆ{ @1cµ‰ITǦ*›‰c³.gne€¦_klö`¡b²óFÂC°pÖ…ƒ•ÕEv¹È‡`ÙŠˆOOë™rÐz£ºº$ñ!Z2еÝ㦪›Ð|öùÝen¡ONYäøBÒ°‚ÛÙ„ + vaKCéì1JcÉƵe´\ZoÍËyqgg*qd4j‹c!§÷¡0)I§7Å*¼qš•Î´¶mןŸü9É È gj;o0 £ŽL?» Û÷ß˨Ny¤¡HMßý€rìÙ + endstream + endobj + 42 0 obj + << + /F2 13 0 R + /F6 36 0 R + /F1 10 0 R + /F5 33 0 R + >> + endobj + 40 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 42 0 R + >> + endobj + 47 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F7 + /FontDescriptor 46 0 R + /BaseFont/XUTCNG+CMCSC10 + /FirstChar 0 + /LastChar 127 + /Widths[683.3 902.8 844.4 755.5 727.8 813.9 786.1 844.4 786.1 844.4 786.1 552.8 552.8 + 319.4 319.4 523.6 302.2 424.4 552.8 552.8 552.8 552.8 552.8 813.9 494.4 915.6 735.6 + 824.4 635.6 975 1091.7 844.4 319.4 319.4 552.8 902.8 552.8 902.8 844.4 319.4 436.1 + 436.1 552.8 844.4 319.4 377.8 319.4 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 + 552.8 552.8 552.8 319.4 319.4 844.4 844.4 844.4 523.6 844.4 813.9 770.8 786.1 829.2 + 741.7 712.5 851.4 813.9 405.6 566.7 843 683.3 988.9 813.9 844.4 741.7 844.4 800 611.1 + 786.1 813.9 813.9 1105.5 813.9 813.9 669.4 319.4 552.8 319.4 552.8 319.4 319.4 613.3 + 580 591.1 624.4 557.8 535.6 641.1 613.3 302.2 424.4 635.6 513.3 746.7 613.3 635.6 + 557.8 635.6 602.2 457.8 591.1 613.3 613.3 835.6 613.3 613.3 502.2 552.8 1105.5 552.8 + 552.8 552.8] + >> + endobj + 50 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F8 + /FontDescriptor 49 0 R + /BaseFont/ZABUHS+CMSLTT10 + /FirstChar 0 + /LastChar 127 + /Widths[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525] + >> + endobj + 53 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F9 + /FontDescriptor 52 0 R + /BaseFont/PWTKHO+CMSY9 + /FirstChar 33 + /LastChar 196 + /Widths[1027.8 513.9 513.9 1027.8 1027.8 1027.8 799.4 1027.8 1027.8 628.1 628.1 1027.8 + 1027.8 1027.8 799.4 279.3 1027.8 685.2 685.2 913.6 913.6 0 0 571 571 685.2 513.9 + 742.3 742.3 799.4 799.4 628.1 821.1 673.6 542.6 793.8 542.4 736.3 610.9 871 562.7 + 696.6 782.2 707.9 1229.2 842.1 816.3 716.8 839.3 873.9 622.4 563.2 642.3 632.1 1017.5 + 732.4 685 742 685.2 685.2 685.2 685.2 685.2 628.1 628.1 456.8 456.8 456.8 456.8 513.9 + 513.9 399.7 399.7 285.5 513.9 513.9 628.1 513.9 285.5 856.5 770.7 856.5 428.2 685.2 + 685.2 799.4 799.4 456.8 456.8 456.8 628.1 799.4 799.4 799.4 799.4 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 799.4 285.5 799.4 513.9 799.4 513.9 + 799.4 799.4 799.4 799.4 0 0 799.4 799.4 799.4 1027.8 513.9 513.9 799.4 799.4 799.4 + 799.4 799.4 799.4 799.4 799.4 799.4 799.4 799.4 799.4 1027.8 1027.8 799.4 799.4 1027.8 + 799.4] + >> + endobj + 56 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F10 + /FontDescriptor 55 0 R + /BaseFont/ZQFOXC+CMR8 + /FirstChar 33 + /LastChar 196 + /Widths[295.1 531.3 885.4 531.3 885.4 826.4 295.1 413.2 413.2 531.3 826.4 295.1 354.2 + 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 + 295.1 826.4 501.7 501.7 826.4 795.8 752.1 767.4 811.1 722.6 693.1 833.5 795.8 382.6 + 545.5 825.4 663.6 972.9 795.8 826.4 722.6 826.4 781.6 590.3 767.4 795.8 795.8 1091 + 795.8 795.8 649.3 295.1 531.3 295.1 531.3 295.1 295.1 531.3 590.3 472.2 590.3 472.2 + 324.7 531.3 590.3 295.1 324.7 560.8 295.1 885.4 590.3 531.3 590.3 560.8 414.1 419.1 + 413.2 590.3 560.8 767.4 560.8 560.8 472.2 531.3 1062.5 531.3 531.3 531.3 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 663.6 885.4 826.4 736.8 + 708.3 795.8 767.4 826.4 767.4 826.4 0 0 767.4 619.8 590.3 590.3 885.4 885.4 295.1 + 324.7 531.3 531.3 531.3 531.3 531.3 795.8 472.2 531.3 767.4 826.4 531.3 958.7 1076.8 + 826.4 295.1 531.3] + >> + endobj + 59 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F11 + /FontDescriptor 58 0 R + /BaseFont/JILKDQ+CMSL10 + /FirstChar 33 + /LastChar 196 + /Widths[277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 + 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 + 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 + 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 + 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 + 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 + 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 833.3 + 777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 0 0 722.2 583.3 555.6 555.6 833.3 833.3 + 277.8 305.6 500 500 500 500 500 808.6 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 + 277.8 500] + >> + endobj + 60 0 obj + << + /Filter[/FlateDecode] + /Length 3763 + >> + stream + xÚµZKs䶾çWÌÍT•†&$ÈädËÚÔ&ërÊ«R–«Ì¡$Z3Ã)’²¬ï~äpÈÙuR9Mô‡F¿€U'ÉêqE¿¯¾½ûú^©$.Ôêîa¥ò•2qaWwßýÝ<•Ç¾j¯ÖÆèHýõjmmÝ4û}yØb§‰>Ô‡Š[·Ûº¯Wkm²\Eêêç»|ýN­”‹5q^ÃÕjm‹8'æêjfzÄÎ¥ž´<;â2žŸÅÉ­u[žãÝSÝñ 6WÚEÃŒM´­ºM[‚)åQ%Dý“Ì÷SÙÕlÚè¡*û—ÖS4%ýÝ ×:s½Jèχ—³éi‹Bò÷Í”Žv”*þ¤>à¤aÆ妊f66–0Ó™‹ƒgë‚a‹¸÷‡+“D}Û§$Ú¾lúº90x}ógáÌc— œ‚ÏC³Û58¹×0ÙcÙ–my|êfð=×F‡¦/eBÐýÒU¢045øÞVG@¼bñ¢glWoˆÄÍŽ4×*ÇÓË2€ì÷ž¥ÉilçNпY?Ÿ¯€ç¿“Ö£¶*·Ü*©ÇE¿Ü4<­¶Ù­ÿù•|<Õ™RádxVΫ`[nX ³4:â-,aT¯OÕaH“,Vy\d8GcŠØf°;Y½Ÿ‚Û;êx]Y«ccX±Ä¬öБÁ~òï»ÕGÚÐ*Y¹¸p„‰a`©Sâù¼ÀÓd€òÀ’^=Ça‚øt‘¦Ì°>CzmaBÄÓÓÈêŠÚ‹¡Õx}ªw¢=a—Ž–"(I<`³­„+Œ(5*iMš,jM*JñýœÒ@£+ ð¥±+ ôüò}Õ—¬-ðÆÚA[k NÂÏfª-Ànª-@%ÚÃ@üIºÎUlfe'0+ÝGõ·Þ°»yá—§ß~»’m =Í¡º¿â&‰¨ô€é5¾û 3:«“µoAg5ë'™øܯ´Áþ}FgÚ8«³E‹7°¤×sÕ`?ó‚Ú%Íâ"G/ud@ j¶¶Æ‰Z$´Dp?RÑ®s±ƒ5@§ò‚Ôka»Ã¼Á0Ðù½¹]1@÷͇«<î8 €žñ€aÓ_ð|Ó£ý×¹‹Àâ¾}÷̃Ļ¢)Ûm‡€ê"úÈófóZ÷OLÑ“gB nO´ ¿]B\;X-)kaЇ¬Unâ$` ŠÞç”Õ(’w1…{ RqfGlùýpünè¿…¸¾9…uzPØ{ð²/ån÷ÆXõ #Ufh]°¯«··0È!y3c€QÄJ³%áµëŽ’ á±+µ÷Wh¬›Ûþ.¥ gÐ"e9A4È­”fãÌ3xò„‰Ìꯧ²±+Fl¥ãO$@K©»%vv@)x±ÞAcW=ôÜb ±E{¢âÇêPµŒ>TBIñ<_Q?›öß { è-ù!öZÞ½å6Â=áØÈL58‡˜:_´IŽ~€Üê MÌÈýÏ>Ð ìžõ"ìH`ó?»7¡¤–œx~âàšÃIÌ\ýø„¨õoíɹ½ñK¹ë¦¢TxÙ4‡{ºGú%$ë…ì•ü$-—ø®d"Y¦,™y jZîÄ?gþÏÿ—Î]³ç ÈÉÑ°ûÞµåì%$¨‘GÕ^sÌÓ½lðwOLSJ$TrüIÕ‘g'Õ(üÒÛ·gVG‰ðÍf#!¹ÊNb”nˆ¯Ì8¾zÖÄC”¡ Ì·áNȸã‰ðñaö”ü`\‘æ5õœÉ¢µF?ˆ»Þä±B÷¨ò óBß1£ê~}ÉMdcÆÜ1c_rH´µq¶a¨â\Ña¯ÃšÂÚ’&! åA–_ÂÊ!T^?%ÓÎiá”ÅÊÀÝxî´cŒ¹ã¾Þ”;ÞgÊYì<”lŒ—Ì‚*—è£ÁHLË/lýHiè“wö`G*6]ZGöˆüÜÜÚ.V + S}k‡1L.+BÇÜâ†!9"Lo?Þ,±…О°¥Ž™àAA–:)]ÈÊfã•…­ƒ(¸SÛ®?O·ó8÷å\•Ìr\ õç#šËa’."f´E@Ä Äc—†Äž—˜ + ^Ó¼`¯°©ó^èëTÝúX@àLRjˆ¸¹§–çóëV]˃%’ÁvžàBŠ!o@~{äám®0…êÎLœ«çCu.QÉll)Ð_i\è˜ÓVáU{Ρìˆ%wÌ¡ô+C‚Ä—ðæ¼­Ö³F(–”’pœfÏ¢–ùìÙÅ© éó\Õ,84Bm­–ÚJ(„ON Ç¥—篘–v’LK/4'?9ö†!™Æ^…$™F*±Lgê±ÆxÒŽ•h¢%ù©–˜ U&åPýQlÂ4µqâFe¬÷°ÓmÆërÍáóðéÕo´Hâ÷àµ;~;ÍÛ±¤¯[få÷õÊ=VÏÖYZD ؆⇠Ũ¹ó3*1°Kêm°|[Ö€Š9Ê‹R¨‹Ð1g[üÛÏïn?,pÌL:æÊ3ÆÐ÷LÍgŒ‹;;MW0ãZ3ËÈ; bæ:Îò‹bú!AÌ3Ÿ3x1=×E1@¹ÏŠYü·bB*`FRZŘ]RF!?¼ûnž§—1ð\’ ÷[J«ÁÒe´ì'–eô#‚Œÿu3Ï3Èèy.Ê:ûŸÖ‘ª*hÕUH¡¦5 *%­¸Fd†—¹r…ç¾<ôãíÝ,;¬¨ž¿Ìé)oW`·Xš®á:U†Œú´ò­âÅÅ„P=_±°T­X3 rÞa˜ÿÍ·ó|½°žï’¼…A¯xY^R¯ /Ø[Lä!ÕëÙ‘ANOù6À~ï»jÇV¿c:®÷â×®ò­úàék¡B_,Pzfž¨ ƒêž[hø±´Žï‘­xzŸ¸¼•œ!YF”pã§ÁWóñ¾¾g®ÚFïê]õ3z.›GÇòQ¾Ûû+pŒñoÖ¿.°ôò{–Kâûñ%ñÇõaäµÆÝ)ÆI¬Æ=\à„}5Nô$ÌôÁ&s%2ª«.¦Á”¦4ÙœKdx| sfÓISŸ!ŸÎ@“qy,°åŽ™Ô0U2 ºå€]©¹s @c(vi3däÚ¥ + xq©^‹JƒZ°1™¢²Å26aÈ›ªi œ=<ó<&óø}1E΢}Ýu"ÆnG§Š©Rþ°:OÃ?µeûÆ/U&'Êvtº›ò™0çœÈ?å:JÇo¼QÎêÎ@R_v¥\QѾЮåÊ´W›õhYŒ¦eÉxY26B°¸B_c‚ ƒ¡ñÊÅÇ,¦ÿõ¥“‘ðï2ã0Bþ” ñÜéˆ:¨äŒc@ÊxSÿhuøu’ó¯áÙVS9ð_ÁÞžˆ~mÚº÷–º â$÷t­5gÑ¿;–•ÙtÂh¸ý~eè¤ÝxAñ›Ãâ?çülÙ7üdóÒvg«ÈFÁ_bZPáãŽó‚^ã×CU‘:8<¡h[Žþp¹,qÓ‚éeóÓ±m·®j{ÏÎóeõ­6ú”Ž¸cQ"u•üp=¿,þ¾ƒN¾léÄMGèfGG![&ãSalÉI߶ºæ£¶&]½?òâ³ü³"x½7äì°lžâl÷T3ÑCÇ\Üà‡c±ù¸!Ð@6©Æl¹c&n(8É°æ¸/Ê»P³"ú†› ‡¢#|ò~Ü&7CR!γà¥òáôR sRƒ­H + ¹NWø›a…õv°»`…™_ )u²|ðc` G¤ö+.5:æÊ­2$MRôì³+1Ðd˜rl¥c¦ä + Q@š!ÅÚñ—¬Ä߸Ø'€˜HNÜjRð"\,äp(ðXîÈGrðÖVàÂwTŸGX*çþtiÄ•©$ð´ÄœðU,ØRõar‹šLœ£¸!òqƒ¿¡x9|Ë;/#vxñȺÜuŸ!°ZªSLt·t:jvØiÀÎwŸžVrŸD ¤C°Ôx¡³àÞ—£œ†óí[;8±ñ `cðõÛ™¿,x„`»¯÷|e8 äF9¾LþÁô%?NrÙkùÄSÎÅ&sƒbRlËÜaQÛ–÷j½ˆùØñOæ2±çÆE‰§:ɦàä/ÿùÛÊ]€ '§Š%¶PxNÜ‘ÖÉÈ«T–[¹ÉF›ž±hþÁYû½¡ä®‡rÃG¼×#s•²$ÛÑèH“eÇágæ´×»ät‹Š6úòŸ–RÌ»®™l€d¼pþÙhµô «ƒq–+EcE߀AMŤФЇ/8µº½ûË°Öª6 + endstream + endobj + 61 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F7 47 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + /F6 36 0 R + /F11 59 0 R + >> + endobj + 44 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 61 0 R + >> + endobj + 64 0 obj + << + /Filter[/FlateDecode] + /Length 2239 + >> + stream + xÚ­YKs㸾çWðfªjÄ%À÷1ëÙÙL²³•J¼•JÅ© $ÁcŠT‘ÔzýïÓ/EÙ3™= Ýè¾î†¼0CïÑ£Ÿ½ïï¾û =…òî<•{* + ŠØ»{ÿ/_¯ÖºóÌÿñç_Vë(Šü¿Y³«ÊÚò×Oå¦5íËêßwöT‘·Ž‹ §½ÿØÛ¨’ÌYéÌoNø‘úf·ÃAî÷ö·ž×K¡ë÷–‡r·«dÜ<ð¯á”ý†i|Îö¹¬*¦¨›¾ÜZÇшŒíJ§þÞ´fÛÛ¶ã=}3“Û–{dÚ“BkÔ(†Ÿ(Pl:‹ŠeƒJüí©íš–'M+“Ÿ§now<Û Ü_W:÷m{ƒS‹ºƒyBa– [˜E}¼øàزÄ^4EZÁÜhà»7£,ž)ëζ½Ý«uà-ø\v`CTB@±‚ )øL>‹•9ãÇÎV¶·8Ör màÀ j_Ö;YÚ ›åJÕhùljydˆ&8Û1ZžÖÑÐ yL†ÆºªÀÐ䬹*C‚ŸÀè:ÎI¢Ž ÿ^'F + Ž1îð—¤à`S™ú‰‡ÝÑlevÛZÓ£?‰™¾O·¯µ‡ç]a€W¼Š:œqGË¡'Tæÿ‘Iª²ëyí‚xCZâÈv8mSšª›¹ã’ƒlmwe_Öøá"n©DŒ(€aÉÔü]ÖÇ“,¹K·ª"už»Å}÷!áÁÙ9RE²o×&š`H’Iá…´þI,#Q ‡tž‘#9,9‹“ÁÌ”$k‘üð•’ÁNÏ8gÚÝ/¼<(Ò™lÍZïÉ?Ü+bïÙÓ ’Qâ¼(b5|WÞß dUèeA‘!C¡ã@3X¾ÿá§EŽqz‘¿Çñ„ ‰È£ g†å…i²@ktŸ@Y;WÂ)J=·>S0UA”O4,Š74tF¿G·þ߬EîN[Çýš¶Eþ¦¶k êhº$ kô^@ŒnÄ~Éï²ÖÌh*ûÐóÍàë3ÝN°ôz°ºk²{5X¿ôt§zgÛiý( âÿÚ–‚!ŒÑ–q›Û5`èGÊoJx7|Ë„2öÇ:Áœ3‰¿Êpÿ¹0\Ž\‹á\ O˜H$ËößXôíútÉ'’(v + ÿRïP‰4•“¦PpÄhà + Ûæp05fÖ$Nü®rÍy¶n ]apn8Tœ¤ÙÈ–q±é…‰ SBÅ4a[âÆZdŽ=gÂÿé™ÑÊ×Ü~quä4]ïøì¢þjÌñ)œ˜)ШÆäøxjM_65Y9{ly„Å5¤ÐapÆx©$:J2±ˆ†²%PoÅH­ƒ"™ + à‰K¸Ð1Ø×ÙïWÐ1MFtä:é…Í´¡Â̲í:Ûó€<¿®6¢9òn¦Ï«M6¯£ƒ"@eJ§i\€&Õ 4©»JéXÿàØ`½åVç¾Ñ ˜)*–<ƒpš“áÀN¥ÿÃ÷‚c†yÄÉr¢iÒ@M˜Òç¥/Tª–azÕpžõ ÇèT‰Pû†œÙkR°ñ 9/mKME·é }g/‘I%:ˆ£éÍ[ÂtNÍ{Þ1òÀ}ÚÉeÏ¥Wü{§ ûE!úÁí¤ÓYàâŠ+&èZº”žôqY‚¥RB©)@¨6á—Â<öoçºKE¹9Ò€1¿£Ò5‡˜W}ÑÕÑ9`šÙT4ÌÀgݶ-åbu<×»ý‡†ªb˜Ú˜®Üò¤Ä@×· ;aJ½Ršñtm©`Ϲ¹Äå¦Ý¡yqH½ž¢áoìó¦/š>‡r¾¬pE3Î1ö®cüR@Ë$Ò=ÑWŽÈ:vfuië-¶°:/ ¬]?»Žd¼uf§ìì&¶–Ò{ٚɡ©&}3ijxªD_lÀ I3QCÒܼØóÝiP {¾aïÛ*‰ g¸§¡2/®#,‡ïÍxZI:L,Aß°<¾}Ž&ƒ´˜²å‰ôæšc¾YF?pD>A?Œ¯"õÿdé}!QòЄ~×dj üâv¤+åÄOߎGkŽå®záiwa©„Å!E©ôˆ‹3^ö„f±ØͯvfŒxTìzÓΚÖ ±T:Ú¯l/ŽaëÝ7âÓ·w©†h`LÒÊóž#⌀pŽÙ”$ˆæÀ%`ÓÙ™28å5 ™8UwåcÙw_¦ÛÿÛûOÔóóYó_½*ú¶²¦¥JÈ9€˜.+Û#õDéÐ鳤ÚZ^ä•y+3}]iŽR~ÇšŠÈÑ>?ËS$TžþžŸT.TK2²W°zåzÃÄž˜ ^9 œ0, l£ bÊê²°Q`¶ØIøô;~Fo‚a´ÿ±çƒ•ÿ + Uոؔª8Í•MseO'SšXê`ôð¾«sGåAÅKçç釠*³¼•™å•HÍ&£åƒí1N±+ù֋Ϭ¸ Lã.Ù´h ¥YšÖlÑRÍö—²ª¤¥KfešR¯ÔinßEÚÛãÜ,¼!T(ÖÔùÑ6_ƒÃÂ=І“-¾aÓÜ^¨äÑ>ÛmNý9·ÎL1WJ¡0|a&}ræœÜpce¨^FÊ“{Ï^cžNM}êNÐ|¿p1»Zès%“*ÝLý´d"¸àÚå°{@5?°)”ßÔÝ•R6OÞ83~IÏ:@"’ê1îÿÞÿ|{êoxž‘Ÿ¦ë­›me›dqµv+7‚µ/’!]óÝù¯iyë•Gbàúp3ýÏT>ƒÞ7ÒJ¸ÀQ‰{dûøp†’Jªø£\GÎ\@ÊžcG¿t¼$7F¥@,«»Nïq5S~Í + ¿²DÃßLÒZ—ÊE€þÊX.ï·î-üÑöWßÍ'3˜YëIÚ!_Þë$µ­sÑÜûM;{óêÌÁRœÀä±¢¿¨0îÉ*Ë?übbîÑ + endstream + endobj + 65 0 obj + << + /F2 13 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + /F1 10 0 R + /F11 59 0 R + >> + endobj + 63 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 65 0 R + >> + endobj + 68 0 obj + << + /Filter[/FlateDecode] + /Length 2842 + >> + stream + xÚk£Fòûý +  # ,Ý4 ä>ímv/¹duRv¤(ºœÆfÆhmðÞ‰ÿýÕ«¡yL²_L?«ªë]å]ÅñîyGŸîþñðæƒÞ©8*Ôîái§òJ¢Âì¾ûOðîX^†ª» “DêۻИ4xמÏesÀÅ$ø©n*½?ÔCÝ<ß…:±¹ + ’»ÿ>ük§LT$»ÐQN9V œHÓàv§³ ½âÄ×¾âÕ’?ŸëÓ‰G{Fv³,†£œª?Õ=û~ÁŸêÀP놿%’òæƒRÓ+µI#xiLD!¶°CÚéœÇŒ$‹t!§"x½Êƒ· ¢¸1d_Ïw:‘Ây…Ô´OŽü¦¯öסfˆ'¡.²È¨]|Vf¤Þ‘˜xzGc‹ D^àââðZuàMæm·Ïéîqª‚¾u·J9ðBBÀK£ÆIÙ|æY-‡Ë=®¾çéìàáU:̤"›¬ ŽüXP2yi:¾Îïˆá0bâ·iœX©Pªfë¾þM§Ùþï°j­0`Tñë|ÅB$#‡P& Kþ\ºêKÝ^ûÓM \ßaIÓˆº¤-H'µAYŸÊÇ“ˆtùÌ¡e£@­A&H™%ãÒʱ—OœÊåc'%¹Ç<×AÙ ´Woæ"nûŽl« h€´4*4‘ö}å Л#ì¤[ýÀ#R5Øóëyõ©ðÈVAlH›N>™Nèç‘-Ø™„ŸW–fQê ìGV |š#H䋨»ö¼ víºŠ,pzGá…ßöà“Za£“‰0A圿ÖÛÙ7Së=écxøŠ'é<úu^ˆƒ#—ÛÙfδá + y’ŵéÙxô…¾#YàHµÜ$ý~!Ý#Ì7-Þìé†QAÆë«ôkÜJ‚F¤dFRÐ ˜$øå.×8Ug‘\›CÙÕ•èÞ¤ÎZ_žE + eï¶Ú^6!Pxó‘ÝðRFà…"¥…ýç•xT©lté+xpžÏȩŠ]–@¨ÈXðlì»Äª÷´ð²Kt”¤hoI”êÝy‡¡ÏŽóÓî\ﲨȈb¹`á>CüîýOÛ0­ŽâƒÉss"öȘAÖ+>hé—™_:ZZêD’z†å-öCÙ Î7lÍÝÐq™dÛئ3YgT™oXì; qòŠ¹…IGç)Ë\2Æ}yí«EhsÚù'ŽÓ±˜£<(ZdS_8ÌHTP(ø=¶l]0IQÆ«¤8ËQYc2¸ò9ú>Ä– 9N#\Êg,æ38«9Nµ‚“§^Ã\%Á¯wy‚x(›À½sU6B0ß³„\$çö ØàÜöCȯWZ¡óô ª«ö$O·pÊ“·R + /îSÇ«ÇÞ¹Ýrªç™ÝmÓìœéº²,GTH=£òIÒ«5½kÐÄÚXG7_)‡ÅÙÌ¿.µ¹ý©7ù¹ Y¨™ä&8+)tÖ… + ¸LÌfµE–Ëù<†ÌáE ´Pˆœð¯ä‰¯|p_6¼ß6ĸrhNr60¢2RG.] ®lö~Ý + ——<€hifo UÇQ®dŸáÏ®"ϑݾÆ+¼œÒe[0.³·S‘Ž 0ÅêàçªS + |tÝ=/‘žÁY˜¹ê€Ò½8øÔž«¡>W—åát„Ç™:®ì™ð©J¥D¡€•üé*Îä+Te\؃$H÷XhBúÊEn n#)}e.Ù›Öc„ `5K¤¯Ÿ›µÄͤï”O$¢eD Ç%·U.Ð"T®\K&Ó ¨Žxâ}W«r[@ë(Oü¶€ÈÈfT³Úìå¹{ ¼1ç­e¯‰gK>0i=¬Aè¦róÈG›¶;CÉ~“ ûA°aãÄe¤’,jðYXX¡™g–¾UíOÈs¼°sÍ QΈ`êŠaªR[îaæÙØ8Wc ÕåùrªPbÅo‡+ŸGTâ>=àkyHIš’^ -åøÜ5!t²± + ‹@õ€ïüVŽƒÂ”JWZ¤œÉ* ±á\ÖÍ’•1•öYÉî%äžòõfqÐS+Áä_ÿä_é6Àxž|°J§àâe”8“‰u—(¤ÛÎÒ($¿jÉĘB¸£bä£öš¸xÂãI@,Ü.m(²Î¦¬æc¨ØýÄÎ ­ 7Ù”ÿ#pX±VB§—¬U§j¨˜^Ñ‹XÚEDaÕxºm}Ýæ0Uv*ªNú@c#Ïùẹ\‡UÇÎ˪X­0¥JÇ”*å”êSUvû»DGndfFÚ›ÙøGÏ3 + R™ënÀàûºÚy%~æåeK©´” + °/õ2¤4ñ»«©CƒžHÃ÷K‹ŸÜµ×ç#ïKûÛxþ&G¡j Ñ÷ît®,s{;’~nÂþÐ,Zï®íÖ˜ÞSÂGMþ®ZöñÆ6£´[§×H¤&#¨FÿíÆÿ2ÖFÖeÑu³å‡H¶r³1;?‹lXCy;Ýnàõ0ä³}‡úŒLòì ðå=¹+â’ŸéO¨iNQFÚ5t5vŠ:>s,{^BŽ7u¤²ð,›2ÿ½–+wwÄK¦§¡ô™ÄÈÞ + )U)G¶£ëÌÔÆ ¾…—ùB¤lIþ¾1ÅÑ|;(#›U.9Æþr¢ sëù—4‘á°–TNH™îSsœ p9Îå°GícÛÑVÜÑ´¸t²rü§ ÷žÊ.âÖÝÛ†W&ű"sð >OpÞUÿ»BªÚ30®Xñ2 ¾ç²áN ^:89¹™x6Uu T’ÞCÐ!9,#^Õ>19Ø™˜š'ôW&ä8p3«t+Wâ + '„ ìt`Pòæ¢}½¿žÊn!)#ÍZ×)Ðf¬–Ñ4õšNïÂî/jk*­¦¿ÇV±9þÕ}ö[…¾ Ýs»N´^CZ{®Y»ÐÇá6ä¶Ø½Ð¦©ÃÚϲ=e:7O jʬ‹£˜·áŸ™§kÅëœØ)ñ¢|‘FÆý)RÓ›Ž! ‡”·*7zØÌp®•ñt5ýÛ (Ri…«Ì5¹E-qÅA¢8ɶ\ùîýÃßþ"c\Õ + endstream + endobj + 69 0 obj + << + /F2 13 0 R + /F11 59 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + /F1 10 0 R + /F6 36 0 R + /F3 16 0 R + >> + endobj + 67 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 69 0 R + >> + endobj + 72 0 obj + << + /Filter[/FlateDecode] + /Length 2580 + >> + stream + xÚYÝã¶ï_! "gÄ}ôí²ÝK/.ÅÓ¢H”kÓ¶p²´•äÛÝ>ôoï g(Ñ–7Í“É!9Îçoä(MÒ4:Dîç»èÛÍÛ÷"ÊҤʢÍ>ÊÊ(“I¥¢Í_~ŽÕj-ª´,âï>þ´ZK)ãOÖ욺µ4û¡~èMÿ²úuó}´~Y´VURº³ƒ5ýv%Šø˜¬Öy©ãûÕZe*f¤ÑוV±ékóÐX¤ÈøhZj»‘( B[ÛÝ C}híŽg›ælßÀ\â Ezû¾ŠÊ¤ÊñY¢ÊQÀ›éaG'òýÆž"™‰$+"¸)©dtŠ$ + åçMôÙi)K£"© + dçH”¹ãxÿùî6OY$:`馞ã,. é*bXÓÓ”I†Z¦˜vGÊyƒIZE©[¿[¿` ²$÷ë`šÔÝ›íhûtýT7 ÙRæ ¼ˆÖà + Ý»NukF4TÚF{äy\·ÛÞžÀ:`èÑ4HT¦¿–1Ë+|²ò°R$BóºˆîC?(â®é^º_ߺ_÷“<¨+·ÐÛaìzK,ØKà‘\™Ñcµ»·ëë<ØɬˆÑßô¬*þljxÚ ÂËp^¼Á+l^)E:Ÿ8Ö(Å MXtšæñ¶ƒ9Èfê¶nD{åª<Æ7á#(øæºì¶;Ùb•¸À`{î{K· AðûK¦Ðß×YŽ?Èf³*EÜá¶*þEè)UwÀ­§áÉŒ[dv$ya£RMWW`$ÚJ"¨,ÐP˜ Š”ààË#ɾtï\&Åä9ýÒsÒ¤ôîÝõKÏ“‰RÓñáæñ’×1 ¡læñ±ï!CÎÀ…6 ;Lj”I©C¥“»ŠòÒR¢Ìããf_ž0êL¿#*é~÷]ÿ„ËÓ* Ù8…!aRR÷t.XníóH¤ÀpŒS°qÂg®EÔ·‰c¥öfáÔ;tô»7½ËïyüÎ]ýB©„w|A²eú`ÿ}¶íÖÒ%÷îÜ2Ó±£]œ×çbƒ3ðå“ñ;93à™ 1ejŽê눸x¯L))™ÅöÙnÏx'TœpÄסٳ4~£u;Œ^+´i¯‹ $ù,­Ø]&)úPI¥A9 + é 7ÊÍtDB/ÓO÷›WØ‚[Ê,dK„eÍ…NrE\EñJÑAÕaj'½ñàU5›íÖ>ŽdÉyhJ ‚’‘K˜Î”½}`§Â J–¢<[§3“gH‘Åû¾;]­ÏéÖ1Ý Q! ½£åS‡w|E'§RRºÌ(²±˜«ã"eÉÊU)T­íɸþÂ=)€Jiï¬+‡nÎ ý´ö‰çNˆO¡Ž_\»PºË°¯² 1× ëwìî•Jþ±k× £éL×`¹FJN#v=𙺷ׇxβiFìðŽ}×óaH–ý8-cŽwÔ+{*Ù ³Bï ^uYÄT (œ ÿàd¥*¡:["^BÀbV^^?_¨rA+×.„'Ð+^fÈè6‚¢{Zîz¢|ŠøÑNßÅ—¥k‹9¼sÚa¬†§~'fƒ:Æ– + Ëž¾+É ÚÍEè´bm=Òè}ÝØe”‘$p£^î]ƒat@]Všµƒ >ìáf&ˆcðD:Æ ý v¤SüÞŸÌvX7õ| ã6¡†‡ºÝá"ºÂÛ4v÷Š§øb¡tº7ç‘¥*Ëß«4¡sü}$äÝ$õž@rà~Á¶40ô³«!ÔsÛs wz¬º7Àè™0œa§Í[×¾àà Ž|ªÿsÛ9{zsB§Ðš¡‰$F4¬ªóéõ¸ùñ¬)¥Áh²?Rb„%Í()ñ·ÓÈÔ± Ææ äpVϪ…Ï•V…*ø€Í$+³CèÕµxo*æRî Ðé wž)µßÂ=*K²éË¥xIo×ø¶f¢òê@Ú¡N|ÚÙm’⺞3ao(_8É[®y¸‰ÑO{°´ØO¨ì¼{}ÁƒÝ™án}8rÊÄéÑà"+‡wì«cÇn:ÎEMâǬ)†D‰ÈkZ’ýŽª#~iWØ­˜ç›UN†UnƒýuÅf.Ò¸k]òBöˆðpþ`pf7„¼øâ¼uÞ { ãuÊuP4ç ðK »áݲ>¯Ø`˜ñ´Œ¿mLû…ö;œ3‹wÛuëC ¸ »Ö¢ñtDéÔãè ´ªÊWfUQ©Koe‡¼H´/\&…¤ð©ãæä>¯©Ê¹)—ÌáJXý q4¡i ,Åi‘Hº%Ž¼ƒw‹­Õ›2Çã—ø‹¢Ôõ0©¼´e + á‘nié3Ô#ØItôBAôŸï.™(v7±ûC0K˜_õË*¡Ö?òç´T±•oµ™;Ûv¾Ç¼ürŽÈGc¦|;¤2Ïà$øB"RLáxÁßW® + ˜~öLq?}¡»®Jé‚])ÁêtÓhÚ]½GØ£¸ á ?·ë±>YÚÇmg…Úáhàãð” + ÿh Í £`‡i  c§™¸|˜9-†‡Ô…RÁaY^Eãy ð„=Á¼iô¡v¼õ¥}™¯‘ú¸¿’±Ey3öÁw7~}xáÂÏõ€Òdú†/ïC}zl쟗qS&E劔V—B_þ}àeþ:¹A®2˜!.º~#tmøw‚cJ•ï¯?]¡ÑüÚ[ûlP$GÎc*O%À<|ÐNx‹¹Ïn1>p¡4\¡¯K0˜0 ®_· È‹Æ/4agÝÒH/l[&¥ÿLüuù=,Óó,óaü•…›5†ÛK3¬5,Иk#4€f°>uX‘BwG÷›?ücà:ˆ + endstream + endobj + 73 0 obj + << + /F2 13 0 R + /F9 53 0 R + /F10 56 0 R + /F8 50 0 R + /F1 10 0 R + /F11 59 0 R + /F3 16 0 R + >> + endobj + 71 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 73 0 R + >> + endobj + 76 0 obj + << + /Filter[/FlateDecode] + /Length 2221 + >> + stream + xÚXKoäƾçWÎa)`Ùf7ßöÉÞ¬ƒd…ä `j¦g¦±|ŒIŽ´Ê¯O½šÃGÒÊ'6«›Åz×WÄ*Žƒ}@¿?ß~ÿ‹ t¬*Üî]:QUÜþå?á‡C}œìp%‰ õ7Qšfᇾmën‹Ä$ü»ë,¯>nÝäºýMd’¼ÔavóßÛ_ƒ¬PYDi¥Jbø¯›2 ëÁÕw ~/]ÝÚ—iÈLaq“eaÝœìøU>ì`åÐñ8ôGà0YÚ,€l vÓï;÷?+lÜtèO“ßÜ×Ö„ŠƒTÔ¬âÔ³ø›z´jÞÎTehû'Þݶžx¹µuë~‡O`}ê¢Éµb‡;°@ÚC}cŠðÞõb=7òá ’u··bØCAyw:—]ß4=} ›"‰­Â¶IÔïIÎŽC±K•³ïlÓDãô s ‹KÐ;¹ïðGÓÐ7 c + ¾{8 ²¸ÿYŸŽö º¢ã½ÚzÛû‰ŽÕ!òi3§ØÊ í¦èÎî]÷R–qdßRfŽ‹–˜˜‹Ð\7Úaâ5Õ#b#A¤‚¿tó‡Tz`o>$q`´$¨çðTSä*÷ÙÁ¿å4ŒdgaÑpí¬DFXl–Í€k\Ú¯vsšìVaÃHEu¨nâǹœ¥Täçú¸’5.1uøGßýù»• ºPÚGÍ—%&GA/}vlìäú.rû®l„eÿõIÑÇý±8.ÖW‚Œc´ÈÔ¯ãBk•æË<Ž—ÅYK½výÐŽLúl²¢±Ø)ù¯m=qá~[UÒ:aë¬!{5KU^,Uq›¿>·½ã ¡}ßcö‹Cvõx6oô!‘×V1à™we¿Û½èÊw×| -9yÆ•¿Ÿìð9¨ãë®$ELY„êzj±aa†q¹Ç Ì-|²#úQª¨)ËÅOG>3Q§Ä­­åòbe‡Ów&ÿG¨Ðòå‰CÐhÆ„õø…šÎvNcøpà=Isi>J™à + `–Rº\h…ÝЧÙòZ*¸u㱡2ÿˆºK–ÆãRRÖ}E[«JÙXUFb céÒXpÖÉ“À3ÈЂ“§ƒ?0‡Õ{ê9AVÆ{pØÑL“ù`!%dnÚ›m‰ä^ˆ]?1ÏÃ)7È{w¤Ý;û0³mDq²°GfpÄ[ [ðA.°Ôä ØAˆè?¶¸I Ia ³Â›<[28:÷gâ !dLB愺èÝ1Ž³{R5Ïé¹rèìÌWöAÚ³Üþ~ò(×äX1ü¿õuQ RP¬uÓÜVéo + •’Þ:Ž¯¦ñB%ÒRÉ+Iÿî{Wk§úõ拱mRA/¸ ÓÁóJýÖ*y¥~g‹úmò%A–’°Ú0°¾§4äÏ‚ÿ‡zæG÷§Zð?Éu.Öíä͹sÓY®ìFùEè¡NP…k‘ºXØ0¨¯®õ¸qpªõƒÝä×"ŒÚ „ƒí6( 8°åwÌ2ö%"~âÅÏYüÄ‹mž8ÛÚ×ù[/v”ªÊsÐ@?‚¦¬âTÿx ³k<À š«º[R–*΃6Ð`Ä0Bh‚O4Þê8(TUÿü'Uª*î$?}x†mˆÈ,Ù2Á³=KŠtÊ\3溶n¡rè`ø + àe`+ãEÀ`åi:)ȵ¸â¸Å'vï€Dä-Iöf×á ï:% ÐkXz™ÍÏôõôJ¶èX+“}cº\Il]Ä™‹Ä†ö„U0º2¯§w?|¯¦w~Æ!ÿx=½S]]̆>½q広£¸&2F{?lñm‰Âp<Ìb¼3¹„eÕÖ~ZÊÌW’2_ÔxaÔŽÞæ7*="X#—yWõ(wü”«C½=³‡aÀ½gú·W\¿¸ý€7ÚfÉ8óÔ¸¹A¥}‘_ÂÊ'á÷|¼•1^Mýq •GÅ#åk«¨í·öÛÐ㺹)ãÇ¡¹T$dÎ_\怲:õÉ/×0Hy8¸ †Õ_Ï&‚žDtÆ8ž_ºcÖk(Ñ®ÛÊX)É—É—¦È)%†$Yøó#oÉ¿Þ3p]488>Nõ0 ‹ÓQXuüüØÖájçû@ ·ŸÀö + dò—{Z®Wp!5 ÚKÏK2I)w}p í à + à•kêAôü$9Ø2ÌBê%ÌB~î:—á2Ä"zÆA —\~uÐ)*¥ý|gÉ«&[b˜¯:ΨëêÜ”`óWCo/¯U¥Ê‹[ ˜"±º~±Çzûz¼ÿ›§˜,èAK¥ka!¿óü ЩXÞ!"K)xø“á‘Iþo,·Ð¨ÈaþÛÔTViGÂFT ¢"}rÃ#SYÕ[Ð?Ï€Ëê¦á4¸ò©oeˆ!q®¤3¥ª[™yV$ g+â`Q_âòÕjÇßZ‹!Ê/„:-T™,¯ýzpM®y¹¦‹Kz\o¹‰2Õ·‡E‚—§$ñ%±Fò0²'‹ù(S(Þ’ðšÜ|Ájy£b΄þF¤¸¸æ¢›kj݈u.Z÷sóÎKžÑy¬âìM®èù§ÿmîš— + endstream + endobj + 77 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F7 47 0 R + /F9 53 0 R + /F10 56 0 R + >> + endobj + 75 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 77 0 R + >> + endobj + 80 0 obj + << + /Filter[/FlateDecode] + /Length 2365 + >> + stream + xÚYK“¤¸¾ûWpÊ1hH<Â'ïzfÃ<íÓöF˜.T]¸)¨ª{Ê¿Þù + (èžê9¡g*•ÊüòŠ0ô=úüâýt÷éKäÉPäÒ»Ûy2ód,råÝýí7?ÙQf©ÿË?ÿ½ â8öÿeŠ²®ýT]Ñ7¿ßýêI©…L¼@å"£ÍßÁ¢(ñ{3pchñ›úÿÁõŸ¾Äã¡J‰0ñBÚÖ6<=åI + ¥íô‡H$ó‡½aªûªZà:[8&K;W ƒ9‡~~þ±.¶vÁ‘–·U³qbSÃ&»œOHý¾8ºb µÐÒ @@’TóyÛb¨€ï Nß}M±E¢{ìé —0e­Î ]ež7pœ)yåK5ìŠ@qnEpìÌsÕžúÀ½–W®ÅEšÝ‚V‡‰Ès¾†¦Uù6¼J-ÉD*-9±¤&£DD@-Z´o»êm3uÐo»¶®ƒC[š] + M¹¸@yì?o´ò‹®*jT„žz Ó¨²ª£ô´ð5 <ÓñäRÍd’ ¾­gNp˜`ÛñwI,Rx_Kk·[KØ’%&6A)ÿ«†ªyd’ÕÀ|:Þ—G¤¹H’[Ù%AšÉìi¦hz”è÷U›[Æ6àá¹ÕPIíF”y + ²EαoÊj@uÅöKU×Üâ·æ¶U²ª¢®!©器Ì/ð›8½5 !cì´5Xñ²wcÀâÙnîì–ºméÝ]s\È—ªöÜÄ{ò*3eŠ…Å'DÔÓ~Õô ^H[ñ€uvÅñhA¶Ž7$PxlÌ ¯u÷À6Þ”@E¹ÿÓ™‡J³+Nõ`OPù !è‰!ä’‰À—U?¶ª¯©{¦E”Ý®¡KËNÀE¨©eWÍñ43ß·f‚YF¡AŒÂwþuöøWjꇀ$+!¶LcE…íêqOï<­)ÉàÙ{6ÀÙCÛÚÅüD„ñôb¤U*Ö#ý=ö•O§à¸ú^V²'(ºb;˜®çÕnq7éï7p/•„Ð{,º²6}ϳ¨wø}!ÛuDÖdUSÔ¸ÜQ]T"Ûc2Plô§£õzݙ¡wÌgæT’; Âõ‰æRR<$¸‚„I"”|¦:§3I¾Q =÷FÖßÎÉEè *`°«‹Ç¥R «œ¥Ö`Î škâŸ8ù;Âv´ ö;ð&Ss[3%EÏ ¢=Ùî+ðŸý-~Dª=pþ%ØƇÆﵪà7íØ·§º´£öLK ß¿U°s0{W@Y¶¡I”J + 8Z´Š(k==ôæ“Ý^Ÿy‰ùf¶'ö\¸ˆ}4¶(OÇ,/-zž*ìŠöp(šrÉÅ=ðš•åà·>aGŠHhnþöõÂ)ý;XˆÆè­x´ûâû (S.%a ŽðKbkA¨,6íù€lXÁ.FûÕ3žË]ÅNJñqô!4qõh¤¹—‰<á°#A EÑ÷ùŽ^¼8ŒÄ”g‹(ö^,3‘d—ÚûJ!º ½Tä)Ò»ìH0?ýù¢ãSšØw$Gq^¦8Ÿˆ”IV =NE¬½ÀÝÂ>ê§/Ù4Jql­ïçà×…(ÄÄ‚çèê©c·h,.ÄJ$3à½Öl²b«Í †+kMo´×'s>ÇWL”ƒ çc>P?ñ«ÒÜ"TŽÀcÞqê:ã’œy"õ¡Ã¨O`ƒ+ívÐc4%YÑhÁÒNÐzzTó0öÿºÝšã@*½mC)´C¾WnOÂIÄX²‡„‚¨krZ‰Ü½¤9Û%ªE¾¯ø¸ =P&Ûƒ~€{€g[Ðɱ?®ä*‹€–齃D¯ÓÂü41µêo«DôMDž«7C•ïm†¬èy™)ˆ¹²[)LÐõ ARÊh4Ø©xÑùæ3çT!ð5Ý°$ + cÕ@¾’ + b#E„°+Öä“)G„Öhœ* ®hE[EÖ+9‘Ìg‡¼)=ö—-ä„Ôº¢Ç1¦··°Ì°ñ¢Ö³xqy ˜Ôòýö äÂ?Ä:õXåÓp óœª_y€ðèf«¦Ób{ÚòN¤r^é„kI43[ÈêÖKi„¾%\My@së¾µ¡Ü=ˆ¢®±ÿ…ñQÐy¢j + "àjµ"Gd›¸„CÑ=eÕYHZM[f£dΙ 60³ÁïJf.úöÄF©½À±6”^#IÇØ™»¶¡¹/ðžÏ®†(I©4±Uýž›… õMSšRØ|&»ÒÏ»U)ºx¥*‹ðÖ"Êj!\¿èEµ«LpÝá‹E(ÄðR+È]šüf•EB !ßQ}T!fS§ÞØó'©è䜲êuÎþÌ®€UôìåAZ$r†¦«ú'X–†/9ÓÑ­þy)"‘:Óýp¿ÁbbεL Æ– À™ÎŽ‘Ú±4 ƒ¶êƒÍ—}5V0YßRŸÃbÉf13¬?ØÚkFš^ÔMÅBeÓHÛ>\¼¨ò¥»™ÕRXßšb2‘'| lU{M!ÔѶ|™ŽêØŸ Š'ÐÇ¡AÐK yÈÐ+Ð ¥n×:ϱh:0ÈÝ[%øV˜âP]Œø€d7r¼¶†E4ŒWëç –•UË$Ù,à¯è0õ€pG + þXÜ¡‘)îðÐ=¦–ÐÔþŽ1nâi'6ûÉÅ`·Ý-ËY6©àK¹*OØ~ëÝ’ àL„’HIÞ{q0Ó£ÊýHy-Š¢…+¶û`_•¥i‚]Uߎƒ‘š/°¨˜H‹ƒ8I + ).âÀ + Fœ¦Þª‘x€ÃÁhV’Þ;ïäŠ p> + endobj + 79 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 81 0 R + >> + endobj + 84 0 obj + << + /Filter[/FlateDecode] + /Length 2126 + >> + stream + xÚ¥XK㸾ï¯0ö220ÒŠ½æ°‡ ’M`Ñ·L€Ð6m-KŽ$·ÇûëSÒ’[žŽ{Y$‹dÕW_µH“4]ìôùËâ—§Ÿ>Ë…H“J,ž¶ Q.„J*½xúõ_Ñǽ9¶[ÆJÉH|XÆZgÑÇöp0Í…*ú»k,·>mÜàšÝ2–*/ET,ÿýô·Ÿ>«QsV$Y¹ˆu•”¤¼= ÇÓì`x®œÍ…“>É_·°KYF½°QECË‚ÿÌöÑy")oÑÌ4 ‘èÌ¿{7Jeô»5›š/Ï®®yëµYÊ"º  ˆÖK™G{Ó™5X¥gÙÙ {¤½×`Ýn«x ŒVnÀs,b¼VÆ×Êè| + ·êìz¨/x 4ê èê¸=ìMÃsLÏÃ]4\|ìì™_í†Çl¿6Gð‚gõö¿'Û¬m²Œs­£'8#%žbc·æTìG×ównØ,Mò^…ˆÒñмƒ¦ [ãعf˜¢)Þ·û£mS×—Ç(FæZ2WäüÞ–HªòqhÉ"Ÿ@ U2ÇànÁË9ÞXæâÖG<yçÌÀ d{žÛ·Ý‘ÏÜ¢­¦fô·'Ä’b ç÷ˆL}Ü›3ÅàÖ€g·ÝÆvïrd¡¢ð,„­M‹Ï «#ÎC1ƒ0™“ËÓÞ'ˆ;,£ïضPIZü–)ßb]$¥š²L¿oÏ1X vÛØVnwjOP Ä[{ºc1Ƀp¼tÐEd÷äÈ×b(ƒ€BQVã¢Ñ¹¬m{jÖäês«bz“apbI(C*îØLäIú9O¥à@<)x¯yã¼wkôëž»{â—@P°)µ|B‚VÛxÑkªIÅíM±o€N=HK3ˆ`CxÁ×p@¼2¬BJÃNíúò´Ýá`7Î –ð‚Eûã˜aGµ‰¦¬lo”Öõèe*¬O–ÉéÛ ©HdögP\K¿âSsh7në8ö±–ú + cl{#èñ~ØññÞ'k©¼'‹¦ÎÅþÆÜu^lævÝš~OËd(wW›7MÑÕt!ÆË”:)B6ûñŒ‘ŒèüV4 HD¥ôK<ìÄ_p ‰‚»¥Ž¦1$x¨þ&%‹rPŒy({¥œFó«SE1U†ƒ‡ ¾1» 1UR¢€¢šçƒÎ)Jå÷MÏÝ38Jun\œëè‹÷>4_i»ÝóœMÛ¼¸ÙCÁ짖Àì[õv÷PÌ~Yr|1g@SxUò–"h¤å+E 0PEé”"H(;DÑðEŠˆçœK¬¡?B˜°=‡¾ƒ)Ô]êV‰ú3L!U™1-„^y&î3,”öO«ì^Xh©õñ<ƒ6`7/'•`¯¦å#nføƒþ¯í»ž{U‚GN®¬Èù!sôÏœfCŽÎÒë¹ÿƉ³<‘7%koÌÁ»ì¼· ·0Þ×z.7'¿ëàwýèëI–2É¿ÏÑðXÙÔ³¿Ù «ÿÅ58.y—‹òìpdâÕèwD(1«)²`ö3Þ^¼_h*T;^§iøÍTªèýœÄ®k  •vC -(ÜÝ1$íùCà 7Ì751.l9üú±xʱäÁýþÙ¬ýƒÃù Ò›&ÜÒ;µÒ¯-tÝ‘.[1ª.<o¦uXÕxðÇ¿ß+.CnÔhgÖ Vy(Ô¡á-:Ôu¨HÇ0Qy9ÁWŽ ¸ßóÂ,Bo½Ò> + endobj + 83 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 85 0 R + >> + endobj + 88 0 obj + << + /Filter[/FlateDecode] + /Length 2138 + >> + stream + xÚYQsÛ6~¿_¡ñK©™%’ óp3MâtzMÓLìÌ=D7SZ‚lÖé’Tl÷¡¿ýv±4£»‹ÝowåEÄ¢hq»ÐŸo®|/xÄ + ¾¸Þ.x¾à‚ÉâúÝ× _†qå2øùã—e(„>«r³«jEoª›¶lŸ—ÿ»þÏ‚ó”ñl&Ëõæ_êe˜ÄIÐß)”7—Í2–Á·%ŒÌ¼z*÷;õ + a~|Ÿ;²€$q¾ˆ4ÜÛð@ acÎìçª#0sÆ¡Þ˜Ó›‘ÛC½î«¦&0áœ'LX¸C]}SmWîB­\§K@;ˆ“mÊöö°Wuï •¤,çÆ×I2iÏø-|wùÁÛ.à„ÔUŠ§§JÁ»V + ŸZ)Ì(%Xn¼)×÷e» ï«Ý.|lÚw:‹¤+ý" tVî)é^o<Åâ˜ÅÉpWÍä]%'—%G—%ÍeåA{¨i`nMûrÝšêé¡U]§6ôÚÔf/-…ÍÕíºXOówFXðÌ„E¹«FWmŒ#¯`{ÙÓ¸ê^á€\GOÔjÍG}Šþ¨žÌÔ¾ÑSΊÂèúoZÕú‡Ã„³&c³ò{ÜÒ˜BˆØ(ŒºÕ’‘*¼H™äð̘ wü ´ÒöfÁaÑ…Æ•jéC³ÅgtÏû¥±¼ š]µ¦éõR›ª-×½ÝQ—{ÕÑ°l-kÕº¹­«¿µñáýñ®Ú)ZóÐ6+‘kâ5ÜTUßÂi)Þ&^<„RpÇ©gš¾©êYS€|¤~ùôšŒÅ¹kXp2kØ©à'Låiì¹û!2mh]^½rQ‘»û§O—þm: 2ðáý»)áãó„ÿxù_ËKy†›‹øå£/XœÍj–±Ì~ý|yíïLˆÙÝò¸ûËç¾]$zëYè¹_ÞüþÅ—"É1¿œrõi™ ˆ€zëÛB@è¤gÙâêÓ÷|DGæÀ†.L,Ynå¹Öâ¼™ºða óX$èN1;K)È/¦¼bàTúËÃœÅvÙ…'‡ƒ1tò˜@lš ‘<³ÄÞrÓND¯8šŽø\»°Ì™®õpï.a…õÄMµŠÓ ’4ÜBÛ¶ÙO˜'gIr´dçIÙ1i[”†‘Jm"DĬO2©"áA×·@\F€ª›^ó¾•f±ªM¤rQ0^¸D_!­ + éPdyzT½6ŸÖ”+q6–| ·5Ú@ª z¢,` à<Ó’‡]¹&idd²H¦‰7{ᤪöé{ÓnàE,‚¿M¯:lš_5ÖˆÒ-€~oëÃXò¾è·ëµÔtLìØ^T·.ªf5ÙÃzRÛ^Ù †\Õ{ç%®.UíÚBò`Ûìvº}ì4”¢¡ÈÁä‡~´åh÷rgîç4qâ”Iœ8,[³\õ.9À1›úÑç,§üNÒ_¬VP_¼^†)ê;”§nzzwzÇþií¶V…-ðaUW}¸ÅÔíÉ»ÔWÎÿ±[.ÞÛÒ^ÓàW¼pŸF±ÌØȨ óÉ(wúúd$g:¼D9×$ƒKam§•·eUÓyn}©iF½X7‡Xà éZfÚæ£ê9?Ö'«àÏC‡E(f‰…xTeÞQy=)‰WðI, 0¦[½5\rµ§LyfËM×H°{:éÉT…NŽC€#øKÆócý™¤1çð<)Îá]ç©©HqðrÓ=Ln™~ÒçNd($±CJMr®Sª>Ãh[,rVd¦=ÂîŠÑÜi]/¯õÄã"á`ÿ ‘c¸‡ò:a¹&v‹+Ýïò²Z!5ñ[ Sni8[Dè ,MXØ£”¸@Bµ¢2y,1äø$u%N2 ¢‡ƒÀ__Àé }>bÒû„´ðÜöTÚ¡õã'Éy$?ö‹€`±_ð$bbxŸßîgÝ"ŸÆ‘ ù ¦y÷åÇÔ* ‚Œ“£µ3OÚ¤`EìJ›&¨Øœ¸fËŒ¸Ã + +®}YÞT –'¯ç<ƒöðĺY—>–×=³Å‘÷ŸiУ¼ôey3å#y½ÒŒ¥€aÓö²=].Ñm´×Z'ÇNw¶µ†«¶TwÌL¸Vg&Äá~aš¢ø†ä˜õì3‹S\_ëó¡<:­ ÆEØBðï9b\åd§UN66¦‚‘C-f–SဪBSU»Òc)4Þª6 ̺Ú>ya¡ŒñkjúMa8ëµ—K"×"X;øÍ‚d©5溡f½mv„üÐ*L^OnHÛNÀ›ß«¾¤«= 55¨j´4Þâ–4qZÇ#þj5{ÒM©!ï»]ÙÝè9»Ó—]Œó ”'˜b§ó eÐ$N'Væš!ÍÄoØ-"f‘ÓmN€ + ýs J¼ b½`à¢IÞȼa[jz 퇠ö£´áž@ÙÞûV&Ã]øÁ³]Òw,94ËPIi6&fZW’†ý¦A÷cá‚ÒÄTF“¨’ÆäÅYŒûŠ"°$óàn®åÌ°ié³ñýØæáŽÚ€0Ku;º$Öï"Ìͦ2– wGôSè˜syl·_ ÇáWKŽp’cfÈ1â£à„£ÂB%±Ä·Ó@@;îi€?tâÓ‹?ÐŒƒ5¹K‹ wd›±JêQÒÔòîk/> + endobj + 87 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 89 0 R + >> + endobj + 92 0 obj + << + /Filter[/FlateDecode] + /Length 2478 + >> + stream + xÚ•YI¯ÛȾçWΦ«‡ÝÜ'˜‹;3Á\&xAQ€á[OŒ%Rf“~Ïÿ>µ5S–]z¯.ÖòUUkª0Ü•]y`æ³,x>µŽÁçm’åyóµãv$ØÂ'¾<½ŸøÑzbÈ$…*Š;£"YÞm#7ô-nÜÀ5F™b³ëX¾ª³"Ϫ~ª{·ß®ä¸Aê\¥…Hòe%J­UœÈÕ¿ü²b,N•Žæ¢Œ#-¢L½(ã(üZ”¸KDƒIÌD‰+(Jl…  Nö¥¬ì¡¾ ,qÄße†*J¿ÍñN6´’…HAZmÇmü?o ©1b°/äyC†ÿ:ÙxÔa-š“íÈšã°ï¥Þ¾ôÜkØê äᥔ½EwK lˆ îVvo’¬—l…dLðφn®x + ø*iˆ87\Æe¡3²„;åšãÐ.šòbå†_›9£Éd\432 Qö³êË67ˆÎ$Æo†%ÞGw.݉Ï[w(¯ÌãMLuµpXñ\éiÃéÏ[Ïz”P¶/W/[)VÆÛÅE+îŸë3YnÎZãnÙ ‘}ÁA´À39F±ö• ÔÄKâ¹—ÍÐdÒ¶ÎCÅö+¬|Þ…Š2qŽWk`T™wæמNJ;kZ|]1î¾AÊCðkQ–†Á‡mNFŽű + õÜÁÇ/׳E^… Òc{>·ä &<¢ÕòÀˆhMŽ–ñ%gyÓk(+r•ÇÂÔ»ÝËZ:¡Êµ‡Ùýw¤ƒw׳]Ïý’™ð^‹Sk™eÙ„ãß¿@£ÞG[29C´üi è&+Tj@¦‰* «x¿‡ÝÃïDÝÄ$8M ÑaAgóTEd&U†Õ¡U¤ œI Dê¦"àP–€ƒrˆÄ Þ¸¾½[}Ž1üƒ2U˜Åز:sœÏ!^¢²/’;ó eˆKÇòPŸë^¼\}©Ïe''nݵB!·'!XðL—+Ð`À¡[lÙulÂídŽˆÌ‹xþŽ›kg¯Ävë ˜~>ÕdøÄyBIF ù‚ã1[æÞ+ö+ ç@Ðá(ØÕ%A<Î8Û÷ÓFúF<î±”ØáAwl;]¢Èߎ6ƒPŒeðÑùçpFŸ‰ϺÞ!˜ÅqðPdy¹ì$0ÛABãµìçr ; þ™¾Î1u 8jmœÂÍ(¨k€hê!˜X;¨Q‰÷[çÁ :o™[Äš¥Bb3׬’hcŽ(„ 8¸@Î!Ó%Ñ(üjäÄIÖ¬ÏWqõ"ÁQ,ŠSÚEæG˜FÍ•a»KMÆëÌ«”‘[g$Ã7 âúsŸ<€i]¯gŒÙdȸ2¸ñœw1PdZä$Cš÷ G. GæÉå¤øu^ûmS9±VÚ“ƒå´}f=~/ÿ ¯5rj΄âhVý4€ Uó‹ Ž¹öLI NÖýښ¹%]ÚÊÞ4¥üž)ieü:øyE!ÒJ{cBïAV†_Œmƒf©$»cžàÙ¯/<Ir-gltI+-êˆzÏ'ˉF@e3‰Jã¹QIb"ÌÕçƒ=zV,$køŽ ’á´àã—?×7Á?Å+NAð¢Až±K‰Ÿ¨hÌ Ö`…e ÌS þüß1aĉçº?qoô²<Â?“À¬E…A]ÙÂ>Ú/È W&”(Mñ8 + 5¬Yѻí;”ôes°2Of Ó|A¸ÚÍmáb¥Ó¹bvSç«vQ¼²*»j]“åSƒÁåFš“,¯8ôç—™4TÆoûH)0J m4ÇoÎ_°—õ‘Û)ºÓ¬ã˜ì¤œÇSCïm\!ZØêÚFµ™ò¡oÚèÈ"YYFV¶Š=:4è™3Ì@øýÿ1Ã` G71#O–˜Q$“™›"žUB°"®^HŽ3œÂ[™” ±sWL‡˱¯Ž9‘SÊÓ¥lŸÜ.­|ºp"MFr1¶H{¢ù0æ©-ظãM ÊëÐËQïÅE:ö¼¿vëè2«ü ½”k(û0!-œÆù¶C¥:ð»{¿Üù^wu% Ñó7ê °¿1“øùnñÂ$Èž‘& 1© úåS‰Ž/þ%ˆ3©KÉ %¥vŽ,ØÃ’—{G盦ôGœ"Î×Ymçáð‰U5*÷¦¹ÏwÀTe‚OCí¬Ã¨ƒƒµu˜©Ô»Þî{Õ_gõÚ,[ÕGá„~n¸ñ¦§š“ 7ÍÀ»zN1x8‰}EBVôâùÜÜaõ¬EÙ.7 ²]OêO %öÁâN$ÔLÍs½Ûh5SëY‹§E­â1Ü£–¨(^§Î&Ùö!n XAÀ*Ö3°‚m3êŒWù¯`7„CA¨,UÙ2Fˆ"ÿ‚÷¥/¤L + †ÞµO]‰@šiŸéb—:ó¸£!ÿ|ìÊŽBSˆºi÷Z4i|[0X/ÔL³2—dz}Ã’Ÿš$0Dèxp(îHUN•<¾b”< Tââôø¾©8[gç!bíp®øÐX¬à@”“ÄÓ«pòUÉ!Ÿ†3`OŠ°§¡¸U8b´L}.Y"S†NÉÍJÛ8)ŠSüì0û —±iJR^iäŸ}2yö‰Ò1ù€oEÕ ì,ybú& òM¼£?•=o’7ÓU@ë—ÃÐuò&±|†²ÿsÝR¿<£…RhŠ—:˜}[ºÓúYÆ@:6“ÁÊdÓöµ@þÌ‹¿ó;!ÊŽ˜Ã3×óÃvb GÏ-'„Kšü ô‰ß€bÚÇý›#4¯Öòø*<.`ðe$Â\~^º«wª÷Zžf)3ŒJ ³¶™ ÏL*˜KÚÌ^ù•‚bZïßÊuÖ…±ŠÍýG‚|:âíGnçË÷ + {vöî7ËZÎü/k™djÆ7¢È,ŠçU|MrüKçþWèÛµ$ Æ?àØ{z_`×ËzÝCŧ²>;’Äæýßþøm9¸ + endstream + endobj + 93 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F8 50 0 R + /F11 59 0 R + /F1 10 0 R + >> + endobj + 91 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 93 0 R + >> + endobj + 96 0 obj + << + /Filter[/FlateDecode] + /Length 507 + >> + stream + xÚuS]!}÷Wð`"“:ÀÀ0>íª1>èø¤&Ò)í’e˜Í ]·ÿ^¾º[S}.çž{¸÷j\×àÒrÞôë ¤Æý Ã]ú·ß!©+D%—-¼ùü­BŒ1øE«5NçÓ'³Õ|ª~ö×öÌ‚9¨é°LD/ìq§3ð¢o1ï@@ý­Y*Ô´-Ü™YÞ> + endobj + 95 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 97 0 R + >> + endobj + 100 0 obj + << + /Filter[/FlateDecode] + /Length 709 + >> + stream + xÚ½T[oÚ0~߯°ÚI RrãVi@¡jµvÓš=L°“b5±‘í”òï—ØN`m¥=ù‹s.ßù|ÎŽí8`Ôqasì×±{.çÀí×·{¯'Ö0AK‰yú¾g¹W -kȲ Ѹ¼ô­¯„bF1‘„.ÐóÝ®k¹nãwx×û›Ð^×îôl{Uøóly&D”¨eÍIŠ5Š•œ¥æ^&æz†ôLXÎõ'›ë3U,JDè2—⊊ÌxÉ8å¹­íüKÎeu.dä錄yø©ÁŒâMÒ”Ì8âk»]§åX£"TæÓ¥ylBÃï— H Tj«ü×{;j%ã¡D¿XnäDTŽ!/¸ïÔ¥TãÑî#¬ˆL4— + pû`º²DõP Bi-ÿ&ÒÅù…)Š×Oe˜Jñ¦ÊÆ„ y¹G@D׈µ8[‘ênjиà#v$}Fœ YQñ¡LH² Š¡Ñ‡³L£&–QóÖh÷Êÿó¯`¯­×¶½Þ‘B±Üe¹ØWLÙܺå3™»ŒÅØ~HèpA5°´ÛvÞxø¦Š¹v( ¿ìÚ˜¨÷X"8Ô# “«r‚ž5CÑÓ + ñ>‘4…+Æä!~15¡¹Ú.õâ<§‘$Ìô+EYÕ£Õ¸,(ã8V$F!ì^¬@Ð)–KA©ÛµÈêïâ(þ§à±Øs h«ä»îfÒ½Ï9[éŒOx]j}³¬†H ¸'Êëf>›Nïá·ë³rº½-}¢íÛNÚ~XÛÏ|ܼ_›/9.W¥€Åz•Œ¯º jZ¼Ì>ó‰Õx¼}£TŠ×äd¥´ù©BiëÓtÚ¦s\¦ÖGdêV“-?ÜcÓéÐô™ßî§õ™òÖ>§ôšré×.ÇuÜrÔnÿEÌwôà†ìäRNþ!å(üôéÔ© + endstream + endobj + 101 0 obj + << + /F2 13 0 R + /F3 16 0 R + >> + endobj + 99 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 101 0 R + >> + endobj + 104 0 obj + << + /Filter[/FlateDecode] + /Length 918 + >> + stream + xÚ…VËŽÛ6Ý÷+e€Ú@¨X~dìYx¦IŠ")šÀ]E]PÒÕˆ™Ô”=FŇ$Ëæ0,Räå=çÜÌ¢Ù,xôãcp·{óaijh»"ˆ×A¼ˆ6Ë`÷û·I<Ÿ¢ùzµ¾|üëŸ)Z,“¯€óŠP0³O$嘟¦ÿîþ|óaÑŸ2_G·›-7ÑZô*L’Ï(IîÑ·mø›²}{»œÔ„5•DHfN fRþãåØì®3£ð,Ç&ó·ÑB[Ü£'µo5_Nž&!G„ + àr°o¾Ño€æ¤¸|ÿÊXoiû\MX•#!O˜iJ”}ˆ¦(ž­f“‚aJ\×@íD2»ÛZÉÒr(pSÉhÈt¥Ýî¶wwÆöu.¨YdŸqÆ™sTbiF˜[£ ¨](7QBU™!¡8Î$aôRó¥Švt‡Ey Ô¢€œÈ¹Ë+ûÃ6zÏuhÙ…ow¼»ùÞ>~$ ´«ú«IÑŠðJc•0uGÔ‰,Oµ}ƒÍÃÞŒŒÛB^.6EL¼UíiÔZf.~¬I]*h7Â{hg¾g‡âÿá¢V¨@Œdìh>E“$ì4Ucý»G©_¼!K«TŠ³GQµaÖÓd¢I•ÞWWAd¸~0±¨<5@3#÷:o“©ŸâÐ3R/•/Z˜sÙ²†ó.é]λ3H÷§kHµšm:†¡—ï6ÏÏÅ4­á<Ô + NÁkÛ?_[L%Éì²k% MYCóKö)wH9ä‘%ŽtSö}ß•ës‚»$fôŠzíIÑU¡L/> ´Ò…{oÚÿ“ÛÝÂéÝÿ§÷6â¼ DqÚw±Âq€sñ“Js¼ð,@í1ÃÆî|ø0åŒþjå’“ÚÊVâ¶5þ[—Ò¥^銚«û³M?4BëF¢=HÜÅȇ + W;:ò UXUoü24w'™vàú$W½[u"_ú¨{†®—ÞΪ + ­ ÏÐ}ðµg ©þ¬È‰¨+|ºÎîHä¸È€<”îeê²ßúVœpÈduòR¶Š¸kÖ] + Ö_ ÒNŠ¤‹Êí(³F¾ܳ{Þ¥w F—üžu·`-^Íl,˜Ô‹ýœPW½è?¼—Vß(_;Â#]Uuòót+GLå(Û8è®jYOkÿ‚P=l¤‰Ÿ‘°=ÓÖòýî—ŸŠ…êÄ + endstream + endobj + 105 0 obj + << + /F2 13 0 R + /F3 16 0 R + >> + endobj + 103 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 105 0 R + >> + endobj + 108 0 obj + << + /Filter[/FlateDecode] + /Length 1424 + >> + stream + xÚWßoã6 ~ß_at÷ µÎ²üó^†]wÝî°C`Ë0¨‰’uìÌVšë?R”;iï‚>Y¢DêÓGŠ¤ƒˆGQ° + ìç×àãôýmˆˆ—"˜.QBò2 ¦¿üÍnÖjkt7 ¥Œ™ø0 “$e7íf£š + %û½j4>-*S5«IKQ&ääŸé—÷·òh:.x^aRòÂZÿq¦qÂnÛ)»þ‰:A„A„wÕÒm3ÛájjW¯f³›ðëêêí¹ZiC¶f³»ð§«×ÌAa»{U!ñ + w!÷ûŸUóÖª7¡êVçÖßéfxíÅE .¼x7/‚PF\Øm‚'`.‹ÙǪY¨‡ÌSv¯Õ¢&>óÍ=Yz(A÷„qÉ#iÍM×U:IÂz=7UÛÐd¡ûyW=€Cr¦Ý†Á0›û#ì̬•¡ÑFM@ç'’9´‚“‚µ;ë~Ôiéûˆ + Úiôú¿næºç0y†7 -W¡ƒ~d÷HÚX2aûʬ[ô ÊUã¾s@»…Yœ±gg“ÇsaâÏ%+ªs¹kp]Ã!—x-4DŠ ½T»Úp ÒcLyAaú¹ÁKçÀÆAÁ–m]·hsOñ^dŽë-’ß_;ÿ‹ËdÉóbím‰ÃÊÂ2gî…X‰ýÖN/u×»ãÛŒœÍw]§/èñ-áØÒWé&eÆësheÂóÜ·QÝãK€d6d™DÄ0üb´*üñ h„‡D½B0ÇÝž±Ì–wXÁì•\F\̪9þ$Çû$ + +aŸG©»öé¶ê‡õ—:@ªô™í_(– ÖÊCÎãï×JÕTÛ]­èÏ—m‹K¿U½i»çoÔPêÞ¡±Õ[3ªž轟&t\â^›]×\RU¶A«HС:ƒ0‚n2B­ûžæÖãÐ2î׺s[Z¾…Ãq…ý|ÅìóÒïªúSã^Ò´M¨7[C ¼btNY°Êœ‡Üàw£ðýLÒˆ©ÅÂfGH6Û€ˆ Á`íøµ«5LH¼´pq°¾4-wz®êšäøwqþkšÅ.]ÙÛØÎòÒ,NsªÉàz.æ¯Gã… §='.Ÿöœø|TAlT}h² u&Á§éÿ˜,6 + endstream + endobj + 109 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F1 10 0 R + /F11 59 0 R + >> + endobj + 107 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 109 0 R + >> + endobj + 112 0 obj + << + /Filter[/FlateDecode] + /Length 1391 + >> + stream + xÚíXKÛ6¾÷Wè¶2°R$RO (ФMТÛC㢇nÑ¥mÚÖ– =6ñ¿Ï ‡”(Ëëz›E€žÄÇp8ó}3CRNà³qÔçózþê-sÂÀÏCg¾vÂÌ ¹ŸGÎü‡?Ý0šy,‹³Ô}÷ëï3sîþ&ÅjW”’z¿‹ZÔÇÙ_óŸ_½åƒ”‡Žå~¦jùTT]ãm‹¦­`Z}ï¾ñ÷3ZmÙ§~œ;Ø’wÕŒ¥îÓŒe®Ú˜¹ ±Ä±ÇRÕnëªÛlMG›gí¹;èÜÒøZ¶jõ¶(7'KŒ¥Ô[Vû½(WþÔAm# }Δ¥üØNÝ+/»?çÞºª?à ¨W_ÚC4ôÅÞ-ä¦(KPæUëS/ï¼oÿ—mEv÷¦Ý³8­m‰²È-Êg¼Î˜{ñ²\5û»/d6è§Fµ>™)ÊC×Nl¾%=…/ýÛ“Cj-»º–%îÝî´Í ÌFWö”êiYË«8„È–u#½FŠz¹Æj}M*¾ÇÅ*²`a¸&M´ÒhÓŠº%;#æ + „ + µ—Ð0¾%nKòÚm”UX‚Ìžp×JB÷¡;Ü5&@¾× îxh¾Øì ŠÆ„ÿR60ÑãEwç°X‡š–¥!pY˽Zìh°é1¸vLeæYØ›k¢p;c®UhÀBœqBœ™¸b£h"y8Ê*ÄAx„8ˆ<¬ÔÀ‡ò†úî¶flX°S”ŒœüçT’«Ò3j@…w9î®;‹¾ÎÈ#¢!-T·kh”Ðlú0ßØ®C‚V=ßÖZWì6Ýá°+äŠz \¥í8 2³kd}Õ){Béåäºû§ó7úº’+'Ë™b¿«,ç†U%¡F¬&Ä*Ëë(¨XíòžUXÅÞõIËg±ª=2,jR ‹/­QÌÇFq4àÅ1á‹£=”8ª'YI#ÆulãÙŽ“´‹¨ÅÞ†ÆôÁÜ*FÕM0îUMª£ + 'ð.#­ø%Æ¡1Ž¥,2±SKY2Ô¾UAòPRã<7%¦ÍWÐç|^Ä]U•Š×Ç)—+¹ÝÎÜ/Ûm1¾"뢭‹y§6@XR·ê®»bžÔÕÇωž­Í0:¤ZfÊ'4†Ò‘…º² ÓáPÛ`Hc“PP[ŽC!¥P mÿ…+Cá(ÊG¯l·ž¨7C-㯠‚ŸJ¨:-¡3^°ÃË; µÛ÷È*¹êD~xb¯wL©‚²Ö‰^Ê™¡ ×6rYÅ|U¯h¦*ÏœËTâ3ûÁ =¤œTm:grEmJÔ&ŠÚNû?ŠvKÓê„â¶W + ¥0`b,ò³lP§èÅÄ=yKê + #n¡Cw¬1Žý$»¤0Ö“dhf‚½u]í©eÏ?±³Ãb!·YÈ‘>Oz½JŒ^‹8¬çãçµ$&[7´xS¨ª‚M ‚Îà~†¸Ã£íû)•¥Üˆ¶xRÉŽú‚I€MNáy8Èã?“+R&‚;ȧQ¯’Â1T¥e4c‡wxá? ?I&©¹M;ÎMŸ’]•Mºóþ~Iªªâ&Ý£Çuzr“žØ°’zCÝÉúÀ«Øä™~¦ŸUwé!›÷v}¤hˆ“…<ÖÏ–ddü-Mé ÛŠñÐ÷NŽV¾+ÑH9!%|È¥QeœÄHæ§ZNÙºï»%\ éY»„~Ûø7}Ôò4s—PÔÑ4GÀOÍHŸç¶}œš‘f~lìÀkoæÚ»˜3™zÃYœæšh ¨CÇüÕ‚K&eÃi>Žg~žØžiêñ=9Ž&Îú¿4RôwÎÎýnêêRå„óãü›OY6¬B + endstream + endobj + 113 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F11 59 0 R + >> + endobj + 111 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 113 0 R + >> + endobj + 116 0 obj + << + /Filter[/FlateDecode] + /Length 1725 + >> + stream + xÚÍXM“Û6 ½÷W¨7yf¥ˆ¤>{Ûl’N:i­;=t{ÐÚ´­‰,:’¼Îö× H‰’œÄ¹õ²¤H@x½(Œ"oïéágïõúÕ;î±(,˜·Þy,÷˜‹Ø[¿ùÛ8”§^¶«@VA'þƒ:Ëf‹‹ÂÿP5’fo·U_5ûUÀ˙ϒÕ?ë_^½ch.*Ðt'2/ˆ‹0×ÖY‡b$)·6;0•%þ»UÁ}…Çf1úÐìµaÜZ¯ + áËÏ=£ßd›aƵñ­¬e/ƒÍ¡4î?úÁöqEŠÎ…“,Lr//Y¢5ßhM¸+Oýþ`&›ü[åFãóÄ/{3ÿWÎ}U5+øèÃUqá¿ß‘Þt“ÖªŽFk`8äI K¸m£/Œ›j7ñ$ók@ü¦I„k­Ä y]€¢V¶(¥~£hÜàáÖy<·jCLÐØ¿§5M¹óQ¶Õ†L—í>-qå(˦3¦«º;Ü¢ˆÌ©„™U5]/KS¯BÄ:J[ŠÌñ +  ‰Ïj5œ_Ãõ{Ya3'šúN{ÀDJg<®–˜ + 1ZvÝÜ– ye6)™£QHj’ÃDg°Q_ài²N@6cFŠ8÷/‡Š<ÅOH¸²“´AÑŽ³ùEPjJ‰°qçè,nª[äKžú¯_hw+wå¹îµ;~^ø«-@tJãÄMiiEñ/éó#º*_V¹ð¿mûÓYSÐI¶½öCð‰ *C€‡àùë Gï·[z1ˆ ª>z6Ç/[Ö0ÓWÉÒÑBMÌžõµÚ§²¯€×p毛Œê;Ž…Rs€16ÜæœÊüt–ÍF°ëŠ$éÖ¹SÏŠ01å + qZ”³,dÙ´Dî,Œòsy<ÕòJPX‡¤² ®tóääP«•Ï•:wœ)ºpGp> î[“‰CxTÓdu,Úß&ß}«.ÍØë[`ÿ Xä¹0Ù†“ òü&ä90~<Ê»È y”.ih¦µ 4fÈs@¾¶N tXàÿeÔ³u1G}h¾ãê|$ú¨oÊSÕ—uõï÷Í-¸? Úˆ·€‹9à|\\œOÀ.€‹%àܹËÿ iû©gÙ^Ú + ~ÏÕV~ÏïÙ5þ€Rû}Z)›4;Ú"-•Îõ-¾¹‰°8âN‰…0åÐöŸêjSõôe«m5b‹ÂÓÿ ö¬®¤¹ß]ªžú*yåíîu“]ó—]?ch‹l¼sí'Ž£Ÿ(ߨ&¸â«Þr}Õ)j}M 1ëkª}ÕBô'øñÃÉy% + endstream + endobj + 117 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F3 16 0 R + /F7 47 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + >> + endobj + 115 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 117 0 R + >> + endobj + 120 0 obj + << + /Filter[/FlateDecode] + /Length 1660 + >> + stream + xÚ­XKÛ6¾÷WèH‘"R”(¡§æ‰¶i©‹¢èö@ÛôZXYZHrœí¯ïCêí];Èi¹$çõ}Ù‘½0CïÞ3>zoÖ¯?0†AF½õÞ£©G£ ãÞúÝ?„&+Ÿ¥q*ÈÇßÿ\ùQ‘ÏJTøߧ|SËúiõïú/Aœz>Ï‚Ôçe£êVߋɱҊÈN+ŸÇ”¬y£O²­ŽGYîðš¼cq¢¶­=«Ê¨~ý!8˜%g^hl¨£Ü6xeCÄ–ÙƲË?Î4Á5Ûk_ò™”µhÿÑÏþ«œŸ+°ðe¥wês·Êàf“€ Ï<)â¹ËM€µ*µD Ñ¥œhH8'ïåVo´JF¶²(ôŠ“¶šC®%Ö³ÚòqGîV³XØ{M+kÄ•3¨ºg(2dœ§à| À3 + ~ÖB,\ÖhÖË¿Ò×"‚ÁÈZn[U7(º1TT'C7£‹¡e4‘óY{ß:9 ²@t<r«ÐH{p õµÅ•lÑÞ#Ú‡ðYBZKRœ 9ŠQ™ µNS¸s%®OÍ!/ïݶ² c‚ÇB‡2>ªóûƒ!èM)#oXh ±0‚ÕB~²@¸7rûp–õÎG·íÙ0·T¡ZåoÁÎX ›¬#XÑ„.ÌôPí«ZaºLà3—Îy{@ /5 ÜæšäЛ'¼»S{y*ÚWÎ ,Ñ°@vÚÍ“y,}îÕu*Ìtx¾.=™æ2ˆlá + xÀW~œ0òk^†¹HÄä'£¯2Fdù O¦¸Ca¤ , Db”=€ßÕNuSÕ]Eþ†à@ƒ«û·Ekø:ªBX»ž&B ÄÕe}X•x†Å 6œ¯ø̳Ìø + ¯•Ó””^>ÊÖ” + ½>CÅ´¢ÓlÖ{yE0á¼}¿{ÿºL„CjúZðÂ󿲪OŒßüÝ i͘KXÍž'6.sf{ ³Ï†öþdJ;Èžõ\3}’“T [A›K­¾e²R©r,ØXÉE'f€NêEDÊ®5Á Ð ùk•2b1cƒþ$ë\Y.¤k¶FíJ63bÌ‚™kæÐGLù1´Ì[7k-éI*º\ÍÆT£|æ¥A–˜™‚EAšBYG’¤÷k³qö(禓 Àð{ôhãcÚmÞfF¦¡'‚L…N„ÌFç»÷Ÿ.hÕùP+n8­/j% ³ã=ŸL¾º@2ÚO³@¤ )MíhQÑ%nÛ„ƒéÆnŒ^'G”“ÃʈQr€ZLXt†lr€ÀRrÀŸFÓéf1;4s~9;8´ê4™5­Ê¯MKëûÃù†þÀ](|„ŸbÇcÌôCrj°hñÊ°4’^¦³%/Û@ŒŸ4úš‰4†O'«Hg¾ZxñýŒáJh#íÌ.ˆ²Ï»*'c„yG58ü|}M{|÷y¡J`x‚ñ g©µf> + endobj + 119 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 121 0 R + >> + endobj + 124 0 obj + << + /Filter[/FlateDecode] + /Length 2354 + >> + stream + xÚYKs㸾çWèH¥L,¾“CÊ3»“ÚÔL;¾¤Ö{ )HfL‘*>Æ£¿ýHˆ¤w|ñèFw£_C»@Áî´£Ÿï><üôIíd r¹{8îd¶“¡È£ÝÃÏ¿{Ÿ‹Ë »½†Ê“ÿØûQ{Ûó¹h8zŸ«Fó×/‡j¨šÓÞW¡Ì¤'ÓýÿùéS8³öáD¹ó£\dÄýZ4/Lûè}ô¯{¦p„‰Sç;’,ÐÿöYè2å Ïtvä í…µGþV^ªºæ©Ž„ïªÙ«hn˜„ÞÓø¨â„µ¼bàY`¬2¯EšÔÄZ)+c*”œÔò/V¢GïËT‹‰ì·v(%ÍLðâû(ùŒsé±ÝaáŠâ°!ÒÌìϯѯ†C{{?ΚLyíÈË¢áõ¶©¯Lrhí™UÏ_ÕÑ•¶\ºªíPƒ]à^Fé:/M“"‰dºë¥ T"âÈlànèá¤0qèɨKQ ÞÄ{ÌåH$ rº/û*¢MRD"Ë$ÊûŠW¤<]VÇ+;G{ÿϺ«JÜw'6ûPzÃZ?vg•‰0$Ö‡êT ~Á4{×£ÇdÙL–å"–Fä/~°V;Òªt·¢Îg›|ñåˆéf„+.a d:±ñÿ’͆óúR…®'ÜÀ T'RyÌÆàOŒ4úEÂ]ÆD…8!]wº8\y_Q–ãý{¬‹Áø~ ÐCh¹Šn0Œx†¼ž(-ã9T¥7Ü&­] Dfo†NéÙ‚ÿ4úò|C±5ßîÆynjH3¹™alªoºë‹úÆI0G¼'÷=°m1@ñâ²hZ°iǃWÊ{HVWÞEf‡…žS¹¹¥ãî=@¶ˆTìýzä-æ"ákŠrØÉc[×-øŠêó{Âsz uÁɱ rˆ¸È;·ZP7éñ†´½ UÛ5¥&X|­†gþ*ø§'áH…Á™sòØ3Ͼ:5†ÏðÜö7üÍ·†Ÿ6f…³òîüµ¤î½úQ˜‘aB2™;ÙO±]pÒµKJvb8Ùw8 + Cêù®Ë‘ªæÒwT*ÄXð–߬"Ò8*§¢ÂlÁ50²9>Øv6×Á×—Q¼XAEx­2Ôän¯Uox€Åá"h!¨M÷½aÄ‹³Û5Ï”E¯ïÖe„ÊMb]¿fÓ&Æ´‰ôªóY*(‘äÉ–âìdë8'I:øsÑ%c™Í@õÝaßèŠc ' !ç°m/’ âɥŰÅ5*Ï”í8cPÂ0›HýÖRÇ 0Mrâ¡œ‡êRWÚ¬M:ñk™}ä ‰¢ 3%vˆáƪ<DZÉãùSDæõ-o˜—6ðõáÂqlJ d‘b¸ƒ¯ë3[õÚÎÅ Å yRj5] œqÍCÔšœV²û”ºlÉvðM‡Ñ×öÙòžÖôÕ÷,1hݘ*;¡¾5P´Œ—?\yâ \ܬì팜¸¼´/=aÈÆ#ƒT§2ôBèºÏ¢-ÄcÊÆ-àIð|ÖÃ0ß —ÖŒÞaô°(ðÌÔ§}ÎE7LC@‘9¡È·1²˜ðRëAߢŸ|—‰<¡ª øE„9m&›þò3Ñîu—&"Hw˜{Pó.± Ûq½ûJÝŠ v©ÈSd7ä(9ú>˼ûÛ|‘&_[¾³”°"×L$¬VµR<q†Qd $))nò=ùÓ Ï„/è~-ÿšLÙA28ãLfÍHA„cûË + ?(Kà{‹>RIʼneÇÁsüã*$Áò┕k_˜-ɤ#ZO-.|Ê ý9Íc|—äóç8ý-=î¬uSœÍ¦YŽ÷ôW—¶ï«§Zû3Y?÷Zÿz”ú\õÃM£8õyÌz)VÏò/ºËÐܳæp‚í×V]ýX¯ªéu7lkõ÷÷t¿$PÃmo¼T"6JXü&“1)‘ÍJÄ W²‰«0Û ã´c}àásãoTŒg£À@7¼á¤ÝA?¬¿©`«6$FÝ‚·¯}i)£¹¹Ú0ºÌÀܱkuÈú£ïf­Ãq¶ö×ê\Õ‚oÄ.íê¬:5ÛÜNü·ºW9·k + Ò..ˆ¤Ó—º(±Táˆ#>ØêÝa:˜fÿñÀw0£ñ«àŸŠ@möž‹¡DŽœ‰ýœ,îÜ̱kÏœBL!Nу_èKø»œrn rB’PpLª  MBT`v+œç"³ ïí]­ó-ïuî¨ôAI„öëÚñôl(e¤¬*ðEªÀÒR•Hºª Jrª }`ƒ.bâ(p,J‹ˆÁé̱k6€Ùý„Ä lŒ‚ñ:~pÆÁ‰iÅì,-¤SrÞlâSŸ…^7’àÀãÑëGØÇÞÿuiøíâÈÞ †5>n=ÙXw~‚sý~¸Öz+–T<¿.ø!¶î„vr „a¦í~7Ô<àãg©Ü a˜ét?˜ö# ¡ýh £[¬˜G“œR:~GóCJ³Î#PØíûȹóZ¿æ†„hÞ`#*r#ÊT†¾²I9“ؼ¢ÄÆ5>¹Qç–Iû'ÍÅã%ð̉\Ýÿ“¯®à…Å;6ü·ð6C'µ=CX?a걧rg·ë;wA MAR¼PFòãìn“CB›ŒJÀu¥Ad^3prjs"ÓH#‰)9ÚrlyÇ$ì<`¨Œc›‡g(‡Ò+‘Æ›p3Q†•rˆ°0¡ÚŒ·à¦!Ȥˆc 7Ó5Ü´ÛÀl¹Ã—Çp3©b¶ÆÌÕÊ‘,ތܧ=nЧ"ò¸g¹m ¹?œÙFm„ÓCÉ¥‘Ÿ35¦Y¿„ÎÙo;¿ž0ÓûêãÏDÞÛwAóô·èÅñíÄÔÝâ…°»Þ¾÷áûÎQD¯~Ãb·q È ÿAÙƒ×(•ÒÄñF,c[OT0Ï=âºAOeEã¬L‘(‘ϧô~”OïGžd>¿#‘€øAqí® €æ¡Èh8A,ÓÂJh×&®óÃLnÀ‚“É%–â¢'ˆ4u­ðWËUo‚ûÚ;ÿ ÌxÿM¯LØ+ÕWBýíOj7ä× + endstream + endobj + 125 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F1 10 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + /F11 59 0 R + >> + endobj + 123 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 125 0 R + >> + endobj + 128 0 obj + << + /Filter[/FlateDecode] + /Length 1795 + >> + stream + xÚXK“Û6 ¾÷Wèy&b$QÏ[“m’IÛít²Î©›ii™öª+K.%ïz/ýíèaËI} ‚ >¼Øñ…ï;[Ç~>:ï–o>„Nà‹!ÅEÑPèrcøËÌm6#&µ §à”\ÖûCgŠ™ + ¬1z¿Òàü0Î8ô#̦¢1ä«Æ¨ŽÕQ5*»*ë5DGK¿C,O‹8r•)Õª¢Pð‚$q4 Õ¶å¶Þ Ðn›æP¯GýÝLJHΪ1ݘ:Ûïç Ýý–£ÆØr°©aqV(|?Èh*G°KQA;¼\3ìb 've­ªW-ñ®(Þ«Š¶ïÝö°Â(tÿÖ_D5+¸\\ZÝuüHtü¹Q¢L„’]¹‚k¼¶{©ô%;„qïñÅÛ ¤N:-SëÆ;ì÷ÚªÕÞ¤:”·ÞØ·žzM1~ë­^õÖ#©ÙôÝÎDðµÇÙ¥±HCÞdBˆ Ns$C‘Y>a½ðûš‹î†2=ò´J]Ê´Ûqv#´½ÚeK«%>/ЛÖ&¨²Ÿ»æPŸ©2Ä + Qmù‚ Š\@Švøm_j>O #¡Ôœ …\4º¥ªØج#ãö\)­BÚ„kž£½Ñ›òè¡{÷Ò©ÜÉDžà¡4¢GP + =X5ß/-áÙÉ¥A[gBfή녡rîl;øN*òÔZ—O@a Úüþîæ²Ì$Á®o"“½ÌQCd2D‚`•3èÒÖÝÅ¥8ƒºˆBFÃß‚Q6PS< + B·ÖÇŽV§AF\'˜XxIš»Ët>žè¿›ÆÐbö–µ$ç¹ìšߣèC.ÂÝGìãôË"‹\1p—¤ÃÐBþuîÏÈGçûBæ—@lø`)™E"IÑú2I<.xt8’}XÍ|:òXçNÄá‚S!ˆIjø §B] Щ e3¯|"íóü÷Üsè%=Wþ¬oŒ©uz4㬰ÉðÈÞzóKƒTýþ… ¡Øæéä%ƒb0éÿ¤ûŸÀÅáš'îS]Ý¿®ª"PxÙVï¾éÕ ÝƒÌ;d^q1é¯M¯V܉ÂIëŠ×Ùhx4:oœËðÙ0×øBÖH õÃwœiõV£ó ‡Û©µ¦-ë®Üe“ )¤ ¶å@7¹¡Ç_Ô?S¦$r쨦eðŽù££Î„‰Èzo÷ÅßVrføìN + Š®›ÃöÛœr§9;öþVwä“•²ˆÏ"²渫€¡±ݯ©ò]Y­q\Ø«¾ËBwü{͘ñ»µ—hر:(‹#ö„l}Òª_˜:Ÿ¶ûZ_£3ô>0™Ç13~¼j¨´FŒsÖ"ñ]‚¤†(´îqyzĨ %u°©ˆÙîvÚ”ÓÍö°šE¤Øè‚o OrUÒ0•$3 `5p‚–³n¯î`ÅúµWO—úXØ<ñöªóÀÝg6†“ãUÆ´S †Œø ”Qxf6ÚÄ'‹v6¼l¥>d¢¥ÉÓFÏ¡µ•f”Kp‰d ßÖº5âl˜Þ2ÌéÎŒ³çû&’Ém«šÌÜ[WüÿɠιõO_¼4.µ±Ý³Ã Jðÿ·R} áµ0£¯¾^5Ò ¾Y3‚$Ô5L¥kh + .©œ9pd¯5ãÿ–= %eh¸ &¹+© ·¼mGÔ4ä@Fʼ/= ý·„ºÖ[Õ•ý.hÕZåI±&²²ô0927t²O% òèÐS½ZÁíÈÿÜ@4? + endstream + endobj + 129 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F3 16 0 R + /F11 59 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + >> + endobj + 127 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 129 0 R + >> + endobj + 132 0 obj + << + /Filter[/FlateDecode] + /Length 2231 + >> + stream + xÚåY[ë¶~ï¯Ї#+F¤(‘ê[»=)R4@Ð,‡n€£•éµrlÉÕe7þ÷áºX^×òÔ>‰"GÃáÌ77*ˆY¯}ü-øËÓ7ߊ€Ç,çÁÓ.à:à Ëeðô×…ûâÔ›v%‰ùŸ6‘”iøØE½ÅÉ$üGU}ÞV}U¿n"‘pÍCžo~~úû7ß&ëväA$s¦-÷r_´E ü£Îm¹^Šòë{Ñ:ÖÏá÷Ñcôóó†ÍdLKó 99Éùg,ça¹Yè™ÒTÕáS„­)¶4²¢ãà¢ê°©êPa?'OÂcƒ“o 0[Zêú¬ß÷}kÞªfp_À*|Q–CÛšºt$ÍŽû}Ñã)‚˜¤Néü¸‡—¡r< ž½6¯E_½áy i¿l/(XÙïMG»¦uKÃKgþ=˜¿îi±±g¥ëØÚ8^©9ãŠWÕiû¨s›ºŸlòÇÛ¡³ýTõûfÀ¯ò8,ðÁC+ÿp4mUºùö^IÎ8,I»Hü¶IÓ°8 †HQ“8ë—¢ ‘3%@·V©$nôb^Á²—r*Í”#¤ Úªx9¸=Ðø¸GUGÖXQk&ÅüX¨D"UXôô$‘aðb!€ûÖÖpÎÊ-õDD&ð–”YxBãë,ünç8Óc©/ õ5~lEÒn8•Ù>ÌQF¾Ñï-¨ãت†Ðó@×¹‘Ò£o^_|=Õ ’›´ ù³Ž/*bAôbÑ6)çšKNxîµOlZÖE\‹žöÄW˜óI˜ö—°àB±Xß ɤt”$À|£ˆ0o5Óä¨qûÚ}û^ufúÚBHÄœ¥âC¯G &yèEšIŸe,Ïï>g _´¨]‡[s0©Ròp×6Gš&íË+&’äc¸69hª  YÓy¸Ì˜Hæø2ÂCYtæ†N ÙÙÚˆT—ôJs"7·έîÜ»€ïÓ—ûÂ;±ÁhÔåùD~·½ÔÂ×pjéq[{ZH8àœc8¬jÏbô×I„wœ*0ž}м–«Þã¨^Ø›^ŽÅÖááT´Ž²ñ¨q~Áù<d,ÎœgT5Ræ¥Í´§y©:Ø`,eø´÷x-çOåàJÙ˜B>¤æŸHoÍ®ýT + !XÊç¹ÖÂòÍe£;a™®` ‰ž`IžÎq¢3}O¹ßæÙ¯#J*}b:’Aðs4s®3tâ¦X†ü¡Sþ¿¢s4EÙ6¿5b&YNÐL”«å” q8˜@„ocpĪdKëðJw'R-ñ9 + §\À]ð(R€u³ç5( B «MÕÂÂC_Ö­0qPíJGøbŽÐÜ'A˜ªùH;G(NמňP¥óJÔ%Z…&´Â('„“ + W’Ò‹C(ŒBadmÏ«Uœ%ê„ò5BP”fD(Šè&¯ ÔÊkJ¥ìÝè Pcv•ç ¢‹ õ¤Ñ±ÙÜÇÈÜÞŸö¾È¸RœIÉÒÄ÷ÕŠOY<¯ÝF÷‚ߢ/d¹¢ÎD + –,ôùV]U&vè¿ü®êüøj} + q¡QyU£®¦”wiªéTßgÚ›ê?’,‘¤NhP!ÔC?É4]}@S¡&‹Ð—â†öù=†5ÌÖûK¼›ò í[Ùœžæ.)góxŠÓ‡ê¥-Ú3-mIL›ÏaͶY8¿/¦ \Ò¨3\Ø ¶¢Z( hêJ¯%¤fù-µI”÷BmÈt,–0HÁ®ÈY6m‹Êõ!:ùE[eêfxE»ªÄelöç_!²VÇ“íõai²riZùp «®ñI3L´nnTêêì + ç7!“z=Ò5ÑÖñtÄ\ùÉj»" èè–Ê”W›+”÷!„A²d®†ñ~Dͯô˜ò˜=5]õëÚ½8²! + Ç ä ]¡«h©³ü¦Lb@Î|Tø}šCBn·¶ä9馾Æm†×<ûÞŠŽz8Ó’ÓBO¦rýݵP§²ÿ$¼0â®ìÄY,oBt + ¥#:à$£g#FÁÃÁvùÜ9’ø oyêy-¥R”zf 1עúoÏ‹¬(yFWð¼Lj#–pñÝFXU×´'Ùí¨6^6\°-–B¤ËLà4óñ¾iÎnGöH"ܲy®Ù>oÆjוֳp9Õ°cé»ÞÒãÝye<¸C;W1]udI ê”3‚¹¨þr• õ,¥èáÅŒ¯êjìÑङôR®bwÞXp¸ÍZWÒ¼â>ÉéP”Æ\5Í}¡+ˆµŸ\9¸H±»ˆ¡;?wF»)TÉ@¶w2x²¼„Á9…å¤]û²¾×ÒLz›¬Ï Þâáò mòýК®Cg´´y‰&³¤ K!02ÍÞŠùùÉN¼ƒ3k–©#8S*8MXÃFzûâÏ'ÒöÜ¢"·!¡5´4‚­S’y”sΈþÂ’ƒ^¥Z\ ›_ÑÅ¿lܸÇ8Œ@êýÅ¢OkðgKåMðËY4S£m¹´m¹¦6Ñe•O„Ôîd.Ó|ƒú°oZ×]¢üÝì¤-X¼Hªk'HA~½ bßÿoWÿfÆ_9^:-Âh½%O2lˉï/×6õÙëÓÃå® EOè8û=s˜þÃ85x + endstream + endobj + 133 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F11 59 0 R + /F1 10 0 R + /F7 47 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + >> + endobj + 131 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 133 0 R + >> + endobj + 136 0 obj + << + /Filter[/FlateDecode] + /Length 92 + >> + stream + xÚS0Ð30PHWSî + N!únF + †z–† + !i + † + †Æz–& + !.ÑFšºF¦æî~¡šºÆÆÆA©‰)9™y©žOfRQbQ¥flˆ—‚kkÄ + endstream + endobj + 137 0 obj + << + /F2 13 0 R + >> + endobj + 135 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 137 0 R + >> + endobj + 140 0 obj + << + /Filter[/FlateDecode] + /Length 2400 + >> + stream + xÚXK“Û¸¾çW¨öD¹F0 €/»rX;ö®·oj={ŠR.Œ˜P¤Š¤fvjÿ|ú€”8çD<ݯ¿np‹8^ݯèóÓêÝíër•Ä¢LV·ûUR¬%J½ºýÛ?£÷sm¿Þ(%#ùf½Ñ:þÑw÷½9ëö'TôXnýôåwlèè7kª¦níz“iœD2Yÿëö—דU’ ImàüdµÑ¥(è,¹Þ¤™¼’ž§^:´X:4‚t’9W^£æ™ U’ÐÛC=àíÖ2‚9yUvØõõÝz#‹ÈºEãÁr£n×2‹`íÞì,¯Ç•ydGœx\ã&Ûò î"MòI©r¡“ULZÜ·ç…ªR ­Üüä-<ûs}×›þ‰;¦­¸ÑÁ)=7O}·Ayhh&òbµKøÆÐwƒ€‹JÒèÓTÖyô„¦wgìd‘é­kðçäümûÈ4Ÿxµ oa8ððØñƺÝ5çʺÁƒ“º·f<÷èOÞwg–†Ë>Rø¨ø_>R"N¯}D†«2©bÃSšÎ|Ã|°!Šh×Oë®%ë҈݌S¶ªG™V‡›7»±~ {æ @ÒØáµàæ£iëÓ¹1(9ì£絞G;BK{áêá†l`øOŒ U´ÁîX.F*peÏ'ÙE(-”ž”Š…f‰R$SïÌPï8tÞÙƒY«8z¨AÞKáSzþnZ4±¨Ò è¡&5b55øÉÐåGF-tªayM’\DÝðìtg´`…Ô …Ò#ähêf )J7³ØÁáæöãiim.’"ì%%Qï…¹(¥[1°’ »yã.M¢ëâµg‘ÁFÆm¡„Êç;b£H*Q@O{snFî8–‚«Qpu/•À!{žŸô2ðÎ[™%»Ú²ëQ;•{JÄù€3:ÏÓaÎtc‡7>òY÷8xì³ø“…;| Ϩy4Ô‰ÃȽGl0ºžxàDwÃPß5¢tc¶Öœ´ŽW÷öÔ8bΣiš›þÔ)Q—]Gî«Üzr}Çx-Y`";Ûh»^\µ*„ö€òÑ3²ÑÆ$›ûdÿ¢, î+l˜ÌSÄÄ&IEé“jœž[¾©ÀS‘eNJïüÿìqY‚*Åq‹àLtZJ‰ O£c•dÚš—¢ÌÂÖiÍÜ1¥P>×qèƒX¸ù–%£f7Ý,ŽAšhý(~ + €H{ß8‚àŠXÎ}é°•–ŒzX?Ú?FÙƒ^Üb¼A`ÚâSc\X•hŸß,ùõ’œ ò¥vÓ_~ÿüyÉM™(ä„ÖÙëgñDÇ­hûØs2RŒÚŽ×8½¨MA «zìóNŒŽÊ£')ˆf#øè8¦Ri¦½Ö"SWÐYXÆB¦a‘»1Y»/„×ÎŒ¶â1*ØÎÂ\ž&‡m»çã">,Þb¹©Ùc(ãK ƒ»ݹYru)EîÓÁ¾·ö¥0‹Ækai‘ + ¥æýÈH†Ü[œªÆeå­LóJ#[]–·‰oAŽb… »kLo¦Ô¾†D¤‚tž}ï^ hI‡8ª†¿|ýÄrß;e—ŽI™¶3Ú»;˜cDG¯ÂYÐM£-f‹d¿*^±Äbv¯Y<Åþ<Žæì + ,åã`»~»°f#¡ÎUÐêkwÃt­+-Žõýr˜+þ—å‚(æ:3o2í¯ü¹¶÷‡-= °gøƒÓo¸ùÃózóyY¸ Ù¿ë+”#Ó˜Ke³¸exÂU¡¸zï–—ás¶¸¨†IÇe:ÉM89‰àÀ´¯%h^ì&Œš†G[û8ßy¤ Ïenu]—2ú‡ŽÞµÍßÆèíZ ÉÔíÀ\„eät›ž}/È@$òÿàžÌcܶ;xIPÒ²=RVJróDž=>üúñ¹b1öç>êƲ$Tž›Ý@•jÿ[Lr‹˜¾Ìçò9i7úfd^I@»ì¢b:sv®2FÌKÅióÚ°4‰'ë­ƒ5ºýÕvýlæÉc¼½¹@ð¢¥$úß“ðª£bKúK\ž•Òí”àýŠø šÿ>S-ã&ë=o3Ü øÂÎÁTÎvH…ò¢ìu­'VN…®à«&é9Œ`‡ž½J åÊH0êaÆ ·( + ‹PDó ¹kìå4”jnÊ}ƒ(0Ø‚,Gï䨖èÊUEQPJ…`3¹ìÿpK+%醠º¥Âí¸‚pišÕWú“Ä+xuäDž~ 䶔ÿ”¼ßœ^[j!å\,x±“š¸ Ö,5a©õ²hÄšxãM¡(:Êþa°”ß®ÉW7rÄ‚„s)D\~ñLÇ$¾äíØUõͽ³ŸMÝy1ôèp2ð/ud*ÇO:¼>òúÑ¡¤K8»¬±÷\âŸþ‹J"Ÿ^ M=8.¤ò›½n%é2ˆg2²’Û³¬5s'¯-mþ~š½;%¼ÀÑ®îáå<°K:pžÃÃ/»Ÿý‘8êÿAÀÿSÂ^ìÄ÷:¦°pWsñG™šÿœMsÄÁºOè%Ç› + ˆòÔÛ½í9qœ®UëhºÕ®®x©»iþ3ýy ­™¸ÞLVj¯+ *"ïØVgøäع%Hn;˜n'ßÜÙ/íÐ&9Ë´ï€^Y7ØÐZ¦ÌŒ ¢‚_Î4døsטö?ÜD݉˜eô³í-ï`þ ËÃ+z¿¼`-ÈÆògÑûØíwÔÖŽÉL¿¬›¯ßò/?–&Äûÿ”ø{Ê)wã°Ñº‚8TÊlª‡ušzÖ6÷ö2jZÖ#TÊ;Þrw†&³.éùÀ÷¥ þ"ØÊ,îPàã›eˆ•")ç|ýŠãêG®íüIØ~0}ÍXÄQ6]ÃvÈ_ + W¿æÚéâd«ç%4îúÆá¬ÝΗpVëEbò¼Ôü·°ÝxÜó‘ÆÚÊ׸˜ò/ž Üu.z¿øV¡`ÍE’_þÓqo>\E•µ:'j¬Kû7 ³|î!N)}ó ‘æYŽñvéÄ?Y±äêmëUÁÅÜ÷{oaloÐßOn< ¯P¤®›ç­Ÿ»/p„š¹ºô_˜Ä7§÷s×¼ì6¿ÞÏù0á\°°÷O—ðÿò_Ùœ² + endstream + endobj + 141 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F7 47 0 R + /F3 16 0 R + /F11 59 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + >> + endobj + 139 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 141 0 R + >> + endobj + 144 0 obj + << + /Filter[/FlateDecode] + /Length 2677 + >> + stream + xÚYÝÛ6¿¿ÂèC#kFüD5½’4 R$9 ÙÞK],[^ë*K IÎf Üÿ~óAJ²%oúbñc8g~3C/B†‹Û}Þ.^^?{£2©\\ïÒ.¤©Y\ÿò{ Ôr¥ld“àíÇß–+­uð)϶eQåÜ{_|i²æaùÇõ¯ÏÞèK¬…4‹•I…%F»&‡‘Š‚u€«o`³^>Ç…‹p±’D”ý,“ÿÓ¯Ú쳆ÛO×Ë¿½ÏkWR + 1ƒˆüïd\ÅB¥4þì).7ÁÛ¼c>ø0ØÚ5õ[ÝÞ Û¼nÛgca£©°Æ Ûô*bÑøatÒ©@ïvg›k÷Yëd­Qþ͉_TîÛ]o™™Œ…k³¯¹'áo]í´/Ú®nNO¸šp*v,éúüv~üÑ­Ý) s~+Ùv{ãv›ðòÚ™ÞY“wǦúË?±gœ´1|"‘É5ˆV‡ÁîXmº•¢bÜ_—* rœŒRÖŽ£ 0}?´ÍwÙ±ìxô ºHï3\ýµ¨ 3¨w,Kº°"QeÅàwlé{:Ãëk¸_(«á»R h- Jò!7P.>“«Êp‘ˆ4!~n…R¸³-­ ^¼œg¬Œr̘<ãAN†"ÖÌ8dÆÅD¯±0@âϲ©weŽÊüi¹2a2`-y-¯U””9ßž²)ò]_•ò¬ÑDšÜBë8x@½ÖGìDÁ¶æÁªî¸q³Y…¿“Œ*:·ÀÉãFQü²4´ëŽ$§»m2G·ÁÑ}VÝæ£=6`‹Œt<…û^áÝÊàËÑôMº«'n莼£nÛâ’A2¢Õv5Û3 Ý›â.#öÉà7UžoÛ‘ß oaF6rªu8òÞÖ_(Rv6Má€Èôì9¸4PÄ·L=VîÅ é¤Ôƒu˜[ˆóDÃ>X\VŒ1ÕCEÅm·]<¾@è•î-éÉȤ?‚E,w¹ËDîiZîìŽÍ_Hp¹Á†~ì‚æ þiþ žF!ÐÕpÀ†'¿IØ£Å/s0¥«~tÞM j@CÂno:MǪÄ9® °ÕKÇ]¿Û"”`1fÄ>f pØ0ý±=Ù/ï÷ + Žk€|¸ ì:ŽÐsìá  + ‡ú¨€ÑÅHÜžH²»»²ØdlsHHÝð¤ÌsS1¨D¡‹ 8:<‘œóù¥ýì1ù™oˆý¿f±¹/D‹ŠK¬AO±9/ÖÀ´Zßöwy‰=ÓD&>åpM[ª¦âĆÖyƒ¿Å™ïà?ódÚ(”rR(C±¯ú¼ÓŸvú&bÍdpd'‡ç—? Ň/ Ún[ÔVZa‰ºW^vL«ñ@ŸÅ¬î*1ø‚É«¦ æî&Š„ò{x³@‰8yml¹çœ> + endobj + 143 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 145 0 R + >> + endobj + 148 0 obj + << + /Filter[/FlateDecode] + /Length 1608 + >> + stream + xÚ­]Û6ì}¿ÂÀ^äbqmYNœíiëzÅ C1¬ö° …ÎQï+“íù÷#Eù+ÎÝåÐ=I&%~“"í…Az;Ï.¼ŸVo︅Á2òV[/J½(–Â[ýü{·—ÇZÇœñïý™ ûÍ葇C^î³S^ïi÷áã¸ìw%7E^*¥I1û¯~y{!ñp‰ŒfÀ?òfb¤–xù³dηãEÂV~²ó>B¦6j[©¡Ìžñ4X&–ÖŸr¦Ü¨É‡¼¨}¾`g?Ùw„8!@‘ä•Ò¸IKéó9k>OÙƒ?ó†z먩«Ÿ$ì•Õ„©ñ*Ê ‹ª¾£S²(‹ð”é¼DÀ¾ÉSk:·mʬÎuY¨©z³(qFZíQÄ¥UªÒ%î#¶µš” ¿¼Þ«Ê'IaCF8’:Ë+‡Ó´äckÄÖ´Ã\™áɈL^;™¶JmT+J•™üeAfÎEàýˆ\ô‚ Þ‘¥:SŒ# ly<}4¹¬UqvV5ºÖ#ý6Îf×”õfíØÈÒጪSÍ/>øPr†oenßE•c–—U-ËLo笒]€]`u{YbÕtUaÒ‡“#@­‡B¹Œ‰ú8ç±@ó…V4Í$xÄ w@VÒbbð±0îPkožöy†§÷äC¾˜X»H©vDÁuBU5I÷’‰E "'Y^ÖSÉÀ·ªu[X‡ñ4$‡ñ”;‡Uôv½äq¤Ë­!GrG+o•ÀCÀ(”„‰gl&÷Þ^Š¥ Áÿ›Ö•`¿ˆC$Yó‰Î…6º×~€µU°{ˆ* àªŠ+3–8n ^ª + \2ÌŠ"i6±EÀQg{kÍÞ óµ¿fkÿ‡‰f—¡¯ÍHÁ~üøé~æD¨ÈR…z•DO + 0W0aw“tÃB~hÑVx[Ÿ^4‹)>gúp€ûŒB|v2Y‰¦ì§õØ**î‚yUŸ‰>©OeópκÇuR—í3Tò†‘=šW:‹¤˜ 63ÏG|+‰³²xJÑÞæñÀæ=ЃlïiB½ßKCDßÕ£*ks¾ ›Ap»Á…)«YÏKLå\m™ + -úJn_¥â¿®Õ%Cw"v\Ä€ËwEËäY-ÝFÝÌpªŒ˜*sÇ|Wjó ù…þ¢ó͈î&¯ŽÏP˜éVg åßkýxÁå¸Mâ!¡ª³ Bw÷¿¾¿pÛÍvÅÂÿÐl_ã³Ûe…ý$gŸ²Ü·@úgìá.š§¿=1âË)8’$;>©á«} ÄŽÿkŽU½ŒgåÓyÎàÏkLçk­uIíes]›³xpÑ Zœ­?}%òšF†…íqäúhÇØÜù˘µÏ׋c×=>q <|fcßµ„úË8áݤ´SS2nîñS»;m…Ù’à[ŽïeCtJe»úŽrÌKMm§ÅSƒà z4R+Áᾶ_°5UÔ‹[¾×G“-õø‚Qs{¦áOK³™Q÷léhÂn¨îtqó€íW‘†7¥<(בcc0 ÛþÊ5æ{Y·s‚¥Ú>tt1kŒq“ÍÕR3JíÊu#¢ï&Ý„m‡ ¶å¬´kY¤ég xØ+uOo`¼¯•‚iÈÝnÛEIX×sL±Å"˜óvžÑúZ¯ž¶CCA¦~¬ZñÝ”:m†R$‹Ë.3áÂò€MBÉLÛL7ö1Â}|Tçµ?m–1îe|ĨSç*k'Æ8CRÌ›f183â£*gg¯a‡|}î¾ÒRÚNh6›mÿg„7G‚cEÀoÆÐ7Þ–•Ckž¬Ì©öº)6}°Q¦±Ñ¥#EFÔÝï!rO¢‘“‚'jË'}ÀÔ—Ãꇟ þª"´ÿ[ BÒb ðJ:<…$>Vœ9¦nKÙÞJîæšÏC¹³§æ®.TƒƱ°?¤ö5•»ª¥±dJIs”÷~õͺdP + endstream + endobj + 149 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F11 59 0 R + /F3 16 0 R + >> + endobj + 147 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 149 0 R + >> + endobj + 154 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F12 + /FontDescriptor 153 0 R + /BaseFont/RSNAZC+CMBX10 + /FirstChar 33 + /LastChar 196 + /Widths[350 602.8 958.3 575 958.3 894.4 319.4 447.2 447.2 575 894.4 319.4 383.3 319.4 + 575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 + 869.4 818.1 830.6 881.9 755.6 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 + 863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 + 319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 + 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9 + 511.1 575 1150 575 575 575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 691.7 958.3 894.4 805.6 766.7 900 830.6 894.4 830.6 894.4 0 0 830.6 670.8 + 638.9 638.9 958.3 958.3 319.4 351.4 575 575 575 575 575 869.4 511.1 597.2 830.6 894.4 + 575 1041.7 1169.4 894.4 319.4 575] + >> + endobj + 155 0 obj + << + /Filter[/FlateDecode] + /Length 2381 + >> + stream + xÚÅYKãƾçWð*XµÙO’ÈiƒÄ†ƒ ‡ìر³XôH­1©ð±cåקª«I6%ÙYø่ý¬®ç×U­$cY–<'þó]ò—‡o¾ ÏXÉ“‡C‹„KVªäá¯S¡6[Qè"O¿ûç›­”2ý—³ûºjõþQ=u¶»l>=ü=ÙAžlUÉ + ¿ù ÷¦îh7"O¿Tm·Ùª\¥içëUóŒ#&Ž:Ý]皀!ZKáÛÓ’ö|ödÛÞíÃî–f~‘j¿ëœkÞm¶šóô@l˜ÔýlOçÚ=n˜gžxÉ9Iþ¡=¡ˆF¦;dÿ‡ÀNÅAí•F¥ÕsÓv.´gÈ<ý¾¡g׸ÎÖp²ÌEZh«¥ÉÃØ솪 KÇÞõÔòlcÃëa<¹®Ú#¶{†nƒì a¤_‘ìéÆÙ!6 + ¥½P»v¤íÈ(£B:™Iûc;Ö{j«QÇ>Õ¡å†ï>|{ÐÏ@Ê–YŽüÆš¦^«áÓj§nãžíP}AØÒ®¦m¶ÿu]KŽ…,«8\¾l4œRAHÏj™¢Z®ë0òP5­×Ù‚LúÍ·u ™W‘.“TFĸ1ýã¦DUVè =‰1Œ4*J&…§òptýìZ-;½}ƒ¡%ÚÞàp¼ª¾öo‰ñÈ°øµ«DHdΙÊáHÁ8¡ßÇ7ÅÌâ'bQ&œ³R#‹[Y¦x’Q`-*6ü)hD,KUÆ´ + »Ú÷·P”–Ékb + ÔÔ–µ‚'§$“ÌÝ:ùðžäŠes–s^‘kB¥aºŒñ,cù )žqfŠ­§ñQhãº+lµbE{ÉñB•+@ÿ!ba ˜† `Ž®óq½¾¥ïÁv€®Ê”éOè¥íHÛÈt0ÿêC¬Þ‘ÃÁŒ7|OänûêpY) ( + 1BgíágïzbÜy Š2í.,³ôƒ›¼FSLÓøÇ÷uÝzT!¸„Ùš} Ol + bìlŸMHR®Ðci÷ìt“Mê•,t]ñ‚7‡ü + ^ÔÄ‹ û6g‚GyÇv1ôÍéžûÏhëà–¥ò¶ý½ýØ`B-~úk¿ÄAr¸“í^¾Ò/‰¾ŠY>©à.È¢ŒžÃ¾§j]Ú`x{…ÒÈ#Íã½Óú/Ua™^ƒnCËãe§Ëôû Ôá(ä²Í³ä[>#Î+<ž.Äö 2oÂ&{ƒL[-¼betÍ!'‡Ÿçùv¥@Zß5‘½FIà\D¾@ý+_€Á’¸Ú·û + gøà†Áç#Bb­ŒÁ, vÅ¿?Å’öûÁ(ËÇ];Ke+N-éyLeªM”7)®<é,ûªÓÉí+H¨ Š×93ü÷W¼‚Š,‹‚0ô׊ÇAÉ=¸ß¢ýš\BFÄŠ‘ûŠXá+•˜Ø‰ÁÍÐ_‘ã€jŠGô¸Ð8sE Ð@¹¢HÉWL + ßä1)€ë→Rx%Æ” õ»s –9U"·&M„ǾW×HüôK,IJ™Qt®GÈ3n6|NŸ'GÆ“¢:3b68²¿ÕÄšÉã[ͳCºn¡š>±Ëùé „:Äz—¿Po}ñ¿#Øê|åC `cC-"Ðãéxt[êÛ™œ™É#áíe wñªv¹“‡Ã¤œn\’a;‰k­ Ä™EÁ™|ƒèÌs´ÂÔ¿ŠN,e”…C¼&„L{¿Ÿ(ò¬œw/$9èËÙˆfÕœÇ; ½QŒß‡Ú\OP›Ó¢À§MêFÝ“}ñáàÓË“˜^5q¾‚†hÝ¥ºöeC¯Q¿‡Ú=æ{B‡º×Ng[êúªÙâ¦Ëš§~ðUýjq2ÔîÖ›v¸?r>|ÿ!xo§÷37 çqz€¿ÓÛ¼äÀ‡þÚ…pPîí«þlBæ{þß% º ïÅ‚^j…1ñµjÖ–Çwä-²4»¼:á 7 Œ@$·2Æã!&d~GמV$^Ü…È?U>þŒŠtâÂà3­ë^«Þ±ØÄpïÏ纂BžJIœ‰©žàˆÞC—\?LVõ1V Tß®]²Çt¯G7¡ž÷” µè=Ç£}ÉgéˆLçvCֵݧ™àÐñßì©?Ùá—PÕ¿[> + endobj + 151 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 156 0 R + >> + endobj + 159 0 obj + << + /Filter[/FlateDecode] + /Length 2675 + >> + stream + xÚÍYß“Û¶~ï_¡Gªc!Äo"yjS;ãŽÉ8—¾Ø-ñNL$Q%©;_þúîb$ï’‹ëió" ¸X`¿ýv±\å,ÏW7+ÿ÷ÝêïW_½+ž3ÇWW×+^¬¸dN­®þñ6ûv_žûª]o¤™øz½QJg?´ÍM[õéÈì®î÷ÔúîûŸ°¡²7U¹;Ô§j½á…Îy&ôúýÕ?W²0L­6ʱÂËû¯u!³²­Ë‡ê=Nùê…\qÎœF]6~>_å~òv_¢&ðÂ_i&ãT•3­ÂÄöà{~[Ôru·2s¤i¦Ý긲’ñØ;¬~„XYÅrãÇ + ãeœÛæxîiät6Â2¢àˆ8ÑÕ6) + ßðíqû¢°Ù¥«:g'Ì®;šBÿ6ëªðÎ5¼OC}Y¶7—cuZ “ùI:ë›á¢Jðs"n=,ü.{·^(¯Aw&>yV8íh©nß\;n©4ãa“ÚÏ>5¸¾SÙGœ¡zNge×Õ7§jG@5?º«ÛjÛî×…Èp×2÷g4W›k™¨}øçðŽðAÝ Ç"®/§m_7'Zîœ`EüX%ã‚)f¨ùöMµ«» mN(Ér‘nî|(×°©û÷ÏÄçò¦¢– ‰oK4Â=9ÂpøŒ»£bÿØøç»úú><؇¹"8«ëÛÁÊëàd2Û–‡ŽÏKJÃÀ5ÿ •Y0(À¶,r&ù÷»úÔ/ýMÈqÂÂß4g¸¹ÓLjð7­™3±Næ¤3¤RyÀ]ÝÏ$ñœ#JQ<7,W3Y<·,ç©0:èj·ô_“31±þËk8xgÁðßeåù|¨·%IºØ­ÛWµ½‰Ú¶ó¨!H¸à²ød01´ë¾«×€*ÅuÖ–0§ böe¾!6»ÅŸŠ$Ôáòþçœh\£x]„5Mž½Ú¶uY_—Îf tè'€Çðq"2JDHV;tcÂâ.ò…_ßS˜_{ß¹]kñ´mèIIÓæתm†é@'‡KExåÒ1©Ò=QÜ go³{ï@8ætü@;øàŠFí`lñÍKדUÊC×ÐøàÔ^ Pº5>(;úÖXÙf}X~ÉÊy#~ïÈ# ¢.ÒˆhY/&»Å!>°_G3¶Iиœ‰uʾš ™‚DÀqàd€\;д4„$ƒú¥¦˜8P–·9ü·UG:€r5ÙF¯›6R詼 ”§FNLÿ õüCïT‘o€´°XÝ·I ;pzÏmâ3r + 姤"¦ê¡ô¦c;ž+Ïe¼àÜ G9–ëØöFŽÂAc½ Cý±-ÛãyêD§‘saÀž»¤Ânטª¶C«,H5*R^§ïO· Æ™‡õÅ; z„ G¯²æ:³ÑÞ·u|1}DÇíy|ÍMõ¿ C‚+VØ1…þ4 9œxëÂÌšÙTœ?Õ…<4´¶£@° Ô62O™Úæox N SÝx X•U§mãÝvG^d£Ac{iÛ!QÄ·§†…oŸô•‰}6Ú耊q¥"YÉݪ¹þ}\ƨüS°O2> ’h«×¯ÇÅYÈ$J=#Ò½ƒ˜Y-EA|(ô j!Hèñ2€Š«<ô W‘Oæ3¾f³«o0 ásÈð6ÀD?#]á´Éâ„Á3 + ïø0(‰IôBE·¨¨ã›‚iýc + ÇgAw—ÁUŒÔvsµÝCjcxD¼@ç‹ïUŸÊãùPáŽ`¦'mÅó7Š‰gË«‡SLŽ)|tœ·^HpB{¤L8cH‡†ôz'¨›ÊU.¾H ø|b›—M‰…ú3b) + ÌXQÎÍ Iú2f3:VHüŸ +qÏ(ì1–’q5ŠãÒbŒ˜ÉãàkfªÝyi.GûL¸éà FùHGƒ²¿äþÃÃ=jWÁµq¸ã@ÎÛÇÐ#üû5mZ~ú ç~sº,ÝFÍÒØ‹bvM+…˜Ô5Çð¼¢´ïàÓB ׂŸŽ¾dæ 8wš:„YdH†ÁçË…<ÈÕŒKåí÷8“gŒ‡Ø(ïTÆKÃ$màŽ¹ò†ÜŽ + @¯ ºº9%ZŸ÷â< 6êSÝ×å¡þ5Xa£¤¡ûHô%œExÊ‘®BÖ›Çû &ÙgX(IéínŽFÈH§¼¢^“4fQ²à‚ÙhÌ«çod‹&U;–ŠÏ­#ôD *A˜ÿ’þ.§úß.0ǯçG´‚„ªÜb*¶§Þô„:bE5‚Áòà_J$¨\`lß šî:r °à®FáäpÛ-Û°t<žóX,€út¾ôí–:ˆ·CðœPHÃᡆÎ$4åí·óµ^ž<6¡6Ke»¾½lûnYZsïÖ_$x¿xùêùUV¯«Â¡;- ã`Q„d¶T•Ç§V†•rp»« :ÏÂ˾M_lÝíë-ÂgOÝ‘Ñ°‡>ÒQÓÛ bBÞ\¤c°÷ûýO¯^=”tº$Á¶n¶Ö®º./‡>,ËiZ‹UcfÔÔÆpMX.%1¥eH0»¯åýß, Öb´4ug–†弘æÒ?ÁÔi\´6šZÚb05¶û0–g'¡ Rñ¤jñFÕÑÐ,®ÁTZÜ ø . 7[s48.÷ˆÁ›p'ìôZÞÞr,ÉN Žçd>Ûàp£Ø6Ç#Ü®>`ÑëCÿ¨õ9l“?š­síÁ±Ñ GA5åSâ00U¨Ò¢!+¢|ðPvý\–µþÎ?Ê*¸Ï‘f² + ŸÐY¸ƒVõõIDÝ®­ºŽ:žÅáŸXnì^5?Žˆ†ÇO#ø(15ôªOÕöÒcÚ°Ñ€ƒ×CQž_4 27\®!±}bRÕ„»ù˜tÇ*¥qøMƒR–D£¤TÖ.Q·pAð·ßz²£:fó—íN$d~ii1\^¿H@Ôí›æ—ß…\QÑ= + 9É™§Ñ¯(ŸÀà'5 ·0ƒu9´<øVÙö—ó\ÿ\*®¬Š…8؇žÊÛ£?¿<„=Ǭ[| + ±f¨Í{Æ°1y~ ‹?6© ©<-©›Xž¨Å?ÄÔ•F~öEx hs.sn™ä|‘.N6£6òðí'TÎeC ÅÌ>kNÒíøéàφ!Ã}h1¦ÂA)Ã,óiˤIEÔLdÙ€¦T–Ï8æÒœfªH¥A„0sa"‡év"ì·À¨!u)Rvñ`žJÀ¨ò¡üìrcá⧷> + endobj + 158 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 160 0 R + >> + endobj + 163 0 obj + << + /Filter[/FlateDecode] + /Length 2342 + >> + stream + xÚÕY_oã6¿OáGùP³â‘b߶ív‘»mØõÞÃmb3±[ + $yÓôÓß ‡’)ÉIÑm€Ã=‰’ÃáÌüf†Ô"eiº¸[øÏ»Åëï ž2ËëÛÏ\2«ëŸ?'B/W"Ïr“¼»ü´\I)“®ØîËÊQï}yÓÍÓòËú ™k¦+eYîþ÷2—IÑ”ÅÍÞ}Á)ßÿ"œ3›áF+?Ÿ/R?¹Ù_ïêúþúöXm®;`KÿNk¸8-â©dÂkü¾o×p”L.ApÎŒÎËìâýŒåªïïá°@Ô ÒríÙ¸¯KÉW-¥Hº)Gm#ÀÑ€nô”£QÌŠ˜å®†ˆ¤¾§Dê]q‘3.á+'%_Ü.WJeIUW«ß]S]£’nW¶8 “þÛí5Ší¶qm Ö·HT`WÖUXRÓwSì÷Ôz‹šÄ5e¦M¶%=ÑØãÎ…u'+P-)Iy©—°º(»²ºƒ³r›ÜÖ :M:×ʪع¬ŽC>iòãÍغÛâ¸ï¾ÃžEúc‰RbëÆ çˆJè¶4Ptô=ÔmG£Êì÷-.0*èÓºM]mç²—·ä½ Ð&8²¾ZNªä~‰ZzºñÚª‹f¦Ñi¼»g†i¾X ÁdöMçºÍë8¼5LÆOý±ÃM“œ¸ïÌÏ®81ÒšebÊH¦Fœg;ãæ)Ó6VúÅm¯áÁÍQÑãx<èä±Ø*«mÙ¸M‡^JVkêãÝŽƒó@‹».«¥ÐèƒH8 + g¦FAL68kW4Åf˜zÛÔ‡¹¯è'ÓcS$m׸âNm895ŽŸœZ):LõØÅ%.@ Þ1ze‰Ô°\Žýb¦Qá:sü²Mô[S'‚.H5>'žn%”AžQ + GC½œÂö®@î`™n «D0År¢þ)Ö¢L.×—`܇â.,—êj9Çþ&Ü|­ËíÀ\4åÏ¢FdLJxf¤;ðvaYf€?ßS9Cã¶eû°/0añŠà+«î5À' AØ|0Ÿœ ÒæCã¦Ì²Üç¿3Ècy6c¦%Ëùˆ)SfV†-{f”è¦Ìlδ1{ÀÇÐ>©ö„¥AaLäB«`œFFZ `Œƒ`lÍӠД‰ À§Ø—¿»žIر/ÚØ<®}šIG¥e + -¨FjiËÏÔ$-€sï¨]4wǃ#A0N Ⱦՙìçãf2Q7S"èôMãWB§ÅíØí°DQZrü T±XØ‘ uCSªº#‚¯ˆá{l]H‡B£ßFv%¨ƒÐꃇ„b|ƒô‰®…x“iMå, Fñ&* ÷_q¤ÉÎæ~¡XªNðB'¿*è©*l†EUPEˆ °Á).Š –Žå13£ôñyh?è5-*‡ŒÏì\ðÈþ§™R³2D˜«·žÕÖ F0­cvF3“ÏØÃŒ±;>°ŠS&b&àLpIœ0\°,1{!|èŒ=Íÿ*åãüŸÇE_*BøÀiáÞ´8|àÈ>p0Ü5<Ïÿ~rM_¸uú:Ö/qaì¥Èá!R@¤ÝÕÇý–ÚÇj[÷ÀqÔp>«oº–ºPLQã#³<ƒšëgu‰Ñ l€ó€­!eü@anF•r¸&¤ñ22‡´‚Bœd#Ï{Ó<Ÿ›``9Ëõ6äz@°øV‹Ô’K~[úÿ§{:sÌ*Á„|³.‚G ¦êÃÂ(fìШ0àç-Âýæ6G_êM¯¼“ñ‰—9ã|ÊKËR3âx<Ñ b Y8A~Æu¡öýºÌ²^ADéker‚¨<ªáðz€[AÿTÃÁÐÉ®ÐA» + âñ™”Û~ñˆN{óá¤üjÙ×ð4÷qWÒ½n^j%gT`ÓÅYD* •ç©U“¢óÁÙoké«ÔÅ µ3iNúcB¢&MÜ`Ä›»TQn˜Rò;EA>æwï_ Ï»O>­üÿïÝg_´!ÂaÈ…z¥z—¡Ä÷´×ñ ”XÏV + L¨žs¸Yt’,c©2p¤¡ÛûˆòVB¢ø£ #pʉ¾¡©C. úLÌñPlšúL|Æçâ èwâ R$ý‹Vœdú÷Êðêå~ CuxU+|™¬4Âþj{A¾JA7뱕„Œ+¾‰^ñ6äøþazÃ×ôÐZÍ4–Kžhlxv ‘jb%¸9˜˜‡ô–Ïøq0C.F Û_0fVÒà £rù –ÔM¤"…^4¤É“pEȃ÷GÿmL¸žàˆ«6€Ìãž^M€@v4vü + "G×@œçÅÄZ¦¾™lG—‹Ü;ÉüqÞ‹§8Å”Y’á ™èÃûëo××oÖoço߀ӓ_cl‘pÕ«¶È\CíFå 4_Þ‘K…/ÇÖŸ.ŸÝÔäèѦp~mEò©u´Ó9þ+ ñZæq$ƒ].>>s.~z»!¼Ò…Öñ‡BÛQ+ºIZºàZ¬MWnÀ˜L®äxÛ Ši‹¶Aé O~Š í¯¬ý2‹ËB½I‚Å?*ªÍþ¸u?ֶ̌LòÁ†xÐëË]ÎO ÏÆš½?íŠáÏGx!ò¿ Ÿ~ĸPЯ˜ðº[ÕÍ„GXÐoww õkÀµ‚^ ØÜŒ½¬¶YŽvqy±¾xóþâ?—ï^:bvæˆ}¤?† VvíH0× Eõ¶èŠ†»æ¸éŽp÷yYbõŒÄoþ³úÜÔ‡‡½ëüϯ±¸á$,ÄÅ¿ý¡â¥Ø + endstream + endobj + 164 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F12 154 0 R + >> + endobj + 162 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 164 0 R + >> + endobj + 167 0 obj + << + /Filter[/FlateDecode] + /Length 1126 + >> + stream + xÚµWKsã6 ¾÷Wè(¤•¨‡íÞ\[IÜIl¬l;³ÝÙ¡eÚâD—¦â¤¿¾$AÉìtFirâ ð Ðp×5v†nßÒ/7Èð\gäéÖð††ç;£ÀH§ßÌIŽ÷œ0Ëö}d¢_-;BsÉêÃeI«$øæ‘òf·óG9 Ì„àMA+bÙÞ0t= ¬ïéï_nü“"4t#ÃFÎPéJî¬ÒqÿHãäa™ÄËe<…Cgè [ ôáI‘ïfŽršemÙhhnè_( lò\³ “z\\ò}–×0njà¦\j Ìc¥w«}ÃaWZ#z°%há¹/°<új Óyã[…\]¹"‰ÇÓÉú!¼vƒ=ÀÈÄ®ŽR`bØËê²Àb±eu TðØz’HÉëZød`Ö˜mz~ˆÓñ<þ3ýÄeÍZ²v¶˜â­¾Á9³2 $Û{Fdä_€1“6å˜áLœíeÏt¶ZŽÓÉÝl~û^“Ä•ØcNhkmÍEPú¹z‘ijùòñ}}ÌiA€N^HÖð?®`žw2ÞcÅl“ÉÝ{mØ«§Kضfå8ùD3FJRI×sõÚEËé×ì83ˆL/ÐóÏ ˆªº²? wØl„P«4Ò×Xn­±Bñt´„A"WÀnÍà °ï(Éç¬nv9PÕƒ•“Î2}&†gB[¿è<>ÄÉl2Nn?2oªh4%a4ƒ€`¶kT"“÷{¸ãI²èýrQB$Ę5ŒéëQH¿E¹#¢âãšQ¿e9…T/g‘"ŸiÝŠW{£’e%뤤ڧm¥jªM¿›7]Ìû]:·mŽ]è›`†aÐ=Ÿ\ˆŒKþnH•©C¡©ûÀ¦Ò'Dãò¦‘wŽ;ùAªÄYFöÜVZ¯ñE‘ã·l­<ª1áµòO­ZN°}à;þè¼ãg„7¬º + õ)ÌmgÕ‘2\´¡6|W|z|!5pöí«5q`¯ ò½³ÍsF¡ + ?ŒœÀÓ¨iÅÃC'äŸX¡ÔÄ©ø\…¾q4BφyãFFi„¡3Šºua¬Ä÷Ë#gäæï+9äe_ÐŒò+iž+”ŽÎÄynäxÞµ[¡("EC€H·š·‚±ÃGeÖhËf€‚‹² ;Ð#€ÿ ßIÖýܤÌ5|Ÿ[®7‡6¬¥iQµyA¥:eµÉVW5­62èo¾E¹mª¬KmÂÿ¿ü „®öG + endstream + endobj + 168 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F12 154 0 R + >> + endobj + 166 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 168 0 R + >> + endobj + 173 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F13 + /FontDescriptor 172 0 R + /BaseFont/XKVGNU+CMSS10 + /FirstChar 33 + /LastChar 196 + /Widths[319.4 500 833.3 500 833.3 758.3 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 + 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 319.4 777.8 472.2 472.2 666.7 + 666.7 666.7 638.9 722.2 597.2 569.4 666.7 708.3 277.8 472.2 694.4 541.7 875 708.3 + 736.1 638.9 736.1 645.8 555.6 680.6 687.5 666.7 944.4 666.7 666.7 611.1 288.9 500 + 288.9 500 277.8 277.8 480.6 516.7 444.4 516.7 444.4 305.6 500 516.7 238.9 266.7 488.9 + 238.9 794.4 516.7 500 516.7 516.7 341.7 383.3 361.1 516.7 461.1 683.3 461.1 461.1 + 434.7 500 1000 500 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 541.7 833.3 777.8 611.1 666.7 708.3 722.2 777.8 722.2 777.8 0 0 722.2 + 583.3 536.1 536.1 813.9 813.9 238.9 266.7 500 500 500 500 500 666.7 444.4 480.6 722.2 + 777.8 500 861.1 972.2 777.8 238.9 500] + >> + endobj + 174 0 obj + << + /Filter[/FlateDecode] + /Length 2652 + >> + stream + xÚÅYYä¶~ϯÐ[ÔÆ4-¢$ûÉ9ÖH;Àî8@à5šgZµÔ‘ÔÛ;ÿ>u:º{lÃâ'ñ(‹Å:¾¢¢D$IôÑçëèO÷Ÿ¿Q‘LD!£ûÇHæ‘Ô¢0Ñý_~ˆU¾Ùª<ͳøëï¾ßlµÖñ[WVMÝ:îý£~èËþeóãýß#[a¢­)DN‹ø×&×qÙ×åCã~D’ÏßèHJQ¤¸Ñ–èe”qÝŽL!ÕL¢ôLÐ7´É_ïAîTGç(•"‡ít*Ò":Di* + ºMôÎ¥VšÆrKLÚVñéàúzwÁM&VÀÖ; + Qæ‚ŸÉ”\2,û'{¡Á­5Â+P£d5¾sãô’Åcç¿{Ç›ÔÄes¢®»G.Û²ñ B; Bólÿ]™Ä}:6õ®›¦Žxo±ÛÕïUš¹ + GóøWx¦^‚<> ®çE¼æ±ë)'á#¤t÷ÉíNcÝ>!‘áåØØúÞ‘´#,í '~<µ»±îZ[ó¶(!®ó¯+^U·L_òç¡n+´¿Gw8”muÉ‘l.Í„…QR¤éÿÑêr 1³Õqwmu0–±êªš·fTBË™‘L¨±æ$#Ì‚ÓÌG˸r×6çõ0_ÙœÊ ÙœÊ,©6KQñ©·8œ­\Ûùkšpy˜8Ü.’‡³Ð,Š—Z9ºÝ4þjÚÁ,v›fËY\- a­×±¼: ¨FùɃ+[/ÌdY¨È­V¹(òå‰ëcÒBh´6 .æ…SîPîˆÊÌÂy-žÔF…— ¹!^a×â!ïq_ŽÜúXówÚ‚»µß¹ûýˆâ9á·Ž¤ÚÐ=Ê .;…ã%hƒ…ÙlS«–‘´ñç‚YʃpmíÚM˜øͦбw’aÚ@‹¤À èc+„Éw!™ÿw容—üYòºRv® + Á‚ÞSHÑ6„hí Q£ziû®l(Bá *`_¶O~Í£ëƒ÷( Â÷™ôõB£i|Þ×Í´Ɍ͠°Æ,Õ Ní™Ô› + l–q¹êP›&1sh„v¼1÷D{a: ì(õ¸çñ’?•v}} W̃px˦™×Œy-A‹ä^ñp„ò~I, æ+”ƒ¢3]älýË}óØ›îË­óÞyèÝ£ë{¾iÍ[±ùzÊeÈ6)ÈKég¸[z’Á ÅFÝÖÞê1Ó4»õÓÞÇ\ŽDÉCT¦¾œpš”B0œæ[7–Û·§‡î4~±ÙB,â‡r÷|.ûjû\7ÍöÜõÕuu@b^ð FP]ù¦·µ­Ê¢U}÷ÌZ#ŽE”£‡£‰«Bo"Ø\ös7¬ÄP¾U6ÒB WBL1 pïK¢Lñ›–d"ÉW'…;.b8îk{€†Ôj{Ì"+ÔFŽVXÞ¢¾RT.tmùÈÚ–zy\¹¼×e¹P¹}³Á¹æåjÆ@L‰Vx}çÚ + í ¦«õ¡=‡àg—Æýú•C>Ngƒf‹øß›\&ï0)AÚ#çʃÿñ±ïžúòxŠ(,í»SS1Z “yúY¿ 5w'ìdñ¹¯GÏ–]6¿ò:K¹ˆ<¨Ÿ7JŸÎDß4äwkœmPhœþXW¼LQ„ÖËhD¾ÛõܨºÙÁ!/}á:¸G¶Ko,y7Á­ø­¯µ ŒÎý ŽÑY1¨®ª FY±fbC]0ÊÍ%£Êz¼ÌKËË1J°Ìïã+Ã4üyv×îÃÛn_zÝ~†—wçƒióÁ£ÓxFÖùgáZîøþ- ¬Òz¶Ïî冀٠?Þon€½ç쾪ªk£ŒH—.xÅ0† + —Ki ÷• 6ššN-ÌÁøe7¦æäèr‰¿-Ÿ'k¿€RhAÁÏ_ƒF#ÚñÁ d»•8 ;§áÒ ÷äFŸÝU.éþg­ Üpù“‰ÿv†+’pÕa\‰¦aƒüadæÆVÞ' é•#¥ÆqÊ°×j¶ÉÏ«E‰,¨…ÎÄ9…?°EÜü˜Ôû[f“AHÖS¨äH @Ãœ#Â÷ƒ œ‰Ï+WA&hï³{‚áô^Y¹«§ZAC2óÁHf'‚¥G¬SË`:t/ã’Upˆœ‚žåÚŠŒf(@–˜§_^ÁsTê@q‹\NBÿÑ}cŽå8蹚…ŒòÔŒ<»"¶Þæ°µ(ql_z‚‡SÝxŠšÐDi°:"š²vZç*ϳ㑪»‰é†îààèBlw 'ª4C-ƒlgõ¨=¡œC‹ë²œ˜p2H›å³DHs(=þÅmX<Ú¥ãi€ªa[çGàZúæ%”µÛKɺ£tDIÑ?0x÷ð½†ÛY¼R©(@ zªTW*ï\ãvãe±ò{9”ÇŸ-S€ (•öÆ —ÇǦ¤z + &ØìAÑ7¼t + ±>€Ü ÎTí¢aXÉe²],£ë O (‡ëÈ]]',‚ö¨@8vå”Ï §š‰¥0ôÀµð¢Rù%ÐàšDK½®<ž¥7˜ýòš¥^p|r¾ÑŸØ²ËpXraˆó‡’A8{£ì¹×á̹åά'*Ed + Éùȯd·\Ç}‚üåC™ + @?,Öá,X÷äâ8½~Ù„“kÔKÜehLÌàÊþjpµ4Þ%¾ Sú5|•AnÊ]ž?`„Ç2Ê÷=,ÊRzPÀAËž„:ÇWƒ«'Ð\$jÁNJ…¶rÁO¢’åŠáCÙ_13€áÓ%3é'»bfRLJKf,ÛBz…ömú‹ÛÇ®®®×+%~ + WÉ,#if3zëÆSOÀR…¯,†ïóúøÜá8úÀ‰ó³ÐƒXÂNŽK†#…lRVDê1L.MKY~'Âq@/ÞñË‘†õÏ W•T + j9à²ÝMºÎœø’£‚IÀqV¥Öô@èÉCÞP"QÑ;_”„Ê?<ž _àª[@EBA˜Ì…‡ªvPñ!XƒßÍoª!ç÷ |´a—ƒjÔšßÇã ¸VráqÜ¿ð8ô¯lª´ô¡jéqpq nèZ_²“I!T±â÷Œÿ1~³|3Å3ßf• + ™ý¤¿h‘Úkñ…­Ë¾¨ÔYeº«;=zóÃèîÍJß|D–EŽ¶Ìþxº¯ð®Ôôöÿ{XŒMHªÉb|m16‘Bæ¿$FOìBŒ^ó 1zÁðc2¿.¬Bà‘ò¦™¾oø°™˜tm&FûVœáÐdð5¤æ_NœàÈ?'÷åntýÀT ‘ºezã_:ÍòŠ ##m + ‘ ú*&øóO§ + ÿ@„¯Tj|´£QIëӈ„Z6ð–PY¿+‡ðÇ"±äÇ3÷?Ö^ʯŒ]ɯLÎÅФò{W÷<æþsªý¬Á`%-^îÅÃeó®UýT®wËün9½> + endobj + 170 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 175 0 R + >> + endobj + 178 0 obj + << + /Filter[/FlateDecode] + /Length 2598 + >> + stream + xÚÝZÛ’ã¶}ÏWèQÚÁ¸“ô›x]‰+®”w’—Ý­)ŽÄ±–"'$µãñק ’ ©Û®×—Ê“<}º-8ã|ñ¸p?ß/¾½ýêµ\α¸}Xˆx!Kôâöoo—Ý¥OmV¯ÖJÉ¥üzµÖÚ,ÿUWuºßçå#¾PËç¼ÝÑÓ÷?þôò§,Ýy™­Ö"6\,e²zû…Š‹íb­»Þ¾^Åjy(7m^•ï±ÍW¯ÕB–ÌÚ}-¸kü±Ê·ÔDÈ¡L˜M|‹ºpÝ|w “3jñ¼01ƒ¶ke˜Iû…•Lê®X,ÞÀäV1jCŒmÞlÒz;fÔ[Ú4Õj-ãå&OÛl¬7 @Žc"Æ…Á‡•ŒÂy#QÇA͘³òZ‚qÁÊk)'¿üG'Ñr—6ôÐdpXa—y‰epѲ«ž-õÜ°Õ: Ýî²Æ=xOópiQTøý3}ú‚ÏÕ + mEm6X¹KËÇŒêŸwù»ØÑÐ…F®8«šé̱òÆ[:¦Á³ + Q8çOâ¡lÐàê"Î,t)¸f\ƒGšEI_öNªTÂámi Âl¾kƒ‘ + ŸÌ6èW¦u¸b'ç>WEž¸Ý †T•~¬´=ÂŽIõÏ8ÎêPl©xïb ×ÃÓS‘» JyIéÌø"²LwE§aÀƒï=ÿp"ÞˆXÒÍ'/Ÿm½!þR|!Ï;€õ$~“9rRA0E ÞñÖÿ½Ì½ ¼Î‹ìý 5zê£&ýnåw!÷?W¼ƒÁ¯ŽèPAŸÒ Gâv¤Ñ@ÀJ}±“جQž$G9! + ;p’È‘c $fVŽ€ÆaïH@{âP@*̆& §àh€üµ¼ý1´°ï&ùê†êœš˜b*lH‰¼.b6ÿO|5R¾‚]1ùå‰[mkÝÞ jÓ€agÁŒ•ËoórKùodеšÙ4|b ã.—†V`Mø¶Éþ{ÈÊ D(P„ĠΨ~œkÑKJ­ñmº`±ÝÕÕáqG­œçaíü@î£EäQØÎåQ4Šg]%­C¯Oä3]n¥$|´ùz¶ìíˆ.¯Ëö馹kÚ´ÜB*}wb¥°»ççÍ ÐúFxû¬MOa0©³Pfµi‹ŸÏA©k >æwd4 V‹F¾½¯>fû¬lOõdèI{ã“Ñr;ëL tƾ·¼l²à¤EyŒò:’Š™#EŸ¸DÚ¡ùÎÛða›=¤‡¢½ñÇ|C…2Î(L®ô2û9Ý?™Ï¹ò²{MI2ê¥ ±ÎᔣÄaï¿mwiK»jç£ù‰½ÉN³ÙõD·TµçÁ»cºn9Æœâ€IŠÇáüQNÄÜCõ@¿~æTð¬ /îIzE‡‡wÒDuã?hó½¯Î}MîûÛ@×Ùõ‰'øqõï‰\áV8ZZ{‰Å‚V›¾ñ½•]9oó´ÈIÝ…3áxDL£Su.·èîùc‰†×<¢(Nöž3Y`$ÒEÈãº=<ÝíªêÃ\Ð\–æUde`Ï®óô¾È¨S¿™bOýfŠÝKÜëð!ØL±øŸN‘š÷žüÂR3:]vWÙ‡Ã3âú£9lìo^ z€`j ˜°1ÐUŸ`çe{ääE áËüäE°¦ !Ž"îÁ%¶/ûðÕX7(¬Lèà G=={ÑÌŠ)éÖS¤8aÑÈGÖGŽ¿`G‰¯Š„qÒ]|COàA›j6ßÞá:ܵ´¯z÷œu'’â3±2Ó0 À×1f:v*#0EÁ󌕣ãø#™êX$Íl÷~<æð\Gá‘AgŒ^E³ËÙù¼ûA9<ßY™ˆPVåú—¬®¨Dø2ÀO›¬ÓpXhÆí*xD\öû¢Ó3djÑŸ ÓµÃÞdñ1“ Ëø(iXHˆË•ø¸I$—W¨<á + TÊäW:¤Ž+#$Ï•(àJ˜‚ + T `ôHŠ)šŠ1^^N¡ Ä0#(åVf + E!ÔÑô˜ åoEá›Îû„?âí„:LŒŸèš!j<Æôˆ 5&úÜi%DΗi>œ¼§y™Ÿ¦9,h> Þ yq=o@zõø¢ à¹ÒAÛ§W?™Õžâø‚‰Ö“Û³˜©è÷gµÑU$«}yÌj¬´ö«{$Ïê1±::Ïê¬cõ­cu€—?ÌXmÜQò%&ã”rÙku(ql÷³/«Cyä’ + /nô—£8QZj6”3û6¬ž9w¡»¶Ñ¡<œÚµåp†|j ’¯ÈÏÐY£ç\¢³{XªµÆÀºÅ_J›ð·¬|EZ`rñB­(Epë@­Kª§ü5žÝéà»ðNGÇó«¾µÀ?G9<¢jªºW5Q=¨ƒ=¥}ìrzVþb‚œ{‚¤†SÎk°úìθXŒK†Á«ûû«ånĽ + ùòX…,ìy"¾ B=’W¡1©Pt^…z°N…Æh + x'Uh€ò*4ò*@S¡ ?#̘ÏÇÓB8Æiü#1˜¡$7ÌÌ $·LÇ#¨/ÿ1#M€=1FD*Œˆó.Æ?/qÎ^ã)yQ4ùH4O1OÚs¢)¯Íà"ES&‰M÷ëΚ8‰&V ¼†ÚP4]ëòø½…QׇP`ØA$]ÏHú\-bCÅ*IËÑ¢¿uª„ÕW + §ýdᔡpjgà(Îïnÿò?DMÃÁ + endstream + endobj + 179 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F12 154 0 R + /F13 173 0 R + /F11 59 0 R + /F1 10 0 R + >> + endobj + 177 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 179 0 R + >> + endobj + 182 0 obj + << + /Filter[/FlateDecode] + /Length 2602 + >> + stream + xÚÍZMsã6½ï¯ÐQšŠâ‹+§$§f³I¥2žÓÌ”‹–i›e‰r()ï¯ßn4@$mÉ™‰3' ôðÕïu£ÁYƲlv3s??ξ;ÿúLÌxÆ + >;¿žq;ã’jvþïws™-–Âjkæ?þòv±”RΫʫuÝTTúo}Ù–íÃâÃùfÒJfóÙR̺¿;[X9?4«}½m>`›¯ÏäŒsVhìiéþ`f™k\7{jÁEßDH¦¸oЮ]/?œÃÀµœ}œiάÍt1ÛÌ´fEŠëÙ˜ØL笮† ‡f!Åü²n®`EÁtÅ3Ér9ã™ÂR„v·|^=øqË~4±~ÜïçÝÌÃkÅ„Š¦íVòn + GVgAZrè—°cœvì;?5ÀáÑx aïÂtƒŽÀgRú6û- ª0óý-îsaç þé°^SõµßSzWûß®ñêж•ûÇ~ý@ÿ(¡ý®c*à rĦ¼g‹e. ˜ÕþÐ6;ßÛ¶Yþ¯j·>îÕRY¦ÍU»Q®Ê7Ãí5ýVm»mY#ØCffK˜V&_Э`…èÍ‘Š©9B?ÜžbŽ+˜c̱G‹Ì1‚r6b#0™1>Ä’°JyŒå=‚Q0ùF6œÇ-21 lð„Us&ijÙñ=ý䬟Õ4:ÏÓâ ÒY0“džôir؃#œÉp_"ÎÀ‰ðqJg DË›ödz7!KnЛ ¬QJE¬ÁþzÖÀÚÔ¾§!ITLn,–H¢^$œ°ÁŽ$TLI‚uҜ’X’ –DpÝN \+ð[=š¶Ý8z4 ¾-EÅ&ydr¦F@R G©"O¢J»¾Xm7›²¹ºÀ ^8âˆù«0Û¯HD¹"Yì=FO(9=Ø$nžàÌ›˜NoÁò-í—C-ÆÚU¿-BÑOš¤š¤èLRÍ_Ý9\o‘c=wÆi`¡“€ÿU*‹‰ps ˜Ÿn1¨]´TFPƒ!òqÝ¡jVþU[Ý·Õý|¾¯Ü9˜*´€ìömÝÜLDXàŒ:ß!;¢•F*s&ó(ÌŠÀåÀ-Äð¦@á:â< ̽TYæ¢á~a€° 7uÓàD–2+(Àâ™÷à!:ö` ›r”ÔóóÛzGm7%-ìŽZ6ÕGª÷Ë ÙQ/¥ÿmªUµÛáQÛŠyç{n]èŸÅ¶ñÇBk™CE¦VOŠ×ã•+€‚'l‹B.z&ïºÀfà;®¯H%„ÒöŸP p%ÒF*AåJ@e®©D@ + *‘ y•èR•ˆ] $Óêð8,"/†€\j4½râ@fÜa«‡‚Yçc(-"†ú‹‡²ÓÄ‹\(8 + )cM†§2OÌÑ`T€ÛÍ䓧;‹ †)à¯"ªâƒg&d¤jÂèHÕ ©¶ª–€<ªj µ%'ÇGèÓ%ePÕ"pý”ª |x†ª¡ZEâãvG°¹DßœY’#^x9C9â^Žø”ó×M½¯Ë5ý©«þæ"¨¾w‘LÕ^oÛ ..¾œ + D¤«U§Ÿ…¡{RC‘¨áR*‰`4Õ/Q勦K Œ ¢|©+¦|ïªý¬'úãÝ,ØÚBýL%@Ÿ!Y:ÉGa“:AgÈÅ xfö˜@¤ P ’¨è¸B¼N¡ÀN¡zÈÇ%ªƒ + •B‰ê¡¦4*™ ËÜ,@ÝŠÑEfp+’1*&†š¨1Ä*…ú[©tBTÇ¿¤ƒÊ¤ ž@FÝwöˆšêSòèÝÉ©©ÎHM5'†C™Ô*zªkžª©Î¦s‹Ò0õŒ¾È#õ„>"õÔ^¯¡ÕÓí¤€ˆS?};\6“ñøx¨pT6Å—/¨x³göø4~N}ráË©¢b¥¦¸©šª­WCéÊàÁFh˜K†0xÇ3Ír“à]ÖS!•Q>þ´[åýÃ}åÓ­Z1ÌÈFrUîK¯ p’ïAÂç/€”€‡.+‹…(¥qþ*»üE¡ˆy"Q ôŸbþJÇù‹x„e{YïݧA®/:÷ok?¬vB¸ê³Õ¸¾S¨tù6˜HÛî‘l÷”¼ã©^îv¥[!—®àótÃÅüŽnkàɉüº¡¹'ÊåŠáÜ®Ã}oýÒç AD¡Í׿ÿ†2%ûÛÐçÊi™ƒw *øEŸ@i‚ xëº~ýæìí/ßOm®ì( d‡MõI›¾:Ú”+'ÌBNu'óþ€ÿúÍÏß~ÿÛ Ý Mš*”›–Q2êÑžŒÁ;ÈÐÓO?ûë‘žÜw<$æ…¤LXN™0!B&LF±¾Sú?Œ2a*s©( + /@oS“¬»$™Ì“QÞA}¼µ„þn»Œ«¾òÙ©(·†g"dà…í}ɉWÞoÚ_<:ÏöYt‘çË©/ÁJIî¾lwÕ0Ûk`öG%ßuüŠâVk ðEGÿ¾·Ty¾‘™sŠÁÜ]<æ[^у ª¡"†+ÔòºÝn¨ÎÇh©Á‰$ºŠ¾?ìÛÕÔñ>Xé{¡ÍºòÔk|ßq69¼òžÇÜeù±Ð‘†¢EÌ$ÙŒ2\®S\ØÖååÚçˆËÝ®¾i6þ¦sG•×ýuü{pÁþ ÿ¦Š>òâLÒûø£Yååôâ¬^W|xq_Þø÷ + u‰,ó_ÿ®S¥× + endstream + endobj + 183 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F12 154 0 R + /F13 173 0 R + /F11 59 0 R + >> + endobj + 181 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 183 0 R + >> + endobj + 186 0 obj + << + /Filter[/FlateDecode] + /Length 2524 + >> + stream + xÚåYKܸ¾çWè¨^¸¹âK¢ró:; gw ÃahºÕ3Š»¥YµÚƒÉ¯O‹”¨ÇôŽÇ@ '‘õ‰,Öã«b”°$‰n"ûø%úéòÇ ñ„å<ºÜEÜD\²\E—û¿º-]­¥±øëj­”Žß¶ÍM[U}ƒ/d|_u·ÔúåÍl¨ø]Yl÷U]®ÖÜè„Ç’¯>]þ=’F2“Fk•3cðñbed|ª7]ÕÔŸpÎ2âœå³¶dQb'WuG3¸¦ÉwÚ½ýËÏ—°7-£ûHsf h¦óèiÍòÔw÷Ñ{Ø{¤S–K; ³ °ô ŒQŒgŒ1Lä“3¡C˜ª®º !9àp®pc Îa‘"Dº:Û—nçr8)عp¿Š{Ñù·Š åÞnšúØÑmn‹–Nè‡]µ/ëâ°Œë”þã«MTd-’›kPNŠ‚ç ¸ _V"‹Ë‡ëªÞ‚‚qPÅEmߦñוÖqÑVÅ5ìˆ^ÕM}(ë•HãÎÍßµÍÁ­‹‡¶g•R6¬OI–¥½dŽeI+{_Z-£…p&iôc¯ªxXka–æ´5m^ãAZá]€Ä>½ ö]qSRK]­˜[+ZN’“ˆ høZ + §ç‚)¦VkŠøåñØÀ—"ÞTEG6”éøb•÷v€#*~[;ÒK4~òRn5IÙÿ :ËÛò °Àƒ=bWÄÅ~ß ¬ï±Ëã<¯æDﺆ>Aáâ?±Ýœ:zy[t4äÎØV5v¿®„‰zCÈx6Û…%HÚýßílöÜv†C˜ÿ%’$ñ5v°Íã‚wEÛU›ÓÞjz"üjéå±üãTÖ›’/+øºÜ=¾;!ØÞ¶ìÁŸñÀJÂt¿ªË{êKhç4î\#¢Ôvkàty¸±¢½®º¶hÈÇz6r— L‰øvÙî?ošÃ¤ýq?£Ã×?Ì(‚ñG½(×ÐÀã08.­XšõÞs{M%jn¡H&hyÊd&’„)1 X¨õ2ž9,XNÆŸë + A ËnÐdLÉ3^ÔåYx˜ïÊîÔÖjU[ª=Ž•*~ø8®ÓÞy-z7¡™Òn© Ï2–ü降€Yp ƒš¸‰šàhjf'ŠDÛðÝŠ$· + Í°ÙM¡à†þJd誧P(B=‚ú²³_Wþ1×¥˜Ñß¡w_,î y`sR‡êôkùp(îh.4^Þ ¢Ï»‡»Åè-QHë-—ê1½Õ©Ó[…z ½ÞgÖrÀ0ß9àEVCöà 1Xðœ^¥*·77?ÃÕO”æ÷Bó€øÝ[ÇZs¿Þ-¬(?‡¢©¹Ug' !<÷zóá·ßæ߃º¹÷xl©äº9µmi¥IüXˆ@IlŠL‡¯+€gŸŽå6•‹XÚ8ÖÄ«cg¾‡H¿èCr5lÏþ¤nºÙ>%æ=aŸJ¸}âb‡XF€C`–ôÊÏi®áˆtüO`f4àwÚZD³£õðÝt‰h6‰™f#?mtÏVIß',9Œ³©;èÒvËFÑ•7ô¼Š›Ú9õf7× 0+¯y¯ß_|xój®ë + -Ü‹k + ²tøþ×ß_¾]ü> Ô + Ò.HÀúýå«wg}ò„eâÙAÄy5Œ C¥ÌˆÇâF¦)uJ€JÉ€2«2»OÑ ¢µ ™s/ð ©8÷f:A˜¹‰AOªÚ¹Çq&ÐóªÐZ¢†cÏ@4’ì¿©Ñ:C{4šú†Á”“F{Ø^£G¸½FÀ1¥›¦IßxLà©ž.vÊÖËB{(‘(ÆgPHêøjˆóãÐ#Ä3 rÈÌ*S :½é9ß9ð+µ¼ÎSÜÒ9*EÌûÿÓ ÕØ Ï²¶Mñ‰¬ ÿ"À†Ù®üvÛýÚTÛ…RaŽªýX©Ð0˜ F¡M¢Ô–R|ß)oŠ%7ÓH9Îd.ÈÁUˆÆyfs£1ç†éÞöt¸³Å¡²]ˆ=}¥O2‰>GÀb¦e93°ì\œSíø» úm‹ze¬»‰;wÁí?¨Ö‹ÃAÚ ¨r¤&±Â¥†ÑP©¡ë½;¾=Îà9d–›‡“¶Þ¡™ + % > + endobj + 185 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 187 0 R + >> + endobj + 192 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F14 + /FontDescriptor 191 0 R + /BaseFont/DYDOVS+CMTT9 + /FirstChar 33 + /LastChar 196 + /Widths[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 0 0 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525] + >> + endobj + 193 0 obj + << + /Filter[/FlateDecode] + /Length 2669 + >> + stream + xÚÅYKs䶾çWÌ-œ”DO’É)ëÕnmÊ¥Tig)Ë¥¢f8Æ3¤ÂÇÊrÊÿÝÝè& ’#%vj7' Ðh4úñuc…Q´zX¹ÏûÕ›Í7ïäJDa*V›ýJ$+¡ÂT¯6o¿”\_ÊÄ$qðþúÓúR)ÜäÙîX”9õ¾+îë¬~^ÿ°ùÛ7ﮌR¤r ÄÅêR§aâÉP‡f}i¬ þzŸ®ßþýîíÕwW›« oäÃõÇ«›?òæêý‡kàêú-õ~ùËBL—=ƒH®+°±œ¼©;åü.L&½å{L-H[öþä”geÃ${G쬎ÆÐÍó_p74áœP)%ý½éøg÷/m.Ù%÷j#MOM™ˆØÁ —¸¡ €s4%q„à ,غ¸ì†õÇcCsžx=3Á«˜RY1íÃË"1™HK9zÍìP¡ÿódâ`)’(4æKס¾ï´ga®i¨ZuwÙN¶Ûå»Þ(œgœo–$#3SßñŠEKPÕø‹;‰8LS€b -tß¿['xü0l*0ü¡ØTâ±U”l/BŽS€o=òåv¹Ú(5jõ´Nú©4”fuZƒ¢ïW¶®ŒE/áttî1À(¶½Ô}Gz§í‚^ + Ö.'ôœŽM) iCe=Riu2§%”@eð‰Qh"9x÷££Pôã6X\Ÿ¥æ¿Ÿ«b·\/ÁWöË×g<ˆ2U¾þ¾Aù8ì–¡&~f,Ùch¥#¸3'Ö8µ(éGF]´8²…@ÝÖÝÖ9@ø>àG0Ó5üÕt± p#ßÍPp¨Ð˜`_WÀ Ý4Ôl«¥ÿ‹"<â + ¾ Ò,jñ+#'fø1Ÿ½*BWHî»–gdÍ!ºSz? ö`cÿzê¼xE~¢µ|~b—çO@½ãƒŸq~–YÆÃ\2m Òñõm;{‰=Û¦þ̶aÐhF»¡ü­õ[&™J4^¦OèœQC —©GJˆO0£%@F*žû‚F-^³jØÀ”Am¾=Vƒh‚Sb% îê:'¸KØ"áWo¿ÐlÚ¬n]h‚ÎYT+£t’Í#©æËñi &€t5sÈØlAÉYÂ|OÈ“¡GŽh /ƒMBa[¸´©{øDY–Ë¿·(·Ãh€/n 6eìoÛѨcQ»~¿!zŠä[â$Kž["È + žÒµè´²yêû¬ôV…< ¹ÌÝÜ;¥“Fg耛œÒéípªùÊŒryÝr(5èÓ + N °‹ ò¢ÇÓ\eq:>TèR.X¥YM—2HRß°þäŠK M05xÙB N+7ù òQ¬Ô5¿Fl3Žuo¦1â}™d[ôë6ȶ۪ÞqmTM!<6Á¦Oô4$.ÒŸ1êÐí:Ä"æûf·ÒØ|Kî÷p•üSwDÀ˜‹Ó‹/a¡/GwËÝM%cÁdAÖ+5\øniGƒÇ|û‰¯ÀÄcÖ å#Ÿ0¨cÔ{¼aŸ2¸¼)€Ï¥ù?¨Ž,:µÁ@¹?1PÓ”«îë<_Z¨õ …ÆfND‹ ¥³øW:`;B@lâ9-!c ‘>±cÑœ³#5æÍ_$RÇ£ŽŠèî EÄÉi@JÜŸ"%Ã::‹;‹áÊ<2±Å”dF&Ž]ã‘ù_ýóïJWRåD<ºÍOTÕ7úÀ%Å5èÒKŒ»²¢?‘_ E—èÊv7yÛÕes&O¶¨(ÄZ´à,A¬É¹'¢-ÁÜò ½sÖP§¬<¦ZæžëÒb]£¼ü9¯+ŽúÒ8ü=*h_ПÔùÕ¸ª-UÒ†b¯ƒ£^¾+ʾŒNQ ¢ _~Ì $¬Ì *‹º}é ÚeŃ\r³û*”V”߸ÿE ÁÁ½Y@ïÄužbÏd\ÐðŒ ‡)ˆ@ë6ÈÇð¥*/!°¬|À¬ kÒîeA€cM~»¾ ç‡Í–9¡A™  ìT!WÀÁY4IB<<ð „Žƒv¨e¸!'o{|Ûqcøšœ[SA›T*‹EüocXáªèäáÄàŽ­™ÛºÇÇþ%hðPE¹+¶y3M ‡¿,TªIb~AVûO@²¯Néà¡Ô«/Aú‡ÞØ‘}u×g” + ­]÷§®S*jºä&à«^:kB•þWÎkÀˆg€£‘ˆO<µ£Dèw'hƒ"Ì1³·ë½¬jM~¿\¡Ysí@³{Óƒa‹Õ³%(‰Í¼<ƒ¥Rˆ_ý_€cñ˜Ê ¥‘ ž”#^;‡ÇàÿðbÑsnäÈœ“c¦Vá ÄÆîA‡Š†£C‘øVP®;õ5Ôñ­a¢ÚOejù»û&ÿWÇù/Y“œù¨‰‰±.ž²écUÁ`Ù¯˶ô–}“ïŠæñ˜á{öóòi±7WNýŠxÑ‚'<¼Èý ^Ä1¥¸âÔŸBô§ðõڤᗬOF wËßö_h—±üѽ¼™€™t•sTñMqÏТ÷¹0ÐlkT¬è[ç·ÒFªh + Ï5Ó þÙVÔãA·µs¶Ë†8”É`ÐrïÆ·™ø†~ßí÷y½T¸3I1®6øz.{< + endstream + endobj + 194 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F3 16 0 R + /F14 192 0 R + /F12 154 0 R + /F13 173 0 R + /F11 59 0 R + >> + endobj + 189 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 194 0 R + >> + endobj + 197 0 obj + << + /Filter[/FlateDecode] + /Length 2883 + >> + stream + xÚÍZKÜƾçWÌ%×ÐÐì¹%¶e8€ƒ@Þœ,cCÍpwÍ’³+ýûÔ«É&9»0¢HÊe‡ý`±»ê«ê¯ªw“ÄI²yØÐÏ›¿Þ~ûZoTjs{¿QùF™¸°›Ûï¾;”ç¡ên¶ÆèHÿùfk­‹þѵ]y:Õ͘è©üôãßÿ‰6zS•ûcÝT7[•»DEÆÜüvû·ÉMœ§›­-âœ>ðëë›ÜD—f7ÔmóÎùöµÙ(³¥²MB“ëfàJOS´‰­’ Ý‘¾òÃ-ìÍ™ÍÓÆ©8· ÅŮ؜6ÎÅEê›ÇÍ/°÷KãÂP, …Ü·Ý®Ú/6N³IP‘ÇY±TqæBA—3èBGûr¨Ò”Õ±1“8eÓغ…¨È¸/ÛŒf&Ørs[èãµÍBF¦ã@D–ÆN/Dd€¯<ÑTOKœ&°c5IQ àÔ,ĨWrÈk|eqb>#>•³,´ó-š¨:Ñ  + ð33öJê¸3¢åa`8”˜Ì\ºž‚%æi-÷ƒd!kïcMõA†Â¤éÿÀBàäEh!n/,Th*ì[‰‡ªÄü¬áÎK4°¯Œ3Xs + {Ô^Vö,fg(çTõ}ùpå°†÷Šßå·ŠÞ{.†zúæk-Žãµhä#ÙKÞì + TZ˜fQb¥]Tv—“¬½ï¢1ª.h0 àDÙ<{¢ŒÏeÏ¿Äý™òâëc&Aó/Â¥&÷Zî[C‚4é ‡ûuÎcqõ<Éf§ƒmß×ï° Âw’È•uãó  îÙ")¢Yþ ëúé‚õ,±ÚÕèI#¢-xSñ€¶èw=ÿþk· ­VÞÄ\sb€õÛøìÃi-…IøHÙˆWÑ7öûPepn$œÒT;Z'o°f±„ + ŒÒ†>ÞÃVú{œæäÔµÎzeÍÕàD ÙB \ó$cÌàË@‘/Gf\Øô˜ÀgŒ#øPɵQ|Ýð°M™t®c哆Šu.Û’¡ÀŽÒr¥aĉžNk-/¦(‚ ½D>Ðù±—5¥iƒ„ªU —”&é Öqœ[ˆ>A´yMUvSHÔ¢¯^ÂÖuÜ—kVçX˜Ú´ça ; ñ îÝ:-²i + RR—/EAlrv&êÅ©>c:ty†¡ïhOs:êçOCTM Êf úŸNÁvB3¨Æç̘Ç0wkS‹ŽqÚW×vl‹îSË+¥ ºÙyDr¹LNó‚ê£ÀÂÇÍÃJ(ñ¥Âaú9mI©o`Ì_Ê07±™’`—éèH”)ÚQ8…vp™“™±„#3GÇISñ‘bͯÎ@ÉŽ™™0¤ÅÛ¡¯ä_DžÑ¯+X»ŽDÄ«© + 9;zèÎs$ÍòîÛkº›Óf.Í@¢÷Àë”ÆÒé^iÏÀë@]Iá+3CÛ­Š*‰£RÕ(L%Eœ»¥4ûÏÕLÞ_óvŸ]«œäl ü*ÔÂà µÐP›ja$äËБ¨…y}9+xãtÏßq¦|­ˆNm/Ò q©(+x + ,àÈs®Ð·Y}€×—ÕÝ3¥kHœÆÌ•§3‹c_üðs©ÂºçxøI{~øagÆŽZ}8ãi¾žÂÛÆI"Q­¤áÝ}÷éÀóyŽ¾yNXšÆé‹7/`=cŠ?ð. e3Â)¸q)H˜'ÿrý« ±¤]¹ßàÕœŸã^=lçNRLNB´Qƒ}sBt,úzUn„®Ç‡l».ß+¤½)PtI’!ƒ÷wNÜò½èD‹15^%9©›vÕɯgùÊä#ôýŸ–} + *lµ0cºÅ<<‰oöÆ|GV§áܧÒýbhê£D:!÷:Q:Á VΨï¹oäìáÆ’ …ÅšæNº;ÜÞT + ®nï*sèQµr—eå²Óo£íÖgl5ø´\lÜ={%¡ DŒu¡¡ùvŠ3YAìs€?j»ºj¸tŒ³ÂàArü‹6H#ôÀ'þ>Ö˜ÊìE)‡“5$1Åìö±•ùâ:<K*dc½x •PÃIo—é0vžÐ1MÛØð¿Æc«e.þ2/ÞàK#ÆÈ…÷8*_¥»¾UI]nÓ\p›æÂL¼—žE!Ë$ãåaMùÞ—”þïümZ=hM}MNŽoŽ…bíÏåN^|:øÎuöÉ¡ûÿQ¤» + endstream + endobj + 198 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F12 154 0 R + /F13 173 0 R + /F11 59 0 R + >> + endobj + 196 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 198 0 R + >> + endobj + 201 0 obj + << + /Filter[/FlateDecode] + /Length 2688 + >> + stream + xÚÍZKܸ¾çW4ö²ê…›+¾)ì)ñ ØÞ…=›lc¢éV{÷cÒRÛ™Ÿ*)QH`û2-Qd‘¬úªêcq9ËóŇ…ÿy¾øÛå¯ÏÄ‚ç¬à‹Ëí‚»—¬P‹Ë'o3©–+á´³ÙóW.WRÊìuUnvõ¡¢·õõ©<Ý-ß_þ}!³Åb¥ + æüàë¥pÙÝr¥T‘A¯õRØì#þ©ÚúðÛ]VÂγ¦ú÷¹:¬+ê|܆ֳsC­ô\‚ ¶:5Ôö¹no¨o{7·¸ä¬Z×åŽ>íËM £`¿>“ýn¥ÒÌÉEîüúÅÕ¯ùÇå•ßÏ*|\>8éãÍå___^]<õûë§$+ÑœLº ª¹…c.bùÝržw†©k¼,?.É|¢ÐI”À7@H˜‚'S€Ê£)Òe$ÓHÇL„òöx"aÍùšÀk±MÎ7us»    %€ÆQër·›º?7S¢3÷UõŸ[ðÜ+ZλÙËT>À‡z?8 ý¦JK î¾&fÖè’ÉZîщö˜È3‡ÙPÍyײ l äyáW-¤fP&,Æh+˜bv¹ÒFd/QŒÈ6õöÎfiuv¹,pGs6ñ.JeV~C§ãÒKïtô:t:lHÑ4Mu;^!|¸ˆ’ + Ãx1’TXÔn*©í”úìÞÿƒßÍKu꯳•ž`ï¢Ûçй$g*® 3#¨œw&ñž„ P:`IÙ,$yx*qýÊôŸÖçÓ©ó?ü ú'~¼õaÿØÔôC‡á =ŸÍHŒ—pîr… MøyBÊ_QêÑŠi•ÆœHP¥dñjó}Sƒ€” v0 ïCœb£ tmª]ÕVcœJ¦‹D€Òò±,ˆÐÆdÝ‹TûU@Å=StjËSû(j5Ä®*šA–0MÊ‚žâõ íw¥xˆZŠ+Z¸ + L£E»öé`67þ‰æõ«Â;a7KeY—:t{²V$BëŒ à·â9Öreœé¡>‡º‹´èDêÛ‚“<¸×Ø9á»h‚Ëÿã!Á€_¦XW9ºÚ=X§àk™D|ZŒ%ñ5ÀHNn¨QÛo—eîFÂx.˜æ‰4žÌú#y<·ä½ÀïÀiô >Hv²è!rkA¡Nªž03àÓÈì=Î`|txÐÌÌÁdà p2á;C.gÀ…wœc˜ à 9Z0V}û(,sèdú(Þ‡QƒùXïÆ’,€0„ÜŠ± Ç™qA? $fF¤qå1âÏÌ¥¸ÂpO_„±Jð%ØuGëû`gÌðS.…]ºÞ!ìàKà+¸•cø¥¾Šìë›N@pQ¯ÀIÊÛpàŠÐçQv,‹K…u­TZ}¸=Ï„[ A|ÝÙ¬?u+Ê29Veb¸+ŠÔç—³Õ™ðÉd®ô`-Q ÉÁžç‘+ÒK<áÄ·îÔ–Á} £ ¢“k0|óG´ô{Snzé݉Ÿ0â©–³!ב¯ÀsI}© z¿£œãùä¶dâ•QˆÉD7Áƒüþñd¨Tö*zG•nww«lÏ»ßÈ“:½Ž + 8ÎôEÒÑ‘ÙòM¡ÓlÛ´U¹™«–˜Û|±ÄuÅGÅ’Ç‘’SB¹è1øI”(¥sìð>tlEâX;¶òÎ×Irp¾,Æ’õB$}\JŽ€˜’TôÆOÇz†àÀAí!ƒG˜cÜ"¦\Ú'!‡·ÔTìµÉÊzW^ï*¼=÷4:3n‚Œõ2"ÿØ´ Ó½w,?b3¤ÉÕL~ÞU¾<™G ôÝ\™ ;.q‚0“‚Í#ºxñÌçš\rÁB½“ú¯’´1™Sɳ£2½ ¡™RDZ<g4Ù?oê]àÃÄoê¶#²[¢¹Éž #Õöè…þÛ·Âè@J•/ªÓSyˆ9¥%ÝÁ½š¦þp¨6Sø§åëÉÅœ`œ'…ùOÕ¡½º9Bbš\»9äP!„,A³Á¦D±„ò÷*ßœbiø5I!0¼#16:Ê0ªv=Ceò¾Jõpð|vñâi 2! L¹ŒÁ<Àe`ƒ¹M1c©ˆç}ò)–bÓ‹Z},è+Ø4Œ¥Ø3wt„Äš—èNýªÅ¢w¡œßÔñZEû ø˜÷>j†‹HÑ—PF;˜ñ_­m[ý â,±z¨Ðû*‡s4u~'´™æmÉaÐ_ɱ0´²[cÞF<Åï/š¾²l1ƒ`8>v…ÄYÐå}Qÿ‹W:2õ”Øõ7' 3Ö‘žþã‚é.>v)[v/Bcr&Oo¿‡×ù¹îkÌ?Mïé0æ–5Þßmþ4³®2΢ÃÒӀǵm…Wâ!/8áéÚ0ÈŸ YŸÆ9ÛˆìàUj ý…=5ûÿ´˜dÁ¢HËÄW8ÇÕÇên6ZÕ›(\Ïþy¦:Ò$š z˜.Qtÿ’@û´Ò× ûXÕ•¤öVúÇ“]‡ÿ> + endobj + 200 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 202 0 R + >> + endobj + 205 0 obj + << + /Filter[/FlateDecode] + /Length 3071 + >> + stream + xÚÍZKsܸ¾çWÌ-œ”K¼H"Ç$öV’õVÊ‘+‡ÕÖ5CiXš!>dk}ºÑ >,Ë»)%' Øšý}ý71‹ãÍÝÆ^¾ßüéê»wbÃcføæêvó —̨ÍÕ_~Šþ|ʺ¢Ùøãv§”ŽþÑÔwM~¹”ÕÞѧ²;Qëû?bCEŠüx.«b»ã™Žy$õöç«¿md&Y–lvʰ̾à§wÛLF}uèʺúç|÷Nn8gFãbvötÛÉeÕÑ .Æ)B2ÅÝ„ælßòö + ö¦åæÓFs–)¢™6›ËFkfß=oþ {ßè„iÇ`a(¤ø\ú®˜Iâ±d\Ž¢xœ21—Å㌠ + «ŠÏ~ÍrÔ±„ÅgnÍ×Ñ°k[1¡ƒ-[å–RD‚KsR¶t?ø;.ã®°rúœïóû­È¢ÂÉâÁŠÀ¼ Q†¥~¹7ÛHAÂNu'Ûà´MÛ:Ô—K^©ÓÕ4oòÓ¯›òéTT ®Xb†ºoÀšö÷ÅÓõÚ>ÓŒ ÒºEäçsqdÛ]³èêÃø1ÑB˜·Uˆ¶´E×.•!8“bŤT + †&VFÂqòe“¦´ï:3Èb&8Œ ÿšØ?¨½:"d¦â8ÏX¦Gy\ÀSb&³,”XV}·P…иZ8³/Z¢‘ì`KÉk"„èdDu§ˆÃ÷H2¸s‘739YÂT2Ê10œÍäδ + 倚)s5|è[Œò¸RþáQ WfJ Ô<ÁoÊ´x¿ÊÝ}¬Ëã + r3Ï7‘Lf!p?V`©+¨,ù¢¡f)S Ä$,U¤ÁTûn AnÇLúUCŠ€Õ ò8€ 5:È¥²è%~ÝP߀WÉLT\ `•[äŠó ë˜å.ﬧQ:#ÂQzœMÃõ-]ó + ŸuO>4ÅcY÷-=€”àdÔK¾I%‹Ó‘o]dïtá¨kt·ÊE€|ž Ü%™ úÙ)nW7÷¶+¢º²{„å-]iwpkòhŠU£mžr'¯ª;šžŸ‘ °zXÕvñm‡Öìƺí…*â÷…Ì«˜’3ºÏ÷úlƒh†tãúS¾ÁA3ÐþLl%xÐÒzœÍc5t¿•<*ž@çp­óæ8§™0ˆõ44•Ë'¼‚Ø„ÂPß"”®O«…4X»žëÊKQ¯ñ˜®¼„Ç\Ÿr=QÏÐ™àš¥<¤³Ê3šº4Š¼tWqt[7Ô¸·<ðD±ƒÕ­öH°ÍÅ’9ØS¬¿Á~UÀBIÄ­ø‚O¥% l¹eÒ¢q 2FO>DuýâeÐÈ<5\ʧ˜”I‚òÐÔmq¨«#‚\e^Ù¸oã!· + º‡äæhTitë çnµmyWGzjM6Z¨¯x,ªnªëûg•T—…_ + ·­Ó„kŽÅmÞŸ M¾9·Žïš²¶#M³Ñ\ëªØuÀg"‰(Ï–ðñVNÙiŒá¶0õèú¦rÏR„ + S곓êÁ`;[­€>û‚¹ï‰¹OlÈl3Ke6Á-€Úîtœ¾Å8¶ (û©‚ȺÊïŠ ¬ˆ`éïÍí„Á$⛉1ˆ"Bf4aóa&bÈ1CŸ™p÷j‚:¯%ç@üœ~ç\Š.ßßžó»¥404ù÷ðL ™–ø¾¶„r,oŸòäu±1|Qì@m©G0LÒ ~ïnômÔaLÔ®À 6+½‡lÜ“«T”û8äɶ¾Û¶r·&XÐÙc è&I'Ô¹Ý)oòƒKÙ! ²4„cmŸZ·M}qc'7´à[ÄSÂ=ªç)’Fü>³hQ@섹§Hô™Èl@ïœáˆÌØ„GYεHbÿ¥Å$'óì™7w=" –ÙÑ6ÛSݾMkB§ª«Ý/ES“ÊD‹ž°méxd¤}ìâ\üd¤(ïNö»›Ò%å–“)ò‘zÄ)…>ék"\Æ1Æ@Â]‚psƯ@œÇÚz¡A)«Ê✂—QÚó(O~c†ÄŸÃµJ°F|ÊÕ« Ê>I@_¾œÆ|&(µ€»CÝìý¦VqŠe 8c ^²WôMäΔö HFÁ„+áúÒ¨íòÎ-•î¥Ñ§Sy@#;‘ÅrñÁ$)'>´%;œ·w©ÛÎò!ÀŒp ÎY‰x + q¼ùÕŠ!H`¥Düêdà7 Bçæ"¨?E„²¾5â}öÓ¼þÀY*YÀgX¦™ÊÊì„–™Õ ½$,Ú*äDBÎÖ!GY>fšÉƒ ]‡âj‰\ˆÓ)Ö%Cq7¥Í'Û°j|õKÀú÷âé’?AÝck!+‰GÃYM$·à1ø@^.VÎÇIT?‰7>õ‡±ö©íŠ‹u»±}5ôŠ£O  CøqnÐM¿¶PÁ%á–Þñ•9tïX¶眢g|ý0ÇŽÌÕO + ‰]÷´ôY“2³Z6Kß^æß} Q©†¨á + QzëâÚ«“÷ð!í¹Ç¼¢.…¡«µR/Çò­küˆb’ÐÉiQ2cþHÆâR ™úS$EÆúHö²<’'²<’Ga}µ‚e3ÎYXb_.Œ =[Ù œ¤øT .í,¤AŒ‹ˆ ÄýŸ@Y¥öHdDÁ‡u†Täœ ­z—¼*úsNõ›Ë®‚ 5!³Ñ¼ö {﹟j ôC`:~‹mí×bã`eÆU5ø\ØÓ€<± b‘+Äâч "’ºÇ£œ¼æTMÌdPe,Áše®¨ùx¬ƒ‰µÊú(uT&öÜËuäéÒCÇÖ ŸÌØøÅ^ŠH†Sñú…=n,8¸£î´¬§+R—a-! À6bÙl¬f‚èþ å¿‘ºêÊÇ]°jýÁKÞWù¥XŠçÒÏNÙSpešŸË_À sšä§²·òÑ)´¨f‚#¶1øPìù.öúÖÌÒ¾XÛ›F¨¨ õ“ [Ìé@8FV“@$zè;¥Ë„ÛóS•‚ÎJ­„¶˜ >4o×6àa¬$‚+€±‹»þ–b†¼à쎽Y|Â4v;ÇkëIÆCWtÍ&Žþz»¢*9K~AQÂåS*Ë‘˜#ÃâÁ'úŸ#Cª™3ŽºRÔº¦ÌX`,Û%ûp$kºýãÇ~XVxÙh1Ò¥‹Hú‚4jËoŽNçï÷ê÷}õöÃû5rIýk(!y,›ºº¸hgüšfbé´‚¦ÌoÎ…K¾]‰¯oñ¨÷Eå;SýîcWž!‘’1–I±|÷nk2kŸ­Þ©×Œ4Äú&Èí]ÿh-ñ´™øÂ×ÃòÏ…ÄŠa˜Ç§f.ÃÊð€0g£Òejžbå·°àçîO; + bí ð¾Ç~I‹© {•‘XÌ4¥ E€#tFŒ XŽÍ]l(_« + pnFŽõ°¿éoo‹fyâ§ðd>ž¨Mˆ@£òLðyéð¹Mч/¼Ã÷•ñºô™;Žåc¦š{lI ,à:Bù 9ýÙ¡y´¿Aýh «_"‹ýKÚ¶p!¥‰d•Ò€ÇAf‡ötFœÚ ;»SÐ*ŒYýÀÑ*mk{REÁ¶ÿòbbhBvàR}AÏí€\Œ[¶u.Ñæ°•·-Õz%Å›8Hÿ*akxöÐ7/PÕ ¡CÕµAÏ:vûŽx&Å¿× ¬Â¿Y¸þ4@ÂA)Ýù5ÿüŒÒdL&, [ÍŸ + ÃúŽRiž& ’¶¼= + ÿ²$Ç^(릷µºf þâ…çgÿKÑìŸ óüO©ýkgd‘·UÛSrS + 1wœö& ðSOT¶‹ÁýÕý݉Úíƒ%,)Ý_S0tÂ3«%Á0´·œa§!¤cþ0MYÞÜîO4ÔùÙó8ðXLŒß¡(ï†?þJÇÛ¾~^‡¢móæi› —2¼½úÝòð¯ + endstream + endobj + 206 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F12 154 0 R + /F13 173 0 R + /F11 59 0 R + /F1 10 0 R + >> + endobj + 204 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 206 0 R + >> + endobj + 209 0 obj + << + /Filter[/FlateDecode] + /Length 2593 + >> + stream + xÚÅZßÛ6~¿¿Bo'kU¤HJDŸZ\Sô~áÐìá’ PlîZ¨,ù$9‰ó×ß ‡¢(Kë¹tû$“¢>rf>Î ‡ŽÒ$M£ÇÈ>~Š~¸ÿöXšhÝ?D¬ˆX–hÝÿåUœ©Í–²ÈãŸþùïÍ6˲øSîëª1Ôú{õ¶+»ËæÍý_£¬È’BE[¡“Â~ýêŦÈâs³ª¶yƒc¾}‘EŒ%ZâL[ûA¥vpÕ 4‚ñiÏÁÜ€®¶³üx —Yô>’,) ÈDêèI™h56ëè%I•èÌöÁÂh–j¨ÊºúhÜdÙ$9 Vãd¯c¿ÜñµH¸poßµÕ~ù=ç‰?ßÐë@¯[ Âêh Êe¤ÜŸ§µlE*ⶣgg¶Õì•ôJÿsOíªÙð<L×”5ödq?”ƒI6[%uüó@ãDÜ´}Ð]µê µ³3}v³£†–ºweM:Ni™Ò.s8Týw mpPÇ(mçV÷zMn•¢Ø4'è‰8Õ€O¿‚å±yh;CV54ª´r^Ü'Íé<$v\i«Lž&œ?#× + ž06qšs®A_–[+Æ‚%›¦ùR–±4SE’‡æûÅ+s8¸M ¼9V–9ØB ±©ë;j·®ãrý¡ˆ{3 ¾·}X’ìþƒ÷ ·ýp©Íb‘2O¸tÃÈ yž(ñüödL&"Ÿ êÚs‹bgN[¶¬O‡ô“±Ø Õni•'B–uqÍV+(\%RÜ°1K ”-´²Î]C€Ìmg`hèâ@¿n3.p5¢¹Õõ~ÒÓ ŽÄ@ÁÝÊasʮܣÜÆ,4Òï í0>4¤N”~ÒEc·LhÐc¤8ªxl;Cª,±c4nWÚšý©.7`ÆËKU’ÊzX~È`u,›aËa‡ˆ‡kDøP‹QfIªˆR$é|•uÕ+ä°Qös(¶Û¥¾ùWw0ýÝèJùjÓÜÑÞö]ÇòÃrR–ó$ÏoP2J²0º}hyïZëÂßm9Meš¡ŽØ*â ~øÃY½>yZÒ+«û \}bTk{jTj×ÖçcSvDwŸ¹M·Ë@7ØLåq{ Øào;‹)ÉBÓ,•è´Ro}ÐïB1B$,ÜS€MîTy”HyîHn+ô–Ýã;úEÒØ×*îÏ´ µìÝàlÕ+¡À»öxª +I FDÓ¯IËp(@›…¤°çÓ"­¨\©Ø’à|D¸ˆßÑ ”ŸÞ”بšåôGDH÷×ñýÁ.²÷¶Î½qýn5ùÀ±±À¸O1ªæ‹¶Iú­“6MÉSù½~h»êcÛ Þ]+ÎÁÛ»3ÍLã:j³è÷¡En¼§í øp‘:Êν <„u*{ê~  nÄK3z]Ä,eRÿ+v±rУaBN>ðEU»\éå…RíòÃë(y|*]:$^o··èä3…½{+‡ä°cëš$w&™“D‚FÍËå÷îmOË]×ZO AfóšË¼¡1|;O/*pü{óÐ'‡O¤^[™¦ñ÷§S]íJkbZXhÏõÞY›C”’¡š:óЕ•K ºöHÚ8÷aÂHþ2ráýÿLì‚h* ½FM`WÌÄ…Â=3¶)–ÎÓ‘#¥íY<‘DätšAa¤ì + ;u>Ã9ŸN /_¶+{sö!Nç&ã0 ¿e Ý¼˜¡žV¢/0õ²JnÉϘUZâ&>c¦ù$±2&ULÄríÄÂZÞ$–uÄšŽÄ + pÀc@"ù~ó4·@êp± ŽãYq ŒÍæ+üÉÅ}ˆ¿/¹\fëÂÊSôÊ=½Ä'è•}MzAÎÇ‹‰^Ô¾E/‘ñÛôAGz… ž^ξz¬®×§™5‡Òs¤+( Ff3¨?ŒO:Ã2ßóÑÉ%°¦#ÎpäŒz&—±Að€3ԾšnÇ::r&õœ™p s›ãä + u5á uq <83æÿ ›Cn›?CíDRUgJûVh‚‡~ö$M€þbv>H‘&øð^'÷^‡K½ j8væuìq«ŸÄb|ïŽ0°í:ÓS¨lªŽbÿuøt ×´Ì2H ù×祀°’뉗®}ƒ—‚Iô&·xéA/g #/œ§xéq/ç8Ž—Î,ä®Tm!m~nòD~5óì5µ + =Ë)Û‚ç"ÛÂw‹pÈŠ13¦=1ñ#:¤±|•˜Ø¿{q¸Çu'If+{á±ÙsVJ<ƒ}Î*ȾÊÚæ-Æ™ßf¬ƒ @z¾N(7bïäBï ÈEÞèÝFa6s^¹È‚ýž¿?Y™JŠbv¡µÎVýåá6¬¹Ò¥'"ämþFãÝF + R†Íã1¾3'à§;`5-æ2”AÐÙòä”J®¤‚ã‡s±âñ?ª~gêºlL{¶5F¿Øh>rpY›ñ‡Ý"Qòo1$ÇÚ«¿Ä æüûܵ”-,\3Ž ù¤ ô•s ¹œ½­š•û©ŒOW@Ÿ(OƒGúM•êßÌ¥7ÿuEéõ!V7âoær,OäNTaA“;qo®KÙÁ×*Ù¾hýÊ q|ÿa”5ld1,÷lëÚ+äW¨4šë7ëQ¸%q²Dë D†STSݼ¥Ogk“çsjÒÒ¹©çåM=å6XB?‚¢M)¿À%ôÔ9† ¬>›½_ÞbjH@à ¹j€yuU³ƒAÿs0+h™Æ£×§u'’™IùŠêöÈ–´°Ê[L”3ô­·4œÖã$﫺¦i\>7ÎÙ›ŽŠx~¶Ú™2禠kVf኶Ø鋶.$ÒÞ›t8zÆ=:³] s|çª'½Yl¯¢ð¾â×GÓàqåW´éêÕ¿j°W&ž¬íy {¶åH + *Ľ“óõ> + endobj + 208 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 210 0 R + >> + endobj + 213 0 obj + << + /Filter[/FlateDecode] + /Length 3156 + >> + stream + xÚÅZÝsÛ6¿¿Bo¥2ƒ/‚ä½µwM'7ýšÚ{H2)MÑÇ”¨!);¾¿þv± 7Mç®/¸Àb÷‡ß.½±«»•ûùnõÍõ«×j%EœËÕõíJf+©ãܬ®ÿù6úÇ®8U·Þh­"õ÷õƘ$ú¹kïºb¿¯wøBGõ°£Öw?þŠ ýRÛ¦>TëÌ!#®ß_ÿk¥3gvµ1yœ¹ Þ¾^g::Ê¡nï±Ï«×z%eœ'¸˜®„ë\ê!ÕÔEéØHîÐ5n–o¯ao‰^=®g´$q’¯ö«$‰së›Õì}•Ø8×N C%kk¢¢«‹›¦:S'…‰ótÒ'EË3},)l¨ð¦>lyÝz²³V1˜šÖý.wî_›X~[¶‡~ û–»¢£Ö‹^âK~ã;™y§æT-çVRÅYâ'_S‡À6:$`8ðIžðCq¿VYªe ;×È‚sƧ‡u23Ì*ÏÒÁQA×dÞ5˜ßÈXûCßk•Bw7ùB§rª7¬f½oÍœXçÑõ®îiÑ7ë êçéi—÷¨oéwÜu7ÛuÙî7ÎQ6 + &R9™-q³í 8{èe£ßG¬qiU}Å®«q6šË› + "0.î2è†Ôÿ+štWli+¼Éê@òêcUž†Š—Vx¿‡Å¥JÐõ}üOCW.KO}Þ©$m*Òû¶ÅsU¹'9œn,ÉbZè؆{xxð›CÍ®ÿºnXvõtÀ£ŠïÙùÅ¿3ïÖ1! ĺ€PU26öCÍC[o/`MÛü“X“ÅÐw“ÛØ 6X…ÌŒ VÇÔ#¡F + j`R•Lê¤L0&æú¤´±Ö¡ÆíiK¨@{ö @Žý,ÈA¤uöDO¢9èmmlÕ3"s€BÈÏ8x!ª–ÆG“™E“™Htt(ö‘€-M ®;’•§®«È#¨?¡DHOÏC»ØªÊel§[ãC{úÖ±_ìÃfq*CèH£7·°-‹=žâvtšÅ™ + Ýû"ÜjˆñŽÃE§°éö°ùOÕµèá™7È›ÚÁ|j¸§‰nÛn_ ÌÐÁ3ˆûS‰6Á‹9UQAÂG9 {"ù°+¼ºÆ—+`È é¾ØV$>÷loIr66´¥`ãÏ`Çhß;Àñè¤nТÕÚ~qT1Ië€AðóœB ÐÚÎE© îWi‹ì\ ¸03E`í가Х]Ræã¸I™Tb¦êbìþ\ìOêPlaçLìPÉ™¶¡ÞW5AF©gA&™ƒŒŠNŠ ®”O ‹Q!º\É7*M(T\–ˆ-wÁ!Â`0™³…S*a˜Ò£‚¦oIäɽ;Ù,‰S³¤' B½g+ÌU†ê#»§[†6Ó«©ðI“‚M|îîN{žú/®pÈÇTÀ=Ïá*u%÷ÏÅ+¯qÄ«™Ê¯&¥YçÊ ^• •¦Åú$\Êz¾À5\2Ëo4òs ¦5Cv¦âü9„±®ÂÄÛ¿Á9Ûs™ONç¿CC>*€*è8÷‚g®äA×KÔ :¯»5ñ·èH9‘>¤Õ¡_¿kO /GD68K(~ù¬ï?àù|@ä¾È‹$vt3—ÕXˆÝÚ,•N9APš>¶ŒÐDAØ¢!c{å˜õŸeø&Œ{ZKø}{êJÌŸ2m±Ø»1Ö°y±u6¥1Ìô¾oE ç—Kή€o¥Sñyi´¥Á`ˆ/‡‘eŒu¥^—20MùœNäYõ•óÖ³šu>!ïsðœù™Ã.‹úàƒÙ–D7AE!,{ –öËs~˜ñ…p×I6MîÐæ€ë̱Ųê]–˜3zÂ+J{É€,2 MðMײ«B(çË\;Q—m“YLÏ6*N³3Û` á :d0W_ LÜӻ¯§«zG-r÷±b\•„91¿xšn¬lvÌô¹O%žÞÓŽµ²ãŽG“MYá;3}lt× r¡‚s]4¨N?ÏÙd²t6ØU z¦~¸›NØeâ$fLL„öF¸ë˜3ù$ÊÕZˆW ÏÚÄX9øªg¶×³îâ2ÆxÏ™Àü‰–ýíO¯—ßwÙ§ï;Ê¡ñáÜO~ƒ‘Œ$PwvV¡ ѳÎNü9SŽeøéÿ3ŠK¡s¿¶ýþûåâíT½LÄèì/ V¸…䃟gäà + ‰Üö3ÉǨѓ¹JO>¥ÏfK“:ΖÎÔq¶¨ë*ðG  øç—V 1Ó·ÿ ÉÓX¥ó¢s?8ä0‚/Q#² ²œ¸%©ûâ>cÁÇ»den›AmÕ;)'â‹-6.`Šµ)ÿ›Ê÷>OB¥aùbVÄóv·QžùÚ´0ÜwÑœŠ?y…• ’8ÆÝú\JH!^+®ÆB‹¸Dó„.+Õ9¡_ž}ý„žN鹘ͧ/ðxý^>q³b23–Г/@ñ|B‰ lq]=ÕÇš[tZÐ8Ò€½D܇5Õ³©KÍã'üƧÖGËßþ ¸ÌÎ + endstream + endobj + 214 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F12 154 0 R + /F13 173 0 R + /F11 59 0 R + /F8 50 0 R + /F1 10 0 R + >> + endobj + 212 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 214 0 R + >> + endobj + 217 0 obj + << + /Filter[/FlateDecode] + /Length 1030 + >> + stream + xÚ­UÛnã6}ïWè­T1)YÜèe³»E» + ïSS¸ŠMÙDÉ¥èdƒ¢ÿ^‡’©È¹<ô‰äh.çœRALã8Øvy|¿¼¸fAÓ" –Ũ„Ó" –?þNø<ŒØ<›çäý§ÏaÄ9'¿‰rSËFàégy«Jõþ±ü)`sšA”tnƒõœÒ”T‡f­eÛàI‰J(%6xÒ-¬¹ YNaÏûÀŒÜ‡YFÊú ÐÞVPçâš{h‹˜ÎŠ ¶U½Úˆ½û•ên5”µA>EžÑ4sAÝ®=ÔÌ-°%õº¬kƒ˜EœÍh’‘Q&AeÀ5'¢j•SAó”ìU»UåZÅ©;çÐâw%:¡G1fcðʦ¬ÑÃ|ײÙv‘'иäž7â1MPcFSšð0ÊfŒ|g¢óÌo9½ûRÞík1Õ …C¦‚ÛL0I ÙáZârìœvr ­ÚÁ1'¸/›­èÐP·!›‘‡tTë²#?U® Uç + ‚@J£‚T¸=ì÷Ø‚!Ôìÿ>H7¢¼º;Ç®8Ǧ”Íb˜Ë“{yØ ‰ƒÀ,êÜGMÃ( ò±r~;…Ô`‘“Ò~ŠÝô´‡DŸüÏÉÔò4§yâð—h=íN Æï_Ÿ›4x+\UmïÊÞŒˆ›ÎYJç + ‘Ù˜%iÌßZxÌ‘Þ 8;g;»öƒU˜Í ¸Ÿþ§b,9˜rbÔÁmA°Õ­lÀKSìöƹYÿ)V¤4=Š—à ŠñêœâfÄæÙ„ÛlàæOq/hB‹Üt¸©ÈJÛÑ%®ÚÚM¿EÏ9#Iì¢F³wŽÆZ”`¾¼‡'d}P]«ÐË>›þûR—>‘ud2L6tªœ}Ã2°A¢°¢£O?üúùÓ·–3òµAGŠ†³ «hìßRÙhߘ9#`XAÕ¾^€ì†¬Í}Òç˜ì/ñxö¿š‡;üOüØPÏ1ücíIÿ/[ÙY1¡ú´Ó¥ê“ŠfãvrÑÓ0|D­#_¢“ù'í͈kß—ˆ¹êIöNru 5ÅãPõA5}†ø&tTã©2VÌý-.ñsÙ'ú l©„{þ Ü’Å´¡^±ÞÍšÆ0þÿ>cu'Þf<™èÀGÃ~-á}ͳè-“IWøÞY[‹ë]»‘Õã ãí² €†™ÈÈ7¸Œ:q†Ë@¦od| + {«ÖŽÔcX·Îþ Í¿ªñпt‡É¸zËè=eˆÞ‹—ˆ÷©êùõ^›Ã§¥âקÜÓûòrhðÿx¼W¯ææ¡.»wûÑ-±ÙÓfù´†ª'îÝ í屺½[~õêW¡ + endstream + endobj + 218 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F1 10 0 R + >> + endobj + 216 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 218 0 R + >> + endobj + 221 0 obj + << + /Filter[/FlateDecode] + /Length 2503 + >> + stream + xÚ¥XY“ܶ~ϯ˜<™cïP$ÁÓ*W*qly]±|Ê×–Äì â,’³«MJÿ=}$¸3+)É ‰³ÑÝèþº«À‚ÕÝŠ~¯VÛ¾ø6Z…_„«í~æ«PøE¼ÚþýwïëƒìFÕ¯7BD^ôåzlj÷SßÞõòxÔÍNïAn½zý±÷‹’U­µÞ„y„ž(Öl¿ñ­˜JB?-V›¸ðs:ë=®XmÂГÕ&Jý¨ ñŸ¯7I{[U×ØJ¼~"Ž½ñ Gn=˜ٛƱ­ôþ‘øä•f7_Ñqaæ‡*ü0¡Ó†–—hKSÛSy¯žÐ95•]ÞìÛþ(GÝ6>|þÂÈ3ŸÀ:íë›_±·ó†QöãoTMµ[¿¤ÍéAÐ6 oWk^ø•á ÷¾4lðïÏ_M¤ìÄ_ìÖ,1ëwæçßO‡YzÏ;wÞ p|ê:Õ—rP7†QÔãÍíi¿WýïúÝúüˆÄŠ¼\ºéíMÝ>¨þÄ_.ìc&®êÁ\Ç’e¢÷?°:ˤ•³E~árüþI¬¥ÿÐZKëZÝC¥µí±ÚýSë–ƒÙSd/ËÑòÝæNUK žH=[aw^¥{U¢m%˜‰”G¿LæÆ™çß— ;uÎ4Æ¡ÆSßXÛž¿è÷ !á*Œ}#„l¢Àc~Ñ’ÈO€P9ø#²ÄûUß5²æöw²Á™;&æ_Œ¨Ç$‘oó’Œ!…ÃcS®£Ô;ômÓžh:õÔý:Ê@þu”{£°›z#÷ðúh?ÿºú°¸Tƒ9á)`&ˆøW-O¦”ä‘'¸—Çu.<¶„%l$~ʺí"Žz¹±ÔH]­ÿ“3–ij†qßÁœ0 :ì+´ià 6’}p—R("Î}fôˆ_´h¸C‰ þÖ/#ëÎ;Ëic?J º‘\¿º~½=‹2b—]ru¶?Ç@6íÿùÍõ9.4ÿp&°ýæ—þ{ýÇ3²O$°ýuûÓÿÅÁv{ýú#@ ƒ½Tg”DèÂ%õã›ò²[~çÚ¿‘ÇG´d¡¬À$È + DùP"9f>Š ¨ˆóº±£Íßz? áT·ž6p{²eg¦ìà탹9msÐz.XÒlk—·–1rKHý€X@Á**r‚%ü«]”¤ñ°Ç˜ß#*=Uq‘Aj˜<Ž=zçqN½Psø‰5L + ®’ð9sñ;µ²" &0Ì*BN6wã%->pŒDþ Ç‹L¼¼È>™››PŒÈOÓ§b ùMb$”Y!à ÉÃíÔät08áWaÒ§"±“)Ñ!qÔAf0̲•ë½™±T)‘a2kK»ÄŒWÌ4±ãÐü í%sBVæ*v83ÇtM»)µ°J«t£G¢ú_Š N';vŠG³‹žÙ ?\§¦ßIqø"+O–˜Kr›’ŸEöQZqv­a*üL|ˆ³y êb¨QêPYàGü0pÂ|áè &LRAy† Q•Ìâ swŸ*ªJO‰2@x8$žˆj1^¯¶9Í’Òq_)Oƒ%ÑØÊVtPci ½e'E?˜2ÑZdu°sÊ$‰ŒIêú‘7`Ý7(3‰Z¸tu•Ê^w6wˆ L..#Íç õå¾WŠ eJV.ºYæxB00?uK‰9b´yW1ZR + “uGiÆÙašR}WÍØw²RèM;Ìe^¡jʞʉÜO²Ù¸~»~ýõwçq%ñópQQV˜ËLñ2£Ôø<?—vÌbÆÀSq(‡±¤¢ðEô\ŠŠȈ`Ê-2ÉÄšp6¹ãgféÀ ­E^Ž{vœ,á.õN»š²Ê° 7Ü!y’Ê5¬r†²l΃qÍý²r¦3(½SáÆâXäx«,| n,¦[€ž•àÉx¬ívkÃù°ÔÍŠ9†OÃx7™[¸AÃ=ª˜“Ûú¦¬•lNÝ© ¬-uåT}Ã÷{1¨åŸ + 8Mh«¸‚v]ŠîŠCª-´ç‡XË÷+)ô\óôrÉ-˜ß2z Іƒè\¼•–î× V½–·5¯±56¶@a‘Mw@~EÍc Ú:¿okž€hÅØáˆ{M;>Src‚/R›‰“Ûqz…Á®êG6žT8åXäÅF9ò4qš’.> + endobj + 220 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 222 0 R + >> + endobj + 225 0 obj + << + /Filter[/FlateDecode] + /Length 2600 + >> + stream + xÚÅZ[—Û¶~ï¯Ð[¥ !.$Ç^lg{R7µåö!›ãCKÜO)R%)«›_ß @‚—]¯ÛÄyY~ƒo¾w±(ZݯìÏëÕwß¾+1ÃW»»×+.™Q«ÝŸ\«h³:Öéúõ›÷›­”rý6ÏeQåTú¾øØdÍÃæ§Ý_V[ä«­2LÛ—³ó¹,öYWÔU»ÙªH¬÷‘®YuŸc™¯»cN Ÿ6q¼ÎÊKÞRC}GõСuiŠìcÙ÷ªÊj¼óÊ ‘•0»{œÐ·¯ä°,)RfÒUdgÖ¸5Ü®o7Ô30@œ2‘¸Ž/”ëuUw„^¸Q2Z°Ô1rµƒq2X[ÜWYI¶…ʼy%µnë±ý~ßR E²îòƽ'Fm—u9î;|Ø×Ms9wùÙÙH0ö‚)Ú€ÿ±ÑÒÛì§Þ$œ™ºuoÐR‹ª£\ ]„:4¥æå'–«ë*æL«Õ6åLˆÕiÇÌ$¾X®Þc­â„iëÜ”ÀöXãq‚¥ “fÀ2’Å|‚eSiˆEvjg¸U)K4íJl{Þ€;IV>Z#Âx“ò–Áš˜ÌËS0oµý9ojÜ6nBw‡ÆkQ–PT°5TH‡ƒ·ëí®næ®È ãÞªïn^ß¼ÙÍÖ “qï„S„„Åbxÿïïoæ + £~œÚ“ÐF´{ùö¯_”°$fò‡ïÿ€tؽÛý°>`wóæ33°g6i† ¡GP{ÿ$»­P cË&¹mØ;ò»ìRºãÚsâ¦0fXKS~À³rü𘗠åÏ®£NSâ‰`é×'.­z&på1`eœ>‡ z8Gc8ÇêZT€È ñ9œ6sœÐoPÏ ÈÍ=åœ0 Ês‚¥rÏ èaŽöç + ‹Ì b¦õà‚ÿ¼yó§ïæ>Æ.(íêÀBâWqA´ìܪX¤ª'Ü + ®Xz¡µ¸ŠàìaGêj8Ô¨6ÖyKíè þZ´Gzêjj:f4?m°7Õ„{bȵ ¾&5ŽÂãÚܽT !š~iF=i9°£ÂP_ƒ8—•PàC¸&zª­`ÇaFX¢ú±â*n×3ãóT±€M¿{ÿÃb\ʼnJ¬#YÄü?Ùé\æ·ÛN&pnjÿSq  ~°fù„òªÈ«}îv.ÒîûÃrw©öNÇÙ3S“sj†œGUù>o[„¶TÍ©èÝ9÷1Éãe̪Ìi».gªÀ_Øgë$Pl`ˆâÜõlÊœZ²æåD:Yð² [É" Ê!|ª‹Ã Âñ0Ò fÐw+dÊ"1ÀÂÀоìx+‘Ìõ†XЮH Ö9ÆãŒàqØTL98&žý2»ÛNÁ,N†hÀˆ&ž¡A03ã :#[„de˜7Ö‚/«!:¦ £­`Þ’ "¨L#µ>¸#¢NyïXžá©d¡£GòÈtð,x´Î¶Úá3R¸ß+ºcæÿH§.Ÿó7R³|N’±u]>¹"›ÙQ·iL~@Ž‚£KGàOõpd±.r«Æ€EDÀs IÚòVS¨êû¶n´CN.¯˜HÙÖÖ‚6ô«(ܘ0yÃüV”bÚ|‰²ñÚwQ§AVÀŸ£Lʤ…K“X}ñõ‰Áh !1PyL €©È»&ϧÊÄnd"–ÆS ÃYÊGHÖ+&tÀU8$Íd:ÅâªH9£5göêÿ¤þÀ>Õù@ ã@ɈlfŸ2c¨Ã9kº"s}#ØN-fåp–öÔ¨òZtG|ò×Pµ¿4MnƒRG€Eu¾tÔæ",<Ý‚ aDÄ碂c¶ Ï + ò“•;  æ˜ÄÁP EÛÕÍÜÈP/ ^MéÕÄ¿Z>l]×¼±‹¦Y¦xøhWYgÍ OÙÞªÙ8Šˆ]°ÒcÎø_{üÈ‚"õ)oŠ=V`’qE + ð·¶Ùò’bÚ+|¡=Ö—Ò¾¯iV9ˆñ¨ÓÓ±ðôcø¼œ?8!lƒ©ÛPè˜f‘ˆ5¼ôô°ÕJ“vVI¨)U¢{FÅç^Éc·%%RŽ‹Ïäø†)?4®¾%lJHìSMdnûšŽÊž…áX‚"Páz½§êuçµ–õT|Ä¥8mZä´Qú5)PêÍÝS +(ë”p!ú –ÌM€„üΧH@bB 5‘°Í—œÅñŒKaÐí7ÒD1L$YÐD¼WAEBQx^‹Ÿsª!‰Àe(x šd—öþ6KÙ© + ¨ + >¨ŠtÓȆíœBHI b¯&)ÝÄ=©LúKJ‡/Rj’h Û³¤VIk4ú “Z… 8E›tùÛ[ìHI->4ãr+¬íÆù"@£óç\ð QŒ+gq„Sæc‡$¡9¿S‹Yª;Á1_ò‹IêH¸z¯Zä×$³CPK<)X¸»pÜ?´{âÕr‘󔥞7ÑZÂØ{VÈ^Q½æÄê }y°±+Š®¥gT… þZß´/ûóB7 ¬Äˆm[:b`SúA©ètÀ}B~v¿ L¯ólªKZßÝñ‹4±*ñkKW¥[OÛT±6V™Ô³6ÚeBÛ°iéª3‚1ÓÉ+Ü1WÆɸÁ ÒwtcøþlOò¡¿ªÊQö^#ßkX_ö7ÞY>ö·QÂf‰ŽÕ$“’ gëÓ„.IÐ5U^ÎCùWu‰XD˜ô>áÊ#§Àº„NÊ,Žknõ|£cüâ1ÑöB3Ä!ƒNã8:ÑÅ…¶¹õ‹ÃªR3sn:qŒ´gקý + /ÊéœÖ×ö…—[må¾öá)ĆÔ3}* Ø>"×wy÷ÈwCK[á%Xï#ãk7ïw + ¹făÕF!ÛÛ…ë<®Š8pˆååµ|H AU2Ù`1ŠÃ):\NUë#,ôIÒÙµ1¤2öÚG×ÆPDX,Òµ1<\1 Éz1 9–½âIÂwP™-¨ÎTü Æî÷2øÔ›Búrq3(ܔڎԙÚgh­Í8qEåä<°;QN¿¥!‘ + H°Z¼}ñ´k(çrg ¤^;¹¬ ûüû©Ýð…ù7ºR!òÆ:à*¹ê4Yí~N6ÂÞ‘ö8À+z + £)B8M‚»3`qÙdcŒ†©„ŸªŽQºùf‰o¾Y&éa‘q€;£ã¼Í»KcïûÌij¢Þ³"çYÜ{VÔ“Žïê½+²ÿ4a{ø®“åÀÜ¿?÷FM¿}Àf@Á›†…LãäÒ_O(ЂšbðÙþÓØ]]–Dx}v2ùÎ1þ GŸ/Tx ë>?ÍàÂg?7¡—»ßý/‹÷Ï + endstream + endobj + 226 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F12 154 0 R + /F13 173 0 R + /F11 59 0 R + >> + endobj + 224 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 226 0 R + >> + endobj + 229 0 obj + << + /Filter[/FlateDecode] + /Length 2853 + >> + stream + xÚ½YK“Û¸¾çWè*eqIàcsJ{wRŽ³±åÚÃzËÅ¡ c>fIÊãÙ_Ÿ~‘EÙŽª\D 4¡MàÁænCŸ6Ý÷\mÂÀÏÂÍþ¸ ÓMù™Þìÿö‹÷ô”߶Ûî¢HyêûíNkãýÔµw]^×es‡‘÷P'nýðò 6´÷Ê懪lìv¦&=nÝÿ}¥‘ŸÆ›Îü”6øåù6¼sS eÛüŠs¾{mÂÐÏ + ³£É& Ée3ðŒPÍSTäëP&tíòlg3ÑæacB?ÕÀÅø&ÛÔcü,»Õæ5œ}cb?‹ˆ‚!“Þ\í,«7Iæé—”©\Ê»&¯z‘7šõ«â³¼o½éÄÓ°¯´Œ~hËÃz½RØõ[w®o —‚oä‡|‰7M?äU“ÎóÇû±È‰mãòæPÑmCçØv+áÂ({¿¾ùáæå~µ¤ýÈÈ”'+‰%óú½¹Y3Ðj÷¿c°öê_Ï üåÅ·0p%x½ÿé+ìtã1ß™ío^~%#¸ W’ý?ß|ÁNÅ™w¼â¤b? + gV?ß¼|úãšØv¸äu°÷ÐH=Û ”Ñ^Ûðw8Yn|ØÂO^mýÈkk»Š”Ÿ¦“¿+ò¡8½[¸#H&6ZáµÓ ùN.`V<ʦ8­™Â½FÂÔ'ÿW&ñði˜@ýÁ*KýÀÌ`ÅÝ%X-b‘ŠÊæÝŸ4öu<óÉ€œ^ðÉBßh—ÏÿWæ‹põ9´ + Ô®sU¯lÝnÁ¦>lUâYŽ<Œ^Ù…2.$Ìq{˜Á³žGJÆ@{àîíVÅÞã?Ïf;„P0ZáÛkâƒãÐ58û&óÔbàWðQ~ÒåÇÛ‰•÷ôÜm ²$Æ{ÚÖ÷•PÔKþÀ*C ÌБÁ•òx_p–G4Æ'È#ôrøÄÚ»çÈŒ:Ê&w ¤ž›E[× ˜ž§;" + sO Æh k„ùî“HË€CÙÞ@¿-ïÎù€H€¹éç«u6Oˆ¨qȇÜßîâ0ônŽLzDví™BQê †JYÞÒ¥Ãh+kà½}è Âv#Óþ¹€2ÿPd}Áú/[™ Ó£ðšô¨r¥Hjj‚"PN€UíPìáäc¢z{R* Ûª¢]8g + 3È2Ezžp°}Ñ•· ¦L:ñžýˆöÊú3G0ÕÉHù³ôZ¤'æ­v—â3CËߥ^pàTŠó€I|( ;[8 b†öÉ›¨ƒØ·²…ÿØn£ÄOôhâ|x0ùŸ·™­½¿nñ‘kñ7x+ ¾;aB“$†¯\œå^ßÖÒìÇo&MĬv<„@«*ûAXù{Ï×Ö÷åme¬å‚€Pãœy¥öæ‹‚!r rÆËË*þÊüÅyÙ!@#2"ÈÆJaHš†¦ÂJ&-ÇŽ¼¼(Îx}Õ#ÓíÇ{¶“Õy7”„@{ Ûéh†¢\½=Ë.ï×*“ha„uCŽtÕ.åK`òOØèT¸ó‰»uþ{–{½mzYV6ü¸L+À_#8’É´8Rê–Ø«ÊÛ.ïy•c¿=S†qaÚ…W Ò¸°÷˜€¤f€¿ÙžˆnIɬì˜èM¼„ÐŒ j¼º%Ka.5Ë‚£ ¯d=ÔU&H½·qT¶Éká"¹ÍJ÷xœ…(˜ I‰"RÑl¸”EF–†Rû‘/Žr1>òW\F™x„fG°Nf½‡®DoÃ3 á[Q³A˜:Ó¿L{f + Q„ïYZ¤Ùy1ÙcÑÉö‚ëΓ¡A®0i•Ç…ÁCû„É|™‘¾4L6ž»áAXìÑ™c¬ùXlÛ PæÜ@î¬ÐjðD@„Sh€¡ ©à + .ü²Ã#.Cô©ydÖã÷¬¹Œ3¥Øç + 3Ęi2vÄd»R|G,Z'³­Ón£°\ÓnÔ«¹ÁzNw) _&x•-¨7R ɸ°ÍoØFy{´t:™ + )‘r¬"ïîεeïDeèèŽ&ÍÛ²9ä @ÐsÀzŽwqØ + > + endobj + 228 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 230 0 R + >> + endobj + 233 0 obj + << + /Filter[/FlateDecode] + /Length 2882 + >> + stream + xÚÕZÝ“Û¶ï_¡>•òX ñEO­ÓÖi:ž<$—ÎdìÌ•'A'Ž%ò†¤|¹ÿ¾»X€EZ>;SwúD‹ýüíB«,ͲÕýÊ=¾[}{óÍk¾bYjØêf¿bÅŠ‰ÔÈÕÍßÞ&’¯7¼P…N¾ûáçõF‘ühËݱª-ÞTwmÙ>­½ùçJ"-òÕFš´p_¿}½.Dr®·}ÕÔ¿âšo^‹c©Q¸ÓÆ} W™[\Õ=­`|\ÂE*™_ÐÝ.¿Æ•X=®K TTªÌê´R*5yW?ÁÁV*OpsÀÙ6§‡£í­ßJŒçV&å…ßê]20^˔ˈSwøê¾nZû2š­?4ï«úþö½}šoÔL3öYÓ‚HüÎuªÙjJ`¤„¿ž|žôÿãqÍó¤iw8RIév×0AoïPq‰Ýƒôâ&àuUãg}ºÞH%’_PAÍ™>9”kXñaßÑLw~x8VvG†÷^¥ašöΓ]C›vãzÔXF‡Q^xU_•GÜ>Kº + O†¿Yr*û-²vÑù·öhý>¸ <Þ7mÕN4|ïíLM\äi.‹¹õú"·¸ÁÁvï–¤ÎKs3h¤£Nnü6"/R!âcìì¾<ƒÆ;zö =w ™Ä;®ôÑÖåÉ;ËÈLJ£tš3Tyš‘ªßþ R¶Uyw´‹“ÇáŽgë¾}ºEÜ"?ðý‹¹#1!Ó<ÿ˜'±\¤™YmŒN3 ®ÄrrÆÞ—‚N + ;jhJ 5ã¤ì’—YØѳõZð¤÷±$¢¥¹‹*9 >]\’Ó‘ltî` k–Çvs@ J0Yzš¤ÄGqá3¶¥E¨f|ëüÜÛÚ¶eß´4ÝI.X)œÉü>+EU&ù~?2ãmU¦ªˆmõÃZA|8ž[_4û?b™—Ѳ%‰VÂMä.©Â¢û?¿y3#ÀUªƒ¯ÿ 0žg$Vü1øÏÙÄ—ðå(swj. + 4‡èÔí—óP®1) ÞWD7>yøxY Eù‘@ôW>H#“sgw ÃUòÊKŒ±ñS É)ˆ¤Äغ-q›M÷@‘s[á9·^“Œ§RƆ9œ8û¸‘›ýwÐŒ[\âƒEÖ‰“‡¦³ô¢ÜíZÛu4¨ü³ì:Èr˜p5XþLɆ§B]1¯™ZÔÏŒw€2H·¬w:=Ÿø³µý¹­é7˜¶t¦í"0‡Èé¡(‡ ì Æ¿'y7pº»ã,:w©×"!ˆR5tL/-¸c§ cP~ÎC‚¦Œ¨Uòzmx€=ÝÜ|$ZφÞ Lò¸¦D"C¦#\q£cÕõ´|˜Þ—Çc¹pZµx 3ƒzÁÉ ¢õ$­Ê¯ Îg%ˆóš¢¬ôUp¦ÃG çÇS$Ç%o3ƒrq.ƒM5È1èO]Òc 4É&+Ê@¶­Ëã>dÈÕgáÃG@F·}s»kæä´‹WW``Mì0# ”óÉ'ã5Á@™eâ¬ËEðœÀ@üÎ~EvÎC3ñ'q†'å+5æcÈ/ÀË0#*ÐaÒq0!˜ôù˜BGLG›TÄ„ + Žå‚X–œ + Âœ$¢1bt%âקŽNëøw‚pIž»Æ¿$éßI‚Am|´Rà÷Eyܶ‘:K^~¥ˆ«Œœ¦ÿ=3ÇyéŸgìC éèOH''[:§…ŸÞç¥çé{T2Ä.y»€E¶ÀìÈB…sóêÛ¹õø~ΈµðìzÊ%Øå¨ ¸­4Ƹ™›F6ð8^|R,f¢ª;Ûzy@è£$÷A@|ÜÆsÄ!¸¥Ù?±ÞKgWuGWG=ÑäÒK*K'°Ì±­CA§õŒm˜ŠØÆ2³(’Ê}åð^빬ÏSf $«éWS[ÿaéW¹xaì`f=þh!Pœ\æ&ËÖÕjQ'” AsAÉÂýË’,ù(Kn xBIXK,b3‡7ÜäùbD×U…ÇÏTrwî‰æ…”‘|$eš ‹ë¦§tC‡(`U€sTáÇ”¤Ó6“¡ú¢cøtÜ´Rùûr7$k„‚¿…JQ9xûµs2X0>Çæ + /º+pVÈ ÿí•Y^U!¯Â±½‚½—F”Ï«ðvšWŸåÕ6¶W¸k¯ ‰¡½¢ëC{) ;Gõ£›{»öŠÆöÊÌ!)†@™4´WàÒÐ^ÁÔ^Ѿ½‚3Q{Gí~¤½‚½½â + W5veÓ_Òs…ʈÇjùÌR4K‹û79T`7N*FDÝ(Ñ\¸4¾[c|·Æ\tkÌ´[ãÉQ‘ \Òv±wCœïÄ5fºñ<öŒÙ¡ÌeaAe€&¡"|ÅS¶÷ç“¥†¡øõÁ»Þ‘naU³P{2p×!f’º^Ÿó¦ p& x „/K*sð€Li–>à,”CnV;ºïy?-A´,:^ˆiÆ¿~H“ˆõÒüxÒpR{äe“àÕ€~ xi² @-¿$Ê@ übªq6˜×ù˜¿ž+·Í¹î?3TJ×Ô¼*¡´×&3o•ÒW¨RªËtŠï¦XKk“üdýêí¶mõà£L,4£¸”c—+ò:Ó¢ËÄŔ۲==ØbÙ5sçºÃ&£A2l!kÊe±SÃ?í³¾òCý¾€Ò³H½×kò#&iÿ?‚:°ˆÜÈ /¼(w¨…¶qÀ}J ì AM U’s¦˜Ä!–O(ý÷5»j_ÙÝbdá!²QÐÅ­k1a¾ºró™¸ô3×ôÅø0¿%ñ=ƒÓÐZ_:‡‘þ.â›ùñ>:4þ‡’a¸_èüÝ´ YŶûrkýeÊ<‹¬À2íù^L1?F‹/Ç*Ûƒk á ÷·Ìãäs¸´J96Ïs' ÜBc¶ŠÌÝòçPÕ°âPjTÑHA¨EŒ?¥Èw×FIWˆCEq° ø»üY±p 6 ‰#aoë_Ž¨ip[þ¿~6N-DQdW¢(3î? Q좨dÊ¥U÷lÛ`¼8tnÏ®o!šùµ‡Šš4¬ |ä.ÅO°..Ûãˆ'2PB0D”ÐܓͱØ7Ý«³<ôYé–æêÆÇÎ.Û³~mëe1Çùl3Ë·ã<îú•«i,51„´Nýë~ç¹í“ï»Îo€}:pàš—0ŠÔ0öŽ‹quw¾ëúª?G6ÿ‡ÿ£Òø + endstream + endobj + 234 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F12 154 0 R + /F13 173 0 R + /F11 59 0 R + /F1 10 0 R + >> + endobj + 232 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 234 0 R + >> + endobj + 237 0 obj + << + /Filter[/FlateDecode] + /Length 3169 + >> + stream + xÚÍZK“Û¸¾çWè*eq‰7˜œ¼ÎÚٔוŠÇ{ÙÙšp$jÄ*Iœ%)Ï:‡üöt£|ŒfãJªr"F£_7´ÊÒ,[=¬ÜçÝêÛ›oÞòËÒœ­nö+fWL¤¹\Ýüù§äÍ¡xìÊf½‚'üë”*ù[S?4ÅéTð‘|†Lþ^»cu.×fUÆ)Ö?ßüuÅmjòÕFæ©uô÷uƒãß¼e,â@§|•¹ß»ò׎&Äæi–û )°Äóäæ;q›'My*ª³ãŒ[›”ç57I×TeKEã'vaÅ#|LR·muôCÛúôx,»ª>·H_d>®oŠ5×É욤j=µ²q]¹sÇÜ•r8'’‘ t1œG€¸…?χOïßÏÌuªÂd×&uE+›t.¿ÎR©aw#w‹P ÄðÅq÷Ý \½4«§•á©ä0_¦y¾:­ŒJuºÇÕGP•ÑŽ–VÖþrÞÎ9„•Ösˆ2‘î îƒóQ”Ô«÷ø•I‡ì?!W5pìCû + š + d|ÞѤ¦ì.͹'7•õ¥-·‡Âëèf¬ žr=h‹‘’niÞreš¶ó4—“Wâ N2.\{ªÝ­º®¤6Ú–i¿-—I[nkwFh;iÁ·ð?u D~$âçO0¤mRuãEÿ,›šZN¾ðíÂÃÑ ³-ŽG®Ô^¸0v®Ï›Ñz§¸Ävt¸örß–¿\¼ säÚų:Í”?s°¼©Ê1e±±ÉYÊ-èÓ,5*ô½Ò1ÍSÅÜ º®uóûõº"L¶ +.íËUdb&21¢ÙÕøå$á ú‘%O8¯kÁÏŸPPƒƒ¨I¸œ) •|[´l餭/ÍÖºà[ÐO—¶Ü_Ž4Ô”{0É3ÍÔ^.0þÔT\÷øx¬¶JeÓRŒ-·ò¶¥eeÌâk ‚oIn½€&1ët%’:jÉd :ju‡ª¥)ÎUãPN…š®¹]ÿ8 49¥z§á»c§áÌ’¼:\S³ä2 f3Qc Œ˜Òc¤,|Öeð 6çIžY¼¾ IjÍF¯{ ößpbpèȸþ¹ ÁøX ¡¹ÁŽ‡›Y + óÌÂe¿`úF gwaPyK¤ úôN÷í~jÊm¹+wôÛ=®ÿ"(›œ« KhÀXê¶ÁT]-šbëS@C°ÃLì vUòÙm1ÉÒp]ÿšH çù=šÀÔ,yݱíÁ‰ «‰±ëAÊqÄ)Ò,®;¨I…Š|)îAØ [» ej”§÷C=ûïab0ˆÃ¤ЈÀŸÅau¯˜*B.F¸r:NèpožêT¬7JóäM,£’×9þª€Œ«v€‘0O…&ö#ú0¿`ч¹Á5Ý¡øË3`Ï;´Þ»îY—Æ„Lµ~Χ1íJÆaUƒYPèÁ*xK£V¼à†àz\€·™Ñãàhöž\¤##0Mä ³:¦éZngÁÇÇn-ö\°”é©ëÐz–yâ¨!XŒ_§jЈ= + ¤,(Áû|?6=€I}Úào„w‡ ñí’‹cÀ§ÊSª¡× €?¨Ì©,œs‚Cvu°%p 2–¸¨9ëfÏù¾"œ!œù èIÃÑ_QëmV&»r_\ŽÝ`ÀÄEpÂçÿà¾r X.îÛ¯¶™ˆåkFú™ËçÌÖÁ Ñy?ŒÀ€T4 + l8OÞuåé1”Pb›1®ÑSäà«•Rä’#>‰)>k†ˆ^ELâÌ“‚͘¼b7àôÌnô.Ø ¢íš¾ÅÙ†À®úŒÓJZåý’mSº"¶GiãFYK@YŒÒì¹°a}Öº£¶‹\³x4‚¶/Ö6štÂY³ˆ´žkªùÌrÓ×vs>À†õØÄË jÉU>^:ÍXf K¿ÂüÎBä¦Ê¢Â|jWm]½QqL®¦NCK ‘½á!š¿»¿ì!I™Ñ·¼Z»]€¯lª­Á÷T­¸œw!‡Kå#E,BýSbýmžËéëpn|Ý—eòt¨Híˆ*åw”}Aw‹Ò€qð#m×ë¾ZûýžæQªƒ ãÔU%å¯UÛy†DÁÁPà™Us›sÕÕRôìSj YãÞ‹ ¤V£š±&òäóZÉàGi$üÒ–à$!Zû 1â + ˜’ü?`JY¼ÑóÂé†Âêà¥ËÅh‡èãèSu<—„ö›Ne AG:^Üyl¯1û2µv18x!û"vÞZt€qUàÍù1ê Γ±àÉ4z2Œ„LRÚûTµ>+ ÀȘ¯ÁcNàºXRÆ/©XKÒJ!¸—ŽßSjO§ ¦Æ1~çê ’tTª RÇ: + ãpùm˜± ÙeQtíc[,Êúó‚Écé³G.pQ*Ò=)ìpÓ‚>=n§[ÉFÕZ ×üŠ¢IT;0½L\y²£†¯{4€ÒN4Ru-50b&I$ôKŠY¾ZíC¡ÔÅ?àxdÈ!ÖøjOýl)”Jî_n~¹Ô]ù"°T žÏ†`5Oi¸ð‚wêX#…«Ÿã 5/FsWyæñ`îbLÏ‚a`‚’¤Â±§ÆJ3¡ÆU–J1¢vÐd¢‡À²4j1Pš¬Z—Ã'ºs…ÙAÑQË«´ÜŒÖŒ@.ô+¿ºßkE:·iÑàÇt®[7z–ÊüóÔ„ÜØžÆbÜœHÑãµÞ‹¸`Œãtu?û,pMç’&Ô~zžAÊqbÁp¦Úz!Ù ÝÞŽˆM\ŠD»ñ0åÑ ®h\Ê#IÊÚ½@á'„˜u‘ ¾ÆãK-Gš¬Cô£„É +ƒ 3õ â„”¡/€| à4¨§>•s¾Ã&‡é³dÊHá9¦ð˜–(a OKtj8J*>¸—Ê/(4”K0 + ã’óg€$„ñHïÇìq%]BÒ³ÇÑå‰){°¨³=VigŒ³rŠˆAòF+ºÂ9 + C½~¹ª'†*ÝmxnÌäØrà¢Ñàø(ÞB|r—0x' ¹V¨e¶´MÇwkæw‹®TO)Ž©'ºf‹â½o†¤ÏÒèoºZ%”è¼ óeåJñ³Z¯Ä÷(šúñûïÞw÷Ãë›7™Ñ„Ó˜(ó‘¹&ߣex8ÄfØ­>cÁ’Zþ§IJ»Á¬W¢~oõ¶,T\°8Nöç÷7Ï0 *¿œKc’µóÍrü~ÝKëÇ}Ô÷PEFÙÞù_Ÿ¥Ë„ÂñKøC*¿=R[6µ ï^2ÝNÿ:x¬[ʆxK8$#ÏŠlgvY³Ü£‚¾f”0•AUÆbfF‰UÙ£dà^æËÈ3›4øœ½Á}ô™W<Ÿƒ}8éþ|‚xOî“Bhöb°“"¸\}–3©cýÝ??õ6ˆÎa¸í ÏVn—Úÿ…Æs×èþ¾á2¤øQKŒsÃ9¼Ë¿ + ÞíÊßð¸{Wzà)÷ÀµÑ̽S§ v‚QÊyfâ:Ä㕲{’¨Rѽ±T(ÒPžaXÁWm™Ä20Q¼VðuUŒ Îãr çqoÖÜe ø‰pWçqpG58ÕxéŸ×.¸±ëH&„ã;Z#ii¾©OsØTI¢Ðžþmp”ÁÀ§ˆ0Cç©yÒÖ¿’vãÒ1rƒ1pq~y2B®$³=ýD Ðnówÿðe + endstream + endobj + 238 0 obj + << + /F2 13 0 R + /F11 59 0 R + /F3 16 0 R + /F12 154 0 R + /F13 173 0 R + /F1 10 0 R + >> + endobj + 236 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 238 0 R + >> + endobj + 241 0 obj + << + /Filter[/FlateDecode] + /Length 3392 + >> + stream + xÚ­ZÝã¶ï_aE£=œ‰¤(*ý@¤ RòÐnúr>l´¶v-œ-m$ûö¶íßù¢DIÞ= =¿ˆ¤Äáp8ó›z•ÄI²º_Ñã‡Õ·×_}¯Viéêún•ºUªã¬®¿{sµV.syôÃO?_­µÖÑ?ªrw¨›Š{oêۮ잮Þ]ÿ}¥\œ«µ)bG“åi{¥\´¯›û«µIóè´¯°QD§êã [.*ï˺é¥Ó”ǪçfÝðS¦¸h£²üPõOý©:ÆWk[¸èG™VËœmy8T;^á±>í‘«¯¾OÓqsZç±.V ñGLÐ'áö‹8qòÁk ¥‹‘?aµÖ™M¾Zƒ¤R–T{ßX%[=^© $xv>¢!¾>Vb¯MÝgË?tí}WCFÅÄAJDAåiàlU®«0Ç(]ïiL¢Æ/y|zOˆmò„Ô:!7ì—˜|ÙÝŸeÿõw -÷)oYŒþB9q Èûx\}#­¿¯Ä}ªá1Ø5ne­Ýe7ª]xä­›]õq‰€€ÍÙÈ + Rbak'3 ™/øÞyH—¥µ°æçÄ + c"5oàLvB±å‘èåN&ꌒ7Ÿ'±u“§ )à ‰îÚsCdSdfî£ + 8;Âä¶=>ÐŽnAIon»ª|³õû ‡nÅk¿oχ¯:'¸®ßX"K#",ÂhX}=â&`ùžÁyX­½ Á>=— ï “s@zõ}ÓvÕ'ýƒI0ž}Î?XˆJrD<gç¹&OÌ}湉MƃG‘ÒÚsNUœÄT + ßÏh©vn'´úö¸ ØmCJ™¢èzJ*Ó¨ô!)3 ÂÜÛheGrp®1ÈhJƒßÜ/KLªÀõžq5Ì¢ÚD5ÆÆ)Æ»ˆ× ¼ ü¹âv:æøÄd$ðt‡¿«jøhä[a`L֧˯¢]Ë ƒzwǶ¸E^ + ‚ÕZ+‰ ΔD_îKäøÕX¼3ªþà¾jªüÄÃEH Ar-\€G-{65\{aë:+ð XyúùÍ›%ðYôÔ¤»µ@,˜K2Xð²È…`Qו"éìðMæØÑà+pן¸S*ï7˜À&ZFÒà¬wHˆ¾MÞ-cêÀÃWcõ :‚ë<+¢o¿AlϽ’©¡²âhŒ™þBÖè‘TI4‚÷SWÖœáh•Dý¡ì÷ˆÃ&_ƒ pö•É¾4øÐU¶*<ý$Ê»ÁѬÝó뇲;q‹[‰îac´þ×ËÝð91׉”±ˆ»SÂö É8ã¡<í¥þC¸Ý mtOHÉFt@x&4ÀË®:»¦ç»§$òÉøý4ñeÎY;µMÇPߪ@fë>Í‹EØÓ„6ÚW2±8EèMϦçA®áA#”tC£Âð² Ú ¼Úzf´/#-5ßç ZrðÊÆ›ž‚"T{¨·ìA·ÞKâ“~_‘²À[Ö"vn=ûIN÷Ìp2ýgÌPP?]¿rcQúBýÊÆ"u£te–rêy?†5CA'÷²Ãý@Ki»lBKi»tBL + ¼ØÜÏbÜ…‰ŒPsIœ»)5'¥é‘…G@k_-ÒH>ÐI35­3”IH 2sr˜5r¯ê²{… 5³¡2!+@¯íX¯°dX<1)´¨|bØ[á§\Ë0_•3 ù%|$Òò“‹]ØzðçBÕ‘ÀxS€k>¢ù_†TH8\WFMŽ„[-Q)¶˜U®ÚÁ}_ƒêòÐ, NÄø.Ü’•Ì˜¦a»nüRÕyºÔ,Ø÷ »èIü õÎÑÏä8Ä ð®|OÞ£÷Ÿ‚Ãâæ¬nµÎŠäbš’øªDØÞ_½ºPéÊ㹊Hf¡WÚa1ÙW™æ Rbï‹T§ ·)" + @ÜŸ³{“¬Í€k/pàyœeÀØ t•‚£yúrQSœØiµô÷I¬Í £3΋S4X§b«€qˆ®úÂw¡èÖþªæÞßÔ…Im;bĦà„Á¸à2;:7Þؼ$C·(ã „˜ ÐæÔÉ’)9öÚ8<Ðc›u>øê__¸©Ë4nê¥ÓÕ9çƒ4 ¤Vs)iè%ÅDLÃ]ê33áÆŠ$(µæ9eWŠ óà:-×®Sª [ä9Gº‡¥0C©!Ëw†å•>su™„àç Ý%^2Ž7—¶†û + K¥7Èi^Rp\éä,õQ0/s&»_¶×÷§pïÃÖ¹¾€~R]ˆ©’|* ŠÕ²ð†<¡B?ˆêÅ8‡_lÛF*G€qM]5[šf @˦#êÓ UWnöÅ^°Ze‚ºx^Éjtá“Ò ®#ÐåÌï+ÇE|Ùµ, ç#Dd'ûÑNJÆð…Å—B®=Ÿ¨Øï@ÔU‰Wù˜Õ5KÔM¢M˜p ©ú u'zÏ4¯‹Ôî9fmߎÈέ—`N|Š3—º+«Ïu Ýg¬3ˆÝæÓ¤ dÚÁ1â]>ŽæR+*{tgÔL[R3†îøfÔ ]_‡ÔñŠCAà}Bb»L-èxa¥<än¸"kâúÖ‘š•LçÄøÆ$Ÿó÷¯Ï\c¬_”›VP0@€ã`)AÓ—è°EõxNn|zž 9<¼íëû†ŠÊÐ.ùÁ»â&« ¿I“2/RðQœ¤ œÁ.;±—Ù%Ø_1aá€w‘àMÒ]y>œ¸R¦õ‰•âˆ%?`æoøMPXì<ÉåÿTtÄ®ßk’Ov]ÜÑò¶rL5ÈÒüÿ¾…¬þëåÅU;7ü¹‚>ÜlN›M³Ù|±ß—¿üõ÷ùÓŸÿøß?ügsáßXôÏ–Œ©Sªó >§)[•Ç* LYf¦Œ£&ÿ¤)ÔÄ”gÔÄ”j³™H%4¡@b¤æÿv2¥æ2ªfÔ8I{Áö4å¬ÓÿàyJE\k¹SÐÂeØsýÃh<Ð?º&ôÿ0Ù–ýËŸNxö˜'á> + endobj + 240 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 242 0 R + >> + endobj + 245 0 obj + << + /Filter[/FlateDecode] + /Length 2984 + >> + stream + xÚÅZ[¯ã¶~ï¯0‚•‹µ"^$J}j’vƒAP4gÛ‡œ`«cËkaeÉ‘ä=9ýõ )‘’Oö´ °Oæõ#9œùf†ò&‰“dónC?_o¾¼ûüµÜˆ$.Äæî¸ùF¨¸Ð›»¿ü}u*/cÕowJÉHþi»Ó:þÖwïúò|®ÛwØ¡¢ÇzÚC_•ï—Pº…"ŸÏí Ò$Î‹àœ¸1m¹‡³,ZO7vĨ  ‚äîWl„ŒšïÆuGü…;ÚJãaQÛx*G. õ»¶l¸\òŸƒ0¶;™GÕˆ[,V-¯óˆM : xìúIkÜ.Aÿb•OðÖ]Þ[’ÑÎvÓ!RS·°CØÍ}t¿]95±tê£h>4jù¡:–×fdÝg `©¸{äq*ú°MÓ¨l®¶ + ZîY¤p1zÞóC9Ôû·pз$–·ûçoE3m‘)34†T¨Èÿµ¥¡Ð.Ž×vÿÖÜ 3+’ØègíL±ÃÈ5jìD®î CêXfИÆ"°³ºk—x…ˆ“ÜÃ+ÒX.አq<¸çì ¤“ëL*e¶@“ + *}´›v–ؤ„ê%\Pê#:ªŒº÷7, dbûìIí¶]»ûwÕw¯°Z€r‘šAÿfVÝ P}5ØÞîh¹Š—Jòå)ÿî˦áþÇSeûf + Çš[ìPíë3?´Âè¾"‘$¾A¬I£¡º€ÖŽaŒoºØ‰¦ … Û3º%jžU¬-5*úfäaé»6.÷Õxí[†-¹) »üØóN¡»©ßã2Õš-àZ + Oñ-Ip«w¦É¼Ô*skeqI ™p¼Æ•ëPáq29u_¸»Ñœ¹…ï + ûkßÃÍÀPYȉ¶lô¶L<é]º42:—(ª'îb±uX‰ºÆ ÚŽ€WLž$K×ìúb¹&Îœ\êq¨š#ÒªT¤è´ú©²— {sß<íe-V[ÌÁ)Û¾óÝw«-H¶ÿÕjrgæÿ9]O‡x›xÏ|G :¥ÿgVþ-ãaÞÂÙ†E„­Å‹" І@ @Í€?_»±Z@qî&…¾±;)Òåî¶@§¿·ˆ,¥ômã ´¢Â9m0âIhY†-Øöxª¹Ù)[žã™sáÌš™þ{Dê,¹e¸>̤d×Ä §Êm§­öR}ºÂÄ76×=p€;È#2mø% ™›©ÂDcÝÛú´0xYi¶ž±{½œ=osi2K?n.¡¡>…>CpWfaKÜ4p4ÚHB…J9Ø_"Á'Öþ¶Üsû›Ýè#á”׶a?ˆ`§Š&'l†Îb],ã–ÄI‡‘ƒ¥“ð漃 Ö°E+3&ýiíã{éÛ³mXØ3¶j6™{™š¦jËóÒEY˜i2Ê"Ünžˆ·-:ÁðyFà BåK4™¤ÌŒ3ÚGM:Í™Q^dÒYhÒ¹ÍDpÔ¾¼­•z¢¡ùΞgswÆ}àN%3kD„;1&Um`ÅÖþ´Ž™XÕEÌ"ZÎ"J®:¸Wç=Æœ•ß¹d#HJV©ñ•¢=¨±•/Uù“{' ^4 ´™–Ú ­üŽ0\( †Ø´\a¦iÓÄT ³Žfʹ÷Œyé+ò/Õ-åƒ}i½J„U2¥ 'Âø»ò(‰K„±—Ùš¼08‘.^ÏGjK@å®vþ'ÚSPÜHu´CêÖ^ƒðÂ^Bæîn¬~oEISœFÊË1™OªƒìV‘`¨jQ^Ê<¡´žP:'µ†‘© íÓ’E"?‹…ëP9·ŠC>UÍ…×? ­)a‘do帶²÷5:>%ßüº‘O–û*)£CG†•D¯·9¤j¨Ð2QcÙî+¼©£/ËáÄÓ T,'fÁi?›OðUþ›Kœëûlýüi;¿š›ÎNóÏë©;ÎÔÈãÑæHï T¼I²}”½ðuÚQŽå + uã¿gðÁlKNÝ0"- ¿ «Ôí¸¦Àòž*ö掹½‚0T ¹ƒžcnoëÖÚÁØé5 Uñ‘—Xͤ &ÎÍQHàòçkÕ?­œ+†¬¦‰\AkQ`õXoXi×¾A&,lf!ÕÆ"‡´¯µyö3 y¬é^¡4óTõpilªˆ~é`'¶ÜÝWOÀûv†[³äÛ= 5\ôn°]ßâµ…~qd—i_ ÑЄ};Àe„„H‰Q8§&(òSê#w ®‹NïWâY¿‹0Q(à´í(:Ž®*·…êÌÓh·;­rKõÂ÷´‚lBóß*\w‰ €`è“…Và|Íl¶6æúeF1:£Qxæ «n«L0}Hc¦É$øS„»ô#Å&¢ù'ÇaVð3õ?giàžhHC/ÃcýÁé4žË‘]2qŽùצq)ŽZ8õz`séz1ÛCý6jN6ÅÙ£nÎoZ9òÊK]Ú9[h"—èb=lgUõ£ë\/§ ÅEþƒ6MwKñÏp)÷8|k[™ð}ô/Vø?Üoa…læ‡jd«‹Ür•:×RqaO5RDø¦‡Mˆ½JJ!K#¼¿OÖž8ç aO¼Äw|«è‚ùÓÀwÜbIqÚ}(yNu¥à‰9š¿ŽèI$÷„¦ rÈrŒÒéèÀ'ÜhámÔÊ©JûoM ΰVm ¯o7ØLa_c€º·3½ëź‹¬h¹ÔFá=]úþ¡>àêʾ cáþþÜa‹å¡j‰Á±6?âbmzàÅ臉Ög<¤Üïa8KO±_Â_:=àùçZÀê¤6²6¤Ø†l|òÄoå/¶Î-ç§ÒOE¿©Ê1`›è×ÖCúÅF£^F¿ £ßÑѯ9\/ú6°Ì“iqÌSJ¼€ ÔspÁçKê-ÏnßXBœ?f¬2Èë sC’ÚÐw%瀘‚H3&NŠ©aÊ ~Ò¤Ö<V˜ i<Œiô + 1ây4°¤Ï¶Æ”°él…‰o›:Üâ’ViêïÜ{ZÎð›u= w€}üQ!}Î]¥¡»bY¬²à¥ñÈé(…Âl|‰œä£ô<M‡jØ÷µå4;¬äj‡»`Ê¥HÊ~ÚµŒß8=î¸!áê[ò±s¹òÊ&bMùL+Î <À¸Ôfúp‚ÿ†èÚæ‰ûç¨YM_½™ÀqÜô¤#‡ëôŒ =%7Î)ð§ä¦,!=›¸ÉÖCnÊ‹üeÜ4:n + 7y·Þ1_’>Xfb¥V`ø¼_„ûûHP(é“ì*,,‚ïžàýk—­øÏ0jzþü"©Wì®É  ûP5õ¹žF> + endobj + 244 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 246 0 R + >> + endobj + 249 0 obj + << + /Filter[/FlateDecode] + /Length 2730 + >> + stream + xÚÍYKsܸ¾çWÌm9U.^$ÁÚ[’õ–S©=ÄJö`¹TÔ Fb–C*$ÇZåק 9#ëdç„' Ðß×lXÊØæac‹_6¾ùñ½Øp––|ssÜp½á2-Õæ毟•owBgºH~ùõŸÛ”2ù‡©MÝjý½¾ï«þeûùæo©óTmvªLµýøÓ¿¶Z&U_W÷ùŒS~|/7œ§e† íì|¾avrÝŽ4ƒ‹yŠó„¾±‹ü|ûÎäæy“ñTÃr2K³rsÚdYZæ¾Ùl>Âm²<-¥íÓ¹²ïNOë®]ã°T‘ÍÒ¸(R],Äq¡SÉÎOO½†¥4ÍüÂ$Mg)Ë–Òà÷¥ýç܆N!¸—e*–)§kùp„ÓÏdÒvíïÞa³ ¯&SɡûKÌ@Ͷ©R==Ñ@{pTœªq¿EòX·$žöci¤ê«ýhz}~4- :yý±ëOø1£ýfËc߉¬H¨Ô¸2vÕ‡±év§K>ŒÔYnиŽ±£’QqE‘Xß8ÁíVäÉ ­?ÜÔû + —ß n¯ûú†ö4{¡ÑÖçvOGuÇ`¹¯šÆÞQ£²)ññ”^°!à›¿§%iŽ;ÈöÁhÞs=‰ÓÌá¼Ç}?ÒHE~),+Ò´F°4Ï¿!ÌÊ,͘Q3†Yi‡Þ3/ÍÃ,ça6Ë;vg8ã…¨Dé@T^¤åRR®[¤k"eE±ßH»U¢J¤Pú_´XQ³ãØhþ-$YRÔšë>„Ûvµ/[Ý-…j#ÞáôæìæÖǵ²Ž¨ÿ’%Ϩe]˜’ÜÃÃîÛnïæà›-cU·}Þõ4bqåÁ4õ©ž>¸wjŽSg¤Aa^%¤ŒáB ΣÝ7çÃE’¸¯à ü>4Õðh¤¥’›G9*‘@€+B=qŸ\£¾Po‘Rˆ³x5Bú÷ÅÐø\;F‡’½~“@¿X¢` òTõ¿¯ÈR ËUZ®…åÙrÃË µ”'@²PžàpÜ+y‚ë4åê~¸€éÂ^l6«‘Ù”„60.¨wX-“›†j3wÃŒÀrÔK‡Ø2„ÎD5kL[¬õÅyÕHµÊj+TàP] œè*uãÉ  /Wø¯f?v=".Ï»b«€8ƒ¬,Oþ h”>Ê/@8$s‚ºãbü<˜~-'‘²òùL…šN[Q%v~;µYß8A…r“ia i's‘yø„uQ– jÄóG=X + e,:*Ý¡BíU"°3>ÝIÜW-U:¼’/[ëÎôõÁø…ÌúFð¬~€ïäCÓÝW Ö³£éM»7Ô¾%ÆÂê—º¢ùN`|ºÖkÌÂÓõ@Aî:¼zÖ\ªÇØ›jôÞF5¬Ü Tž’I¯Ø¦vªž†B¤Ü_vÕq„ï¤0ä‘óB£Ãö͉\1Ž±ÝD䮹ŽdåÛˆ|è‰<–èˆ<è“ qxe(.—©+qcŠXÞu‡øQ•WXœ‹³‰ÅYáxš…,½–Å™žGc‡Äâ( £3‹C甂ó@I#¨º3å~ü” ~k³1=XÅòµ`Gåùœ†ÁÙ'C9Ū­‡øÿ–š­·3ÉM‡J¿Ú˜e¾u7<úÂáÚ"œ‰Ä­6#ú. ¬±È^ø¥ ‡cr>BÃ'§ü“—ŒPA©¿bìl DSÀ²)¿Í¼!!j„`TY—væU’ ÁBK(Yé2Ä(©r"]v˜IŸœsãQv˜Ùaf‰”Ê׃]ù¦|6ìì†2†ÕE©þLK—êÇZœ9±c•3õÌÓ)•ƒc6ûq8JÙIúj¤m» „^ÑŠ}“Vø¹UæøRÄLí(…"Tb¾ 8kYwO(gEd‹~.IÈ’ðÔ<‘ + ôf<÷íཥUØìž>8÷jxìÎÍaõ¦69`*zs ^ÚÕ‹€OÁÄoêÿä­-+F´3?P{ÁЩõÛòý“@Ÿï%ú| rD4¿€Aqá½LSveV·ö + 4…XV.X¼Ãøkû¾¾''H»ä³ýÔÞÙÓdaÌú]zñV£C@`«vÄþÜ÷†LLãâ ‡ï a ¬ÿÎá >(Ç{C2ÏÜŸÜz0ÒWLbr¾É;ïAÝÁµ›¾­šÛ„²­1SˆrÎñÞÎK4>ÏË‹4OõúK|·ø ½Èš¿G•ôéìÏ{s¹Ck~¸ø㲶ƒ!o˜žé§„ß@$J¹@ö­öÆ=æk x3µÖ ‹ŠÐT*r]~¾ùÓÿóf` + endstream + endobj + 250 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F12 154 0 R + /F11 59 0 R + /F6 36 0 R + >> + endobj + 248 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 250 0 R + >> + endobj + 253 0 obj + << + /Filter[/FlateDecode] + /Length 699 + >> + stream + xÚeTÉnÛ0½÷+x+D 7-ì­M“4=Eãö(#ÓI4(%iûõ.ŽûÄáÌÓ,ï …(¡=¢x\£O«ó+Ž%Š¡Õ±1A”D«Ïwø¢×ÛÅø¢‚cþ¡(¥¬ðwï½G;=†€À/vé“uýíg0$þaôz°“)JÖV”aÙ÷«¯H´5‘¨”Š´1ÿݯ¢X{«s çW1FTz)#ž!ÁvZ‚ñ=„‹=À±Èå + F«zA#-”©QUU﮺…ÑQU%¢¯­s•Þ>Øå(“jH½OÄ(# ?ÊÄ('u{˜ªsãv0‹uSêû€åzi*j–¨¾ÙsT᥷3XŒâ碪vܤØ.2¹©üg¼; WyX'†w°<ŠYNÔxÕ›8þ +xƒ{íu—ĆR/vRð¡(y‹M$„¦Ž«ÌÔl§yš³á6G‘ø°‚±Xá6دýߢå8hL|³¼í¨ƒN@¢cªË<Ì^Į́O7UÂo¢Í\Ÿ…$*šÚ­Â³{òIÎÎE¥×ùêÍl×fN;%üïSíkÐ^ä:&)0Ÿç¦Hw*¹ëŒÃ×LÀ‚Û\hNFûP‚°Ä°ß‚´Íáð[ïÂÖ>§Ny[¿y"¼m’"p‚ŒóФG3)\58‹^³¶Y[ÀoŒ^ž|FÕ8Ú`Ýufž“½¸|FµÁ€1²Æt\Hþ½ûòí€ + endstream + endobj + 254 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F12 154 0 R + /F1 10 0 R + >> + endobj + 252 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 254 0 R + >> + endobj + 257 0 obj + << + /Filter[/FlateDecode] + /Length 1096 + >> + stream + xÚ¥W[s£6~ï¯`Ò‡Úž€/¬=Ûˤ›xg;Ž»MîC’q!uAb…ˆ×Ýɯ„$, dèø „Îw.Ÿ¾#;#o4r¶NñxïüºÎ'ÎxäÍÆÎj㌧ÎøÌ›ùÎêò®çOûîdLßôÞ/oûîÙÙYï0Æ©Õ?2Àöý‡ÕoÃùØw¦Þì\z™L½73ÇõgÞ´p4ôÝ`â÷68F ”Ë çºêy¡“½zic8¦D}ØEFê5D %g€£L}‰èN; ê™gHˆŒÍûÞxì¸"K?(*ò‘‡|ä*Vùx}aŒz«g-aÂã'› ã˜î²2–Ð#{^ÀšE pšÇ"µ–u1H$,cÇL›Óežz ·®Ni"7)| Œó©Jÿ˜ñS/úÙ"xÑpŸ ù>Uãó6clWÛŒÞÕ1Fìˆ'Š“Mc¦{64/]ÊM¢§œŠWT ÑWÑU¢vÀèò¾&²·š´÷½ûþÛfŒ†â«H÷”€Äô”nt›s%…2ÓaÀuÓ!Ï„&RHì­ÒEì­Ò ’±à¤&ëX¤©L×ë"f;Ÿû¾•BËþ'ŒvÇìgHà’;÷Íýé.<>D1âG%¡8=f? IÿKŽ»•ï@Ãa­ÇBdsAL† )ác²¡,±ÄѾneÒ:æ%…y‚D¦`ÑØzϬ‹!išQ/î³Ây÷ûõõÅòòÅÔ¿”Œ-r÷ P~z­oßÔžžœ–ÇE/NÞE€lQ­P˜!(…_çúáæD½=Ÿ6Ëd”Ø ê‹º´4bþaqõ¢Ë âRŠ‚íP®Kw8Kc°¯Wœ‹±Ô!Ø_ÚÜþ¹'”ì“ZGÿ–&?tð+'‰íZ®ëE9e¬+ &ÿ§ÆqÖæ¼%niÒ%n¡ÿ¶g±4Ž?2­”¶DåLŒ,ýuGÙgL¶5ætè®]T® ê¥ çYé|®nÄÒQÕv®¾÷7ÖÀ•\¬Òyõiyq}ÕGŽ]E®_(͹™B/2ŽaVÿÖóP…“÷ N® Ü_åÄš$ââMxíbÕ «6—·‹Å©¹ÓÕU¹iÑØ«ñêê§ñüÊxS¶,4g` X!¹Y7ás §bá©\HTäu°Á$\k‘m¹ÇNÚï±õiW›ßºFÀèøŒÌü`TŸ_À¶Ow£‡n)J¿j"·Þ³?ECˆ„û/bô´]‚ÀáªÌ´Jef‚Ô8–«q_­¾û–1ð + endstream + endobj + 258 0 obj + << + /F2 13 0 R + /F14 192 0 R + >> + endobj + 256 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 258 0 R + >> + endobj + 261 0 obj + << + /Filter[/FlateDecode] + /Length 746 + >> + stream + xÚ•UËrÓ0Ýó¢+;`Çvì·Ó} - Vm§#%Ö`[FRš¦ÿŽdI®ü胕o¤{uÎ=÷øAÖ ùœÃÅô4aà§!X¬@8áÌOc°8¾tŽrXsD]o6‹œhÏõâ8q¾Q²¦°,qµ–3g‹y®¬³‹Òˆï. \!× çI:qê^/>OOÃÌýtWEsÿC + ¼8õç ®¸ë%Qì,I…ö¥;€)^â>Ë!Us)HÇ»ÍårS3®¯¯vå6.ÑÌOf¶[‹Á€gy$Çßæ<õãÐŽ³°i‡ZÔ\ë»ùIœ»ÉÔA†ÓUí/A­1ß©OxåîÓ1Y}oÒ¡ï•/ëù*Æñ ­Z_ããõsxò.!n!]gG˜·/*(ýGØXJMä;Cw_§³ìÍgÂF4¯EV°Dé%âep=Ò=¸ÂÃÿA7´íM•¹T¬‰žNÔ÷WKe‘ UFFʺ@b|Mi:d¤Âcç !µò’HÍ”4ÜÌ£èeÞžK*L™›ŠãB™> + endobj + 260 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 262 0 R + >> + endobj + 265 0 obj + << + /Filter[/FlateDecode] + /Length 769 + >> + stream + xÚ­V]o›0}߯ •Ö(ddU'uýˆ6%™Ô¦O¥šX‰µÄD¶£©ªö߇¹vÀ@ÒNÛ“m¸>>çÞs šc;Ž¶ÐŠa¨}žvo=Íuì«MSÍ 5·g|mzý¨NÇò ü '«×ëéwI<_!œÀj„~˜ú[³»ŠÒ«xµâ–bWºÅ3†2|@L™g®&ÒHæÄúÄ·2—½R §­ + £,û (ÛðÌåøF$›ÖXãx-f™¬G[±vþªZEDn²Ü¶ QkÍ–1+(º¾í*%Àyš\'pò{±8yZ ¥aJ5ˆâSÖƺԦVê°<^}/'×9£Y²úÀ Çq…ß¼žôªñ³eLÕk„½´º•$ D…^_G²Ún]ÑçœRn8ç\ÉÍ»Ã&€eš{.%T¹yÈl½‘+¾ù¬SºõBž½§ Õû夳ó·Ú¡WXï•J¡òrFn’·u‡Ú¹÷Œ Mû·3%ٺ֔ńÕZ ‘Ù1÷Ó»/“áCK×úAäËžÙátlÅaM»R®®Ð%3ÇŸàÅì + MÃ>Yªa%XNž + Çì°w©â]IaÏŸAyÁ!²ÅÆ@ôÕ߃¾fÚ~‹iiÍk¥±˜ò¡Ê'$´Jª0µ`pñfúîD£Þ + endstream + endobj + 266 0 obj + << + /F2 13 0 R + /F14 192 0 R + >> + endobj + 264 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 266 0 R + >> + endobj + 269 0 obj + << + /Filter[/FlateDecode] + /Length 1105 + >> + stream + xÚµW]oÛ6}߯úÐÈî$K²Ø : k“ E—™Š˜ƒ‘)›¨D7-¶ß>R$%R”ÓÅò"‹º¼ßçÜ'ðƒÀÙ9ÝãÆù%]\GNøëÐI '\9áÒ_ÇNúúO÷Õ($3o¹ŒÜ觙ljûžÔ;ª + áÿ°tˆîů›ÛüGìÞA°-†3/\%Aè&áì¯ôíâ:Œ•¿>熖+?r¼xí¯:SÇ=*™xÅnæRþ#qF<ž?O&Ias9ï™;§Ù,›q ÎÚCÇcÑÄI§–zÞE÷Á¾œw_æ/^Paï¥Ðs–eÁ™/b ‰:AiK°m,eÂÌßöµÅ\\™çŸpn¾P†˜~¶ŒvÞ…$„<~bÊyë8^»o0+fÑ'ŽÖâ9‹¿½ª«C )ªYÈ«8F¦“'›þ?’0¤9ß"mäuU¼Ýì †Кˆ[›ÍûŒ5I^ãFö•ºÃ4þ(žw-ta'YÓ?/X‹2 ›\KÑ,œ° èiÙJaYÊíeU:dÙÅ*Ñ=äA¼ìë£YXé'ô ƒ$pÿ·ŽSS’*쀻Æ~h E©R*p™qñ‚A%TQ¡ÜGê¤T ¢’u¬ÉV¥f$Å#•icå´Š£üà…™0kêãYq!Œ(%ú7DË,'!É(Fß‘ŒÙå—e©JÀza‹x‡YÉ Mǘ],Å(Î>‡–’|È?|RöÞnxÜ=»f—øÙÓ:LU˜¨s Êcu 7È?iÕ|Üa@)¬Ø4ÙjðÙ-ÎŽúl˜ ðGX÷RX›ÆƒÙÄZ?bÚ˜5J¯>¦ + @¿§—w©Ìjû«Û×cȈ^¹¯[%Ó› p׳†2ÀrÓò¾- + ;ûÜ)€ð>f$bƒ)´*¿y 'ph(z”5r o8R²†œòc*£S+äç@)?ž$«­|6u%eÄ]¶íKЩHîºIÞ{ ¦k ù6åtÏÛïÞ‰ ’^ Äg + øá[„£Ï›_¦'L·ÁÏj€4õâ­ä©hé'ËQò¹áhãˆë™sKÑ‘r‰×1QudØÖèÝ0zØÚÕÔB$I~Yúú)›#éÿ4n̵P=ìM+ÍŠ6Ò+Ù2P[ÛLO€OX­Ç=äõ7yLKuAêJ²©ÊB¼÷Ø¿Vu;°K‘N°]æ"_m šŸZ­?Úа`CëÃIÐ4ô |79§ìÝf; + ¿“ã‹ã(Wéÿ»oñ- + endstream + endobj + 270 0 obj + << + /F2 13 0 R + /F14 192 0 R + >> + endobj + 268 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 270 0 R + >> + endobj + 273 0 obj + << + /Filter[/FlateDecode] + /Length 849 + >> + stream + xÚ½V]o›0}߯`‘&AZ’U}ØGRuJûÐÒmR©* + &±&'m6í¿ÏÆ6 ͶNk^07×÷^Ÿsî5Ši˜¦²PÊÇ™òÁÌ,˜Æ(^¬W¶1qïÓ­:´4Ýr‡îX=»¼ÑtÛ¶Õ+D ¿ÍÑCä[íÎû<˜GqɈE±\c´aÂC5A¹G8‚OÇÂñI¹Ýä{GåÞpä|g)¬<,z«ôôùÿç1C–¨à+ù øÃG¾xÌòHøfüfé*ŠRF úÅÎìÑÐhQCSõXtVp `5O‰p˜¬#XðjŠ`ƒðBV«#.È’¯3Q®7ýæñUœå|ã…âp+ê p´LU¤ÈãÔyJXùrä(xH`û¼¦ÁŸýAWoFyH_}Ë؃¾¶Ã쨓on­©åYNEÒ½4ŠH˧ yeòUŸˆ¯ñmún–ŸMó¾® Yçx‡LŠ“PÃ…‚“U3H“-M.¡QœgimGB«Yš2ªÊü „çQ槧©93 躢ÓJ”,\q[ãyg0¯’qtÔÑ=(–`Sèq˜®ä+K$äÇh¨›”fçUJZ÷Êá‡Ëøj´^Ñ<¬¯U¤×p­¿`U69Îj‹&[ÑqE’Èݬãòf>o“bv—Ìñ«áC½}íý;çRÿ]åŽdf³-“Ú™A + YÇb•Ë;êŒêí"`|ú¢:`üÒ£ÿzØ}8¯I^ÖLömQ´-Ŷ 0•âóµÖøn]ÕÔ­†ÄüüÚ*úr>ýZàrq5½|1­@Kò²c;ú¾¥–æ…XkŒÖLÜÓrîÜssÚÐ;Ç”VÚÀ²3YSDò&å狺§iï–)Ÿz‹¦¶lch?sS/Ñ {^Ý£¨q©Ôvè?­)ØëìŽÀA\Q!*$GOðÖK»úìc"â½+zDz‘["n·[B<|crœ ‚uƒøWÇëÀº¡ßÑ=°N¡üÐòÕ+¢uø?Ùà¤{„=ÍrøŠhO½7¿$½¥ + endstream + endobj + 274 0 obj + << + /F2 13 0 R + /F14 192 0 R + >> + endobj + 272 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 274 0 R + >> + endobj + 277 0 obj + << + /Filter[/FlateDecode] + /Length 794 + >> + stream + xÚµVmo›0þ¾_ÁÒ‘¦8˜·&­ªio6MSÕeŸJ•1pÀZ€Èv6mëþû ¶ ’*š*E2>Ÿïyüœ}Í–¥%Z5Ì´×óñµ­A L¡6_jp¢AL]mþöÎx“†k†ÈÐtÛ°/†¦ëzÆ )fΓrÁ1~b–Š¯Ù§/å‡kÜ¢0^á M8ñ,hxÎð~þa| ]m¦~ dOÀùT3Ý)˜TXQ‘-ÊÃŒoòl׌$Á°Ü§ÙðÍä$]O8§!n§Üë²r2^~åõ§²O ›VV‹8ÌDŠ UXº€Öƒ¡f5wÄ6$W®Pù˜ÛÈ‚Õ_µÕæjÚõ©( ÙÁ3ùÿq&LÙDDÁyÆçËâr—^*:Ï„+/8Þ&C¹ÜÆÕ(cègbZQ–¤»Zn•ñz”±Å¥j!nÙUbHŒ“Š*©fWWb4áØþÄ®!i$™ÞždúdîœdMpÎêÓèŸùq0e8¢RrEà뀾¸‚¼¥bO.:ñ2NÊA,Fþš¾¨ + –K+îx}ûÅ + å!W(OX + Ú\Î*&Î9ð½æ=ªÒ([ä%ÞÙ®zAÇEW ƒ*ƒ/Å ëb¼Sª÷„¬Rü†,=ŽE¬Ü8¬ß'ýû¼ˆ‘Øö1¤ò’ò + È+…”ɨª”ŒκK'5ÏÊ\>šÖýóúPy½„žÕ@ £Qz,bØ‹è÷#ÚÐj"fEŒ—ÅÇbf0Û%Ózä•YÍV–Ì­COV45­÷æîñFàïkãS±í¦L†Ð²ØÈ­Öòñêv&ÅW–z)\­äÊRŒ,•ÉáÊe¼4¨÷¿¬CÕÅ¢¤][lóBòXDybv:‡kø{u‚å'LA ¯¬Hî¯UÃ=·M.ºâª«›,K„u¹{Ǥ˜%{ÜunIy‡ïAùÇ@šñhtTKR9à¶@L”‘·í([ï¶Ã.z·1Z= ÙkÓ°T€ ÆÚì + ]Ðs\Dû+ ŠG£í{°{z)œ€IýÝüÙ?ñ¹» + endstream + endobj + 278 0 obj + << + /F2 13 0 R + /F14 192 0 R + >> + endobj + 276 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 278 0 R + >> + endobj + 281 0 obj + << + /Filter[/FlateDecode] + /Length 697 + >> + stream + xÚ­U]OÛ0}߯ð*¡%-qóÙ¥ =lPÐÄêžÚBê&ÖhÌlGeLûïKü‘¯¶*öÛ¹¹÷ÜsŽo€ m¤@<.Á§ùøÂŽ §˜/ǃSÌÏïŒÀ7-7 Â÷ÆåõWÓò<ϸEñâçHî>ãÓ_æýüj|áø „ÓI•Å ¡ , + C‘/M+p}#2Þ>Qœs´ˆÌê0…¾¬²¸ˆÀß½Ó‰8߈A™bpMä2!«Uœ/˜Ü­bždrùýˆ½ƒf™ °Â~À#StEùàXoÓÈ<um`¹%®(º$TWÄrñA>ìÓnù;|óx…Ô1ö5綛%77U“*E.Ÿ ?ëRÅ*gPî†c¶ÉÒ0¬VæɤÉ>¾ëu×­¢Á6]*R5•V?çŸöqÃr“¢Â>8bQĵ2}‚[2m`šºn㎺¸†½Ë“½-:! Ý=6(âÍuöŠ:&Ôæ8ËâY­cLËy¥3•ã¥¤›o‹'ÂÃ9Ì=O뚟Á Wà¿)Úºî¤à=E“‚R¤_¯ ýó´§õ‰[=à4'½Bfx˜ÒÍç%²;Çvý{u{‡¬3TÎd¬?E> + endobj + 280 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 282 0 R + >> + endobj + 285 0 obj + << + /Filter[/FlateDecode] + /Length 549 + >> + stream + xÚTÑnÓ0}ç+¼J'jÜ8‰G3ÄCk%4!Tñ@Ñ'±”ÚÃq˜€ñï$¶Ó¦ ZO¾º9×çœëÓù>(€>VàM2[û(Æ Éž¢8ÉÛÏðºLï•Ž† ®/Šü E!ÓÝŽñ¢û¦JS­Þ슮išUŒSÇÃsâcHˆó%y7[âÌQ|Ùsô2^£¹æúÕ!@Œ" ¼VMDt7Ý%$ˆàëî ¿Ò8߀.5HRÕHn`èoƒñ—Üï~40nÛÖÌ5cˆoÜ<”l[šRѪªMùC4¶W¦ê¤µMù ÛËDb52¥;‹VBÜe)/¨MÝkߦUEåÆÑð D$ŽlËT¤k€ÖçxºKÓÍï%ã*ï¹j•Q)§($ýOž×WF{"¬Ÿ#±æBšbG­ßÇj%Ù×FQ´ÙðÉØyoÒªp?©S_>ù$™²„ìð²¦U®éþçñ×ûüÈ÷~¶6-EnÎÅzeÖ}jŽïiÅ2Û‘E³£\lçzq{{³6[ÆÂGšhU[/Ú²½È*iMV\×iAûï–Qdw’ÃæØ:†ÑchwCñ‡N÷Îþ9‘vÄmgÆá$O„“íßû¢5·<>šóÂ=H8;u2ŠÐ>Ú‹£'“ô[Ã$ÍtŒ¦ýÏzUhc¸ýó:¶Ýe/øË>3~“<û¯@{{ + endstream + endobj + 286 0 obj + << + /F2 13 0 R + /F14 192 0 R + >> + endobj + 284 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 286 0 R + >> + endobj + 289 0 obj + << + /Filter[/FlateDecode] + /Length 92 + >> + stream + xÚS0Ð30PHWSî + N!únF + †z–† + !i + † + †Æz–& + !.ѦfšºF¦æî~¡šºÆÆÆA©‰)9™y©žOfRQbQ¥flˆ—‚kÍ + endstream + endobj + 290 0 obj + << + /F2 13 0 R + >> + endobj + 288 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 290 0 R + >> + endobj + 293 0 obj + << + /Filter[/FlateDecode] + /Length 2561 + >> + stream + xÚYKs㸾çW¨æªÊâð¾’“½žÙrjÆ늽»µå@“… E*9ÿûô $ei«rF 4úñ5´ + ü X½¬èóóêæéãçh~®žv«0_…±_¨ÕÓí¿¼ëãq½‰2O·µù±ÞÄqì]ÿ¿?uÇu”zo¦}ABä=í塯e‹CcÙÀä8T…—dë?ýããçpf~Dr6 >\mTá糨8œDe‰w²’NR¦œ$BI0„’ÜúÊ®/˧~‘ðú~¸Þ$iäý|ÿ+Oþ¼.b¯×š½íH|54­9”ƒéZûb*ÝZÍ2–º‚Ý'ñj¥~T”ßÖyìéÞòTÐJèGWØRÞ}·M~_G¹§øû̪íy8 + ‚¬6aø™‚oæ¼wÒuî½õæe‹ Ę(?JàœqLLoOÍÛÛÄ~£¢…c¥Á…3ø ¬B °‡à + ~Â+Ú àó:DKÐ{ìvÞí+î§ìõ‚§ÛštvÅÄ»¶òù@iâgœ'öC>OR°¡<‘¶ÇFsÿ¡)+}ÅíÇÑ BŽã@txÓÙA€™}¤iæQ†°zÉÀ¯×$8XÞÌ'Ö|ÿ† + ìZÙ¹3Y4s=˜aÐ5Ó†Ž…V¨ýÌ{ãe[3¹6vèÍóèvù}M·ù :80&mÝVæãw;0yL#Fº£Í°%âm˱@”¬‹Ô}Ù¾L¾gÞ“[¯í„µlšnº/]Ë…D‘ŸçK |PeRxÿütýõæË'b ?E®ÔOX…O{Ø¡ + 2ï8ö¬°Î + ¤‚\Ž„ç3DvDT)öå7ÒöR¯tD:.83XE‰7èÃ3Ëáßo4z]/R‡½îyònl+4>Œ98„×t¦øÑêÝØ f‚s-K g×ÈC_â;t÷¾…~ ƒiyÝaO×zÖÝh(Ð"uw€ª”³¯Ð+­{áÔbEox_b¥Óš§·Q’j8èw¼T$F…[U‚GSà›MbÔ‰CÍX%àÚ'† C† NåÞ«öÌ„ + Ç!¤td†@<°k³“мœ« ß 2VÝá ûÊ€1ŠôNFڮݜ_Ó ?D0Î>ºê Äô†©(¨eÅlqqxÇ^[ݳ6e|GRs§N ”#Gˆ¬œ9>7Æò摇©¯¸RÉ + \lXÍ*.RïEܨP«ÔÎD,A¬‘æ뚬˜ì9 ½×½¡#ì¹0M²kúpvkjÝStF8Ÿø ПyúBØt9`1YEqùB$:”µçEˆ#·²þľ¨ë(‰g]GIâ1Q¡ªðóÍ *±…vßíÖ_£wÃ8u”xjŽd¼äA—­,4ìË[p`°u\›l>÷43Óu€e;NÝ,Í»äÝïÎNÁÆ¢º3²‰ƒÕ û•eDz•ˆ´Böt ˆEž-®…JAs…Xz70 ¬œÛ‡å5dnèÐÀÝê£vЫó=‹Ú%!,8ç2ºÉ>“Ê/emÍKërÛ L–cÉRªÏ¦TÁ~§üQ(†|4æ,$DS²‹ÔÂO¡CʄᮯÉã€DÞ¤qâøË›„‘9SX&ÈÈ´ýÈmF*WÌ wZ•#ã¹Sýòt(qqúŒŽJC¯…H‹©,'Ö ùš¼ ‚|D”ÛN¸}÷Ò—îXˆ¦MÍÁN„…ã.¶–=‹:°©ÜÔ$ÂDÌ + b’a것å{·„áý=ór( a`£â»¡¨O"Œ¬5ß#t‘ã4XŠ.…u纾 7N–'þ;RRÁ6SË–³[B®±æ–˜0À‰vŠeŒ!¨Á‘EØű^¿”}Ýhky˜Ó4hd|ÆRÁûdZ¦J€…²<ˆ9;Ëë^»t'æª8,Æ*Š$ÜÒÊ—?ÇÞ°Õð¸³ÐŽÂ÷ ÕéçwDØ’Ÿ{M Ò%p¹hÍ"ëVæèrnBú9ßøG1„¼î;N1R\|1-à…±’ò(Ž9›ÇXKí ?µ•„ŠÍ€ f^?<|¹ûéúæîËÝÓ¼èõý-/rûéóÝýÝÓÝ/÷†B MÆùbB§<DÛÔ!œ‰Dg + *ÎØ´¤,Å>¡H`r(šN˜—SNçË@jÄ‘ˆ?!ägv~ÓZf,ÏÕ Þ{†aÈšG,vÐ÷“tʾÊå0$ºÎUŠçí»†B%²XF$äÿ8× 2}…ÞΆΠôD,Tl¼R2K;?üIÍ‚PE>´Dûx¥YåšKE* (êËt\hCЛ2 ö…E4ÞÔ›W@7¨U€¹Ø—Í@¥ïF"(,ÞLIPbÛ)Òàzpeg²{W˜&±!EÊùEh’Kd\F÷/ ¢žB¢¥bÈŽÐ Xˆö$ÆÀŒ¯BŠXI±ÛííûèLÁrS ýõŠƒ-yEÖÓ"*n + o  ‹jO @ožÜ'Çœ•LÁ"Øõr…>F°¡¤üJÁ:˜FÃ*&ÙPɹ-[¾XxBÌ ­kÀ­²£LQ(ÄïvËUùøwYúÝ(“ªJæd€ Ë`Çì˜óâ»L›ê\a­å' ODáwYáÜIÌdgFe$ø ÚZÖJ{ýßÑôR¡/¬§Øò‘aáì¸JS†Yb¯”Ÿ³`0ôvûu ô)‡ù7Jô õ)9ßhæj`93J& + ÇælhÖ'ÏÀÞ"Øñ ÓÜAÚàòÊù»¼ÉJ” ‰¦ç”¢ÀÞ8ÜD\O¢›»z‰ô®Rs{ùê"Ñ£6QкX ÑXëGæc‡eqg”Í»¿]ÊVr¡ê²}Ë—Kø0s4oWº¾1áQSöüÀ=rŽœË'0Ò [-”£˜ ¿‰"‰,Ö1#Þ•›Ø8ˆ‚T«%;ӌ٦suá~Î(• ²±©TÍh kQYÉQì|&F|Ò°Š÷æÈC´…%ËTcËÒt*t&*È-3½›ÿ_ïÜ;½-]0ó¿ZæX¼ÆBÙÕ0ñùáü­<6 ¦ + l:¬u»]s—°ñ Àt4ÎÓ0Lú½ðîÁÅ€‚j“·¤à à½ÕtT7¡|?â´Tzâ;9‹ + OÎa5ƒ²r Y‰«^‚/N^Jsã–q§¨+%Ì¡8äã0‹†tPöSÊ ¯!òl—MÏvX“R¤“ΠØ©páy`é%Ü+¦IŒ¢$ç"©ú (Ó2•á°,„øt;aA)ùLéוּ(Ü5ÄA0Ã'ì”ü™­à#! @ÑÐõ¦¢> + endobj + 292 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 294 0 R + >> + endobj + 297 0 obj + << + /Filter[/FlateDecode] + /Length 3028 + >> + stream + xÚ•Ùrä¶ñ=_1¥—PU—÷‘·uv×vÊå¸b¥â$Ê4„få‚´Vùúô’3¤Ö•'F£Ñ蛇À‚Ãé@Ÿoß<¼ûÂÀ/ÃÃÃó!,aì—ÉááÃ?½´¸½Š´È½oüëí}ÇÞ_´ªjÓjžý`ž5¼ÞþëáO‡(ôÓòpŸ”~A›5Žz°w·÷I{Ý;ŠÒëžù[듪eíØ5ŽfôgSw¶ƒÏq†é‘f°» fj=òçuµemY€u-ƒ8l¨L{"FƒÃ=\1ä+ŽgÝø38#)øᬑLà=>~ßÞF™÷ëmšyj0 + f…7òâÏúˆ‡Øœ†°¬ypÔèLË@êÚ + ¥ä¦´‡g/çÎʦьµ¶”¯ÒÖœZ5ê + Ä•‘§ìöO°”{ïG8£…!Š¿x‰/‘^^¢\‚â ðˆm""$Ú„«P<² + ¾Z¦±Àe[è}èèŽS£él9ÍXÆt­•ÕÕú6)Ýfj+Ï oOnq”€¢ukµº'Þ÷Ï Uü±|ÞSñ¹Z6÷ ŒÒ|dñHûYr?0î±[³PíäÄÕc + %A0BÛØ혇¤ôT]w(‹:«bàØñ÷‰ùæÉòî0O|v‚ï*#JDJ:‹H;¢GpÃO†X숫)þ«‡ŽÏšuåBá7ZçôObz“(D`°§Y¹~Ä"ÙàÀT‚fž_S‡2ÙgŠv®,ŠÏoçÑ ¼(7h»V¿eîI‚¹ÿq¥ n ð?_F´sœµ$ˆ;lj=wÃÈÃ^Y«NxEœ¡îàw2"sÁÑLª6–< Kzm~ƒ‡Žårœ3g›÷˜¹Ä›²ÃòÔûFqûçe{NCØÑ–;òólûyâÞ0]lŸ€dã0BÛÏØöóxŸ·í==`’íÃòlû´‹í}c4lûQ¯mˆ¾gà'dDSlDCîn8‹ÝÇ%ñ—802°éìÈ”/¸£*Nƒ:V¼ m+Øß:|sÇ™‘8fF0¦2#8ŠR^™9¹Ð\¢ðžÜã#8¨Öö R,•\CKïݯâ/ûÀr×LqW£Zb(ÞÑà}3ï Áÿ~€,@=Õúê¸ùkî ûA[Í>fÏË“Ûx€ÄÁw=wCC€±ÄDZæúhÐ!•8d‰#ˆ¡hja RÇËrÍÈ;éVœ>„^?=ÕæH¬æ¢¿ˆãhÚÉŒ )`mËþ 5–nœär + 8ÑjÏóæžeNg‚9rÿÔ¯¼übÆ3ï'.Í‘'ì/AWfìË`Ê}àûHœÑÐ4ìm’©û­sè9бÑe!çðíÍ]ÛÇ[œËñ´„žÍùíÀë‡î4¨ÆÊþ¡Â‚ªÔü¤2´]£yõü{ýÊPµä"îͼ"°8‹s”(dSŒÃÒ½Œèíà»z;˜±„p¹í'Â,X5p/‹—±$Yå¹Û4ïVÓØ= îD;«2†Â7 £—(“9åÒ£s@e,YY"SF”®8—% çCÎéËžÎ)3 + É;|±y<®Q•vĘ‚jyÞaŒ|1`nûáäÒ¡`pŠ(‘B.“0žÍáb¶nÔðyêѾbD¸®žÀƒbâ%fä)î…±K…0ãT ÀÇ Uéì {<Ïi•H6\#`¦Y{ì¦,„3P;#ÿ™.²Ò†í¶ºp3¸ð4‹1ôÐé‘Ž¬óXÎ_ÊÐÛqÀ±Jï½dÔd¥[Þg×—g¬Åy.# v¨ + æ3#LdÒ8bm…j¿<¼íÈ™ÔhÈÿP5Ý4û'˜wB  ˜N!F¿gÈ*xž˜ÀßNsáÅ)](OÎÑ( 8P®ÕÄ9Ä·ÇÇ?÷ + ^äfß>~QMOeQZ°Öàw1•´XY.‘R‚¯%‡ p%ãšöXO•æI_£ÇÞ}Ê—‚8N"àˆ,Ú ¼$Ü‘VUsúq,hèÍ»‰fUŒ++)-.OòÓ>w\Ùˆµ'q&×"ÄÐûA=Áée‡ûÈÙL?8óƒì0Ã~y“ÖõåŠØÜõì©©· ü$ŽƒûÃdYþ²³=Jý°õ‰ãe§è‘+Ãõ«ˆ*Žü4[» µ¤ü'®ÏO¿tçWcµ=?ð·~DZ’cG–f•\u¥ÊG¢9,T¹í]³ÄÏR!v÷n›ùE±>­ô~¢ÔÍŽ?ÓS4O÷䯚;ýé«ç-e»&U†\<¦sr…[äk=#85Š|h±çáÀÒs¨fK¢@³Ä¸Åz™{0ZŸ.¡èÊf´µÐ/Bw/ë—ݦÒÏ—÷ÙHÅ/œP¾Ü‚Ýwæà̳­60óóp-—÷;lä¾ã„’•¥ÇisÕbñ¸9Q¡ú¸z!©ò|t¯0×ø¸Žñ„Á¤“8À,‡ãd!­³ bï¢ßÃ.þ% ñR¶ÌËœ‘jk;lÆm´:-ý0û-|Ý$¿áœî’sÆHÿr6T·² ã€TÛ¢<¡Ûƒºá)•¨(˜bN~2ª'á6ÁŽ‹³£L,Oý³ìâ'ÃÄg9¤'G)Öhuý,¨}=Inf'§ºqŽØõôvË–^ + ³ æ~é>¶ZWÄv:;†»º¢F,uÈÍ H ҷĬR~Îæ¨ i„´tJx2@’k×åàô^Jj5Hòu½ÖÜTä‚ù-Þ„ŠŒ€{/œ^‡Îß|¶œu»öñª´ ÅÜ3”âP•¼ÎÏé¥+ƒ=‡v•x_q17Â%gÒÔ¥)…ÁµEa6åëo@6Âb3W¨eñ Ì-º¶ êVÉÂRàcB³HUQƒx”U¯é‹é|þ½e“ {‘ý4ç rì[í¢“i[ALäد¢ý«Ú%R"‰þ^3)JWíô ð£´eGÎ×á—¿ÿã†GNŠ|ZÕ84(=¦–úâ‘#ròŒv{„vͪWØ(ª ª;]$Ñn”T±µ´åA¤\É)w»sêv‹©Ì(¬ÿ@‚sâÐ:›½´n6$V’À5D‘†k8c[ß6Zªº¹%ZCa;‰eEP yßIÏZˆ %ª–Üȹ ‰­ØË™lpˆø v‚†%î½Î…¶ÜñŽ›Î¢¶FÃ.¬¥xϽϖ7‚fœt#U–½A•ÆFÁãÐhÎ5˜>U)´ãFVäa€ü±c7¼ÞøØFÂBÊ$r`9,ÿ„ÅA¼ÅN+u&+<ò7<&íËʵïÎrRYX\ô0^ø€_ɱM<™Ógü9€ù˜==Ζþ)¡*’1d˜ù5¢‰TÛ;,Q5}evűk|p ͨK“¦J‚ „xµÈ] Û®\]-—ÿ7¸<Œ5o%çu_i÷cSK„Y¹Ž—¤ô!öΟŽ´Ê"rPˆÂ·Å‘ÜVºfOT䇒NqÃLù¿·e:•ðÎUx(•Âò‚ ²?옼 ÄôŸW‚ž jFã:epÿ´Rv 8L¶’,˜Tr)IÜ5k®Î Kü_•ÐÈì;S1” 'sëþ÷îôŽÁ20)—u^EL4Õxê:Uóï'¤ûñáwÿ!äì› + endstream + endobj + 298 0 obj + << + /F2 13 0 R + /F7 47 0 R + >> + endobj + 296 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 298 0 R + >> + endobj + 301 0 obj + << + /Filter[/FlateDecode] + /Length 2678 + >> + stream + xÚ}ÙnãÈñ=_¡·P€¥lŠÇ¾Í±³q™Éá 0ˆóÐ&[³<´Mr=þûÔÕë·]° + ¢Ì;eûÿ<üewÂ;QvL {xÜâSæ}ûùïßíS@qÿ™q}øú·ï÷_~! àtŒÓÝ!HŽ§À¾ïSåµÃþ‰Wë=Ð÷Ê“igº)xP”]o˧¡78O½þ"ƒ-˜zùP›{>_6qˆ“Ø«MQõLTæ™pXF’·uml^êªzå•Öá>­ŽÁ‰ˆnÚfqX@\Yæ]m‹×ü^éc O#%1D2ÅÑ_ËÜ4˜“ï ñı-Ÿ/{`¥g MÛÃùŽN"B'`cÛ"A Yèu,ZVp1¸#ÄðD_¯Uid§oå{‘Ý #.meßäCŽÀET¡®*›%±ù¬×á,³P¿â5h8ÑEÁƒ/L-+—ò¬º/Û¦ã­@ѵlï¿£Jø OL…ÄT‹L#l{vKeÇ+"“#H0Ù(n6Ê„ÃRþìp½Éñì¥)sôÞQÝ –,àØ÷Ú'°é!ïy,ŽV%²m+^`=ÀÀ]°&gÇσeqà¢3%9å3ha-ûIâq + ÌþŠSÃ3¼)Lü™ ¢€Båý¹ÅS/h³(løoïÐ Hñ ›Ltž›kÏÁ™\hê4*‘—ÑrÂôËQ7ÏBÉÙ‘Â\×lÜ#¿'5±£Ná"và¦æO¥í3­D@@;€óÑ2I¨‘Ÿ'¦ÎòÉ‹×÷ÔÙõrK…†ˆ£s[U"*:ÇÊ€™õ®¬ˆüqgr NÔÄ2„Rµ ¥a8 ¥!(€)‘Ê`øÀÑè…a”zCS„OC§kãŽÎ| æ]¯{Sð)ýDþN\±ê¥vM” Y±#ë:®@{†OS>´ºé®`¬¼ÊqcjOàLKD\±`d+!­7"J#²c‘³JO\hób'|Ý–Ü£Ù-€Á©wf$ÂŽv‹5xƒ±‡Æôòjà 1‰C…Q‰‚ä†öj¹óRÊUÛ¾‚ >›ÆXêaçbyÅaèX­±”Ø9/èExß„Œ)$À·àSSµºàã#÷‚8€œšBÛâöÖ”[ + ¤Ä^"t[Q¡C†ÑB}­ õ–Â7”³ÞTÈy¥KnâLåwa‘fÌR!rz±qB…lœ„zãÛosÌ C'¸äZHˆºï¹Žƒ ®¨A¹w7yÎúñ…³)v1–«Š)……h‘æÚ Ö—‹iøØøxÂ#âÁÏe³ù®ãÀAÖAaF‚€¯³Ûˆ*I!QèKû.󠤑‚¯ßÓ£Rznwtð<:kLºnAæºnAö†6©éw{ƒ)xÖ²œwɱÖ\¿`ïŒEˆ3_Œ¶äˆ»ôš S²àžË{+± ç_°=Hˆ¯€C ÜÉRHPËEçÞØ›»ªÊóÿ,È_¶C"?ò¸Ø˜bH䫹lâ`,”dp£~û‹å¾ ‚È–glXqψ5½.+yÐÒÆÙáÒÉÚpaÄŽs›rl+‰[9JïÔ£fgÂOPƒiýŽ[—ÀÊ ?Ÿ¥^bmhäì7z^ [¡Xžæºm!¸ì:tãÑÔ£kx_µ!„év< ùäCP2ßlâü¹N >*},Íúzè5¯ ceÕ–`q)‚pbMá}&/;³Õ”, @O¿ž¨0pÆä~ ÂÁêZ\\\‹æŽ›U%>4ƒ¶m%#ö’lÚÚÊëÜfBà~AÄ+Ë_æ?•D®­AK¸™è1?p£H ‰6؃ÅoÔrì%â– m·¿‚à.?ôÚ®3øÇ'5cšU‰Úl3–=v "¨QÄ7݃þŽ;¯S¤T‹^8œ,¦ÈÝ7Qu ézÝ£“¯y…Å™*"ê~~øÃÿ&-Î" + endstream + endobj + 302 0 obj + << + /F2 13 0 R + >> + endobj + 300 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 302 0 R + >> + endobj + 305 0 obj + << + /Filter[/FlateDecode] + /Length 2482 + >> + stream + xÚ…YK“㶾çW¨öªj$óý8®=³ëqÖŽ+;v*倡²)ÔŽçߧ_ A‰[¹ŒÀF£ÑhtÝY…Û0\½¬èçãêû§ï>Ä«(ÜVÑêé°ŠÊU”l«tõtÿï ×›¸ÌÊ"øøËoëM’$Á?´ªÓjþúdž{Õ¿­ÿóôÓ*N·E¹Ú¤Õ¶¤Åï·ëMžUÁo™a`ZþŽD(ƒ'342÷ë:.õ"»@µ5»ù¢*ØwÈúu—îíó40žT-N¾íÖ¼XñÏ0íS;˜v?ðסïNN¼dÃô!+*·éj6‰Ø&÷Ú$Ø_Nš6P…¢‹Ø -"ÑÑÙaHRá÷Ü믦»Xþ‚Säx + ÓµD áä¯G³G¹G&ØcwijÜ£Œø˜$X÷"ø•Ehæ–ó¯Ë$¸#íCV=#ÕŸIsdM“ KhT9Mùf€ÆFÂ0ÙÁ½Õêý`è`†â³ÞØc·†‹O‹4øªÑ]˜ÿ¤X3ú¸X}%Ū“#ÉeQÙÛ3(v<ÏŽðåÙ 1*qòP»7/¦U¬¾<ÃñÁˆüIg&qXx“àÅ0ɲü3[²?‹<[ÒsÛ*ƒŸl›G¤ì÷yabуäeN±lŒº¸cVe™¬.àGìéðյ㉘pêzYìMÜŒŒ–™^[f^óì48Àòy9ÈduÖáhhQNÃ_:NìµÙÅY±W{4ΠoÍXöYÑ‘øûºŒÅàpи‚Ëè^ô@W„ó¯f8â 40¥ÑÊÊñõøþÂáJšæ±lŸ£ç@ü›3ºÒåd Ö­,q»ÂÕŸnj + ¼¡W—,Û+'¯Óm}9ñ—T ¯™"‹½éþ>Êý‘“cäÄiÉJe¡dW—€î˜E‡ á+ñZBÖ´âÓé‘ øë:w€HhåΑå3—*–©$à œ|ýàW'è4£…žZþì<ûË`7QýW©&wKœCNœùÿsÿ— u(¯p¾ y|ŒI<@§àÒm<Ûèqñ¢gý$‹½‚>8ñ!²×Ì·ÛIyøc++®Ñ2‹8âjÊÂ&5=Äb-‚b— ÙÓ šÝ6J·Q>s]È>§%•ø+¥@ºŒJÍO±Ÿ0îiÕ ¨´kyýTY«d?…’ŒÂr}›ŒÂY2º-B”«ïG€ª®¦Qõiª}]1Hµt<FÖ^8Œm›geúƒ«øøÖ`³éÖüš?](ä7·ˆá÷:8`¯9æpA + 86]M‰T Ž÷P%\‰È=T~iD_d~X᛿”ΩŒÄè6Øš4M•Ïì Ÿü²wVÅho yÅw‘þ-󰳇WëOÕÚî{ó̇®\FªJ\äö=„.´7hD榽jbæM•ãëv•l[&~°ÿ´\Ïd.Ç„¶z `G8ìú/<Ûˆ©* [zª,Ÿ÷˜0ÍÌ ‹¹Ïϧ-noŒø¸.ÉÆ4ËÒ÷{.hQ@Ç §šÂ 6BŽƒ^µö¬zÝŽÅOäãc*”:—Lãå>ÅSDí/tžWÃ}ê¸6bkå¾µÒpn-Ë2f¡N™y¡°'¡Å¢}ÒÜÕm¥ïiá÷¦– >Z%Äghj¦cƒºI¡Qz:j+{zýxA)ž=wk ø«y‚Ab*¨gúûˆ#á^q†ÝLmG\xÝ?òu'j`¤ð'»uA\23*ó‘AÆu)¿}Œ ¤¾ptꬊ©×¯`íVÅcþ€áËc9°"¨ˆ\tàn»rxTÅ‹·WQ + ÔÍáÒR'B)†üÅÞ»D5‡¾J2»pß䔫'Š˜½€Zûƒî]KØyLþÿž/  + šu!ôø@9T—NOLPJUSÎÁ™y¥€Ó»Ý{zËú9 + 6|…‰î3!Ví;^æïv÷PëK½»ã+ŸWœµm(àíÊ·YŸG•b%a‹Ñ“žä©Éç¹ô*äbua%Ïr×?›¾<d·{ù%”qĺ„àJ{4Ï‘¿u1°ö;ä–ËÀo8€N´|Ù’ÂÑÖß1w + ©i4åB ›pa¼‡«pV$~Z.ñù…úàÒ•C0xl¹œD÷ËqdžÊqdäLî­\â4ŒfånÉ „¬3½ ¡6çZ\ú³p֟Ѫ*Wá=ÆâÑâQ7ž¡í¡á‰ é1‘g8r]¾¶|ØfJ:@W½0@™Ïƒ=¾­Õrø†4%3Øér`Ou\’Œ*Ó5Åá6ŽùšbbýY®é^7z§’1>“$÷e×5!Lïvm %Øøöcß!zgiðù⼕ž YÀLÚ”@’\ÎœÞs‚Ùƒz¾ §üxΫò&YzäIýªé¦sb#üâŒÐIyOºÀ ×î-9bØÊIÝ°‚ÎŽþ ðÂ|Ó±°ð)ÓA¢ðÚrQ¸d9ž ñä€ì­Ì^”’Bàú¿ + NS0?uÒ›Ó¨3D÷·Â ¦>»Ä{ ãl ¿ãQ+žoðOLتïhø#3÷ÆîeNp ηeI;…7•èй‹’|©Îóùs²‹ƒXžæ¾ ‡^psR¿÷³À$ÏÙÎð«Îg.^ÚZžÝòÜ=äÃè‹jÌáí-B˜¡íº¶Vô¿þt›àk·„وȊœÔtÁ/(¨á6šñ%ÊpC˜»—Öé9)[.<Ágä]ŽŸ­¦¸‚Š››‡§¿ü sn- + endstream + endobj + 306 0 obj + << + /F2 13 0 R + >> + endobj + 304 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 306 0 R + >> + endobj + 309 0 obj + << + /Filter[/FlateDecode] + /Length 2597 + >> + stream + xÚ}YIs㸾çW¨úªÊv¸/™S·ížxª—Ck’JÅ9À",!¦H…K»ÊŸ·E©O€·~Wþï¯v+úüºú°ùËÇpø7E°Ú<¯‚|D7E¼ÚÜýË{<®¯ÃÌÓui~¬¯£(òÞÿ•¿·Íq¦Þ›©wH½ÍÞt<ôYÕ84¨ + &GA\xi°þ÷æ·UÜ$Åê:.nrÿ¶ÙÍд$öšcošÛ‰WêÎìjÕkîvÍAZMË_UUBxæo¿×åÖ[”„»IROuL55®ö}¤Ö(êõ7ëëÄϽÍ:½†·Q6V é® ™ž*ËqÓÒQüÕ5¨)`5õ¦¯4.“ç^ßÈw»É ¯2]Ï$Ú*|ìN»`ç¡oÓÖ¡gêYŸ2GiÃ$Ó%ÿ¾Î#O·Ìû³L¬ÌVפèÔM]8iø`%T“s‚d~0ßw7ЦÁ¬O°bîi*á,¦ÞÒPì=·Íé¬Í7î4°Ý–›b îð7ãâÉMÆnðO<@3¬¯ã4öJDa‡§ 'þŒò°sÏ&D©%³?>Þ×eÓvú ÉûîX0.2ïØ6¤sSZ^Ó³”mÃb”A­ãèkO^ÃOC¿´·vV©¨·0fóbHL^&l²Ü5°8&c®'«?h[Çh†Ž GÕöFwÿ&ç‡éú‡:+Þ Óºâd¶ŠŠ…%”Ñ6a‘{­þnô+¶ Š*¤õ{ÕÛ––†þÑ3Ó# Iâ°"uÕÑjÈL|¢´¯„³iwª6ÿSlC”iEŽË©¡ß7­#™ï(ጯ–UY›É³Hóè†âu½ªKÕ–3WËæ®A,Œ®ù…Äx<ª®S;ÍZƆ#÷)È¡‘m’Wôº¦-;‘Ù1»bî¸x+þv}Û ºXg-ómÈ-~ôhؼ¿¾¸¥@¶äã––ÑŒ>W¤^˜°þm!™•ž¡Xü|P[ÜÑË鎕£ìÈDpfÍE…¸Ù§=wèÖ:I抧ËÆL}"ä4x'u \y_ë + -Z€™kÍIo…D)nŒ"Î=¶Å$utI}8fÏÇ2ÐßRò·bÊ«‹äŽHiÂ0†˜Ú\úü´Ó6ÃnÏÕ¶ªÞ͘ªÔ<Îaø¸î1OŸ¨Ú&RÜúntC =<Û…óŽí±ìz,IU­VåÛÒý$:­>Vj«gfw¯D­à6¤ûˆ÷œ¡ƒp˜ž{Gvìö`:©o@¨rD`4ZNzÃd ´¬ê/‡Fd÷…¹¿ + ìë ¶ØP*É + ),^‡±@J]Зv)gÁ··ÓÏx~˜åq˜L€ ²8Ø"Fê'‹Ç°³³•˜NÕu6™#:=Ý´L«ÁëµqàD¢I´†EdÁ4f¿V&$FÝöó1Ðâ‡OpÇb[;+ü$QÇËD£h£4wM•`O + ïöëç_¾üÊ(óîëíïŸï¿l¾Ñ´Å¬ <†.x„ζ!$ûd0Ï!Œ:ºc-ÆLñd8þjú=·Â"oyjøŽYZ]iÕš®¡.yB,VG¢Xýj© ˈ‡Q| ã¦ îSYDò„~¡ó˜â„ádFÎÙäÈp8½2 Q’/Zï8qìŸ"äÀ‚Ad·¹âR~Ç2®Þ™­ÞИ `é↠1‡ýµ(ÌRçZ„!cg^r«Vn:æî®–GêM]Imc„€†üèÀ4Þ6:þ^:|ç E$ (r. ÈCKÉeK¦¼ÒxûÂ=H£}g7ʼneáa|黲¡:fM%Ñ>U$iHÅF ÉÁfÉ&òþ€ˆê$ŸJʌܙn[)sº”‚1IÌOE¾¦/Ü«5Ó!ÇÔ69×3¨…FŽNâ¬JôakŒ>ÎtµˆæÛmÕ¸@ñTðx)Ù[ð˜…c<,Þ ø¶ž¸n‰½©ˆ&©­ãØÉlE-yˆÓ =Mðp(€6¤ñTŒÂ(ß„ÂòîV¸”mœœ(çž9–þ1÷FÞ¶zÇhTK+& A Š‘¶3ÖÂb2•Í“@xËz±ån’/¯,ÍÆ‚F$z{× „«e_6÷‰[óßA€.õ& Èà + Ûý ÌD|m!0óÌ_Ó ¦1XàÎ-çÀ:KNj¥“„qhÊ=ØcØ1âÎå¥|Â=a&ª ”DqhI;F†_jJÖ¯õ'~ ³ÄÓƒŒ˜îvð±ÚÁ6g8 ÿŠw¶7\¨>O&²'¡¥Ùð W•ÿºþ28¦{ajpš;»†Ž}\Bci–SÒj*i=å:.‡¯Ms‘•¹²,ÌJí³×\ôÈé`ƒ3`Å&Ý3ÉìËo"JÂÆI‘Ãj + Ž2¢ë8 µùÍÃ#ÂÎôv‰¼÷\¯ìŒ?>þ Ö´oï˜ÃœîÇ֞륕l'¡ë¢0c‰p®8á†8p áÊ»‰û¦'œÞà¢ÙÁÇÓŒò‚‡Ð¯†ßggu€ V C8/¹q~ºPßó廦»÷+ È.—Ç¿(±¹Øù]DœÍd ÙȾÓ%”bz‡‘R#Ú\^g¦%€Ã~^JcwÁh¡9 Ì_/Ñ7ï.@åt„ÊŸ>Ýßn¾~ùÆk|ý(ùh>}­Lu ô0ekR·MUV§~ÝÑKðŽû”cÁ²Ø8÷NÖÅøD Ísø—ñõ™ŒÏà9±vê`m0SÎ !y¼Ëb‡c$Åw¦ÒÐ¥ü|4ZáY˜ùD4wL=“5­]>UΧ\R â4ã‡í ààl°'(Sg'_Ý¥= SeC™c¬+ü¹±@öŽÌt„‹È{)\c€ÑOE<4Úryì3ìƯ¨ + Z“ªüL® þøÔó¡t`!öˆüÌ+J+[ô]ª,ž¿Œù¢ŸoË´7ýœ+÷ímÿÓ?Q»qã#^«èÇGsX$n‹Ï\‘<¾{ óg 3[aÒ‘IèOKkp‰|#K[×=“Þáðo b$B¢ÜF¶<\¤ì©u + œä¼/aY‘‡œ_Õó˜mÆÙ3—W€sò¹Ã?Ûø_˜ÅFù¨Ås5w*ôïÍÞ]¨M‰@WVN¯‹ùg–döa6šŸp¸c~KÚ©VbrêªH™¹*®{î×Êt¯Zø{ÙýæOÜê2 + endstream + endobj + 310 0 obj + << + /F2 13 0 R + >> + endobj + 308 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 310 0 R + >> + endobj + 313 0 obj + << + /Filter[/FlateDecode] + /Length 2738 + >> + stream + xÚ…YKsÛºÞ÷Wh²)5Ëâ›ìνV÷¦Î[i¦SwA“„ Eª iEÿ¾çÅ—H·Îó´X¯ÖëÅ~AÍçÅ_··Ÿœ…½^Åöb»[ØÑÂvW±·ØÞÿË + œåùQh}~ü¾¼q]×zRI–ëBqï«~5‰¹,ÿ½ýÛÂG7^¼Šhm¸ZÞ~lÝ-ÀúüùióùnyÖöáÛ#¯ýñ°ýÂ_÷›?6ð󸕩¥Zßž~&ƶ¿ + ¢Å 4¾K¬ï€jZiy<é<©uYð@¹Ã6²êƒâûå·Òæ¨ + dY áV×/È”ÑoKß·€ÙÛV¨Š)κ>È`j˜ºR§Ä$µì‘™p+2u¢ý|É~(ÿdwW¶O²g(R8 w + |– Ú3–ægõú¡\Çó¥ônÞˆ<nØ÷XAÐNWui’½³ÈtUýÚˆâ`ä¨2ÝiG×Ò"Qšä¹Ê¦'Hp‘[//É~oÔ4ñͶ¶ôŽ[Ö?|¤å ­1z@µÖ¼Ò¨ªÉk]ì™jgÊãdáдȺâ¶(kþh*•É¢’Û\uÝóÈÍÎœƒ¨9(?¶-–‡•}Ô¶´¿;Ãýÿ,4°¡‘ÏW¶ò…tæÇÁó!©¯¸€Gè75í¶gTÚ»kKœÅ€Ø+ÈýãN1Q¸¸³ËîÜùNÀîì°n`ZiÞd¤è‘™°m„æµQ7-ýWª¢Þ‡Š’9Ö3.?ò ’¢±ey¼>&ÜÞm§â“»í2w wÏâi0Ð\ÇJŒŒ‹©=\x¬TN®Nò•D¬×G,÷r + ‡áÞ“Œ°ê†ôÂŽò€ÞàÅbGøø­DùxƒC‘µ]FŽ¥~ÕÜ3ê?6ª7 ’SùkH)û1²ry M€]Ô®N“×\ñ8ªX¶®dsˆ!§Æér$ LŽóqê÷5:,ó)>±•ƒsù‘è*nsUULXáQ²öäÂŽ¥ + Z¶¾%Ì´‘þÐÀ½ÚèÐlžG9¹Æ'.ÚwQûHÇ /}p†–âÎ)OR%J& ØÞhMáPwÁ õ,ÅùŸ´wÝN ¿9…Á<– ]Œ¢ßÞzMé·%˜œHåà%¦, n\(“èP\‘r܉Sg$ùÚt¨ tvPˆ–9vöÈŸÍ‘$x £À²ë½w¥9BBòãÈú†~Ö”$˜óeê`G”¢©j‰ß“äµÄH JüŸŒf)8qO ÁšÔü51.éâø|(sÅé¡Ó3‡òÍ.°|‘ ‘íÓÝãó×;Œ\B!WØÂë]Ë$EÕVÏ Icž‹±XTRžÀs#¬²ØüÔEÆh9²ŸdúÅñÔ8xP «’)¹x4Ì¿s`\Û•gÅýº—f&»ÒŽ‘ŸÍbœo“¦èHk¨=2›°OVØñ@qñÚ̇qDõ‡ + ¶z§ÑI랸Ë3/¦„ž¦ùhxÀ‹]ú¤^lUâ?©Æº‰#}¡¬*5àœGþ$ÀŽnΧGHå{âMÍÔ½ €¦µÁLý¢²Š©ëÊ4BÙ/±Ë£ÐP Ãà'xGaN†+(‡À‚$Ë´Ô Ü³äYÎ,´Þë‚P ·Ià}ÿp=¯­(.¤ãNœ ‡‘±çvâ  cëŸ ¨ äÐ9)v:¥`'a¾õ0l\) ¼7¥È*$Cgd€šr¥2M[‹S<ßFT]tŸÁ1¶ìÑð1SÁmÞ ø´æõSAbLkø‘™{]¥y¢ì4 g+M i8U!ÓÖ¦P9oýÓvX\L!±·)ö¹®ÜXu˜ZbQ&~uø ;I›‚Þaþ†©·õÊ+Àpj–ä%¡×+;l)øÈzÅ`‰(À ^Ú•döÝ‚—$¡èo‚¡k<æ™J€*x†s<,ûlRÌÁ,NÁà¼Øé«WΠuFHO=þ¥ÕÜ&Üðé‡Sáàìè¿qü?¶F[Ÿ5ø÷D×'£8%èüêÚ¬Dhº¼Œ--ïoÏz[ + =ÐmÕ9•^yy¹ãâZ”¨û3LìÙ@Õº*„@uC._2ÈÙ ÷|yù¢«›*ÍiX*ÍdÐçË÷²Ä˜ó ü%AÖ&¯  ;Nmñ,L}ÅÅn¹Òiˆ|ìrÒx¡½Œä™ziÀî^n§È‘¤5ÝäèJ‚û¿‡7âolžþþðøðFŸbá˜}Šu¹ÿ Y¥¨!åG:²Á3½» {­š×¼O°ŽØŠèzH}>“3ÿ@‚êþ•ª“|'“ª_à°U•_æñðöËó<¥>ü¶y|ÞÏ Ë-œÀúD×%½çr×Pz8éhJ0A{ƒñ™ÅƒŠsÂØ  ¡Z¨óG†ëPtÅ\㟠(ÎØ’7aÙÐ!¡&f¾¿~íl«9৾ü„?B,§é-VÙ¬±?7ÝS‘¿FÑ™bi-»ÎuïØ©ôQçt1ôHƒ'mt=ƒ,pÿ0hIˆ»€˜ÈøÈîHÛ§r £{`@†¼/´™ª¡öó7ï"ò7ôê‚>m\¾æê(Ã¥ðÛhª ‚õ‰ÞŸÙ·ŸÜÁË~¼rc ÃùC]Ÿþr{{>ŸWû¢Y•f ñ~ÉÕ®¾å…ÿ‚õÊude[ôÂxÚCÝ$mp¹ÔÇÈá'V×iÑ3|}t©@»—D‹?Ð`ž†zÜ€ÏrYÊ1¾"ò¯†Þ"Ðä¸;: Ü÷®·ž¦÷‰íéâ%oðJ.ªùÙ$<@9$mÈ¥pxF + ( úX®Ü’´°ï“bŒà‹jh î,q`VfÂñÃÌÝŸ)ócÌ–Üj¼¹AeÑI9ðå…Ð…/OmÀlBhwežsÁakôôAû¤€KùÎcà§|a”–wãOÒìä WV@MÚWÐÞ³ù œ BÛ+ &[…ÙWÀçÄž6¾fVü!éBÜ•TÙný"Êf\D-7™Iv5bOfrý”0¼«Ìé2&õ¦i¼£éÒ8Þ¶œ5û²ß^=àcÁÁâás>P1–ôãFwI¸Çp <‡®µ:1<1o¤£á ?Š `œ#Ú\äÎ9ðt$§¡ˆ´Ë`W,C\H>t;Ë`ç•þ’œ{m߯_3–+ÁµepÙfû§ÿÊÝîò + endstream + endobj + 314 0 obj + << + /F2 13 0 R + /F3 16 0 R + >> + endobj + 312 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 314 0 R + >> + endobj + 317 0 obj + << + /Filter[/FlateDecode] + /Length 1269 + >> + stream + xÚVKsÛ6¾÷Wpz 5cÁ$Hñ‘ž;v“i2™©ÒKÝ™Ðd¡¡ JÖ¿ï>@Š‘äLOÀûøö]‘ˆ¢à9 å!x7¿¾—A‰2æ« .‚8eÌïþo¶ÛÉTæ¡j–úe2M’$¼yËë­ÙNdtóŒ2œ¯uËWŸª¯ºªá$NË0K&ÿÌ?^ßǨ;*ÑÎÌÇÁ4-EÁ¦D,âÉt–Éðæîîý绯ŸÐR> 7“$ + ÷H¤¡3|صŠ7ŽÍÂî½PM¼2–76eñ%ŠÇá¢Û¨/\ËÀÆHÑû©,…ddóI!C“eÁfeYz³¸;š¢P7|Xñ‚ædáÍAk9`xLÇĺ›ÝøŸì­vN5W¨2•‹º[ªô.0ø9è!~³bãn­N !ÑCÂ[ð5˜z!1gùJLhÕ,q“†ÛÎqbÉnV¦® :±ÒßC²úy¾x¯$ ë!L@4ÆÙ²ú»¶g^9e0 ×®öRÛêY½õ…”…(3ÌWR“;éŒÜÊ$ t&Óð1¼}œ°T1员•ADüUÑ8ΠX¨Pfr6ÕF™Êc‘%^JôÁ”BJX#‘ftñEÙn[m¶u‚ŸmÕ8µdËWˆÚ኷KÝ:«Ÿ:§˜†È]fc–zuð¢ë^ãÒPÊ!‰Æºf©,›§@’àò‚X0¬Êß=|þÊ›{«üÑW^9ïÉðÀ<Þ¿”m‡«XÈ1 + N„ñªÆC¯+§¼G»±ô¶{ªu»îƒót8wDõ§Y¹}eûsŽÀßÎc°×nÍöìÍ®²²àu©Š¶ÞŸžëÞšÆMoÍ®‡:W/®g¢rs¿«ßϘÅ9š†‚ù~%ÃA¢O±üËž:‘iÙ& YøV<ï·o˜Ô3}(ÓŸ$øÍqÖ¡‘ ™SóÈcÒôHjf95³4ɨ™eC3K“‚Îím–…|ßðj”€4KÃûI‘„|jASädM–ùçÈ€ñe’r (óýú¦0[¬ÚÖÕB±àë-ññËG1È‹_A&Å>ÖøvÄF= + žäycJs‘Éqcê+r”ÀWJÒ¿…Ýõ¤sÅYä;<7¨Ó¾þ¨Ú3,M[–»âüò^¦<‹U2zy—ÃÏà%±Èó1ÂS(q! + 9†2zU"tñù¬Í¨‹:ÎEHDú]¨ü¼yzZùI‘ÇxRÌNÆ8^ŸW>ÖbœgdD¯ ÍØ"±†óc #÷¸†˜äôµ¹Öl¼)á²,¿0Tð¤ÿ°Qƒñˆ/üÌgÃöFÙç~ú®M?³ªÝ#.ã§u Ý­ìð†§¹äH¶>ý5´ÚuŠûc!q2ÄUfqW‹TtñL ß(*aÄ“ÆŸX½ÓôõaõRm¶ø €’äÜZÓxÇ Ö¿Dïež¡‹9ýÄ@Ü*'Ø]2«UµªZ_bƒ¨0ZižŒ #…×me«ºV5S~JãÖ7Q¢Rk£©O匹VÔ¼qפÿæƒæ!òÕÇÖÃw•‡BÙÀÍ0øíN<¨FYŒfó Nægô8þ)«¾ + ¶=üóÓ­-Kt}í ÿôo$¨<È|p€Kâýü—ÿœ[î + endstream + endobj + 318 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F14 192 0 R + /F8 50 0 R + >> + endobj + 316 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 318 0 R + >> + endobj + 321 0 obj + << + /Filter[/FlateDecode] + /Length 92 + >> + stream + xÚS0Ð30PHWSî + N!únF + †z–† + !i + † + †Æz–& + !.Ñf&šºF¦æî~¡šºÆÆÆA©‰)9™y©žOfRQbQ¥flˆ—‚kŽçÌ + endstream + endobj + 322 0 obj + << + /F2 13 0 R + >> + endobj + 320 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 322 0 R + >> + endobj + 327 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F15 + /FontDescriptor 326 0 R + /BaseFont/BIXCZE+CMR9 + /FirstChar 33 + /LastChar 196 + /Widths[285.5 513.9 856.5 513.9 856.5 799.4 285.5 399.7 399.7 513.9 799.4 285.5 342.6 + 285.5 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 513.9 285.5 285.5 + 285.5 799.4 485.3 485.3 799.4 770.7 727.9 742.3 785 699.4 670.8 806.5 770.7 371 528.1 + 799.2 642.3 942 770.7 799.4 699.4 799.4 756.5 571 742.3 770.7 770.7 1056.2 770.7 + 770.7 628.1 285.5 513.9 285.5 513.9 285.5 285.5 513.9 571 456.8 571 457.2 314 513.9 + 571 285.5 314 542.4 285.5 856.5 571 513.9 571 542.4 402 405.4 399.7 571 542.4 742.3 + 542.4 542.4 456.8 513.9 1027.8 513.9 513.9 513.9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 642.3 856.5 799.4 713.6 685.2 770.7 742.3 799.4 + 742.3 799.4 0 0 742.3 599.5 571 571 856.5 856.5 285.5 314 513.9 513.9 513.9 513.9 + 513.9 770.7 456.8 513.9 742.3 799.4 513.9 927.8 1042 799.4 285.5 513.9] + >> + endobj + 330 0 obj + << + /Encoding 30 0 R + /Type/Font + /Subtype/Type1 + /Name/F16 + /FontDescriptor 329 0 R + /BaseFont/VUDYBG+CMTI9 + /FirstChar 33 + /LastChar 196 + /Widths[314.8 527.8 839.5 786.1 839.5 787 314.8 419.8 419.8 524.7 787 314.8 367.3 + 314.8 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 524.7 314.8 314.8 + 314.8 787 524.7 524.7 787 763 722.5 734.6 775 696.3 670.1 794.1 763 395.7 538.9 789.2 + 643.8 920.4 763 787 696.3 787 748.8 577.2 734.6 763 763 1025.3 763 763 629.6 314.8 + 527.8 314.8 524.7 314.8 314.8 524.7 472.2 472.2 524.7 472.2 314.8 472.2 524.7 314.8 + 314.8 472.2 262.3 839.5 577.2 524.7 524.7 472.2 432.9 419.8 341.1 550.9 472.2 682.1 + 473.8 498.5 419.8 524.7 1049.4 524.7 524.7 524.7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 643.8 839.5 787 710.5 682.1 763 734.6 787 734.6 + 787 0 0 734.6 629.6 577.2 603.4 905.1 918.2 314.8 341.1 524.7 524.7 524.7 524.7 524.7 + 850.9 472.2 550.9 734.6 734.6 524.7 906.2 1011.1 787 262.3 524.7] + >> + endobj + 331 0 obj + << + /Filter[/FlateDecode] + /Length 680 + >> + stream + xÚÕ—]o›0†ï÷+| Rpý‰Íå¶4U·ªS6iÚvÁˆ[¡%têöëglH(B«µK® Îñ‰Ï“÷| ˆ¸f¹ïæg30‚ó€%ÀF ̧߼÷«`™#o+ $ŒBã֚蜓x½ÎÒ$.ÒUl×~@"O%éwÂE¢¿‰/Y-×™*?/ß©wsŸ'åÛ¶òî|ãP{ « `ìBì‚-Íö%)…¤rðd€#EŠ!·dí(uË8_؈Ô"-ÒüÖ¹¿ Ñæõ{/|`óåŒôÒÆ‚)‚´±ƒ,ARÑ {~l ³ÖÊs–æÊID!ãc5òR\Æo:‘,“|<ÁÙA‚³éÕÄ»¸þlf¾äÞF)û6]™´Lî—*÷‰ôŠ¸ÎFâ]¥‰Ê·ª3)îsoø¹ÈX凋ádÄÆêr bb,Ò\k&ÎÒ?@ÊŠ“© + ÄFÅ‹R>nXH×Õ§æ諪¨{$!«/ÌLåßiD÷ MÎñ‰ð + µ‰Mi5p?‰[ÐéU('±t»Û ÍM,B g€ 2«²®ÊšIu—f™íW›®R¯UMåéT¡ÿÐ)BýU„hŸnKÊUñ§Z¾…š…‹ÑS»ÑŽcÊÃÝ\CF´Žëa‰ç+Û&•Îûª…k$yF'8!°$‚œ?¡)&[£œ<žx»ÈõØSª .R¾ŸÓȘ!üË0Ó_>½x“Æ?3µ=Ôà…üyŠ=Rô.^ e]ù°bm¿ûڇ׎T¿ËÁ0Îïv£xg5æ†ò•ÀÍÏã–aóÿ¸Q‡ÁùüÍ_,ªS_ + endstream + endobj + 332 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F15 327 0 R + /F16 330 0 R + >> + endobj + 324 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 332 0 R + >> + endobj + 335 0 obj + << + /Filter[/FlateDecode] + /Length 92 + >> + stream + xÚS0Ð30PHWSî + N!únF + †z–† + !i + † + †Æz–& + !.ÑffšºF¦æî~¡šºÆÆÆA©‰)9™y©žOfRQbQ¥flˆ—‚kEÎ + endstream + endobj + 336 0 obj + << + /F2 13 0 R + >> + endobj + 334 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 336 0 R + >> + endobj + 339 0 obj + << + /Filter[/FlateDecode] + /Length 2326 + >> + stream + xÚí[[s£8~ß_AÕ¾ØS# BU[[5îžKæa6µ/ÛS]”„ + /à\æׯÄÅ`KÆvãäÉÆ€Ìùtnß9ˆ¶m][åÇOÖ‡‹>c ÙÐCÖÅ•…¸…èëâãgŸçÜ™­’ ˆÒdÏü$T_œÙæ\e‘‹êÔÏI(æS›“eó?/~ùá3²ƒ¸\È?D äõâ^wqFêÅ™+—§ÚÅå©jq¹¤õéB>9%Ö½…<ˆ°†Ü³–ÍšÃØúw)"‡­%œAŽÊÿšÅ_Ãè:*¾.ë'¥ë+]1³ìò:8ˆ!Óüãèð‹üm%¶ÛDHx-·Cëó-€y 2*?íz [ïüx%4 å^ÔÒ>N$ü¨…]è¸cÁŠÓ{‘~. Z÷ÖXEZá¥Û'WV¼Ó>§dƒÃ Ó‘ßžßj¹|‡o|Ì[ãW‚÷n«M'Ð!h9¨¼C^õ£iêå=´Š¶þeš2’<û2;×_æºV¢Þ ‹O+ë±—¶±ñ&îX Ž•"Gû»¸oñ,ͪŸÿÅ*K €#"•˜>ØÏ•:Õçô«”[^õa¯J]úÁí½Ÿ… ¸ñ³Vµ. ’r²o³ÖUM7lm² _Ÿn¬± E, + ±†H)É«ËtU˜ôÁ)3õXà`­§6tWƒÜ1‚ÝFq¼¡ûgà¡R‚Ýò·Wßâ=]Ü*ú H³)Ñ}š…Dç ºßë(‚´iNuëMˇJ:„%ó±fÒ‘J:„ˆ¼°9\Ó!ÛbŠ%•~¾¾œ+¥Öûøé·+JûaÝ%ËãfÍÎó9^u½Ò)—Œ4èrEk ûÄ^ˆ|iÊèB4lë¶tqsÓv9 ü¦¸Ž’$J®Azn¢¼H³Ç¢˜¬SÒwŠ_>¥Ú–•ˆÖ¢’±¢nz$ß$§Í 'Ç“ç˜ö[ª«‡7¶Û$÷`o&¤ÓÊ‹9æ³ÇXçÿ2¢p~iòë'ÛšIQ‰WCãê¶e aeFÄÊkÎö&D¯B¢Ÿàö2 ?ÈÒ6-ªƒ£0ZžÛªü ¤YV’ŒÈ€~ý%¶\p`Òãñ׬éuDò=>&7RIž"¹ð³à¦õCýã¬hHHSqG)Æ  Õ­ŠìEñò4-é@­µ?õ†d…A,äA&DÒîclJ-¤ñšôú˜çú‹°Ê ÷„œ ],$˜Í +  Â›©Ø«ABeŽéM£¾u˜º½ÓñmOÑÄ’.ŽKÅ ÍÚæŠ(9%0Ð J¡#I‘QÕœ€h³æÐ@3šËÒÔzsîÍ~ü`^Õ‘ËÑβձN5¸ÜcZ-kã=Tƒìf6;0|õT#è®óW¶Û”Diþ·Ù#ˆ + ±Èõ˜éBL¿Ù¾ZB¡Rm„ºva´…Ò¡ÜÍU2›`! + ßÔdl:üíÐõs å^–ÀÈŽO./Tâ)ñ¸J³ApˆÝÃû¤ƒC¥Ûšô¶£Ê'%*™ àÒ ùyYþêÁeªéê þÉǽÜn«Ž[qºÐ”–³/ÎåžÉ£ŽßÃj[ëÒ ÄQ^œ V±öU#q“fÑ_i"y2È—~ úÐ8ÆÜWRŽ ?»^IzPlfµ¼]VJ×ñs`këJk[+Û÷ÚÍm”:Èx/^ß[Z(„p{LÔ—fлŠa:ÂÃ%Œ’›ºx_¾F¹ÅmÞ¨çÒtk¨`º¥>SGÜ“…)X€;‘åÕ„[]zðk9—ßW¿6¾QˆhÐ|Ðþ‘´íÌVÙ + TC†:å“zêãlO]EÛnÆ:µ>(ê¤÷I¹Ù›uÈøÔ[ACÊ’áj±WõœgÞ~Têâžfêâ Å©¬Ú÷D™ª‡L»f±¯š%Íj4pwõ´ðW°–f`yÚµ\©/¤¢Ÿ´%ì’aØÕiF…jb.Ò²¯ + cÄZiÆ'§–ª‚%n¨4æ´¸†Î°±‡Êž«”ÿmêÆ]5±ÑÕ¶ KlDNÊ4ñVõƒÅãÒu%ò &/TR<*íq rFiOnöq7†œ¾ÌMµ#ÖÒ‹I4Á=5.4(Ïê€b(ùçJš=‘·06*id,›Ã'â@ðˆ{†Ýè ê!¸ñ“k–i”ÀO”}e·šyÉ/Æî0i¹ò¸ÓºÄÊ Ì¾T[D±)4£õÔá¤Úe&„u;¯o¢Æ†È«_@Óʮ݌¨©Ø÷ ÓÇL©y€ñUʺžÚÃÂÜMiºO®FL·Ž ˜( + Q=4²eÎ@nšÆòWWµù¨0ajA¿90tb°×¸„í"IÕŒA­`™‰\dweš –’0ñ™ (ê°0|> + endobj + 338 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 340 0 R + >> + endobj + 343 0 obj + << + /Filter[/FlateDecode] + /Length 2282 + >> + stream + xÚí][“›6~ï¯àqw¦( q}êLÓ$3¦—dûÔt ²­Y D@6öbÙ+á;Þ§µ×˜å|:ç;Wi5†6Ñê´ŸÞ¼‡šißÔÆšéi&¾¥=üòÏãÝëг=÷îÃïßë¡»O8Œ’âæÝodDC:¿ÿ÷á×7ïMÍ´²ø]tvsSÓ-xõþX\akð~Esû„õYUæU©Ïp.®už¯µM`™šQ_îuÓ5›píùòg‡ùÂiî² ˜i³%²(¸‹­çuh@€\©³ô¦O””XŸe1_0 Ý}¹ûrßÁ×c_±ø^”œL˜Km1í®jš¾ \‡æ·Ñ½?_ÔÎ<œ`=Êfy‚K’¥EB×dš~/VdÛQQ¿<+ + 2JÖq[(áGý'š®ÂhœDòMY] 0Ñ$u©A+²R<&ßöZˆØ|ÍoIÌ632Ð0딬½{¨ñÄ-Ð²Ø Mv5Òfû|~ŸhŸkš6 ;»0Ùú О]ßñÝç·â{BXþÊ=›÷Ë{¶è;À6›[ZÍ-IGtl“{#„` ™í¡ívpñJnxÀ^>¿éI®ü7’U…>%E™1W¸Xþ·z.Òpd*…y#ð-® (¬í4Êx]õW¯–FQ}Å×*+q¬“´À´äHÁ©¯ÍËŒ6à½Õ¿‰ 3_ûgãØG¸üÅË^¦…çÓx/C±NYxÅð!¥>& n!úÞ¼|«S!oÚ-aÑ|\È­BÅzè2šÜ yœŒöñWv@À¥EBSÞ˜†OzTQŠÓR_ÄíÛÂÀk%'$‹† ¬8¤Ñ´ËÖB»BL¡½~îl¿µvl`x›äû²|ëKüQ(Ô€ƒ}9ÊI‚0Žƒ«´›izÀ»L 8ÌŸíFõ^›TBüz³0­<§ÿ-Œ¾Ñ†QW@ÔÝ0ÐåKóüÈT@¥J㬫TÌÁ’E.Tá:(ZXK¹”E1ɧáˆe‹QGñàêb’ì#zzÄÜÛ2FŽ4r<šš9eù6 ³m•Ð–E¥,q GЖ!8yEüE×ãÛæFâXN¦[hxiO®°ôüEž9À:u¢FpË\È’U×QX(¨3 š†4ŒJ  Ó>ÿlአëóž%µ”$}ÊhŒ˜‰>îׂm™íÀ¢m + cÛ*Ë‚'$­Ý\0¡Y•ÛõË:­IãàÏ_]¿ÀõC_Å€Œ™†2¦e‚ÕÙ™£žØNrj¶Éé>ÂÌÒXŒ-àyè¨ZÕ¡ + ¸¨¿Hb9<ç:2-¸+ÿ4¹Ü=)ð×nË<Œ'[øºÎœú­ˆÈPÇl'?\l¸°§¤[Éàdk?¶<µÁìÆ»Èún‡Ímà÷ÒV’N8 + Bæc½ְ Ë€K›ƒ²á&É(Œƒi˜Æ ¦LSŠ’ýNÐÜðxÏótªÒÉn¼¶ï„ܾâQ;äö¨› ›3\áß­ ¤„SŽ›h‹¤yU^}ÉÙJÂß®ï‘mÌ-êæøµ:'¨ÎYPEfeŒŠE4Ì(Ã=ZéâˆMpÇï‹•èaœ·`gÙÊ"I6+¼>©ÙæÓ" x~ϧåí°0ç. }Ô‹i«ô%&Ež„ó`Æ#f\Ó,{<òÝ  º€]ìäî³ÖÓ;º©he ðXlf­w·àÍœ¤°»êA‰m~\—Ùjc>HYñˆÉújÒQW±YHƒb>KHúÈôM؆tqè:ª`åw/1j ×ÜC•D^sèëyjøÆžÓ÷UŽŸ,®öUúóµÂŒ™H‰gÅ5ó þB(èZðqÐØ£¯Ü#öà"UžS–ú.Üú DÚâ^6'wŒ%T½&wVä*çù ðO`Vhqw5:œÏ·u±x«Ú=}ëâÔ­j_u<ºÆ¬ÄßKÕñò²®Œ—#éš/MÆÝ Ah£ 8Ìö/_8h¥A)[9q]̪鶴bƘ9ñœaFg;’Þ=šG/ý­6#¤[õ+bQÝohþ^ºÏ›¯DÕ“¨¤µPñ½z«áÕ–˜ê¢hi2!EÒø#B—8&¹:"äË#”óÈÊn-öTЪ¶z$¤(‡R“'ŒL¼ Ïbù}úÃE.¦éçñÓ76Ä™hoþ«‡“ñpÒ6‹cRòña1×…g_]ïA]†³RÞ|,ª2ª´¬oÛÞßú ¨¬˜i¼k«×pCi~Ä4,pÀ÷gÎá9&Û†ö®EoÖöÜJëÍ7œ–âý`{¸/Í|wîá–NµñwU%RQYæV\tþÝ µcŸÅ ¬ÏQFeF4|¹F˜> + endobj + 342 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 344 0 R + >> + endobj + 347 0 obj + << + /Filter[/FlateDecode] + /Length 2167 + >> + stream + xÚí][“âÆ~ϯ oPeµÕÝÞbo²)»ÊO»Ê•M©Ô@g„¤è23ø!¿=Ý µØîÙeGž@Òê|œËw¾>­ØÀ¶'«IýòÏÉßDhƒN–èO ™<üý_Ó3O«dQò4™Y£)M"ùžþ>óÅ»œÓyÌš¯~J"ö2³kûdê³?üüýGH&>\yeKüƒpb‘øõÅó8äÉšÏy.ÒM³ú_iÎrgAÏŸØõ)`fAÏn^Pó_½(?„:¡¹Uçp«‚ý¯k? <à¹âÕÄk!à%§1ÿ“uLw1ÀäØò·ÚóMQѸÊ)p@ÐÎRìj#W°üØwŠÑ82ƒ d/e×{<àk›þŽÎ BÇmPКˆ‰>feÎ覘CòûÃí* Ò8¡ƒ"Á€ìíFŽ6ŠOé#OVá#Ûì¿ÝÐ là`šu¿*¶Ðþþ1|#*âƒpC³n^B"á]íÄë‰ + clä#cuÊq|àCÂuMŬ[·Ä_ŽiŠiQ†KÁªîøã§zb>Ïi¾ ŸX^¨£ï^„gÈ„PÚm LÂÂyµ\²üÖÙÒFÞ£ÈÒaB7LQÈ`{Cî‚Áe#à¦É}CyιhóîíˆQ;Ò U›L~~Q2кqç옣õ(rÍ™¤J*Š4&þˆ|Tz¹µ ®YþØ cxßž_òÈ"{i™…± «®DEà9Ÿí™ßŸ`](ȉ/%Í]êúX¦_nE—xçÿ¯ú']ÑKÒ´¨n ”‚±å±W*ãt c—T›p±¦y–i˜3“Ôjg/Ëù"¤ùê^V51K“0aÏuOyóÒ26Ç,|æå:Ìòt“•×!ÿiY•}ú]¾ÒÀ/y™…4‰Ô]öˆË—­‹K")¢ó$«ºÁã¹ruúM ¼nº±LËZ–ò¤‹pJrÉóý'È1‡·(øyÏx=“ |*ÈtM9ËYyá:Mo(?égðœeaÉòMr¥ƒÈ5…€'4¾½õ]EI‰ú¶Þ1ÀàspˆqðUÅz§µ«ùÁ¨tk•lòëQ²pÉcv×DzzdÛûØbìÇÈÏêöVŠp7HÍSœŠ’–·Ú â€PßǨõý&âEÓí]\yÓÚÀ¿Û¥æ‚™ÇtÁÔÊíÍÌ!è\ÁÊ.E/|¥êf®uˆÜ6‚àLµ£ÆF¨ô¶¸#fÔ¡Ãÿdg Ù¦I@•iÎúšÿ»Žnpô©žûâbf"©ú×ûN;‚c›a9OiíÄî’oXª“$µñEÃõÔ&Gü¢Ø4ïLRNÞäà. + ËhÎ’p.HÐc¿' qÕÞ31²'áÞæ\wWòBG;DEŽq+9ÞQ¨öè^žä\žç.u¿T(+ø¸†o•|ÏzÈy ÚÌÖés=—g*îŒ0Ŭ‹_Ɯ֋KþÂô÷œ^Ëhöq£J]TJš—U¦^­ÿr½gÀÂü‘ÞóµM[eµ\ªcð«•Á¡E«iT»Ù¾Íÿ’•Ÿ+km V~Žp*·uqŒØ’VqYùñd¥˜BþÉûÛ + ¦®ßnÁ&æU‰ž_Ð9½ñ'3èœ)¡J¤rÈk#‡2ûvìC‘mÞ]µé x!€5Ç+ÛŸpgð~¤ßâï¦àušÁ)Ý7ZªRMn4Û›#×çr‰;p’ß·ƒÄÓ„ã€FÁrYöŽ&AϬ/ØÁWv­N¢³»·‚èòç§ÝãºÔƒç£/áŸÑJ8õlæ[ÏFø®ÌŠÇÀ`[j^ò¨_;èÙâ0"ÕWùuÁâ¥Õùa÷îÞÿu÷ + ø4SÄ‘(nBºNØ»>ÔbB‚YõÆ㩬¿)Lp½“yõcžÝêb²)¬·–)2h±NgÈŸ>[4Ž-¾´èF¾óU•V]ÚèûW7DÖ 0‚}ð`(=‚C»Ñ 2U²Ig–ø$âŸã±H%qŒx‚Îë€S %UëqYõìow/MNù4U¥[ IéŒlˆ"¯"HˆQ`óÜ̇󉸤ó“<ü‹Õœ´‰‰Ôûa@#s¯k÷üÇCýÁó Ôm™úåÒ.œl& ò}xO~­Ÿ + í‰'X¹åhÂâÝMúþô‡{®Œˆœ¨i¯Ü¼ß_¹½Où= + äH6vò¼c=N .Ú£JÃæudAb㖹땥’dzØKÖ<¦u÷ëÿO‰ïHw>(Ÿ›>@ÀñO£çê·¾ìÚ|]%ÑQñ ›â“æÍG‡jôÁªTè¹¾8üK•ˆ\¨e;”¸릱EóUµaÉ¡Ω´šJÇ‹%wæHÁÊ«¹œ/èGDòÿ}Ô)m]IÐôÃÞRèjƒ ÇL­ˆ šGmU·‚Ì´'^ðÁzVb€æÂp'( Ž& Ù‚îªN[tTŽàÛÀu®n”´—±xBÍŠÔ0ÞßÏóý'n±ˆ—> + endobj + 346 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 348 0 R + >> + endobj + 351 0 obj + << + /Filter[/FlateDecode] + /Length 92 + >> + stream + xÚS0Ð30PHWSî + N!únF + †z–† + !i + † + †Æz–& + !.Ñ暺F¦æî~¡šºÆÆÆA©‰)9™y©žOfRQbQ¥flˆ—‚kŽ[É + endstream + endobj + 352 0 obj + << + /F2 13 0 R + >> + endobj + 350 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 352 0 R + >> + endobj + 9 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-53 -251 1139 750] + /FontName/DAZODU+CMBX12 + /ItalicAngle 0 + /StemV 109 + /FontFile 8 0 R + /Flags 4 + >> + endobj + 8 0 obj + << + /Filter[/FlateDecode] + /Length1 716 + /Length2 10030 + /Length3 533 + /Length 10585 + >> + stream + xÚí²UT}·æ‹w‚ÃÂ-ÈB‚»»{p°`á î ¸»{‚»w—Á-¸;ôû}»w÷è½ûæŒswÆ©º©9çó毞*:*5MVqKGsŒ£”ÈH*Kè9@6T::Iìè e €üü@€¸›5€“ü,ÀÅ-ÀÊJttòr[Û@Œ’LÿRñÄíA.` 3€²Ôdÿ‰… éhA½Øq ñ¯#® +ÈÅdɆŠ + ,ÁP€9Èì€Êþ/(y+Gï´-Ýœþsärqý‡ Àø'àJKGˆÀd…Ê®âøÏ6Ð?,ÿ±þ/TÿÕ\Æ Q1³ÿ—ý¿ƒúos3{0Äë*íÜ  €²£%ÈÅá¿JuAÿ'áùokä¡f°…¸ƒ5àøØUì ²TC-lVfWпû ËÿŠðOlÿ`—7P•ÒfùŸŸô?¦jf`¨–—Óÿòý—üß5ð×ÿÄãör°qpÿþsÿç“ÑÙ&í`áh v°hBÍ,Í\,ÿWã¿SIH8zú°òpX9y€ ‹ÀËÃáû + µÀÎn y)ïgþw-Ü\\@Ðÿÿ¼ñÖVàòÌ_(®m‰`ùý7ù„´"¡Š7IjcîÓ¾œzvv&Í"IOí‚6-sL^Œ|Í5L’QzkziÖBÝë>Í —³;ˆ¦øn’x˜¿¹‡z0ex¼zW'`Ø9rú1ÖÃ$Ù˜‡ß©>aJÕf\§Þh£á€và_ë(p)ÙgzöþûÉ°´mÝG©8yÀÎÔz"²g¹AÛ®åz{8þcVó¨t;½ìoA&x¦‰úÇÅÔ‹®œ[ʇµ1$u\§µ\¨àñ¹Ô]MÂÓ䀻^zVô¥©)¿yؘ´Åëw%(¤ ˆ²B;ª9Ú3qnépçWöb²Þ%]†tðN_ØSÒìfiç 5L²tmãêô ~ØÚ·y§«hÿV„UÌF¤] + ¤õáÐ7²º¾ìx(¶mù«ç³ÜÅAç®1¹Écuº±Ì(h0KPM»œ–Š:œ¿#¢%´»Ó—³O50)uÄñKjl5ajj³rD“r|KZ¿ + F|F™w"‚ÏWNhcè„âÔ[”År••Áü¢¤:`áüþ ×i@ε(žšÄj“˜·ËþSDrTœS/|<¾Ã + ù 2ÕÚ8 Kípª†kô¹ª+` •RÄ»à4‰ÌŒË7ÆÇÇÉ”~Ü ÿ’w´ß\—"Ê'¢ð"•/f´Êæ…&u½û“J‰ãt½°<»x=1ñ=enÿqgÌ; + ©lÂK:²=ç†ÃJ36çeî^PR†üI`…X-ݽ§%pýä·Ï"n1Äc¿E + Ì哯Fì‚_ÈO( E«_)DÔ¾ËñÿÙ[˜m >,Mæã:ß–gæªrnwf¸Å1w–a»=„]ò#žM2íäÑû#•º8'©5Iöx” Ÿ„A˜¾LYÏ”Úvfbf5ì~eS´Ù¦o­ŽoK* Ÿ]DÓ}ÃVX³cØ~GöI´K%¸˜nk>IAÞ¿éÃdðê\¶;º:„ýÆ%ôÀ>˜h5ŠžDܹÐÇ-|" ò$©Èz’Râùg^Õྠ+ íRßÓ™ùÁ¿»€L$ÙWÓñ±ÆK™Zš£éÕÍÅJ ^$G%W]@ZË?›Æh¥p¹é»{6¼*SB¿¨YWÂç@ŒÊ›l¦ø2_Á_W€9Oìg^ƒÔî×÷ øù¬B]áÑt©MõoJ”[³}²3¾;¯Ækœ·¦Ö¥B­kŒQÜŒ©è …}¤F3²F<$=*µçÇø™b~‘¬ + R‚ò`ýú3uÒ9Íæ ²dæî‘R^]—½³’¦v8òèB6T€¤çê·Ý¢x–šêÚ«’³£w4m<¢£ýΊ¼±Àîï_åQfA¼q9EAyGÞø§iØtÔJU*ßXŽÌàê=©qzT$¸„Ñ­D°¿ˆoV¬lÈž5ê£ Œ±NÒð«Ü,qi‰ý$áV [ìSTjPbÓÚ¾Õ7Vç…Ly+ + ÉõNµKh¨™w‚®Ý;záŸÌšáaðð³ðе²â#¢ ìL˜^ç;æʸËc}–¾=´ + rGÔnÊ”É_@À°;BµB“ŸJ:¸òŒ¹¤Ä»òØ[žzþ¨0QúòRõfŠ?èÏÀF@ìlÔ£xíÊ…y¨~ñæ~‘оuš¨¥²jZIeö‘˜1AQ:æ@æc0 %îïàñÒÎ ½*fÎFb¥ýÑδ~Ðr¶PZÚõ:xàD3ÃÅw‚8ûÉ’iûjoŒ™òˆ7ƒNÿ^ÆÉÁ…íB¥äÂ!{iAä¡…iœßz—•?XñB¾¨²ÚO:ˆˆãñ½ÎÍV £Þ” oé¹Re†Œ%†#hzY•‹,>Osvj¿¯Ý“Hß.HóS…ÉN}\¸WQ•>ëœOPŶ'À+Ìóó@ÿÙ#QAö®„쟰·ý`ÉÚ°îòy>DÁ£O¸sãd´ŸÍŸ \¦ô ^JÿkãÉÉÌ‹xÛM^c5…½§ýZ î3Âðƒ¼Vb>^X‘í®a¾Â(ñ‚# + üI¡E€Q ¿ã~雜 ëc=ãχ¨"<IWëµÜ{x©±±êxiFËK9*ñßCO#9é¸eÇÌÞß×LlÞ_Ë||{MˆGÇìžP¼ú‘QæÏãÙX‚•˜~£î>-Ã((Ö¡8ÔEÒÎÆ$6« ”ž}ÓŒšJÕ²JSÆà-?­Ù+«îjÔGr*Þ>ö{Ôª¿0Óð}sàfÌ¥P¦F:˜ ²‚sï“dq<ߨš@¡â$] <ùPkúFÊž°@bm*亜wx$Ô¹*~«Ò’(eî H™õRQ§ò•7Ê}t`2 ê…K˜¨%ÎUĈyo Ùªv >v?˜Ä ÷4z! oaà + ˆL@›¸WEv*|NeVÓÄ1$˜[Cÿ˜:~÷ªåˆÆµg]´ÜJ‹Q."{±Â~û±HÇoÆôÄ"-^‘=—ñÙU–¬­ž‚D+yŠ«þ2¢µ]9k‹^ßçkzôsG 9Fü&\¹Qýü¹)ëÜe±€Î“È h_DÕœ-óÑê§ê0åt'ë¸Ý¶…øÙ$<‡*Œ_g^Ñ)Æ‚½Ðhø+.´6ÌàM´& ¬4ŽîWL<4¸J?Vwöoõ:ˆæð)Êæ‚4lÙDtîN«0óÍb¬5±`@¥àdðë²úœÈñ­eªjùkŸr…„Î¥«ö ·–fµ[pJl95êÐê'Ì›ð*æÎ^úr…uÃ=Øェe¦ÈÖB#'ù• 6ùdæÀŠðž¦¡› ðçV¯ÁÒW…¤\•¦í”㢦´ôúɤžò8ó,É徔ĔB«@iïö>uù ª¬¨ß ñ¶­¯g¿b^J‘ÔÿÉ•ÊX&ßÉÊ,‡/5îH{Ûwdšþ!vîÇ5ññl¥ŠjO£×} q÷Ùr0ÚOB6~9k + Ã}/ ‰3ÅìM%ÌLz ¤!ŧ„› 5©8L<Ž_!!_aycŠéQÐoÞˆ]’(¯“×jPs¤ã9Wç¤î¦ödxÙ˜ƒEȘšBfoMMæÜƯ(¥Þ\„ö˜èÿòµï?fB×5³ÅÖ;¤ŸP×? YקlÀE wªNÛÂëáâ†rJó6 *HóË;ж-rWUTÖ‡üX¿“a £åÏù ÖªtŸXØGƒØa ÇoE¿#&ÌlóSŸ_Š¨&Î@[:$e aOhÆëЭbêfò/Ä0OÖ + %P=lu±Å}-DãEbùIPhSWÌ{ì1¹EFñ7¦¶€“¬³r¢.ýCØÑá&Ô$=¿šÕͲ1h])ü„\^¿:Kðƒ>®Ø»wå}§W>€ÉS\GHÁؼMFVÿlô鲨7`l‰†ãš ‘TSY3îAš,Wk¹c÷„í½lƒÆ?°Ñ<Š =fI-¼¬lú@°9„?õe%³ãvãPÏ5v§,#j_àæ 'ÚX½Ï^k;Qß‚(Òü7š™+a××1"8x Ú÷'N +  [$¸ØÑñkj5×uÒû§É²Þ¼«¥b#}[\Iüfn¢Ÿ´j{ + ûY‚üÍ¥ê›mŠîKýs® ¶ëþ)‘ëFåáRŒžŸ úm9ÓíáL0’: M¯MÏÑïyi³“¯¢GƒôëÜ‹§ú‘34èÂÛØ¢HC5°ñ­ :­Ÿ‘TÃd9”îVnW¥et>pJ}:/¿üÙÐá–½(GXnË>Þu5GÑO m&áê®`Ãâ}êìñr°ãéƒËmà Iæ.íxÍ_Lˆ¸~˽úz†É„€ª\T_^Ry©TjiO8Qäd° f£ÏA=úPþì¿Õ@¶ª2ûŦԕb°®Ä¢h&aÍÉÿ-0u.uò#TÁ”]K<Ìwf䑪 iŸæÀçÈzmN– 1ë8ô–ÏKr¤“•IŠED§5ÊaÉ0:+ÔLN¼ú×ù©GÔ­œ¿Ë°x.!ÞèïÛëK^îRuc2"-è9*_Œ|­N&´ g¦whY»üì7‰ºuïAAQ¬Yg€ð×Rur¬ÍŸUÀCCWñ>nÔ óß + ¦{ÏÆ}˜*¶”ªP®ïω€Húì’³Èl=7çÔ‰Ž¡Ê¤.p>î¯Á’&ÝQežúúµÜèz â¡^k{-›j9Ó…z2ômíÇ}í^ + 1s¯ÞþÞÀ³ß=Ê šŸ XZMç“&&änì?"ÍK.ÓóŽ¤à§¬#õ F½ÎÒ¢K77 + ú9|j;ë~Dë?4uWÈ\Cnc’ÞÁ“zi|]ô0'(4æ*he¨ÝCòÄ'[ÓÕ9;Û‘ø?@ìAâl·–G8Q‰N¾SæÊ´ˆxõ³uQ$ ¤×5Ú„Ôüý@5óg擯¯Í)¢È Eï¸ÓÂG$Ä–|3Œ"íµƒ†äT÷ç}ëðŠØ o챂\3 + öö˜úᵈ¤wuî'Ehå•s;,³3©åèúD~’;i‡¾ö«°X[4¢¦›ƒ­1åÔqJÆLêbð%í´¦`|µ>yâã@E Pi6dª<¹¸Ri&Âþ uåµÆ3ñ—hZÜZ:&Ë6îÐ=PÑwZÏýÓP¼)= .°ÁÿÛ® 0šœÅ + C§O{ÈÂLP¿ ä‡ä+É ñ¯7Š8=>WRŠm”£©Â9©€p-1<¿ÝÈ ×«4nzš}z˜ + {™k\ÏÉ°,=¼[2×¹ëbg«µý›[†Ð­æ´¥þ(z™%¬2®HkožÿS.íäÚçØ]p!Bg_¿ç<ÊâÁî½MÚ(Ï „½áX©S©C‡²²’Åæ|“…”"üΙ/ÞôX´B­XfvYªA=\"’¬öêâ™›"7\xÏ3›Ôœ©\™â¤¯£•à7sR±8.TFºšõWg‹4Ø­”Oïa.W¯¦п$tù¸” ±DƒbÌ‘æÆÍ­M5„9 ç + ë¾Ë{¸LW ¬6üáËô÷<+MŽêG)!Õ²œDfQxÿuÌ($' ÆóFŸMs-­·òCˆùòGͲÑÜK¼lv‰ôh‰±ÉÄY¬Dö­×hÁ¾®#ôW’Š-5À¾M|´¨¹¬>Ïê®[Ðù[a‡?õUˆW—„¿©l}ÓëŸ?ŒPÂv7SßF°Éà·ûÝò}Âàp“vƒ€¯oƒ²äž˜BÃ"Ë>!JÇg¥ñBùé´·› ëë÷ž7­&4ÃöU¦®›VŸ¤åˆT1‰.^K$QgÅï“ló4e‡,ò²{0oc{³Öd + É”–¡å¤SquH¸ÍlÑÁ¾tèô流xZQTQÏNö;•m.k*r•–»®œÛgPÑÚŽ!…®>>ɦË6§%™N4:V¹8k/};Tx9[&^æo-—ÐJ¶jÊÖÒÓÓPÜŸ©à÷Ro$š£u£6El^EÆïÔ?¦Ù çgßÅLxÀM”Ó.y®ßî 64ÖeW~˜´-c{°ñ4œ}Õ“Ê8zÑŠ./©‹4Ä–æƒiúÕ-qßÍׄ¯ ¸.nåÒ1·!©ñÓ-<1ªCœÇ!x$œ;«ÿrº» —×$($DÝ¢‰V=¿{ˆ^Îöú;„ß`¶ó•ÖÔĤÜâW»±…¼_‹ªýLÓ²ç¼ýpˆµ½~±O<ãU©‘À{æOcpïr<”OJsS,Àˆ³ýU¨÷'†²ÅWAÄ°+ÓkZãûA•)\ïìþ°ÉX ®;ÆMOTÂî·¯z>J çÕ—4@ù;95%{Ò‰IØqêÑ©dÂ\§_vÈ¿“gÆ¿:i"é‹é¿ÒÑ ŸÝet]ôÜV"ŸI¥Qìg0 h}Fú¶—À<ŒÙWÃIõ'%(«¿g'~Z}.î^»/Å~G»1»•~v”}dO NßúˆdU)M߬B”?ªøLš!Òìu¨ŒÇbŽeúSÈìÑœ…Ñ-bü꛿•SlU6åy: ß"<ï55ÁIyÁÞÚ‘DxH )vðÔA  ÙE*`å†ÎT iQ»©6+%Ú¶>c,—!h’?¤÷.šP|DÑÃMì'!(;`do[%ÂÓ–ÝåUC¢Æek¥çݓ˱õÃ×4F<Ý[¬KÖö`0DnŽ»OUŠnHo/'²1GØw)!fY£µÄa3¿¨‰5¸e Ùú:$ך‡ÅUV7‡€ÓûÒZ–óI€‡ÓÆ'1B¥Å„þYÇ @÷gKUá + ºX¥Á¿@ѹé˜ÛG®ØÿãŒÆ…KŸC$;Þ÷mèWc_îOÌ^k ñ¸Û8­’Â|µûm…âÇ?‹‘x}sdv‘B¥çè⨖ Ù¶ñä^õ9à&^Ú1a8ôz*®Wƒ\/}>¶ç5­°*UÐ&àfži¦ë?ã ²X ú„ŽŽC$>hÖPìŸãÓ[Çyr#ÞúO¤göœ1B¼aË*ƒõÞLƒlW˜¬v"+`´Šþ’;rŸÑzµtœÕ1!u‚q¸¬àî£u?Ê88ê¥ + Õ‹ƒîUöæ8¾´hõ¸ Ery‘ †¡¢œfé$W‹fγÂ1j˜:›_“¢5Â}§çé8R=ûþýh±_÷|`¥¸ÝyHS)ªáI¹xÛ‰0GZ}QŒ§¡?„se°‹ ò  + ïëé³ÞÏ\ìg<É1^*¦Zt$\Þs ÙŠ€_œÔŽ1àf¿¤»Sß…³]vf7ž4YR8À¦Ôl)ÜÁ×FÉøøD/¾þ£LŽ)1l'¤ ?wÍÔœ>Œ¡ä×AŸ12›)QÃ燡Z$—«‘í¸ûâ)`TFÆÙÎJ( + :Û‰aš³ÉWÕX~lbÔ.‹ZÔÍ’±YbÍ¥LƒŠåÚýŒ¯Åâ± + M’lÑÚ3¿6:2v¦ˆ2¦ãntÞ„B[ñÿðbfqäeÄY˜i.o;©pܬë–à((–t`F±dêÛÖç⨠IBÏãöãζêÚ¤JÃf ‡PW…X[lX-’¹¡Ë:òˆ…€E]YÅ e">–’Yœv 7YCË\eÚs@sçêU¶ë)ìç ø>W9¢ù~”ŸÊtÀÈYŠÚ¿ywdÌÏ¡€LWýÊYdÚKç­ê!Æ‚‰Úê5Üg‹²r² ¥î|ø?uŒ7—Ó¶¿žåèµ¾x–ë5¯îç‹ÑˆkÕ-#¯¢wä8¨ + 3çœý4k(°´»ºŸ™ ÙÏë†<ß±]º˜,Ma!]Ò§(¦5JÿÑB’˜¿'ûû•ŠgYüHWÕ8Àt1\H{'Üèw̆†‡ÁoçH<æà–¤/9¸W=²Â›TyÑ✽ö5ú 3Îâe/U¤Ô®þ]îRü¬WM~ªyÉ2z`¥9êüZ:þÉα~³"4û[ôÛµ¡}ºŽœÇ/KÿŽObD#M[ bE£U¯nJ¯T#MÙ~f˜itäü™*ÂAâVþÒq™¯eÿ‹$ʃ EP½Õ]ˆ½ûrû}HøÔ—maZ÷÷waœåf`Ìø•TŒytIÜð3ß`è©Ì‰Bø†Â?a ×u­ç—hDÝV;GK…²g˜7¶UdJÌè–†‚àÚ k5¶.ðRþ{œˆ]NEkÂ),¢4Xó]ù†±P”ûäú×. ‘Å~“3uÀm·ŸçnÝæŒiÕõ¶··â ¼Ôù \"\(u0€‘ÿ’AÁûolüÌ­Í\®Ñ‚"#SHŸ¦7+ƒây€° ù¾u$kJo“ {Ñ—‹ˆ&ñ:¿"ÂcÛ@Ô<õé’&)Œ iµ²-M$¿ƒµRÝj#œñí™ðò°Ä7¨âøq }vXLçà·ÕË>çk÷€&@h'üRüuF$`íÞØÞs’LCH±?¤NIO¨x>Z^Ù.‡%g·r¨ðƒÍƒŽ^¨êKŸÛKÏ¡Âå3`fŽõâLŒ¿‘ô@½âp¸—¬;ã‚ÌêOµ~ýE¨Þyåè¹ ŽÊ›ÜøÀ¬€d5:íxaßÇ)~qü“¸;ŠæšÊK\ËF|NìÁœ—-Ç:å¦&8ð½Ðý x-ôÆ/“pß—gfª\R ¹u(íQ‰5hÇhH†™º|òK¡¨î¹”Þ€Ä$(Ytì+iú(%!»3¬>#§>VÒÈs—O{0Ë™†¶/¤²ŽÄÜ—H²th6\ÝN‹žg™ ZJqšZýãGq@êÒâûO:R¸æ‚QI–È°÷= ÆÂ`¬º´÷5Ñ3„TÅõ7dì/éìz§Ž¶ùÐs¿gE<~œÿ‰Â2€5ÎX—A»Ôa‹ T¯p Ö`&Ð!WMŠâ(c ¬õ©ãûXãÁx{P·kƒLaµq±M,Ü`°«†E®õxO«‹ÌS + ƒHf5xë²Õ…ãª$ð$ÕónÇf2ÒçÉê›°+†az ÑøþN5i&QˆÈà¿<%x¬½;èÖÛä + ÿM0¶þ®óC„lsûÂÉ%àc–É‚ÜFû ÔÛ*÷¬ãؘűÍhØv䧓,]¦R^•{[K›t¯¯ƒ!{  Ҧؚ¯R!P^LÁÇÎÊ5Âä[M¦Ó•v¸\&È7òñiÉjÙ¬÷|ö>í8áV,I[õ!O\F5Âܶ<¯s¬ + ´raxñ^kœæRœÙíã¹S¦^nX1èc&ÖÏ®±ýˆÍ¼¡uÑ"~o1Ó^´lç8g•t….BÞWgnÖmW¿Kýkm¾Ø–0ø± s[+yõlN…€À„ésFŠVáH‡Æ®´¼íBþæÖy•Š¸?·Ê³äó’´ôéTQ@Pú©}}¹,Nkª„0÷ôßË—¦Ø¢‰s‚Ðu#°  W²Ò;/ù<˜É瘼ݼï¹$ÜÎ3:ÀÍ5¦y•åÅîªíòÜó“¿+¡ôºMáï1Çé{p#Ë>ôž\øyÛ{,“V‹¾6ê0bÚ2úù±ý.©1Z_§N6›ùû/:²åi¥Îx±(z„Üôúþ<žÎ%±ôïÑv}Àîöä^HXÙ,¿ã.‘Ø*š È ¼Bw¯_çgÜohíú7£!?ðn¾ÒcAÛ<#7VöP3ÌZÏE¸Ÿöà…êïvéâ™ Ñ3{˜6ÉÕ¡VœËæûl½ù?Mb#a tdYÜ°>b°0Õ]ºy~Ët‚A!¡uÔ‹Ò²ª]öŽÈnlxÌ´c2žmyäзU kŸBÍÁ íÄo,ÆEºdU·YÎõžËö¶–½þýÍçC÷fôžÇô÷“™Â¬ø°…%âå=X_÷,bVöÖíá>ÊŒÄVÿ/w‘j+åÃX„YCò:vx%ö ÊhÈ$.ëz¿!—ö~r=á¿õ…øuúS•5¯•Q%"6äùSbyÓm—ÒkÓ~ùŒÙ³ + ®ÝÝzÕñ¾⇽˜K«—#— ¾‹z*äÙsh~Lìþz + ýé5‡ºkÞ{¼q!êÀ‚y\Ô4ôámD!õ¶ÏdǺjtdâ’Åq¡oO8÷³3¤²Ë|ö”ªGâ1Ì‘i;NÌy<×&=ÔöI.Þ¾ÎÛ« cü­J-4îg Î«U%ÆA + kõTåx)Ï(ÃÌ}bD^®Þ¼¦n”áçÇÝÙÍ¥ç®Öä¿šþ0ùHœã&öeŒ¬¡ò^«cW õSìHßn^î ^`­5\ê€Ú¸^µ¨>1Dµs®ËÃïÂéºwªœ,Œ—œ8êkà>¹û³"HdªP˜lÑ.+à#ïHË2vàá¢Ï›.FìE0swˆýÖàyØå†×’yéIøE£Kz€HwE¿Ì²÷Z)lýJÐ4œ àÇýòâ’<ÜÀ6ø¼MVºœ-ÝfMõD.ƒ¹!åP&Æ»áÁ³â(&ß(0½Ñ/!ùZð¼r`ÙÄEЈãi‘ÛÁFûÐËA’¼yW8þ«£øÕTDé\–I朞§á§0%ÄQ¥ôÓ$=‰„a̧ þ2²ášÑ÷óþldÓ*)Ññ!f—ÐnÏù¿ä’“}³$Ó« tåû²¶X÷Ó0IÁdÚhSLêâö…+^Õ¶†Qû·v W> n¸ÃqÆð4MÚ.Ü´©¡IPÄpõ;dï;s™@cÇ”Ö÷ à±ûf§ + j…\Ï3®g.ë!(WkT†’m·{ÌÌ:'Ѧq\Ôöw‘ [¾…t^ãyWv£ÿ“÷šÏ e™+>ûøgÖ½>ÍÖ’0&ýB¬|ëï{d5UÞg·¯Ú'^™æçÓ¿0òÞÇ(3ÞƟ厗ۼQÈIQ›v¿•1ôÖnýÎb¹1µã·5ݱ{»*ð¾80R©;8BMöb5¢ñÐLbŽ•ÕcŽ™G¸NÔÉo`„(¨3NHØ®¾"(`r\ï + ÑŒîŸJ+æ>Ôºñ; 3üzŒ›Ú.Ý·¸vNò¦íYɼ00ƘÐyU+ :‘KSöL]Ú6ˆÒŠËNOCBøh=Sµæðâ5Œ¸’\[®4F‹nrg”­kù¿ž3‹#¢QšUä÷4© Ødžˆ¨C+M,ºbä«"c}iÏ©.këÚ~Ï©º]?«Hí#}ÝÐ÷ô¢ZK `Â(þ&Ê9½-ÌÓ¯l饱<''ýŽüâÜïÏAYÆ(~·Ð:ôÑ¡Çjõ·ÑµLŽ ßTUhQå¸P– }Û–Ù7½‰0næøy¡þÿÿŸ0°€€Ì\ Žöf.v¨¨ÿ–ÃØ + endstream + endobj + 12 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-251 -250 1009 969] + /FontName/ZABSDM+CMR10 + /ItalicAngle 0 + /StemV 69 + /FontFile 11 0 R + /Flags 4 + >> + endobj + 11 0 obj + << + /Filter[/FlateDecode] + /Length1 720 + /Length2 15644 + /Length3 533 + /Length 16202 + >> + stream + xÚí¶c.ÝÖ®Y¶WÕªUµÊ¶mÛ¶§lÛ¶mÛ¶m۶ϻ÷îïtôwúωó¯£332æãÎ{^9rFÆ$Æ—S¤æ7²10±8RÓÓÐsà J+ÐÓáÑÓÐÑ À Úë;šÛ„ô9ðèÙÙðDŒ þüsq03q03ÀÀã Úغٛ›š9â‘ ’ÿKÅŠÇomlon¨À“Öw43¶þÇÄPß + OÑÆÐÜØÑßÊ + Oá_8à);Û;ÑÀÀÐÓã™:⛚`hÿE%0±ÁcýOÚÈÉö¿JÎÆöÿpá‘ý›”ïN#€•ž‘± ­ŒÍ?óÿCó¿ öÿÂõßÍEœ¬¬dô­ÿeÿ¯^ý/e}ks+·ÿK`cmëähl'mcdløïRUãÿ°I™;Yÿ÷ª¸£¾•¹!?ÀÔÊî?)ssWc#9sGC3<}+ãçFÿâŸÎýVƒ_@QHšò?Ÿõ?E9}s€£’›íÿ´ý—úß1ýÿÿÓ{sWjMÙó¬%}áÝh²„ñ$þdFiÒ=}¨üø™ô‘`£öO›ŒYðâ:_ït¿Uå“yAfª}XKcúÌ‚•ÑÃCn›iUéçMŠáÒ íFxUóÂUu Éd‘ÿ¬' m‘%B“[áÃi‹]|(©1”O ïkž²Þ˜XCÛÈø ”q•²|aK]†…Ãw²v€öô6è›7€èbÙ7ÙþäÔñ + ¢Õ¼ý¶Þâ›uˆÛ‘­’Ðû³¹ŸNcNI~Âá‰`²½ª…z÷*ŽoÊì#_r*5´Fƒx-í7ãÓuDMãÑd'ÊžðÖI¯Ñ¾Õ)á@¸'°Ð}„¦‡€2^à)œ®cé£`þëZQÐ-Ÿ‡9k @ÜÝ-•­ãs•b¡"·–å,+”‘™'%3¦jKTžp“ðü'­õ¢6~ ïôøe·ì@Õ*Œ®‚{´QÛ¿9sëõGºò=S©{© œ§¨Žü;¹ÛL°­¹3®M 3U»Éx\ïÚ|<~F Êÿò˜f}ab•™)”€Ö¤Æ8†â0„¤ú(á¥tuÜÊî–‹Blèm™À¤MÂÐéG>£’|š •ÚÌ´$ÉoˆݲþÙŇFÈ0<å·7M™‘ ýùïþ*òØsÆ!>àÝQ4€õi……4_É/|§‡¤°ïüý •ª>Ðå·IP_ÖBï˜Eó¡·p.´.‰i¾>à¬/œÕŠÚJÕ¦¦ü~ù$äAÅ«–õ£š¯¸B넘ÝɵmŽkÞxÌ¡7HUÊ¥¢ß:çÞ”…Œ¾ø /z˜±pæÑ óç05îÕÉEj·úÕ##Ëšdai¾p?ךyécˆÓÈ‚{[Ÿ·E¦°JœÉB%X!$³}@]m6¸—ñrú$`ÏR4 4,*X°W;Oˆ¸fç³zEòiâä ·,ÂKʦËð›Ö¾‚F‚*}îÂÅä /¡Iü¼o4þß {ê"ÀË\Þ©¾Ø."¢‚.Ó ¯¨`ª0Kß.ªÁàqîm憩ހOjÞ´w•Ëj#ÕTŸØÉØÃk»¹ [<%—}|àpV­R.UJÞ*y¿¹`Áé °Ø¬Àg;džÞÑKóœœNÄ‘«”KÓU×séõÑñ"‚¯áêüVÌWÖ + •&ÑE·x~zx“ø¸˜™p‘?é®Ë†áUž"Ô!Ž—sÆIcR°þŒSL÷k´6o²‰Ø_jY7T'±KøêmŠŒ‘f}èn(0f=ù°iÜ‘ ¿R½Û,hÊ©gVÙŽËÅJ³­·Þ÷òj]»SBPAl•-’÷í5"ïªD>€€•ª‡•¤¸ÅïœÙôŸ$E + Z@ÑÝòƒ´ç!EŒÙÓ”F¤â¢r½ØLnÒ«Ë’ßã+„¸ >Âá¯HÚÍΤú¹úž“#¹¼cd{‡Æg_ + NÞ”ÉÜgˆ‚3=ŒiÝÉ׫ûa¢A8®ö-Gô»˜õIrʇ¿4ŒqÞðq£îñÒ¤«¬‘4â—ܤîË,ñGÐ`‹ó›RžS‰@×è& ,U2*ß´s%@ºˆÀÓ£º®ÂËN3HCj]K1•=Fû(p€¾n¾@á@iü¶éò z¯ö:³TŒø:/ôȵΧ–$g÷u-³Vßq…9'Ð]öŽ+kXKÑ£»ÿ^-›ýA{XºŽ"‚õ<«“©Y÷!Ù$#ý@ÔWãÔËF¬è:¾\íB‰&ò¿tcIJӕs_ùôÂÓ + hª‰qI‚/}¤Çš˜V~éÐÝ_þµNXÙˆK–ßå¥+õ¿ß)T]€¼s‘W¤XA0¤+æÊ+‚ü´x„¤'é&]5wl$y û1(âÂþ _1RZ¤Ü³ÐÓCBa¯cë0 1ÔB¼¼nѲvC-²¡ØÞt9¶Ô_BG«Yâç"sRÞ­*¾G@P^çkU C§ÎH³5¦óJN°â§æ%]XßO¥«…b¥¯|´ œžo oŽ+àr<è“Ñzð AŽ6ÔÌüi3î EîÅÊü¢g*ر´‘rºLU2|ôAuÃÑ(îqc]y;5»€_ .`Eà¬1WŽ;ìMdðÇwÀñ&Ú“ @ÈÄÄsÄ1^ QÈͲ–d ÛlIX>V=µýï]‡Èeé + ¨Œ¸i¥FýÙì-zz2žUx¯€ÜáѱÒw?€k;ó‰\/X@Œ¨)—‘AI©:üo Ú.™röt…‰;á;Þ HXä‹ÁßFøKÝ$óˆÚ¦É¥HþôÙ}FZNH—>OƒôÆ”aUu’;—‘¨Ç§µÝšq§ïAEîþd¨F¨û72é©Sˆú¢AºhùÌDo:[k.=°\é‘ÉfÔÓ ¼v¢“(Mn¡d@q9nÅ#—~”oô‘ƒîÓ1ó@Š4nËÀ3×щÝpþ(%QÜZ¹zÌæKìü«>'¼3*.z©×øbTò†Ëc7Å<Ø`¨ã½Œ}»'-;ÇìhðXªÒ±,/ø„ŸI4X÷¦6´FÉIxÆÅpÂ(9ÕÐ¥)äf\+{‡àò×\¹—ÌÖ7»n€¢´Ç™Žž—bi™ÞUØYiÍDW>'uªséêÌ$yZìþ®óL@Ȫ*”«¾\FÒ9Ú䧽k.êvT òŸ„[ÆÀÐΫÙû×ó[’ž”{GõË°W¬äBîºanÑ(뢧ãq¶¬Â¿qˆÄ¥´¤Žãgw±YÝø×Ñ@<¤­R‚ 9û¢­{IlF1DÖ Šªù",š”¿6ͦV¥ÓV­Œˆë>Y­iÄêÝ=…šýÐ1À¥9Æ2;žL4Nl÷]ÿF‚!:KŽ$Ö ÒXq¨u´NÜ0iÓ»ŽÎb[’ôøˆihq.XÏâ²×2±Tlš0\ð±}Žï + ó5t¯,ÀPä¯wÁ­ÑÅžµž Æ TjªÓÈÔá1Œb+SÆË&éÆ]ê˜ò>GúQˆï½ø{‹¬ó‰iÛSÄVé’.f€Ëaä´ƒRæaK•ÕuÑ[—îD+Ho ˆ4ßÇÇ  ZŽc_Õ8è#9 ¦ü"VŠ¸Ñ+iý:™ƒzÓí"”æ .Þ’ŸiêÑ`rîO0Ë®ßA-Ê «d#ÃNKZBo»Tñ}–Ì¥~b½Ë+“ûÊSP¥` pÀSì7S:_æ…ã[©ÕÔŽÏЀþ)“\ðš°Ú%—JMÎ5꘡_'M\̘`ÕoX¥–ÏXäÇñl NŠÖÛ%k>Ñø%®Êß³w³øp*¬·> + ûÌ/‚]¾¯#DqÔT¦óé6³ 5™/eÂèPÊQäù4ŠÏ1†×ØixìX?R_,bƒ¢ðÒKœ’ ÖûÖ-»RÐÈ + Ù%ÎJŽÛ?$e†U«ÛRT'ïŸkWS\ŠÑM©ÂFm\ïJ£2Ø™äJQ$ÿ*&BÖdÈk„ ÈïÎR›0²1½¦§ñ¹:ãìÍhû¨üõŸyr}º´Z  ³‰iÃ «Ñ£Ñ®â!Ø'×nœT"ï¥O‹H̉¢*žƒžÂ!ß™>²À[@ƒGýÌšËMY™ù¯ Pu&ê&ßìkÞäÏÝ9ŠêñÉžð¬ÝèzÑs|Ýceð¨2MXŸdÊÚÖ mµ‡=ïé„8{‡©»°Ü5ÀÍëa¶‡O¾¸F„à Á;º0=̯÷s&”{DžxNóÕ;Ò8%ATU*oòÑt>®Â”ªñtÄwùŸÕ®‹dcp”³É¨`‚ôO7t)ráÁr¾{:m‘ò<ÛnÝÒ¤ü5d‚KÒÒÑ0ô© Su‚‘‰6f¨:o-¹V¥AX’â2¯ô¿oéô®f‘^–îü©ÝsPÁ/jkj'ºÎyŒU º~6² âÊqÿ + n9Ü —ÚÕÚ¤5È9xÔRm­åǃÌaqJëH…Ø›ˆ«}HkµƒTúZ{ìðFs2­T«à„øUV^ÅNø>•&vséQbu¡‡˜W"ˆ4¤ÂYngy¹Ð­vZlÁÌM[³=ì)ëôG…]Èà –º—cÑÔ;í”û¶£¡mý‹듾Ÿ’µÆÃ*å„ACuð ‘X¶Xß^ E@ÄK9I·µ»÷ä3ðÖpû: 8½~Ax;¾ eä„ÍQð w?ÎU(äK!‰R¶ž{Nœ£ÞÉ+Ôí¥¿Åäó‚#Ùf¡†`g¾K”ñÁAZbbn†¹²~ÝâÖ9 + Áv#ÖqëPÆ–÷MüÌ-óútž8 + x;H~™ªÂZÊüítHðP?;D¯ºdôÖPLKÒ™€³³¿›d«D†C ,iÅ$šé,h=J|©\2#„/Ï2Ñ©â^qõ›å™P†masü¹n˜z¹ŠõÄ¥gua$°MqÚ2ÿmŒÇäÚ]÷L%EšŽ7Ü|ÐjM¹DÓ»¯Üà”PÛË&i.ÂDA)1ðõ F4Ü„_i½JJB¥YÓp¬g äh“þ¹—¾ÈU¼üh­"ÐH“¨H7’GVôµƒýª#=LÆàJœlÔuQ¡|ÂÔ0Ï¡f>”‘úåË[\Rh`:«KïÈÍ4á¾´LÄj\5õiA£ì^LËßÿ"²ÂSÕ’QfyWþø€«“oôƒ¶X(jÇtbï + ÉöI~eç0#ÙPxRïY­<»žÕ¹d?nRmóYÞ#+g$QÛyÎSPQÑņå æ—ÒGf %vV(’&ÃØ·õsÖ…ŸNäJ° éÚNÁâO††Op¨s±ÑÎFî««¿»Z•øÂdÆðÛ}2ïq¿>-åB'å…´Ë‘¢©¶ZùV†W¶ÚÅv3Å$Ek + ÷ÁÂvü*ˆ@„ r§>=ÏÒäyý6%* "ßåKšÔ^<‰îÎìÞc4þº + †}lÃÌË8püŠúsÿ„ ð_€N ˜±RœÌN»7PÇKÔB5“*_ž«ÅesµÁªÊÔÏV•–‘ÜxûùK´Ú’½·wÇ!3c¾H ¢jBˆò§µGÀO¤œåDf1¤]‹6Ù _Þ‰›-¹]cߦ}—! ‹½!Ô'Єðä°ps‚^d'+smRHâO7탤°°ËØrAL=)¦’Õ¬–³kð+!E¦7·‚Þi<#X±u O=¦“Ós¼<ýÎ Xø+díñtì³ÝøAg´ ö: ïeþk͇$ÃÇ]°%øwñà C[ŒRVf±AÀ/Ï‹õ €þ×c’FZB›l|"Ò’pòcÃFÆeÙßï•™)“|Ý"\` nÁ€}8ºf <£O8áEwš«Â‘@‡ßD$Ýju0Ô0¶„ãX·rO*szp]ºŒæŸÂä›,*tëJáøøµ‚>²À7–/,QG!òº›ǧÖýzqãÇDâÆë¨Ì•ýˆžM¡4!>=tNBÔDK^Eàû`sçÇ›9à¿j`û°U¸ýfÎÙV!ÃæÂÆD¹R¡Ò)­¨i1žå¥Œ´AH‡’­Š÷©¢Ç)åûJS<‡OR\4 €žÛnä˜VÚ¦Î,ç û'Az¥¤ð)`bÔ>¶Jªñ\å!ÔQÚÒ¶‹bX¯ßÚûSÀJØ!\ÞéxìûA5„k‘ûÃÕy÷Q„õ ~É.]XªþTd²ùò×=‰®[²>!Ì |‰kÃ;|*<´ÔÁšZ‘=Mª\?"ߧ€°—«©#I$|—È j–Ö<£ëÈ<ŽÌžˆ¦ 9´°Ó‰—ƒu¨›ÍCC{—ã?et + ÎmfÆCÌ-!ö53¸ÚBRiVl*Ô ÎÖR¸ñ^Ä!3rÆ&Lò LÝç°a z1=Ë3“šu%¶µ¾D¤¦*¯‰ªžcC‹M­Ù2ÊXý(g5>ò®wVãx[[6Q‘1çh)·€äêå¬ý]AVaE^” é;t^¸áŒ;wƒûç á‚1dØW‡ + +¶ ˜Ñ¸wdzŽ’ÿ6,Œ™tHêlûVžþú„¾‹,ô­6Á"#žvø + ïi¶Ÿ0ð ‡C.Øf  ååIP‡=•¯öº9+©ÂЙ^0k°¾U*"vˆ[§–Ì‹eð @­[¬Qþ8póÓsF›ÿâ kŠ÷ëò}NÈ\ŒûE¹_CeSøþ;DÛ/o8ré¨rVtÙhP3÷éú*ïöýåí †_nº‰B·Æ€o)CxîÎt>"$¼}6c–º£‡ÄÁ$p²+ùÍ,-·¬¦ï4K}¦#T¤ƒ†­øHNVüú[±Ðn/Âfnþ#߀ñ²æ×¢?P ëL-Ó™rÝl£ÛïNÏ•Ú+%hJªÿ%˜n{¿Ä¹4™ùðKBØš‰c£8&EX€ûdû—¨ üL^y Š7‹yžü§!#w²Ü‹Åoûõ±{RˆL¡Á˜üEEk]Ì2±óå”{Bþ•œ+I¼±w²LA)v«>u‘س'Ñ]bì¾æ´¼ä϶ͪˆk?=t~ñbË«-\e„ÚŠæ43y¹á!·ËFTJ–,ïhˆÛ]ˆ ÄÝŽío“-º{¼$›"²:‹œôi.|B·Xg¡‰ =ý‚{êYÚ÷:ËÓ`º“ £ÒjÓ*×ÉÙºdwW~j~6ÚQëeªìEcÓ„µÃÙNCWà2rcÂ1€«¡Šøå÷»fÒ + …[«ÆE|•®dŽ#çøUâa´"ÖÆÛéÀ$*PT ¨ó"ÓDÿß{gÑÛ!;ܯ¸³¹’°¹ÉÎj–bñ‡JI!Åj¼I¤pÌ_îÚ[ùzÀ'¦edy ëRš,@’rûÀºŠ[.ë<ƒ®(٤Σ×v‰qfÓ{Û„ µšU,Gê96v”owÈ“.“¡¹z M[ךðLš~iJk†"Œ¿ Zì9,UîXoÞø”M“½Ý»r¼ŽAŠ6Tbž´1o€¼V‚y.˜ËOJÁÝl¶oÆ©DÐæ³ÁÁÅZÏç¥xQÖÛC°¥¨Ð²5‡î“(wþr^𠔈F „Þ9ŠÕ‰Æ—+Nñf#ïËH8zd ÙX۽߫?š|äª41:‹FBx’…Ë»\£¼ÿ¾èß\›¦­±ÚÙÝdNAÜqäÖ ôlCnrë%¬˜V'ÍÏUŒ2Br®ú‹š¨ŒïH­Ý÷pƒâ±—ͤ +…ú§’&ÃL+U€ÿ¥Õ×Ýc°!§›VÞ“èw5 k:R9luŠ`‹C HH6õ˜³¡=.({ôJg«[ŘÆyUQI_ê1|çvîî ÁÜ}’„Ó¯ 7~ymÃ¥‡à‰7äÀ×™ø˜BùK†%r‰0ÖÙn«¬æØZ_$Ò´˜†¯|k£‚g†^:FlW + ìæ ”jè¢xÿ;'lº¶·+À"¨*À nFš.:£Qdv‡9<ã·àIÇÀL¿æé×l+'&!?@D;%LÉ”IhÌ + ×w&FÆó}wj÷¼HÝ ü¤°ê»Ô²ì}¶£ŸðÂ6›»ÜS'Ï*.“ë“'º³-X(3«¡ƒ,9‚gd·nŸ[¿ð+ìsW‚Æô>f‚ªnNŒ)ºÕCt“ÇÖù`…zÊ•FѺˆu„ƳndÞ£æ·ÉûOEíuíŠ3jÉöw[H’ŨyG 3Û‹òÌðk:wˆ©©-"Q9bŒŠ\MhË;¤´º:óHÌ@ ÎR™e=yãœÏB¢Óf^çTï@¿èqlÕ´%m_NZnMª sÞÁ®Ùé¥âaúßÏÃþ‰[C‰úÒ+qèPxѽ qÍ1ÇY0kèºÜì»;läHc®kH„´µ+Q’Ö®­O–‘ÒΛ›…›sóNPt8wNMKu¥ßuô_d¼ºîÐoÑ‘0´Jmt'Ô0Éù@4Ú“:NºA'›ï@ÛÖ·k¥œ’z˜³²]ÉoÙ슒jqŠ=¸Oª÷z«v Yöåè×:˜ƒ°vL pèg¼Ößü•²³%*' euP¥HiëäÏÇy8n¢:¯k¥dê­ì€òw0þ¢31J~dù>ÂÝö¥§px(µ);Ùë–KGÄRm/F\`½ÝV;9½X!OXVì…Bã麙çXÁ]ökèíT¢ú õ+ùËLvÞybfõWUp§#[+ÙœEâ(cá<®Ê½”©Œ6ùå@Ë*ûü/aGŽ!_¾ °›véÃß9•Ú%­ýÈî¾Îj'—Ä"&gËX§•7› äO¤q4>ìp;oïíjFïöá¤kê:HÉuDzq¡(ÑÊð—1:ÜlôØ‚ûbÖî#v⣴äL—œ#¿öHç ÁQxs_ÄNÿFSpLúµ<<¬%Œ‰ *„ÓùcAÖ&±¼¥Oz~úêŠA¶[ÑoýQu| ~¶ÌùÍ&ÚOÈö÷Ñ拨xg;ËŒußpîö O0ív&050˜²NÄ·`¡ûLL€û`úD3vR€Û„©Ä¾¶T­láo¾S/<æ@Œ˜±%Dj–Á™§áO}^ÊÇ•H;í’pGˆOÂÖěȈŽ&TŸ=êêUŠ`I…š:°"~w˜P‰.&:Kg4BL«¼Öɹƒˆ›¬F¦/Zì<¸SMˆ„­øàâ±£íÿªÇ±ÀÄ%MOSk>F(vuµ‚fcGæˆY•ŸÌîAŒÞ­´…ƽC*tx—€sýh‹?œˆM#ôXûµbø6n[8Ò,šAWT %ÙÍ<ÿ´ùIpæªÔm@5(1¨«¹K å&LS‰#â´D OqøÉıÁ.s@,ƒ€Ÿ%(ñˆ¨LÍçBÆ$6è»~±ÜIÞj¡DÞ:A¶ä6Ý"ef'.ŒJÊyŽ§¾¿[O´aãa}yIÅ7Œ×<û&XHk`ûUs¨u³Üv‰…íü×¹§ÿ + ‘ð©Ý²]<mFú¤)Oiµ±Íþ}ðâ3’»ÓUŠóVJˆŠÃSùšRbo{K ¦4ðÞËÜßuñ?¿³ÂH4èÞqÇ?> –ü×è÷Iï’}÷£wã D²X×W¥™•,Ì*ˆ¼,PîÊp'¬»äC¹=CµéiÒ•·÷­§±Y‹•Šé>g£'Ø‚áÇ×·M‘ütcP‡$©eíÈ + ™‚~»5H7&Ùÿ…?<˜N÷w'œ‹¿:¸°ÈΆ×G%i輻ÿ1ϳk ÀSI/µ"ãvqÊ~(ž¹079qì»Kl8\$ç@çjGð0¶ôô …X`0Z¤h¶"‚`F¶Ç¨6¸:X«LŤ8Ðc<‚GÖÄ{KÀAð Æwôæq™BÜýq¾Ô$¨‰…ÝÁÈ[P/Õ):^E’ŒTÈ@5 ¾`íÒ^®sÿ³d£ -­õCdÉœkÈZX!¼N·¤Há_ IÜq*ñöhX¨mÛé©NƒP¿G‘p8^\xYÀ mèŸ#œˆ±±Z¤ÂÎÉ¡V`¤<ݽXŒ¥»Þ Fˆ`;x%*6²FáTÝ;{Ž >²‹f§{QP´®&MïÂBnìÖTø¥ÀšüKàÃÐß•8·3êÃQ.w!åk¥ ¨À]ë\‹òP”壹^Tâ> + ÜFéŒíþjY$ˆfkN©ïþÊl¯™ºù57âÃþö§q4UOÕœyYbfœh L#|ywÝ,€@{2)U½Ÿ}Þ^©~Ϩ7 dï:;ú,‚h¼6P‹™óGE¹á½IVK’.È3¨¾LÂÙÈ°¯– v‘‰wzåý 6üF4š‹×•U‰ÖHCÙo†iK@«R…-8Å=IòÖËö…k(ÌBÀ=:+T\;5˜ÔÈFÉ(\ÁÉ8ãq³[§þsJk|¾ ë\VtŒ-Ob —ÆsT³ÇÚ=ÀIÁeí>¹ákT:LÅ$ÔÎ œy‘0ŸIV¾ldý˜^cl‰É‰€kµ¹cží¬ä1†Õ a$coª + ®îEòü½…œ—HÝ­SKO†T|Ÿv“«ð,à=^Ü­ý±\)I–>NѾâÎfÛçîôˆL¸ª½6¿}!äÿUÑ;*…›\V}×Î ZÂìÓ©óÛÔHª9û°`WCŠ“~iávð¬í} Û²ë¶TMNtíOk'‡tYáUí"Y|Ú|¼ÚÝü]y`9Uz;êá,ñgV¡«|ûﵶ;™Ü±í&Pe(ÚÊ«<3‹PB]N‰¸ž:2S´¡ˆ¼ZÏ!Q’r“ÇÉíº†üßÐ5™‹”D›€‰Ä™Ÿ½³f£äúi€vÚÉ‚CD÷­C"¡OYÈòiˆÀän[Ûö;4(ý¢ë[ÛPp|.(®K—Ì°)ÇK‚Ÿ ’¹ˆÅºüâ:Ø;œ‰û+¶êlj]Å\®y.Ò‘"1êÛÑVj¨¾ ½ƒé+‡ô®ÏÁPbE™²Åº(rÕM%bÝk±œdRI¢cM + %ÉÊ?ÄîC¨ðZ븊<©ƒ‹žý§ã/–îáM[¾ÙH£%Hç9Ü0uXµT h¥¬@$¸Ýß½Äú‘À[ÍÞ\|BëæÔã™jKƒŽˆ—v5´žÊNjì;Ÿ¨È@:•raØ°á Ü ›¼Ç*(rÈ[¾>Ž„€Ïâ\•)´삪b›µŒW5 ørýè%«?“ýz°.åÚýa(†¢<š" ñ‹Œž7IÛ „'¨)vÌ + ó,$o¨üöÀ%¤tBìSH)[‰…×yÜ&‘EGÙŒª$íµw5lµLŒáÜñ¬ Ôv{œžŒ.<Òt]ùàÞz¯Õíl«áçÐ@±ÊvÐÒ,Wsç•*ãÛ´!£S B^J=·Âö›!,\á-/’muXyÚ-u(¢çÛT ™T·p1.>Qªï‘³Þõ=½aºx­E±I`H›oÖ…Ùf²Õ͸f#³#Qx¤¨¡UA¥~$/%æﺋ>bF ÕK›†8îH±HA„¬³ + AÖÄÝß\2(0%û¸—üJKZœF±ºí÷ffgiS ^|8ëžäùh§ôFÿä×HªÒ†D Å™}ª‡·Û­SQäÅ'(o½–IWÞ|͘š`t{ç + á€x@ŸbG¤ÅÈ1~:ÚÇ + IKŒYGù¸u›9Ì=K¿ú4Žsø}ûáòد§æ×;[•Dhó¬6÷ÇKÈðdÉuÖmÜ&"/z…^ÌÁnä†Å†|Êal#ºt¿'Su8¥ µ¯,º­lýöû‘ËøöÈ'œØ`qÍÄfz4ý-XUuF¸‚Ynì¢â²!oAb{ùõ9{Æ/x´Cm uš÷ö:àš»W:”Ggdœ/±x°šÑ}„PžV×Ý"ÿ¶˜%6ˆ¼TŠ€˜L—ɪ“M%ý ÊQ>d­3qM¡¹T¥ ­³é_ˆHßÒ^l—(L2Ö·ˆðWÐÑžÓ + Ï)¬'~ è¥y‹Ñi<8Ïe×ä÷D×°Õ¢©É+§ÐÁ!õ´ì[s¤ó[<Ü¥ —|Žg„'nísÞÒ§$ˆ ^©Yd–)½o”Åø:€kx‡RÙ oígô/æƒ\;ŸÍ_-¥ÒÈ¿Û¸„³D®ºßÙ^n^ó`ÔOÌÕØm¦fTæ{éQ5vä~‚ ²JØ·iÞýîß6ãO´H»¸.Ó¢B48Ú{eîÌÐìWyL$MÖ«¥â, ÈI«Í± ÊïÿÜ샹=€Ïó©± r1×$(èŠyÇœâ¦Ü–¨ƒXœÑ*íÁv‹zwÑ6P\ü"ÝG^­Û‹n*¹¾£ä)QgVæñnª/ßö<6WS<Ê’(½!NzÁ;"2ÒÒW3^éËãv3Š‘=†íé뇓Ï6gç©;¢ÁD¼ O(†Ü8ç:o7y‚M[x„æ~¬™j#¥_ýëúu¤ß3¶Ž8 í³ä=­-`¼µ•ŸW•á.¢/·l*ÁDjüe:‘c 5§ßnM$«ç±Ñ¥£WÿC®î²<|JíVp½Êêí©Œ’»9¦»†»kX…_E释'!fRN×È‹Êaã“£¢ ªÉƒI¡±K–§&ŠKNâ­ã_Ü£ì=áex.•:¡œF^­ÜPľ1ÔO‰ƒü+U>×z4Bá¢É>`),‹Uy `v™«ì5+¢@}­8•E¦ˆp}éâ´î|ÀîVdçà)ºìâZ±ê­µ€Ù¾vÒBópËöc泯õÛT§/âVÆz£ˆ + 8‹¦…µ¢ÎN §€t8ü2œ~øçÛ±õÛÄvüáà}Ö µ­Â!EL(ädȼ6™¯wBJ½hØM4§Ú®%õ{O 9Æf¯“‹õã4©üù4×Ùú2p­OVj›&Æ_ÁmòêÝTŸ`¬Ø²G¿¥×h³ ¨ªSY°|åwIXÃhÍ´§³R›Ê@o¢òÞdšzÉ[çÒcx€yg¨‹š*]b: où”\ER ýšø¾{^܃éø¾¤A& ÌêµÁÓQô.†t¹D‚27»Þš0š—g‡©‡s¡Uú…ssÞ.œ:<¶£k<垢ë@l²Éw¼Ó£
    `ÙõÔ1ø¹0ôS¤–aÉ&ï 1‚‰™´.¿×ÿjå¼Ph¯1ß2é + üe…– 3qàÕuõ{ëävloº)“ÿ%Bìz¿Á¬ÆÅt•O?¬ûtÈßì#>¦Ê^@Aêou*Ý.l½áÍÒBy(æË)hرÃW[™÷+ˆ5N0Ú±®zµ0ᛃÈñ¤#(½ŠÓÿ”WMcDÎÚIwÏ6³ÞDïŒûóU»E¹*fýTèk±ŒÞ9&BëѾâ‘…S”°øèÂ¥FFh*úrýù8hÎÃöõF‰):?Ò“òú™&"R¨,™v7˜¶ÐÆO2Ç›8"{#6TˆêJBEZ›²‹Ðö-°ú8´¡ÈO¡¿ÇÂ"Ù½Ï#1/’š¼Õ·Ìp\’b{ÕÍØ°à“NZ4¶˜/Þd”4 €¤ÊŠ”ZÞñŽ§ˆ}Z'Zy–ÄíìEB¥Ûµ¸­&?è[ãHʽ\¯A{UFlµ{邦N÷ë\ „nË…p693°tŽÍ¹°¡Œ¡h hÇ8AžÛ˜fv‚<7Xø"S¶R9±çBt~3ÿ ‰zÑß;™•“h¶¦K?c_ ýž›¨4žáý§úN|0ˆ0J©åO¼‰ŸØ|râТ§xÇŽ¼üyÖ 0Ú‚Û + ð »”MôgjW¾…¨'Ó2˜âÝãQ°Ü|~„·HKŠn)ÛHÉq–KÈï…õð„0{•l1c̬ãªì¡h‹Ì€CN±‘V:—ÎDŸãZ²7¦¦¸P°¥ûðeŒ(õœm€ÓǼxÙ6äPAˆßÞgtO­ð‡ÓÊZÚìÜÉ«ú!WIjÞò 4-5¡7žèÃò˜ž‘ø†#‚®J.—œÅ³á€‘œ¢±IJI7á­eӔǮ­°rL€ÔèE3ýÚn¼Ç{Æz(ì†×È™òšõðŽÄô¤­Ü°´Á½wa…åbíçƒiÞ‘êãž½ƒ¨·ìÜ©•ÉÚd6½GÖÅN:ZöRùõŒ–¤>rWMÍ »‚,0Qå™ë ¯¼²Yâiü­b\ùÚpŠî¹˜m`öR~*y“ZÑs÷}“]‡“„ä¬O·‡ù“™ôÂFñõÞ†å‹W7Dã\QR¦¾¶’±2R·yØAËäÉàÏÉëÆAO¾¼>>ALê\ØÂr:ôÓ…ƒ¹HûVîà6(ýó×NãÕ*—žS‡a×2Òa\sÄ ¥*Nõ~]#¢ý+§ŽFýt¸êmäÇ»ðQT‘´¨í·ØˆUÊi”­0aì }µàÏ!êîV‰ + )ÖÑBŒ!Olóž`eV$’÷ü<–)+W¶áb».û§°ÙA~J fvŒŽI™º‡Wi–‡¿ Ÿ>$Š&x†cc…Ý$s~Œ¥†j@L$*fÌv©ë¼7|-ŽRl¤†ç%ÌúÌ{Ôåï}ó&D}XäµoØâ¤t'ý–Ö'ãÅ1µ¤PKÌþ±}#!¤æÀ¦w¹ÁåýÄOª8âîËç»ßð> + endobj + 14 0 obj + << + /Filter[/FlateDecode] + /Length1 2247 + /Length2 14717 + /Length3 533 + /Length 15956 + >> + stream + xÚí·UXœÏ¶¸‰w×ÆÝÝÝ=¸m\‡àîœ`Á-—àîNpw÷@Ó¿}ÎÙÉ>ÿ¹™gîæà¢ßUõÕzk•|45¹š³¸…“PÆÉÑ™…] ©¬©ÉÎ`gac“@¤¦–MÝlœ¥LÝ€v~~€¸3ÀÁ`gàâÿ!"R$œ½A6VÖn:IúzñÄ€ sSG€²©›5Ð<ˆ¹©=@ÃÉÜèæ͈ÛÛÞÿóˆ+à=ÐòZ° "²³,lÌÝf@+GDÖ´ä-¼ÿ¶pwþŸ& Èì û—)=ìiáähï °Z"²ª8óÁ6ÿÅþo¼þ÷à2îöö*¦ÿ ÿ¯býí¦6öÞÿÝÃÉÁÙÝ (;YAŽÿ»«ð¿ä”6îÿ»UÞÍÔÞÆ\ÜÑÊ`û¯«ŒÐBÍÆÍÜàrþ+ t´øßàÊýË€U_GNUSñ¿×õ¿ZÕLmÝ4½ÿ=ì?ÝÿÅì\À€ \`vpGðïÿ|2ú_Ù¤Í,l­Ü<SÈÔ¼…ÀÄ ðeØ8Z½@/°1+‹£“ø¸(~K'â?KÊÉ `7Û›:üÿ¯€ÕÅÝÉ hafÿ'È `utw0ûgé­ÿ„y¬Nöö¦ ?!^«3dttûã°š:€£®¦àrý;Êÿ߉þk›üO˜‹ <€)èh´ü+ÊþßÑÿÕ™<²ë?C¸Úý ‚'ålïîú'ž’¹“ƒƒéŸx>ÖÞÎÖÀ?sáâù—¸ÓC.ð\\íM]­ÿDÀ3ñ‚œþÀ“prþ›¹ÁönžÚ¹Á‚–Nîêà –³´ñøë °Š+Ðã/ðJ²ÿcšÜ|ÿLÀÞé¯>üÿ<å`óŸQpv{ ëŸ™ó€Ëtq7ý³’<`!«®à'ÎVèúÏuó'.šé°¦ø+Jü!p$ÿXVêE¥ÿM¼`A™?¶“ýC`3¹?v’ÿCà슜]é³+ÿ!pv•?ήúoâgWûCàìêœýýg×øCàRhþ!°‹Ö»hÿ!°‹Î»èþ!°‹Þ¿‰ì¢ÿ‡À.f Ss; Ûl{ð¥Ïjÿç.äçüwïÿ<ü`5w𙹚;þl1~žÿ>iÿ96Øõω໚ý!°«ù¿‰ ,kñþ³«þÂöø_¶³ú Áųþ ÁŠ6!XÍö/;Ùý…`)û¿lõç¢b_ª¬Ž!ØÊé/[9ÿ…ÿìñ¿lú ÿ9„!ØÊí/[¹ÿ…`+¿låù9ÀV^!ØÊû/[ùü…ÿ½’ÿ¹2ì\ÿ,û_~ÜÿÝï?×›üßøþ3·±q³±·ø¯%ù?ßFN^¾Ì\fð5ÎËÉ>l~ÿÙMËÑ|ÈKï/66>NŽEÍÝAà ×í_ïð{îØÒüR½€æˆêÊtgt+¸l¸Æ•4tÁs¿J#ƒ‚…´xÛ ¯Äï·¤o¬£½]m´CüHý‹³Ñøè¶êåm<@98sëwÔ']?2·ˆõ_õt‘ͪT8jKb¤­‰ó·¥µæê!£=MR«c?pV³ß"CU¼”ìù2 H#!“»ÛBºÂÉ0i «Ÿ]VL¼Kç¸f¢gÿ ø‰ò‹;“Itx&JTäǶ¯ÚåÔ¼½¹e(}Á•åŠb™HÁ/„þcåH?³¬t¤ªì-ëô,Œ«ûÔœˆy¯C’žJ+U + ÌJ E~Ô¥qk»îC×þ†Nýå÷d×bïÞž + ZÈï†ÆP[êà‰vZ iA«Ô»í‰æsmèâWǵšúéû<Ô”O „ + ºG¯=:l?“%µLJvæv­=¡/X½î£Ì£ªB;MmN!=X¢šÖ²6Ãü«Áo÷ݬoá¹½xŸIÕ×ò¨àC\3µ©rŠÝÀ3ènþŒaÐëK5.™(lÖºïáD9ö]b@·´Ìó‘P¹wF°ÒÝ:ò‘¶Õ_k$uÄQéŒòúË”»TØáŒMûHÌhÚÛ?W²3 ™7œÚ/f˶ )7%™#ƒÃ]¾¬˜¢p²ÈISDº"Hßâyt»·AF,)&<¢öûk§‚&!H]åpnËáöØ6rĈýwN±ðŠu"ò+0TÊ”ØUauÀÛåF¶QzÔ±†…ìÜÇ zô\îX¿3%iM„Ã^ªe¬3ºì“CZù†™ysë^Û°µÉ(¤§ø1呸¸6œpÛ…€ã÷uöoÖlŸU›Åx}çeBaƒå÷ì_mR>¼ðæ—Q^i²ÆRŠå»®í•qä²Y—H.ÓÆ | Ì‹þi©Ä”‘ý7B"U¾‰N1lEùcĶ-„žuõÓƒ[Åb¡ñOË·>ÿȹsXn`㇇Ζޛ/Ž§”,)–/ªXÓÐòÊæj…áŠ>I4彶п5žCÍ[E_5쳌fsN¡±ã:¨º¡.@ë3z7G%¿0D%Oy&õùJY:S— V®â;%†÷;l´)¶Îæ!T”~ƒ4”¾˜%½³†ðM´ÊeeŠZrD5­ËSe®ë`Q€ÐŸRœ“£W Âvji4ö&û”ícn¶pa`zk&c‚jó>sZ¡•d”Y̸R »”¦£€RÖ6bEË眭ÕÆú5ÅÖfYÙ@¦;ÏE8¶ºp¹?½GOŠhŠìѺ9…}Ådydˆ /-byË5~:Õ,Ò8Ž@Ñjœö%~OéoîÃïgWþì¨I«(S60îz@Ý¥—/ª ë*2Å1K!G-8©å‚ªž"«Ì’w6•2Pj¤²~/ΟiòŸØ*Ñ:üò¬aÅ°`¬³2è°=CŠˆÛqKÍfC8Ä6CÇåé3莆EâYw/hfÉ=:×ÿFóÞ°c šZÕ¸~‡ú€i›%Ö›ÕÀŸR&r¶"ÁÌGÆ™3ÏÂ<ó'iª„„ù~ëgaq²b)ySÒr/}ÀK)çƒWòŒYˆý<“îx ©øâΗ¶gü ™ê J%ïlÜòtï_cèRnHCA¸G: ß7P-“±<ÐIÌHÉò¡¯w¥~ç“S{0ÙN°Ê¸å£í1 í—ãÛ h7r¿‘,*~ÁÖP^wí$Ö|Y|îkxMDÿ¥µÉÀ[€Ñ‰ 5Œ¶üÍ„dîø7µ¹²s]Þ{ËÍ>¡ ~MgÞX.ê‘‚ŸoJ¹ßE °ya üEŠ‹tL$0CÃå n6– Ö/C’ÓÈ’mFLg~‚éÌ„)Œî(öÃ\ü®/­éÌ¡Vˆ£Ó‡†[ä?SS&ék;òÇÜacêŠýž†§Ýa_]£’zó[¶C—JžŸ>ŸöWc3¡žD†ž>GùSôRà!7M+®7ŠÓ©àŠAÐ]ºS)ÚÔqÎBTgúÎl|ÇšòÜÆyQAØï5îÞ*#<×ó¸åŠ€º93}€ôÁÁ)›I•÷œWèH7T½Þsêê› öÂ>"¿‘.Ÿ$8K/h¨už”ÝU¡ƒ>&"H¯.¬é5Ø…ú‘}_wöÎíg†” %ÙyÂ}J­^8eB%ºþü^+úIy¿)% + å {ÃCöUÓMoQ'£Îq`†£ + ŸhÃL%ý Á‘â Þ+1¢ÿIÒ06bZD¬ÑNÇY?º› Äf5ð¡ð„GO¹÷”@çjÿÎs.ÿÔ Ên¦^ØÉÚ Ç^µWïM%êI@bys_ôæÇèhÿßTçt½“g eÅÅzú µ)ñ» X*ºŽñë÷2]"Ÿ_ëC ó^å¡¥BÌìYOí½ê«m?ñ2£ÖÈÞ›ÔäFO_„8¢PrPIzæ|ÛJ(†±~¼ÊŠ«H!(åÂmÙTvc±ã6ˆd–gÍPRÀˆSÅÉ/)h ȸ¸.•v&*^Çz³x—ažo V63y + $S_÷s—ï˦am]o¤šæžò‡@nÍ÷^ß»dšçk[V`1µ|~öˆ2€‘Ú'dâªÊ+ó;f*»yâþ-ℽ,”ia‡ž*Ë›¹LéVôú06B‘¤ñ9}ª—®wy`×'a—õÆL, t+£¼TUpGN”ÑõÛkòò^¡æªÚH¦hUuÖýåóÝö„ZzÇí.ÏLHÄ]ã*¹ßé;&~„úçâ–É/? ©i3C0LÚY¾ÂSÕà!ñ=èÕ2—0_Ó‹û6Ú6à™k)òX´å^†R%öç‰ø9v©®•Õ]PMßYÛdÖRãí‰É»ÂÊX#e×íØZt™¤_uqÍSVãæ° FÙû‰D‰]ìœI¼4>Ý¢òRõÚzS¹ÂX~¦{c[õ¯|‚cqy/ÊÒƒ€ú…,->ºÛ”+ öì´-ß 5‘ qV“7`!v…œú¨3±ˆŽ½ÐºÜ-‡‹‰Ý[M‹uþ³eÊñPEû|š×]|Ÿ + ŽÀ%zÒ„‘gõݤùCâ³1KÚì•ð\I[u‰_ G:N×€,m‡~©NŠ>óŸ5i‹tŸ-¿CèìÍíÇÓZÐMé¡]¾Œ#•vx¶?K 7ä“Ö{ª{Ñ ¥µvü`6ɸ¨¸Á4u§á…^MÑÌu$¨ œªÇ½è£\&ú ? ;ûòÿ€[Ãl@f|.¬~š÷õœÌ»Š¤r<¾gååbez bØCçã¬ãô§Ó"Fð‘„Ö¡4¬a†…\“•ÍÞ²ÐWùZDõí—lØ6—zS»ŒÞEOÜdñ÷êˆèÛÌÏŠQ®ß8ã,¥•á¢dÉñ¾X^ùè±Q±U0jèB¡5˜K\\™özÂvì§ÅÊ´œ¤#™øMÛÐÓäŒÿŒä@Yû$ Ec&G@ÓÇLüæ·±ë¤ùÛœ *K-Ãì´¢aò[P½#Ü2h{EDÆt8œÊü²þ8Ää+¿po†Ôœµjµô÷HFwÅïH5’ìž)´°]|vÔÃvÉûísâùЕ~˜¢€X-%æœi!©ýKK£B +Mܯ籴¯ü¿™n®N³˜*jC9Ïuúª U»p>éµT؈þ¾PbÛÁ…ªŠÇZp¸ ØŠ:5ÝÍŒæÌ&χx’µ¦Z‘Ýÿh¾\W¶ò (‚cÚ&fý¥ã*¢æ©·¯ë†¢y¹Qâ±)tÙ‚ßœ q…U"6„¡¤oÌ2+`Á£IQˆ!d£¿Ø(¥¸"™D}Ë7lýÈß´)J3ž±£ýã¢X”1epLü¤lþ[•ïã> ›eçO¼uÃsFx«u€´æÊIÞq]j‹µ‘¼²ßäîm›•tU Æ;É<¨™&íTÖA˜ÈàŠo§Í¬h~˦­¾Ë|ÔßGÝz¦Š†ŸÙ{†1´uskwʉ»hf4ýè¾Â¤ñO<×<ï@éïòD=)£ï'°¹·QOºÖ$—´!=•u̇–ZÅ™£wÚÞ7±lq‘ù>×qÃeðulxã›E2Á„q8çLÍcð(Oœ™G—v¤¯tÏ + žxðV!‡_‰ÕŽçæUî;ÝΣpˆ¥ yßxï—Ô†„ÐÙÚû©5eaú¥ð6¼­'X¸Û¾‡~užúµ¹\N:þ²ÕžæÃŒbHy‡ñÃ,Õ@°ã”f-f¥Z¼ªŠó½O!¢ê®©óT}«^#;‰QßÁX”²T;]Á@Ø—‹”Iξõ.½ßud2ÃjYSwÌ°x´Ô6Ô2mó}õ;ª!Æ­ˆ„vÍjMÄ + ‡êz\øN_cí›ÃÒÛékzD7bd)ZÙM«;>x” -#£F,8Ùj"+Úu·Y³YuâpEð)“ÇÍk‹Á©±Ùp\ + ´;>"4™È£ïÕ5íÒpèÜ•QΞ_£dnjÓÔ³%AZ¼ýÜÄ.¶³”CPÌŒ t“ù‹žB’»ù2Ä*Ö„Mh>mÖðBEZFÎ’j|O®[ ùQD×Ðv@l¤égÝÕ.'æÈA£—‹ËFvX»¿^÷ç^´ü›ü41è1WH7þ·\ͨãÈŸÝÛ¹ËËIwÇëë2ò®q,ÐÅ®»†¸^… 4¿µG»â1Ä9Ì.N*UÀOÈù~[ü´D/…!\UÃbëÐ2PÄ— ÞíüUsøàpÉJQ"—„FA¾S0q›WÚùgx6ì.ÞÈ°AûWHþ³/‘F¨$J£Ïï?²!ßúý$ô'†No`i¶(õ1_LH£ñ‰ÜÌ~¦Ù§u%(±!îöôD[V^™WuÔ?•r£èvÉ]ã³l&…Pjb¿?Ãàð×BÅ g5!n cÝüFë'Šó©êòÕ‰˜:ĺûçM¿8µRôÖ·ZÄãØÑ£êøªfua‡D™LãÖž‡žF̬/^éë^?¸sÙmö¿•s$ã͘ã7y¢1ñ ŽØâ±E™ÈAØ"5Ç®è1V÷!íG¥Y FPÓsù’±&{õÆ.+Ì»n‰þOª+¢å‰-v<…xŠOIѺ˜¡T£½K a&CŽ¦w™8çдmyðÏ?ô»"…õ¢ð5è&ãÓL5ã]ìâµ%‚aBÝ¢‹Ö ¾åÀcäÑ™‰×A6ËŽ¨Hé<¶&æ›YTdvq e,–ÕŠÄ!ŠŠHC&¤?êС´µ@"}ÆçþT;\¨TÜC°ÑbÙ¡aíƒÕB + &¾xáËa%·õujÙ÷ˆ ´@éEä;<ŒÝzÿu/_B‘0_öEñ"÷¤XÖfst›mHêR£¢âœŽ“òpE-øãÓ›?v•Nù/:›õÍúÈ7ÀaT’x{ìBB»Ž<ìgOn äw?6Âk¨‹¯I½ ë*æ“Êe¡=Ž’`Þ¤¼¦OlTlìG³6±÷¼°H0v£Á÷(³ØŸ˜Îs 5?0Kó¦v»·àP5Àä2שqm©QNÛ {˜á ¿á…LGªzi"_@öV!½$Qh¨‘æ |’L©ì#NÁHŠ…pÝz¯$Â}‚f/³ù$‡õÔ3mo»ëÖ3æTJ‡ày6øâA‘4ù¼÷³5úþ§Ë~Œ]F 3ßdaú¼|Tlð¹ej‚bEÈœT}ø›ee Í@SùÓ"&•Ÿ?½îŒÙ%X5£§RÙ™.‡ùˆŒuyŸ„ˆrg¢~.Éí.@÷òÉTÝ“,µ Á_7ž{¨÷[¦ÚœréÖy·³3ó‡Ò½ì}AíMu³@h»t + 匄^šcfVÒÎàWƒNì.SÑDjûîŽ÷µöÕ³t3æ@ºÂšü‘'s›-HeX_0—ÞÓJ)4¿9–8ú.)ùràéÓø!>R5—=ENá}‚¼ƒ}Lü¤Xz³»˜Ö\Š€ãÔz<É^Gv£}ê6‰{l8tèF™×Óáò‘ѱ{rQê%QŠÔÚ=;´Z᥯?–uUƬÍ{mHË‘xjÅP4üÛ€*O…~„Ó.5/ðž§âfð©­T̨^9v”ÚñV™(/:VØ9(‘^w³ÓùUA`;ú&%ÒØj + ô=jÃI¥×¾ÖG·‹²ãª#&“µ:@‰ + ³ò"&#ÛFYº_¿ÌøÍa²Q§[ÒkPÝOí ⃭™UrØFØJQ~õÓ„]¤¤Ï¦j¼¦å£ñNHoži€cEÄ`: ‹8F¹Ð…ÿÛÆ0!”iÜþ¸—3žb ãŒÁ”\_oµJò™<•‘n6dCÛ•GÅô»Ü˜ñ B›áÐׄmü[6·xZO§3Óø¶µ;q‹•l2ñÇüI«B¨„mÄjeÎhuÒ`‘ãǾûÒS†„T¬3XâíFRú¶öúc¸}“PnÃ^; ½3ëï‚‘´æ™9B‡G†:¿Å2î.í°4ÙLq¡€T‘¬`¸aMåûÇi¼˜jÍò,Fñßj•ÑKëÖæ0ûz4à à + q:ªhÕž½lë»Ïãa}+ÊÁÛvbŠæ0TÐë€ØËÒe‹cŠÑ·FŒOƒÊiªŠ°¸JþvÑÙ¹¥2 S¸ò‘„´W—vKúõ~âg_üâÙão·|/aiÖèü†©n3g¡¶µíe 9Ò¡u^¿N™½¥¾«›Áe°+ ßõ~å‹7*íGL:Ž÷¦X¼Ìqö ø^?¨ + ûètº´IÇBd¬"ÌB¡ˆh&¶œZщáŽöžû­Ü„µÆAƒÚãdó™Ê͈Ë¢fßpRy2›Im¶Þ%‚‡ÿ=“1P¾uРûøˆZÃ1ªÍKõþ±Lh)ãúÚl,“¸VˆZÄ“³ã¶É€ §˜©AIÇÂâüÕÇÐ1–Ót¥¾f1ôwѸé>0QJ üA"®Ð¯û>S®AdDºkµõ~IJq–kþ )À]êT.Åà¦4 ŽîR «SRçá@Ÿú,ëÙ+%V|a £SµFÆ8¦„®­°fA:ÅSHí”ðKE‡F´‚Eÿ‡¢å§çÈ:Ï@ά¨³;Ï¿÷ô  + Ç<”‰ŠÃh8”.ÁØÒ§Ä]ù¹¯=PÍ™]Xû© + èñß–a4=˜ Z00ÃíJÏ-Ÿ¤™ó—ázX‚¦w›óñ‚ÂB×´ù^_ˆ×;#³`И‘HîsÚW 9ýºš¦â_£[an$²bÎÕ:ô$ + ’=sb› û¸‚Š"ÃÒÓ _²ª+|e{<ü„ëP°ís¿xÇîE<û[.'n«™šY$Ùãðóú¹ô`Õ^]L³+£fé#`m¬ïkľ^ˆ‹üÒ ÊÔ·Øwæ„r?¡¯í«Ò¯. ™Á¤Ò£ + ëÄÍ5!l’ЉúwËÆ1'ÉVŽY¶¡cšsu >øÚ¢·®·††U|°XFý&Sn †_e_zWÓk`‰Òñì:ü¹=wä°©8 pø˜-ëÛÚë‹(ÉóÓ[¹{!2•ßÎE†À_åd¡…‘ßq¹?YT˜õMsÌ›mÎ?+þéÌÇD>òdA^¥»Cv}ÂØ’¨Ù_|ís9ÄœQ©k\‰í´Á6ƒ> + ߸”xõi0ü’D³ë‹¼™$AZ×þ†«œ[¶ÝÊ + ž^¼9A¡÷³Wž°nŠðMO†YÐõ%ñy•¯©§¿¦â¬(ÌȲZ+°0«|%Ù(!5[HYw÷ä ÜJgíŽùÜŸ²ºñD%€Æ\¡ý t­–ŠÛÃ?@{‹3ë& + öÈk8 MùÝ‚Ge†K;}•Ô?¡dÏî@@„©^’Ž Ïô›ÕuDć:“‡ˆ*o(öÊ´hÞêÑ ‡ò -{€cöK$ìC­ï«áË­tu§¯Ù*wì”Æ5@”¯I•1h‚äeaAÍPñËOb³iuÈ7¸R½õqjmY¡…‘îÔ‘;)Yr÷-) Fr;~#r'þÛWe:[ÚM2}÷.ì0aÑÒ³6•ùËѪë^äu¡ïÅó®<ÓI‹„w + ìÈÏ#ð->ó¿\Ýë*f}’õ­]Î|¥T>^ÌpÄUOó›W‡Ì[ÎäŠcRHmâƒüHA&ø<Ý»" qâx"—õ5à9ìec|X[ü}”xàv{]u‹ñŒº>‚Wgyt/ëZ÷ˆúHY—89?<˜‡•ã3¢”zËlÒQá¦0mš ÿ‡Ÿs\1s«c½6/JðåU5Ïï‡#G×YÈ€]8®ÆßáÒ{…tÂë#{S3 + 1©¥ !~E‘y¼âdSƒ€·öþéÅ!·Ÿ¯Úødõ¼g%RÔE: šK¬³˜22rcH{à¡0B§Q]ŒÁ%a˜Hó#Þ³âŠ4»´#ý𢎬]©×ˆÂ"äÚ„ž¸vk¸æŒŠì4–Ûœ-|‡cÈ`Ž¶ÒðäïË-ÝÜÁÀE!†ñä È*!1ÀÚÉj%üÅwÕàïEŒ]^ÐK]ÌP*ˆV^î͸‰z8ÂËž`;[hç1»ºŸ:Çêì{C”|Ö*ë+wø®B곚òR´U¸å6ÀLjëŪ¯)Òúœ–•4ƒÚ¼~gC÷ôFXÙ5z#تsãt@&0 'J÷Úc#zÕÿë³m¬#>BÁü𲛄tp¦ÖÀ¢jeÖ¤ÖÕ\£>0¢[N›ûk蛩®%I·È²¡#ŠO'³kei{–¸X¿ >O¡¤h('â§Öoó6[{|â µ'€OR¾ÊN <;ÕÎ×­á‘ÍñÞ¯wß »;×`0§2dv²Ò)JOÒ@ + ÍÎÿñû Φ9Ùïg1ÊÍt¢ù×Rï´&0Y{<+Ü\¿=™CÎ'É)/Ne7Ü•ti½ + ÅÏÒx7(™ŠîòJ¢HŪ•¢UÙ üЪúæÉ﹎ÚZèU¾GQOð‰\Ý eå„_d¢sÛ¾ÕÊmÛÍ%w¹ÚïYX–An¹(çánO™H%—QÙlÎuÜ“„_`ƒ P ë1B›Æ–ï!}¯OÓ·«û5\CûÂŽ!/º>ê˪VÔRʪщÕ>ö»¸«—=ênÕÎWœìks+Ëð’Å(ÎVUš¹¨uŒðl§èL"®ü<•õ3á ¹Ú´NHšÚÈýŠÁqmµO¥‹¾ Š¿;àf¥5úu8$Z:ÿñÜüJdomç}Ž‚϶Cì–ÛÂeŒf®çœÕrH;¹è05\ÅI•BqE-¥hzXy½u]Þ·e êë³ã!X/‹ã SdQ¯áÔ?Ò¿WËÖ¹ÚÛ8ŸÏ+¢tû0d»öN"«œ’âbQ&bÂwéW¼hŒ3}¼sOCò­ò;MX$Òd$þ‰‘ì‚žC!ú½ùRX½wê8©Zðq½.ëi‹^ßt²Ò­¢täÎíE÷ + T³úoXÂGlö¡ù}×›¡xr.y[?ïÖÒ Ì5*‰Š,ÅÖt¬:û®˜®Ô˜™q^ó5^rJÖ±a=¿;ÙÑëZ…_­<-†õ¾á%-xh§¿pJÊ[ãdo›©öTÀ¥q:Ȭµ›C›·&w †Î8Ëq)À›<ºG#c[h¯|ê˜:S¿ÎSúQðT°º}m¼®JhyòÓöÁ…Z:Š–M.ÍË;ëcÕ03±°kc5%Îyl<Rü…Ví:¤ݪI-8çÏ~Õ´½ÛL/³:ê`Ä`' yïµðÈòz4'ŸÆö²_¶R@c€þ+êýamÜsq¯ª‰"ÊPW ÒíЇñu;]ùî!œ¯+„í— ²Íþ³²„É -‚âÝ w’.UèúÌÝV÷¾0‡­éŸ˜¥ÌKÉ{±‹W¹Õ­X´7Ä$ƒŠ8æ ¯¹¬n–פÔÚÆ,­‘ás¡î:ϱ6Cû³äá/ ?g8ø3a©ö1‡?i°¯î#O‡7Ê¢äŽ.ž…u‡wµØÄ;\¡Ô²šÉ-dþ]PV·‰žµÖ¯»'MòCdPNkáÒ¥\ý-ÃÓFàÞW7Èá’+j_’µyÎçOO^ûÝÄJ"€¨kÂ1?¯b„ç»èP×|ëÀl눯 o=7 + fþŸ+¨¯“ý(,FDÙ3ô£T9ç‹X3M$iZO™?à)û|-rµÈÆYœ»Š¦!iêj± 6óýç@ÑF¶Ð8Y¦kÔ¯È_ÎÎí³ñt¥ÃbŽ˜c©Q{S`%±à(­½@ï—±‚6ÌpOøЇÎ6¸ à"9_J ¹Ö=åø0R iÕ$™Ú¼˜ylÇöäRØÀC¬i¢Àa· + ï)­AÔ*|ˆ ’ŽYÚáºËIÿAÚ‚Bá‰é²åæ•uGí¿k „³žìÀ"ºçGÈ6ë”Ìqͱ†’Æß±.º’d0ùTñ–4ž•áSkQ[ÕfJ4ùÎdáâ«®Ú÷æ7Ÿ€„‚÷ Ð’iQúlÏÖ¤ä”Ø3\æU©Ãϧ!W‹e¾5ªv•¯0TÙZ „Hzë·(³û¿©è>ÝÿÀƒñøÊUçðÈ!ä§ï‘Ÿãÿ^VønÅaá˜ÛØ™Víç4cS¹´ñTéø&µªÐ;.ÏúÅdŽ·;c±…|žd»÷“«›|º‰T…ë³ + pŸly“Ž½L¯„Ãà#Kâh„Oœ…挄2ÈÅmoÈÏG=\ 86Mü .Ã\Þ¤‰ÿÖL7+ÀÍ뀎  ¹¬­ú¡›xß[‚ѽ=Lôt·Ð>uo[¾,ÂHÞ_y0­ÇÿY$=glwWZpýŒÈ+pöÓþ‡ ÒÜ”ØIš±šR%¡þÛää<_huó!oþ>Ü&™_ЙP|hŸÅq ÉÐ>j*èKÏçfô¶îy¦!¿ƒlEl=2çQõš’®Æòtç| ¸sûd/"FõEŠ½yBÂEûïc©Ï\?‹¨J)RáŒTdyœEËË“­Ivøb·sð  + šœ¶„'ßVY­2ÿöÒ$j-*ÆHòW‡žçB_eQ×ññ{#.Äb™}^÷yÖÉö.•·Oš½y‹’¶39þ³Á¨FpâìAµÍ;'9]ù „Ëã« ê|Môê4­0CŠ…<°i• Ã/|Y© @®z„m%|Ä•/È<“öT(àÆùQEí0ýF¢‘kMBŠU;tÓÚŽØk/Ô•I¼©3®ñ\d8Hâö©~óƒê6?C¹üïŸò±2iËÄêÜÉëÔN/bƒó™(¢rY]…¿'Ý+ u{Æ¥;Í™õ6é%²'ŽX*ˆ•žÃˆK4ºÔ·Õä¤êc)ØÕCe%Û®µy.V„ÔsÔn ÐaÈ8xìâ&† ~°-»}mj`Vèq­zf+8ÞÀ£/6¡qÕÊY€Z®pƒQöEV¡nSðrX•°Z¬þÎx׈¼Aí&››…Ýy‡ýÅYX;~÷NNÓo±eaW+;¾ne’«Ûà|Ò\½n¸»0ƒñê/ÂÆÎP + û³š¤c!"«ïkÍ‹ Ò¤‡lïÓÛ#ã×~à^šZÍ^ë]G†×¥ê…k ý*d + ¥6W*’þðÕÂôQsž7Ô¼îSù ñŠÚcòî$!Ž¥DÅ/rþsro4b + ££N&æÂ)¢¹vü¢˜/ï“8 »N‡?¦6nª±W aaT‘?çß‹·ØÑÂGž3•Ú¦å?mÀ·DˆCªý‘;5ÑØ(þ"&{¸ƒ9i©¥æ¾c%„<šœÜ5P•6s9Kƒ§•¯£ìµ¹íÓ‡e§Ž~nH¯Y“-HEèä&½Ôm²ß'¤Ójf¤IÄܵ@£îX½9¶Üâø+7¢Ò^<ÅT|!íË\I*ó}N‡§„ËÁBš ãMÊ t¸#ÅôzÞM}·3¾O-Qµ$G©dVûw'ÕÔYƒduk/a­ž‚¿&?’kÔô×p¼êmëÐ&Q8Ò#3åtyñĈØ+°ó5O¨¤²ˆ+àQ¹Äà"Æ0o ¢{òžßàÛ@#Ãù½÷÷N´¶‘b.¾ÈÊ}»ìýZ±êš«Ø[-±5PÒPf;šÐÄvš…–.«°ÒÝ.uWDäáô¸•cï›W·:»€ˆ(‰”!·*†lï¯õíëYÒhütsYZ0®¼.P˜„4É)éé[ùòÐYà×ßãs÷ä ÃÇ[oR^…:â*ÓÝWå„48Åܽ¯íWL‚H8¥6ØMRá9%Î9mŽòÞnœÊî·íFæK¢§!&As?2Ϭ=œfx÷†TÞË‹ýôA€3ÃZ.TßàÑÆÌFÀÕ·T DŸž2äÖŽœ=(Á!Þñ$éc„û^¬¶Px!znõt‘,NÊÚŠ¸CW6›ï(i›«Ac-…¢T[ú9¨%gS£ïÃôtÑíz¨½ŽQtï]ª¸.¢5´Î3œ”虡&ê + íˆî×Xtã?g=9ÞÒ‚Uƒº²Ï•LN§âr;ö›=½׃ác€b¸\þ»[1ÝÖ8Š6Ž™EQ)u¡˜.Ø Ótâ8«15 1¼há¥h×MÓ7híõ@¿×Ò;[B;l<‰iˆ iÔðÌÛ'¶Jº.ŠcZÇщ@éÓ-ÂÃ9^g{øw?³ê±OGÅ äÃÔ 2q{&šJüJ×Ð$>­Îcéòü„My"Ý슞&FÉÅËϧ¹K˜òy´Î± †DØÌö§ßÄû7 + CϤØ[Pó… ˜]ǯõ + r~§¶)ʃ¤ªoü€öZ^ªÕ‰µ^hç‹ëY!gõZÏHÕ~#cÈó'¶û*I¹†í³Ÿ‰zaÛj’^ ãiñ:ª—Ô >˜ yéí¡{CÂwiÚf,•rE™3ˆpéÈvǦkŸ9Tü§…¦Ö%¹{áâHö®Ëï ËÐ1 &t†owe~Ýiç1+aâ"ôÅŽ`ðg—óâqůi€†ð<)^[4ù:»ñ™Ù–‡i‡rò‹׉fá¤%<‰1Ã’?îâ7ëu½zG Æ r\ÐÉÓIÊ–O;};AS—;ya¸8~zϹfnÈ¡­J£ìÚ»ùr¼%€®ª$¹Þ›°Ršéºm^µ€Õ!">)_bZßü!åHÏÀxk2€àù™¨¼g°^-ATÉþ”bGéÓÅm„A`+ý¹õO + ógÍ')d¼… = ¾Ç‘­¥pÄ—Ê.ƒ§à̃ó^ˆ£Ò= jó„8ÆP´ÇãÆ_ìC­Ï0œéÇ ±{#áÃ^§@Ç×\ ”îïDß:s¡Ø{„ä|JVáu+(£ÊJ:1·e{ÍŽó{Ù5iÆQ€(qÀ¥ óU¯‚jtþNÏ—fB=x[ÔlF8œåïÛǨ{!T:èÙu£›±ßB6Ctodj@½elLye, t.öA¨'Cåóx/ø೪™#»Þ–V). 8LÀKë}Ÿ¸FI~x® ;Lð &äU`“°ümyqXBÁòÙ!ø1TÁ¯Ÿîì hï½ + îk ‹Žê3…ßZ¿{Ú±‹u»—ãâ.» uô¼èµ˜{‡b’k’·‘ûEÿÞ|è + ad`ÿ0ï¢Þ‰ñݬ ´ÓcÃ~í|ÞÐ7Wý‹gĤeFæ¯M½ 1ˆA·ó?ëB¨»tJÄÆÿÜsbôvé/“)Œ]ZW·Ú‰C©pÍíJàþ:QÏj{l²Öî7YûLr­Ì$“îèÍv’Þú*³%¤ñC¹!Ih„L®oh£xCQºrg74I™I"Y—wuþÏô'¦²9+72Ü*Û*¨ÙKŠœø”‡SÊœoX!VqOÜTezò *úU= ¤jqÎp/5ä|CX˜÷oþEöÌs*4½:a›'ÃÓhîÅ_ÇqÑ'}RجŠoî›JÜröxY\’ÿ:€nÅôì3á|.ûÔjÔ)%ÆçW…ŠëEVé ÃQåëUÈÈ ×Þuò½¹Æ‚¦‘ã×û“?!§Âö¿8˜kììRE*7ìw Pó鸶¦k062°qÇþ³«¯i},ч—¾]ùûuʶL9~bŠ9KjÍ;"|ÌÉ|‡šÓE‘aô’xƒæ4Å#E`§4H€ùL¸˜4á†N]ß²ïÌ·ºVt}¬¸ÕØñ›ü†¤}” çBObùŠtÉ]ÃÓ· jV~‚HC‚ +BmY¶ê…DHÅà“S¦kïÏ£:»Õ]Þ†sÍX + Š«OÀ„ ¹²lrä¾f”Ý0—¡ïþ&¢È®Ý90†æ3‰ ¯…Û“¢ %*ïã垢¿ÏVô$´Æ*ðãäß Z`Ǥ2¾·¯ë„øÍ;Ί<jtӌճU2Iä“VNR6 \R/ø + -D®8ÇtbVüÉœ^1p5?ï¦s}ïˆ8øÈоë'1³èÚÈ1™Q£°üAmÛ¢ž¶O ‰Ã”—L'¿0¼OÁ3ÜË*SV›ç©‚@Aw ýÇUFŠ\÷°`³~ ù¸ÞÜ® xÄë#/N-ödßëîÒóò ŠÛäJR…½ñ~X‰ˆ‘C S¶ {A4óc)›ªpÝ£YýO¥ã‰y":+j¶úwÔ3%™Bî#ZtÖ]ïjë+ÛÊßyñJ‡àê.˜DäPfþ¬ÇÐï†mâ¤Ã|ðð“ϼ]×x¶„O”Áò¶s²ä¹æ•Gn´EaØ™_’)‹oÑGšÍŽÖ¾owMºªê͘úzµ*PRá¿pq!ô?–g°Aºê-ZG/#â²ÀÆÛÏö?ÅÙÐÄ 6GçëD³µë©5kähq}~@½ãJØ 57ý|”xàec”Þ±À¾³4mz_~ÄÓ!\&V·÷ï»ïB€[¨dwTTš¢o‰ …<„±ôðB g’÷Ìî&Ïø¹x{ü»„õ7,õ‘®íNoFš#Ü-UÎ% pa±•uAí”$(Ó£¯ + Ãfõ5ÂÿªdX’Ö•FQÔïR‹Òe€Ýük‘£ ¡bMÛŠeVÎl0_9ç]4>xÈcÃK«2Æ'½o#&pô½íCØQ¡&½åçpšóðìŸtRNO_D®ŸYÚê®ûHG+ؘµGÙÊEF…ŽBêZ7e¯È-gû¥£Zjfq£%¤@ú|"®/Mðí™]ß(ôý†“ –+ÞÆÆjÎÈ;¥ÝŦóV”Ô™-h¦¶¿—¾Û¯}†›ÔòyG‹ ©–¨ Ö¢1Dÿ6¢×FžÜ;†[mb¡räv¸Tò”*ÀGv°F}âC>ª"G^‘^b; ¶Ãã"ú ”[CI6À‚aý|¦‡{9Ñ)«1ؤ,ÕUw³èù(Ô›Í@Çòzž‚¿ï­˜šNˆ øöÞ5ðÚÏD4ÿÃäWqO:jÎ{åmÊ8«oU9™¶ð/SÅ'Çhr%zížLEì–žÕEÝUBvl€}*Ÿ—#ã­ðþœê})Lý-[r]+Å)l1£ WJ… oÝ*ŒÑÉžjž,"ÕɆÀÁi¥Îæà]çv˜í + $ž\¯¨a­7ìsâÏOÁÂQÑ"ì + r½C…(wlÿ/ÿÿþ?1€¹=Ðäæä` + ²CDü¿±õ¢{ + endstream + endobj + 24 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-29 -960 1116 775] + /FontName/FIJGBA+CMSY10 + /ItalicAngle -14.035 + /StemV 85 + /FontFile 23 0 R + /Flags 68 + >> + endobj + 23 0 obj + << + /Filter[/FlateDecode] + /Length1 783 + /Length2 661 + /Length3 533 + /Length 1230 + >> + stream + xÚíTLW‡) ;¦†dÎ-yJ°´ÜK¡øcDùÑB@@™8»G½q½Ã뵶t(N²DDÀv‹"⦮¨¨K'¨CtN˜ÀbŠÆ ΡvîŸeÿ-{÷Ïû¾Ïç}Þç}¾/ç=7>Q¬$ÙtÉ2¼“` + ®J\¡“ ˆ·w8qžb™œ‡ + €…„`@©×LP¹BŠ*drñál–‰£4ëyàîç`ÉR 9ŠÀ ÂùõP+ˆ8 Y‚‚¼I€’¦A‚c‹$@ä ” †’"x5ƒ8LE1,O,“ú¬r:Áð|úÁ%É2´ 0 P³ÂiPðòmý«Éâ‘zšVãZ‡üxP¯à¸–¢MϬ6KÏC¨XrÌdj + œ0§‚$¥×NF£xœ¦%£¡!c %h l t‘”’ñO¬8­ƒãë!'[â7½ÍÎ_wnyªæúæE)îË®ÍßÅ]Ðê§MËJ0–h¦œ^k߸Ýí²§»¢C߶ÇÖÑI‡…Vù,î–™£?[±ôJÄc›e4$¹þÐct]Ó³Ÿ‹ëÞ4tU KN¥4¦vÞ´ ÎhÉôÿ°¼Z1ôÉÞ1õ¨­Ç¥Ý‡Î´ÏÊZÔç*ßì½{úðƒ­ÇË­º!KH«ÓPò¼rrã¼KB­ÓEc_>Ùí°|zÛ¿ðaèÊ›)¬ýrjöˆÓZs‹ú'ÓùÃ%q÷c6§î?1h?_p%¯¤%®?æ½ûE×Kgÿ¸Ž?îlk?çQdk6Ônúfß./ÿ±ÅSÓ‚K»Ò<c³‚O̱וHF˜›Þê‡îa'’$ÙÒ}ik>¿=â#ÖøˆÁ]ìÑ´šW¤|¤Ï–Ï?Ìé|Ù×kfYÞÞX?e‰ë‹t_~K xþqéȦleIÕ²ê¾tû-QwSñþ•5n(دúí¹¦/i-«ûÚu,7×É*é·'ùÛ + *¯×]œûc\éÖRVe9¸Yt¿koµ¯kÒõuigcþ™†Ù1æ9…v­ÕuiWl Y8˜Ýö–ùégnu«‹kww·[îxU^Ð;2˜&95Ü|dÛï^†àä_†vfÞÝÖí·jà;Ïa¥okYC­dÆ=ƒâ£ ųÑ6ô_äÿ„€ðcÄ9žÕâ\&‚ü •{¶| + endstream + endobj + 32 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-29 -250 1274 754] + /FontName/TSHIZO+CMBXTI10 + /ItalicAngle -14.04 + /StemV 107 + /FontFile 31 0 R + /Flags 68 + >> + endobj + 31 0 obj + << + /Filter[/FlateDecode] + /Length1 727 + /Length2 1052 + /Length3 533 + /Length 1582 + >> + stream + xÚí’iTSGÇQ4âV Pó0v {( + (<ó^ÂÃð^xYµ¢â + Z-È¢²¸TÁjDBÜh1VÙUê­"ÈÅFq9Õ~éé·žÎ|™{ç?ÿû›;cfHc#ÄrÔ“À¥4ˆÙ7?× ÄA13s#QXŠ¸;,Eídg¶L [±ì™6öóŠp#Äñ$&Œ’s·9ïT,ÀŽAIŒãÀ–F¡1>,C¥ñtØ"Xüîˆ,F%()G:…AÁøR°b8eÞ;,. k(ÈÄ·ä()Ñps ç ¡D\T@™çOhª¡–Œõ7T_š{ÊD"8æý‡V}¥€c0Qü #–IQøJâ_J—¢Cx®„è«B),Âøl\(B bÒÌ¡<&ñÄâP$“ò£€IÐ÷yG¾äÐtï=ż @ow¡å§·Ú€1\/Fãó÷1ô9Öô‰Äâ@ƒÎ`@¡f~\…QÏç† A Æ˜D>%¾æru%âhVv€fe­ùkV,&`Y3ÿ* ƱXÊqÖ ƒÅ¢âËHÅ¥ïÿƒæÎc¦iŠÆ¡|Jæ~L+r.Õ²—÷BÕ8s©òZûúüj;;g­Ùº§×èÍÈK4÷1nÉÒÊÛ{ƒ,?|ÙÍv{ŒªöÞ¥Ý^ ¼ÆžÔ1 Ë*þÎȲPÿHĂrÅPªÈ YÉÔ^å + ŽÖ[ å×jÙqÚë,’›¦ÄÉf9­8—ûmy߃”ñOŽóžé”9rå‚ ­Oø¬˜0FÇ-çà¦Ô­Ó¬ÊֿĸÊä?fé5š¦f#ûoÙå{¶é†¤)þõEOçÌÞIª„-¡eAI–½¥/fnMMNïUã¾»{º}<l + ³FŽ8–/4zq - itMÑ­Ã]”|ð×QÖsjï0·–äU# yÑûx®Ž&æ¿\¬ŸL¿hº£Ú¶òÊ~àì¹Ûù´'° À;o•Ðb 3Kpr#;$6ªi¨xVä^Qúle-É1ûmaåæiçÄÎIa‡Œ&d¸u9^RW|&6ÂÝÌz¶ËͪØ=IDÚÃÍYQÔy9‚6CJõÕ+’EÝXìNy4Ü_w L¿è~cç°¾E<¹¼ Ã&1™ ¢¶z+Ç”x\’Sòí*‘‘Q#C²MÞN­âš,‰´ý&‡“õ°o + ¯!Ke†° ­Z3ÉI¹’WUãŽ/u_=ŠÚ5¼§XRcÄÔ²ñìl[p&Ç+xW¨.Å{ã³}Šøüi®G/Ì…ÓïeÀ‡v)Zh¤ØW]P€*– ¯9…íJm6Ý&¦´Åÿ6Œ«¼­mY¬4cwVvþò7ðZûÔ‰Ö_vxMUqëDùW[ê‹ÔÃŒ£©Iƒƒ§óÂ.§ß‚h]JÝù®Î)ÕQ‚c‹Mí:î!oZ*Ä>¦p¤éó»ç=´²ó¸ýW»Ô«µ^û¤ØÂú?<›\fV\²vS©­Ú!ÀçQÙðeב†Y%/ïx{¼ž5ЛSßØZçóSû’†ÏÛ¶Ë.Š¶wN4É«É»œX{šW4£`àÐý®ÍçÿrPþ7øOðE(LJ‰˜\A¡ü p + ]J + endstream + endobj + 35 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-163 -250 1146 969] + /FontName/FSFYTI+CMTI10 + /ItalicAngle -14.04 + /StemV 68 + /FontFile 34 0 R + /Flags 68 + >> + endobj + 34 0 obj + << + /Filter[/FlateDecode] + /Length1 728 + /Length2 5433 + /Length3 533 + /Length 5999 + >> + stream + xÚí—WXSݶ÷i" Ò„H"‚4št¤zï@’!€tPŠ€H‰ô"Ò)¡KA:Jˆ‚ iÇýî½ÏyÎ{ÎÍ÷|wßó­µ.æøÿó7Çœ7“﶑)Hæé ‡x¢± 1°˜PMßL[L(U¥áãSÃÀ¡X„'ZŠ…ËÅdeŸóŸÁŸONRJNLŠ††¨æé€A¸=ÄÔÿá’ª à„  Ô‡bÂQŠ¸@‘@SOUH É?~ñšÀ}à?8 LC#&„!\°@g¸M#ò,m´«'PúŸ2Ì×ëß)?8ÆçPà/RAàN˜'„Á]iD <ÿÌÿCó ö¿pý½8ĉ4€¢þQþ¯fý<…@üËá‰òòÅÂ1@}Oƒþ»ÕþO8}8 á‹ú{V E"\TÐnH8$v,zÿŸ:‚x‡!°.®P¤ü/Ž†ýäOÿþâ˜B¬Í´…ÿµ»ÿÌAh¬Y€(ú_ö¿b±ÿŠÿt ƒx´ýÓf±?Æ?ï¿Gö›Míâ C Ý€¦X(ÅÀþSøŸTªªž‚@bR@¸äŸã&v_ + (+%òßæh„·/\[()***#.ó—êâ‹ÁÀÑØ¿ÄŸ%ÿ;vEüéþîBnj¬/°)0 8VÜx<~9F~7-ˆË4U¬'®”ÅÅ\d°–ļ¸v÷Psr1þ—~†â§Ïeƒ\ ²™¨upà a‹òå›`‰¥wù}§q½UG€X ÃKůç2±zûoXd~°iÝ`3\i ú^TèC¯%va=93 †0z8gœ + + öå;‹óü9 wï¿·µwYÄ?·0±ôC=/r«ÌjÞZ£ð ÿ¸õ0²®$Ñk€Ûp!üœd+Yv}?|^ί + S™©¦ãsmáí…^û·¾­Á*ÞŠs/QÆT°$>¤1›ŸÐÒ aÓøå¼÷j:g0™¿ËoÊl5 ù| + 2œÆˆêYMÖÑ3ãºÓÆT(µÎ + ™ ø¶T´ã¥U5'¾Ú«Y+õH ÔñjôD¨ ]ȳiùÆ7—ú{nÆû¿„^Faœ:^Ý%Æ P(^½‚ÿP¶ºa7Η«<>x`‡½×¢\y½†BXô‹§D)(âVšío„ëíØa}ª4ØØ÷™Ã-§úˆjæ‰Ï/Ûø‹ý$Y 2#a»y ¬³Qõ‰°ñ+º×À‘ÎÜd6Wý>yn5=-z‚uó?üÂà‘kƾ±×Ñâƒ[òÔ×ÍÃÖ²€h 2mÏn·çMˆ-GÀ¿±^v˜}12¼š \O÷RÉMY”'\lî™ë»²¤îæ0ݤ¢ødÃw=9ì"0X,ªÉ5T ‹°z¼Müµì~¹Ö%B+cFÿl%ô“éTÏn“õNÃpªïDD$Mš%=¦Âš^² R¬ž\ê“•‚XüuªU#Áùx«î&g«ñ• x;R.b¨6æ!…ˆ`FEIÝÈ«KȆ&Ïå~'Å8{èdD³ÒÁDå°§¥ÐzOÙH·<Ë={ÖÎnÿEJÖ{±\ýd˜e°œ÷!þÍ¡~Ÿ”òóCùwôdïaYg¦Û© + pV¬^cVËgé't5ñ$ Aø}UTçÚ¶•ü5ñ·­X.¥#Á·üÜä@¶šõ»ájç·m¿%ŒðÎ2—ÓžTÊHÛöâ]ZÜxŽiƒX“¯-ÁéÒߌl:ÕX©-¹7½†Þ*rêåc ¨Òh×-CR#s"fèxøÁˆ@aƒp¯¾[¢öDÅ`HP°am=®ÑÔínªM³£*J„ TiŠ³Åq½Äê‘…å©b \†+‹ï¾>¼ÈÔF¹ ÷·¿÷RC¿VƒP_Äv^ž=ht•|ܘš,lñÍ÷Áy‘m;¹í<œà‘&Më$IŽôŒ³7#‚ŒL£¾vŒ{úEæö1AWÇ6;må‘2å®&.êó-a…æàCößM§ÂZ;¤¿a.Ø´¹ ›¯5mžvÆéõôQã3Yûq…bçuªxÔ@}(Eðû¥W TWàKIÌ¢NüçˆØ¢TYSvýÝbXÀ¹A>ÖÏ{Q\#©yÌÏe^¼ò[ò¦e¾Šî ñ6Åy‹É³‘´Î©Ôò¶Eñy‹'ÉQEá·Ï‰ GÞ(~ó…=Ë™àï £.ÚöÊÜhµÜ1 ˆIÇmÖð…. ‰¸¨1ávÜçe÷ãâÂgØÀï©uÁÁè³5Ð/ò‰1¥6@ â±’„ÃrÇl÷«ûjNñ¬³µÎÜZÉfõ ÚmDé)ãö …XÖ»Ó¶`ÛÆŸ/9²°–ŲÀöm;o÷i5™‘­hÉ%õF_£€Â%ïvæ2ê + Iö¡^,¥fÙûM'&ê ™íÉÈã}»‘6 I˦¶Qqòl ¥UÎg)qßt·dª¨çÁ÷ó¡ÔæRÙ}ئÏ{SŠ{u‰oåYy|§k2™uàæ~õôÑÈðbÏ:»½ ¢«ie5Žæ,„øÆ&uïЖÚ2U›bC7Àºž+7!a$ÄÀ²2L˜ <Åvøáìh®ÌvŠÞwR$À5û-X^6X¹ña6tz[ã£Õ®1¹/¾T=ð0ß)µ˜Hk¥ Š½)q•Þ#¤ D#¨4ÉóËÊòîU…(=ãäïJ!1.´6ñàiÖdŽ’ËéÈ‹e=ǃ•¢¦]Zö&ŠkšSÖ1¦(ì™Ù½©à()‰ÈùïfhûÕÉ×yR|‡0â\ Ó@öôÁS™èUá4€œ/õ‚_g@2K>aµi‰ŽKÊ—Øž¤¦ÿv¸o|£ë}ÇíÊ5\8sø\¹ü·Ñ@è9cƒêðM íËÒ´lL»ÔeTq¶oïÄ¡Þ•ÖÚ#îç ¼ŸDlî™kº2c»Ûv"þ×þÄy¨ý@ïëÇ’ ?UèšÌû:&}±ŒÞÒaá2 ø¾c”6É+]½@Á°ªç"7¢Q_Û·. + Ó«y¡»^æå…Ã\XÉé®ñ' O[ÍëS=›÷2Ñ7_û;'„Ñ×Êòl|Î~¡O£4qÑß]î”þîkíÊoK&Æ“Ü€šxzìœx(8õydþõ³§HÊáîªÞV|}Ú;E=7U½hM6רW&ïÀvgT‘Iu$¶\]ÖWÅ.OKOÛ½5ðs ƒõ¯–¼‹ÃUç„v¬Õ`fãKGnŽ,YJö>ë7ˆh€§ÞÞ Q‘õÜH·Šyâú½ U€HhO^äER7uv#–×I†”"¦ü¦ìe§2ªS¾&dõºþ|,*Iõ¯PÞ?úÜØÿ=ZyÒ£ì'kÄ L½Üu§8C…ƒÖѪõpðÔVÚʼn}"­Aä‰<Íû`?)yÕðSŽáºÜýp¥¾¶€sÕAúÀ¤ºo/ƒð"!…˼ÞxÑéKé_Ô{.ì\©|­6ºÇÝOm=ê¨ÎŒ€åsº€¨I±ô›_®K•B1õvVq«ucê<3rôæÎx¦ÝQl…©V,pIŸ[`~¬¡ y†~·çqµøiÑd&³éÞ §*¬]b}%æ©“¦™ù<ü²;´BÑšM„ó}¡N¥VÇ [„B2C0Æç‹tùŒf‘¡Ëž ¥â6ëé´lïHÕ+®Œi%T³weSKê ’ºB¤ùU¸qð~—‡„2ZŒÌKnš¦¸Êý1íÀSH»P·™Ú=¹ôlnŠÖ’î‚M­ó´°5ŠsHÙ¯í/Ù—ÄOVGc ÁúnYS§…‡÷¨xßò‹¨LðÇà(™§ƒb2M¾y´Øçìw"’¡{®bA‡ñ{'GW$¦" ¶.R ‹_»c"ˆH¤$¨÷xh†Ñnah'”ÓU(ñA5äR”—S;ÒÅìqqªªxÖâãɳ¶£±¸ïé–¯•(ïÏRfÔï<`vq]Nk\z>b¶W²xA)¥»¯;øí)ŒÙÖú‰â[æÅ?i¿´ioìE0­[ðVØkãŽ`ˆ`†¿pµs¼ïr¡‡©§Ò±$}ã¼x4lµ°YòäIæ±Iúì=ᆱܿÔ–¸sJaI1O›QÒEótsï+/ rüóÍ øGÚBáö/`¾¢ªxF#³d»’—|MÔ…åDT£v¬~¶õ•¹ÊP<¿ÌY^MÿçÝ‘Uc¥¥O‰CÝ·()RiK#Šc˜ÑÙ?§£eÊH™d«}Z£ñÀÉ|Kyˆ)yæËèj(Ú°Nv–iNÛbì ¡\I¬T¢zç£5‰_l7hÝqdÉÎîZå´ÿéêµVO+CæÌ`Q{~éC×GJ?&ЫÓó©q8(ôÍí5I^ë,Í7R¶±¾zd"°dö€D.Â5&ÐÚC¾½‘qZ¿ÎÔ8 ›½¨\TA5•OôV…ì¥; å]fnikOØT ›òåERË÷ÏjÆÞ + ûÝÙTYáéFçÁÛƒýÌN¼·)Aë÷ü¬™|xFœäJ…MX¾ò°ðn…ª£–‚“b¢ÑaÞ‘¹:â J8écuĘ|£zŸqÖ7§n„nPŠë„„䵃¾y-  D + @Ë=(Dê-&ã¹>srÁÕD’ø"\ + ì2ߨ½‘æ¾v¼èNÎÙ~ú`O›}¨3¤ÂØ÷„ÑTγßçOpÌô$º/.óÇ÷±K Êá»_pW ”<'UMÈ[íK Ih´pâKà§[ÔxòÀ7^ZðíHÌ,y\jÖå7%±Žý¬`XÛ†g'‹ + !F"¹=Vï¬mó“ãA'6·Â– ©÷3¥oæY]ŽGD,à8æÙ‰œi‚’3, X B³‡Aœ*:P°ÒôÏôtØîR²_Y²%‘TWØ¥ïKs™¿Îé~ÊóL«ìfݯµÚ†¢Xlùo?q9Ô’hZFHV0ÚÉ_{T³ +O|Ý}e'î®õƒõ72ñSן«¼§YB?.{[¢æ¿mC½ñ‰2g€¶$jtnˆÝøaýÁ¦Ã?9!EäÍ\R¡pûi´¼Û‹WBœ7Ý+‹?;Fò2‰×«n^L¦à}д0‰‰ñÀ^šŸìäbUÒæXï¬PFÜ{;ëB\R´¼þ=¡ð~t>\àkÑçRÁ Añ¾úà·Ô’êÕüÈw2_>t4.J¿Êø‚΃$TQ T,Qz{ ³Õc KPîùºudÍ ­ãîÉ›¼àÒ$™— @A•áÃÝd¶äH¢ é‹·«§²¡ڽ̡³¯vš¼T + ¯oͲ½Y>ÈrIÔÕeVUËö-\˜8Í×^Dê–4 ìäS°n˜´½ÔN¦Nñ* ß-Q¯6K2ÿ-«g‰ÉÎM»&.išµ,¸®Ü&´†¸ÿQÏæù‰TEû{ˆ¼0Ÿ/ìˆm/1š×ŽÜ}®rú(Ô]‚ã'…þ|Q…¡dá}Kjtçgÿ·Þªäo­l€Kþí8#×['½Jù¤I èɜ轹,ïÉó›öÙW’Ú¶ñéã5)[!=ÈÉ'â%vùnߪ̾zÝfÆ°k~C˜(¢“G%k7Q3R¿{5>KRÌ«’ SÀš`ó쑽z×ç—¤éKüq²Ü¡½+^Sü x¡2nƒq7r$ŒÜ‰Ào€ùÎ}…g0Ž×¼müãý/N²§"qøJ`%ÖI›¿‚ê¨ôùZÍʤÙa–QØ”2|âêY¤° Fç±*ÒQü ßw NqX×¼_ÏŸ‡´pzmçÃ+¿!}ÂÞÎ×Ä{ÃBÒÀ"øæ]‚Y|ÿg'öÍ]i¥r`É ’k|a?þÜ$Ðõ!ø¯-ê>M¬þ}ÌbŽM“·³ÆM}2ÀÝ‹tëÑÕOMs稔½ d¯­ü¿Êùs)¡npþ=;ïDŽ˙Ź[, + 1ÇDKS‘@såï¦7µf¶k=£Ä=™„¬€kï¥=1åÎXé ý ãYMë g + Mü…ÕôPýô§îm(׋EQq!ü¼±§ŸƒLDPA†8–Íyc©HŒæ,˜˜>ûU§5®g’xÛÑà + ñ“„VñY£e+žñi«¥ò-ø™õδ­X¿Å<ÏsvŽkœâÛœô5à·8©Û€Ð¥æûFB«jƽÅ3ûƒøè kP?Á;4Á/åüšbÞ–ßy`íH0Sñz¹ÀåißµA{ª›£šÒ0„GïØ)Åò$y>?ýC£’¬5-U[¶œ“*Ÿþ ­*–vÖô£ Àqù¬Š@×A‚Yšö8Tïk ‚YÈ™±Ù5fm ÿ,ÇÞÁäf çòº“QOy-˜¥¡—œŒéY[á/8”CRƒ3†¤gô® y0ëè-Cn&—¾®NM»g@y·~mE§?Ûÿ°Ž§¶“fË“iF*~Ôw?AIDíþÁô±±@ÅTÏÂ(•ò »ßuvP¯ÓW VS}(¬¦ä#l:¢h"D`#S®¾ÃþäUUÀÓ×ËÉ-eGv®š6öL6>…!]do¬smW—‡•†™üáªMúë­Â”îÉç`ž'Ùæ¤ö»Ê~Þ­ ƒÈbÚŸ§r³”‘ž*îõ˜h;¿¸-ï[¹C¦¸c0Ã:?‘D8t¸[`dØÿQ»¥`"„îlØ‘××\$oקº!4Ú „ÐR_c)ª㦫«ßŠ{»„²m³èg÷{¨ïIèšjº–Âד¿èÁëRߦà Ö*Kq<;ÿ.ã$ŸnEO‘Lo¿JÍýÚ^øóžÄTÒÔõÚV»š»/. F¿µÃümÌÃO͉ ûÉ[gˆ²Š:¯8™äÞ…þ‚Þˆ5µÖõM^2ì¥]+z+s2ÏaZ»´®?úºãàÞ«€°õù¹’ih&Ú + Ðs§‹_ Ž*‘P3ÒÃÕ¦ ·  »ËYÍײLË©)A ¦žôwzààucâ €è^  }¢Z—•ð2B{'î¥@ç›{×õŽR Ú[rLß-£Ñ”)å}ˆñe‡G¸Ð`>–œêÈ7¹^%\Bu*£xúÇçíÛ›fÔr®ïn7–v|' + Dàyè‡ü™L~º¬0ãð:¹ÛÖ…#SçÝ¢Ê,‘Ô~÷T#§â½÷ñ¯h÷&J‡H–(?ðÐ!oNâij»£}äXç¹0šË•!*\Ï¡Ø©ÏÅaû8CrTTÅOÂf“BªkÜëžã1&VS%$ §æ¨Á[˜ò¸QÒ28=vŠ‘#÷2ù:9åÃWAjAóõv}ÕFGÇs†LããúµëÒocŒÈ|WI3òe¾keÛi•YiòÊG¯Šþ_>4ÿ¿Àÿ\p(뉂b> + endobj + 45 0 obj + << + /Filter[/FlateDecode] + /Length1 1021 + /Length2 3810 + /Length3 533 + /Length 4501 + >> + stream + xÚí“y<”ï»Ç-‘ÝØ•í±o1fìd_Fö,e˜ÁhÌ0ÆN²RH„(û¾eKÙ³"û**Y³„œ©Î÷÷u¾¿óÏyÿÎë<Ï?Ïûº?÷u}žëºoA^S Ö©‹Åà% ’%@ËHËB "@$¥¨µpH8…ÅhÃñH%¢¨4|݈‘W’‘S’Q¤¢´°^8”›;Ñý¥’4<‘8” ÁñîHOB8°Àº ø@IÐ@£ó_[|s¤ç‡DHRQA å‚œ‘n( ø—«KW, ÿ'Œðõúkɉó!øD>E‚KƒHW*°1–P Iðò?¶õ߸úgr]_4Úîù+ýŸNý›î‰Bþ§ëéå‹Gâ#,‰ÃüSjƒüãΉ@ùzþsõŽF¹h`ÜÐH@êO壋 + @"LQxwÀŽöAþŽ#1ˆš tî·°­•¥–1Lü¯±þY6…£0xË@¯%þ¥ÿÍ¿™Ð"*°—’”’‚„„÷¯/Ç”ÓÁ¸`(Œ••à8<Šp‚$ C Ï`I OØÚ + ¸bqT¿fJ þ+ô‡°Ë¿"%€§€‘§ + €]O¡4v;…2ØýÊ`Ô)”À§P£O!Á†çßHès + 6°§`Ãë + ùœBB!ü)$ü®ïß%døÿ>CMMl@0D€Ê*%/ÈËJ…þWå틼¤ ÈJIÐßQ_‰Áÿ¾6„ãñ»¢‡ ‰ @ºPed² ˆ¯^àÿî´Ó>ÎgÓ8ø)² WQQ•XølÝužüP}îÙGÄù©“¸æân-…xÏöá…®d˜:ŒŽ’y÷ÊáYù'79Ä‹˜J²©å†B ›ëEçõÚúË]¼‚t-…þÄ6kDˆ)‡O°ø + ©\kÉ6hÞýMÿ­ÂióLÓE;?WÐCe¡þ5P0õ­¬Ü˜¸;IЦÈ=”]cø†͸@ÜcDæQs­ îÀ“òçRò9Œä(›€Ø‰°ËDÄó›×çÁO 8 + y~KÙ×/rëçõk¢­·Í '½eûŽ5XÑÓ¾±ŽäU?žè¬¢û¹akx- ~¡éy‘ù&Yø1§^ÿ¥Ûb‡ìóMyº)Ïë؉I݃÷lÇé•6¤žqú»v^Ì g¢ææXVãþ’瘒ëuû»`Ó°å•ÎHŠ“¬í/op1Ó_ãªNÊ-=解+ã©ßûfiS|Ø ˜·}0ÅÚO5’¨éÝ¿QÐgºqù&IÌê´¤®Ð,¼¾¶ªIy¦ÚÌÆ'(_{>ŒÑ¼o«¢Å!ܹM™Ü¸ÆeNcÜô¡&+哱ˆã + øƒí ;Š"í¢&´3K„óŒä†Êc®£yL‘Öƒ³agb¾)e«ÁÖ„]ZRÏ5¤·2ÒŸ=õ + å´¯>VnÙ.<±ßðF€B‚8Ï‚ + ^¾yŠ‹8èPÑç(48X©„´n^çKÊF§<œAŸs>%VÓ–cؼ’ÇçXUžòOÖjâÍw·'Çk$}nÆÍb;µFtïY,Úy^ãÊ,…5Äöîžó IU:¡¦ô‘ÞŸ`iÏÁy4,rÊÇ—ù³Ð—Š¼þ$[µXi“¦~¡€³…}~ö‚–yøP“Ù;©a6¸Í?í‡óƒ@»þ£œ%ŒôN‰‚£¯)Çc¬KšÙ\³¼°û/׃ä¬{kÈ)_÷ÛÖR’¥ôY»Fª‰·Åè—sN@>gÓå¾ÏµÏ4‚ñÐA%) ×g L—6æ¶4³¡ÜÎw¹T+æˆÓ=Bõ 45¸Tòe Ö÷+­‰Ì-¦7w,Xôù÷ö˜¿¾Ü‰¢ÌäG×ìÜûµ•î¾“9´ñ’j‚9ÞÅŠWëPw¬óׯ-)Áέ]åO²üriì§Oá‡gA{®úU´~†T+õüLµ\†r{ÜEB.Äëè¤Ø¦ÿ̦K2±ãÜtk’uÒG`ƒiþcÑÚ9K ÃX}8ãa߯öèo…¿Tõöþ¸Üá'eq7—Œ¯ “rýÈgÖ!î~Æ4tÒÝ`¤¼ô¾ÉQÜÿ¸¤óøk@ŸŠªr + äsHK‹Š–·å­&Ö‡#ÍÑhÃÀKEß+ÌVæk|’x >¿áAŒûèÁ³þgå–9çz}oåuëx¥8çÃd7pL|YJOU+—¤Nºöi¥ÈÙ͘ķ$ѱ‘¡µ½¼Ç…¤/œ­"TŽ´3³p¤?‚"Fˆß‡·Êïšè×Áø ³œ}<Öž“7'7#˜»§î½hPë)3Jàk˜Žtì6€w‰¼;,/­ÌÁŽ@D‚¥ƒÅc¹ ó_ãk`Uê?A[ܪÈ$-öûOcn‡íÕÏNžœkÒ¬dw&ŠÐ{‚ÿ¸ÄMÖöõNY³‘ó½@º½v'rîã‡-7ðuô¾ÄZäWÜ´ÎðÐó+D¹’2cž]^zÇxÿ;ÃØ{+Ó¥ü:šTž²ÑtÙ‘ë_ƒ‡êãÑ”šzÍ/ÏŒjÁK™6=fä5ž¹ÉX˶}ÑŠ$Ñô'N«NqUŽWfÝm¡{Ÿ4]þ>í¶%°/š±£(Ó=Háš–!°´(;xÏC8ð)ð~{1KÃH;oDd×æ_2­>@½ÖiSÇ”Xÿ’nh•ÁN ÎT_¬b­ + ý^¢ÍóV>Ô8 coh9±–ÎÊ<åº`±,ÇröøÄìÜ Ãôè¾<§íÑ;˜ASb¢`µÁ L0µl±(oçùØQ^Œ×tT†×[ ˆÂ…ø%íçx"*ùø훆̞ O›Å÷ê3Sãg½åé¶]ƒœ«÷å+Þ«‘=6ßž\sŸjÌ—ù®b;ÇÆܺ!d[m}Ð ¨žÑyµY,tU¸¿#Éè®ÿÆ›I€ŽÏ]¼@)Ï3’íÒt1÷m?»°û¾Ì]6ÑLûb ‹Ïù¡F÷Ù¾Á¼æRµ<\ÐÀ½Š·é:!cýµ.aÈ„k·/áõ¹yÈÙjåá$qá* ó»¤ÑË Á¤ð~í6R<˜m]70¹g’r8­±o!¦d&fO Œ/RsèÊŒØùBÓþ»;ÞVKSx5¶û(Y=^ÐZtššëlï÷—‚jÓùxÆÙIãO&½¯ÌEª‚žÎ9Ñ—ê‰/qߥ†aµ¼»õY×´#ÅóðQßI­É«Q«O|(ö¡”ˆ[¥¨2äáC:ļW³ÁG|LŽ|G¶…´ª`9¥‹êAÿ%ósQ‡Ï—]ßÌ‚´žî­ aQÛÕ=—þ„ìâŽ(ðMþOøº(þ¨<™32±ˆQÊ] Ÿ è¦Ô¥0+Ç5]÷â]EÖcMeŽ‡ñŽ¨¹íYNCºK–¯ß + Í'XÅÜhOîèrß÷å%juWíØ8FÆuʹٺB6Š¡~†šÛQw²æÅf¢²]'ŸâÉEqTûXð «jŸñu‡ÏŒŽBnBùê¾teâlë,ŠÃû>yÞ˜û8Ô·çœ:Q´¸×Di|—©DA\šÌö¡ýž~M—›CéK5Y¹é0ÐSw¯_²;SV ¡Åáz%Ý3o&zÃùø'¥6—çß~+Ñl&®ŒïÞî}%Š«»)LÂý‘–Ã)‘IvúÜ(‰Oñ4Ö·½r_Q|LIL*À', y“Á-ú…’o“†‘‰×»¼&£ÖߊæzûôºmxN­V6L·@k0o*jUѬ]eE3×Y7¿K¿vl¯3{Õ;ûZ´^É^åòÃEt´ÎUëNÏ+®åä + ‹¬ûWë/j ¸^e y€ÙŒ+e+™¾ph¦“nkDuF‰(¹«Ñ¦!ï‰idûÑ~ìwRi¡N,±¼|~‹gêã»MœjÓ­þã®Õ-Þ¤d®“ºæöo*…cužZLß:‹ÆÕrˆ \ß]»[è1“™Ç'†œY³×"&Fuêw­‚ßt\ØûJÝeŸA}Ùæ]²ÿ~.B8D—i¢xöýäðÁF'ËMØ\Ö4¢fU`º=±´0GÑŒô{gÁ‰œÜ”84´,»e‚Ä#¾—3®CÝ3Þ¤ + j)¸ÈûIÖ0aðÀؘ%]ÝK]dÃñÒ>µ]-:öêª\3ÙÂ+~óÂ+glä,ÆéÒLx¸"-8a~§ú‰§E"ÔA“¯m ¬’6ÿ8{µüÈos<”²µ¤±7éÊ® ÐRš°Ø¼¾ #’z×Ã1Þä¡IblÇyx¹.y&æUË“Cé›&?½£*X—|nªcõRdZ'Ÿ^ôs¹¹þx7ýóÓ.Î_IÀ3GoÐøH›9苦©Ù,’Š°è_k¶¶6ÉÜ#«LíQ“l]å%e/qäóÚÊ°•Q.8z瘷T™Oh¬%ðyE¤5In¸Ëâ>˜…ƒC-ÏEîô-S¥×¶½ýÁ~$¯ÉÌUZÑ‘Èå¬"F,‚uK¡ÐÆ7‰C/½FtY¤Aí½4pµr9‹xHjE:(ß~å¾äÀõ] 5¨šÁàÝy†¸Ö\f»©ù* méU‡ªº-ê;‚é‡ gªGüW/©i÷Ü®ã«05:/ø$½öE‰Éjâ Ì1-zzu¯;JNüÂiëÜ×2MulŒÇ£!/Áõ¸;“cü^Ò¤gž¼jû¶·éŸZlIò4ŽqÁ~éYƉ|ÓKö[A·š½Lc®ìQ‚R.•PÒ¿ þÀsõµI,ó‹ m^óöÎÐWY %ÉÔ't&ïæØ#º§û 92§4²ÁE‹) + £¢ËôVºêÊçÆoM_ÛLÝ‹öì¥Í…ó‡*ÖCÊCÞ!AHI´®ì¬¯Óð#¾1 ›´ô\b@ÐCGOÏNQ¨"}5¼Ú¼¨7RrëG_ì|ª™.Ï¢ÇIxÏhßQ<¨±:K´rC4RD_?›^ÔÔÚ>j`z¡9éyËuõØÔ†þ8XgÆ•ÆúqÝ]{Æ5Ͼåjê,¥ä|홼–h?Eéýéô1®‚ †7‚Œ“dxÏ[Ë)‘çœÇŽk:lµo^ ½rM[#ß÷›1txØä@IH‚:0ùdØüb¼f1Œô|¨qÏX^¾{g;¬`å[î Jk¤D:ÇzŬõsŠ#äyÃHIúWÕ5Æ ùxUJoNzÀpîo}_í ð]æçÙ”á5Uy[ÊжÊ 8â$ÆâêæWüy2©ÿåCõÿ þO$pA#á8<ÖŽ»FEõ$m‚ + endstream + endobj + 49 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-20 -233 617 696] + /FontName/ZABUHS+CMSLTT10 + /ItalicAngle -9.46 + /StemV 69 + /FontFile 48 0 R + /Flags 68 + >> + endobj + 48 0 obj + << + /Filter[/FlateDecode] + /Length1 1349 + /Length2 6589 + /Length3 533 + /Length 7431 + >> + stream + xÚí—eX”]Û¨)‰¡KiNéBº;ghf`Zº%$$¥‘.iIAn¥»¾yŸ÷{ÝÏ·ÿìcÿÛÇžù3çµ®u­ó¾îµÖq óc-].Y0Ì‚A\|Ü|b@yu]5==>^ 7/€™Y±F8  + ÖˆOT”(ëiäGŽ ‹ ò‰ + Ì@y˜›/ÜÑÞd“gÿW–PÖw´µ†Õ­Wd[k .ÌÖ‚ðåe]\€:ÿšâÔx@à^07ÀÇ;Ú"€6{G(€ç_Z*P;Päßa°§Û†¼ p¤ éÉDZ‚aP_ bàÑ€!Wƒ ]þµþ7Vÿ,òtqÑ°výWùÿnÕÿÈ°vutñý›'ªÃÀ8ôŸ©†ë©CÀŽž®ÿUAX»8ÚÊBí] @.QnAá‡=@Ž>°–#ÂÖˆ€{Bþ + C àz »÷—‰¬œ¾²î“¿ßí¿Çµ¬¡=_7÷÷„¿˜ï7#ûwôšòróòò!‘ßÿü2ÿÇzŠP[ØŠÜBÂ@k8ÜÚ€Ü&Húó¡`ˆâƒtæá†ÂÈ)@dk€v08à_/V@Èãî C6믞 Çþ + + y|Ý Ðß¡§@?ö;€œ + ƒBþfa üoB¦+ü&d®âß$ÂäQþM‚@Õß$ äQûMÈšê“(ržµ­³‡‹µ‡Ãï(ÒÕùœp[ü·rßñXÿ&¤ŽÍoBêØþM|¼¼@ðÈäüÈUíþ@ ýˆ´wø‘2Ž òiœþ@¤“óˆ”rù‘V®¿¹ex  Ò + ö"­Üþ@¤•ûˆ´‚ÿH+?i…ø‘Vž ÒÊëDZyÿFä%Äãó"­|ÿÂÿy ää`>þ\È \ü@aä2¢Âÿkž>ÔÑÝ¢¢âåå}Êûï3aë ‡C ˆ¿nä ûÛ9"$â±¼Î&wDµä¤}rauÞõ•Á°õs^ + IE¼`´G)K8»Û—rÅÌA.j‚hiýYMár‚ÁЯ 6:¹GÝ%ñÏîÒë\ǹúæҌYï¥;7ÓËè=Òe±×'M-°¢¦_¡(L˜‡¦Suú(TÑûN›¨pÿbmìÎÐDq‘V¤—à27ôI?G_gf-¯¶,Ÿ„àZú°¥1°A]~*Æ–²’ŠOŒ3MÙû]Š„88¥¿ìGenŸÆ#²¥#/Öß'ˆ UNFR%Ñd:u,LÁF ¬dfî_[$âÉ¿?=úè¢vÆoÇmýbcŒù°‹Þwa6ŠË†ÑŠó+ž*öu(Tú‘zÿ¼ùdeŽì¦ ïï½é‹xt}Êýþ"ð„„¼¨ØÜ‘—¶½ÚèM»’fÿèOѯ¹Ã¦rü¾¨’­¬‰U+Ïä*°u—ˆ˜.uü1Ï#Ðt·O[×X|‘ƒÄ²ë‹èÛ´~ÖN :NÇÇù‰gÂ'QU®ü¤-s$+Õ$Pß)Ð0u^½WRq“aˆÈþrH–Ân.12’ÔrVZ¤³šßºÊš=Ì•ìý‘wÚêÌŒº´†­ò(=ÉG臻Fg«îö"¯Ù¨Hî¬)›'Ïý–i‹xfìTöd€¦ÙáuÌL:!i¾“±«]ÿln„ì¢84²"ðãe+EÍÓ[ù!˜?qVHt`=8ØJLiÌ„÷â…PÛ—ž/+Ò¡'"EÞÖ–Ý…ŠÇ¡8ÙªñÞü*܆>Ÿð‰¶,fñÕ€Ç6¦|âô%1]K.åé/Ÿ›ŒOX.ÊçHv 1ÖSMÄ_Óß4Òv‹-×O)q¢v‡>8ÝßÍ…ssÈ°¶Øêa)´ÎÔ­ 'éë?Y|½±»×ZËfˆÆô‘N·\x¢: Q¥Uƒ˜àmœ¾:ÆÆ{‹ÿ^ µ1ã^¡¶ -«Í¤M¿“ ÷ü!ޛܪ®Öcš6[òh4’%[Ó Œ÷ͯÍ£™†qÕێć’ÐMš + »AX–L*0AÐ!0W„4ù,gÿwƣȉKaAe=‘Ù°ç !ë?´¾³²÷?‰‡¿f)J+L5e.@š EnÑäóRîßrŸg7õÀMÖK¡e-ƒß$@“(nõ2œt¨ß\­*ñšÚÞ­¦÷º!Ö§»mrmIØ“œVX%–ÉvÝÁ8>—…ì%1‡õ° ù‰àÖ˜ŠKò + icc^/‰([ú)…‘¦ˆ»ßì,×WÖ„Ãõ"f Þ ©“чÀ.®6þ`Sçi ø…áúÉPûøµÿ18m'[@::f\%]kûƒ8⡾Ŧa» ¡¸Ï¼#`îi¨Õ+wjã=ç–ðXÿ¹•ŸùÌD5k…ã8%ÊÉTAcxî‰tü×o‚¤ü·ÚâêÑ9 ÂsêuÍ;ä«f}Õ¯>Òskѹ»sÚ9G¤ä¥´7&pÛKžþ¢”h’’¨ùÌÕp y]É õÎÅãhQ“½±áPÜGr]âztÅýìªLÜo)»‹ç›H~ëHè⪆Nä÷ª^*(˜b¦ + [ßݤt®ù¤Qñâê³!-‘Ù2¾žŸŽžÕ{'Ý/lÞžßâ¯Q9ú¿·ªèQ}æsù¨Ž·€ä#í­ª5EHÅdӠ϶…»0 Õå*ɱæýØéceREQ{'{U8çKb˜V#1Ù b2 Dë^— ‹uÎ@'ùnFr”É_†o<#Šüºk„sg“‡‘G쯹[£·RvÿV?!¹Ó~Ž¹ßÖ#çíSy¶wê…•÷£sbFÝËã›…¸n×/?Gd¦ + èbŽ‘ÆM¢`÷¿y[6˜wV¨˜ÄпOMeÅÄ‹2ïðb•äÏöõÉå¢j7šçL²ú¸Ë…×Á@­n¹Ê¯ØO.Ål}›µj®ž ¹Ò_Jµ[tÕä²åHÞÍèœoL†ñ:4¥«%§‡&hÞ¯¯1gôCÓyºÉ£¤1-c¿žÎ˜!ÜåÙ¾xrgñv&vy+;ÊO¥=-²x’}šãBõR ¼kƒ{˜Ø‰º¢ö¨gŒ2 Ÿ4’ãF–ƒë*pGöeG>µq®G‘G¼5ª[Ù—çFJh^¤DZpŸ¤¿0Pba§ ån§¶ð@Ô¹Šž“±¥«Ý=ã|XÜs! + -¼Q´mH”o( + ‰ëš¡“‡;ø·}i;üÌýÐ[º£Ïo¦Û8 “ÚÝgÐÔh›=DHqV;Ú.M‹I 6²XÈ + &ÉûâO + ÙðJÓŒÈü¥œ*¶Ññ=lSáà9U-m_ëÖ½Ûsý•Ôøš4vŽM EQN±Zq"4Jô䜟LJ²ÕEÉíøM„®G¸I×ÆVçeioXPŠ…g0ƒÊY\ø]kbü®?ŒŒuIÖö-o,ÅÙu®ž¿6Á.Uñ´¦…Ky{IæBQwû¡æ ª—JÊà£SÚÈùŒˆ†-æÓÓg4èøñ|•ã¶d7˜V:òøV®®*fUîG gÇ# 'V>±ºuîn3gE}!±Íí§&}©ÛÔ«*ª+íƒ=†ZWãMÌDw!fõ(æ?H~lÕ;±*.…±RÄRŒ.ÈÄ°âÃ8³;¶4 g|ͱ•.êtwâõªA&eÀd<ZœI]M­Oiê…Ã"AíNz«uû­5$£_ÁŽëZÉq´‡âU÷d¦—¤‹ LBjÁ‘1ëy“µÉÞ8bŸ—êò÷.Ÿ~`I< + h£°}Š"]׬…ƒ}'²jHÇÉç¡êÌ[öìX3.ØUòàúze蜲`¼Û%¼½;rHÞí£c ÚN'óËíýÖ]Á¸uÛ¿]JõöíÀ”WKÒb*}”ßv + VÇCaSâç2§É冇„|¢|ê]úЭò + ÓOÛpŽÞ~ò˜m‡‘¡Pª’z Ø]n‰2±xË“?òÍ‘U›óü0¸ÓC#óž(ŠQ:Û÷%šþ7¨E4‹î>6:¸Á°FëíŸjè•÷]l>Y “œ­(câë»Îùº@(µÙlmª;){¶ãõP†ä=ÀƒL©Ô“ cp®Í^Žã±\š@nüX¯Kªxr¢ZYu­Ž°BË%i#/µ¶‹o®‘¬}¡¢ø›6»ôy>m ÷Ë9;-‡&ÇÈ­ÌwF*ü ÒËÎ †Ÿ -©žgæi×ÆÚ *ùª3=F¼s<¤=âY÷‡>1|‰S½úá×Pݲ ®ÿ;²­âHO)Î + ê)(“¸ebB¦ˆsýЧ2ÀªG{ùW;cR Nð°}ã5¼gu9ásø˼¼Ûì›­5œµØ…ä;tÄW†¸Â/³´ƒéw^3Ϥ¼•¹¤®î_r,˜Þç>!Qÿå¤aÄEóMWºø'îíJL™×äy^QGH VŸ…$ì­‹´ˆTÈm‡ƒh71ÏOçJ:›{Uª9Ì¡³îî#ûÎRÁ—±D´!ÜtÝäàÞùCcÇ¥N´g/–å Ë „©:ÝÌQ‚WhO->{ˆ'o¤Š3ÌŽ ͦ.³^e(-[úäv’\d¦šÈ_ƒÆÁ­±¶\äoÚ’êo + =²ÎÏBŒ`”‡(«»:Ò‹X¶lïÇ}È&*¯ G’î}ÕjÑtMRˆ¬_y)w¯›Ñ`ç¦õ¦Ê“bfóF&^£¸‡~$™Îd,¦œ¤n}>sKù±yñ.RÚ6vŸi7L`QÑ“Mœ0I5OPó¬§Ò²¥ÀÕ£#ÚOjÂ÷ËEn?òV=6Žg .êF3kµòCγœÍèÒÉ¿,$ÔÔx Ê£ +ž(Q­‚Ëezï°*ã£ã ™‹9ð°œ0g/²Ÿ-֟ɱ,K1ivŠâæ³Ó §úpÃzQOHõ+N?_Z#‡¨ácª ô‰5/)³Ûê´Fnh0JU«ŽžÜÊ30æ=¨ïÓï/õsã]䇤Êq/ ?pp©¢¶AEGÕ¥U5«ý ”ÝâÚFiüÜ©¶c©¡'H N9¢Ó÷!Ór?YFÝÿþ9In¨`–2 éä©_úÁÒ ^aÆJxf²ÜiÜ/)M*ãÞ›•§t›Oy'êÕ«ý÷{%=ˆÚjJãt[íbÆW¡·ÆÖ0íB¦%¦OšC_Ê + ¿E³è-‹ìäŸg1‚š¬¸TÜkÆ›ÂÂë;·ó¢U›„Õ/Âq<Ì¢Õ|>¦k|ë?gú…ø¼ ZFs$åÀ!Óˬ ãdÿþ3S™EBfaõáV6vâ:AB`öt|ô7nBC~‡Ùƒà:ÅÕÁx[!±ý«ú}ëW-h¨VQ:Ù~-LyxO7’7FG0ºfÊW0_XèèŸSÛ1Ív‡ôAÞbæ¹Ìñä¬d“«ú¾ž`ÐÂzÙÔ¯ƒ`Ýžã4\”G{Ÿ’ÀèT_ø2B¹ °«¡ìŸÊ¯=¨Ú†@ˀž’Š ëm6ë/‹šmžî5>}žÃÍn |íÏ×e2lºw"mItžsÖRm&ä"ûV‘2P5¼&Fo¤¨†ÁÙ2°}ÿáA«Ð†õdÜj¢‚l쪃¡‚W~©ö¡vT™û`W›¥‰t~Å®çÈ»xâO%· éICÂ8IGê&×ÃQ”ÜbžÓ4£GÑÔû“Õ_t‹X¼›…ñ…Z§ûk> &q8 å®z\q­¾™˜iBÁ¾Á×ÞñÍšÜwVdŽŠÂÅ<«¶=›·W“”· + S®kãa¼/\x\-ʱv«û¹%³E=0ì;û¼LB£­\_.‡àP,Ü(;kñ Ók(Bò¦w6‡Š¥”úÅTš$É aVA½]âèvU‡.­i©³Œ¡Î·ï½¿,~­â²É:;ƒ¢GN§ûB7jp¢s zø/ã*÷õRׂ?1ÓQÌlfµP¬Q…$ + ;1Y3ùr°LÝà¶}ÿÐíæd¦yT²Ç†öšQ¯Š-QEûH"ôùsr ïµwr×D1ÓR‰÷ !ö“¶ÚœçÄrÜA,oY£­‰KˆUÇíI ûd ©MRLO¦ÜõÚ‘Cn,z˜8ÍFôÆÌ≂;pŸ4c°Wh&óÐ!LãSiqÑo=RIº:†žsœï©š>à‘f=¦¬œ 7¢eÕ¢:‰ë"fH¢Éµë!´Ð£Ýkö_r(¼ô6Ø™£Cœ+RC<#u™‰Ì¤vµÅ—æ¬\E'u°lùDÓæ&¤ºòÓ;¹ + ®QÞ,WJNa»kl÷™8 ½¬Æ´D—Âxv³>iR¯Û´÷IZóQy ïù+æ·²áD/O– ù÷Rao0Z˜A="ЂëÝ&¡B÷ÇÏÖì)ß5à…p½(k|e®>ö„9îËræ‘Ñ\£úåXãîXñl–3.¨7›†„]ß–mê´hÆsÂb{r%jA¬’aæÝÂ;r>NfÉJÏolVät·±òµõ‚> %XX›<Æã 3áù ¾Ö•N×g†sBå˜I_¥UÜëK?Kö„˜—ì÷>“rVa“ÉRÐ͇V ³d®áý°•2Mì3_t2%âtâêJì‘Œ^Ù2#}«“FG¡ÿ’M€DP+{ôdk2’n[Û®™ºug‰bøk(rL{89š.ÓÈ¡~IQüN‰›uUÒìe†è¥ÆOõ¤-y©“踬Bséž¹˜¾r’{lGEª¡’Œrã1S%Âz©;Ëò–þy+‚”5yŸÀâí±ÅE”oOÀ’_ñ {ûÆU + ÑÓËB¨„çTwÉ’¡uÕs?Ý  Š µ <Ûü•õDðŒMë§þÇâ`²çaÍè"^·žê?™[t‹T}­¥*.ÃBF/0Ã;þ#¶ HÔ¼Ö;ôžÙU|`ñá%Ž{ç6jÎÒÌïqÈq4ªã¢{s.%.zådßYë¼ìUjÑ´Aµ5‹ÑðúÔO ]){ª|’áÌTÈúis ås×óÇÓf~æ­;ÅÛ9M´ ¯’N"~¸H6îÇn2¥k]ß}ˆ°ÿ5A´·ç7›ä!`I8¼RM,Å;¼êrx+˜tÊɶ¢üè›l€ + riLø©2žo»oÖ¶ÃQ@Þð³5„ê×ÄGÑÈ@þ_ù ›£}³^’°#²°×i½*÷I§eøyãììxôïvï ¼÷"*‚øOùøÆ;ä6¼©Ž5V^,Ñ ºIÕ“Â*VpìÜ5/0‹¦:Éè³&$TÁèVýI´"yí²E]ÃoJ1ºòÔåýt}V¿¶-j-¯øèñœhyh12ÔB+3^ÖÊD&v[½^Æ9ßß*Ï×¹š\ÂB \žÄÅüØQ(ÝÛ<Úy4XârËZòµ¶Ì\4 óEˆ¬]yýú>zä¢ë#û#RI”ÃIùþòbÒÄ ˜º¬9ÿ#Dãä¹Ðî”-ö,ZA _UÔô-Žatz×9"„›ܺCÓÚY6®žyÌÛ…^É:¯ÉݽNÑfÞTÐIï¤Ù›û€¨úñí¶¸þ!“’Z³Ö0VeiÂ{i8qQ„¯Ä~õ¶¹h|ÿÓ*ñæ”â çÉh5SÒŸºe®ÉpMиӥ#ošÇM.¬6pvª|/•¾(y„÷pƒŸÿ³c¢ ¢v׺ÆÚ@º¯ç8Ú¹®M×x‹³†êÚ3î'î£Å”¹(Ó/ÞO„Ý’þ åÓòª"-^œHí¬ Ü¾äF% [ï£w]Àñì)ô%¿`Üÿí«ˆÍ ‹Á¦$þõ±y + Gî™éSƒ¤­‡o*¼†}¯Ïó„öAÙmhÁΔÇéBàkÑ\â^;ÎiÑÖº 0EU[‰h˜0@A”Õ@“\¾:Î 7Ö»á{J^R{ÊÛ‡=×çVäâ#$ <‚;"XZ ÐÁÝAÖŸε²µžñÓ±2_ EDJ¬Ž% Q• jt¥¶›^mœžíãñ#0Þæˆ.^ &дÛÉ¿¾ãΊHÆRHIä[pÝaAïòcåí­êÛÓõ8 $õ²xóxUèÝ Ð2ç;ÖÕK»²¥Ç0)êŠîölöÉY:U`‚[ög¿› ÷Æug·†+ íˆNO!¦_?‰èRtýÚô#dÛw1ÉŠŸ`¸cŽÚ!ôÞ'}{¬ ÉŸá”{Ę]#?$¹^Ø&1Ë,G5,×2³{êQ³¶®^Éö8«îNÏéNŸ‚5]Òì8OG›¿’ä ×Þ; ÓšOU¨y¿'Žñ@œÙ÷4gB+š±É¨År³µR/â%1ÝcÓ…üÏ79cü¥þ‡˜¬,¼ÌUR~`ÇEƒƒ=èz¯"ög_’>=ú :vÔO¿?!¢‡ª¹z‰ï×Râ¥ÝÎ)F ;l „—Û¤îd`„µÐ)Ç,E3Ê16Ãþ {G³2R!대÷ÿòøÿþŸ(`뱆#`®Öpgà¿FÉL + endstream + endobj + 52 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-30 -958 1146 777] + /FontName/PWTKHO+CMSY9 + /ItalicAngle -14.035 + /StemV 87 + /FontFile 51 0 R + /Flags 68 + >> + endobj + 51 0 obj + << + /Filter[/FlateDecode] + /Length1 811 + /Length2 784 + /Length3 533 + /Length 1369 + >> + stream + xÚíRkPW-*TŠñq+ò $»@DB‹@H‚¢¨›ä&YMvòaèˆQP´Up((eÐúÀòTPÇ£ˆ<´•E˜¢õ1 >FE¤ èØbÿtú¯Ó½öûιçž{¾k÷¥(Ò•/#%0˜$hW”…ò€ °ÇjôC­‰Âu`%ÂBTOÔ¯÷q "¤¤ 'Àã 0ŠÂ’ˆ^ÊÃ)(À Ô¨Ó;f³’Öoúh69I1 SEÀÆ…„¤ë!­‚rÚ@x‡qþŒOÔ~|Ý€R—âêŽWoŽ@QOÀår7þ•¸ŒÀãµ0$pñB½ÇºR-EA‚{fú(ß×r\?„:(e8h­q™Ë\ûâòí1çêšÚËrbËQkaó–L±ñR˜×ÔTËt(H˹Ñ5¿Ó’·Ùç3Õµ*ßîÛ³G§ŸšŸ“Xäî&­ŸÚù¤ñBضI?9LÐ;¤áSóŽ}qxgô|“Ò×½ñ)O»ò‡“·­½´$VaUVëcÔb¿ŸJŒ4F ?¹V7¤ëö(&Ÿ_}o¿û“ëóÍxm\Ñí쪀¶vU€OâNi¯` ¢pÆ1žíÒ5íåÂÊk ±wawrÃ>ÉÁº——s–¦—ÓKRÕ‚Ì;Oý–÷tô›„X¼:Á°Ýúm^OúhI½K©¥éƒçYfÕW—ã7‹|š{JÂ-\õíþgoòûÖJÒQòs">wiÏHPÿöoîsXóÚ+×ãj V»Á³`Ö};ÖËïú{3ÍÛŠŒûZUFgwæ–&"ÿòcü/🪠FѤ£Ö3Úõ. + endstream + endobj + 55 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-36 -250 1070 750] + /FontName/ZQFOXC+CMR8 + /ItalicAngle 0 + /StemV 76 + /FontFile 54 0 R + /Flags 4 + >> + endobj + 54 0 obj + << + /Filter[/FlateDecode] + /Length1 712 + /Length2 5314 + /Length3 533 + /Length 5865 + >> + stream + xÚí’gX“Ûš†éA骴Ð{'t”^¥G „P"]zGz¥ƒ’H¯REŠB@¥£H/"½Èqï=çÌ5ûÌŸ¹æß\ó}¾÷}žïY÷z×âå46ªC¡Ú/P\D\ a`*£àåÕ@BÁ(ÂKŒ‚*ÄååÅê~® 1€¸Œ‚¤¼‚”/@áFÂ\ÝP~ ?\²uO(æ ö€QnPÏß!Î`8À á ƒ¢Ð"€:0ýã_€)ÔŠô‡BD((ÄŘ3 + ðê + ó¢ýIÏËý« ñóþ§äEúþæðÿæü¦„ ¼àhêB!jˆø½ô7Ëÿë¿¡ú{¸¶nöü#þ÷˜þM{ÂàèÿОÞ~((`€€@‘^·ZAÿB3€B`~žWõP`8ÌYÝˈýÕ‚ùjácÊÙ à†ûBÿìC½ ‡ø=¶?DmL´¬5„þ<п4c0Ì eŽöþWêæ?kñÿ¬ ØŠ‰ˆ‰‰ÿ6þ~ÿùeÿ·µ´¼œ˜—+À ö‚€‘5þ B%e@ éßHLV +-ò_^0?¨ž&@ZLLLVþ/*g?$ê…úóüÞï?kØïé@¡PgŠ‚§·aøŽÂlBGN‡ÝS\Víï?St–ïäJÝ{·O '™vö0>œ¡>ß2NÊ9åçP« 5PLë>vèC£™1sw]F:lWŽ°Ék@]“ è›]hR›£mƒP‘tñùHÊ»ëÇ'SóÅÔ`h×gÆF¨kh¦á[Âêk<ç)­€{éB…ŽÇµ$^4 6tŒèZ ºÏÇ’Ñ¿,~ª-Â&uݬëËšŠFEXWÊŠÖtu•Çì¿ðQ(dc¼+Kmãš4n3±q7’Ø=ÒˆÍHòØÁ*"±Î½O½l Z¡Ô†€{äZê?µ¶e­Û½èä±LÀŸl;%wD¾÷s÷Ó7Ì}ð,Kƽ˷\_9xX,£VäÉðÍðk \ÊçÂú×¢b€€”õNç4_ˆ|¹¡°ó»BOAcë†CÓ/WyJòWÏ>NU 4Žì?0`>g÷-q­'um÷‘‡qû+ŒÄ¼Ÿ~O'Ǽf¨«ç0xnJ,?–<¢ôø¡Ÿv^¬»Vh»íºë`Ý(†L* ø¬¡+tP†¥ØQkß‚q+be‡ÀJ ËAB?œ)T¯þ(ØœG…]ßÓc81q€t(g¿ 0µ¾ ye*jþ’2¿­N•€}7í ;¼Ê)»dGèfïþø\ûóÁe˜å';'–ÀÜVœ«0†Ÿ«ä]åË¥lÒƒƒôŒ¢‚¼òé‘]ñÄô¦ñåZfsÅ®5Krë9û«ƒxÃÙFCÏ<ØžÕ¶_Êwå¿X<-å«/sawåci˜}g­¹†È «6SYöщpY° hNñêÙß<’ cýUÆdÅB ÁsObS®•¿ˆýa­â˜Ž»D¯ëvkѹ ªªdÆí©Ÿ/ˆÔR]ÆyY[m¼Î{(|eå‹©ë(NþJ dä5ìØu"é7Ì›åmcÙÚo«m܆ûR&ŠlpopÖ¿˜Ù £ÆòD’†Iõ%ØŸ-Né„]ä)>dªªŸé]Ä~¢»ÅAZéØ–£¯"†çR¤¾?‘–,k|â ÏdÎêTwØ2x/ø&«ž9q½H,°r¿~¹1V™¦—Ù:ô%WÔík¥íg~§èÂpÓ×°¤3Yå½—ÝÁcøº¤¼o³¯ÖñL{j:¨ZŠi4E–œÅÏåÅ÷ŒÓ¸›EnYÓc”D«l%7ÎÉ¡¬Âªœç­OðžìP'~ÞÕ.Ü~üPP™"¦âÁë·©`ñè½oÊûÚñµ”›—”SgÕת-¡æ_씉 ?ÃTª}¸JÉ Âƒ¬+´k˜µ2Ÿ3=3wüÐ0š^Lì¢Ñý$¼]±¶Ÿ ÀuW0YĽWýààzýñÏé¨Ó”4n®7lv0¢@?·=BFö ]Z[­Z¨FÅ…q^q•ÿ„¾¿Ê>H©Vrïºö“é]^}ú¦L´DMyÆõì*Í4j «@ôšËWü\Ö)¿Ðþ Sâƒrj¼QœÏJ‘BiÅßߤ¶ &¾è Ø(Ò`È»D1e¿È~zèzp£$i?êj´›ZÒKI6ún*®>ÅqkÙ²[®r%bWËC¾Íe³n5m{~?º2'43³Äc}ì©Õ&¦D Ô8­Áifö@£‰·Z'vÝ7¸çð€\¹tÚMÕëŸD#{ÔN;“É\ˆÈlIK==Y$ï¾¼œV>·€ÇYm¦Y}ä3iÈ-¬•NÅÄU Œ Ýè÷›q¶©ÈµO펵¨²¡0•ÉïÑCe8ÂŒ{Ï_^NšÿOZ&ôNzñÁg`QÅà3MRüÑÚHð“;£ê¡1óçnjÛ©3ôд¦òHmF’Õc\% Ëxè¨1[jèÃY= ƒ\¤R—W©-ÒÚ¾ñwëð@¥¶8ü†5^ÔÕj¦l×Õak¹•RÝ&RŽ² §³r‹Ò°øL&ƒGnZW ¨ð ÐÔQ©¶*oaîcó¼iLBÂ8Sb­¿ÎzWÅõ´?/Cã ÿÔ0Un$Y£\'-ì%• Žûžq÷Nò^ëXp0GÇ®7ç%­ÜÏöK*ZiL’ï³ÈOFáß&ýû¯Å²ˆz,‰h¤ö@ý{üåoR í(~+¥d⹈;œ×ûÆ)rÙ™@æsZ|°Ú*p±‰†¨i+îQ3ÄÎ{Ùq $M±zù˜ðT%œ§¡€ÁRlµ™~"_Ö}µ*U(òk¹ûKvÙÿJã>kPîu“Y§œ"å ’™q/R\¡äöAr¿YB™Ÿkê(ÁŒ‹Š°Ey’vi9JeßKÞg°¬. :3Ôɹaôð&H¹ˆÃÝú®ø¢á‹¤*ÛWJ;P%Ž½ŽŠZb–ò’¤ëÙMˆx·?Û¡N¯¥¦^ìÓBuIƒ¬yLN0;ɲ¯>È©³Kh¯YwÖ±Øsöx:^õv_§kPJz¼´u\ë›ÔÛ÷Cbe*†6× ñ:îǾ0óÒŽ4ŒßjSUÆÏ([ûEvøl6òH³þŒæÞxø‹.Þo“yñG!Ûq(¢ËXÓ©¯'oMÀK$–ÈâR’h¨~Z¬U-Ô™ú6tW´^ñφ]ë0æyÚ§”ÝÅ?)ÈÈÛié”–é»æëmžø´aO›ÊÞd=—+Çâï î¿mØ©„³‡ÊF‡í®%®—Ç|v”Z¶à"Ó^8Æ9¢qIiV¨;TÊ–óªô2ËÍÔ÷¾‰.°På°f¯±uCp¿Í†{T4¦üîÄT¦ÌwN¿Ìƒ’«OB‘×iD’ÏÔ_ßâÎâ˜~…ö0×rP—–ü › ’äH†%¯Í²ßÛé‹YM;{9~ÐÇ[pãD/‹€ + p´EfkRÝ°7½ —²¤­B]W¦ƒýAÈõ’xñw‰œO” + D}‹¼üŒ–ﺰ'¼ÈLæçã_e%ÂFRÞí¥!žÁ8Œà)8¢ZökÌ©/#Ôý®:‹ +Äu!¡:Y¯êkAj .:‚¸2“/uËVÕÎÑQlJš¦êMT#íA¹&ùt¯è*q4'¢Ì·Ëâ@ê]QÈb„ÚýðVªçƒ/[½Ì7]©{u—cçïÿ$¼)ÿNË š;9‰ žkï·uÌGWê3¾Ãa<^N Å™>œzòZ”º/ùºÝ¬÷8&t`Öë—Þ¾?Â=z¤ÇA°·Èfë’i•{¤Ý»ÔsôUùé2B;»d¬UöðùiéC7sýsc¯ª´'«\±“Wæ*0Á…tõ-VY¹JW#Q³¶ˆ[7ŸâM#éχ©_Ú¨uècp|=¤ŒèRFÜK¿áub Ùýža~IÇÚòÝñ»V-Õ‰y¤|L¼.ã3Ý"³wÑÙœ Ëð‡C@v©·MÄ̈ÈÅ|É«WÆŸ›ÇÎ6?8ÚW%ÊHˆ(Ä!úù(ÿQ%Ê&oÊ®Üúú§ÚÔFw‚&ÑÙŠÎÏÁòc~g}wïnS‡&ë»lMVÞðUaê{¸ÖÎDYqp?ª"Mñ!Ò„C™ªÊ²@亮hÞL¾P#&ÒäÎÆÙ¸OÏD;øtCÆ~måÒ<ÄåOÖТʨ+È fíI¸>TvÄx@Jþ Ï:8­O>¦ó,µâÆ×]³ëx^šb"Â!Â8Þ9^QOa¾p»æ²»ŒáPCé»ÅÀ¹b± äë\•5d/çÔG4SXƒà«TǺ™¾AÔŠüôF\Ó÷xºåÜäYèÉç|ϲ ù£¤¡³£Ÿö{èü‡"¸¦ÜWŸXçlÝÙþ(YÞ“¡0ͺ×h\¼k=²™Ð^äoùSç~±®À-fæ´–Š'N„´‚Åú?úÌ©>Ú)aµá‹ †Ýi 1e}í£Ç–ñóu£áúÁ“Ø©¦‚,Á¾Š@•f'ÃٛߓŠ¢ÉP¯‹¹y¹m¸1çY4Z¼ï“¾ + õØ!æ‹Wþˆ ­óÉâ8 !ÇùEßëÄ. + w?Öïo.ágÃW~T³Š«ìž]$*ª‹uù‰:ÜÀ`¥49ý’~Â6ôuVBšy΄%ï,æ=|7Ö—õ_sßà£NI«m ”3„iOû…šw“Â…9(C'öŒ®.QFa jhnh5«'† mÍõ:u?ºÍ¨1B<—× zí{üXr€œÀÕ Ì^¤%ª÷.:Œ•° + 3dõóÝ\gãKx!6Å lìjgÔwþ`œâA_´ßDV6Mõ:-7Št¾ùÔ”Fø|4ç^=açäÏ×Å„ YÓ—D + M¯§½…õâ+t¦ÄÓv–rÆqÒìî1ª­ýȦàI%µAL\ÆE`$Q í«žì²Eá‹»cúŒr&Ž{æª7ËU?ˆ´S„9 ¾;pÄc(„Êf­,7inÓš®`… ýcGê'_j¡Ø/|'ºÝä+ÆvævÞkæDSajL›#‘ãJn‚aaÝÒû—‹Py®Y®.Yx:“Ÿ«ÔÍÜ0 ¸VrÎû葼P;^1<4ˆwTȬÛZpJð~Õ+£\žKZ‘Âã‹Ž¤zÙ3¾u¿¤†ð~=âŒ=€åo€?µu;‡qdÊaÒ#œeËËc¾ùç>›” ïX¶Øß0÷¢ùùxU y,5Ó2„±ï è³ÂR]Ôó,Ij¤·Ð*<Û™åž|ªC,~&Ä{U@ÔŸ>jäùÜ1`xƒ~c9YM™?7³0ˆµ5&i%g¾·Øæ$DS*H.]ɹ͒0F‚ï{ýêàñk'ÔÌPšnî þð .JVýL†˜tš3¨b¥Z&•½•áw[ÕÙuÿúË­½½ìüzÒ WÁ×å)”ŽÝ—.””¶ÀRmÆàí§‡¯Èf‹¡Oz¬*phk ƒ R/ÔøÛ™Äópíåã0¶+o"Ý'kòsžFüæ®å‡Q  ­!KPªDà>ßVÉ缶²ŒT3·¹5ö¤´ äìÀnÄ¥KñÔKsÁ9äzZ¢i]í,‹æËotŠØëèµY“Ob{Åó8:‹ |7Ýšqû茱} >€™‡#øTÁE*ÙÁŒâÕ²owôiðYx·½w¢?bMk¥ú‡ú÷ DÛ³í§*$ؘ<æÕ¾îÒÞ’É[1 ·{iƒ„+ÃLŽ™WΤÜûÉD¯–æ­Øâ™XæШ‚å"â:F£àwÊb”CQÍé!úmÃã/º:|"áÒ2jÞƒ³b§Š7Ó•:û±­K.l×Ü/àŠ|ËuÉ„é¡×ÔrÔ’÷ÖÓq÷¤ k 6°ûñ’º˜,;™ì ô=ht‹ÐlhÂHjst9UÛàž×°ÂWü Lˆ¼ ”ó.UÛ)ÖH²Éf––³„Ö)°j¬éQ ¼¬q|Tœgu“bsóþ–·K;ðÁ-¢<à\GœùtÒüiõ-2K‹ F ;­Së!gXÒñ²“,4îî ³‹y«"ÁºÙ@xéÛ‹@Š•ïç¿~Á(+ÑBÇãÏO²V¹/‡¿Ù®Æ8ò °Ó«†c€A<‡¯MŽÞñi™¥¦lOV•Yœ¥´9h%Ò†‚²È¦ + ¾(Úz³ÐƦz¨iÜͽàA˜Êw‘Æ7ËlŒjß¹†\e¬zú|û1fW:O^31« æT=ÍŠCåÔÜà vÃÙa~Érq~ÇsñÌ_Ë.åëli(}cSDÛ­ãå¾å»ù_A êVCœZÇÞ›“¼§©SÙbô¸~>êù+ñÄc›±r·ˆžW§Dùïh<$»,´³ïp?Œªa¡íÊÇ ÜÀW0¶~¦wpÞ¶Ú4é×E唫"þ¦ƒïÁ{øààÕilÉR½ûóe&˜ uj3ϘGÚ°~°?Š« —¬ä„t–•Ãm›…C=8"î°Ý9î¹à4Žy)hË ‘oh¹·.ÓP–^2CX¢á88L³<Ñùzh?îî+]á›Ê+´]"•™…t?'ñ#"ÀDLâ^U›±„¤©¤Ênª,¢®Œ—ï‘à¼]²ÂÌq/o¸'{Úxhs=Ò•ëìîÂôuŽ¶|ƒÅëàç¶I_­yÜ]µ[H¢£7Ò\Œ~[‘Má…|'Í + ’ƒ.ɯ)9ö4eV´³Kž*.=œ1ägð˜ØWÕ¦¥KÈ›qOG¹ö’™ˆ‹±•ëÅ®…æN!7<’bŒZ:óÍœ¼·]fø&ÍÐÖPKðËúYÞMJˆrk2±úÁdÁ»O9l–¿UÐjúw}Þakí¤HiˆÅBXÿ«pJ†x»uÔ׫Cì>¥œý×ÕÇÜ[®¯‹îŸw (P–•a‹‡Û)ñÂ-¶n.Ù¦?Ô‰ý‹EJT1Ùë¹w×ïÑ$ä]ïÇ&xæßXŽ°ÿJ¹ QÒ:ÏÁ&j°*(W¬>]WHé®JE×=°î·™·ôSK¡ k#ê³<»¼lØó¯þð4 X~îû5-·ÿÊñ0$BÈÂb@‡ ZˆÆ0úìHï\8dm\k ¯ow2;S—Ù©™}§”¬ IæÕI¡pÎ}*ìùµÅl 7aZ(0ÄÙ‡vËÉÕ®M‚Ýb"¶¹Ê¤ž¿C³P8#Iõ¥@ïbyÑvØ›„T\QQøݼ-Qkw”Úßg]·°®~ x/•¬úݦ0?ùýÂ,R–\_íÕ\Jø7¶›ÚL> + endobj + 57 0 obj + << + /Filter[/FlateDecode] + /Length1 722 + /Length2 10226 + /Length3 533 + /Length 10786 + >> + stream + xÚí²Sxe_»íVÌŠ“JflÛ¶Šf’Û¶Y±mÛF;©Ø¶½ÿë[kíýìoï›óœ»óœ1nÆÛÞ6Zÿõ·wrb%Uza;#„­3=33@T^UŽ™ ÀÌÀON.ê:[ØÙŠA<fnnf€°‹€åŸ> <<9@ÔÎÞÃÑÂÌÜ@%Jý.N€° ÈÑÂh :›ƒlþ 1ZTíŒ-@Î €°µ5@å?~q¨€œ@Ž® xxff€‰…±3Àdfa ÏøPÒ¶¦vÎÿ”M\ìÿ»å + rtú‡ @õ'5àJ;[k€ ÈžQÁîŸÕ@ÿ°ü?Æú¿Pý{¸„‹µµÐæ?âÿ5¨ÿ£´±°öø/‡½‹3È ogr´ýw«&è?áäA&.6ÿÞ•vZ[ ÛšYƒôÜ lÿ)[8IX¸ƒL”,œÍ¦@k'пt­É¿ƒü3¼a0ÊHËÉŠ)Óþ×ÁþgW haë¬æa0ý/û¿jæÿUÿ3$G wÀO&&&æŒÿ¼ÿý¥÷o«‰ÛÛ™XØšT¶&@G“ÿ)üŸT""vî^ô,zö.3 +€“Éç7ªÛZ8¸€¤ÅìLLLœÜ\ÿR]A¶Îÿº ÿìø¿kS‹f¹ƒŒá3³0-À è~Ð>Þ÷-’hvLqs €SÂ4ù"ùPÉ®gƒ¥.;v•ý劵é›ÝJ’’D†ÃxԃᬠÁ§-ý^ž‡À1ãSÒÕL hoÎùÔrcƒðäÓ™V̳|ÚuMÍ + »CÒð,ḻPð[uçÉv=\VÞ@uò鸚¢n Õ”ÈX¡z!@‰æ„GE&°t=Yèt\S .’Eå˜d­€u5’KD{|UµO2qÜ^xµè ß0°n؈· ;2+¦¥#Áö=S*¤çÊJÔÊêê•“šó¥ T€…ÅëÄ–‰ñp¶¨Í®"Ô)Œ:Ò‘éß̶sØ…äźý V¡ç.–©Õ([,Ô&ýç-i8E E + VÓe©&t1[CFÄߌ|Õ$ß¿,Wé §¢:’"Pšª‡ðE.Š>SIê=mا]ôà ~Í @òbu¸i|÷œÚFc`¿xsüV>Ž³‘à,D`?ùK»8( El÷ë‚% åÀ’°9W9™ï´’®s™Ö+C:]4hCèáÔÊÍG|ÀMfÛÖó/ÝzŠòvw`Ÿfx%<k¡G)},S~ÀQ`KŠ‹#øÜ_•Â?‚ûdB2È=AÜ`@‘ŸEÝXœC1nFèøéJ±ôç‹æËô´¦íòj?Çvc`”€¢:rqzËÅR¥K¯)×é?ûÞ¦ãëóÏP)ʳɠPy,ܹ´˜òà!Z*ï8Cž*ÄwÍÏŽ–97ç•ûNÄœϘ + Ÿ ð¼œ7Æ0¢$êhTÔ¹Ëø6èãø»h¶œ& ÚÔ¡c¡»9§ïêñ¦Z 0¬öàþž¹ùóÇi¡ü + í’@ÖMy2é'WàølΕëçS%«ƒny Æø>zÚÚtÐJs:K˜GÁƒ 58~»Ú¼ѳÇN•Ox\Ë—TØþæ>ãØ•T‘èÖ\B×8:A‰5!ð‘Æhm\´bãȧú{‡T‡ÖÐÔ—<Ä¿£<‡áú0´°§—• ­æà)Ýc¸€+JÃ2XNéœéç4ÝÊbLbòĨ»]ð8Ç€škîfz=¹>劓•9ê¶ä(7Úv`>«èQÂŽ~1xúWßœåhè’æá掶_7Vi…)oÅ`”äúû &§åªÐäE2Êlg¿SßÏ] -qúžä}ª2YmÓ÷½ú͸ì÷ 12C„x–<Ù¥± ‚„n'õÝ&_|`KøÊÕºæ¬ìC@ÈI6@øzÅ[Ò<šfYs1—Ò`1.¾‡Lî•uzå‚Õ ¦ËÆ7† Û÷JT'ªˆ[üJÁÄ;_»ôǯ»‡t©!ñ”?Þ;¾‡TÁšŽ©žãºvk¶ÑŸoÍrïJ Gø¢¦Ò÷yìÛÕÇ{§ãzm?©g’µcY™?I¢ËØÝ÷¸|Æ™ÝñºJE¯“Í›1Cú)}ýŠNmù°Ð:½®™‹"“•Yb~v62¢’UýÊ’4]½ëÜÒż•œÊÕÞ•†1¤Œ’¬õÊ + ;ú?Í·}öÕW*­”íëîŽfoá5–Û¸lq-kC]jF…ªÄÎAÎr–h1”KÞY×ùtx/'[=O±‘*{Ô`!žRl-4tpæm€DuoZ){ˆÎîhb[‰9lúC‰ã¹âµùí©"³ºØSJ»ßƒ¥á”Fgƒ_›(^Ë´Ãlð¼zjí/!9& [ ªáÄÉõG_OGCF†4oPk¦ü·¬ + Ä’Ë8Žµ5Äý²ÉRÀ=oQéjpœ$`½EÇ9 Œß2¶`Ê7mœC|ÕNÍ= Î {9\ó¿»»·øf€u([àà‰Í.›ûlmÔ“=½#Å—pp›œ€‡‚XQ)gª_Dñ7£%§NUÄÿÖ͸ö7ß™¯kQ;JãÒñ‰Fñµ(vNŒYX^P†°C`ÌsXðÓw>|³ÿå?14ÌÐÄk=¸Î— ¹ÄÚ•–fKd¸MÔ¼ýâù€hŠF0Ô‹pªV©ó¥Eôð™ÚUK\Ï{ ÄXîûböf + =‹$@P5™/Z´¸…Á¦Œ…„dþ¢¯D”Ò+¯Á%=!:e™™A†‚ñà5(«Só?¼.B1Uó ZQÝËÕá=å7©Ôì™zˆ7–ã¡¡í¶½³zh+¤¡«_?¯áÆk¾f$šF¾JüÆ+c¬Q•ÑPæ|îû´SÀ6š¦§gÊõ:ÇÎx´åŠÑŒuÝJÞnV‚\‰d=€¡Ì= ãÑåºa{Ë…½XWR“X>\y•_ºVJ–0„C– Eÿøžè~ÔÛÝ(„eÐñ-uã B!&ñ V ‚Ô96ôu‘TÏÝæbNIµ±ŽH‚8çxVMó™®yæ8ºêjõöio¾KþçÞ,qäÙøë3þ«át¿ˆ¡OxV‹‘Í,±kâ ‘2Wxǃ³-×{vÍ”’W‰õ•V£´5í¦ÕLÚê°›¨è»YFÐ5Oùäšø º#S*?^{Ìü/¯)´‰K·Qï + è@f%HšŠ“ò•·G¸AdÂ<¡*±…-Ü2¹«"Šœì‚&½?é9ð£2Ò°xlc·ßðßV5Ohß}€°X/W[ºªÖè³T?• ¨ÁM dEº ZNï¼ÂlÁ(¶õä BóZGIxRñdPŽ˜3ÇÈ ês Ã[dLUvÕœfsæ×ûwMǵ-H^È}à,‘£¥¹‹çºÀ÷ëc9.éZî׸„ÏVbçáÉ•AÍÔ¾¡}£:D(Aµ‹x+à³\¯ôR1úçÅÂhÜï—Åø(ö)}Âà*lW´DñD¢I§ r 25ÌŠñÒÖ…HÕëMáTݾ²FYŒl ·"-ðý-u…k#ˤ[¥h»k!éSG4½³¿‘Ž@çÐíó¬Äï-,ˆ5\rÔÆЈo`lzBIøa¨oÊÛeÌŽf47¢4ÿNûêõ¨ ˆF¤m•,·÷Ã2}Ð¥>¬Ò·ê„ëÐIòsÞSGÊòµ,hÞÈB¸WÙsôŒœRΟMõ‰<Æ&µ06ãjÉo ]hfäéhéD…ý&ÏÇëjxpW„?B´ ¯5›aÇükõ´ƒb­Ã¦ZÃv~ìB˜Yb`þÙìüãÿØž³Buâ¹w¹¸Ó9àÆtm=m­céØ'&ô¦Ëí¸(ºgøº]h¡·Ä0õÅü8’>xŒñ9ÞÝ xЙUì[P“¬™&·&OYm·ð]£í©YìçϳÑIÜ{[³j%K8„÷®yk¿î˜v×\=µ¡Ÿkl=&c= /GõkÄ + ÍͯÄvÃÀëlqö:ÒÖ·,ˆ£Ä(hPÙ«ôB˜•Ý«'˼X(u0ÝâæÉM]±Ú†&€Áøx"0’‚ù ”šé®9¹¯¾¢èXuë¼%“ÁCÛ£’C%uTŸ9#W7¯<‡ltU€MN)ÙtA…iŒ»`ÚÇÔ[ÑÚX© "Mýäo6jú²O)Å¡QÁ—¶–˜¯ž]>Ûâ·W»/LûÍ3oYK%“ñ ɪ›<®+ÚÀçg¨oÚqþçNîó¿§%˜>æ«`)¸…—qO?ýQbª£VÒoyCžO.ýžJS0´T•G7s¿ÐójÌ0u…N ¤Us>óçn.÷UA¹§Kõ“ªäX7ÝßRûü|dsDF#-&a¨~P3ö>L \®Êq•§\­^w™Ö4Èœ»~˜×Ìf_áO'ðÀZåä?¬PÈò|B…cÃF¼x,‰ªUhd9¶oa¦&oây²žy¢[Ü¢¯VŽe»øôú€•ÿ<ÇH½¢áŽ2¦6«þ•I‚=r~qàZ-wµ¹(ýóÔŽŒÒ‰-z ÁtVÐ%Ò¶‹Õú#þ·÷3¨cOsB¸ÓÄjWóž•™`ïÌ@º¢¹Ž0Ò'>ßômÎÿLQèò‚#¢xÊ•ûÎÚƒgÊ~ä-VÝ?C½“q‘•yNó¥~ç—'°(Ñ.ê a.åÈ8¸§ñ&~êzYe7ÄbVŒÀÙF:¡q¿J©üŠ^gy%xî»ç~«®§xÐQ«#uŒ^ Úô‡ŸW*Võ1%ŠtS8NÝŠ{k²—Wb©[òÑÄ(RœaU@ + ;5)h'Ζ!r‹oâ/‚Á #u4†ÓÕ¯X`¯6ö³­°Ë嫹3sšÂ`Ãv +å¶Z?®÷¦™‰¥Ïi1´–bÆ»³ÈøqQÍD†(ÿœ÷Å×(3ü@%€Ž‹}a@|mŠù92°AAâö¯Àˆ% Ðë[îÜV3ª + dÕü»üÈü„Z :ø3:$¸º]ö·Ä%0^HÎpPÄ]_¡q9\íò1'yQˆs\Ï žCŠ<½Œ«E ómIä¬,ÇÃx½ÃÁÐ\©}Ü14w2ðqÖnn”8Õ„±5³yý붽mAÛüáäÁ×rÏ¢1ïwq»Šˆ¥(á1é:¾“¿”úЦzUÎù¹GmàG§Ø Ά´±}m Z[tìÝ̵ÖH…š“ôê_¥‡)ܔܫälæØ+Ê-&¿cEøòí²ª²Á°°îsEĪT¥ÈípG|z™¼äbnSp,¡Àh§ùʹƒÑsÓ) ‘àJëé®eeû\bêIzT²fö—}2Iû{,hþ\Ú $ðÇâÏó‘}¶u «OÓC^zÜh~Ä”¡Æ¿%x[ò?@¦s#·=ü­œõõ¡¸¢ ] Añ:j:2£R]¹õoZdº¢ýRJqï'²ÈKÃTfñEuÉŒãë 9à«EŒz9sPõnª™t!œÿ¨cÿVmõû¸ÅOª¦1qôKõ[+ý[-§ªû‚mªH*g3ÝÅøF–[ZûÈ¥žêê,¢lœSÐU_óqÞJ|”Úðà1cKÂȆ™÷-ׇޅ’«ˆG×\¢^ìpÃSGbx¤qUÀâi©B+oâ\ÿ>ý‡§¢î¤_Iô˜ää1Wã§<Ʀ×Jçó‡A•Fl,3.ø3§ µ>ïŨso]«;R¨626ó®ñ“iVÅCf©Èæû,âÛnºnGh + 6Õºô±ÑoÐ'ðÏîvAÞN?ÅiUüzr²ל8ÊzÉS aǫ̃ô ֥̎~w~åÊäIçnN û"êOùpñФªìÉS} ­7Ž?µ ™qjÔßòŠ.­9fgpƒHo;E]¹èZ%à3 + é½Öë,ž}OÈ'Ü$ùžðòZ‡3¶à‰4å¾}7옱ÈÁŽ»rÔ¿ + èŸú›ö7ça¢1³”ŸÔçr–áeÛ'Œ¿‹žåõ)žD·'ä® hŒªqͶ:ã(u›%š¡™¢€j8ÔÆžäëÅêÓXö›…7–}‰v®Þ/Dí›æm™å±ÓP¶è¥Ÿ„Ì\¡LÎZ§;OÌi¿"}Ý™+ßDh)qFiÝZ­j¡˜ˆ”Šß0#@Ó«jpÍHi‰Ï”RÖdbò<2e“ÝËJ.OZU¾ CuoU½ ¹÷·ÚÛ+Èä8>©Š%V3óO¥geæ(7†ú*™gèˆ͂ȲA¶¶ÙŒX*ÙÝI÷yüÖyköŸ ÑzYâá¬Mqþ%Ë.Ùsf_ש–ö´X·âþËz“ÏOYøÁJеõ\*4nGkﱧFÔNR¦³ñ«ð.¬D4ÒS&à, ]t:É:ž¢óö’Î.6¶›=^¼–ÐiŽÂ|ýfÄ­¬>ŽIÞÚd½Éh”–Ý5ø”8u°7/wtº6ší³æ׸çÙ @¾Z؇’LƒÉ 4p’ÁL"ÇÎKo¿Àû‘.Ënº;ñdÁèïÜ¿²À Ñ2[ ´ˆÁ{ø±œäÐ5{kÔn›ÀÙ·QBR{ ³4 + G}G + Ÿ¨Ñ 6¨¼™GÍY:¹wâþPèÖqˆ©†ÖzÜò2bûS¯4QšMTœkúé*®¾™É7ŸÛm—w{èͲ‡€7åÚæFMÊÝZá4§Z^Ù°ÍT”7Á[=x¡Pr)7/ NÝÍhâÙ†R³· =L®Ì YhJXÞ¨Í[ + >@ïïsBCv÷O©•×£†62…KWú6ìX‹Ô^8л,æ‡çîþè%¥±{⌉ä±,kïË:DÇú„Ç}>Ҥ䋫)+ ’í’«?â±¾ç¸U1 + òìÖsoÇù*/âjà + jæ;Ão?Ò’Ç×F+þœÒñþmJGï«áÚ·I<ò´tTi$>k€¥;Pn½vP6Â(&¶y‡õú†J™j)VOã6LoE’ñâP·—Çp#oÉçpJáþ†ì,Ö®í<8¢µ‡:Ü®µÜáj?¯™eºõ’v¼üŽ‡‡¤¼ÙTVÓe^r[ITm1› Â5qìò?À + /I`]ÚU¾´iåƶnùžÙìz)Œ"e~²MWP‡…7Ï + R~c;‡Rjò³£3¼ + K©cÙ´x–°š>” + y(èdÿ¬Ûò!œ«Y´£¦{Œ6«x«%Œ ÆyßzÞ–e_žW¸™Â¸•×Ø|¼ƒ‹¢4fŠ1P­:$~‰HLVðR;/3 <£Ì`¯ð%‚z¯("~LcvÍ2¡ÕÅ[”vÜ|W¿ù\F8ÿr«ØàyzŒ“£¢n›LN¨¡Ž¯'‡^3¢h?œ¨é ûj^ÜÃ%/e­JPmδ出@ }Syq˜¡Ãä­uÿDm1{—C–LL³ê%æ×[: º÷Qæ—9~“Õy¥¨÷Y׆=ƒ_£ ŠhLÎãtÖ¿7¥„Á†„Ü”ýÎC¼_¤GÏû«—þ€ + ïÜŽ‰¥„[Ì"p¦(ÔBMÀA]Õ/éMÊfaÁõ¾w + ÁàFñL…Ÿ“lš£©Îªrw,褡LÇQÀÝkõG"'>_‚àŠM4_äQÿ=ÑLRòè­“jº¶¨>ðº¤ræöÊó¿Ýý;d§uFØLõ²˜47X ¦‰¤©Gˆ8«z?Rä—)VVqÞ0¯Â”~±'n¼±ä˜~w‚wçd”’/X + âÊý”< ytH,–.‰Óô—˜)â78à ™_ÔðÎkÆ„Jn-I¢’ô Û+QM³ò‹ ­Ù5«¼¤1–<Òü6&×4ö̶1êµêJ:M¼ŸÞ·É$²Ü1×ÍïfBj×6ÝE®+$JzväZÒæsoº´u[ ¨§ø=™ýß<­È÷¬¨ÈТvþ€ÕÍmx„åãáŠ![… ^eŸÑª…)gYª$À?_d¯­Ãì’›,~è™Ðö>Eûh2^¯zƒSíŸN\ÀÞ&%~b~a!Ïlý®`cxIóZSþNƒq{ßjiô’àßÿiªAIó`®¾ÔÆü°?âJ@Ô›°S‘ÌpP*B㤶ø6Q(<ýå«ßæfK+$;¹U@²aâ”ÂÙ>h¤U8'ç¡™K¼vvÌ0¿Ê¦Cþàðjr›ú;FŒå§Ú/0í´ò°éŸL&ª’ ÏÄÐ4Af{òpûDýQ' ³}öB˜ëÑJ¦LtÞ¥%(wÔ•\p;c¥pâŸsáên-Ä#±¬Iª#lÄuÎ`G3t¦ù®F½’„¿Ð¶öp &Z“û2ñKÓ‹ïÓãžÎk©ñlPU‘ ëwÁpÀˆ|ðY¯RñcÛ¸eÙ¹™‹íþfH¢!’¬çJ.Z^Ç¢æ—'®µÕ$C_©«DuÞm/ôðž4G#¶ÿJ„ + ÂFµZŸVDðo+á8Åáy²cC£Ëšé5H5WÊEsï4Evˆ`ºx©8ÍH«ÀÁ‰TÉÿÀ¬¼h=3ѳ§­¤e‚G€F­þ¥ˆì+ÈTÙèN׺~…¶›È¬ÑGÞÕí¾çö,R-œ8‘§È˜mA\–$×4P^üón…Íõª××CÅ‹RÝšåpéË1€I¨g²†£!}ÿC®ôü½´­ + ¿C¯œhP¨¥¢´ža¡åLÝ.“®ë¡I÷¨¶#JÝ#ºì¹T-ëÓóvðâõ™]/ÍÇeµ™’.+Ÿ‚eæ9€ÔÅæm‚ˆŸËˆ[o4ÿÏlp7fxm÷OÍbvÅÀ[²O¨õˆ8m£!žUÇŽ—/\!¶F—~Sÿµ;|¤„_Φ6t!‘ë›þ 2ɱ£J®S4ðg•rŒ¬MŸš4ORCñÌèÕòyzéÞó»öW.[ªlÒL?^S£7ZRTLÕlE}}±}#A*n†{Œ¨8·˜²båB,¼&ì"ø›#U2´¥ÍdçÄô»l.×.‰žœÿï(îÐø&–<;[5pè>›ù¦}ý‡O6‘Î>ˆýòP + ^%„×{!cÁ>ˆ{;‰|%Çjª[Ñ*ySì›a|Ý#î> + Âk c&‘ük¾®§™ˆ]Ç×éQë\°(n'ØíÆ0§sØk¬­oïø%RXÞ¦ª çéE—|Ùp¶‹ö©æ{B?þP2Þ¯výùûýVž˜¸ðò QI[»®%mdnžø7ˆáü©àž³³MÞPÔ* ÆߊÝnCµŸ‘˜ªiè&Ú„B + qCÌÓ˜³®HÊ}Eáp·Ž{4ÀÖñwbçç’c.CÜ®ª„¹¢1•ú·xç|¾ê3á„e¹#çÍÐÕMjsbÏdò ƒÙðòKêù˜mÊlì˜ + û*'l + ci=*í“Xozæ0cÝbT ã 1ÏdIñÒŒD÷ŽÔM†ï-Éö1o4Ÿ~,ò @³ 0/]`ΆÊíhU=ƒ@î>Þ¡Aê¶Iû& f®*ºÄÚðѽWš‹KÝâY¥ ¾¾«dL.—õ‰ËŸÄú|P’x íd©Ÿmô2ùÇŽÑ‘CmÐ. <öËýÞZ›ëŒÖ/Ε\CòR„qÊ(Âï§Dò¤u|Ýò’=hžÓÉ).Ø»•t6KLÎ  I%ª ų?¯„MLùyD¿Äß ››%ªÄá·éæzÛ"JFŸÍ'87Øélm—cû Pò¾x“|ëy[ŠC’g+kHzìÃ~E8(•±Ù‰+¹q,sÍŠLäÃdÓ콂AçÔ¾Ó¨Š+ú¤ß)äñ-OLÀøa´•kÚ“û^™±Sk¹`ºýeG Ï`w™ƒ]öjJ…ah Àoãc&Í£è.cÏlB€µ‡/¨µîëv9ðDEô£/”¯Öøöðe< ‚)Y %K] ã('ãÕàûRg>›ˆÁUô[{Åÿ—b–ÁÄdw›ÃhâïÔV³.×sà,³Ï2:»va³ü\¨}*h¡û‰Hœ×8òýµjšOˆ'ÇûúÈlFžw¸¥ÜDS5áËéÝÍ‹ÐÖvÍrÓ©^xrÈFS¿J7ìÅäqÅ.89œ¦”ýŶö'bÒËiφ¬ëi¶){;lÆbË‘0˜;ˆY¢*‹'Aø@äR¬ÂÆ!×oݘªFûÄN>'Ë ‹iXó‚‚~V‡"{¼éï†úN + Þµpi\ýù΄²‡Kx¬¯õcK’¿wÇ¥bMùù„a¥Œ•†ÅÑ6óGƒŠNœ/âAßHîŠÃ,Z‚ )ܵ•Ù™œl#êàÌ€=Ü–ogv±q"Ø]Å8íVÕW}¶=üh€Yã²î=éï…Coçg¦NcôUJ·ƒŸå‹u©ã-Ý úw·®ùK6w¦I¥!ríå½(Å™ÆÞꈂ§ñ¯%÷ÞÒBýÔÊúz$Gµ/‘úbcÏn)ņçÌ?t“¿+hh „ç"… µ…µ™ž ¾4­ô)Œb‡0),77\-6=Ò…m~„íyÐÜqæ~¨Éÿ è6õ[3‹I\q\Wáhóóö^#¬ýÚ>ª‚]g‘oH.mb°°exðvè }ðzƘÀ¯Ì™Ôõ[>>·ÈRƒ$`Íð`žÃþY½M¬=ž×¥çÝÂ?“ÞgiáªbÌC9ñL/Ù/ÂÆg ¬õÞðìtzÝ$)(õw{—߆©°ÒSU½9 ÷AHaC{tœ‹øTÅ—<¿”™Fsªª©Eºý|ësBÈѶ9óae21äzðØ ßÕµ ÊŽC𰛢‰Yè2h£5ÉÜÉ@ýúŽÊó¼â’¾Zâ}¥ÎŽEÙ°"1À3-/¸-[ñšÑžu3ì3:¹âÖ3i<£\ÎUõ×áÚlèÑÙCV™ö”;ó²;–p ËpMøs3¼”²–YÜ6Ëk~?ö#ÿ ~z\ÿºA æ„D{Aož:ÜŒ¨ñÞ诔ã#Œ–S §¡Ä¤˜B›¿Xf'ï ÇAû½»c§ + §1÷ÆGªÐ3VÊÚL~)`ÀÈ@˜“‹›èÔr̀録 + Ûâ«?'aD›–ÕvÖ¤ ½'´²;_®7Yç¸a•¢ÁµÇ3Jvs—Ï”ÀÕ™¶¾æƒ=r½»âÌ_…j@Ý2"Ž½Ý’öŸ^B¹2jyuq0)Ÿo­1Ó¼]7 Y°²ÒoØ|Èùœ|æ?-ZDÈW÷£¬Rq*óå?-æxÆç~ê üˆ½µºF©¼HÙ»Äb`ª½þ¿I6¥O†o*kZ­TP\G`Ëš²é + „€¨e t]‰¹qÑÑí>ÄÚFoDfPpEC*À=Û—†'¤étzÒ¯I M°ÌR¡{ÆüÇ™V$,Ú‰èaŸ)¶ºÛ¶ÇmgÅGDÌ”…;4ã$á²¼òk`ŒMI¤ߨètå®ØÃ-éTb£4(`•4x&¥†ø‡ÝXÍcÙ3Þ €rLðS:CÑA‹écEXøPŒa±Þ[.aK;æíç½çRu3Iž i°;äGÅ°S®™ÄÆHì ["ä^Q8<Ü“h-x ÷  /Gñ<áPGn€ŒFw"ëLeï + 3½j””W)C&芞º”x§Ù®Q™6 á…_ù©ßê=´"º@úßbﰷ赂 + ;Bˆ+ØU؇“Õ :Q0¢ÁEÞc©>²Hp0/ßZ§l£ÅUE±S¶B'fQdÝc‚R8sÝe±ð9RÊíãô¤¨Up‹¾T¶çwÔÉ1ðÉ)¤¡û™­Á\6ŒÁšs«AøŠ‹t?ªÄQ“ŸR¦ Q'A]ì + 8~µ2wòæ#—õŠu+?oˆ<ï2”}åÃ=_­Wäú¡yÕwƒÑ®7×™«´ëÉ¥ùOðû3MÂ:ßR’&¼©páZ?š­¾˜å)Ï :EÕáýí¡a·é’&L¼ö˜I§Zí[µ¹9CÅãIt Ÿ_àoÎBç)wÃ0ß tÜ –W]‹ô+¡r¾ký¡W—fE`<¨3w›Õþ¾m&VµÈ—ÜŠ®|‰`ŠDvòe³œ¶Ÿ'Qâ$Çg«>UýêÎè™kÜœuoeVïnžtt©cñ1R¶ÅaH¯Æ|ÃìçÔÂ!õ:E(Õ¯ ™°_Ä724„qµwÃÃÊX6Ì>?¹áïš Õ4¢/ãAïKýf˜Dèÿò»ÅØÀéˆk„N ÉwXìoáñÈ>ÖÖâN|±èw±ÿS$êP‚ÍS³Rr&æBdrj§/€†®FFæºX‘¦T€ý…‡½×WßÝÞv0æò»Ä“qÔ^vðAêPLé„V3–Ûò;|å«ôëúICc1ûP¬àéz ¨ý³ô>Øæ‘`œ±¢ÓlýìÃTª®m×OH¯Èz<[“¶Bv~†° YÀm$Ç&®f-+Ü»UrpsºA,/*¬È5ƒJSª×"i©ð§Ú9·õ w@©§×°P£hÂT…^N„ÖGÎîB,š÷kt͵ÒX ™.òÏ’KN + Õ<n%A¡÷¨îé°šLLÙ‰c’éï©wá€à×.dæ¦ðkžÊ7p®\–nOˆæ*a«™Wˆ(%C²â:ÃÈ|/îÞЫ´7«9Ĭ·÷‡ÅÕTza $ç|%A´&QLø -½™~NêVÓ=uÈÆ'CFÇÛõú'fVØ‹bb2ïJ^¹2idïê„“6uÊë‰wòk€Î;Ã[¡‰ì¡ ûeu;¼‰X{࿹±ôÊí—l~ËÎß?+øáwüÃ0OHã^«–ÚyÖŸ\‹ØUåJœÊòq½iëeÎÖôä÷¯S*6QeGì^;Í)ýFiÈSw*1Á“¯d7àªüö&äþ°±QªÕÅ°¬ h)ÍàÊ5~Å0dÏŒ4mg‚¯:k7¡f)­«^Eñâ‚-?5ñË”Ÿ»—Mµ Þ‘óFB}JW ¡F›5ftš6¥»¢ƒ‡àçŠ]HBËu~¶G¢½ožþw"¨;×cb9øà‡q¿~”éÏ°Õú  ;Í}õÀd+ì¹ÞkÒƒL äûºÝH4¸`ÝHÉÇGQ.´Öá™L­Hóª°«BÖà„•REYä ïr!§&ÔýU¬fâ®^¬&5‘Ö‘n‰N w&—¹¤ÞË/(–šè}ºfzva« õ Ôéw כ󳧵…ä´uõ·×¶[½?õý3ßý v]á·¤ÖG³ËX6mSYù¥!38:xÐœpjÑ t<.b¿"©Óô£¸ÍR*ùŽ¼%áC)F2¡Al4x—†ÜOÛ³&îu>N$øTi¡?â€iŽÆ¼1©Jø/¤â j“½+½}*Î1V‹Ë + }AÇDä½Ì}ZíúïŽÃ,(Fdâ¿'Œ¼ýèØÑA÷ªWv+bÝSÊÍktLõxaôß5]@SSDó´"eÃ0­UGÊ'¡~ó ‚—)ÖvŠÅɼÏTBó+;D>8 ËunžaÊ•Lÿ/øÿ?àÿÆÖ  £³ ÐÑ + þDR:± + endstream + endobj + 153 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-301 -250 1164 946] + /FontName/RSNAZC+CMBX10 + /ItalicAngle 0 + /StemV 114 + /FontFile 152 0 R + /Flags 4 + >> + endobj + 152 0 obj + << + /Filter[/FlateDecode] + /Length1 721 + /Length2 6856 + /Length3 533 + /Length 7409 + >> + stream + xÚí’eT\Ý–®Ñ + w + w+Ü‚» ¬€ + —‚kÐÁ¡– ÁÁ]ƒ;ÁÝÝé|ßéÓ=úœþsÇýwÇÝ{ÿXsÎw¿óYs-zju-vI G3ˆœ£Œ›ƒ[(­*¥ÇÍäæàâ’ÐÓK»@À0¨£ƒ r €r³?‹?Ÿ0¯0?@”vtòrZYÀLÒÌ©€’ö¨9ب + †YCìÿ˜˜ƒí€ZŽæPÌ‹”´³jþõ‹+Pâ + qq‡XpÜÜ@ ¨9 h±‚:8ÿÂRt°t + ü#máæôÏ’;ÄÅõéoRfàN G;/ ÄÀ©æø§äÍÿ1ØÿÂõ¯ærnvvj`û¿ìÿÖ¿ÕÁöP;¯ÿT8Ú;¹Á .@UG ˆ‹Ã¿Ju!ÿ€“r´û·6Š0°Ô\ÒÁÊäúG + ê*õ„X¨CaæÖ@K°+äï<ÄÁâ_þ îoNM-5IiÖÿ<ÖTÕÁP˜¶—Óùþ%ÿ;æþïøÏx\ žÀ÷\æËýGøçýçÊè_ºÉ:˜;Z@¬€Z0°ƒØÅâ¿ÿN%%åèéÍÎóLjÄ÷çžqóó…xù}ÿ§òÔÙ ¢(äãââàü;kîæâq€ý}þlùŸ±%ôÏ€ Oˆ9 @KC•é€iž˜‹Ø¤˜)hâ¡ <0HôÀ“Øü§Í†”UŸ + ÆË^ñ…Z[€ý~­ÉÎyÉýó¿’ {PÚP섯èžâüÏÏ!Nt0$Ô®ñx+ÎçÒx21ÔLx£ :âI±¢œ-Ø7z¾Tº°pšÆCSxý[:"õ ÊƸÉó‚rsT)šàöºaû…Á9¢…Œçð5OÛkÁTä9Y Lj7D×rl:b[ŽCð`Réƒ2ªãö\КË[ï² ¦2äï IÈZ²íÆi4OŠ«g£ý´®Äºìͺ/Ôæû+"¾­M§¬¦ÇKŽFþîã« UØVf&”›Žè=»éëìÂʸ:×R`?öòÄ©ê.4v”Âû¼…•(èW­Çxß½µÑ#ðìŸ>(,AG1ìü¶rv*O Ž.Á¼® ²ß÷úq+MjÔÂ8 Àj¡!1Ôq;¨$–œ¥ ðæa®‘ø=zɤ(á(ö+&@%ì7¥.-§#Uðo ®3Âño’¬”³¢¦Ý,Шþ¼@}²|I³rïà"¹Ø²¤—=ƒïö~GCíï;™í,…fü"rÕ™ðKÂè®Þï.›Ts¢Úõ.ù4»Z‘ÔF°ðÛÊ:÷¤‰å¾zȸÆ9a¡Î…c+οÌón2"-h`Dá¡—\tøíL»ÿüI\¼q®”Öâ¨÷uOYÑ!Ü+fêF¾¯"úÑÅ3íša¦}ÑDýñ\ ”ú^s“4ÜáUŽ‰VÎMT3úliJÈOð¾EvfWïèlhè³.Œ¼«\ qÙ®;¿ýœvEG 3ð‘šRÅŸkÒtPñ + "íKÈoÜuþ´tPÁSŠÓW$_d¾Åqh›™lÕr~ÄÎP®ß í%WÅ1À%X—îÞ-£»îÔ;±×Çr']Í™ + VýhFµ~)Í + 1ÞŸT`- + $¼ìv"¥Çz’8cØòŸê,TÌÿ& È0Zµh<ÇrÈïï Ëœîõ”½·ÛÇxYŽ|9áxË—“úÝܘÇß?†hýÕ“øC!±dÞª/¶âgÎ:M _ÍõÙEú + • w–õÄLX‡ò.åëƒØ}£™ÏëÙÑ%e‰Æ”±‘ÀÓ§$^"ž—ß z¥äõaoÐÊã›`òš4ùKäR"äÝÙ›2ÖDz}qü¹˜ˆßÎü³ÖWØŠ¹xzfÝ`?ª =™¨å + u¥9Ã(f¬f ìvOGßpŸŸäªÓhu ‚ˆóÜ(Å-æÊ>’pÃðPûÓ‘k¸ŽVªß¾],SŸéqä ":„Œ­.=B»4Zö;ÈVño;àbô`¸ª¨äë¸oK¸¼hY|õÄ &Ä~ÿ†­¿Xâ‘ 9Ù‘ÞO” ÞíùÃcºMLqßBxé¦õ™— + F¬ tŽÐâÌöëô#¥n}nɹ"/±Î[G_Jv/Ú*ÒG°…Kk¼Áxdòœ² ƒ+k¼´ÕNHº}¸nµ%Íc#Á³zûÙ¬;6^ÆÖóÄ|˜ W­]Ƶÿ˜„FÒá‚*úÙ±Z© úÜä§"­]³3Zÿ)p~KPˆ@@ò:÷PÈÛàyafvBÄUš¤¢Nª†ZÈÔÑÏ÷g7àé@c²JR:Ã%œ*ñÁ´VÝKë¼>«¯Ð8ª› + ž~¤õ™×ß{ÒUKuJ¹àyŽ dÁk¥/-QÄÒÁæ/ͤ‹-Ò #Ó'ÛÈ_û&*Ô„uÚ¡Ø0QC‘ÆÅx:cU8Á4w.ÝýÒ3§l:¥ûñKüÔX]5¨™DsDÙÀ2eŽv¾ßþß3‡·mqÝÂ2¥€}|¢¾OT6ÂiÙ€E}F×C=Œ]Q´é…´Žvî¤fÏÜÎØ + $‚ú&XŒújMA }“ÈÈ“.OóRTnfo*ÅN¨s„1y¾íäŸ÷Ö2òZcï¹…a¾ÈöN©ó(´k×6£2_,´]ø’ƒ+ ÙdžP?”¨41Xa*òØ[…Œ˜œ¢¨F9ÚôiS w#âÅÿZ5L~ }Ifaà“ + B¨°ÃϵÅ:.ÿì:J?Ç>\iEÖèh·µœ vk½0}N¤¼Êœö_w|—XN$,÷%Ÿk3oŒôàÎ!)>˜öõbùˆé¢y*Ÿ´JžÙ!­jð‡£ßY_µV ê\ª¤ ã:eÓMgxþÎíä=DÆ ÖA-7kšÊ>p\\…¯_Ò<Ò¯}ܲЛÅnîÉ¥G7R®RÊ8ûúš˜Ân¤/¿VŽ"òºÃôä9þS^† ±€û™eÚ>bÊ}H9HDë©QZøÌ™]™¨áä®F$pPMYX‡××¾‹&íkbÂhÖˆKX…i2î-$Ù±eçój­Þ›œÎ”=E½ÔqÕ5¯†`¤k‘.r9Ó#ݵtbÛQ!/CÉ«ýÈTÀQԖЬˆ±B~e>º;Á.Š~klÕJó›…ýâ/ÊPckJmúêšî•f¾ŽÆ¬šc«‰¼ R}{y¡—ýÒÝ-0{-Z.DpGGãáÜ“:ŽüO«¡'À$ÿÕÓ|oñ‘ËÙýþ|,'½¢ÐÜp_=¢–’]k+*W_”ùÂ,ö›àJ½\ÇﶧtéÌXÐð§ äWx…ÈŸÜïÂE˜5«›±&s§áá´²è¡íœ¬ùš“â»n¿Kئ ŒÌHmwšEMe.(Ú~^⬦žWô”u¿ª”¢Â*ÜkÎήã8Ï„—ŠßIpFSGëÉ*Ä`ˆkˆ@®ð§>ÿ噣`²ü°°[!Ç ¿ + ²ö²É!Ã@þ8µõcËäï ½Dáv]þúHÑ[ÛXm‡³Zªë† j¾gÀ¯,Áåï´6Rîu:ÀV!j…+ñlùXO¸bQ—!¹ ð9or{‡ É‹²/†¾Ú4˜ŸÍnÿŒ¼Ÿ Ý釥‡éAâ¡hÏ â,•‘ö3HÉ7òæA-„iÚÄ€ŠP"]XI …:à“OM•kçA3Ðż•?Jg¤‚)Ü Ìa#°—µ0ütø• 4Î4ÉÓþˆúwË'Ù‘egN”U¿mÉ%/ôÕJ§6<[Ü7k3ã7`Q‡ ö]ö<Ê…­6MqäÚl÷X§ë7,Ü›bø¶nQÒ3wb%ñÙ®*Éѳ:ŸØAŠ§Öå÷üõão!‹pð§¹O¬}ö9Ï+Ú¡zér5‚!æ:¹i󠥆ÍÔï­G¯B …pæT¦âžÐÞ½8X #Ã!î11aͯ!jAR„êìÄT,êvK»ØÚD­ßoBûÍ£Y¸ü­¶¤Âû0d3 ›»qNª+µ\+îÐ^x'ÙýBKµ±Üíh‡–,ù1}ÿ„‘±Oøœ­Ãmrªm-xx«â÷VL@œ\`o¥å¼ì0Äh´›Ùy¹ªk‹§›ƒø=é¾zŸ ?Õ‡·+ÇVè¹Ëoz­‰|H7|<¼&‘ðÙ˜¯œ~¯,·$ÑŠEì–'_c’ÔE_«òx¨W=( mY"ÙMbÿêe;áHÇ?•Øˆ-¥U 'Ó[±4"’•Â>=¬‡d ‹¢7‰ã)P™@;lê®uèC²ãèÓ¾81SZM,™’Z"ôÍf ‰4§ŠQÈVû³F V‰Ìß6än"Ïﮚ”/å—óðÁœ§f3_~÷5ÔgŸ‘@ÂWV3³" + Œ†;5Ω‘q”¢DîÀ‘üQw´Òõ/õ>|{å¶ÿ³ö‘{ °ù»Ù¨ÏÛpØPx:1‰Ý ]Ûçiüp¡²ƒúŠ Yºnš·­û2ÞUþ|œ ™w8Ïoeæ/,R~PjìVLTŽïƒø ‹2ÏŠI¿„æÿ²™Õô©°l_9¦ˆhïì¹9ãÛF²;?fž5%“‘ êY~iGû¯Á¼h)–}ŒøAj¤©öí¡D?üÃíâÊÉì_2ñ Ê]œ£÷Êåʤw*Š»ÃG$Ô•îýœ{d™#íHn!éÉô]Aåâ6PUYß·ÄŒ»]´š + Ù&£a{82Ràù}Öà2†‘Oïýú\ÍÆÖxõ›yÝLr©:ÑYØæLcß¿Ã…T4¶@«ö¼[EjRòÛ¾2 ‹+H^ Ä Ü¹÷º´fÌõ/EɉϺ~B{•ŸΘÒÕøSsÎ&ÕÓ558 NS,²™蘑œŽðoXTny¹-‡Î £wqwU)-ëy…R5gzJ)‰”óÅ + ½+£J­f"+<¬ $ÿÄ·-ÖQ[ÿ‚Ôžàš“Öµ"·rßeËï«?š¥§4NÊSð ;ʲoY‡N7{43D$pëŬäüºÿ¸{o™7˜ ]Õá”!‡¢t9“kœ†5Çi¶\_(þ…ѶκB ”´³~Û‘±s²•™¾'øÞÆpTÑUÊI$HR§ ñÕ\»È›p»ð)ÏöH>î]Ýž…/[ú_h¢Æð÷ÙÒU0õmä8Š^²¶Öß OÖn§yÙâà‡zá/z|¾¥Î£Ü>&3óxx·Ÿ5;ÉÇ39h¿…›E×î:¿ qX¤Èð•Ü´19‹;š/(o¥ÎÞ!ekôº;Æ7ËJN¥¿Å&Ÿ^;xñŽiœéå<î4×Ð~ïçâ›>·™ãCú¥B[-E‚$ì pÊÀvs¡o_|µY7,7Ù:¥Ë·gÍ!†*ÂOf>7ùëk*‹’€Óž[Ø~“«ÿ Ú0ícœµ—é\€Rb5¹ðH+ѱ¿ ÍÛÆ~XÂ"Â;Ïü·“¯Ÿ¸Øæƒj|ß + æçâs†Y–€à¹DÃÈ!„+­"{…© Ñ†›¤ '3uÉV>Â2<àë.' 3'òåüÃYjˆªîµù9÷;¾^'úˆæºžö^#jZ3?±Y®‹Òªi×DÌ + wî{D£Ã‚3³¹IÞººLs„ ”pxÝ)jÎÒO›1¡eõ¸’ÃíXIbã,¢6úmŠ#NgÑô; ì¶ó[gÃdÃ#Âz¡yö—Ý;ˆ¯‚×….~úF˜Aýã…ï§"Úé¿ i šGÊÏšêÂä/‹+³ 1”¡ãI¬û¥Ùîï8Cæ)Ó5$' + aÕ‚N,É»¦E½Ãƒˆl±ÙÇHY÷‡Tdë—H'yòLüŸ™:§fò­VÃ5ɦÅr© –¿Y1’zx]M-aG)ýD¡:¦ùà~¢¿|çÝjáÞ3XÑ8ÅÝ„=e½‰aë(êô<‰šSb§ ôãЖ‰¸Y9Òlõé¡C&cƒJööÝŠ„‹Œ&˜H‘H.R'ØG6¾ÐMÆy?BUÖpNOâu}Fÿ‚ךL˜aaXdŒ..³çÑž»V›_råf`¨ÿ^÷¡äl£[û¢Iñ–x_%C[ðf@›¿ðÅ‹D\p¦þé)1÷²ô“Ä!^Ecˆ8ÒÌi ÌÜMpèe§Ö û¡X0¤þ &èü8vrŸK7Ú©Æ®M·¬¬{hÃúÚêIr ) áÂ\ U„˜4ZÝEvfJÑDD[„ó!ÿËÓW1¾oKp“ß5 †S¶9µÅÝ¿ ÖÏ«©ïVT}6_x'ƒœ\æ¶ ¸Ì'óƒ ä¾R‚èî¬ä‹î¦fÝõ¿þîÿw7â»—/ÚÅÌì¾ï4 W?¦¹¦G ºoº1ÅÇJ3“÷ÐÕ¾ ª}È>Ëp•SÍD¥ãÞ–{5/ãu+Ìœd9u7.k˜OS%°ð~yn™ÔðR½þRÈk‹¨™ºåzàË“ ºMPÚjMðx?ˆu§ËTÒ¯‰ão—MÏÒ›ŠBÔq×;Etí§îüE8³Â«†/:ÂÙÔw /ØÃt¥„ÆÊs ÖTgVörVÅÍè÷£ª;§{OÌ4htVÈ%ýÒ+Ñùr†ÂXC6=÷‰Õ—iä½E‡‹mµ[¥ÆKQ1/6#|ø4ÃÝÜ}sÉrÔ× + áûS©ù3Ørra“¥ÆU†ï—,“o%´ààlòrºt?™ÈðºëæáŽ|a{³Ôj–w h]Ü Näß}¿ + iw6¨‚‘WØn‚YˆfHôñ£:5»§ÓÍH L¶ + „þ(륤y7ÕCŠ¨:¼Œ×îþ•¥ðs96ÞJ³N;®`b؇î؆=ÓùÀ/hßpdÔÙýl¨g(W÷}Ϊ]òèšuu:Ã*Âm-Iž×…‹º¾7™‡Ø$zˆpºYâ ¬FÃÏ,‘«È¡‰9¯\€Õš<†¦±øç<)7lb4 7Ü!E³£v—xs¼Vp/F¿¶–ADE)iUÜê&JaèÍù¸Hj¦%u¿h}åúý ýVV÷[ÙöÁ Úê•}Ü÷ XIj¿  Æ»M±´fŒ<‡d]ÅÔÄ»Æ&{œ¹XLãûW»ýaïµHòÁþà¶sµè(¸Ipæ1(á}bÖÁmk,Aæ0Ñ}­¼±¥œ³Ö"DÚ~ÛU7±Kòö¤¯·Úê°R‚€•ð—qòN¯¤;]Óˆ¥€»aÔ”o#MäL + þùEvd \°qMY + Ô ¬PryM…3Iw­jzw¼&ç}ïá~šÕnÜ©ºy ­m&Á30¹5’¥?¯•a_(ëÍûÊ1¾ŽK­ágïn¡?oÅ`ã\RÁœ­Ì²Ml ªRÕ =%8.&ƒäÛ^´G •FÆ}§0õ{0¦âú8õÎ&I›O´f¤IúÓ‚Ð2óñáÀý`1Cñ#Ó‰@ + Ö6KÃV8芸AŒ¡|Ù—AX¡ ÖnÂ>f2;#Ü•Ã0ê®Ú¤;²dþüÓW‘8£õ]+ÿÓ*kÇN¼Ù:±ðM¬ '?V¹Ïnñ ·ñÂvH ÐÔú2¥@Bb³î:¦À»38ø•àØýx°"÷I¿’3Nû’Øž6Áè–Ø÷»³W ¾Eu»3bq´ µfÄvŠºÖÁ·£SdFtƒ¡¶°I±óE0q™_Þ’D²Êfñ„|·¢°žÿìd·tÅÅŸ0mE9Äób^Úá0¥f`­žÑÈpm¢÷±“L制T¥õ‡ùè"KmûÔglNcVK©Æ¢"ýÕUaÄ¡ø™:ƒø½À2üë¸~]ëM½Y¯üȩѽÊi6¬_Ä(´´ª, ×̾=q"");c–Ù— ýQ¼!äŽò=|Ã¥Wágu—óGÒ7"dÄ@!„þó%QðŠº£ÆÖÐnh0ëü1è}¥ì«ÊÝkoSÛ{Ʊ!9Á×&úÄ䯧ùáV¾iÚåyCnØììĽºƒô[:›`Ÿ×h’æ¼S³±;4Ämñ†?(W^cåu#2\‚Â95¨éÅ9¶—‚ßD‘ý„Böµc0„üLx`ǵƒiÍiï>WZ…Zö•‰}[,A~¶¹ÿü™¹dòͤ¨¯5[p_£A›†Ç“䲚³ìǨˆ’Ñúv3~ hÚ+ÄþÕ€Iôœ ȇ5ŸîØ Fü!:ÆTîú‰º>ëõzÉOAF_'ÓL”³î”szAnZ]ôƒÊ“¶8µE‚Dh•Î¯q%4¿lõ&3’áªJ¹ó£Kòµrß±¼Á¹»D*ñ“/ôêò*¤øMÇݸźÐeöu(Ô:Ørk iõÍä&LÆ(ü¤×³ÿ•×6]€cOn%`fp™ÖîéÏÒ‹ÞèÎ\2?ˆk¨äů8ü8: “T¥Gù¥G9Ž† ÈÕ=:ß ôߊ),lj£ÿÕ + £–ÑR_;›íÛßd€ä0m(³lÀp6{ud6ô¶ìÝ¥ù ›y:”akR†n‚ì{O Øe¨M|oH¨-êë¯\îx{ñ½ká¥2"_ï{Þ5å–Âù[dQ1t>àâIT{½éyÃ;Frâ\’ + —=õßÉAñºuOnoä\rE3ð?¢§·ç]]Oaj¸j«½¯GHVmf¤¾³ÞÉaà혗øÚXžmCc²L1žžÊ¼–[”!h ÔÌ\AÅe¬Ì7LAzº¶ü/Q8G³ª9{³o|¼ÐÆ>y¬Ò×í~õ ȤLqº¼ý˜fÊk“_¿rÚv=xÏìvò™lþ2È$¨¾­î + 3ÛlÅ#> + endobj + 171 0 obj + << + /Filter[/FlateDecode] + /Length1 717 + /Length2 1218 + /Length3 533 + /Length 1752 + >> + stream + xÚí’}G ¤¿;Pa¨ƒD€; + B"d©õ ôÎa±pi× ã`®#$€â; w%È„1.àqáТ!àRÕà,ýöûîõðÁÿþQßu™ÁHCÿÈ]°/Ö¤Öª‰` À&ˆD’ʨZïß>]rš3ÂEA X9"ðáÏTNN¨$ʆXX‘‰•J(djÌ¿ú|8L ¹12‘H´%Z/ª\±H!Øâ ºðûš«ÆAˆ‹;÷•>¬vÄ|~òèÄ¥ñÁê{?0qµE¿æ’§ + Úc + 4 ÁÉ'B˜]«gŸ3Óξ6ÝìRë¾+óÎÔá¿I¥Jz Ìx-5ì¾IÚÕô!‹½þË-o¿€ÒnaWà ÈQ‡5µ{ÇÁ,´îeãÇFUsÊæغn°Ä_w·«¢ÿä€|«tŽÜÿõ‘©2-ä>ô×[/-³Ò‹·>1ïój…OÜÃJW>»x®ùÈJ|:'§nð§ÉØúº"““«úˆµû2ûë_m,+Ë[æЪÏl%ÞY±¿Ï{¶4V^y`eh×ÁW³Yq5gò™ç—`=Lˆ—Ì+a¼ÒT/ãf¡v?¿¤È Þk¥ØeÿfŸë؆egdŒPþBaN/š™ìåZ/FI>rÌ×ÐhȾÄÒ÷ý­cåpl¤†Î:Œwö S;jÒ¢»yPñÁ:þzõÁ‹GiÇü}{¯rÆžÆlùŽlÔi7!¿þAÀ‡ô&ûW Yä¤@²C_¡£Üe#Ær†í—K + ‡Gç´\¾Ø“æ”Ö’B0iéÂñ Æ&ìŽß‹ƒ‚|ßà«ÝZü¶ó=µZGW´3IQí/øÞÃŽõ„Àža÷·{ì¹>ÇýõeÝöOÛ§çìþ¥áöÜÖé + ¶ÌU`®i›žiM¾ù½­rßçO*p—5²fgŸ|#Ö¯ ³û¢¶ò°‘წµB‡gÍåÇÔÕS ¬Á­i—’Ìæ[Çâ‹<ïJ´ÓÏT?ÍÚ6ÙhžòVauÜíB]—ÕL]s+76‰gÜòÞØTr™ÒŽšŽ3†>¢xD|Û`P¶[g¿mÿÉìškÛNm—­n®QŽOJ¯:Ÿz`þ´·6ï7óÊU7yI#[âgNŒÚè¶7¤Ú‡\È𩈶ûißõu¯«3;0dÚ»†»1ÏÀÏsóìmÙH‰yRƼ;îIΦ4ÿ7Ù(1Y…tGOûϹ®ÉÕ›Bd³4c+ýwE„ý=:¾ºì³á&3(bÔ4q¢ï“à¡{—5"ñòfÝëTÆ„Uj¤Hͦêh²w„^¢·u|¾­|$š,Œú))‘жöêÝ­F/¤›¨ò´Üª,É™‰¹\—Ò;ƒVÕ=6ßçïƒó3z ÒôDÃÕÄ<²«Ï¾±á×HÁΚf‰[G÷_iV×ã´Šš­0Ë¡”ïéÔ¼zèʸè£vÂÚbˤ+úÅvîõƒßi”:Cn¸¾WWýÂ㔾ÁÀâÝÆ'ìŠÐ¸gvU}©Çd´Æ0±eàÍèìz£Šå­Þjלuʘâ¾ôŸÀ³¡+m…—+¯e_DÏÇx±÷êtvFeÙõ‘òôœpájcž§mó© 8Ûr¡v¯ÆÃ×Û˜²ŽÓùê“ “oøÅÀê‘•õ÷ÔtOµW¬An×=T&7/{;ÃèÕIÌeÍ^,¤7äjž‹T6qKFŸ½jiëv.ôúFÇ.Ãz›†mnêäN'D‚ßvT)îï gÝÜ<ýt´÷\[J—!ëçõ¡ù“r̳.Þc»25A4ð닾Šn)ç÷òlßüàfe>]íZw•mLUÆÀé#Üõ$ÆZŸ°.k%vt•úŒƒ ­ÄÿòÁý?à"€+€8" rD!8Ü?NµZ + endstream + endobj + 191 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-6 -233 542 698] + /FontName/DYDOVS+CMTT9 + /ItalicAngle 0 + /StemV 74 + /FontFile 190 0 R + /Flags 4 + >> + endobj + 190 0 obj + << + /Filter[/FlateDecode] + /Length1 2142 + /Length2 12571 + /Length3 533 + /Length 13764 + >> + stream + xÚí¶UX\AÖ°‹»w Ü=¸»[hhÜ!h° ÁÝ='¸;$¸Cp'Á]‚ü™ù†Ì|ÿÍyÎÝyÜð®]{­·VÕ®‚–JM“EÜÂÁ (ã`ïÊÂÁÊ!H)©¬¥%@ÉÁÊŽBK+é ¸‚쥮@AJJq7+JNvJ^An^ANnZJIG/g•µ+%ƒ$ãŸQ|”âv@g9ÀžRàj ´ƒ$1€)5ÌA@W/VJJq0˜RãÏ+.”@ ³;Ђ…ƒƒÒdîJi´Ù£°ýq’··t äûgØÂÍñ¹] ^” OFJˆ¥…ƒ=Ø‹Òh‰Â¦â©„¸ü?Öú¿Xýwr70X`÷'ýŸ>ý¯Ç;Øë_ìÝ\ΔÊ@gûÿª ü§›2Ðäf÷ßOå]`¹¸½HÉþÏÈEä ´P¹š[Sº:»ÿÚ[ü·¤mÿ0`“Ò—RÕÑdúçŠþó¡dïªååøï¬Fÿƒ9^Òg'¥!;+;;d ä÷þ2ú¯bÒöæ {Èžàá¥8;¼P ›B<”>” {  '%Ð"ÌÆjïà + y…Ò_JKg”?ËÉÅEÉy Øý‰ÿ3ÄMÉæäæà + ´0¿y(ÙìÝìÌþ,»•ýK˜’Íèl´w}‰ñS²ì Q¤5ÿŽ + ü+ë?wÄÿ„¹Ù! Î@{0Ðò¯(Ç¿¢ÿ5˜’ÙåO + Û— dŽ`7——ÄßÜÁÎðÈ[{9Z_Ĺyÿ!rx1ä†ÌÅ p±~‰@fâ tvx @&á`ü7ó@ì]=^žó@-Üœ_ÈJþ›ùÿ¸^Dx )]€v ÿŒòBƒ./“â…tèäxY^H-«?Çð¥/ן&]þ/Aˆॉ¼fˆ¿¤/iä Ad¥^"*ýoâƒʼÄNö… ò/)¯ðBzJ/©§üBz*/©§úoâ‡ÔS{!H=õ‚tBã… Õ5_R]ë… s×~!ˆ‹Î A\t_â¢÷o‚»lfÎs[ ëìSHe3Hø?·×¿Gÿçþ€”wƒ|‘Î.æÎ/»H€÷_ŸÆæ†ø¼laˆÙ Azcþoâ`‡4Çâ/ü³WþÂ?›ò/„ØYý…Yÿ…EÐ_Q³ù !N¶!D + üB¬^Žˆ•ý_±rø !VŽáŸûB¬œÿBˆ•Ë_±rý !Vn!ÄÊý/„Xy¼ äêdóü !V^!ÄÊû/ü×JþçÊpprÿYö¿ü8yþ5î?×›ƒ“÷Ïe¹‚Àÿ\’ÿ}UHH8xú°ðR²pBcÈÇ+ÀïûŸÃ´íAÏZ^ + rà°³ósýó¦0ws†œ®ÿ¸™!—Ðÿ°%rcž@s”ŒL<´ 3Ó•ée×,µnËèœJ{ÑQ*Ïu.þøÐ)*žuÞ&,ÄVírýþ@-*å–B4¼ÆOY(¶ëÚ¸×Ë‹¸|ÿåp›áæ•`EôË$N½ [ç10ªÙÄð+S.1<æʹE®«cÇY?QÃïÙA¿ŽE‹r¦Žo _·#vZ¡Íg¥=㙲L®«ìÇ$- p½ª9q|킸Bž´/ÄX´ý§ëäl·IØá7v7AJ8þ_ƒú6HÐ×öu.¤5¾Ëõ(ê®ËÝ÷èö-ŠÖPoPÅLÛ¦ÕÎgU4[âœ`Ãfìyâ—äÏyR¬ÏeöšqV†å9W­'i¾‰ò¿D]Q0oyŒqéw¦!à^7Í´’<ƆÆz¡ò¾—GHïžÑ5í‹îÞõc:pî°cðÂÒò#Q¬ lÔ—zDCoÀÌBŠÛ%É0ÂÈÓÿvÓY”l—Ç›‘7TŒ‹-ëó6מ‰½°û¶ŒSÙêâÆ0Ìà—çRT—MÏæÕ¶éë/ t€ŽëŒT¦í’ÖË“|Ò^ÄN?Zn}šùêX;“_®ÂÚç­7¬€4Ã9'¸Ü¦ƒ‹ˆ.î…•1hp¡­ÙÁbý,(I_äÆ«æ¶æ0¢^½ + Œ*}++y/eëÅ“¨#­`¤Ý’‚qç;:Û$pM•«1‰d@n˜.‡¡ uy}´ÿA/C`gRËyØéÀŠ¨Py‚ »%i»T„7&ÂXP³6È´(q;Ìå^·Áü¬Y’°Èà >xóÀÍ0š€3àtH„MËL´Ê§“–^åJðE-äGñŽæcÏàÂÛžÕe5MiÛÃAx™u Ѷe«ËÃËU Ä’u_¬S´Ùóß×`LÓ:Ôú6áÖöƶ֣LNÞüóí;­\#9¯éE÷MèàˆåFó^­}h¿Bâ´Ô~ÊyJjíì¸6^µêÐݤô9ÎUç ±ÚÛÝu&׌+^M$¬>îDÈ_Ns(DQúë§gJßÑŽ}@Ñ ™#,æ¾tºák¥"W„›«‰}?> RÁ Õ7è™îŸ?y˜ñio’P + tÅ=E¥ÓÔqê½Zt¢sÊݯ×~º«êÈ<pìšmM#ØŠ Zaç…#ÔÑIdHiOŸo‰qsàž}ab`¢Æ€“áØØ5òB*zÌ*„9=mëû>W§ƒ;®²£Ü[É9?ò j«nÛ焕¨FZjk`U ÿ؆6t#5úÛmà×2ŒN‡YS5Y»Aƒ¢òßaJ£u®0fö>XÃ,¨ƒÚÜtóQàÎÝ‹`2QÂ9߉µæŽ(ß.ì­ØŸ÷‡HŽ­+îì;×þªæ× éWl°OÌæqõg¬ + ŒtoMVŸqM »wP’Æà†x²Ì Þq9ñºïi#ESQRVž(Í + –ß^Ït{y¿ŸwÍs+Y$šÒÄévO®9ÿ†u!Ôû1ZÙl¯×Våi>@t´­‡OÛþûÓPŒ¶lèBcçàMÛ¤ÞE”! ‹Cp¼,%¼lÐ÷{™Þúoƒ>³]7æ¿âæ¤H¢P\wŒ‰!ÈX1M‘«E6uÍåèÆÛëÒž„èöÖ’5P;Ûé­F$^»:ñJIÃíê1kê4–¸sw]ª"ç<'p.SÄÈOH”'Q&>v1&~eIX8ÇÎðléf_èøÛzÝnYáË„Ó™ ?}Øïn¢ô5íH)MŠ©šS•–¡V/6Á|’‡9ôê~Qµ]Ö"…M æ¦{yÿ–2C/üq®}ꢬ^¢§]"Û%)^»2Ò·¯†W£`Ô F-š&«¹ÕÒ¡‰£Êý™)‘ówÌòl)£¹Ÿ8Y—z?UEЪI£­¯ó¹TlänžâBr üØfÂ&_m%cá·žÏ ªŠ‘]žYØÅWqYh mÛ^ö*Ö7²ÆÑ)þiHh›(ÚôÀ0Ÿœ<0Fψ^ý,V)’ä]ËgýÖ¨‚æÎ|ÎŽà÷‹…윢a‡#:¿¦ÙªYfÒ|»ñÐ-~oãO3 ΦÑ~~´ sFKÞþ1­Ï°•ýïTÙã»ÀW + Cœ)ˆÃU[’v0ŸW/˜œÑæ\ëäòE×?¥N’.—ÆM´²ŸŸê3Œ:Ô¥mT| Åíþz#ǘ±¬÷Ô˪þ1Zp˜²:6Vv–ù>›oJ}$x‘¾:žµJ¡rnI~”%¦æ~tg‹ìîãÌaRÌ{á~袔ó[)GTšU¤­ä\ˆ¤¢™12©lÑ`ÿ¹õ¾V²(FknõÁs²dë›ñ|²¶ëL`G./¹& + c)œš¯Ž á1G¥ ÇpÃã“sgݹS™Ý£}ºQû|h-G·@÷, Ÿ˜ÿ#ÎCPŒvi¬© + Ñ«ù¾‰ ß7$áï?Á"O|žZ3#™'|<˧ÐK †Ë‘?PÞ g 7ÿ" ¨V =H±I½+³ƒKëÃÜÖ¯”•rè.¶ + L9,\R + F¿¨·±Â·—´Þ·ÿy_¹ãSTèogjG"›0 Í.–—µ#‘û¼Ë×\žþ)}²Z EU‡35 $säŠ#1£Õê8J$tC>*Üh^¾†-Qxcƒº{ŸÝéã¹?Öyðj`¿a9è™Ëõ³½¬/a*ÐpV­…eðÒ—(:|çŠ1©9®\hTñ0O¼=ò=¢öÃ6ˆUCÊT"¯TÿUi»"ÿ + q‰ëûqÎý;Üzs„àÏ.,´™¹ßT™ŒÕOÒ›(kgÈ)(dL“ËÍ*8-„vœ"_1™jÒ|ò¸ã0Ç*ìXEߘ§Œï ⟌a§§6û+¢ÉÿôN¹»ì9—å‡.+ºTuÓ EwÒ®êܧxýºïêtâÑÝÕièQÁÒŒK ™HÆ]é¸_}­}UðékÝS´oZ„-ezÒÌ&l£l„-xpaæz®ÂধèEä «›»Jàp.Š¾àzÐѸûw>âKÒ79Ââhl“*‡1?¬|±ßwœb% €ˆÅóÆ_—/ïÜ‘ƼåݘŒ1/ —MÑê\¥_i Ÿme,ÞZ1’–4±¹ž²ÆUXP…÷õ²„me ùÛº3&ù…¼žfN + ?¦ fNaD1xx¶KË8ø²#_qIõ ëAz5·»,1üŒJ+½hÃyí•ÐÂjŸ¿·»˜y|™<]@ô5]Á}ÇÈœU­.L·7¶êËÆÕçÔ™ôG…8{8­u#L"ï¤"–åß8wP¬ߣqèTlÀíC‹ ħ!º´Òx+KXVÈàgŠ«Û”0ìç½Ù™èNþùX- ;ÂñðÉæô»jÁõm¼ P‹´y´v+cß[vÎøÓέšî:Uû Y£ïŽ±öÊ›ù᣷`–• ’õO‹S'ý}ÔY·ŸŸÊ2†;û.¿Î%[E~‰ˆóòÞ¦Ž³õ3$­ñVy')Åh-]È51aÐ "¬`Ä«Ó>lÝ«î + hM&ãR!JÓP@ÝOÚ¸ñÔ"bI®êTý4“ÖG£Ò—¶!žA´nd±®Šˆ„ûœ'¦¿—^~s£Qmºò'ÉðX0C3Îfy༻RØE|£8Wè”ú¶ò¬)•;\ù8BYr‡3Î7ÓWô§8 5ŽËÒÕ lìJ_'’«µ·Ÿùš ÈNâ¾åÓ¬býƒ'~{Cj¯¢{Ê[™ J’á‡cªÑ7~v©§CvѲ–aº¬îu¶rÌ•ÍKÔ¯¯üÖ ä«ãÌiÉX! õý[ߦc*<ë±à]AÔYöºªÎ )õ›)ÙØ8’ú§bÛqËuÊHÏ»=QþS¢0ßÕ‘¾5uì^á‡N€-‚´µm>V¢y -4vA·ëv÷?Çü­«0º¡‚Y‘ç$\f¢÷ôáPÍœ©Ÿ?ýºN–¶Ìˆ6VÞÄ3·NmH¯XÎ[“* + ù¶÷$&Y¥ûuüG]kþ/i«ªmg¼$Uh‰¨:ãB¢´väìÞS`‡M¼7ï· »2ë Ù|“ž¤û:‘ÄU|ýÎœI¸Ã‘¯ããÕL¨ð±õ3Üøa•ôÏK±ŠŽ‘"õ7=‰0dÏ´„"RõEtÜK¦rŒö_mÜt÷Q¢œ>F.w.i¶ ²jpÛ7[äàŠ.9¿·÷î04k˜ãôaä–5’S<+sìëqZƒvOs‰}#+)q_LìßC*‚µ+±žºÎ:5NŠ‘Š³¿ê›Îm7ñä³$ýZbßH¿tžpV.\‹¬òÝo0n>øùi>7¨Õ‰óŠ÷US¿F´ÛxuŸØÚ¿áH.½¤dÈ}„Cn@Æ\Á·ª‰÷ðŽ6QIEçP!¢ÙwÖvZÒʊš„Òxž•žxÂpî r0RMÕÊpØ0àëLg:ýúý„…º§;H{¤ä•’‚'jEszö O3›®àNGM`‰ÐÍõŒP¡ê»×$°m ·Ê}]qùF‘iŠ°"? MqMRñÃ#Þ®=˜LKuÆÚ©î”ð8·–—Ëjë”rr!$AKè;¦,™¸ñæN÷Kã›3H-c®sB]âs‡›#.©Õ-¾ßñí¨> Ešü59· ° #EÞ†Ý-=ƒ¦YûœÜÃuð›ÖV|qóK-üºSI€«¼á–+««…)Bعá85O|>Íñ#ÁOW‹“y¡ ·øQ€6×ñ[%:KÚÜpè‹||;n<©ï¨ø¸¾?i0Î~=î´šªôYk—•­ß“s&t5šÛ Õó·"Í=Îd¬?^{P®ç•œ¨ü M£\rá\lœ}7yôQŽo{øpð†|¾w{‚©Ð–GAæÉG¶YäY¶½|ì²2Ú½T‹7pm’!Cþø¹È9ä­g3I‘dM>bH$*ÚKãx€dš“ÃF%]¡ªèü¾ùç^%RGjK÷‚¹­WC–õóS#ý»­ïž”3„TRÉ3,r,¿óV5P'pYÿâØ8åy·0†÷–iG¬™¾`¶®±9Þ4‡æbEdž!h€XtvÃt̯ÐùˆèK_ñÖ44ëÔï½³D4êÖ9°9œ=)&îµ´ê}¿©n­å ÷ÇN{Ÿõ·›Gdhcû”wfS¯uËøj~ÿÀ<úMëFð‰Qo„0¬Œ|¶lnæ~~†~&\î‰znmºgd4ëÀvRä¾ÔÝÑC + Ö#”÷ÎÕpˆNÿgýçÍEí+ÝÛ»žñ•©ü} ™Æñ¯ŸB$$S1DÁŸG®X ”«­Ç¹|xä¾”)Hš¨ýn?º’Ó¡ô4=C£ÿ2+âGLóöº§ØG²;ã› |™!|ñ¯–B *HÀ˜#YÔy·eÑoÈÙê¯^íGWƒù1qU8é + T9R¶ºÁ ²~ÄvÆ“iñ2€-‰EYrþ~²k =ÿJí'å]!í©9–‘5-ÚjÞìq#Á*qºÖÊê+,†J{å‹ÅßHÝ3šÁ§cŸ1´a·(ÌHü¤Ä5«r& ~ øÆTŽ¼~=b œ¬Qã§Çšµ3}·^×’Ï¿±EÄ ?FLÇ)/âðmÏàªSmpá+¦TÕë‘…&Uíd:&ÝköL=©ñ#=]K&ˆ7Í•^ê4©{¦™±ú‡;2–À/â.D-c³"º!‡Ež®‚OçAÛîŸxàQÓ}fé‘Lc|¢ô¾‡å~Þ)œÐÕòàÓ^·S€Ÿ‘¹c®zD/S/´‹Õ±)¯ðæAïâçQÝõ“ñ}màœŸÁÖ’ÝMU‚ðëHtHÞ5#8aÃBfu ¡DG}ÃÑ;ä6·|Ô–›ÍñHBÀ£UœWTÊ5yíƒSPKpLëÃ÷¡4³í©Kle*mÏ÷çEþŸsñjn4ÖÚ‡Ò˜9¥ÝÀo=á$ÿPQÌaeJ\¶Æ´l¼Ë/ýâ1\},f­HדQq½gëõjKo©Õm¿Ó7‹ÆËøÉõÞ€·La-|±‘‡qYÁ.ÍÙ HÚ¯ÕóNŽA!¥é–s¬› + Ï–$Ìð&þŠ¶¶(c7Æ¢ \qÆef€â£.x†ðÝ ö¢PWapç^¼8¡¦zG0²!6zl½¤¸W¼@½70uD/¤zèMùÇe›˜c#ÿ=¿lu!Òdä2K¾´CüH§Ñµ­VÅÃÏ”ƒ&rdÁKý¨'ºÏŒ˜}¬ÅÈTc7 ëˆ`3÷J&*u\C®úF´Iºò²i"ƒ¼5YXå²ÜR”DÚ»¦¡°&’¹BªQ™‡ØÞü‹ÞF²óÞAµZ…SÍ9nID°ýØÓOA_–O¨‹[´%Ÿ™I—€dßµJyèòйÆ.'ãÇßúp4€øg'·uíþcåÒúM“,Çuoˆ0‹oÐÇ/–`8oÜ;ô›çÓG”ŽˆÁ|¡vægXQ“Mc¹ó¤Ú•›`÷å@OîŽ^ø’ÁȦE€0Ôëò + Ì󋮟µåÅô >(}OçgµÍ½=Zãêæ¸Tˆ}ÇÙü8#ŽÆOÃ#ûFý´›`Âs×Fýº­?bø¯?¸´èñM“Ÿ Õóx/ºwÑ«±ë®ýð†ÚÙ°RCâÿ\ºaêã•DRC}¨3[t©Ü'p{'#’„:$-ŸLߥ'î± }Çýƒ =q¢†}rêm|ó Ò»«U{o‘Æ…¨xÎ3˜ ~ð^jB­·¥|TU/ÖrbêÝÜX‚½DíqGÊ=ûS%dyã7 + 0•ö”Âû%Uodm¾D¸wÝ{,ëå…d¤‘¬yˤáw¼{—CE”;Ev#…ªÍÜÃéMDò>F°º-P¬·°íË}ƒ´Éš Œ³¯ÇÎç…›ï8D.(v×_Þ\±^ÛnØíò‹@µqu}_MÔNö5Gç|òœj_¨7W«-¸ˆ­Œ&é&ÏèªÔ‹’®Íyº$zk + °ól$¨k,ñv¦ÂcH›Jw®X”D ÓÛ.°gXû5ôØ~8‘£[ÇeÞ¼èQŠI«À!`F¼t´¨Ú±éã“ðQ=àüˆaËg$ϱ2Ð8Z¸ð†”ϬNþü۩%h‡"ìÕçù0À#õ†§Ôœò¢…ÑC©ð¯‘Í{aâ{ü.AÁ«ø²ˆtƵwÂ+³õw¾r9iNâ\)\TOº Z'ç,ït `52e™¸xº½ß.iböÿ4ÓsÈŽýÚÅ{.Xp Ü$Õj–‹bÒ# –¤¢Á©3à’‹O¨&ˆ¶9  îà + Ú3ý¾BØà#@·Í£Sµðô‰þgºT·Jù…0“¬!&Uá݉ÕN„f¦P¾y9½Š€è¦…·xœ†\tJº ñ)E´iÅî´ÿ ëNËç…¦A\ + gC`âA+5Õàt¡ÑçWIÇ·J¾Ûèü¢är™ô%ŸT!‡¶­âÄ®@&˜È©²Wî:íÔy·ßçÖõ¢.F¤óYœ‘Í&!å éè-( ÉЦòg_0'¡Áä •õ­<ܳz¢‹§€8[”Ôó)u«Ï'µJTµ±¥ë~_¢˜oëWYèc<ûÁÁ~V°UŒ7}Qà"A:o³ú8v] 6×½7Ê^ Í+=‡Û¯e•&áHß]ßkþ.«Õ:Æ)ð£ggÞW‹•ÛFq:Y9ÛÏ!ÖžðqGÒ¬’m(ü@PÏ9&*_ÌdÏñ`óE²à«$¸8#©# :EÍê®ID5éµ+¹"9òÝ̪‹é;¨Npöhss[Ä“nCF™¸‡ã.‴™eþŒÒ6ýíëÀÑÚ^ìh'¬ÅæcÚ«9ùq¥@YîOM;ñË÷¥¤IÖ]_¾Õõº®÷ùt‹¯é‡jX¤ž±§ÌW)/‚¢yòØó[Í·Gøœ=„(ìÞw1²Û2~Ç#¬>¥Ç P­p nÆ!H´QÏh“Ê'g‡^Z•I³¼%vóß]šç¿{…ƒÖ¦3IÏ¡­Ó‰Þ4‹ïeüÍÇc_¦á@j§é¦÷(΃¼=lÆê3º)=sƇ¦³˜íS’“¶“¡„ù5ýAǞʧt/AÏêÚPí9›—¬ûäT‘l;ïBÏ„"žå2ä±%±ô-6ÆâFˆø{v½¦TF–*Iº2ÇïŸ%78ísDzòï©—œ mÒ¬‹xùÄ2Ï@§ >ÉŸ :§ÆMÙ¯“ÝÚïyÊü¬«×åÌÙQ¢ñ­†’”wßXþ~Ïãóú¡l§[ßÖ4ho5>ÅmM‚n×fÕF¾‘;_8}ö#R¸vì»F´&«³ò¯j¤f%2ßU‡ÔcèsæÒF¬À‡röLŸ˜°n±»×Šá„ÉüæÐwC + »z áÕŒÄwQyƒO‰¾…ûYÁü8£:¾Q G þ¬|m¿K‹ö 8Z‘3®¤[n¸ + C¸T[tþŠEÒß¿ù…›~¼abbgù• !z.» }‰[âlŠË#c[0áµ,Òo~T¹w"‡)‹Qœ³w¶wžè㦶hô†!¨c¨ ë.7P9·þú,LÕ%Xif´%Ë$–Iv|ƒ”R«ù<‰]‘ã7Õ–už¦mÌÆšu•Y¸ÖE¥bn6ôc76 ¤¸©÷h%ÐèWŠ¼øÉgxK–Ðf©¸¼J׉kÿ)~û[&’š4~»\‹{íû$ç®â¹ + Ñ=uzMÑ3Éóš\/-¸E!£Ât„Ö&åÐЋ"bÍTóEVPÝz.û¡ºwü½h¶-ñ…ŽÝ)!É« ôîÏEu^6´Jp¿|,®xxbª§%r'çe¨XËkðïßc¿{¥fã^ŒBkôá <¼–¤w½XxôJ¢O‰ð EÎqâèFÜ?Þ4óìÛÉÂ>Åå°2Ú`’ô8?å …žhÖç>Ýç˜ÔXœÂ ,Ûªª©)ÁEØQC—.B6—Ò“©;9š1¦6¯‹™•ÍjáäLeãÌøºTì¾F%üp°ÃÒ%ï%ß“kufú ŠÆɶ"a“;¤_þ,ŠåæY;^œZ}Eú"»2®_†iŽª©õˆðHÈžÝó–7þúוŸ_• í×8½Ì|[×î#¦+óÂ8G¼  ˆÆˆm³_~‡b‹kž>·J&°jÀ"ìÎè<Ò&õÞ¤\Á_žÁWU¾ªó› Ÿœ({s ¤m Äò)¢ä²?¢ÑÚÂ¥bÌÆJ1×½Ô–&Åþù(ìÚeº¢¾È^u&EßÎZð@>ªŸcíÞÄQ%Kùù|ïHF×Å™CãEö7EpÄIÑßc‹”‹°VY[¿ýVxÞ;;]wRòÊj + eò—Ê’hŠê’˜]À"XŠ€2OmEò'’Ì•öQýXÛòy/DúKà¬ÇÙIŸ—1S.§e:ÝÇ)eÞµZ80(p¿S ef1ac"™¾åŒ´¨`Ãs·@è„o”`Nr2 ¯Å•Ì/.+( {S_—&*{ HOž“ôŽU¯û8`ÕNë¸ÖŽ‰qAºnsÛÎð!núáò÷ÕAÛ§½ÃûG3‚n‚r÷/"ä;=ÍePÁ|QèÜÄÐ + Þ”z•µ²^õ(Ó + )-nn_ÖØ­z“d“dž}º¶”½ §ÊÍñ`M|ʆ2ƒ|¾’r©Û—~#{Xþ hba)=u#ÒÇmPy«?ûe + œJõ}‰úy‡±¯“¬ƒ‹o\FåºvxrYSlÖhHAà±…Bbµ§ûn:£˜!†ˆŸ4ÞWÖGKb³xûƒ< ¯a¼WäµÄVôéØ»ðè×Ã-W»™Ž½3ùšZû,ºI¿ á쬲͑iFáÕikž<«£Ö`üwñ"Ûok…yÃjÞJÔ‘–¨Ö«ê³Ú©Ï!¯‡ªºtµ‹ìt€å„™ÇwÒÍ1©ˆ'øü^rÞߦÿÝ”C¨N|éÍÜãÛŠgÆ9K×(ÚºÄ^™‹0üžæŠ«©,²©sÑÌ?€f`Gœïðؔڰïl óG EÒÖ™A{üƒvJÂñÖÔ:àÊÞôùVgMîl¾Hk4ÐTæèÔ®š,ß„t«Skè~¶³­ Ý&í#f‡;/Ȳè÷·ÉCï1.i½µší<ʆÊw`5•ÇãôܸµºG«ÓM»vXýçç”–B‡˜Köeof=þ¥ð!ºèb&âÍ^¼M¡q/÷«öº¤îs]~9©]¼ Ó%ñ³\-yb…äÅØ€wN[ʤÄÔc6H[bD\'J¡ Ù¶§p– ð–'ÂG#~^™ÆÙ![Ò×¥ mì®mæšœq¾gÏÐQdŠøaGð~ßÐ¥°©C+[5#÷]†s.÷…iPEÔg”ý²qas0üd±äÂ&»/ÈàèÆ'­Dä'DžæÙ܆ÊÓ,õÈÂz!‰TÝø 9r>ј9Ê•#˦ͶjÕ+Yyk‹Ofî÷Iö» ¯#…)eóvÀ8‰NEõ+£&ÔÖ @™íB.Âû`RöÕpsL‘INÊ÷.—Òé³xTdè.†PbA÷(rÏåNÞ@6§z‹Œ‡å„W;QøIBk¾ u’w¿O¿Ÿ‚pšÅîæÅ#_¹)¶‘è£~òKh“«Éôô¾ºÍ¸V?µºö U+†å¹û‰)OÐÇ)¡=@f΃ö-ÖÜÎ võtÏ”è\ÿž¦hfõËu8•_òÕZ"wîöwuê7Ðvvà2cšîÒú ¥&I8… N¯QVCaCB)^µ@u=\²ßèºççT·øÜЬÂ$ ö:xõx$¤4âǽÊz˜Øž²Ã¶FCãEda”é÷–êÉ€)"ÝX­ƒy]c.|&¥Ç%¶M95ÀWv‘IŠÔ·̓éVgÄ‘º)‡aÏÝþE† + =UïkÕŒvK&4à‡^q0éw(ÿ„ücRÿÈ:pÔÊõ™¾o9•Îëï‰öH86œ?Þ”õfU+{;‘ºNW||ݽ͎à¹JÔö!l´ïAô„S¿ÿ‰^5¢ò oLŠ!ãÏ+ÉþŸŽ‘Æȇ›80“»$†Ø!––s\=x%jnPLËG|¹«ãb0¸ ôYËA!z$ìC>wUÒU#þ"á°©Y-KÓ_¾äMr™&ÉË’Ež]Ï°eGÇLOH‡!Ý'AsˆØ6{’@\$çÂ'gnKK'S]‚ƒH&ãÅüc=ì®xºhæħ773Òœ­Ð/ ´õ‹”MQKÖ-¥uš1—ßp«Þ–8WõFL´ˆŠò‹>Qæ<Ÿ'õªáðÃüàhv¹öc8Ue½Ñ ì•(CŽŒÍôT=Ü·-5<GoºãjùL!À› …×êh|[Î;ýUúå ‘V—¶­Ì=eoýM†æ±ÉëÄÈ[--J[ÏêJ*I£¥8o$ñ2WîÜ°ç,©ý)Ê`ÿ&ñ%T±kÝo¬.ì°ár¶œF¦ʶ×Í`YœKŒõjä£PYäÅ3ô)oŽ_­ïǺ„ùú‘~JÉ€”áÄQ)™Û×ÆÚÍ h¾~ÉÝðÂ4€‘,+úäþŠ@c`afžV´b¢}ho¡Á‹xW§¾·{jÍgYÜÑß:ÿ ¶†1 RɉÈÿÒNvãÉÈ+>KDHOÓÒÄ&3Ô-‡ + ÓÏv ÅäP¯9¡Ê^øToœ [\Qèq<“… âÝ‹ÎTüáÙš¥•aás=Ú—Æ‘–#›pSèszBÛ^Pf³ÔµÁžYmBB6ƒÁ…qùÆÜ”í3f5¼»—Èdgw-IÀœ”#[Ì6@ÚÁ“ÝË—ïD`W9ñ…ËŽn³v¹¹9¼Ï`q£‡_Ãe½;À¤bOD[zd»0Â'ñuHÁ¹òÕ[Tä; O)ùLßýjøÞô†xGê%ÃA´^ö[öñѼ­!¿À±(´:œ•Ý/±âæKÖ\ªÕ˜Þ|k91éMÝÂÑa£$Õe)ÔÖ:¢Ñ‹uÅU•ÙϺ¼È&þs0ÒzÏ?V¾%/=¼Í÷¡KòóN‰(rFˆ! Ø®^uŽùübäËaWé°è} ~I0óEð ´óáó&‡BL agÞ[³ÆùTçgÍ«ß¾|ô(0œÚûÍd®¹s³0ïê;f®•í8:fqIW‘ÔZÄN?’ãÛe}\J;{.srLNYôø‘h|:Wéãü.úÜvŒ³ôá`GÖs±'«þ’J=ý| z};‘—˜¢òŽZio¨sòr+¶\*…HgÛ!F9Šó-Ãèç½)+Ú¢Žùväæn¥Å<ö…Äø,#ˆ>P¹²q¨èø\(õG\ÓÆ—ž0r¾:ð;7ÒÛ‡W'TùßÒ¦XPÈÈ`™¥ÂOkÓ§ å‡Õº ‚$B®d‘§7+±ŠÛov|U?s[x´׬×Q¨ØwgÕò8RE×! ßÔÛ>#ö«E•?È>LÊJV÷¶Žáï‹ÅÌ(Þ÷xÔ Ç¸PØ[ù + •Ì­˜ªZõä„Þ+îßk–ºwKÒ²².%ƒf߉0=zRm7 u\)%‘M%r”•ŒÛh ’9 u}g©Ò‚zv¿Õûð}pÇÄtb5{Ã¥¶@d+d›ý(…ÅËòZôè 6ϸhzËÅüã?-CåÅÙ÷(¹\åìâ°V­¶ÄÛßÌl¾.mˆ$míÌOÌ2€¸Á[_qyaSO-B"§E + †ˆ…ùR/íûm¥wüMr —¼ˆ;ò:¶”·0WñTì?:ÏŒÁxczÇéÒ™ìæ|<á¾”]¡®ÞZ´ò@2g­žÀ¾Ê»;DÞ÷*jZEoNžU»2jsM»ó程döäa WZX6¿·Öæ¥W\ò«‰9²ñ§§(ÖOŠPÇÿ ɪ*¯9bÀÇýýè;yÒåG6/û”Xûlþ2®ƒ]ßnGÒøzçmMÌ׆*UðM¦óVÊш;è ÷ü¿l¢"¬…¡YmW±Ü’JÃbïNÌ9àéc‚G",ÒÞìYË×2ÒyÁ+æµÃøýXbëýzùÚmÊ2 âÄäP”¾sØñ^É;Á@*;2¾ïuPÐ\¯Šm“‹»ö«žlg²Wþ]W¯µáèM>’µKä A/³ŠçÃ’ðÙplÓ¬¤7ªP…uIØ~gC֢؆µvR­ú´Ó±p#´D;(ÑF¦†;‡§Yª°Ï÷¦Íf?a`Š\†Ú*NºÔ¥Ÿ¡œ|̤ŽhH‘W¨^P?uø˜–ÇÅ¿œ=È7 gÔB?4ƒf€O!¢¢mDØð€tJê…Ä %w¯Ò¦;IÁÑ/¬);êšÍUõ‘w7Ù²£`xÀ¯Y²~±ÚÜ´Ez#4t/ÞýÔI_šwµm Ïg¶úÉט'ÐÁš·ü&^ÅåÍ7x ÉX%hRêêÐ+ýÖ½yâ1GwØm ¾¥ÈQ~GÌo݉A€U´*ûÿË”ÿ?Áÿ'˜ƒgW;€³- + ÊÿoÀ + endstream + endobj + 326 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-39 -250 1036 750] + /FontName/BIXCZE+CMR9 + /ItalicAngle 0 + /StemV 74 + /FontFile 325 0 R + /Flags 4 + >> + endobj + 325 0 obj + << + /Filter[/FlateDecode] + /Length1 712 + /Length2 8224 + /Length3 533 + /Length 8775 + >> + stream + xÚí–UTᶥqw Ø î!¸»—½»»»»,Xp ®Á-¸;‚C`£7眾·GŸÛ/=ú­GW½ÔškÖü¿ZõQE TÕ`9˜¥ì]Y8X9JêVv4ZZ g°©+ÄÁ^ÒÔ,ààˆ¹Y8Ù¼‚\‚<hh´ G/gˆ¥•+€^‚á.>€˜ØbnjP2uµÛý 17µh8˜CÀ®^¬€˜­-@ý·¸ÔÁ.`gw0ˆ ƒ‚˜»ÌÀ–{4¶ ÉÙ[8øþ%ƒÜÿ³åvvùË ÿËÉøK r°·õ€ÀhlÊWÿeù?ÆúßPý{¸´›­­²©Ý?âÿŽé¿uMí ¶^ÿ£ï`çèæ + v(9€ÀÎöÿnÕÿ M ‚¸Ùý{WÎÕÔb.foi °ÿK‚¸HC<Á Uˆ«¹ÀÂÔÖüOlúwˆ¿cû'›¸œ®„žÓ?_è¿zª¦{WM/ÇÿJý‡ùŸ5Çÿ¬ÿÇâ Ðggegçøkü{þç•á¿­%eoî‚Ø[4\MíA¦Î ÿþ;“¸¸ƒ§ —€…“çïbçâðñ°ûý¯F-{ˆ“XNÀÃÎÎÎ'ÀùOÕÜÍÙlïúÏMð÷yÿ³¶€üì 6GËÉ%„À3¿gº3¹í] Òù>¹¨ŠÖUz–Éó§hzäÝ‘uÉ:"ÌFõvóñT56ãžòSd½¿’Pbï£//Òêu"F‹ñNýÝ;Áš¸#–Yüf=8¶žspl»±~#S!"öÆ5¨ÐÕ±ûjHÒò´ðÿ{T­ÇÔ=ºÜ¸}Ð#h¾ å¡Ì”gü§É~J¤‡OìUljïgÌöªu#Ê¢ð³IÖJpŠ¸pÔgʹ'ø¹üêúm©!œpþ—ÙÊõR‰h¤ÌÂ1&º¹ä †VŸ}Dœp—Í!Ú{Œ–4Iý Ã_g?qör}Ò>›õ*ÕLØêIy“|@g + B}ÿ¬å"_)â-Ïù€@Ÿ´l¤@Œ=>Ξ4ˆ¥9â:•[ci®ì薹ŰòÊL™crWOÛ9ÌçªDˆñ_‰) œKº9}¸{ÍpOL§k×JÅÔ€ÖQ.ËK†ø|1š5˜ÂTUyÏ¥ + þ¬"4B£‰(ê–41Ž;=2,ÃLÇ@O¹Š¨›öÁÑ’èmÅŽª5¤S°…³<”®¾’JƒƒûíBÄÝ;„fšÜeÞ;û³F­ + ǦÓb»•aqÍĽö°"DP™9ÝûQ•ŸÕÜ{Íú­oÅ#¸¾+©¡è£»­lFï†Ø{y”ÞK§þ~bó•šV=i` Èxhµ¾:8*´ay{ÐÜŸ·3Á6Š§ö¬ØNÃJ¿Ðí{v.ÏLJ䘙ôðJxÑ'ŒúuÙÑô‹$ ìKO ‡*ož¨;tuK ‹ ø´6;þw6²@!œ— )쎪Á;p,<ö7Îk×—‘LM¤Ð¢YG«õº~m¶u= »INM63­‘¸µmÉ3»ÆF6žûŽÑJU|cv*.“G¶ØäÔú¹\#Æ’¨×pì¯^FרÑÉ#RªTNUNde;±ò»¸Whï˜M80p^ó 'ä¯c¥¯ÛÏxHŸd¯!Zwñ—y=n„?ÎyÉdéuß©Ïåv †!§Dh§©[k$¸ØÒc âX‹—¦¾ãI®¦ZñÑ"rÙˆ‘ä^÷ˆñP^ë ïß(2²N…Á›†²˜Î©naÛÏ;*zß ³"·ñ2L:1ì ”ußà?žI00o jrØ¡2‘PFŠV½Ín™É5cl @ICB8ЛiHGK ^Ú·ï?ªzCív\EÞ¿lˆ bò~ŠûdõÄ:S tWÕ‘ÈÛ¿ü2NY“òo'/rk+—å7€h„§Ù'é†ú{¦E3,`Î\PŽ¬ËøëËå{3ÀDÊæv…©ÂJMbP/K¥ÈLØ2 z–j!üVáÞÓ€ºÒÍžVÄÓO—8/7­Tˆ‚Léò¥ó°às,¸ñ‡Ÿ2WßåÃ*Ü^´ìèÖMúÏþ Úž¥,a±þðóJŸ–‘JÙ;Ã8ä"CÞTÝòMƒ•† + üzôwn¿Üm{ìjEÙóÉv¨% •ÀÆ2“0wx×V›±à•±ª“Rœ ¬JñAÊúç±|J½Ä²yÂÑ3°G«Ý‘eBË{"ò{.šÈëþTU0{é{"¨G×úº ©éê;¿ÏaHëýž[If—H—B>ãÄÁ1ÒÃ0á!2Pâ}‹±H¬3èZæÿô‘™…Ò®Þ +€¨¼#‘óò©Å’n˜ ÆŒ·*§¬¯¾0€Yçû@\ ]V*Gg´¯âå̧V¥tåyíÒ=øË)3„lBŒ¸Êž‹IVòvvjSÒ¤nð ]¯ç²ä$ÔÐC–²g(í0rIA<¦/V¨|»Ì±ÒÞ·N=ª£cANt1vCšLE)€ü Evùõö\*€ò‘«rØtz#§íOhìÌ#1|rÂZˆÎGÆPÚân»GùÖ‹Að„A†~Á)ú»x¤Æ›*¼Z}tèR + E¾YŽ«XïçUÝ£|à]GTDkÃjìâæå.æŸ}½ êí@ç`yóËÄ©ðAf™¦@Ø5“•èó»¦Ëü#6ɱ€š>³Å—ƒ™xÏá«)Ň¹BÒ¡`k‘‡ê¾&ŽëjâxÔ0#aWeŠ§b³®ˆJ‡ašö“T{‹¦l/Žæ †‹óXäf¶!úkÞßipX%^/uö¯W†Z\ÛW“k1…Á„0ˆJ. ­9&èùŽb^ÒÒn¿¢¨q“ç/Ûj‘³ša\|¥Ä±reìIa˜–•Ÿ•dæ{¥+7è/º@n*®}V_SUØÄhAÓø[—T ÷Vïol5²°YtÅÞ– + ÷®qN—ˆjÞ5ýÖ {·½Nžcvì²Q3øwX›|£¢°;± ‹ µÖ/"˜-}á®o†!O1l˜ä2k¾A£{©«ž®pa964èßî6*mÓP¥ë£4y›ÚBzìž—s†ÓÆŸä´r›.X¥E&bàú®ÛyPˆÇ™¯L.‡N }jß*8Çä'B]rXKxL¸õôãC€ko:!³¨Š–v–n¬¢œò_£Ì¥?¢qz'·ŒÚ]Èd„ñK…Û¨t©3ǽʭÍkàíÙ+€ìã÷ȱ2±H[®“×¹\ + ýT:?®1aöž÷0§æϨœ ¾*Kçw>Ó¹¨bå^ñÆï”OtTÙ†K*ð{_X[ços³T#­ciɶ …=ëâ†HnU¼q–‹Ÿ¤G`æX|šjÙòÈæ»D\Þ¢ÜsØ©O_$v¹^Cw³Ð–ªK’êÚ zGP(ãÙÕšMHuŸ1w\gz)ûòäœHüÁhaGcYÞ³Zš÷ŽXíúU`£n9é›^U]ëŽ`ŒŠ¬ + Û8Q‘ 7,OØ`}-R] %¶Øž´úûà 1«®À×Í¡]F⵩ËõϵjWs.Ö-Ó뀬™ÊÂÍ¥ÄmGóä  œÀÞéÈ軋†?çÛ£ ð6ÿz'ð), )¾ªh·vÌlÖÜ]ºp¹ƒfàñ—tËÙ×^&æ9áÐzhÒûÕB”[õwÂOÆý*’Už[Išf–©'(\þ\˾»Ú,NækDV/±~N)¤9~ö+}NàÀëÿØpÕˆr<9WˆZ¢NKWŠã¾Q6'+ØgY›,,:xTž¤Ãš=­ô+ašwcHŸ¨µ¸³ýâG¹ÛvÙB“\ + «€]i…DR Õc…ÖŠVyrDÈ)VGYÈßq|FÀ X±³ù‘òtO¤°X€2Læì?úéÍÉÁWQ%‡Œc¾ö3"þ¬K—œ÷;UJD…¸RÙB¹‚•ù´ÔDYª²yå»F…™aÜÂÑ sê¢ÂÚ–k”q³M 8„# |„‡Úe >€u,:Èl½¶Ý¾Q>1Öw4Ø!…÷¥ä­róÄ9“E|X†w‡­m÷1¥.ËŸð¾Æ$°ˆs 5OmZâ8Œ ½uE¥0Äi¶lšÊðÉ|fúhí`ʹjÜÛš¦ØSÎí1öLŸ‰1DÄ 8JLÁïç/âhMÀ•„ÁCš…u™dºÊ¥šÆYÓs:\¿Ù0ÌpIÖèÇ;=ˆtÓµB´d•¤q"RHäÁ–›bÌr"=Îi=âQ„fžµNIE ò0Ú5¯;6•òèó$•š~f>:‡L oØ­¿o=üÐ"Ó犫Ýzvg„eÄU— + xBïë½Þb‹³‹úAϼ&±±¶ vE*:'d94¬¾¤o›ö[¿šEŒÖ¿X#oðÃó÷'hJBÝ<ðÜ4}zWÕu6&[? <À:ÿÛÙ:Ãþ?µ±D–Ûl?šjS‚ߘú±²bx}p+~ð¼Û50Š¥þ9ž1QÅ> ³dóô„›»þò]ãËå‡@Àuý2ºw]+ „¿ZX"YKD?âçÖ§Ô]ùçÞ°’`ç"z + žTãVg‡(©NÞ9¯ð/±?šú¼§âí¥Ž}5½A\HÕé8š…Õì©ùaé爫9puh O&Áº.g”‰Ê½ƒ ÂÿYeÔîÖZ,ÿáÒ‰Ó ³¤Ä3 s‰I]©×QáC⧗Ckp¡)ß Ë­'ÃÃ&e7œŽI°úÍ0õòEÒ=#Æêû˜ùT1m§¼øÛšˆÝ7Sj¹íñ.¬¨á@0d!Ó,ȘÍ,Í,l&‘ŽÉ’hI7 ß!¨š íJç@YÜ+:b6sÍLOª,HháI3Øš¯‘e–ÍÎtaŸ”òcµêÍÚ`¹50s$> '2Dº_bÌ“‡—ÞŸGîaïZ!* #3úžYFÂïõc;+ áêÔЖ•VíæGMœ³{Ëp(Ž§uô-#ˆ%ÜJ-¯™Ã_LA·–Ä‹ÅwWj£;vÅÔºÚ±J]îð+{ÕNUjÍo”û=Š‚ü¾­5Ö­O íÕ5­]ˆýcPm¼ûWFÐç+ÂY‰ÜUº†ÔÒ€æõƒWÔ + Á° ËïPñÕJæ:»Ñ dšöG»À•Ï—xƒ”o7Š )Ù"wE¤´¦!Y8ï2ÌG~%)8 ¦^‹’‰‘èš ¦n.YŒ…R¬RÚ£êmS†ˆþ³žSÜËmõ˜á.æ'Ÿâ‹ÿpêÈ®ABŒ¯>r€¥“£û÷O‹äu/[lú"×Æi4]ÓÁý²åúÛíw + ôƒº™|¡‹Ÿ“Í,Þ#¬ANH‹UÁ¦+WÌð‹4=a÷m<ÛÁ`ö%Z'oB;º‹hϛĪ§|`S‰]IÚ€ÁàY<Ô]ö2ʳí[ ȤÓtÆÏöö ¨8‹hÞ…j^lb®{Тö¯;ÑàËÑ¡°~*î*y]ûï,‡$þ£ý:ÜA’ÕZDÊäQÃsí—˜\׫(Œüíxèœè™”••'_‚‚ÆŒ:Âu»]¿•<Š¥åt3Æ'N”y²øÍeGÿ¬éI£Š1¯íyM_LÕ8+l39 ›¯¢¤TÉKð½Å3ÂMô¥Ù P‚Ç‚Ö‡„Ç0•GaTB÷É¿ý\Û¯Üf0ýöº}ü=—Mÿ¡×h\Âñ(·ùâÜ\”að£)u2ºdnqÀÝ8݉Š¨?»moØs¦ðï}x<Ç[?×b÷»Çó“ʃ¸2ó¸ã^S <¿¤µ·¼vZF ~1ööî–ãTl1ÙŠxÃs(=ÞÐÑEêÚ'Yô‹¸ ÂF ˜a p;|W + vtRÝŒi¯HÂÀ+™3·f{í†ôz}½V}ž¢e&S—7¸WÇ›µ¡¨\¶ži‚øB&üz©Ønzº±›ø8#Š…7–Á{S + y¢·aüPþ £IXѪEßM¥/<<ƒ}²UF;UR!ET¯@î—hš±ˆ‘ü¶S!Šƒ["Np,ß¡×ôŽ4‰CHé€þÈá; ždU%S-§}uÒ‚µ§ŸàVÙD]®0¬,Ëjf|$_Ô!d äZÍÑÔr­Ó9Šó‘#tPÕaس^¾R`Iø]‘[v#ëzã¬Y{þY”w^{«Ì—›.æ·åšpu˜£}µˆMñE;aÿ&ÌñCf¸£€–·À!}¡Ìµú™‹¯TP®]Eð§QÒ˜›Y{{*Én¼%†Ú¯¿ÃαÒ2íÓÝöuXh2GžØ­:µò'gBykGdïØ#øžb"òf{Û^Šûü”#$ï…jSý''æŽDÒâXE䪳ltkÍM+B{³je—gý³å;[%f?ŠD5ð„8…×Ð&ÀLeOõ0ÓaˆV†Þ× mÃn ¼3Ö““ï8œyÛWâŠÄNÑïßE~ˆ¸´pJŵÕ#’8ˆù†?”´; ÍË=C/~—&Ú|¡à"%ð{¤eu̧̩UöÝ®Á¡¼MHÚˆÇöiU$·Ü + ½iÁ@—‡×53Ô e/ü%˜(ýrR}±-úO9škG‘¶;km!ù—£ËJi‡\ + ¯‚ ‘DÞ{e8àæ–ŠÁãD“<«õo£™að{Ë;SÚ1hÀ÷.üœIf×ÆÄíìs¬—9дÀxéf±›ú©×A+kó =Ni¬:íÚí«v}>Á|V€sóÞ+\•/ =–ZQ¼b5ú*çÜuå¡ü¯ºN'Ë‚¾\1!H¯Õ÷CaiÜx–òð}~ÃÃÏñΧmxIÔ³ÛQ ¤¿Êñ”+Q utNà8‘—ˆä.3ÓîwLÉccÞÍÕˆÞ)»Up£É[ÔÈGÅòöxo5s†öÓ->ÇxãgÚUì(zs©ëâØátÈFÕöÜU–Ì5\j^φ5Êcã ˆbÄ5]÷Ø\å»aµb' ~XL¢iú¥´ EUçÃØE™ßcüÅš|®iþÑm9Ê} Ç&"3ô›õŒxly‚îRߥ±Ø0¯DV›kr’ï­¥LÄ’uõ uÜ…£½~sgq…Rûrp¶0£´‹„ÑG¸ò¡ÞŸ}½Wò𽇦Ö-[}[Æþ¥0J "Hñ‰´¨ýô\]·v;˜Q¿9 ‚w÷Ùw³é¨dÑdœäù}“6‡v×»)Þ¿ý¼GüÞ78@ÿÆúw§ÕÕ0åôÝ~Zý2ò&òž5“ûgë Çy²£™ X·³^RãžW«Ç/U»}ÑâÔàý<É+o†¸g¼vOR4²¼k–ˆm• P1"É{|q©TîÝ5H»2k”†b×=ò t)¨ô=zî5Ñ$‡ÛfP–´r³‰|ÅÄžG7L*VûµQ‘‘\2:Ó‡["¤jʼn\û±,`Ii}˼¸hš„Eÿ.ù†ésë3.^ïŒsdVöšÞàã+~§Íeàî ̦2*Ã$½ˆ$ + F·vãy÷Ы¹WoHú"Ôqùp/z©ô”.¥'YÙ'§]ÙÝ´¹Õ‡€Ä4Ö‹´§xùª¨œ$c7Îð•zï#¤SÍ1ÐáT:ì#<ód–¹®«s©VJ éÇz?·0¦¹1³òè_è£ÖˆTµœ¸MÔ/¬Ûl;é½ÌÌÖ6Âåj¼£ + ¿?â´ÉبԞâ­ÔgŠLnåñ±Å~õž0-ãK1¸7?&ZëUÙ£¡t“ãá`¦ÑŽÿèÚÅ*1D†(¹å&–“ªòÆóMm˜øBâ𒱓’’†å~¯/êѶ+tˆÎk—ÎYÙú¼ý]Pee¼¼FeÈ…?qóijÓŦCd·3+ýžuÆjÒDå)mk6ü½–˜–¡ëN—Æiï¨gÉU}¿÷ÆÎ ñι²C-õˆÊ³aâê.;gúü€ŸÏð½T@Öd(l‚KÔ§öùçúÅ*s2õʙʽ€v + ûý£‚âDÓ'ô3‚´s¥eA‡ÃÂ~ + òê‚ï—- + DÕÏ&±d"’M¸*;ÇߤSáÔ»èwÂb%tº @§ßY[/Ÿ®?ãÃ¥D‡×Wà´¢ lTˆ[¸N¬jô5Äbfˆ÷ô_R`)|½gò{û)zÀ‚‚A§|§Íuœw¯Gòã“tÑJ ODA\Ôãù8Je:§¹Õ^@?t¼’àhК~K0/ô8×J¸)}tbcc„ÖN{CŒº°Ú9ºip³ÜâíÍù¨Ä0uL}ÀÑðqV˜—«6ìhb¸@¥x­ÅŠ_J…Øñ×…¬`醋A9ƒë´Üpåzg·'\*^Ñò6ÎCÒÄuÕS{?'a÷¨ddîê<—`0uÕÛó Hì#/†»æWè}U/fX)<,0}ëv,üÜsðãkü3š ‡‰Ø0âÉ8©NI¿·…„gúÂî:­q%ñÇæö|Æ©z7\µ" ´ ü" Ø2Æôøu8z’%^o{Ü+8H7rù@fT9Õ^§·ªÌææðOq‡·èØʇ8ÄÞ…Eí¤C"$)~¢†èí NÍu`‰Djé³R¬ îo«¯Õ6|˜#s±Ó‘¾¸¾`…ÑžN±+rz»vŽhc5–0ûhÖY®ß?¤Bt„¬R 2øñ¨¸jo^°™yß•õ²ù㼚4”\R1-Í]JCµì§´û®ií-F!•s¢Òè¤V¢µH°°–HÕÏ™n)m;'ÁJëöPŽ©& †1³/ÛaÈ`¿j®Í¥¿åÅùýžž”¶"AX½äÚãáaçE«­±,_5nÖ‘µöj¥ìêæj•n:Â-Š¢dº„l¤»Ž¿’kê>V 9'¸ìð)-¥C÷­;+]ÂÇëG”=²Ç(>pƒ^¸'¾ÜÉÇ$λ2 + •7 ìÎí2Ș7òúªêêŒóZfFÕœX­¬Q !Ùaòø6––¾80ÑN ÛnDÔÓU) ´úÛF¬U£ i’yF–”Ç2Xd©m³ó0Àw˜Þ + Ä®’¥Ïä•ö_o™íì,áõtßÍ]”°þà^×,ó'/ß×êçú…±»ÌñZÊÊÚH=šlžòeÑ6½Š + úëDnûYæ ­È^å,í’ËjÐpîÔƧ€ÚOÆ„èmšóY{1¼åöË›œý(F]åˆä͚Ь¡HÛQ³mƒ‡²Å%ÉÐ,ñƒéá;SŠ‰Õ|Ç –?7c™Ö“,a…©cÜ·›¨þ¯îà™¯Ò!8<Ú; Çc#ZRƒb cb{o´Ûë¼V«ïMnP÷![0\’ÐG7šb@»@oedI9‡º5áÒ$ݧk†KÝzŸäû¬1¾rOÜ…ÍrŒ0rúäÛÅ'o¤HyéÇòíùN„\IË/@­/§LUÒõVn¢Øm˜é¿‰ˆb(‘Õü»^2°ë^ Q>¤+m¯œöŽ]šs]¡§Ô q!cý…ÊÅß°î/{ʨ]ç«üò£é˜C»ßüz>ö÷›9XÄ3ô ÙÔ?Ä9ø*Ô°[ï*÷Ež#z¹ƒ®»ÿîëC0ä4ÅÉö‘ÜúáÈ‹Ísaým¾' +ÕhZ£U‘J-xFj ðо H×_YKú5‹AjMyˆÊ©¨£çisûñÀÿC ‰!­Ò þ>“¿úz‰nbQ¶ÅƒôíŠHÀÎ6Íçö+ Ñ¶ŸÆ«Æ¼ÔqŸîú±oﶴüµŒ¦X']æëe²ŸlV°÷ÔóÙQ;ÉP(í»%3ÏC‘ + ‰ Š–†49²jGÁàÖú5v~ga + ,#ÆfƒÇ$@^{üüQ ØYŠE¥ÊFJ)1JŠdóÂÁ¯w›Œ¿ Ñ·qþ,{Çà±”‘^­D²‡uMÞ‚ïXDi´I„ÀU7²ÔÑ@3ÆÞèo3ûˆ0Dxv¹¬´£ åî²ç/õTnÆ®üòî²]H+bx@x)Òy·§á%­ð›’}Ó?ü + «Áy8ƒd/4¡Oy‚bå§RwÒÝúÃ<|“°ì2qñU@T³ñ7»óâøWàÒ•¨> + fµ{Å·-’=¢y$àÒÛg>@Ô³KÕÍÞ'Ø÷æ3þÖ³ƒÐòâÄGO!HÞ“úÃKÈ>SõSkT¤¡j´MiÖû¸UK^Ýùü½Ùï1L²y¯*yŸáe“6qÓ^ÃÞmËXP”“à±—2˜©×¾ê³ÿ_hÿ?àÿ‰s[°©³«ƒ©³ ÚbPO; + endstream + endobj + 329 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-35 -250 1148 750] + /FontName/VUDYBG+CMTI9 + /ItalicAngle -14.04 + /StemV 70 + /FontFile 328 0 R + /Flags 68 + >> + endobj + 328 0 obj + << + /Filter[/FlateDecode] + /Length1 720 + /Length2 1051 + /Length3 533 + /Length 1582 + >> + stream + xÚí’{8TiÇQQC"”t™·Â’Œ32æ"ËF#Dä–bÌ98Ìœ©cfÌ(YéâÒÒMV®•¥Û’Š'™Tt/“¶%Ée·Øt}Bl‰ì`ÛžÕþ³Ïþ·Ïž÷Ÿóûþ¾ï÷ý¼¿sLzùX2aaÂb"K2‰Ì,_IÁÄ„…#\*Äœ¹"„Èt:0Å€LÖdDc@TÁ°„d8)f,óQ0Žò¸ðàŠ"2„Çå!ED2L>¬ÝV#1.A`@&å‰@b«Q&.ÔqoøÔ’ xŒ’ ˜)9Í’b|€‘p‚•§Py¢dùÇXC51œ-æó=¹‚ÑøÑ9}Ñæ + P¾ìƒP°A,Bpà!„›hõGÆÙ< &v9".å1±>,É6$Èf\Gcب½P/„sù1ȘŽ`ðDåðÆ8¬üÖ8:¹ZŒ×ñ¦ÅD¾² €>»ÇjòçZ9#•‚µ ‚ÈJ£r}z[7á0Œ'„Q,øˆ¸ÌÅá?…/¡œœ„ÒM–Ë(ÀÒš2Ù†¨(þ¯Æ5ºQŒpœ‚ š5uLå‰qÁDcÿ‚òŸêpT9#‘"'K/8B!ñím_µ¨_O÷¸ô­c×ÐÒ€ŽÝƧíL³.*ä¬.S·¦¹ú½¨!~½}¦73ìLµ3‡ôUž÷¬V•§Á¤Ð…eªÙé­’ÊC{ ª Š†XšÃÎp…ƒX#$üºéФ„ÚåoÎÎ + ÝÛü<ï¹ìòcâí ¨lÏ ôàkMæ†{:$™wܵ»yHš\›¨È ¶Q.•RÚûº[Š›EoýOÑÖÏÒ½´¢J!¡;\,T^üÀéîSÕPJÈ3µró£Æ×eny[ØŒ„V§a¼ªÅáDݯëv›¤Þ¼üò‚­où¤¢ä!ùÚpŽ¿~´4êHöµz_X"OýÐÏ'“ŠnØèLš.Ò6˜å—ÔÍÈ”½44®C)¯\§°â¸;ê«@vêú]-G[}†[¦:Üðí¢ 5ŠÏ¤Ùۻѣˎ™~ÈOhÊù¥ÌÂˌ㥾¯¥-DåŒaPšaaå*³‚eý=/_è7íZÔÐÞ¨Á¯*ŸŸ²Ïp;ðy¸ËVAÐ|âúªlgìfÈÎmÊû’RoGEÞ jêôT…7ŠÍñht/ {N|«~kgìîŽ{­†'ÃÌv¼ãütÈéö<£«ƒ…¥SÞПԿÄÚ×d|qêþëªÄ.îpwJÞ:Ï‘f.aaùëìéÓ’â[ ©~ + šZµËàAíýœY¯æ,ë‹DÇ sÒŠŸ¶=<=·¶‹Ñ™Õ¶¦vih qqxÜÙÄ…K¡gÝGm[ôÇVª ̘B“c9WšŸnŒ =Áˆ“xÏ>ÆŽ‰›%Y[_¿D1ˆ{>jj8WW•bØ%ð/ˆ’(L- ´p­ò÷%ßh&Í7TÈbVæ‘Šg­H40È.ŠrP!Ë›|w¾I£¹Å]¿1õC”fiV¤{G§}ÇkžórkVïäìJ_ð¾&ôÇŠ;æÛØ —µÍVÛÅ4Ô¨¿h‹Ò˜FŸf X5¹ò18É;u‰Åw+;ÓÛ¯$/£>ãw{.sÈ´/´ø¼ž {|ÍëòŒÖ’À}¼;@ÿò!üðŸàñ.. + ¸x4ð;VQJ + endstream + endobj + 1 0 obj + << + /Creator( TeX output 2004.07.27:0931) + /Producer(dvipdfm 0.13.2c, Copyright \251 1998, by Mark A. Wicks) + /CreationDate(D:20040727105641+00'00') + >> + endobj + 5 0 obj + << + /Type/Page + /Resources 6 0 R + /Contents[17 0 R 4 0 R 18 0 R 19 0 R] + /Parent 354 0 R + >> + endobj + 21 0 obj + << + /Type/Page + /Resources 22 0 R + /Contents[17 0 R 4 0 R 26 0 R 19 0 R] + /Parent 354 0 R + >> + endobj + 28 0 obj + << + /Type/Page + /Resources 29 0 R + /Contents[17 0 R 4 0 R 37 0 R 19 0 R] + /Parent 354 0 R + >> + endobj + 39 0 obj + << + /Type/Page + /Resources 40 0 R + /Contents[17 0 R 4 0 R 41 0 R 19 0 R] + /Parent 354 0 R + >> + endobj + 354 0 obj + << + /Type/Pages + /Count 4 + /Kids[5 0 R 21 0 R 28 0 R 39 0 R] + /Parent 353 0 R + >> + endobj + 43 0 obj + << + /Type/Page + /Resources 44 0 R + /Contents[17 0 R 4 0 R 60 0 R 19 0 R] + /Parent 355 0 R + >> + endobj + 62 0 obj + << + /Type/Page + /Resources 63 0 R + /Contents[17 0 R 4 0 R 64 0 R 19 0 R] + /Parent 355 0 R + >> + endobj + 66 0 obj + << + /Type/Page + /Resources 67 0 R + /Contents[17 0 R 4 0 R 68 0 R 19 0 R] + /Parent 355 0 R + >> + endobj + 70 0 obj + << + /Type/Page + /Resources 71 0 R + /Contents[17 0 R 4 0 R 72 0 R 19 0 R] + /Parent 356 0 R + >> + endobj + 74 0 obj + << + /Type/Page + /Resources 75 0 R + /Contents[17 0 R 4 0 R 76 0 R 19 0 R] + /Parent 356 0 R + >> + endobj + 356 0 obj + << + /Type/Pages + /Count 2 + /Kids[70 0 R 74 0 R] + /Parent 355 0 R + >> + endobj + 355 0 obj + << + /Type/Pages + /Count 5 + /Kids[43 0 R 62 0 R 66 0 R 356 0 R] + /Parent 353 0 R + >> + endobj + 78 0 obj + << + /Type/Page + /Resources 79 0 R + /Contents[17 0 R 4 0 R 80 0 R 19 0 R] + /Parent 357 0 R + >> + endobj + 82 0 obj + << + /Type/Page + /Resources 83 0 R + /Contents[17 0 R 4 0 R 84 0 R 19 0 R] + /Parent 357 0 R + >> + endobj + 86 0 obj + << + /Type/Page + /Resources 87 0 R + /Contents[17 0 R 4 0 R 88 0 R 19 0 R] + /Parent 357 0 R + >> + endobj + 90 0 obj + << + /Type/Page + /Resources 91 0 R + /Contents[17 0 R 4 0 R 92 0 R 19 0 R] + /Parent 357 0 R + >> + endobj + 357 0 obj + << + /Type/Pages + /Count 4 + /Kids[78 0 R 82 0 R 86 0 R 90 0 R] + /Parent 353 0 R + >> + endobj + 94 0 obj + << + /Type/Page + /Resources 95 0 R + /Contents[17 0 R 4 0 R 96 0 R 19 0 R] + /Parent 358 0 R + >> + endobj + 98 0 obj + << + /Type/Page + /Resources 99 0 R + /Contents[17 0 R 4 0 R 100 0 R 19 0 R] + /Parent 358 0 R + >> + endobj + 102 0 obj + << + /Type/Page + /Resources 103 0 R + /Contents[17 0 R 4 0 R 104 0 R 19 0 R] + /Parent 358 0 R + >> + endobj + 106 0 obj + << + /Type/Page + /Resources 107 0 R + /Contents[17 0 R 4 0 R 108 0 R 19 0 R] + /Parent 359 0 R + >> + endobj + 110 0 obj + << + /Type/Page + /Resources 111 0 R + /Contents[17 0 R 4 0 R 112 0 R 19 0 R] + /Parent 359 0 R + >> + endobj + 359 0 obj + << + /Type/Pages + /Count 2 + /Kids[106 0 R 110 0 R] + /Parent 358 0 R + >> + endobj + 358 0 obj + << + /Type/Pages + /Count 5 + /Kids[94 0 R 98 0 R 102 0 R 359 0 R] + /Parent 353 0 R + >> + endobj + 353 0 obj + << + /Type/Pages + /Count 18 + /Kids[354 0 R 355 0 R 357 0 R 358 0 R] + /Parent 3 0 R + >> + endobj + 114 0 obj + << + /Type/Page + /Resources 115 0 R + /Contents[17 0 R 4 0 R 116 0 R 19 0 R] + /Parent 361 0 R + >> + endobj + 118 0 obj + << + /Type/Page + /Resources 119 0 R + /Contents[17 0 R 4 0 R 120 0 R 19 0 R] + /Parent 361 0 R + >> + endobj + 122 0 obj + << + /Type/Page + /Resources 123 0 R + /Contents[17 0 R 4 0 R 124 0 R 19 0 R] + /Parent 361 0 R + >> + endobj + 126 0 obj + << + /Type/Page + /Resources 127 0 R + /Contents[17 0 R 4 0 R 128 0 R 19 0 R] + /Parent 361 0 R + >> + endobj + 361 0 obj + << + /Type/Pages + /Count 4 + /Kids[114 0 R 118 0 R 122 0 R 126 0 R] + /Parent 360 0 R + >> + endobj + 130 0 obj + << + /Type/Page + /Resources 131 0 R + /Contents[17 0 R 4 0 R 132 0 R 19 0 R] + /Parent 362 0 R + >> + endobj + 134 0 obj + << + /Type/Page + /Resources 135 0 R + /Contents[17 0 R 4 0 R 136 0 R 19 0 R] + /Parent 362 0 R + >> + endobj + 138 0 obj + << + /Type/Page + /Resources 139 0 R + /Contents[17 0 R 4 0 R 140 0 R 19 0 R] + /Parent 362 0 R + >> + endobj + 142 0 obj + << + /Type/Page + /Resources 143 0 R + /Contents[17 0 R 4 0 R 144 0 R 19 0 R] + /Parent 363 0 R + >> + endobj + 146 0 obj + << + /Type/Page + /Resources 147 0 R + /Contents[17 0 R 4 0 R 148 0 R 19 0 R] + /Parent 363 0 R + >> + endobj + 363 0 obj + << + /Type/Pages + /Count 2 + /Kids[142 0 R 146 0 R] + /Parent 362 0 R + >> + endobj + 362 0 obj + << + /Type/Pages + /Count 5 + /Kids[130 0 R 134 0 R 138 0 R 363 0 R] + /Parent 360 0 R + >> + endobj + 150 0 obj + << + /Type/Page + /Resources 151 0 R + /Contents[17 0 R 4 0 R 155 0 R 19 0 R] + /Parent 364 0 R + >> + endobj + 157 0 obj + << + /Type/Page + /Resources 158 0 R + /Contents[17 0 R 4 0 R 159 0 R 19 0 R] + /Parent 364 0 R + >> + endobj + 161 0 obj + << + /Type/Page + /Resources 162 0 R + /Contents[17 0 R 4 0 R 163 0 R 19 0 R] + /Parent 364 0 R + >> + endobj + 165 0 obj + << + /Type/Page + /Resources 166 0 R + /Contents[17 0 R 4 0 R 167 0 R 19 0 R] + /Parent 365 0 R + >> + endobj + 169 0 obj + << + /Type/Page + /Resources 170 0 R + /Contents[17 0 R 4 0 R 174 0 R 19 0 R] + /Parent 365 0 R + >> + endobj + 365 0 obj + << + /Type/Pages + /Count 2 + /Kids[165 0 R 169 0 R] + /Parent 364 0 R + >> + endobj + 364 0 obj + << + /Type/Pages + /Count 5 + /Kids[150 0 R 157 0 R 161 0 R 365 0 R] + /Parent 360 0 R + >> + endobj + 176 0 obj + << + /Type/Page + /Resources 177 0 R + /Contents[17 0 R 4 0 R 178 0 R 19 0 R] + /Parent 366 0 R + >> + endobj + 180 0 obj + << + /Type/Page + /Resources 181 0 R + /Contents[17 0 R 4 0 R 182 0 R 19 0 R] + /Parent 366 0 R + >> + endobj + 184 0 obj + << + /Type/Page + /Resources 185 0 R + /Contents[17 0 R 4 0 R 186 0 R 19 0 R] + /Parent 366 0 R + >> + endobj + 188 0 obj + << + /Type/Page + /Resources 189 0 R + /Contents[17 0 R 4 0 R 193 0 R 19 0 R] + /Parent 367 0 R + >> + endobj + 195 0 obj + << + /Type/Page + /Resources 196 0 R + /Contents[17 0 R 4 0 R 197 0 R 19 0 R] + /Parent 367 0 R + >> + endobj + 367 0 obj + << + /Type/Pages + /Count 2 + /Kids[188 0 R 195 0 R] + /Parent 366 0 R + >> + endobj + 366 0 obj + << + /Type/Pages + /Count 5 + /Kids[176 0 R 180 0 R 184 0 R 367 0 R] + /Parent 360 0 R + >> + endobj + 360 0 obj + << + /Type/Pages + /Count 19 + /Kids[361 0 R 362 0 R 364 0 R 366 0 R] + /Parent 3 0 R + >> + endobj + 199 0 obj + << + /Type/Page + /Resources 200 0 R + /Contents[17 0 R 4 0 R 201 0 R 19 0 R] + /Parent 369 0 R + >> + endobj + 203 0 obj + << + /Type/Page + /Resources 204 0 R + /Contents[17 0 R 4 0 R 205 0 R 19 0 R] + /Parent 369 0 R + >> + endobj + 207 0 obj + << + /Type/Page + /Resources 208 0 R + /Contents[17 0 R 4 0 R 209 0 R 19 0 R] + /Parent 369 0 R + >> + endobj + 211 0 obj + << + /Type/Page + /Resources 212 0 R + /Contents[17 0 R 4 0 R 213 0 R 19 0 R] + /Parent 369 0 R + >> + endobj + 369 0 obj + << + /Type/Pages + /Count 4 + /Kids[199 0 R 203 0 R 207 0 R 211 0 R] + /Parent 368 0 R + >> + endobj + 215 0 obj + << + /Type/Page + /Resources 216 0 R + /Contents[17 0 R 4 0 R 217 0 R 19 0 R] + /Parent 370 0 R + >> + endobj + 219 0 obj + << + /Type/Page + /Resources 220 0 R + /Contents[17 0 R 4 0 R 221 0 R 19 0 R] + /Parent 370 0 R + >> + endobj + 223 0 obj + << + /Type/Page + /Resources 224 0 R + /Contents[17 0 R 4 0 R 225 0 R 19 0 R] + /Parent 370 0 R + >> + endobj + 227 0 obj + << + /Type/Page + /Resources 228 0 R + /Contents[17 0 R 4 0 R 229 0 R 19 0 R] + /Parent 371 0 R + >> + endobj + 231 0 obj + << + /Type/Page + /Resources 232 0 R + /Contents[17 0 R 4 0 R 233 0 R 19 0 R] + /Parent 371 0 R + >> + endobj + 371 0 obj + << + /Type/Pages + /Count 2 + /Kids[227 0 R 231 0 R] + /Parent 370 0 R + >> + endobj + 370 0 obj + << + /Type/Pages + /Count 5 + /Kids[215 0 R 219 0 R 223 0 R 371 0 R] + /Parent 368 0 R + >> + endobj + 235 0 obj + << + /Type/Page + /Resources 236 0 R + /Contents[17 0 R 4 0 R 237 0 R 19 0 R] + /Parent 372 0 R + >> + endobj + 239 0 obj + << + /Type/Page + /Resources 240 0 R + /Contents[17 0 R 4 0 R 241 0 R 19 0 R] + /Parent 372 0 R + >> + endobj + 243 0 obj + << + /Type/Page + /Resources 244 0 R + /Contents[17 0 R 4 0 R 245 0 R 19 0 R] + /Parent 372 0 R + >> + endobj + 247 0 obj + << + /Type/Page + /Resources 248 0 R + /Contents[17 0 R 4 0 R 249 0 R 19 0 R] + /Parent 372 0 R + >> + endobj + 372 0 obj + << + /Type/Pages + /Count 4 + /Kids[235 0 R 239 0 R 243 0 R 247 0 R] + /Parent 368 0 R + >> + endobj + 251 0 obj + << + /Type/Page + /Resources 252 0 R + /Contents[17 0 R 4 0 R 253 0 R 19 0 R] + /Parent 373 0 R + >> + endobj + 255 0 obj + << + /Type/Page + /Resources 256 0 R + /Contents[17 0 R 4 0 R 257 0 R 19 0 R] + /Parent 373 0 R + >> + endobj + 259 0 obj + << + /Type/Page + /Resources 260 0 R + /Contents[17 0 R 4 0 R 261 0 R 19 0 R] + /Parent 373 0 R + >> + endobj + 263 0 obj + << + /Type/Page + /Resources 264 0 R + /Contents[17 0 R 4 0 R 265 0 R 19 0 R] + /Parent 374 0 R + >> + endobj + 267 0 obj + << + /Type/Page + /Resources 268 0 R + /Contents[17 0 R 4 0 R 269 0 R 19 0 R] + /Parent 374 0 R + >> + endobj + 374 0 obj + << + /Type/Pages + /Count 2 + /Kids[263 0 R 267 0 R] + /Parent 373 0 R + >> + endobj + 373 0 obj + << + /Type/Pages + /Count 5 + /Kids[251 0 R 255 0 R 259 0 R 374 0 R] + /Parent 368 0 R + >> + endobj + 368 0 obj + << + /Type/Pages + /Count 18 + /Kids[369 0 R 370 0 R 372 0 R 373 0 R] + /Parent 3 0 R + >> + endobj + 271 0 obj + << + /Type/Page + /Resources 272 0 R + /Contents[17 0 R 4 0 R 273 0 R 19 0 R] + /Parent 376 0 R + >> + endobj + 275 0 obj + << + /Type/Page + /Resources 276 0 R + /Contents[17 0 R 4 0 R 277 0 R 19 0 R] + /Parent 376 0 R + >> + endobj + 279 0 obj + << + /Type/Page + /Resources 280 0 R + /Contents[17 0 R 4 0 R 281 0 R 19 0 R] + /Parent 376 0 R + >> + endobj + 283 0 obj + << + /Type/Page + /Resources 284 0 R + /Contents[17 0 R 4 0 R 285 0 R 19 0 R] + /Parent 376 0 R + >> + endobj + 376 0 obj + << + /Type/Pages + /Count 4 + /Kids[271 0 R 275 0 R 279 0 R 283 0 R] + /Parent 375 0 R + >> + endobj + 287 0 obj + << + /Type/Page + /Resources 288 0 R + /Contents[17 0 R 4 0 R 289 0 R 19 0 R] + /Parent 377 0 R + >> + endobj + 291 0 obj + << + /Type/Page + /Resources 292 0 R + /Contents[17 0 R 4 0 R 293 0 R 19 0 R] + /Parent 377 0 R + >> + endobj + 295 0 obj + << + /Type/Page + /Resources 296 0 R + /Contents[17 0 R 4 0 R 297 0 R 19 0 R] + /Parent 377 0 R + >> + endobj + 299 0 obj + << + /Type/Page + /Resources 300 0 R + /Contents[17 0 R 4 0 R 301 0 R 19 0 R] + /Parent 378 0 R + >> + endobj + 303 0 obj + << + /Type/Page + /Resources 304 0 R + /Contents[17 0 R 4 0 R 305 0 R 19 0 R] + /Parent 378 0 R + >> + endobj + 378 0 obj + << + /Type/Pages + /Count 2 + /Kids[299 0 R 303 0 R] + /Parent 377 0 R + >> + endobj + 377 0 obj + << + /Type/Pages + /Count 5 + /Kids[287 0 R 291 0 R 295 0 R 378 0 R] + /Parent 375 0 R + >> + endobj + 307 0 obj + << + /Type/Page + /Resources 308 0 R + /Contents[17 0 R 4 0 R 309 0 R 19 0 R] + /Parent 379 0 R + >> + endobj + 311 0 obj + << + /Type/Page + /Resources 312 0 R + /Contents[17 0 R 4 0 R 313 0 R 19 0 R] + /Parent 379 0 R + >> + endobj + 315 0 obj + << + /Type/Page + /Resources 316 0 R + /Contents[17 0 R 4 0 R 317 0 R 19 0 R] + /Parent 379 0 R + >> + endobj + 319 0 obj + << + /Type/Page + /Resources 320 0 R + /Contents[17 0 R 4 0 R 321 0 R 19 0 R] + /Parent 380 0 R + >> + endobj + 323 0 obj + << + /Type/Page + /Resources 324 0 R + /Contents[17 0 R 4 0 R 331 0 R 19 0 R] + /Parent 380 0 R + >> + endobj + 380 0 obj + << + /Type/Pages + /Count 2 + /Kids[319 0 R 323 0 R] + /Parent 379 0 R + >> + endobj + 379 0 obj + << + /Type/Pages + /Count 5 + /Kids[307 0 R 311 0 R 315 0 R 380 0 R] + /Parent 375 0 R + >> + endobj + 333 0 obj + << + /Type/Page + /Resources 334 0 R + /Contents[17 0 R 4 0 R 335 0 R 19 0 R] + /Parent 381 0 R + >> + endobj + 337 0 obj + << + /Type/Page + /Resources 338 0 R + /Contents[17 0 R 4 0 R 339 0 R 19 0 R] + /Parent 381 0 R + >> + endobj + 341 0 obj + << + /Type/Page + /Resources 342 0 R + /Contents[17 0 R 4 0 R 343 0 R 19 0 R] + /Parent 381 0 R + >> + endobj + 345 0 obj + << + /Type/Page + /Resources 346 0 R + /Contents[17 0 R 4 0 R 347 0 R 19 0 R] + /Parent 382 0 R + >> + endobj + 349 0 obj + << + /Type/Page + /Resources 350 0 R + /Contents[17 0 R 4 0 R 351 0 R 19 0 R] + /Parent 382 0 R + >> + endobj + 382 0 obj + << + /Type/Pages + /Count 2 + /Kids[345 0 R 349 0 R] + /Parent 381 0 R + >> + endobj + 381 0 obj + << + /Type/Pages + /Count 5 + /Kids[333 0 R 337 0 R 341 0 R 382 0 R] + /Parent 375 0 R + >> + endobj + 375 0 obj + << + /Type/Pages + /Count 19 + /Kids[376 0 R 377 0 R 379 0 R 381 0 R] + /Parent 3 0 R + >> + endobj + 3 0 obj + << + /Type/Pages + /Count 74 + /Kids[353 0 R 360 0 R 368 0 R 375 0 R] + /MediaBox[0 0 612 792] + >> + endobj + 17 0 obj + << + /Length 1 + >> + stream + + endstream + endobj + 19 0 obj + << + /Length 1 + >> + stream + + endstream + endobj + 4 0 obj + << + /Length 30 + >> + stream + 1.00028 0 0 1.00028 72 720 cm + endstream + endobj + 383 0 obj + << + >> + endobj + 384 0 obj + null + endobj + 385 0 obj + << + >> + endobj + 2 0 obj + << + /Type/Catalog + /Pages 3 0 R + /Outlines 383 0 R + /Threads 384 0 R + /Names 385 0 R + >> + endobj + xref + 0 386 + 0000000000 65535 f + 0000292505 00000 n + 0000303757 00000 n + 0000303405 00000 n + 0000303610 00000 n + 0000292669 00000 n + 0000003967 00000 n + 0000000009 00000 n + 0000173010 00000 n + 0000172823 00000 n + 0000000908 00000 n + 0000183898 00000 n + 0000183710 00000 n + 0000001853 00000 n + 0000200402 00000 n + 0000200216 00000 n + 0000002770 00000 n + 0000303510 00000 n + 0000003497 00000 n + 0000303560 00000 n + 0000003912 00000 n + 0000292772 00000 n + 0000006204 00000 n + 0000216670 00000 n + 0000216475 00000 n + 0000004028 00000 n + 0000004962 00000 n + 0000006160 00000 n + 0000292877 00000 n + 0000011161 00000 n + 0000006266 00000 n + 0000218210 00000 n + 0000218013 00000 n + 0000007351 00000 n + 0000220101 00000 n + 0000219906 00000 n + 0000008342 00000 n + 0000009323 00000 n + 0000011095 00000 n + 0000292982 00000 n + 0000012055 00000 n + 0000011223 00000 n + 0000011989 00000 n + 0000293181 00000 n + 0000020528 00000 n + 0000226402 00000 n + 0000226214 00000 n + 0000012117 00000 n + 0000231212 00000 n + 0000231018 00000 n + 0000013021 00000 n + 0000238952 00000 n + 0000238758 00000 n + 0000013675 00000 n + 0000240620 00000 n + 0000240434 00000 n + 0000014657 00000 n + 0000246792 00000 n + 0000246599 00000 n + 0000015658 00000 n + 0000016579 00000 n + 0000020416 00000 n + 0000293286 00000 n + 0000022993 00000 n + 0000020590 00000 n + 0000022903 00000 n + 0000293391 00000 n + 0000026083 00000 n + 0000023055 00000 n + 0000025971 00000 n + 0000293496 00000 n + 0000028900 00000 n + 0000026145 00000 n + 0000028799 00000 n + 0000293601 00000 n + 0000031335 00000 n + 0000028962 00000 n + 0000031257 00000 n + 0000293883 00000 n + 0000033914 00000 n + 0000031397 00000 n + 0000033836 00000 n + 0000293988 00000 n + 0000036232 00000 n + 0000033976 00000 n + 0000036176 00000 n + 0000294093 00000 n + 0000038607 00000 n + 0000036294 00000 n + 0000038506 00000 n + 0000294198 00000 n + 0000041299 00000 n + 0000038669 00000 n + 0000041221 00000 n + 0000294398 00000 n + 0000042008 00000 n + 0000041361 00000 n + 0000041941 00000 n + 0000294503 00000 n + 0000042898 00000 n + 0000042070 00000 n + 0000042853 00000 n + 0000294609 00000 n + 0000043998 00000 n + 0000042961 00000 n + 0000043953 00000 n + 0000294717 00000 n + 0000045629 00000 n + 0000044062 00000 n + 0000045561 00000 n + 0000294825 00000 n + 0000047216 00000 n + 0000045693 00000 n + 0000047159 00000 n + 0000295211 00000 n + 0000049181 00000 n + 0000047280 00000 n + 0000049080 00000 n + 0000295319 00000 n + 0000051059 00000 n + 0000049245 00000 n + 0000050980 00000 n + 0000295427 00000 n + 0000053654 00000 n + 0000051123 00000 n + 0000053552 00000 n + 0000295535 00000 n + 0000055690 00000 n + 0000053718 00000 n + 0000055588 00000 n + 0000295742 00000 n + 0000058173 00000 n + 0000055754 00000 n + 0000058060 00000 n + 0000295850 00000 n + 0000058436 00000 n + 0000058237 00000 n + 0000058402 00000 n + 0000295958 00000 n + 0000061088 00000 n + 0000058500 00000 n + 0000060975 00000 n + 0000296066 00000 n + 0000064006 00000 n + 0000061152 00000 n + 0000063904 00000 n + 0000296174 00000 n + 0000065821 00000 n + 0000064070 00000 n + 0000065753 00000 n + 0000296464 00000 n + 0000069372 00000 n + 0000257886 00000 n + 0000257694 00000 n + 0000065885 00000 n + 0000066824 00000 n + 0000069280 00000 n + 0000296572 00000 n + 0000072267 00000 n + 0000069436 00000 n + 0000072186 00000 n + 0000296680 00000 n + 0000074806 00000 n + 0000072331 00000 n + 0000074748 00000 n + 0000296788 00000 n + 0000076129 00000 n + 0000074870 00000 n + 0000076071 00000 n + 0000296896 00000 n + 0000079991 00000 n + 0000265599 00000 n + 0000265410 00000 n + 0000076193 00000 n + 0000077136 00000 n + 0000079863 00000 n + 0000297186 00000 n + 0000082822 00000 n + 0000080055 00000 n + 0000082728 00000 n + 0000297294 00000 n + 0000085646 00000 n + 0000082886 00000 n + 0000085563 00000 n + 0000297402 00000 n + 0000088403 00000 n + 0000085710 00000 n + 0000088309 00000 n + 0000297510 00000 n + 0000092047 00000 n + 0000267653 00000 n + 0000267466 00000 n + 0000088467 00000 n + 0000089196 00000 n + 0000091940 00000 n + 0000297618 00000 n + 0000095152 00000 n + 0000092111 00000 n + 0000095069 00000 n + 0000298006 00000 n + 0000098073 00000 n + 0000095216 00000 n + 0000097979 00000 n + 0000298114 00000 n + 0000101377 00000 n + 0000098137 00000 n + 0000101283 00000 n + 0000298222 00000 n + 0000104203 00000 n + 0000101441 00000 n + 0000104109 00000 n + 0000298330 00000 n + 0000107603 00000 n + 0000104267 00000 n + 0000107498 00000 n + 0000298537 00000 n + 0000108828 00000 n + 0000107667 00000 n + 0000108772 00000 n + 0000298645 00000 n + 0000111537 00000 n + 0000108892 00000 n + 0000111470 00000 n + 0000298753 00000 n + 0000114359 00000 n + 0000111601 00000 n + 0000114276 00000 n + 0000298861 00000 n + 0000117445 00000 n + 0000114423 00000 n + 0000117351 00000 n + 0000298969 00000 n + 0000120560 00000 n + 0000117509 00000 n + 0000120466 00000 n + 0000299259 00000 n + 0000123962 00000 n + 0000120624 00000 n + 0000123868 00000 n + 0000299367 00000 n + 0000127563 00000 n + 0000124026 00000 n + 0000127493 00000 n + 0000299475 00000 n + 0000130756 00000 n + 0000127627 00000 n + 0000130686 00000 n + 0000299583 00000 n + 0000133706 00000 n + 0000130820 00000 n + 0000133625 00000 n + 0000299790 00000 n + 0000134612 00000 n + 0000133770 00000 n + 0000134543 00000 n + 0000299898 00000 n + 0000135894 00000 n + 0000134676 00000 n + 0000135847 00000 n + 0000300006 00000 n + 0000136825 00000 n + 0000135958 00000 n + 0000136778 00000 n + 0000300114 00000 n + 0000137779 00000 n + 0000136889 00000 n + 0000137732 00000 n + 0000300222 00000 n + 0000139070 00000 n + 0000137843 00000 n + 0000139023 00000 n + 0000300610 00000 n + 0000140104 00000 n + 0000139134 00000 n + 0000140057 00000 n + 0000300718 00000 n + 0000141083 00000 n + 0000140168 00000 n + 0000141036 00000 n + 0000300826 00000 n + 0000141965 00000 n + 0000141147 00000 n + 0000141918 00000 n + 0000300934 00000 n + 0000142699 00000 n + 0000142029 00000 n + 0000142652 00000 n + 0000301141 00000 n + 0000142962 00000 n + 0000142763 00000 n + 0000142928 00000 n + 0000301249 00000 n + 0000145730 00000 n + 0000143026 00000 n + 0000145662 00000 n + 0000301357 00000 n + 0000148942 00000 n + 0000145794 00000 n + 0000148897 00000 n + 0000301465 00000 n + 0000151793 00000 n + 0000149006 00000 n + 0000151759 00000 n + 0000301573 00000 n + 0000154448 00000 n + 0000151857 00000 n + 0000154414 00000 n + 0000301863 00000 n + 0000157218 00000 n + 0000154512 00000 n + 0000157184 00000 n + 0000301971 00000 n + 0000160140 00000 n + 0000157282 00000 n + 0000160095 00000 n + 0000302079 00000 n + 0000161617 00000 n + 0000160204 00000 n + 0000161548 00000 n + 0000302187 00000 n + 0000161880 00000 n + 0000161681 00000 n + 0000161846 00000 n + 0000302295 00000 n + 0000164709 00000 n + 0000281723 00000 n + 0000281535 00000 n + 0000161944 00000 n + 0000290808 00000 n + 0000290613 00000 n + 0000162915 00000 n + 0000163884 00000 n + 0000164638 00000 n + 0000302585 00000 n + 0000164972 00000 n + 0000164773 00000 n + 0000164938 00000 n + 0000302693 00000 n + 0000167555 00000 n + 0000165036 00000 n + 0000167437 00000 n + 0000302801 00000 n + 0000170083 00000 n + 0000167619 00000 n + 0000169976 00000 n + 0000302909 00000 n + 0000172496 00000 n + 0000170147 00000 n + 0000172389 00000 n + 0000303017 00000 n + 0000172759 00000 n + 0000172560 00000 n + 0000172725 00000 n + 0000295113 00000 n + 0000293087 00000 n + 0000293787 00000 n + 0000293706 00000 n + 0000294303 00000 n + 0000295016 00000 n + 0000294933 00000 n + 0000297908 00000 n + 0000295643 00000 n + 0000296365 00000 n + 0000296282 00000 n + 0000297087 00000 n + 0000297004 00000 n + 0000297809 00000 n + 0000297726 00000 n + 0000300512 00000 n + 0000298438 00000 n + 0000299160 00000 n + 0000299077 00000 n + 0000299691 00000 n + 0000300413 00000 n + 0000300330 00000 n + 0000303307 00000 n + 0000301042 00000 n + 0000301764 00000 n + 0000301681 00000 n + 0000302486 00000 n + 0000302403 00000 n + 0000303208 00000 n + 0000303125 00000 n + 0000303689 00000 n + 0000303712 00000 n + 0000303734 00000 n + trailer + << + /Size 386 + /Root 2 0 R + /Info 1 0 R + >> + startxref + 303855 + %%EOF diff -aNrc2 readline-4.3-patched/doc/readline.ps readline-5.0/doc/readline.ps *** readline-4.3-patched/doc/readline.ps Thu Jun 27 13:54:43 2002 --- readline-5.0/doc/readline.ps Tue Jul 27 09:31:37 2004 *************** *** 2,13 **** %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: readline.dvi ! %%Pages: 66 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments %DVIPSWebPage: (www.radicaleye.com) ! %DVIPSCommandLine: dvips -D 300 -t letter -o readline.ps readline.dvi ! %DVIPSParameters: dpi=300, compressed ! %DVIPSSource: TeX output 2002.06.27:1354 %%BeginProcSet: texc.pro %! --- 2,13 ---- %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: readline.dvi ! %%Pages: 74 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments %DVIPSWebPage: (www.radicaleye.com) ! %DVIPSCommandLine: dvips -D 600 -t letter -o readline.ps readline.dvi ! %DVIPSParameters: dpi=600, compressed ! %DVIPSSource: TeX output 2004.07.27:0931 %%BeginProcSet: texc.pro %! *************** *** 68,1127 **** %%EndProcSet ! TeXDict begin 40258431 52099146 1000 300 300 (readline.dvi) @start ! %DVIPSBitmapFont: Fa cmbxti10 14.4 1 ! /Fa 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46 ! D E ! %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fb cmsl9 9 1 ! /Fb 1 121 df<383FC7E038078380EB0200EA038413C8EA01D8EA00F05B7F1201133812 ! 02487EEA081E123838FC3FC013107F8F14>120 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fc cmsltt10 9 4 ! /Fc 4 78 df45 D48 ! D<134013E0EA01C01203120F123D12111201EA0380A6EA0700A6120EEAFFE0A20B177B96 ! 14>I<381F81F813C1380FC3E0EA0EC213C6A213CE13CC381CCDC013DD13D9A213F1A238 ! 38E3801303A53870070038FC0FC0A215177F9614>77 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fd cmtt9 9 47 ! /Fd 47 127 df<126012F0AD12601200A4126012F0A212600417789614>33 ! D35 ! D40 D<128012C01260123012381218121C120EA31207A9120EA3121C121812 ! 381230126012C01280081D7C9914>II<127012F812FCA2127C120C1218 ! 123012E012C0060A798414>44 DI<127012F8A3127005057984 ! 14>I<1203A25A5A123F12F712471207AEEA7FF0A20C177C9614>49 ! D<1306131E133E13F8EA01F0EA03C0EA0F80EA1F00123C12F85A7E123C121FEA0F80EA03 ! C0EA01F0EA00F8133E131E13060F157E9514>60 D<12C012F07E123E7EEA0780EA03E0EA ! 01F0EA0078133E131E133E1378EA01F0EA03E0EA0780EA1F00123E12F85A12C00F157E95 ! 14>62 DIII<3801F180EA07FFEA0E1FEA1C071238EA7003A348C7FCA738 ! 700380A338380700121CEA0E0EEA07FCEA01F011177F9614>67 D<38FC1F80A2007C1300 ! EA7637A4EA7777A2EA7367A313E7EA71C7A2EA7007A638F80F80A211177F9614>77 ! D<38FE3F80A2383E0E00123BA4138E1239A213CEA31238A213EE136EA4133E12FEA21117 ! 7F9614>I82 D93 ! D95 D97 D<12FCA2121CA513F8EA1DFEEA ! 1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0EEA1DFCEA0CF81217809614>I< ! EA03F8EA0FFEEA1C0EEA3804EA7000126012E0A412601270EA380EEA1C1EEA0FFCEA03F0 ! 0F107E8F14>I<137EA2130EA5EA07CEEA0FFEEA1C3EEA301EEA700E12E0A61270EA301E ! EA383E381FEFC0EA07CF12177F9614>II<13FCEA01FEEA ! 038EEA07041300A3EA7FFE12FFEA0700ACEAFFF8A20F177F9614>II<12FCA2121CA51378EA1D ! FEEA1F86EA1E07121CAA38FF8FE0A21317809614>I<1206120FA21206C7FCA4B4FCA212 ! 07ACEAFFF8A20D187C9714>I<136013F0A213601300A4EA1FF0A2EA0070B2EA40E0EAE0 ! C0EA7F80EA3F000C207E9714>I<12FCA2121CA5EBFF80A2EB1C005B5B5BEA1DC0EA1FE0 ! A2EA1E70EA1C38133C131C7F38FF1F80A21117809614>IIIIIIIII<1206120EA4EA7FFC12FFEA0E ! 00A8130EA3131CEA07F8EA01F00F157F9414>II<38FE3F80A2383C1E00EA1C1CA36C5AA3EA0630EA0770A36C5AA31110 ! 7F8F14>I<38FE3F80A238700700EA380EA3EA39CEA3EA1B6C121AA3EA1E7CA2EA0E3811 ! 107F8F14>II<38FE3F80A2381C0E005BA2120E5BA212071330A2EA0370 ! A25B1201A25BA3485A12730077C7FC127E123C11187F8F14>II126 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fe cmti9 9 1 ! /Fe 1 47 df<1230127812F0126005047C830C>46 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Ff cmr9 9 39 ! /Ff 39 123 df<13FEEA038138060180EA0E03381C010090C7FCA5B51280EA1C03AE38FF ! 8FF0141A809915>12 DI<126012F0A212701210A31220A21240A2040B7D830B>44 ! DI48 D<12035AB4FC1207B3A2EA ! 7FF80D187D9713>III<1318A2133813 ! 7813F813B8EA01381202A212041208121812101220124012C0B5FCEA0038A6EA03FF1018 ! 7F9713>III<1240EA7FFF13FEA2EA4004EA80081310A2 ! EA00201340A21380120113005AA25A1206A2120EA5120410197E9813>III97 ! D<12FC121CA913FCEA1D07381E0380381C01C0130014E0A6EB01C01480381E0300EA1906 ! EA10F8131A809915>II<133F1307A9EA03E7EA0C17EA180F487E127012E0A6126012706C5A ! EA1C373807C7E0131A7F9915>IIII<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF0141A809915>I<1218 ! 123CA212181200A612FC121CAE12FF081A80990A>I<12FC121CA9EB1FC0EB0F00130C5B ! 13205B13E0121DEA1E70EA1C7813387F131E7F148038FF9FE0131A809914>107 ! D<12FC121CB3A6EAFF80091A80990A>I<38FC7C1F391D8E6380391E0781C0A2001C1301 ! AB39FF9FE7F81D107F8F20>I ! IIIIII<1208A41218A21238EAFFC0 ! EA3800A81320A41218EA1C40EA07800B177F960F>I<38FC1F80EA1C03AB1307120CEA0E ! 0B3803F3F01410808F15>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2 ! EA01C0A36C5A11107F8F14>I<39FE7F1F8039381C0700003C1306381C0C04130E380E16 ! 081317A238072310149013A33803C1A014E0380180C0A319107F8F1C>I<38FE3F80383C ! 1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA181CEA381E38FC3FC0 ! 12107F8F14>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C ! 5AA248C7FCA212E112E212E4127811177F8F14>II ! E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fg cmss10 10.95 2 ! /Fg 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012F0 ! AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40 ! D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012 ! 07A213005AA2121E121C123C12385A5A0B2E7EA112>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fh cmbx10 12 27 ! /Fh 27 123 df<90380FF83F90397FFDFFC03A01FC1FE3E03903F03FC7EA07E0D80FC013 ! 87ED83C091381F8000A6B612FCA2390FC01F80B2397FF8FFF8A223237FA221>11 ! DI97 DII<49B4FCA2EB003FAB13FE3807FFBF380FC1FF48 ! C67E003E7F127E127CA212FCA7127C127E123E6C5B380F81FF3907FF3FE0EA01FC1B237E ! A220>I<13FE3807FF80380F83C0381E01E0383E00F0127E007C13F8147812FCB512F8A2 ! 00FCC7FCA3127CA26C1318A26C1330380F80E03803FFC0C6130015167E951A>II<9038FE0F803903FF9FC0380F83E3381F01F3391E00F000003E7FA5001E5BEA ! 1F01380F83E0380BFF80D808FEC7FC0018C8FCA2121C381FFFE014FC6C13FF7E001F1480 ! 397C001FC00078130F00F81307A3007CEB0F806CEB1F00381F807E6CB45A000113E01A21 ! 7F951D>II<121E123FEA7F80A4EA3F00121EC7FCA6EAFF80A2121FB2EAFFF0A20C24 ! 7EA30F>I107 ! DI<3AFF03F803F890390FFE0FFE3A1F183F ! 183F9039201F201F014001C01380A201801380AE3BFFF0FFF0FFF0A22C167D9531>I<38 ! FF03F0EB0FFC381F187EEB203EEB403FA21380AE39FFF1FFE0A21B167D9520>I<13FF00 ! 0713E0380F81F0381F00F8003E137C48133EA300FC133FA7007C133E007E137E003E137C ! 6C13F8380F81F03807FFE0C6130018167E951D>I<38FF87F0EBBFFC381FF07EEBC01F90 ! 38800F8015C0A2EC07E0A715C0140FA2EC1F8001C01300EBF07EEBBFFCEB8FE00180C7FC ! A8EAFFF0A21B207E9520>I ! I<38FF0F80EB1FE0381F33F013631343A2EBC1E0EB8000ADEAFFF8A214167E9518>I<38 ! 07F980EA1FFFEA3807EA7003EAF001A26CC7FCB4FC13F8EA7FFE6C7E6C1380120738003F ! C0EAC007130312E0A200F0138038FC0F00EAEFFEEAC3F812167E9517>I<487EA41203A2 ! 1207A2120F123FB5FCA2EA1F80ABEB8180A5380F830013C3EA07FEEA01F811207F9F16> ! I<38FF81FFA2381F803FAF5C5C380FC1BF3907FF3FE0EA01FC1B167D9520>I<39FFF01F ! E0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5AA26C6C5AA2EBFEE0EB ! 7EC0137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFF3FF83FCA23A1F807C00E0D80F ! C014C08001E013010007017F1380A2D803F0EB0300ECCF8301F81387D801F913C61487D8 ! 00FD13ECEBFF0315FC017F5BEB7E01013E5BEB3C00A20118136026167F9529>I<39FFF0 ! 7FC0A2390FC01C006C6C5A6D5A00035B6C6C5A3800FD80137F91C7FC7F6D7E497EEB37E0 ! EB67F013C33801C1F8380380FC48487E000E137F39FF81FFE0A21B167F951E>I<39FFF0 ! 1FE0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5AA26C6C5AA2EBFEE0 ! EB7EC0137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC3813305BEA69C0EA7F80001FC8 ! FC1B207F951E>I<387FFFF0A2387C07E038700FC0EA601F00E0138038C03F005B137EC6 ! 5A1201485AEBF030EA07E0120FEBC070EA1F80003F1360EB00E0EA7E03B5FCA214167E95 ! 19>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fi cmtt10 12 29 ! /Fi 29 122 df<13E0A538F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA07FCEA1F ! FF387EEFC038FCE7E0EAF0E13800E000A513157D991A>42 D69 ! D<387FFFFCB5FC7E380E001CA51400A2EB0380A3EA0FFFA3EA0E03A390C7FCA8EA7FE012 ! FF127F161E7F9D1A>I73 ! D<387F03F838FF87FC387F03F8381C01E0EB03C01480EB07005B131E131C5B13785B7F12 ! 1DEA1FDC139C130EEA1E0F7F001C13801303EB01C0A2EB00E0A21470007F13FC38FF81FE ! 387F00FC171E7F9D1A>75 DI<387FFFC0B512E0A26C13C013047D7E1A>95 D97 D<12FEA3120EA6133EEBFF80000F13E0EBC1F0EB8070EB00 ! 38120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E138038063E00161E7F9D1A>I< ! EBFF80000313C0000F13E0EA1F01383C00C04813001270A25AA51270A2007813707E381F ! 01F0380FFFE0000313C03800FE0014157D941A>III< ! EB07E0EB1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0B5FCA23800E000AF383FFF8048 ! 13C06C1380151E7F9D1A>I<3801F87C3807FFFE5A381E078C381C0380383801C0A5381C ! 0380EA1E07381FFF005BEA39F80038C7FCA27E381FFF8014E04813F83878007C0070131C ! 48130EA40070131C0078133C003E13F8381FFFF0000713C00001130017217F941A>I<12 ! FEA3120EA6133EEBFF80000F13C013C1EB80E01300120EAC38FFE3FE13E713E3171E7F9D ! 1A>I ! I<12FEA3120EA6EB0FFCEB1FFEEB0FFCEB03C0EB0780EB0F00131E5B5B13FC120F13DE13 ! 8F380E07801303EB01C014E0EB00F038FFE3FE14FF14FE181E7F9D1A>107 ! DI<387CE0E038FFFBF8EA7FFF381F1F1CEA ! 1E1EA2EA1C1CAC387F1F1F39FF9F9F80397F1F1F00191580941A>IIII<3801F8E0EA07FEEA0FFFEA1E07EA3C03EA78011270EAE000A613011270EA ! 7803123CEA1E0FEA0FFFEA07FCEA01F0C7FCA8EB0FFEA317207E941A>I<387F81F838FF ! 8FFC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFFB5FC7E17157F941A>I<3807FB ! 80EA1FFF127FEA7807EAE003A30078C7FCEA7FC0EA1FFCEA07FE38003F801307386001C0 ! 12E0A2EAF00338FC0780B51200EAEFFEEAE3F812157C941A>I<487E1203A6387FFFE0B5 ! FCA238038000AA1470A43801C1E013FF6C1380EB3F00141C7F9B1A>I<38FE0FE0A3EA0E ! 00AD1301EA0F033807FFFE7EEA00FC17157F941A>I<387FC7FC00FF13FE007F13FC380E ! 00E0A3380701C0A338038380A33801C700A3EA00EEA3137CA2133817157F941A>I<387F ! C7FC00FF13FE007F13FC380E00E0A27EEB01C013811203EB8380EA01C3A2EBC700EA00E7 ! A213E61366136E133CA31338A3137813701230EA78E01271EA7FC06C5A001EC7FC17207F ! 941A>121 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fj cmbx12 13.14 52 ! /Fj 52 122 df<123C127E12FFA4127E123C08087C8711>46 D48 D<131C133C13FC12FFA21200B3AA ! 387FFFFCA216237CA21F>I<48B4FC000713C0381E07F0383803F8386001FC387C00FE12 ! FE14FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B ! 1370EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F> ! I<48B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB ! 03F8EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FE ! A214FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A2 ! 14F81301130313071306130C131C13381330136013E0EA01C01380EA03005A120E5A1218 ! 5A12705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEB ! FFF814F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FC ! C7127EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE ! 0018237DA21F>II<1230123C003FB512 ! C0A215804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133C ! A25BA213F8A41201A66C5A13601A257DA41F>II<13FF000313C0380F83E0381F00F04813F8007E13 ! 7CA2147E12FEA3147FA4127E14FF123EEA3F01001F137FEA0FFEEA03FCC7FC147EA2123C ! 007E13FCA214F814F0EA7C01383003E0381C0F80380FFF00EA03F818237DA21F>I<141C ! A2143EA3147FA24A7EA39038019FC0A29038031FE0140F01077FEB0607A2010C7F140301 ! 1C7FEB1801A2496C7EA2017FB5FCA29039E0007F8049133FA2484880151F00038190C712 ! 0FA2486E7ED8FFF090B51280A229257EA42E>65 DI<9138FF8008010FEBF01890393FC03C789039FE0006F8D801F8130348481301 ! 4848130048481478121F48481438A2007F151890C8FCA2481500A97E16187F123FA26C6C ! 1430120F6C6C14606C6C14C06C6CEB0180D800FEEB070090383FC01E90380FFFF8010013 ! C025257DA42C>I69 DI72 ! DI75 DIII82 D<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A2 ! 7E91C7FCB4FCEA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC ! 0FE01407A200C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B ! 257DA422>I<007FB612F8A2397E00FE010078EC00780070153800601518A200E0151C16 ! 0C5AA4C71400B3A390B512FEA226247EA32B>IIII89 D97 DIII<137F3803FFC03807C1F0380F80F8EA1F0048 ! 137C127E147E12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803 ! FFE038007F8017187E971C>II<3901FF07C00007EBDFE0380F83F1EA1F ! 01393E00F800007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA2123812 ! 3C383FFFE06C13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00 ! 381F807E3807FFF8C613C01B247E971F>II<120FEA1F80EA3FC0A4 ! EA1F80EA0F00C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I107 DI<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A ! 9007E803F001A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE9038 ! 83FF80390F8E0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>II<38FFC1FCEBCFFF390FFC1FC0 ! 9038F007E001C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F ! 809038CFFF00EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7C ! EB90FC13B013A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C ! 07EA7001EAF000A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC0 ! 01A212E014C0EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A3120312 ! 07120F121FB512C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218 ! >I<39FFC07FE0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E97 ! 22>I<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13 ! FC00005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<3BFFF9FF ! E0FF80A23B1FC03F001C00000F6D13181580D807E05CA29039F03FC07000030137136015 ! E02601F8635BA29038FCE3F1000001C15B15F990267F80FBC7FCA215FF90383F007EA201 ! 1E133CA3010C131829187F972C>I<39FFF83FF0A2390FC00F003807E00E6C6C5A6D5A6C ! 6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F81361EBE0FC3801C07E3803807F39 ! 07003F8048131F39FFC07FF8A21D187F9720>I<39FFF80FF8A2390FC001C015803907E0 ! 0300A26D5A00031306EBF80E0001130C13FC00005B13FEEB7E30A26D5AA214E06D5AA26D ! 5AA26DC7FCA21306A25B1230EA781CEAFC185B1370EA68E0EA7FC0001FC8FC1D237F9720 ! >I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fk cmsl10 10.95 48 ! /Fk 48 122 df12 ! DI ! 45 D<137EEA01C338030180000713C0EA0E0014E05AA2EA3C0112381278A538F003C0A5 ! 1480130712E01400A2130E1260EA701CEA3038EA3870EA0FC0131F7C9D17>48 ! D<13181338EA01F8EA0E701200A513E0A6EA01C0A6EA0380A6EA07001380EAFFFC0E1E7B ! 9D17>I<1408140C141C143CA2147C147E149EA2EB011EA21302801304A21308A2011013 ! 8014071320A2EB7FFF90384007C0EB8003A2EA0100A21202EC01E01206001F130339FF80 ! 1FFE1F207F9F22>65 D<0007B5FC3900F803C090387801E0EC00F04913F8A515F03801E0 ! 01EC03E015C0EC0F809038FFFE009038E00F803903C003C0EC01E015F0A21400A2485A14 ! 01A215E01403EC07C0390F000F80EC3E00B512F01D1F7E9E20>II<0007B57E3900F801E0903878007081497F151E150E150FA348481480A6 ! 484814005DA3151E153E4848133C5DA25D4A5A4A5A260F000FC7FC143CB512F0211F7E9E ! 23>I<0007B512FC3900F8007C0178131C150C5B1504A414043901E00800A31438EBFFF8 ! EBE0383803C010A4EC00081510485AA21520A2156015C0380F00011407B612801E1F7E9E ! 1F>I<0007B512F83900F800780178133815185B1508A53901E00800A314181438EBFFF8 ! 3803C0301410A491C7FC485AA648C8FC7FEAFFFC1D1F7E9E1E>I<3A07FF83FFC03A00F8 ! 007C000178133CA2495BA648485BA490B5FCEBE0004848485AA64848485AA64848485A01 ! 807F39FFF07FF8221F7E9E22>72 D<3807FF803800F8001378A25BA6485AA6485AA6485A ! A648C7FC7FEAFFF0111F7E9E10>I<3A07FF803FE03A00F8001F000178130C5D4913205D ! 5D4AC7FC1402140848485A5C146014F013E1EBE4F83803C878EBD07CEBE03CEBC03E141E ! 141F48487E81140781140381380F00016D487E39FFF00FFE231F7E9E23>75 ! D<3807FFE0D800FCC7FC1378A25BA6485AA6485AA41580EC0100EA0780A25C1402140614 ! 0E380F001E147CB512FC191F7E9E1C>IIII<0007B5FC3900F803C090387800F015785B157CA41578484813F815F0EC ! 01E0EC03C0EC0F00EBFFFCD803C0C7FCA6485AA648C8FC7FEAFFF81E1F7E9E1F>I<3807 ! FFFE3900F8078090387801E0EC00F05B15F8A415F03801E00115E0EC03C0EC0780EC1E00 ! EBFFF03803C03880141E140EA2140F48485AA51501D80F0013029038800F8239FFF8078C ! C7EA01F020207E9E22>82 DI<003FB512 ! F0383C078000301430126039400F0010A212C01280A3D8001E1300A65BA65BA65B7F383F ! FFE01C1F7A9E21>I<39FFF00FF8391F0003E06CEB01801400001EEB0100A6481302A648 ! 5BA600705BA25CA200785B1238001813C06C48C7FCEA0706EA01F81D20799E22>I<3BFF ! F07FF81FF03B1F000FC007C0001E903907800380001FED01006C1502140F5EEC17C00213 ! 5B142301805C000713435E14C3913883E0401481D981015B13C1D803C213E193C7FC13C4 ! 15F2EBC80015F4EA01F015F85B5D5B15605B000014402C207A9E2F>87 ! D97 D<1207123F120F7EA2120EA65A137CEA1D ! 83381E0180001C13C0EB00E05A14F0A5387001E0A214C013031480EB0700EAE80EEACC38 ! EA83E014207B9F19>I<13FEEA0383380E0780121C0038130090C7FC12785AA45AA37E5B ! EA70026C5AEA1C18EA07E011147D9314>I<1438EB01F8EB00781438A21470A614E013FC ! EA0382EA0601121CEA3C00383801C0127812F0A438E00380A412F0EA700738380F00381C ! 37803807C7E015207D9F19>I<13F8EA070EEA0E07381C038012381278127012F0B5FC00 ! F0C7FCA25AA46C5AEA7002EA3004EA1C18EA07E011147D9314>II<140EEB3E11EBE1A33801C1C2380381E0EA07801301120FA3380703C01480EB87 ! 00EA04FC48C7FCA21218121CEA0FFF14C014E0381800F04813305A5AA3006013606C13C0 ! 381C0700EA07FC181F809417>I<13E0120712011200A2485AA6485AEB8F80EB90E013A0 ! EBC0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014207E9F19>I< ! EA01C0EA03E0A213C0EA0180C7FCA6EA0380121F12071203A2EA0700A6120EA65A121EEA ! FF800B1F7F9E0C>I<13E0120712011200A2485AA6485AEB81FCEB80F014C0EB81801400 ! EA07045B13181338137C131C120E7FA2130F7F1480EA1C03381E07C038FF8FF016207E9F ! 18>107 D<13E0120712011200A2EA01C0A6EA0380A6EA0700A6120EA65A121EEAFF800B ! 207F9F0C>I<390387C07C391F9861863907A072073903C03403EB80380007EB7807EB00 ! 70A5000EEBE00EA64848485A001EEBE01E3AFFCFFCFFC022147E9326>I<38038F80381F ! 90E0EA07A03803C0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014 ! 147E9319>I<13FCEA0387380E0180381C00C04813E0A24813F012F0A438E001E0A214C0 ! 130300F0138038700700EA380E6C5AEA07E014147D9317>IIIII< ! 1380EA0100A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2EA1840EA0F800D1C7C ! 9B12>I<381C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4131EA25BEA305E381F ! 9F8011147B9319>I<38FF83F8381E00E0001C13C01480121E380E01005B13025B12075B ! A25BEA039013A013E05B5B120190C7FC15147C9318>I<39FF9FE1FC393C078070391C03 ! 0060148015401580EA0E0790380D81001309EB19C21311380F21C4EA0720EB40C814E8EB ! 80F0A26C485A1460000213401E147C9321>I<381FF0FF3803C0780001137014403800E0 ! C0EBE180EB73001376133CA2131C132E134E1387EA0107380203801204380C01C0383C03 ! E038FE07FC18147F9318>I<390FF83F803901E00E00EBC00C140813E000005B14301420 ! 5C13705CA20171C7FC1339133A133E133C133813181310A25BA25BEA70C0EAF08000F1C8 ! FC12E61278191D809318>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fl cmti10 10.95 20 ! /Fl 20 122 df12 ! D<127012F8A212F012E005057B840E>46 D ! 97 D<137EEA01C138030080EA0E07121E001C1300003CC7FC5AA35AA45B12701302EA30 ! 0CEA1830EA07C011147C9315>99 D<1478EB03F8EB0070A414E0A4EB01C0A213F1EA0389 ! 38070780EA0E03121C123C383807001278A3EAF00EA31420EB1C40A2EA703C135C38308C ! 80380F070015207C9F17>I<137CEA01C2EA0701120E121C123CEA3802EA780CEA7FF0EA ! 78005AA4EA7001A21302EA380CEA1830EA07C010147C9315>I103 D<13C0EA01E0A213C0C7FC ! A7120E12131223EA4380EA4700A21287120EA35AA3EA38401380A21270EA31001232121C ! 0B1F7C9E0E>105 D108 D<391C0F80F0392630C318394740640C903880680EEB0070 ! A2008E495A120EA34848485AA3ED70803A3803807100A215E115623970070064D8300313 ! 3821147C9325>I<381C0F80382630C0384740601380EB0070A2008E13E0120EA3381C01 ! C0A3EB038400381388A2EB0708EB031000701330383001C016147C931A>I<137CEA01C3 ! 38030180000E13C0121E001C13E0123C1278A338F003C0A3EB07801400EA700F130EEA30 ! 18EA1870EA07C013147C9317>I<3801C1E0380262183804741C1378EB701EA2EA08E012 ! 00A33801C03CA3143838038078147014E0EBC1C038072380EB1E0090C7FCA2120EA45AA2 ! B47E171D809317>I114 D<13FCEA0302EA0601EA0C03130713061300EA0F8013F0 ! EA07F8EA03FCEA003E130E1270EAF00CA2EAE008EA4010EA2060EA1F8010147D9313>I< ! EA018013C0EA0380A4EA0700A2EAFFF0EA0700120EA45AA45AA31320EA7040A21380A2EA ! 3100121E0C1C7C9B0F>I<000E13C0001313E0382301C0EA4381EA4701A238870380120E ! A3381C0700A31410EB0E201218A2381C1E40EA0C263807C38014147C9318>I<380E0380 ! EA1307002313C0EA4383EA4701130000871380120EA3381C0100A31302A25BA25BEA0E30 ! EA03C012147C9315>I<000EEBC1C0001313E3392301C3E0384381C1384701C015603987 ! 038040120EA3391C070080A3EC0100A21306EB0F02000C5B380E13083803E1F01B147C93 ! 1E>I<000E13C0001313E0382301C0EA4381EA4701A238870380120EA3381C0700A4130E ! 1218A2EA1C1EEA0C3CEA07DCEA001CA25B12F05BEAE060485AEA4380003EC7FC131D7C93 ! 16>121 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fm cmr8 8 29 ! /Fm 29 118 df<126012F0A212701210A21220A21240A2040A7D960A>39 ! D45 D<1206120E12FE120EB1EAFFE00B157D9412>49 ! D<13101338A3135CA3138EA3EA0107A238020380A33807FFC0EA0401A2380800E0A20018 ! 13F0123838FE03FE17177F961A>65 DIIIII76 D<00FEEB03F8001E14C000171305A338138009A23811C011A3 ! 3810E021A2EB7041A3EB3881A2EB1D01A2130EA2123839FE040FF81D177F9620>I80 D82 DI<387FFFF83860381800401308A200801304A300001300AF3803FF ! 8016177F9619>I<12FCA212C0B3AB12FCA206217D980A>91 D97 ! D<12F81238A8EA39F0EA3E0CEA380613077F1480A414005B1306EA361CEA21F011177F96 ! 14>II101 D<1203EA0780A2EA0300C7FCA5EA1F801203AF1243EAE300 ! 12E7127C091D82960B>106 D<12F81238A8133E13381330134013801239EA3FC0EA39E0 ! 123813F01378133CA2EAFE7F10177F9613>I110 DII114 ! DI<1208A31218A21238EAFFC0EA3800A71340A4EA1C80EA0F000A147F93 ! 0E>II E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fn cmsy9 9 2 ! /Fn 2 106 df<13801201EA0300A31206A25AA35AA35AA25AA35AA21260A37EA27EA37E ! A37EA27EA3EA0180120009267D9B0F>104 D<12C0A21260A37EA27EA37EA37EA27EA3EA ! 0180A2EA0300A31206A25AA35AA35AA25AA35AA209267E9B0F>I ! E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fo cmsltt10 10.95 29 ! /Fo 29 122 df<1206120FEA1F80120FA21203EA0700A25A120E123C127C12F01260090E ! 769B18>39 D<387FFFC0B512E0A26C13C013047C8F18>45 D<133E13FF000313803807C3 ! C0EA0F01000E13E0EA1C00123C003813F014705AA34813E0A4EB01C0A2130300F01380EA ! 7007EB0F00EA781E6C5AEA1FF85BEA07C0141C7C9B18>48 D<13181338A2137813F81203 ! 120F137012041200A413E0A6EA01C0A6EA7FFE12FF127F0F1C7B9B18>I67 D<3807FFC014E014F03801C0F814 ! 78143C141CEA0380141EA2140EA33807001CA4143C1438120E147014F0EB01E0EB03C013 ! 07387FFF8038FFFE00EA7FF8171C7F9B18>I<0007B5FC5A7E3801C007A3140638038000 ! A2EB818014C0A213FF481380A21303A2140090C7FC120E140C141CA4387FFFF8B5FC7E18 ! 1C7F9B18>I74 D76 D<3907E01F80000FEB3FC0000714803903 ! B02E00146EA214CE380730DC1331149CA21333141C000E5B13371336133E133C131848C6 ! 5AA638FE03F800FF7F00FE5B1A1C7F9B18>I<126012F0A37E1278A3127C123CA3123E12 ! 1EA3121F7EA313801207A313C01203A413E01201A313F0120013600C24789F18>92 ! D<387FFFC0B512E0A26C13C013047E7F18>95 D97 D<127EA3120EA45A137CEA1DFF001F13801383381E01C0123CEB00E012 ! 38A4387801C0A2EB0380A2EB0F00EA7C1FEAFFFCEAEFF8EA63E0131C7C9B18>I100 D<13F8EA07FE487E381F ! 0780EA3C03387801C0127012E0A2B5FCA2148000E0C7FCA213033870078038780F00EA3F ! FE6C5AEA07F012147B9318>III<14C0EB01E013031301EB00C01400A4EBFFC0A31301A2EB0380A6 ! EB0700A6130EA65BA2EA6038EAF078B45A5BEA3F8013277F9C18>106 ! DII<13FCEA03FF000F1380 ! EA1F07383C03C0EA7801007013E0EAE000A4EB01C0A2EB0380EAF007EB0F00EA7C3EEA3F ! FC6C5AEA07E013147C9318>111 D113 D<381FE1F8EBE7FCEBEFFE3800FE1EEBFC0C3801F8005B5B5BA3485AA6EA ! FFFC7F5B17147E9318>II<387E07E0EAFE0FEA7E07EA0E00A2381C01C0A638380380A41307131F383FFF ! E06C13F03807E3E014147D9318>117 D<38FF87F8138F1387383800E0EB01C0A3148013 ! E3EA39F31233EB7700A212371376EA3666136EEA3C7CA2EA383815147C9318>119 ! D<381FE3FC13E713E33803C3C000011380EBE700EA00EE13FC137C1338137813FCEA01DC ! EA038E12071307120E38FF1FE0EB9FF0EB1FE016147E9318>I<380FF1FE381FF9FF380F ! F1FE3803807013C0000113E0A213C114C0A23800E380A2EBE700A213E6136E136C137C13 ! 78A21370A25BA2485A12F3EAF780B4C7FC5A1278181E7F9318>I ! E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fp cmcsc10 10.95 12 ! /Fp 12 121 df<1318A2133CA3134EA213CF1387A238010380A2000313C0EA0201A23807 ! FFE0EA0400A2481370A2001813380038137838FE01FF18177F961C>97 ! D99 ! D101 DII105 D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C13 ! 0E1307A2EB03A0EB01E0A213001460123800FE132016177E961C>110 ! D<13FE38038380380E00E0481370003C1378003813380078133C0070131C00F0131EA700 ! 70131C0078133C00381338003C1378001C13706C13E0380383803800FE0017177E961D> ! II115 ! D<38FF81FC381C00701420B0000C1340120E6C138038018300EA007C16177E961C>117 ! D<38FF80FE381F0070000E13606C1340EB80803803C100EA01C3EA00E213F4137813387F ! 133E134E13C7EB8780380103C0EA0201380600E0000413F0000C1370003C137800FE13FF ! 18177F961C>120 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fq cmbx12 17.28 34 ! /Fq 34 121 df49 DI<913A03FF80018002 ! 3FEBF00349B5EAFC0701079038003F0FD91FF8EB079FD93FC0EB01FFD9FF807F4848C812 ! 7F4848153F0007161F49150F485A001F1607A2485A1703127FA24992C7FCA212FFA9127F ! A27FEF0380123FA26C7E1707000F17006C7E6D150E0003161E6C6C151C6C6C6C1478D93F ! C05CD91FF8EB03E0D907FFEB3F800101D9FFFEC7FCD9003F13F80203138031317CB03A> ! 67 D69 DII73 D76 D78 D80 D ! 82 D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A348 ! 1603A5C792C7FCB3AA017FB6FCA331307DAF38>84 DII97 ! DIIIII<90 ! 391FF007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF0 ! 00A2003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC ! 121EA2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C ! 140F00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0 ! D8001F90C7FC242F7E9F28>III108 D<2703F007F8EB1FE000FFD9 ! 3FFEEBFFF8913A783F01E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602 ! F8148001FC5CA3495CB3B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFE ! EC783F02C013803A0FF1801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F ! 2D>II<3901F83FE000FFEBFF ! FC9038FBE07F9039FF003F80D80FFEEB1FC06C48EB0FE04914F0ED07F8A216FC1503A216 ! FEA816FC1507A216F8A2ED0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC ! 3FC091C8FCABB512C0A3272E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF3 ! 0FF0EA07F6A29038FC07E0EC03C091C7FCA25BB2B512E0A31C207E9F21>114 ! D<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90C7FCB47E13FC387FFFC0 ! 6C13F0806C7F00077F00017FEA003F01001380143F0060131F00E0130FA27E15007E6C13 ! 1E6C131C38FF807838F3FFF038C07F8019207D9F20>I<131CA5133CA3137CA213FC1201 ! 12031207381FFFFEB5FCA2D803FCC7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB ! 07F0192E7FAD1F>II119 D<3A7FFF807FFCA33A03FC000F006C6C131E6C6C5BEC803890387FC078013F5B ! 90381FE1E090380FF3C0ECFF806D90C7FC6D5A13016D7E81815B903803DFE09038078FF0 ! 8190380F07FC90381E03FEEB3C01496C7E4914804848EB7FC00003EC3FE026FFFC01B5FC ! A328207F9F2B>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fr cmsy10 10.95 1 ! /Fr 1 14 df<14FE903807FFC090381F01F0903878003C01E0130ED80180130348C7EA01 ! 800006EC00C0481560A2481530481518A248150CA4481506A90060150CA46C1518A26C15 ! 306C1560A26C15C06CEC01806C6CEB0300D800E0130E0178133C90381F01F0903807FFC0 ! D900FEC7FC272B7DA02E>13 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fs cmbx12 14.4 55 ! /Fs 55 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612 ! 0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46 ! D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49 ! DII<140FA25C5C5C5C5BA2EB03 ! BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8 ! A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091 ! C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218 ! 127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6 ! 22>II<1238123E003FB512F0A34814E015C0158015003870000EA25C485B5C5CC6485AA249 ! 5A130791C7FC5B5B131E133EA2137E137CA213FCA41201A76C5A13701C297CA822>I57 ! D65 DI<91387FE003903907FFFC07011FEBFF0F90397FF00F9F ! 9039FF0001FFD801FC7F4848147F4848143F4848141F485A160F485A1607127FA290C9FC ! 5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C14786CB4EB01F090397FF0 ! 07C0011FB512800107EBFE009038007FF028297CA831>IIII<91387FE003 ! 903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F484880484880484880 ! 485A82485A82127FA290CAFC5AA892B512F87E7F03001300123FA26C7EA26C7E6C7E6C7E ! 6C7E6CB45B90387FF007011FB5129F0107EBFE0F9039007FF0032D297CA835>II< ! B512F0A33803FC00B3B1B512F0A314297EA819>I75 DIII< ! ECFFC0010F13FC90383F807F9039FE001FC0D801F8EB07E048486D7E48486D7E000F8148 ! 486D7EA24848147FA2007F168090C8123FA34816C0AA6C16806D147FA2003F1600A26C6C ! 14FEA26C6C495A6C6C495A6C6C495A6C6C495A6C6C495A90263FC0FFC7FC90380FFFFC01 ! 0013C02A297CA833>IIII<9038FF80600003EBF0E000 ! 0F13F8381F80FD383F001F003E1307481303A200FC1301A214007EA26C140013C0EA7FFC ! EBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB007FEC1FF0140F140700E013 ! 03A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE0000E15B38C01FF01C297CA825 ! >I<007FB71280A39039807F807FD87C00140F00781507A20070150300F016C0A2481501 ! A5C791C7FCB3A490B612C0A32A287EA72F>IIII89 ! D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801FC3FEA ! 0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B7E9A21 ! >97 DIIIII<9038FF80F00003EBE3 ! F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E6C137C ! 380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C14F012 ! 1F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB512003800 ! 7FF01E287E9A22>II<1207EA0F80EA1FC0EA3FE0A3EA1F ! C0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I108 D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D8 ! 0FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A333 ! 1B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213 ! E0B039FFFE3FFFA3201B7D9A25>II<38FFE1FE9038EFFF809038FE0FE039 ! 0FF803F09038F001F801E013FC140015FEA2157FA8157E15FEA215FC140101F013F89038 ! F807F09038FC0FE09038EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FF ! C1F0EBC7FCEBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114 ! D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C ! 13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FF ! C000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000 ! AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F13 ! 07B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA339 ! 0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214 ! 9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE0 ! 0FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600 ! FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2 ! EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801 ! FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F ! 803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF0 ! 00F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB ! 3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5B ! EA74F0EA3FE0EA0F8020277F9A23>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Ft cmtt10 10.95 91 ! /Ft 91 127 df<127012F8B012701200A5127012F8A31270051C779B18>33 ! DI ! I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F ! 6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F ! F8EA07E0EA01C0A3120011247D9F18>III<1238127CA2127E ! 123E120EA3121CA2123812F812F012C0070E789B18>I<137013F0EA01E0EA03C0EA0780 ! EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C ! 24799F18>I<126012F012787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01 ! C0A2EA03801207EA0F00121E5A5A5A12600C247C9F18>II<136013F0A7387FFFC0B512E0A26C13C03800F000A7136013147E9718>I<121C ! 123E127E127F123F121F1207120E121E127C12F81260080C788518>I<387FFFC0B512E0 ! A26C13C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F ! 14005B131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A12 ! 1E123E123CA2127C127812F85AA2126011247D9F18>IIII<131F5B1377A213E7120113C7EA038712 ! 071307120E121E123C1238127812F0B512F8A338000700A6EB7FF0A3151C7F9B18>52 ! D<383FFF80A30038C7FCA8EA3BF8EA3FFE7F383C0780383003C0EA0001EB00E0A2126012 ! F0A238E001C0EA7003387C0F80383FFF00EA1FFCEA03F0131C7E9B18>I<137E48B4FC00 ! 071380380F83C0EA1E03121C3838018090C7FC5AA2EAE1F8EAE7FEB5FC38FE078038F803 ! C0EAF001EB00E05AA21270A3383801C0EA3C03381E0780380FFF006C5AEA01F8131C7E9B ! 18>I<12E0B512E0A214C038E00380EB0700C65A131E131C5BA25B13F05BA2485AA3485A ! A448C7FCA7131D7E9C18>II<1230127812FCA2127812301200A8 ! 1230127812FCA2127812300614779318>58 D<1218123C127EA2123C12181200A8121812 ! 3C127EA2123E121E120E121C123C127812F01260071A789318>I<14C0EB03E01307EB1F ! C0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C ! 7EEB3F80EB1FC0EB07E01303EB00C013187E9918>I<387FFFC0B512E0A26C13C0C8FCA4 ! 387FFFC0B512E0A26C13C0130C7E9318>I<126012F87E127F6C7EEA0FE06C7EEA01FC6C ! 7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FC5A ! 126013187E9918>II<137CEA01FEEA07FF380F ! 8780381E03C0EA3C1DEA387F3870FFE0EA71E313C112E1EAE380A638E1C1C0127113E338 ! 70FF8038387F00EA3C1C381E00E0EA0F833807FFC00001138038007E00131C7E9B18>I< ! 137013F8A213D8A2EA01DCA3138CEA038EA4EA0707A5380FFF80A3EA0E03381C01C0A338 ! 7F07F000FF13F8007F13F0151C7F9B18>II ! IIII<3801F1C0EA03FD ! EA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5EB0FF0131F130F387001C0A2130312 ! 38A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B18>I<387F07F038FF8FF8387F07F0 ! 381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F9B18>II<3801FFC0A338000E00B3 ! 12F0A2133CEA7FFCEA3FF0EA0FC0121C7D9B18>I<387F07F038FF87F8387F07F0381C03 ! C0EB07801400130E131E5B13385B13F0121DA2EA1FB8A2131C121EEA1C0EA27FA2EB0380 ! A2EB01C0387F03F038FF87F8387F03F0151C7F9B18>II<38FC01F8EAFE03A2383B06E0A4138EA2EA398CA213DCA3EA38D8A2 ! 13F81370A21300A638FE03F8A3151C7F9B18>I<387E07F038FF0FF8387F07F0381D81C0 ! A313C1121CA213E1A313611371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03 ! 151C7F9B18>IIIII<3803F1C0EA1FFF5AEA7C0FEA7003EAE001A3 ! 90C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A2126012E0130100 ! F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA238E07038A40000 ! 1300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F01380783C03803 ! FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03383C01E0001C13C0A3EA1E ! 03000E1380A438070700A4EA038EA4EA018C13DCA3EA00D813F8A21370151C7F9B18>I< ! 38FE03F8A338700070A36C13E0A513F8EA39FC13DCA2001913C0A3138CA2EA1D8DA31305 ! 000D1380EA0F07A2EA0E03151C7F9B18>I<387F0FE0139F130F380E0700120FEA070E13 ! 8EEA039C13DCEA01F8A212005B137013F07F487E13DCEA039E138EEA070F7F000E138013 ! 03001E13C0387F07F000FF13F8007F13F0151C7F9B18>I<38FE03F8EAFF07EAFE03381C ! 01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00F8A21370A9EA01FC48 ! 7E6C5A151C7F9B18>I<383FFFE05AA2387001C01303EB07801400C65A131E131C133C5B ! 137013F0485A5B1203485A90C7FC5A001E13E0121C123C5A1270B5FCA3131C7E9B18>I< ! EAFFF8A3EAE000B3ACEAFFF8A30D24779F18>I<126012F0A27E1278127C123CA2123E12 ! 1E121F7EA27F12077F1203A27F12017F12007F1378A2137C133C133E131EA2131F7F1480 ! 1307A2EB030011247D9F18>II<387FFFC0 ! B512E0A26C13C013047E7F18>95 D<1206121E123E12381270A212E0A312F812FC127CA2 ! 1238070E789E18>II<127E12FE127E12 ! 0EA5133EEBFF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFF ! C0000E138038063E00151C809B18>IIIII<3801E1F03807FFF85A381E1E30381C0E00487EA5EA1C ! 0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F038700070481338 ! A4007813F0EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE127E120EA513 ! 3EEBFF80000F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC171C809B18> ! II<1338 ! 137CA313381300A4EA0FFCA3EA001CB3A4EA6038EAF078EAFFF0EA7FE0EA3F800E277E9C ! 18>I<127E12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA ! 0E0F7FEB038014C0387FC7F812FF127F151C7F9B18>II<38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB ! 3E3E1714809318>III< ! EA7E3E38FEFF80007F13C0380FC1E01380EB0070120E1438A6000F1370A2EB80E013C1EB ! FFC0000E1380EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<3801F380EA07FBEA1F ! FFEA3E1FEA380FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3EA00 ! 03A7EB1FF0EB3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0 ! 005BA290C7FCA9EAFFFC7F5B14147E9318>II<487E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C1380 ! EB3E0013197F9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE ! 3801FCFC1714809318>I<387F8FF000FF13F8007F13F0381C01C0380E0380A338070700 ! A3138FEA038EA3EA01DCA3EA00F8A2137015147F9318>I<38FF07F8138F1307383800E0 ! A4381C01C0137113F9A213D9EA1DDD000D1380A3138DEA0F8FA23807070015147F9318> ! I<387F8FF0139F138F380F0700EA078EEA039EEA01DC13F81200137013F07FEA01DCEA03 ! 9E138EEA0707000E1380387F8FF000FF13F8007F13F015147F9318>I<387F8FF000FF13 ! F8007F13F0380E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013DC13 ! 78A31370A313F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA23870 ! 01E0EB03C0EB078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512F0A3 ! 14147F9318>II<126012F0B3B012600424769F18>I<127CB4FC13C0 ! 1203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005BABEA03C012FF90C7FC127C13247E9F18 ! >II E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fu cmr10 10.95 77 ! /Fu 77 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7 ! B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701 ! A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>II<90381F81F89038F04F043901C07C063903 ! 80F80FEB00F05A0270C7FCA6B7FC3907007007B23A3FE3FE3FE02320809F26>I34 ! D<1340A2EA03F0EA0C4EEA10413820408012600040134038C041C01343A238E04180EB40 ! 001270127CEA3FC0EA1FF86C7EEA03FEEA007FEB4F801343EB41C0A2EAF040A312801480 ! EA404100201300EA3042EA0C4CEA03F0EA0040A312257EA117>36 ! D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39 ! D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012 ! 30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812 ! 0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A ! 5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240050E7C840D>44 ! DI<127012F8A3127005057C840D>I<144014C0EB0180A3EB0300 ! A31306A25BA35BA35BA25BA35BA3485AA348C7FCA21206A35AA35AA25AA35AA35AA2122D ! 7EA117>II<13801203120F12F31203B3A6EA ! 07C0EA7FFE0F1E7C9D17>III<1306A2130EA2131E132EA2134E138EA2EA ! 010E1202A212041208A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17> ! II<137CEA ! 0182EA0701380E0380EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406EA ! F807EB0380A200F013C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D17 ! >I<1240387FFFE014C0A23840008038800100A21302485AA25B5BA25BA21360A213E05B ! 1201A41203A76C5A131F7E9D17>III<127012F8A312 ! 701200AA127012F8A3127005147C930D>I<127012F8A312701200AA127012F012F8A212 ! 781208A31210A31220A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB20 ! 78A3497EA2EBC03EEB801EA248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14E0 ! 39FF801FFE1F207F9F22>65 DI<90380FE0109038381C309038E002703803C00139078000F048C71270121E15305A15 ! 10127C127800F81400A91278007C1410123CA26C1420A27E6C6C13406C6C13803900E003 ! 00EB380CEB0FF01C217E9F21>IIII<90380FE02090387818609038E004E03803800238070001481300001E1460 ! A25A1520127C127800F81400A7EC7FFCEC03E000781301127C123CA27EA27E7E38038002 ! 3900E00460903878182090380FE0001E217D9F24>I<39FFF07FF8390F000780AD90B5FC ! EB0007AF39FFF07FF81D1F7E9E22>II<39FFF0 ! 07FC390F0003E0EC0180150014025C5C5C5C5C5C49C7FC5B497E130FEB13C0EB21E01341 ! EB80F0EB0078A28080A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E9E23>75 ! DI ! IIII82 ! D<3803F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF8 ! 6CB4FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F80180 ! 38C60300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C014 ! 3000801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC00 ! 80B3A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003 ! FE391F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213 ! F8EB7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF0 ! 7FF81FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013C00003 ! 5DEC19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C14 ! 4090383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<39 ! FFF001FF391F800078000F146012076D1340000314807F3901F001001200EBF802EB7C06 ! EB3C04EB3E08131EEB1F10EB0FB0EB07A014E06D5AACEB3FFC201F7F9E22>89 ! D<12FFA212C0B3B3A512FFA2082D7CA10D>91 DI<12FFA21203B3B3A512FFA2082D80 ! A10D>I<120812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96 ! DI<121C12FC121CAA137CEA1D87381E0180EB00 ! C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F ! 19>IIII<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE010 ! 20809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33 ! E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13 ! C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A212 ! 1CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F ! 9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA61 ! 80EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0 ! EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC ! 121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D019018001EEBE01CA200 ! 1C13C0AE3AFF8FF8FF8021147E9326>IIII<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A61270 ! 12781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>III<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F ! 9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8 ! 383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3 ! 132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D807 ! 04138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E147F ! 9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F0137013 ! 7813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>I< ! 38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8 ! A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>II E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fv cmbx12 20.736 14 ! /Fv 14 122 df71 D76 D78 D82 ! D85 D97 D<13FE12FFA412071203B04AB4 ! FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0 ! 17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB ! FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I100 ! D<49B47E010F13F0017F13FC9038FF81FE3A03FE007F80D807F8133F4848EB1FC0ED0FE0 ! 485A003F15F01507485A16F8A212FFA290B6FCA301C0C8FCA4127FA36C7E1678121F7F00 ! 0F15F06C6C13016C6CEB03E06C6CEB0FC03A00FFC07F8090393FFFFE00010F13F8010013 ! C025267DA52C>I105 D<13FE12FFA412071203B3B3AEB512F8A415 ! 3C7DBB1A>108 D110 ! D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000035BEBFD80A2 ! 01FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114 ! D121 D E %EndDVIPSBitmapFont end %%EndProlog %%BeginSetup ! %%Feature: *Resolution 300dpi TeXDict begin %%BeginPaperSize: Letter --- 68,2322 ---- %%EndProcSet ! TeXDict begin 40258431 52099146 1000 600 600 (readline.dvi) @start ! %DVIPSBitmapFont: Fa cmti9 9 1 ! /Fa 1 47 df<121C127F12FFA412FE12380808778718>46 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fb cmr9 9 45 ! /Fb 45 123 df12 DI<12 ! 3C127EB4FCA21380A2127F123D1201A412031300A25A1206120E120C121C5A5A12600917 ! 7A8715>44 DI48 D<13075B5B137FEA07FFB5FC13BFEAF83F1200B3B3A2497E007FB51280 ! A319327AB126>IIII<000C14C0380FC00F90B5128015005C5C14F014C0D80C ! 18C7FC90C8FCA9EB0FC0EB7FF8EBF07C380FC03F9038001F80EC0FC0120E000CEB07E0A2 ! C713F01403A215F8A41218127E12FEA315F0140712F8006014E01270EC0FC06C131F003C ! 14806CEB7F00380F80FE3807FFF8000113E038003F801D347CB126>I<14FE903807FF80 ! 011F13E090383F00F0017C13703901F801F8EBF003EA03E01207EA0FC0EC01F04848C7FC ! A248C8FCA35A127EEB07F0EB1FFC38FE381F9038700F809038E007C039FFC003E0018013 ! F0EC01F8130015FC1400A24814FEA5127EA4127F6C14FCA26C1301018013F8000F14F0EB ! C0030007EB07E03903E00FC03901F81F806CB51200EB3FFCEB0FE01F347DB126>I<1230 ! 123C003FB6FCA34814FEA215FC0070C7123800601430157015E04814C01401EC0380C7EA ! 07001406140E5C141814385CA25CA2495A1303A3495AA2130FA3131F91C7FCA25BA55BA9 ! 131C20347CB126>III68 ! D ! 70 DI76 ! D78 D85 D97 ! DII<153FEC0FFFA3EC007F81AEEB07F0EB3FFCEBFC0F3901F003BF39 ! 07E001FF48487E48487F8148C7FCA25A127E12FEAA127E127FA27E6C6C5BA26C6C5B6C6C ! 4813803A03F007BFFC3900F81E3FEB3FFCD90FE0130026357DB32B>III<151F90391FC07F809039FFF8E3C03901F07FC73907E03F033A0FC01F8380 ! 9039800F8000001F80EB00074880A66C5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380E ! FFF8380C1FC0001CC9FCA3121EA2121F380FFFFEECFFC06C14F06C14FC4880381F000100 ! 3EEB007F4880ED1F8048140FA56C141F007C15006C143E6C5C390FC001F83903F007E0C6 ! B51280D91FFCC7FC22337EA126>III107 ! DI<2703F01FE013FF00FF ! 90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7003F387FD803FE147049 ! 6D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A33C217EA041>I<3903F0 ! 1FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE497FA25BA25BB3486CEB7F ! 80B538C7FFFCA326217EA02B>II<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE7F6C48EB1F804914C049 ! 130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F6DEB3F80160001FF13FC ! 9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325307EA02B>I<903807F0 ! 0390383FFC07EBFC0F3901F8038F3807E001000F14DF48486CB4FC497F123F90C77E5AA2 ! 5A5AA9127FA36C6C5B121F6D5B000F5B3907E003BF3903F0073F3800F81EEB3FF8EB0FE0 ! 90C7FCAAED7F8091380FFFFCA326307DA029>I<3803E07C38FFE1FF9038E38F809038E7 ! 1FC0EA07EEEA03ECA29038FC0F8049C7FCA35BB2487EB512E0A31A217FA01E>II<1330A51370A313F0A21201A2120312 ! 07381FFFFEB5FCA23803F000AF1403A814073801F806A23800FC0EEB7E1CEB1FF8EB07E0 ! 182F7FAD1E>IIIII<3A7FFF807FF8A33A07F8001FC00003EC0F8000 ! 01EC070015066C6C5BA26D131C017E1318A26D5BA2EC8070011F1360ECC0E0010F5BA290 ! 3807E180A214F3010390C7FC14FBEB01FEA26D5AA31478A21430A25CA214E05CA2495A12 ! 78D8FC03C8FCA21306130EEA701CEA7838EA1FF0EA0FC025307F9F29>I<003FB512F0A2 ! EB000F003C14E00038EB1FC00030EB3F800070137F1500006013FE495A13035CC6485A49 ! 5AA2495A495A49C7FC153013FE485A12035B48481370485A001F14604913E0485A387F00 ! 0348130F90B5FCA21C207E9F22>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fc cmsltt10 9 18 ! /Fc 18 122 df<007FB512F0B612F815FCA215F86C14F01E06789927>45 ! D<147E903803FF804913C0011F13E04913F0EB7F879038FE01F8EBF800484813FC000314 ! 7C49137E4848133EA2485AA248C7FCA2123EA45AA500FC147C5AA215FC15F8A26CEB01F0 ! A2007C130315E01407007EEB0FC015806C131FEC3F00381F807EEBC1FC6CB45A6C5B6C5B ! 6C1380D8007EC7FC1F3079AE27>48 D<1438147C14FC14F8130113031307130F133F3803 ! FFF05A13FD13F913E3EA000314E0A41307A214C0A4130FA21480A4131FA21400A45BA213 ! 3EA3387FFFFEB6FCA36C13FE182F77AE27>I77 D97 ! D101 ! D104 D<143814FE1301A46D5A ! 147891C7FCA73803FFF0487FA37EEA00015CA41303A25CA41307A25CA4130FA25CA3007F ! B512C0B612E0A315C01B2F79AE27>I<90B5FC5AA37EEB001F5CA2143EA4147EA2147CA4 ! 14FCA25CA41301A25CA41303A25CA41307A25CA3007FB512F8B612FCA36C14F81E2E7BAD ! 27>108 D<3A03F0FC07E03A07FBFE1FF090B5EA3FF8EDFFFCA2C690388FFC7C9039FE07 ! F03C01FC13E001F813C0A23A01F00F807CA2167801E01300A300034913F8A2D9C01E13F0 ! A40007EB3E01A2D9803C13E0A33A7FF0FF87FCD8FFF9EBCFFEA3D87FF1EB8FFC2720809F ! 27>I<3903FE07F83907FF1FFEEC7FFF91B5128016C039003FFC1FECE00FECC007148014 ! 0049130F137E1680137CA301FC131FA2491400A400015CA249133EA33A7FFF87FFF0B500 ! CF13F8A36C018713F025207F9F27>II<3A07FF803FC0489038C1FFF002C713F802CF13FC6C90B5FC ! D8000F13E3ED03F89138FC01F09138F800604A1300495A5CA25CA291C8FC5BA2133EA413 ! 7EA2137CA3B6FCA526207D9F27>114 D<903807FF1C013F13FE90B5FC5A1207EBFC0139 ! 0FE000FC49137C5BA2153801E01300EA07FEEBFFF8000113FF6C6C13C0010F13E0903800 ! 7FF0EC03F8001C1301003EEB00FC157C007E14FC127FEC01F8EB80039038E01FF090B5FC ! B612C0158000F8EBFE0038703FF01F207B9F27>I<131E133FA2133EA4137EA2007FB512 ! F0B612F8A36C14F0D800FCC7FC5BA41201A25BA41203A25BA2EC01E015F01403A2EC07E0 ! 140F9038F83FC090B5128015006C5B38007FF8EB1FC01D2979A827>I<397FC00FF839FF ! E01FFCA4000713004913F8A4000F1301A2018013F0A4001F1303A2010013E0A314075A14 ! 0F003EEB1FC0003F133FEB80FF90B512FE6C14FFA2000713EF0001EB07FE20207A9F27> ! I<3A03FFE07FF848ECFFFCA36C15F83A001F003E006D6C5A01075BECC1F0903803E3E05D ! 903801F7806DB4C7FC5C147C143C147C14FE1301EB03CF9038078F80EB0F07011E7FEB3E ! 03496C7E01F87F3801F0003A7FFC07FFC0486C4813E0A201FC14C0007F7F26207E9F27> ! 120 D<3A01FFE01FFF486D5AA39138E01FFE3A001E0003C0A2011FEB0780A26DEB0F00A2 ! 151E148001075BA25DA26E5A1303ECC1E0A2ECC3C0EB01E3ECE780A202EFC7FC130014FE ! A25CA2147814F85C13015C13035C130700085BEA7E0F49C8FCEAFE3EEAF8FEB45A5B6C5A ! EA3FC06CC9FC28317F9F27>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fd cmtt9 9 83 ! /Fd 83 127 df<123C127E12FFAF127EAE123C1200A7123C127E12FFA4127E123C082F71 ! AE27>33 D<00101320007C13F838FE01FCAAEAFC00007C13F8A900381370161778AE27> ! I<90383C03C090387E07E0A7EBFE0F01FC13C0A2007FB512FEB7FCA4003F14FE3901F81F ! 80AC003FB512FEB7FCA46C14FE3903F03F00A200075BEBE07EA73803C03C202E7DAD27> ! I<000F1470486C13F8383FC001EA7FE0140315F038FFF00700F914E0A2140F15C0A2141F ! 00FF1480387FE03F1500A26C485A381F807E380F00FEC75AA213015CA213035C13075CA2 ! 130F5C131F5CA2133F91C7FCA24913F090387E01F89038FE03FC9038FC07FEA212019038 ! F80FFF0003149F13F0A2120713E0A2000F14FF9038C007FE121F1380EC03FC000FEB01F8 ! 6CC712F0203A7DB327>37 D<131FEB7FC0497E5A80EA03F1EBE1F8EA07E013C0A513C15C ! 9039C3F1FF80D9E3E113C03803E7E3EBEFC101FF1480913881F800EC01F0EA01FEEBFC03 ! 01F85B00031307D807FC5B120F381FFE0FD83FBE5BEB3F1FD87E1F90C7FC149F38FC0FBF ! 14FE1307ECFC020103EB0F80EB01F8A238FE03FC387E07FE397F1FFF9F6CB61200149F6C ! EB0FFE390FFC03FC3903F000F822307EAE27>I<120FEA1FC0123F13E0A213F0121F120F ! 1201A4120313E01207EA0FC0A2EA3F80EA7F005A5A12F812700C1773AD27>II<127012F812FE7E6C7E6C7EEA0FE06C7E12037F6C7E1200137EA2 ! 7FA2EB1F80A3EB0FC0A4EB07E0ACEB0FC0A4EB1F80A3EB3F00A2137EA25B1201485A5B12 ! 07485AEA3FC0485A48C7FC5A12F81270133A7AB327>I<130F497EA60078EB81E000FEEB ! 87F000FF138FEBDFBF6CB512E06C14C0000F1400000313FCC613F0A2000313FC000F13FF ! 003F14C04814E039FFDFBFF0EB1F8F00FE13870078EB81E00000EB8000A66DC7FC1C207B ! A627>II<12 ! 0FEA3FC013E0EA7FF0A213F8A2123FA2120F120113F01203EA07E0121FEA7FC0EAFF8013 ! 005A12700D14738927>I<007FB512F8B612FCA46C14F81E067C9927>I<121EEA7F80A2EA ! FFC0A4EA7F80A2EA1E000A0A728927>I<1538157C15FCA2140115F8140315F0140715E0 ! 140F15C0141F1580143F1500A25C147E14FE5C13015C13035C13075C130F5CA2131F5C13 ! 3F91C7FC5B137E13FE5B12015B12035BA212075B120F5B121F5B123F90C8FC5A127E12FE ! 5AA25A12781E3A7CB327>II<130E131FA25B5BA25B5A5A127FB5 ! FCA213BFEA7E3F1200B3AA003FB512805A15C01580A21A2F79AE27>II52 ! D<14FF010713C0011F13F04913F890B5FC48EB81FC3803FE0113F8EA07F0EA0FE09038C0 ! 00F8001F1400485A90C8FCA25A127EEB0FF838FE3FFE48B51280B612C015E09038F80FF0 ! 9038E007F890388001FC90C7FC15FE48147E157F153F5A7E127EA3127F6C147F157E6C6C ! 13FE9038C001FC120F9038F007F83907F81FF06CB512E06C14C06C148090383FFE00EB0F ! F820307DAE27>54 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCAC121EEA7F80A2EA ! FFC0A4EA7F80A2EA1E000A20729F27>58 D<120FEA3FC0A2EA7FE0A4EA3FC0A2EA0F00C7 ! FCAC120FEA3F8013C0127F13E0A3123FA2120F120713C0120FA2EA3F80EA7F005A5A12F8 ! 12700B2A739F27>I<153815FC14011407140FEC3FF8EC7FE0ECFFC001031300495AEB1F ! F8495A495A3801FF804890C7FCEA0FFC485AEA7FF0EAFFC05BA27FEA7FF0EA1FF86C7EEA ! 03FF6C7F38007FE06D7E6D7EEB07FE6D7E010013C0EC7FE0EC3FF8EC0FFC140714011400 ! 15381E287CAA27>I<007FB512FEB7FCA4003F14FEC9FCA6003FB512FEB7FCA46C14FE20 ! 127D9F27>I<127012FC7E6C7E7FEA7FF0EA1FF86C7EEA03FF6C7F38007FE06D7E6D7EEB ! 07FE6D7E010013C0EC7FE0EC3FF8EC0FFC1407A2140FEC3FF8EC7FE0ECFFC00103130049 ! 5AEB1FF8495A495A3801FF804890C7FCEA0FFC485AEA7FF0EAFFC05B48C8FC5A12701E28 ! 7CAA27>IIII<007FB5FCB612C08115F87E3907E003 ! FCEC00FE157E157F81A6157EA25D1403EC0FF890B55A15C015F081819038E000FE157FED ! 3F80151FA2ED0FC0A6151F1680153FED7F004A5A007FB55AB65A5D15E06C1480222E7FAD ! 27>I<903803F80E90381FFE1F90383FFFBF90B6FC5A3803FE0F3807F803497E48487E48 ! 5A49137FA248C7123FA25A127E151E150012FE5AAA7E127EA2151E007F143F7EA26C7E15 ! 7F6D137E6C6C13FE3907F001FCEBF8033903FE0FF86CB512F06C14E0013F13C06D1300EB ! 03F820307DAE27>I<387FFFFC14FFB612C06C80813907E00FF81407EC01FC6E7EA2157E ! 157F811680151FA316C0150FABED1F80A3153F1600A25D15FEA24A5A4A5A140F007FB55A ! 5DB65A6C91C7FC14FC222E7FAD27>I<007FB61280B712C0A37E3907E0000FA6ED078092 ! C7FCA4EC07804A7EA390B5FCA5EBE00FA36E5A91C8FCA4ED03C0ED07E0A7007FB6FCB7FC ! A36C15C0232E7FAD27>I<007FB61280B712C0A37E3907E0000FA6ED078092C7FCA4EC07 ! 804A7EA390B5FCA5EBE00FA36E5A91C8FCAC387FFF80B57EA36C5B222E7EAD27>I<9038 ! 07F03890381FFC7C90387FFFFC90B5FC5A3803FC1F3807F00F380FE007EBC003001F1301 ! 1380123F90C7FCA2127EA2157892C7FC5AA8EC1FFF4A1380A3007E6D1300EC00FCA36C13 ! 01A21380121FEBC003120FEBE0073807F00F3803FC1F6CB5FC7EEB7FFE90381FFC78D907 ! F0C7FC21307DAE27>I<007FB512E0B612F0A36C14E039001F8000B3B2007FB512E0B612 ! F0A36C14E01C2E7BAD27>73 D<90381FFFF84913FCA36D13F89038001F80B3AC127CA212 ! FEA2EC3F005C387F81FE13FF6C5B6C5B000713E0C690C7FC1E2F7BAD27>I<387FFFC080 ! B5FC7E5CD803F0C8FCB3AAED0780ED0FC0A7007FB6FCA2B7FC7E1680222E7FAD27>76 ! DI<3A7FF003FFE0486C4813F0A213 ! FC007F6D13E000079038003E0013DEA313CFA3148013C714C0A213C314E0A213C114F0A3 ! EBC0F8A31478147CA2143C143EA2141E141F140FA3EC07BEA3EC03FEEA7FFCEAFFFE1401 ! A26C486C5A242E7FAD27>II<007FB5FCB612E081816C803907E003FE ! EC00FF81ED3F80151F16C0150FA6151F1680153FED7F005DEC03FE90B55A5D5D5D92C7FC ! 01E0C8FCADEA7FFEB5FCA36C5A222E7FAD27>II<387FFFF0B512FE6E7E816C803907E0 ! 1FF014076E7E1401811400A514015D14034A5A141F90B55A5D5DA281EBE01F6E7E14076E ! 7EA816F0EDF1F8A4397FFE01FBB5EBFFF08016E06C48EB7FC0C8EA1F00252F7FAD27>I< ! 90387FC0E03901FFF1F0000713FF5A5AEA3FE0EB801F387F000F007E130712FE5A1403A3 ! EC01E06C90C7FC127E127FEA3FC013F86CB47E6C13F86C13FE6CEBFF80C614C0010F13E0 ! 010013F0140FEC07F81403140115FC1400127812FCA46CEB01F8A26C130390388007F090 ! 38F01FE090B5FC15C0150000F85B38701FF81E307CAE27>I<007FB61280B712C0A439FC ! 03F00FA60078EC0780000091C7FCB3AB90B512C04880A36C5C222E7EAD27>I<3A7FFE01 ! FFF8B54813FCA36C486C13F83A07E0001F80B3AB6D133F00031500A26D5B0001147E6D13 ! FE6C6C485A90387F87F814FF6D5B010F13C06D5BD901FEC7FC262F80AD27>I<3A7FFC03 ! FFE06D5A00FF15F0007F15E0497E3A07E0007E00A46C6C5BA4EBF80100015CA46C6C485A ! A490387E07E0A56D485AA4011F5B149FA3010F90C7FCA5EB07FEA46D5AA26D5A242F7FAD ! 27>II<393FFC1FFE387FFE3F815D38 ! 3FFC1F3903F00FE001F85B1201EBFC1F00005CEBFE3F017E90C7FCEB7F7FEB3F7E14FE6D ! 5AA26D5AA26D5AA21303130780130F80131F80EB3F7E147F497E017E7F141F01FC7F140F ! D801F87F14071203496C7E120701E07F3A7FFC0FFF8000FF15C06D5A497E007F1580222E ! 7EAD27>I<387FFFF0B512F8A314F000FCC7FCB3B3ACB512F014F8A36C13F0153A71B327> ! 91 D<127812F87EA27E127E127F7E7F121F7F120F7F12077F1203A27F12017F12007F13 ! 7E137F7F80131F80130FA280130780130380130180130080147E147F80A21580141F15C0 ! 140F15E0140715F0140315F8140115FC1400A2157C15381E3A7CB327>I<387FFFF0B512 ! F8A37EEA0001B3B3ACEA7FFFB5FCA36C13F0153A7EB327>I<007FB512F8B612FCA46C14 ! F81E067C7E27>95 D<13E0EA01F01207120F13E0EA1FC0EA3F00A2127E127C12FC5AA4B4 ! FC138013C0127FA2123F1380EA0F000C1773B227>I<3803FFC0000F13F04813FC4813FF ! 811380EC1FC0381F000F000480C71207A2EB0FFF137F0003B5FC120F5A383FFC07EA7FC0 ! 130012FE5AA46C130F007F131FEBC0FF6CB612806C15C07E000313F1C69038807F802220 ! 7C9F27>IIIIII<153F90391FC0FF80D97FF313C048B612E05A4814 ! EF390FF07F873A1FC01FC3C0EDC000EB800F48486C7EA66C6C485AEBC01FA2390FF07F80 ! 90B5C7FC5C485BEB7FF0EB1FC090C9FCA27F6CB5FC15E015F84814FE4880EB8001007EC7 ! EA3F80007C140F00FC15C0481407A46C140F007C1580007F143F6C6CEB7F009038F807FF ! 6CB55A000714F86C5CC614C0D90FFCC7FC23337EA027>II<130F497E497EA46D5A6DC7FC90C8FCA7383FFF8048 ! 7FA37EEA000FB3A4007FB512F0B6FC15F815F07E1D2F7BAE27>I<143C147E14FFA4147E ! 143C1400A73801FFFE4813FFA37EC7123FB3B0147E1238007C13FE38FE01FC1303B512F8 ! 14F06C13E06C13803807FE0018407CAE27>II<387FFF80B57EA37EEA000FB3B2007FB512F8B612FCA3 ! 6C14F81E2E7CAD27>I<397F07C01F3AFF9FF07FC09039FFF9FFE091B57E7E3A0FFC7FF1 ! F89038F03FC001E0138001C01300A3EB803EB03A7FF0FFC3FF486C01E3138001F913E701 ! F813E36C4801C313002920819F27>I<387FE07F39FFF1FFC001F713F090B5FC6C800003 ! 13C1EC01FCEBFE005B5BA25BB03A7FFF83FFE0B500C713F0A36C018313E024207F9F27> ! II<387FE0FFD8FFF313C090 ! B512F0816C800003EB81FE49C67E49EB3F8049131F16C049130FA216E01507A6150F16C0 ! 7F151F6DEB3F80157F6DEBFF009038FF83FEECFFFC5D5D01F313C0D9F0FEC7FC91C8FCAC ! 387FFF80B57EA36C5B23317F9F27>I<90380FF03C90383FFE7E90B5FC000314FE5A380F ! FC1F381FE007EBC003383F800148C7FC127EA200FE147E5AA67E007E14FEA2007F1301EA ! 3F80EBC003381FE007380FF81F6CB5FC7E6C147E38007FFCEB0FF090C7FCAC91381FFFF8 ! A24A13FC6E13F8A226317E9F27>I<397FFC03FC39FFFE0FFF023F13804A13C0007F90B5 ! FC39007FFE1F14F89138F00F809138E002004AC7FC5CA291C8FCA2137EAD007FB57EB67E ! A36C5C22207E9F27>I<9038FFF3800007EBFFC0121F5A5AEB803F38FC000F5AA2EC0780 ! 6C90C7FCEA7F8013FC383FFFF06C13FC000713FF00011480D8000F13C09038003FE01407 ! 0078EB03F000FC1301A27E14036CEB07E0EBE01F90B512C01580150000FB13FC38707FF0 ! 1C207B9F27>I<133C137EA8007FB512F0B612F8A36C14F0D8007EC7FCAE1518157EA415 ! FE6D13FC1483ECFFF86D13F06D13E0010313C0010013001F297EA827>I<397FE01FF848 ! 6C487EA3007F131F00031300B21401A21403EBFC0F6CB612E016F07EEB3FFE90390FF87F ! E024207F9F27>I<3A7FFC0FFF80486C4813C0A36C486C13803A07C000F800EBE0010003 ! 5CA2EBF00300015CA2EBF80700005CA390387C0F80A36D48C7FCA3EB3F3FEB1F3EA214FE ! 6D5AA36D5AA26D5A22207E9F27>I<3A7FFE07FFE000FF15F06D5A497E007F15E03A0F80 ! 001F00A36D5B0007143EA414F0EBC1F83903E3FC7CA4EBE79EA200011478A301F713F8A2 ! EBFF0F6C5CA3EBFE0790387C03E024207F9F27>I<393FFC1FFF486C5A168016006C487E ! 3901F807E06C6C485A4A5A017E90C7FC6D5AEB1F7E5C6D5A13076D5A5C80497E130F497E ! 143EEB3E3FEB7E1F90387C0F8001F87F00016D7E3803F0033A7FFE1FFF80A2B54813C06C ! 486C1380A222207E9F27>I<3A7FFC0FFF80486C4813C0A36C486C13803A07E000F80000 ! 0313015D13F00001130301F85B1200A26D485A137CA290387E0F80133EA2011F90C7FC5C ! A2130F149E14BE130714FC1303A25C1301A25CA213035CA213075C1208EA3E0F007F5B13 ! 1FD87E7FC8FCEA7FFE6C5A5B6C5AEA07C022317E9F27>I<001FB512FE4814FFA4903800 ! 01FEEC03FCEC07F8EC0FF0001EEB1FE0C7EA3FC0EC7F80ECFF00495A495A495AEB1FE049 ! 5A495A49C7FC485A4848131E4848133F485A485A485A485AB7FCA46C14FE20207E9F27> ! II<127812FCB3B3B3A21278063A70B327>II<3901F003803903FC07C0000F13 ! 0F381FFE1F393FFF7F80397FBFFF0038FE1FFE486C5A00F813F0387003E01A0A7AAD27> ! I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fe cmss10 10.95 2 ! /Fe 2 42 df<14FCEB01F8EB03F0EB07E0EB0FC0131F1480EB3F005B137E5B12015B1203 ! A2485AA25B120FA25B121FA25B123FA448C7FCA712FEB3A2127FA76C7EA4121F7FA2120F ! 7FA212077FA26C7EA212017F1200137E137F7FEB1F8014C0130FEB07E0EB03F0EB01F8EB ! 00FC165A79C323>40 D<12FC127E7E6C7E6C7E7F12076C7E7F12016C7E7F137E137FA2EB ! 3F80A2131F14C0A2130F14E0A2130714F0A4EB03F8A7EB01FCB3A2EB03F8A7EB07F0A414 ! E0130FA214C0131FA21480133FA2EB7F00A2137E13FE5B485A12035B485A120F5B485A48 ! C7FC127E5A165A7BC323>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Ff cmbx10 12 27 ! /Ff 27 123 df<923B1FFF8001FFC00203B5D8F01F13F0021FDAF87F13FC027F91B67E90 ! 2701FFF803ECC3FF49D9C001EBFE0790270FFE000349481380494815F84A4913F0494815 ! E0495AA201FF4C6C13004A6D6E5A735A70EC00707092C7FCAABA12FCA5C601E0C701E0C8 ! FCB3B0007F9026FFC07FEBFFF0A549467EC543>11 DI<903801FFF8011FEBFF80017F14E090B612F8489038 ! 807FFC3A03FE001FFE486CEB07FF486E7F0280806F7FA36F7F6C90C7FCA26C5AEA00F890 ! C8FCA2150F021FB5FC0103B6FC131F017F13C03901FFFC004813E0000F13804890C7FC48 ! 5A5B485AA2485AA45DA26C6C5BED07BF6C6C010F13FC6CB490391F3FFFE06C9026C0FE1F ! 13F06CEBFFFC6CECF007C66CD9E00113E0010790C9FC342F7DAD38>97 ! DIII ! I<913801FFC0021F13F0027F13FC49B57E49EBC3FF903807FE074948481380EB1FF8EB3F ! F0EB7FE0A349486C13006F5A6F5AED007093C7FCAAB612FCA5C601E0C8FCB3B0007FEBFF ! E0A529467DC523>I<902601FFF013FF010FD9FE031380013FD9FF8F13C090B812E048D9 ! C07F13BF489039001FF83F4848EB0FFC4848EB07FE001F9238FF1FC0496DEB0F8094C7FC ! 003F82A7001F93C7FCA26D5B000F5D6C6C495A6C6C495A6C9038C07FF04890B55A1680D8 ! 078F49C8FC018113F0D80F80CAFCA47F7F13F890B612E016FEEEFFC06C16F0836C826C82 ! 831207481780D81FF8C77ED83FE014074848020113C000FF8149157FA56D15FF007F1780 ! 6D5C6C6C4A1300D81FFCEC0FFE6CB4EC3FFC6C9039E001FFF8000190B612E06C6C158001 ! 0F02FCC7FCD9007F138033427DAC39>II<13FCEA03FF4813804813C0A24813E0A66C13 ! C0A26C13806C1300EA00FC90C7FCA9EB7FC0EA7FFFA512037EB3AFB6FCA518467CC520> ! I ! 107 DI<90287FC003FF80EB07 ! FFB5011F01F0013F13E0037F6D90B57E92B56C4880913DC1FC1FFE03F83FFC913DC3E00F ! FF07C01FFE00039026C7C00790398F800FFF6CD9CF00EC9E0002DE6D01BC7F02FC03F815 ! 80A24A5D4A5DA34A5DB3A7B600C1B60083B6FCA5582D7CAC5F>I<903A7FC003FF80B501 ! 1F13F0037F7F92B57E9139C1FC1FFE9139C3E00FFF00039026C7C0077F6CEBCF0002DE7F ! 02FC81A25C5CA35CB3A7B600C1B61280A5392D7CAC40>II<90397FC01FFCB590B512C002C314F002CF14FC ! 9139DFF03FFF9126FF800F138000039026FE000313C06C496D13E002F015F04A7FEF7FF8 ! A218FC173F18FEA3EF1FFFAB18FE173FA318FC177F18F817FF6E15F06E4913E06E4913C0 ! 6E4913806E6C4813009238E07FFE02EFB55A02E314F002E01480DB1FF8C7FC92C9FCADB6 ! 12C0A538407DAC40>II<9039 ! 7F803FC0B5EBFFF0028313F8028713FC91388FE7FE91389F8FFF0003EB9E0F6C13BCA214 ! F8A29138F007FEED03FC9138E001F892C7FCA35CB3A5B612C0A5282D7DAC2F>I<90391F ! FE078090B512DF000314FF5A380FF803381FE000D83F80133F127F90C7121FA248140FA2 ! 7FA201E090C7FC13F8EBFFC06C13FEECFFC06C14F015FC6C806C806C1580000115C07E01 ! 1F14E01301D9000713F014000078147F00F8143F151F6C140FA37E6C15E0151F6D14C06D ! 133F01F0EB7F809039FC03FF0090B55A00FC5CD8F83F13F0D8F00790C7FC242F7CAD2D> ! IIIII<007FB590387F ! FFF8A5C601F890380FF8006D6CEB07E0013F4A5A6D6C131F6E495A6D6D48C7FC6DEBC0FE ! 6DEBC1FC6DEBE1F8EDF3F06DEBFFE0806E5B6E5B93C8FC6E7F6E7F6E7FA24A7F4A7F4A7F ! EDBFFEEC3F1F91387E0FFF02FE8049486C7F49486C7F49487E49486C7F4A8049486D7E49 ! C76C7ED9FF80131FB500F090B512FEA5372C7EAB3C>I<007FB5398007FFFCA5000101F0 ! C7EA7F806CEE3E006E147E017F157C8017FC013F5D6E1301011F5D6E13036D5DED80076D ! 5DEDC00F6D5D15E0161F6D92C7FC6F5A6D143EEDF87E027F137CEDFCFC023F5B15FF6E5B ! A36E5BA26E5BA26E5BA26E90C8FCA26E5AA2157CA215FC5D1401000F5C383FC003D87FE0 ! 5B1407D8FFF05B140F5D141F4AC9FC387FE07E495A383F87F8EBFFF06C5B00071380D801 ! FCCAFC36407EAB3C>I<001FB7128017C0A39026FE001F138001F05B49491300495C4949 ! 5A48485A4A5B5E4A5B003E5B4A5B5E4A90C7FC5CC7485A5D495B5B495B5D499038C007C0 ! 5B49138015004948130F01FF1580485B5C4849131F5A485B4A133F4849137F4815FF48EB ! 000349011F1300B8FCA37E2A2C7DAB33>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fg cmtt10 12 29 ! /Fg 29 122 df<147014F8497EA7007815F000FEEC03F800FF140701C1131F01E1133F01 ! F913FF6CB612F0001F15C000071500000114FC6C6C13F06D5B010F1380013F13E0497F48 ! B512FC000714FF001F15C0007F15F026FFF9FC13F801E1133F01C1131F0101130700FE14 ! 030078EC00F000001500A76D5A1470252B79B334>42 D<003FB712F04816F8B8FCA27E7E ! D801FCC71203A8EE01F093C7FCA5ED0F804B7EA590B6FCA69038FC001FA56F5A92C8FCA6 ! 177C17FEAA003FB7FC5AB8FCA27E6C16FC2F3D7EBC34>69 D<007FB712F0B812F8A47ED8 ! 01FCC71203A8EE01F093C7FCA6ED0F804B7EA590B6FCA69038FC001FA56F5A92C8FCB038 ! 7FFFF8B57E80A25C6C5B2D3D7DBC34>I<007FB612C0B712E0A46C15C0260003F8C7FCB3 ! B3AD007FB612C0B712E0A46C15C0233D78BC34>73 D<3B7FFF8003FFF0B56C4813F817FC ! A217F86C496C13F0D803F0C7EA7F0016FE4B5A15034B5A5E4B5A4B5A153F4B5A93C7FC15 ! FE4A5A14034A5A5D4A5A4A5A143F4A5AA24A7E13F101F37F13F7ECF7F0EBFFE3ECC3F8EC ! C1FC1481EC00FE5B49137F81498049131F82150F826F7EA26F7EA26F7E150082167E167F ! 823B7FFF8001FFF0B56C4813F817FCA217F86C496C13F02E3D7EBC34>75 ! D<383FFFFE487FB6FCA27E6C5BC648C9FCB3B3A2177017F8EE01FCA9003FB7FC5AB8FCA2 ! 7E6C16F82E3D7EBC34>I<007FB7FCA2B81280A36C1600A229077B7D34>95 ! D97 DIIIII<49B4EB1FE00107 ! 9038C0FFF8011F01F313FC017F90B512FE90B7FC5A48018313F1903AFC007F80FC484890 ! 383FC07849011F130048486D7EA2001F81491307A66D130F000F5DA26C6C495A6D133F6C ! 6C495A9038FF83FF91B5C7FC485C5D4814F001C713C001C190C8FC01C0C9FCA47F6C7E90 ! B512FE6CECFFE06C15F8000715FE48814816809026F0000313C0D83FC09038003FE090C8 ! 120F48ED07F0007E150300FE16F8481501A56C1503007E16F0007F15076C6CEC0FE001E0 ! 143FD81FF8ECFFC0270FFF800F13806C90B612006C5DC615F8013F14E0010F1480010001 ! F8C7FC2F447DAB34>II<14F0497E497E497EA46D5A6D5A6D5A91C8FCA938 ! 3FFFFC487FA47EC7FCB3AD003FB612F04815F8B7FCA27E6C15F0253E79BD34>I107 D<383FFFFE487FB6FCA27E7EC77EB3B3 ! AD003FB612FE4881B81280A26C16006C5D293D7BBC34>I<027FEB1FC03B3FE1FF807FE0 ! D87FF39038E0FFF8B612E303F77F6C91B57E6C01C313F000030181EBE07ED9FE01EB807F ! 6E80491400A2495BA3495BB3A53C3FFF03FFC0FFF048018701E113F8B500CF01F313FCA2 ! 6C018701E113F86C010301C013F0362C81AB34>I<15FF267FFC0713E026FFFE1F7F027F ! 7F91B57E90B67E6C1481C69038FC00FF02F07F4A804A133F5CA291C7FCA35BB3A4277FFF ! FC0FB5FCB56C481480A46C496C1400312C7FAB34>I<14FE903807FFC0011F13F0017F13 ! FC90B57E488048010113803A07FC007FC04848EB3FE049131F4848EB0FF0491307003F15 ! F8491303007F15FC90C71201A300FEEC00FEAA6C14016C15FCA26D1303003F15F86D1307 ! A26C6CEB0FF06C6CEB1FE06D133F6C6CEB7FC03A03FF83FF806C90B512006C5C6D5B011F ! 13F0010713C0010190C7FC272E7AAC34>II<91387F803E903903FFF07F010F13FC013F13FE4913FF90 ! B7FC4813C03903FE001F48487FD80FF07F48487FA248487F5B007F8090C8FCA248815AA9 ! 7E6C5DA27F003F5C7F001F5C6D5B6C7E6C6C131F01FE5B6C6C6CB5FC6C90B6FC6C81013F ! 13FC6D13F8010713E00100138091C7FCAF92383FFFFE4B7F92B61280A26F14006F5B3142 ! 7CAB34>I<4BB4FC273FFFC00F13C048D9E03F13E0B590B512F002E114F86C13E76C01EF ! 130FD8000F13F8ECFFE09238C007F092388003E092C8FC5C5CA25CA25CA45CB1003FB6FC ! 4881B77EA26C5D6C92C7FC2D2C7DAB34>I<90390FFF078090B5EACFC0000314FF5A5A5A ! 383FF803397F80007F90C7123F12FE48141FA47E007FEC0F8001C090C7FCEA3FF8381FFF ! E06C13FF6C14E06C14F8C614FE011F7FD9007F1380020313C09138003FE0ED0FF0003C14 ! 07007EEC03F800FE1401A27EA36D13036D14F06D13076DEB1FE001FE13FF90B612C01680 ! 1600D8FC7F13FC6D13F0D878071380252E79AC34>III<3B3FFFE00FFFF8486D4813FCB5 ! 15FEA26C16FC6C496C13F8D801FCC7EA7F000000157EA26D14FE017E5CA2017F13016D5C ! A2EC8003011F5CA2ECC007010F5CA2ECE00F01075CA36D6C485AA3ECF83F010191C7FCA2 ! 6E5A0100137EA2ECFEFEEC7EFCA2147F6E5AA36E5A6E5A2F2B7EAA34>I<3B7FFFC01FFF ! F0B56C4813F802F014FCA202E014F86C496C13F0D801F8C7EAFE005E7F000014016D5C13 ! 7E1503017F5C7FA26E485A131F14C0010F495AA214E00107495AA2EB03F04BC7FCA2EB01 ! F8A2157EEB00FCA2EC7C7CEC7EFCA2EC3EF8143FA26E5AA2140F5DA35DA2141F5DA2143F ! 92C8FCA25C001F137E383F80FE486C5A13C1EB03F81307EB1FF06CB45A5C6C5B91C9FC6C ! 5AEA03F02E427DAA34>121 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fh cmbx12 13.14 54 ! /Fh 54 122 df46 D48 D<15F014011407141F147FEB03FF137FB6FCA313FC1380C7FCB3 ! B3B2007FB712E0A52B4777C63D>IIIIII<121F7F7F13FE90B812E0A45A18C0188018005F5FA25F48 ! 5E90C8EA07E0007E4B5A5F007C151F4CC7FC167E5E485D15014B5A4B5AC8485A4B5AA24B ! C8FC157EA25D1401A24A5A1407A24A5AA2141FA24A5AA2147FA314FFA3495BA45BA55BAA ! 6D5BA26D90C9FCEB007C334B79C93D>IIII65 ! DI<93261FFF80EB01C00307B500F81303033F02FE13074AB7EA800F0207EEE01F ! 021F903AFE007FF83F027F01E0903807FC7F91B5C73801FEFF010301FCEC007F4901F081 ! 4901C0150F4949814990C97E494882495A48498248197F5C48193F5C48191F5C48190FA2 ! 485BA21A075AA391CDFCA2B5FCAD7EA280F207C0A27EA36C7F1A0F6C1A80806C191F6E18 ! 006C61806C197E6C6D177C6D6C17FC6D6C4C5A6D6D4B5A6D6D4B5A6D01F0ED1FC06D01FC ! 4B5A010001FF03FFC7FC6E01E0EB07FE021F01FEEB3FFC020790B612F0020116C0DA003F ! 92C8FC030714F8DB001F13804A4D79CB59>IIII72 ! DI75 DIII82 ! DI<003FBB12C0A5DA80019038FC001FD9FC001601D87FF09438007FE001 ! C0183F49181F90C7170FA2007E1907A3007C1903A500FC1AF0481901A5C894C7FCB3B3A7 ! 49B812FCA54C4A7CC955>IIII89 ! D97 DI<91380FFF8091B512F8010314FF010F158090263FFE0013C0 ! D97FF8EB1FE0D9FFE0EB3FF04849EB7FF8484913FF4890C7FC5A5B121F5B003FED7FF0EE ! 3FE0007FED1FC093C7FC5BA212FFAC127F7FA2123FA26D153E121F6D157E6C167C6C6D14 ! FC6C16F86C6D13036C01F0EB07F0D97FFCEB1FE06DB4EBFFC0010F90B5120001035C0100 ! 14F0020F13802F337CB137>IIIIII<13FCEA03FF487F487FA2487FA66C ! 5BA26C5B6C90C7FCEA00FC90C8FCACEB7FC0B5FCA512037EB3B3B61280A5194D7BCC22> ! I107 D ! I<90287FC001FFE0EC7FF8B5010F01FC0103B5FC033F6D010F804B6D6C4814E0DBFE0790 ! 26C03F817F9126C3F0019138FC007F0003D9C7E0DAE1F8806CDA8000D9F1E06D7E02CFC7 ! EBF3C002DE91267FF780131F02FC03FFC77FA24A5DA24A5DA34A5DB3A9B6D8C03FB5D8F0 ! 0FB512FCA55E317BB067>I<903A7FC001FFC0B5010F13F8033F13FE4B7F9126C1FE077F ! 9126C3F0037F00039038C7C0016CD9CF8080150002DE7F02FC81A25CA25CA35CB3A9B6D8 ! C07FEBFFE0A53B317BB044>I<913807FF80027F13F80103B6FC010F15C090261FFE017F ! 903A7FF0003FF8D9FFC0EB0FFC48496D7E4890C76C7E4817804980000F17C048486E13E0 ! A2003F17F049157FA2007F17F8A400FF17FCAB007F17F8A36C6CEDFFF0A3001F17E06D5C ! 000F17C06C6C4A13806C17006C6D495A6C01E0EB1FFC6D6C495A903A3FFE01FFF0010FB6 ! 12C0010392C7FCD9007F13F80207138036337DB13D>I<90397FC00FFFB5017F13F002C1 ! B512FC02C714FF9126CFF80F7F9126FFC00313E0000391C77F6C01FC6E7E4A6E7E5C4A6E ! 7E848319808319C0A47113E0AC4D13C0A319805FA219004D5A804D5A6E4A5A6E4A5A02FF ! 495BDB80075B9126EFF01F5B02E7B548C7FC02E314F802E014E0DB0FFEC8FC92CAFCAFB6 ! 12C0A53B467CB044>I<9039FF803FE0B5EBFFF8028113FE02837FDA87E11380EC8F8300 ! 03D99F0713C06C139E14BCA214F8A24A6C13806F13004A6C5A93C7FCA45CB3A7B612E0A5 ! 2A317CB032>114 D<90390FFF8070017FEBF1F048B6FC1207380FFC01391FE0003F4848 ! 130F491307127F90C712035A1501A27FA213E06D90C7FC13FE387FFFF0ECFFC015F06C14 ! FC6C14FF6C15806C15C06C15E0C615F0013F14F8010714FCEB007F14019138003FFE150F ! 0078140700F81403A26C1401A37E16FC6C14036D14F87F6DEB07F001F8EB1FE001FFEBFF ! C091B51280D8FC7F1400D8F81F13FCD8E00313C027337CB130>I<14F8A61301A41303A2 ! 1307A2130FA2131F133F137F13FF1203000F90B512F0B7FCA426007FF8C7FCB3A6167CAA ! 013F14F880A290391FFE01F0010F1303903907FF87E06DEBFFC06D14806D6C1300EC0FFC ! 26467EC430>IIIII<007FB500C090387FFFE0A5C6 ! 01F0C73803F8006E5D017F5E6E1407013F5E6E140F011F5E6E141FA26D6D91C7FC5F6D15 ! 3E6F137E6D157C6F13FC6D5DEDF0016D5DEDF803027F5C15FC1607DA3FFE5B160F021F5C ! EDFF1F6E91C8FC16BF6E13BE16FE6E5BA36E5BA26E5BA26F5AA26F5AA26F5AA393C9FC5D ! 153E157E157CD81F8013FC486C5B387FE001D8FFF05B14035D14074A5A49485A007F49CA ! FCEBC07E383F81FC6CB45A6C5B6C13C0C648CBFC3B467EAF41>I ! E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fi cmsl10 10.95 48 ! /Fi 48 122 df12 ! DI<007FB5FCA2B512FEA418067C96 ! 1E>45 D48 D<157015F014011407143F903803FFE0137FEBFFCFEBF80F1300141F ! 15C0A5143F1580A5147F1500A55C5CA513015CA513035CA513075CA5130F5CA3131F497E ! B612F8A31D3D78BC2D>I<17E016011603831607A2160FA2161F83163FA2167F167716F7 ! EEE7FCED01E316C3150316831507EE03FEED0F01150E151E151C153C03387FED78001570 ! 15F05D4A4880177F4A5AA24AC7FCA2020E81173F5C021FB6FC5CA20270C7EA3FE0171F5C ! A2495AA2494881170F49C8FCA2130EA24982013C1507A2137CD801FE4B7E2607FF80EC3F ! FEB500F00107B512FC19F85E3E417DC044>65 D<013FB7FC18E018FC903B007FE00007FE ! 6E48903801FF809438007FC05DF03FE0F01FF0A3027F16F892C8FCA54A16F04A153F19E0 ! 187F19C0F0FF8001014B13004A4A5A4D5AEF1FF04D5ADC03FFC7FC49B612F8EFFF8002F8 ! C7EA3FE0EF0FF0EF07FC717E010715014A81711380A319C0130F5CA5011F4B13805C1900 ! 5F601707013F4B5A4A4A5A4D5A4D5A017F913801FF8001FF020F90C7FCB812FC17F094C8 ! FC3D3E7DBD40>II<013FB7FC18E0 ! 18F8903B007FF0000FFE6E48EB01FF9438007FC04B6E7E180F85727E727E147F4B6E7EA2 ! 727EA302FF178092C9FCA54918C05CA41A8013034A5DA41A0013074A5DA261A24E5A130F ! 4A5E180F61181F61011F4C5A5C4E5A4EC7FC4D5A4D5A013F4B5A4A4A5AEF3FE0EF7F8001 ! 7F4A48C8FC01FFEC1FFCB812F0178004FCC9FC423E7DBD45>I<013FB812F8A39026007F ! F0C7127F6E48140F18034B14011800A31978147F4B1570A502FF147092C7FCA3190017F0 ! 495D4A1301A21607161F91B6FC495DA29138FC003F160F1607160301075D5CA219E01801 ! 19C0010FEC07004A90C712031980A218071900011F5E5C181EA2183E183C013F167C4A15 ! FC4D5A1707017F151F01FF4AB45AB9FCA2603D3E7DBD3E>I<013FB812E0A3903A007FF0 ! 00016E48EB003F180F4B14071803A31801147F4B15C0A514FF92C71270A395C7FC17F049 ! 5D5C160116031607161F49B65AA39138FC003F160F160701075D4A1303A5010F4AC8FC5C ! 93C9FCA4131F5CA5133F5CA3137FEBFFF0B612F8A33B3E7DBD3B>I<013FB5D8F807B6FC ! 04F015FEA29026007FF0C7380FFE006E486E5AA24B5DA4180F147F4B5DA4181F14FF92C8 ! 5BA4183F5B4A5EA491B8FC5B6102FCC8127FA318FF13074A93C7FCA45F130F4A5DA41703 ! 131F4A5DA41707133F4A5DA3017F150F496C4A7EB6D8E01FB512FC6115C0483E7DBD44> ! 72 D<011FB512FC5BA29039003FF8006E5AA25DA5143F5DA5147F5DA514FF92C7FCA55B ! 5CA513035CA513075CA5130F5CA5131F5CA3133F497E007FB512F0A2B6FC263E7EBD21> ! I<013FB500F8010FB5FC4C5BA29026007FF0C7000313E06E486E130019FC4B15F04E5A4E ! 5A4E5A061EC7FC027F5D4B5C4D5A4D5AEF07804DC8FC02FF141E92C7127C5FEE01E04C5A ! 4C5A49021FC9FC4A5B5E4C7E5D03077F01035B9139FC1F3FE0153C4B6C7E15F09139FFE0 ! 0FF84913C092380007FC5C4A6D7E5C707E130F4A6D7F84177F717EA2011F6F7E5C717EA2 ! 717EA2013F6F7E5C84A2017F83496C4A13E0B600E0017F13FFA24B90B6FC483E7DBD47> ! 75 D<013FB512FEA25E9026007FF8C8FCEC3FE0A25DA5147F5DA514FF92C9FCA55B5CA5 ! 13035CA513075CA21838A21870130F5CA218E0A3011F15014A15C01703A21707EF0F8001 ! 3F151F4A143F177FEFFF00017F140301FF143FB9FC5FA2353E7DBD39>I<90263FFFF093 ! 381FFFF85013F0629026007FF8EFF000023F4D5AA2023B933801DFC0A2DA39FCED039FA2 ! F1073F14790271040E5BEC70FE191C19381A7F02F01670DAE07F94C7FC19E0A2F001C062 ! 01016D6C495A02C05FF00700A2180E6F6C14010103161C028003385BA218706F7EF0E003 ! 13070200DA01C05BA2923907F00380A294380700075B010E902603F80E5C5FA25F190F01 ! 1E6D6C5A011C605FA2EEFDC0DB00FF141F013C5D013860013C92C7FC017C5C01FE027E14 ! 3F2607FF80017C4A7EB500FC037FB512E004785E4A1338553E7CBD53>I<90263FFFE002 ! 3FB5FC6F16FEA29026003FF8020313C0021F030013004A6C157C023B163C6F1538143981 ! 0238167802787FDA707F157082153F82031F15F002F07FDAE00F5D821507820303140101 ! 0180DAC0015D82811780047F1303010315C04A013F5C17E0161F17F0040F1307010715F8 ! 91C7000791C7FC17FC160317FE04015B4915FF010E6E130E188E177F18CEEF3FDE011E16 ! FE011C6F5AA2170FA21707133C01386F5A133C017C150113FE2607FF801400B512FC1870 ! 5C483E7DBD44>I<923803FF80031F13F09238FE01FE913903F0003FDA0FC0EB1FC0DA3F ! 80EB07E0027EC76C7E49486E7E49488149486E7E4948157F495A013F17804948ED3FC049 ! C9FCA24848EE1FE012035B000718F05B120FA2485A19F8123F5BA2127FA219F04848163F ! A5F07FE0A35BF0FFC0A219805F19007F4D5A127F4D5A60003F160F6D5E001F4C5A4D5A6C ! 6C4B5A95C7FC6C6C15FE00034B5A6C6C4A5A6C6C4A5A017FEC1FC06D6C495AD90FE001FE ! C8FC903903F807F80100B512C0DA0FFCC9FC3D4276BF47>I<013FB612FEEFFFE018F890 ! 3B007FF0000FFC6E48EB01FF7113804BEC7FC0183F19E0F01FF0A2147F5D19F8A402FFED ! 3FF092C8FCA219E0A2F07FC05B4AEDFF8019004D5A4D5AEF0FF80103ED3FE04A903801FF ! 8091B648C7FC17F002FCCAFCA213075CA5130F5CA5131F5CA5133F5CA3137F497EB612E0 ! A25D3D3E7DBD3E>I<013FB612F017FF18E0903B007FF0003FF86E48EB07FCEF01FE4B6D ! 7EF07F8019C0183F19E0147F4B15F0A502FFED7FE092C8FCA219C0F0FF80A2494B13004A ! 5D4D5AEF0FF04D5AEF7F800103DA07FEC7FC91B612F017809139FC0007E0EE03F8EE00FC ! 0107814A147F717EA284A2130F5CA484011F157F5CA41902013F17075CA2F0F00F017F17 ! 0E496C143FB600E0011F131C94380FF83C4B01071378CA3801FFE09438003F8040407DBD ! 43>82 D<9238FF80070207EBE00F021FEBF81E91387F00FE02FCEB1F3ED903F0EB0FFE49 ! 481307494813034AEB01FC49C7FC491400133E137E177C491578A57F1770A26D15008080 ! 80EB7FFEECFFE06D13FEEDFFC06D14F06D14FC010380010080143F02031480DA003F13C0 ! 15031500EE7FE0163F161FA2160F121CA31607160F003C16C0A31780003E151F1700007E ! 5D007F153E6D5C16FC01E0495AD87DF0495AD8FCFCEB0FC03AF87F803F8027F01FFFFEC7 ! FCD8E00713F839C0007FC030427BBF33>I<0007B912F0A33C0FFE000FF8003F01F0160F ! 01C04A13034848160190C7FC121EF000E048141F5E1238A212781270153F5E5AA3C81600 ! 157F5EA515FF93C9FCA55C5DA514035DA514075DA5140F5DA3141FEC7FFC0003B7FCA33C ! 3D76BC42>II87 ! D97 ! DI ! IIII<177C913907F803FE91393FFE0F8F9139FC0F9C3F903901F007F89039 ! 07E003E0D90FC013F0011F903801F80C02801400133FD97F007FA315035B495CA3017E49 ! 5A5E150F6D5C6D495A90263F803EC7FCECC0FC903871FFF09038E07F8091C9FC485AA47F ! A27F90B512F8EDFF806C15E016F86D8048B6FC3A07E0000FFED80F801300003FC8127F00 ! 3E815A00FC815AA25E163EA25E6C15FC007C4A5A6C4A5A6CEC0FC0D80FC0013FC7FC3903 ! F801FCC6B512F0010F90C8FC303D7FA82D>I<147FEB3FFFA313017FA25CA513015CA513 ! 035CA4ED07F80107EB1FFF9139F0781FC09138F1E00F9139F38007E0ECF70002FE14F049 ! 5A5CA25CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B4915 ! 00A300015D486C491380B5D8F87F13FCA32E3F7DBE33>I<1478EB01FE130314FFA25B14 ! FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A5133F ! 1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>I<147FEB3FFFA31301 ! 7FA25CA513015CA513035CA501070103B5FC02F014FEA26F13F06F1380EEFE00010F14F8 ! 4A485AED03C04B5A031FC7FC153E011F13784A5AECC3E0ECC7F0ECCFF814FF497F14F9EC ! E1FE14C04A7E4A7E4980017E133F82151F82150F01FE8049130782A2000181486C49B4FC ! B5D8F03F13F04B13E0A2303F7EBE30>107 D<143FEB1FFF5BA213017FA214FEA5130114 ! FCA5130314F8A5130714F0A5130F14E0A5131F14C0A5133F1480A5137F1400A55B5BA4EA ! 03FF007F13F8A2B5FC183F7DBE1A>I<902707F007F8EB03FCD803FFD91FFF90380FFF80 ! 913CE0781FC03C0FE09126E1E00FEBF0073E001FE38007E1C003F090260FE700EBE38002 ! EEDAF70013F802FC14FE02D85C14F84A5CA24A5C011F020F14074A4A14F0A5013F021F14 ! 0F4A4A14E0A5017F023F141F91C74914C0A549027F143F4992C71380A300014B147F486C ! 496DEBFFC0B5D8F87FD9FC3F13FEA347287DA74C>I<903907F007F8D803FFEB1FFF9139 ! E0781FC09138E1E00F3B001FE38007E090380FE70002EE14F014FC14D814F85CA24A130F ! 131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B491500A300015D486C49 ! 1380B5D8F87F13FCA32E287DA733>II<91387F01FE903A7FFF ! 0FFFC09139FE3E03F09238F801F8903A03FFE000FE6D49137F4B7F92C713804A15C04A14 ! 1FA218E0A20103150F5C18F0A3171F010716E05CA3173F18C0130F4A147F1880A2EFFF00 ! 4C5A011F5D16034C5A6E495AEE1FC06E495AD93FDC017EC7FC91388F01F8913883FFE002 ! 8090C8FC92C9FC137FA291CAFCA45BA25BA31201487EB512F8A3343A81A733>I<91390F ! E003C0DAFFFC1380903903F81E0790390FE0070F90391F80038FD97F0013DF01FE130148 ! 48903800FF00485A1207485A8248485C123F495CA2485AA2150112FF90C75BA41503A25E ! A37E15077F003F4A5A151F6C6C133F6C6C137F000714FF3903F003CF3A00FC0F8FE09038 ! 3FFE0FEB0FF090C7FC151F5EA5153F5EA4157F4B7E023F13FEA32A3A7AA730>I<903907 ! F01F80D803FFEB7FE09138E1E1F09138E387F839001FE707EB0FE614EE02FC13F002D813 ! E09138F801804AC7FCA25C131FA25CA4133F5CA5137F91C8FCA55B5BA31201487EB512FE ! A325287EA724>I<9138FF81C0010713E390381F807F90397C003F8049131F4848130F5B ! 00031407A248481400A27FA27F6D90C7FCEBFF8014FC6C13FF6C14C015F06C6C7F011F7F ! 13079038007FFE1403140100381300157EA2123C153E157E007C147CA2007E147815F800 ! 7F495A4A5A486C485A26F9E01FC7FC38E0FFFC38C01FE0222A7DA824>II<01FE147F00FFEC7FFF4914FEA2000714030003 ! 1401A34914FCA4150312074914F8A41507120F4914F0A4150F121F4914E0A2151FA3153F ! 4914C0157F15FFEC01DF3A0FC003BFE09138073FFF3803F01E3801FFF826003FE0138028 ! 2977A733>III<48B539C07FFFC0A33C000FFE003FF800 ! 6D48EB1FE0010315800101023EC7FC6E133C01005C027F5B6F5A91383F81C0EDC380DA1F ! C7C8FC15EFEC0FFE6E5A5D140381A24A7E140FEC1E7F023C7FEC383F02707FECE01F0101 ! 80903803C00F49486C7ED90F007F491303017E80D801FE80D807FF497EB5D8803F13F8A3 ! 32277FA630>I<90B539E007FFF05E18E0902707FE000313006D48EB01FC705A5F01014A ! 5A5F16036E5C0100140794C7FC160E805E805E1678ED8070023F13F05EED81C015C19138 ! 1FC38015C793C8FC15EF15EEEC0FFCA25DA26E5AA25DA26E5A5DA24AC9FC5C140E141E14 ! 1C5C121C003F5B5A485B495A130300FE5B4848CAFCEA701EEA783CEA3FF0EA0FC0343A80 ! A630>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fj cmr8 8 29 ! /Fj 29 118 df<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A5A ! 5A126009157AAD14>39 D45 D<130C133C137CEA03FC12FFEAFC ! 7C1200B3B113FE387FFFFEA2172C7AAB23>49 D<4A7E4A7EA34A7EA24A7EA3EC1BF81419 ! A2EC30FCA2EC70FEEC607EA24A7EA349486C7EA2010380EC000FA201066D7EA3496D7EA2 ! 011FB57EA29038180001496D7EA349147EA201E0147F4980A20001ED1F801203000716C0 ! D80FF0EC3FE0D8FFFC0103B5FCA2302F7EAE35>65 DIIIII76 DI80 D82 D<90383F80303901FFF0703807C07C390F000E ! F0001E13074813034813011400127000F01470A315307EA26C1400127E127FEA3FE013FE ! 381FFFE06C13FC6C13FF00011480D8003F13E013039038003FF0EC07F81401140015FC15 ! 7C12C0153CA37EA215787E6C14706C14F06CEB01E039F78003C039E3F00F0038E07FFE38 ! C00FF01E2F7CAD27>I<007FB712F8A29039000FC003007C150000701638A200601618A2 ! 00E0161CA248160CA5C71500B3A94A7E011FB512E0A22E2D7EAC33>I91 D<13FF000713C0380F01F0381C00F8003F137C80A2 ! 143F001E7FC7FCA4EB07FF137F3801FE1FEA07F0EA1FC0EA3F80EA7F00127E00FE14065A ! A3143F7E007E137F007FEBEF8C391F83C7FC390FFF03F83901FC01E01F207D9E23>97 ! DII101 D<130FEB1F80EB3FC0A4EB1F80EB0F0090C7FCA8EB07C0 ! 13FFA2130F1307B3AD1230127838FC0F80A21400485AEA783EEA3FF8EA07E0123C83AD16 ! >106 DI<3807C0FE39FFC3FF809038C703E0390FDE01F0EA07F8 ! 496C7EA25BA25BB2486C487E3AFFFE1FFFC0A2221E7E9D27>110 ! DI<3807C0FE39FFC7FF809038CF03E0390FDC01F039 ! 07F800FC49137E49133E49133FED1F80A3ED0FC0A8151F1680A2ED3F00A26D137E6D137C ! 5D9038FC01F09038CE07E09038C7FF80D9C1FCC7FC01C0C8FCA9487EEAFFFEA2222B7E9D ! 27>I<380781F838FF87FEEB8E3FEA0F9CEA07B813B0EBF01EEBE000A45BB0487EB5FCA2 ! 181E7E9D1C>114 D<3801FE183807FFB8381E01F8EA3C00481378481338A21418A27E7E ! B41300EA7FF06CB4FC6C13C06C13F0000113F838001FFC130138C0007E143EA26C131EA2 ! 7EA26C133CA26C137838FF01F038E3FFC000C0130017207E9E1C>I<1360A413E0A31201 ! 1203A21207121FB512F0A23803E000AF1418A714383801F03014703800F860EB3FE0EB0F ! 80152A7FA81B>II E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fk cmsy9 9 2 ! /Fk 2 106 df104 D<126012F07EA21278127CA27EA2 ! 121E121FA26C7EA212077FA26C7EA212017FA26C7EA21378137CA27FA2131E131FA2EB0F ! 80A2130714C0A41480130FA2EB1F00A2131E133EA25BA2137813F8A2485AA25B1203A248 ! 5AA25B120FA248C7FCA2121E123EA25AA2127812F8A25A1260124A7CB71E>I ! E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fl cmsltt10 10.95 37 ! /Fl 37 122 df<137C13FE487E1480A214C0A3EA007F130F131F1480A3133F14005B137E ! 13FE485A1203485AEA1FF0485AB45A5B90C7FC127C1238121D6BB730>39 ! D<007FB612E0B712F016F8A316F06C15E02507769E30>45 D48 ! DI<913903FC01E091391FFF81F0027F13E391B512F7010314FF ! 5B49130790261FF80113E049487ED97FC0137F495A91C7123F485A484815C0A2485A5B12 ! 0F5B001FED1F80491500003F92C7FC5BA3127F90CAFCA45A5AA716F86C4A7EA26C14035E ! A26D1307003F5D6D130F001F4A5A6D133F6C6C495A6D495A2607FF0790C7FC6CEBFFFE6C ! 5C6C5C6D13E0011F1380D907FCC8FC2C3A78B830>67 D<013FB512E04914FC90B67EEEFF ! 806D15C07F902607F00013E0EE3FF0161FEE0FF81607010F15FC4A1303A2160117FEA201 ! 1F14005CA5133F5CA5017FEC01FC91C7FCA3EE03F8A25B49EC07F0A2160F17E0161F0001 ! 16C049143FEE7F80EEFF005D4B5A00034A5A49EB1FF8ED7FF0007FB65AB75A5E4BC7FC15 ! F86C14C02F387EB730>I<013FB7FC49168090B812C0A27F7FD903F8C7EA3F80A4177F13 ! 074A150083171E94C7FCA2130F5CED01E04B7E821507131F91B55AA55B9138800FE0A46F ! 5A017F90C9FC91CAFCA417F0494A7E491403A416071201495DA2003FB7FC5AB8FCA26C5E ! 6C5E32387EB730>I<903B7FFF801FFFE090B56C4813F003E014F8A203C014F06D496C13 ! E0903B07F00001FC00A41603130F4A5CA41607131F4A5CA4160F133F91B65AA55B91C7EA ! 1FC0A4163F5B495DA4167F12014992C7FCA45E1203495CA23B7FFF801FFFE0B56C487FA4 ! 6C496C5B35387EB730>72 D<0203B512F04A14F8A46E14F091390001FC00A41503A25EA4 ! 1507A25EA4150FA25EA4151FA25EA4153FA25EA4157FA293C7FC123E127F5D6D5B38FF00 ! 014A5A6C13079038E03FF86CB55A5D6C5C000791C8FC6C13FC38007FE02D3979B730>74 ! D<90387FFFF890B57EA46D5BD903F8C8FCA513075CA5130F5CA5131F5CA5133F5CA5137F ! 91C9FCA4EE03C049EC07E049140FA4161F12014915C0A2007FB7FCB8FCA317806C16002B ! 387DB730>76 DI<1278127C12FEA2 ! 7EA27EA27FA2123F7FA2121F7FA2120FA27FA212077FA212037FA21201A27FA212007FA2 ! 7F80A2133FA280A2131F80A2130F80A2130780A21303A280A2130180A2130080A280A215 ! 80A2143F15C0A2141FA3140FEC07801A4771BE30>92 D<003FB612F05AB712F8A36C15F0 ! 7E25077C7D30>95 D<903803FF80011F13F0017F13FC90B57E4880488149C67F49133F48 ! 486D7E0003140F5BC65A90C77FA25EA2EC3FFF0107B5FC133F90B6FC1203485D48EBE01F ! 381FFE00EA3FF0D87FC0133F5B48C75B5AA2157FA215FF6C4990C7FCEB8007267FE07F13 ! FE90B7FC6C16806C14BF6C020F130000039038F803FEC601C0C8FC292A79A830>97 ! DIIIII<913907F801FE913A3F ! FF0FFF804A13BF49B712C05B5B90260FFC0FEB1F8090271FF007F8130049486C6CC7FCEC ! C001EB7F801400A25B5BA315034B5A7F6D495A9138803FE090383FE0FF49B55A90B65A93 ! C8FC4814FC01F913F09038F87F80000390CAFC5BA27F120190B512FCEDFF8016E04815F8 ! 488148813A1FF00007FFD83FC01300498048C86C7E007E151F12FE5AA2163F94C7FC5E5E ! 6C4A5AD87F80EB07FC6D131F3A3FFC01FFF86CB612E06C5D6C92C8FC000114FC6C6C13F0 ! 010F90C9FC323E7EA730>I<15E0EC03F8140781A35D6E5A6E5A91C8FCA990B512C04880 ! 5AA27E7EEB001F5DA5143F5DA5147F92C7FCA55C5CA513015CA2007FB61280B712C016E0 ! A216C06C1580233979B830>105 D<163816FE150116FFA316FEED00FC16781600A991B5 ! 12F04914F8A47FEC000716F0A4150FA216E0A4151FA216C0A4153FA21680A4157FA21600 ! A45DA25DA414015DA414035D1407003C5C007E130FB4495A4A5A14FF90B55A92C7FC6C5B ! 6C13F86C13E000071380284E7EB830>II<90383FFFF8497F81A37F90380001FCA514035DA514 ! 075DA5140F5DA5141F5DA5143F5DA5147F92C7FCA55C5CA2003FB612F04815F8B712FCA2 ! 6C15F86C15F026387BB730>I<913903F001F83B01FF0FFC07FE489039BFFE1FFF91B500 ! 7F138093B5FC18C06C9039FC3FFE1F3B003FF81FFC0F02E013F002C013E0A2028013C091 ! 39003F801F491680A2017E1400A401FE49133F49017E1400A5000102FE5B4949137EA500 ! 03010114FE01F0495BA23C3FFE07FF03FF80486C48018713C0B5009F01CF13E0A26C010F ! 018713C06C486C01031380332881A730>IIII<91383FE00F903A01FFF81F800107EBFE3F011F13FF49 ! 14FF5B9038FFF03F48EB800F48496C1300D807FC7F48487F5B485A48487F5E5B127F90C8 ! FC15015A485DA41503A25E6C1407150F6C141F7F6C6C133FEDFFF0381FF001EBFC0F6CB6 ! FC7E6C14EF6CEC8FE039007FFE0FEB0FF090C7FC151F5EA5153F5EA591381FFFFE4A7F5C ! A2806E5B293C7AA730>II<91387FF838903903FFFE ! 7C011FEBFFFC5B5B90B6FC48EBC01F3903FC0007491303484814F85BA3ED01F06D90C7FC ! EA03FEEBFFF06CEBFF806C14F06D13FC011F13FF01071480D9007F13C0020113E0EC001F ! 001FEC0FF06D1307003F1403A27FA21507486CEB0FE0151F6DEB3FC09039FC03FF8090B6 ! FC1600B612FC00FC5C013F13E0267807FEC7FC262A79A830>III< ! 3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B03F00007F0006D5C150F00 ! 015D151F5E153F6D91C7FC5D0000147E15FE5D140101FE5BA290387E03F0A24A5AA24A5A ! 137F4A5A133F4AC8FCA2147E14FE5C131F5CA25C6D5A2B2778A630>I<3B3FFFC01FFFE0 ! 486D4813F0B515F8A26C16F06C496C13E0D807E0C7EA7E00A35EA34B5AA34B5A143E147F ! 4A485A13E1A249495A158FEBC7EF9138CF9F8014DF13CF029F90C7FC15BFEBDF8FEC0FBE ! A201FE13FE5D13FCA25D496C5A3903E003E02D2779A630>I<903AFFFE07FFF0486D4813 ! F84816FCA26C16F86C496C13F0903A07F001FC006D6C485A6D6C485A4B5A6D6C485A4B5A ! DA7F7FC7FC157EEC3FFE6E5A5D6E5A5DA24A7E143F4A7EA2ECFCFCEB01F8903803F07E90 ! 3807E07F49487E011F8090383F801FD97F007F01FE6D7E263FFFC0B5FC4801E11480B515 ! C0A26C16806C01C014002E277DA630>I<90B53801FFFE4802837F481780A26C17006C02 ! 015B903A07E0001FC05F163F6E91C7FCA20103147EA25E804B5A13014B5AA26E485AA201 ! 00495AA24B5AA2027E90C8FC5D153E157E157C143E5D143F5DA26E5AA25DA25DA2143F92 ! C9FC5C147E14FE5C1301003C5B387E03F0EAFF07495A48485AEB7F80B5FC91CAFC13FC6C ! 5AEA3FE0EA1F80313C7EA630>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fm cmcsc10 10.95 18 ! /Fm 18 121 df97 D99 DIIIIII<90383FFFFCA39038007FC0EC ! 3F80B3AD1218127EB4FCA3EC7F005A007C137E007813FE383C01F8381F03F03807FFC0C6 ! 48C7FC1E307CAE27>I108 DIIII<90383FC0 ! 0C9038FFF81C0003EBFE3C390FE03FFC381F8007EB0003003E1301481300157C5A153CA3 ! 6C141CA27E6C14006C7E13E013FE383FFFE06C13FE6CEBFF806C14E0000114F06C6C13F8 ! 010F13FC1300EC07FE14011400157F153F12E0151FA37EA2151E6C143E6C143C6C147C6C ! 14F89038C001F039FBF807E000F1B512C0D8E07F130038C007FC20317BAF2A>115 ! D<007FB712F8A39039801FF0073A7E000FE00000781678A20070163800F0163CA348161C ! A5C71500B3A8EC3FF8011FB512F0A32E2E7CAD36>II<3B7FFFF001 ! FFFEA30003D9C00013E0C649EB7F80017F027EC7FC167C6D6C13786D6C5B6D6C5B15016D ! 6C485AD903FC5B15076D6C48C8FC903800FF1EEC7F9C15BCEC3FF86E5AA2140F6E7E1403 ! 4A7E4A7EEC1EFF141C91383C7F804A6C7E14709138F01FE049486C7E49486C7E14800107 ! 6D7E49486C7E130E011E6D7E496E7E017C6E7E13FC000382D80FFEEC7FF8B549B512C0A3 ! 322F7DAE38>120 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fn cmti10 10.95 20 ! /Fn 20 122 df<933807FF80043F13E09338FE00F8DB01F0133EDB07E0130E4B48131F4C ! 137F031F14FF4BC7FCA218FE157E1878180015FE5DA31401A25DA414030103B712F0A218 ! E0903A0003F000070207140F4B14C0A3171F020F15805DA2173F1800141F5D5F177EA214 ! 3F92C712FE5FA34A1301027EECF81CA3160302FEECF03C4A1538A21878187013014A0101 ! 13F018E0933800F1C0EF7F804948EC1F0094C7FCA35C1307A2001E5B127F130F00FF5BA2 ! 49CAFC12FEEAF81EEA703CEA7878EA1FF0EA07C0385383BF33>12 ! D<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>46 D<147E49B47E903907C1 ! C38090391F80EFC090383F00FF017E137F4914804848133F485AA248481400120F5B001F ! 5C157E485AA215FE007F5C90C7FCA21401485C5AA21403EDF0385AA21407EDE078020F13 ! 70127C021F13F0007E013F13E0003E137FECF3E1261F01E313C03A0F8781E3803A03FF00 ! FF00D800FC133E252977A72E>97 D99 DII ! 103 D<1478EB01FCA21303A314F8EB00E01400AD137C48B4FC38038F80EA0707000E13C0 ! 121E121CEA3C0F1238A2EA781F00701380A2EAF03F140012005B137E13FE5BA212015BA2 ! 12035B1438120713E0000F1378EBC070A214F0EB80E0A2EB81C01383148038078700EA03 ! FEEA00F8163E79BC1C>105 D108 DIII<903903E001F890390FF807 ! FE903A1E7C1E0F80903A1C3E3C07C0013C137801389038E003E0EB783F017001C013F0ED ! 80019038F07F0001E015F8147E1603000113FEA2C75AA20101140717F05CA20103140F17 ! E05CA20107EC1FC0A24A1480163F010F15005E167E5E131F4B5A6E485A4B5A90393FB80F ! 80DA9C1FC7FCEC0FFCEC03E049C9FCA2137EA213FEA25BA21201A25BA21203A2387FFFE0 ! B5FCA22D3A80A72E>I114 DII<137C48B4141C ! 26038F80137EEA0707000E7F001E15FE121CD83C0F5C12381501EA781F007001805BA2D8 ! F03F1303140000005D5B017E1307A201FE5C5B150F1201495CA2151F0003EDC1C0491481 ! A2153F1683EE0380A2ED7F07000102FF13005C01F8EBDF0F00009038079F0E90397C0F0F ! 1C90391FFC07F8903907F001F02A2979A731>I<017CEB01C048B4EB07F038038F80EA07 ! 07000E01C013F8121E001C1403EA3C0F0038EC01F0A2D8781F130000705BA2EAF03F91C7 ! 12E012005B017E130116C013FE5B1503000115805BA2ED07001203495B150EA25DA25D15 ! 78000114706D5B0000495A6D485AD97E0FC7FCEB1FFEEB03F0252979A72A>I<017C1670 ! 48B491387001FC3A038F8001F8EA0707000E01C015FE001E1403001CEDF000EA3C0F0038 ! 177C1507D8781F4A133C00701380A2D8F03F130F020049133812005B017E011F14784C13 ! 7013FE5B033F14F0000192C712E05BA2170100034A14C049137E17031880A2EF070015FE ! 170E00010101141E01F86D131C0000D9039F5BD9FC076D5A903A3E0F07C1E0903A1FFC03 ! FFC0902703F0007FC7FC372979A73C>I<137C48B4143826038F8013FCEA0707000E7F00 ! 1E1401001C15F8EA3C0F12381503D8781F14F000701380A2D8F03F1307020013E012005B ! 017E130F16C013FE5B151F1201491480A2153F000315005BA25D157EA315FE5D00011301 ! EBF8030000130790387C1FF8EB3FF9EB07E1EB00035DA21407000E5CEA3F80007F495AA2 ! 4A5AD8FF0090C7FC143E007C137E00705B387801F0383803E0381E0FC06CB4C8FCEA03F8 ! 263B79A72C>121 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fo cmbxti10 14.4 1 ! /Fo 1 47 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C5A ! EA0FE0121271912B>46 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fp cmbx12 17.28 37 ! /Fp 37 122 df<16F04B7E1507151F153FEC01FF1407147F010FB5FCB7FCA41487EBF007 ! C7FCB3B3B3B3007FB91280A6395E74DD51>49 D<913801FFF8021FEBFFC091B612F80103 ! 15FF010F16C0013F8290267FFC0114F89027FFE0003F7F4890C7000F7F48486E7FD807F8 ! 6E148048486E14C048486E14E048486F13F001FC17F8486C816D17FC6E80B56C16FE8380 ! A219FFA283A36C5BA26C5B6C90C8FCD807FC5DEA01F0CA14FEA34D13FCA219F85F19F04D ! 13E0A294B512C019804C14004C5B604C5B4C5B604C13804C90C7FC4C5A4C5A4B13F05F4B ! 13804B90C8FC4B5AED1FF84B5A4B5A4B48143F4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC ! 7F8092C9FC02FE16FE495A495A4948ED01FCD90FC0150749B8FC5B5B90B9FC5A4818F85A ! 5A5A5A5ABAFCA219F0A4405E78DD51>I65 D<4DB5ED03C0057F02F014070407B600FE140F047FDBFFC0131F4B ! B800F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807FF814A02F0020113C302 ! 0702C09138007FE74A91C9001FB5FC023F01FC16074A01F08291B54882490280824991CB ! 7E49498449498449498449865D49498490B5FC484A84A2484A84A24891CD127FA25A4A1A ! 3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380A27EA2F50FC0A26C7FA37E6E1A1F6C ! 1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F4E5A7F6D6D4E5A6D6D4E5A6D6D4E5A ! 6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC020F01FFEE07FE6E02C0ED1FF80201 ! 02F8ED7FF06E02FF913803FFE0033F02F8013F1380030F91B648C8FC030117F86F6C16E0 ! 04071680DC007F02F8C9FC050191CAFC626677E375>67 D69 ! DI<4DB5ED03C0057F02F014070407B600FE140F047FDBFFC0131F4BB800F0133F03 ! 0F05FC137F033F9127F8007FFE13FF92B6C73807FF814A02F0020113C3020702C0913800 ! 7FE74A91C9001FB5FC023F01FC16074A01F08291B54882490280824991CB7E4949844949 ! 8449498449865D49498490B5FC484A84A2484A84A24891CD127FA25A4A1A3F5AA348491A ! 1FA44899C8FCA25CA3B5FCB07E071FB812F880A37EA296C70001ECC000A26C7FA37E807E ! A26C80A26C80A26C807F6D7F816D7F7F6D7F6D6D5F6D14C06D6E5E6E7F6E01FC5E020F01 ! FF5E6E02C0ED7FEF020102F8EDFFC76E02FF02071383033F02FC013F1301030F91B638FC ! 007F03014D131F6F6C04E01307040704801301DC007F02F8CAFC050191CBFC6D6677E37F ! >I73 ! D76 ! DII80 D82 D<001FBEFCA64849C79126E0 ! 000F148002E0180091C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C9 ! 181FA4007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>84 ! DII<913803FFFE027FEBFFF00103B612FE010F6F7E4916E090273F ! FE001F7FD97FE001077FD9FFF801017F486D6D7F717E486D6E7F85717FA2717FA36C496E ! 7FA26C5B6D5AEB1FC090C9FCA74BB6FC157F0207B7FC147F49B61207010F14C0013FEBFE ! 004913F048B512C04891C7FC485B4813F85A5C485B5A5CA2B55AA45FA25F806C5E806C04 ! 7D7F6EEB01F96C6DD903F1EBFF806C01FED90FE114FF6C9027FFC07FC01580000191B548 ! 7E6C6C4B7E011F02FC130F010302F001011400D9001F90CBFC49437CC14E>97 ! D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEBFF80047F14F00381B612FC038715FF ! 038F010014C0DBBFF0011F7FDBFFC001077F93C76C7F4B02007F03F8824B6F7E4B6F1380 ! 4B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE1BFCA44F13F8A31BF0A24F13E0A24F ! 13C06F17804F1300816F4B5A6F4A5B4AB402075B4A6C6C495B9126F83FE0013F13C09127 ! F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E091C7001F91C8FC90C8000313E04F65 ! 7BE35A>I<92380FFFF04AB67E020F15F0023F15FC91B77E01039039FE001FFF4901F801 ! 0113804901E0010713C04901804913E0017F90C7FC49484A13F0A2485B485B5A5C5A7113 ! E0485B7113C048701380943800FE0095C7FC485BA4B5FCAE7EA280A27EA2806C18FCA26C ! 6D150119F87E6C6D15036EED07F06C18E06C6D150F6D6DEC1FC06D01E0EC7F806D6DECFF ! 00010701FCEB03FE6D9039FFC03FFC010091B512F0023F5D020F1580020102FCC7FCDA00 ! 0F13C03E437BC148>II<92380FFFC04AB512FC020FECFF80023F15E091B712F80103D9FE03 ! 7F499039F0007FFF011F01C0011F7F49496D7F4990C76C7F49486E7F48498048844A8048 ! 84485B727E5A5C48717EA35A5C721380A2B5FCA391B9FCA41A0002C0CBFCA67EA380A27E ! A27E6E160FF11F806C183F6C7FF17F006C7F6C6D16FE6C17016D6C4B5A6D6D4A5A6D01E0 ! 4A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90C7FC6D6C90B55A021F15F8020715E0 ! 020092C8FC030713F041437CC14A>III<903807FF80B6FCA6C6FC ! 7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FDB83 ! F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8 ! F007B71280A651647BE35A>II<903807FF80B6FCA6C6FC7F7FB3B3B3B3ADB712E0A623647BE32C>108 ! D<902607FF80D91FFFEEFFF8B691B500F00207EBFF80040702FC023F14E0041F02FF91B6 ! 12F84C6F488193267FE07F6D4801037F922781FE001F9027E00FF0007FC6DA83F86D9026 ! F01FC06D7F6DD987F06D4A487F6DD98FC0DBF87EC7804C6D027C80039FC76E488203BEEE ! FDF003BC6E4A8003FC04FF834B5FA24B5FA24B94C8FCA44B5EB3B2B7D8F007B7D8803FB6 ! 12FCA67E417BC087>I<902607FF80EB1FFFB691B512F0040714FC041F14FF4C8193267F ! E07F7F922781FE001F7FC6DA83F86D7F6DD987F07F6DD98FC0814C7F039FC78015BE03BC ! 8003FC825DA25DA25DA45DB3B2B7D8F007B71280A651417BC05A>I<923807FFE092B6FC ! 020715E0021F15F8027F15FE494848C66C6C7E010701F0010F13E04901C001037F49496D ! 7F4990C87F49486F7E49486F7E48496F13804819C04A814819E048496F13F0A24819F8A3 ! 48496F13FCA34819FEA4B518FFAD6C19FEA46C6D4B13FCA36C19F8A26C6D4B13F0A26C19 ! E06C6D4B13C0A26C6D4B13806C6D4B13006D6C4B5A6D6D495B6D6D495B010701F0010F13 ! E06D01FE017F5B010090B7C7FC023F15FC020715E0020092C8FC030713E048437CC151> ! I<902607FF80EBFFF8B6010FEBFF80047F14F00381B612FC038715FF038F010114C09227 ! BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D496E7F03F86E7F4B6E7F4B17804B6F13C0A2 ! 7313E0A27313F0A21BF885A21BFCA3851BFEAE4F13FCA41BF861A21BF0611BE0611BC06F ! 92B512801B006F5C6F4A5B6F4A5B03FF4A5B70495B04E0017F13C09226CFFC03B55A03C7 ! B648C7FC03C115F803C015E0041F91C8FC040313E093CBFCB3A3B712F0A64F5D7BC05A> ! I114 D<913A3FFF8007800107B5EAF81F011FEC ! FE7F017F91B5FC48B8FC48EBE0014890C7121FD80FFC1407D81FF0801600485A007F167F ! 49153FA212FF171FA27F7F7F6D92C7FC13FF14E014FF6C14F8EDFFC06C15FC16FF6C16C0 ! 6C16F06C826C826C826C82013F1680010F16C01303D9007F15E0020315F0EC001F150004 ! 1F13F81607007C150100FC81177F6C163FA2171F7EA26D16F0A27F173F6D16E06D157F6D ! 16C001FEEDFF806D0203130002C0EB0FFE02FCEB7FFC01DFB65A010F5DD8FE0315C026F8 ! 007F49C7FC48010F13E035437BC140>II<902607FFC0ED3FFEB60207B5FCA6C6EE00076D826D82B3B3 ! A260A360A2607F60183E6D6D147E4E7F6D6D4948806D6DD907F0ECFF806D01FFEB3FE06D ! 91B55A6E1500021F5C020314F8DA003F018002F0C7FC51427BC05A>I119 D<007FB600C0017FB512F8A6D8001F01F8C70007EBF0006D040190C7FC6D6D5D6D ! 6D4A5A6D6D4A5A70495A6D4C5A6E7F6E6D495A6E6D495A7049C8FC6E4A5A6E6D485A6E6D ! 485A6E13FFEF8FF06EEC9FE06FEBFFC06F5C6F91C9FC5F6F5B816F7F6F7F8481707F8493 ! B57E4B805D4B80DB0FF37FDB1FE17F04C080153F4B486C7F4B486C7F4A486D7F4A486D7F ! 4A5A4B6D7F020F6E7F4A486D7F4A486D804A5A4AC86C7F49486F7F4A6F7F0107707FEB3F ! FFB600F049B7FCA650407EBF55>II E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fq cmsy10 10.95 1 ! /Fq 1 14 df13 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fr cmbx12 14.4 54 ! /Fr 54 122 df44 D46 D<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EAF800C7 ! FCB3B3B3A6007FB712FEA52F4E76CD43>49 DI<9138 ! 0FFFC091B512FC0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7ED803 ! F86E7E491680D807FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801FC16 ! 80C9FC4C13005FA24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF80DA ! 000713E0030113F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA218FE ! A2EA03E0EA0FF8487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E001F0 ! 4A13C06C484A1380D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F15800103 ! 02FCC7FCD9001F1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F167F ! A216FF5D5DA25D5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC01580EC ! 1F005C147E147C5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207485A ! 485A90C8FC123E127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>III<121F7F7FEBFF8091B81280A45A1900606060A260606048 ! 5F0180C86CC7FC007EC95A4C5A007C4B5A5F4C5A160F4C5A484B5A4C5A94C8FC16FEC812 ! 014B5A5E4B5A150F4B5AA24B5AA24B5A15FFA24A90C9FCA25C5D1407A2140FA25D141FA2 ! 143FA4147F5DA314FFA55BAC6D5BA2EC3FC06E5A395279D043>I<171F4D7E4D7EA24D7E ! A34C7FA24C7FA34C7FA34C7FA24C7FA34C8083047F80167E8304FE804C7E03018116F883 ! 0303814C7E03078116E083030F814C7E031F81168083033F8293C77E4B82157E8403FE82 ! 4B800201835D840203834B800207835D844AB87EA24A83A3DA3F80C88092C97E4A84A202 ! 7E8202FE844A82010185A24A820103854A82010785A24A82010F855C011F717FEBFFFCB6 ! 00F8020FB712E0A55B547BD366>65 DI<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA ! 803F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848 ! C9FC4901F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B48 ! 1A3FA24849181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B ! 0F6C6D1980A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A ! 6D6D4C5A6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203 ! 903AFFE001FFF0020091B612C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479 ! D261>IIII<932601FFFCEC01C0047FD9FFC013030307B600F8130703 ! 3F03FE131F92B8EA803F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01 ! 800203B5FC494848C9FC4901F8824949824949824949824949824990CA7E494883A24849 ! 83485B1B7F485B481A3FA24849181FA3485B1B0FA25AA298C8FC5CA2B5FCAE6C057FB712 ! E0A280A36C94C7003FEBC000A36C7FA36C7FA27E6C7FA26C7F6C7FA26D7E6D7F6D7F6D6D ! 5E6D7F6D01FC93B5FC6D13FF6D6C6D5C6E01F0EC07FB020F01FEEC1FF10203903AFFF001 ! FFE0020091B6EAC07F033FEE001F030703FC1307DB007F02E01301040149CAFC5B5479D2 ! 6A>II ! I75 DIII<93380FFFC00303B6FC03 ! 1F15E092B712FC0203D9FC0013FF020F01C0010F13C0023F90C7000313F0DA7FFC02007F ! 494848ED7FFE4901E0ED1FFF49496F7F49496F7F4990C96C7F49854948707F4948707FA2 ! 4849717E48864A83481B804A83481BC0A2481BE04A83A2481BF0A348497113F8A5B51AFC ! AF6C1BF86E5FA46C1BF0A26E5F6C1BE0A36C6D4D13C0A26C6D4D1380A26C1B006C6D4D5A ! 6E5E6C626D6C4C5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B5B6D6D4B90C7FC6D6D4B5A6D01 ! FF02035B023F01E0011F13F0020F01FC90B512C0020390B7C8FC020016FC031F15E00303 ! 92C9FCDB001F13E0565479D265>II<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013 ! FF020F01C0010F13C0023F90C7000313F0DA7FFC02007F902601FFF0ED3FFE49496F7E49 ! 496F7F49496F7F4990C96C7F4948707F4948707F01FF854A177F48864849717EA2484971 ! 1380A2481BC04A83481BE0A24A83481BF0A3481BF8A291CB7EA3B51AFCAF6C1BF8A26E5F ! A36C1BF0A36C6D4D13E0A36C1BC06E5F6C1B806E5F6CDB01FE16006C6D902607FF80495A ! 4C13E06C6D013F6D495A017F91267F03F85C6D6C90277C00FC015B6D6C49D97E035B6D01 ! 806E485B6D6D48D91F8F5B6D01E0039F90C7FC6D01F06EB45A6DD9FCF85DDA3FFF6E13F0 ! 020F6D4913C0020301FF90B5C8FC020091B512FC031F180C0303181EDB001FEBE3FE93C7 ! EA01FF74133E74137E7413FEF2F8077290B5FC1CFCA285A21CF8A2851CF07314E0A27314 ! C0731480731400735B9638007FF8F21FE0576A79D265>II<91260FFF80130791B500F85B010702FF5B011FEDC03F49 ! EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5FC4848C87E48488149150F001F82 ! 4981123F4981007F82A28412FF84A27FA26D82A27F7F6D93C7FC14C06C13F014FF15F86C ! ECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C836C836D826D82010F821303010082 ! 021F16801400030F15C0ED007F040714E01600173F050F13F08383A200788200F882A318 ! 7FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D5D01FC4B5A01FF4B5A02C04A5A02 ! F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7FC48C66C14FC48010F14F048D900 ! 7F90C8FC3C5479D24B>I<003FBC1280A59126C0003F9038C0007F49C71607D87FF80601 ! 13C001E08449197F49193F90C8171FA2007E1A0FA3007C1A07A500FC1BE0481A03A6C994 ! C7FCB3B3AC91B912F0A553517BD05E>IIII89 D97 ! DI<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001 ! FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A48 ! 92C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC ! 3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC ! 020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91 ! B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F484980 ! 485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C ! 6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9 ! 003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C04901 ! 817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191 ! C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01 ! F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE ! 903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>IIII<137F497E ! 000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3 ! A6B612E0A51B547BD325>I108 ! DII<913801FFE0021F13FE91B6 ! 12C0010315F0010F9038807FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F4849 ! 6D7F4A147F48834890C86C7EA24883A248486F7EA3007F1880A400FF18C0AC007F1880A3 ! 003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE ! 011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8FC020113E03A387CB643>I< ! 903A3FF001FFE0B5010F13FE033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9 ! FFE0EB1FFFC602806D7F92C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A ! 0060A36118FFA2615F616E4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FB ! FE075B02F8B612E06F1480031F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I< ! 90397FE003FEB590380FFF80033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013 ! FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612 ! FCA52F367CB537>114 D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307 ! D81FE0130148487F4980127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15 ! F86C14FF16C06C15F06C816C816C81C681013F1580010F15C01300020714E0EC003F0307 ! 13F015010078EC007F00F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC ! 7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB6 ! 35>I<143EA6147EA414FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FC ! A426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEB ! FFF86D6C5B021F5B020313802A4D7ECB34>IIII<007FB500F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C6D6D ! 495A6D4B5A6F495A6D6D91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8FE06E ! EBCFC06EEBFF806E91C9FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD7F03 ! F87F4A486C7E4A486C7E020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A4948 ! 6D7F01076F7E49486E7E49486E7FEBFFF0B500FE49B612C0A542357EB447>II E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fs cmtt10 10.95 89 ! /Fs 89 127 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF80A3EA7F00 ! A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA248133FB2007E14 ! 00007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8011F131FA2 ! 02C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F ! 90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA2 ! 29387DB730>I<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFE ! FD13C09039F0FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A3 ! 6CEC03F0A2007F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F01 ! 1F7F01037F0100148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FC ! A35AA26CEC03F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C ! 5C6C5CC614F0013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>II ! II<141E147F14FF5BEB03 ! FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F ! 5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7E ! EB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E184771BE30>I<127812 ! FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB ! 03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14 ! E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE0485A485A90C7FC5A12781847 ! 78BE30>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83EB3FE001C3137F9038F3F9 ! FF267FFBFB13C06CB61280000FECFE00000314F86C5C6C6C13C0011F90C7FC017F13C048 ! B512F04880000F14FE003FECFF80267FFBFB13C026FFF3F913E09038C3F87F0183133FD8 ! 7E03EB0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30>I<143EA2147FAF007FB7 ! FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>II<007FB612F0A2B712F8A36C15F0A225077B9E30>I<120F ! EA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED03F8A2 ! 1507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA2 ! 4A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249 ! C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA248C9FCA25AA2127CA22547 ! 7BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB83FF4848C6138049137F48 ! 48EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8A290C712014815FCA400FE ! EC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A2 ! 6C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FE ! C7FC273A7CB830>III52 D<000FB612804815C05AA316800180C8FCAEEB83FF019F13C090B512F015FC8181D9 ! FE0313809039F0007FC049133F0180EB1FE06CC7120F000E15F0C81207A216F81503A312 ! 18127EA2B4FC150716F048140F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261FFC0F ! 13006CB55A6C5C6C5C6C14E06C6C1380D90FFCC7FC25397BB730>I<127CB712FC16FEA4 ! 16FC48C7EA0FF816F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14075D140F5D ! 4A5AA24A5AA24AC7FCA25C5C13015CA213035CA213075CA4495AA6131F5CA96D5A6DC8FC ! 273A7CB830>55 D<49B4FC011F13F0017F13FC90B57E0003ECFF804815C048010113E03A ! 1FF8003FF049131FD83FC0EB07F8A24848EB03FC90C71201A56D1303003F15F86D13076C ! 6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F13F0497F ! 90B512FE48802607FE0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303007F15FC ! 90C712014815FE481400A66C14016C15FC6D1303003F15F86D1307D81FF0EB1FF06D133F ! 3A0FFF01FFE06C90B512C06C1580C6ECFE006D5B011F13F0010190C7FC273A7CB830>I< ! 120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EA ! FFF0A4EA7FE0A2EA3FC0EA0F000C276EA630>58 DI<16 ! F01503ED07F8151F157FEDFFF014034A13C0021F138091383FFE00ECFFF8495B010713C0 ! 495BD93FFEC7FC495A3801FFF0485B000F13804890C8FCEA7FFC5BEAFFE05B7FEA7FF87F ! EA1FFF6C7F000313E06C7F38007FFC6D7E90380FFF806D7F010113F06D7FEC3FFE91381F ! FF80020713C06E13F01400ED7FF8151F1507ED03F01500252F7BB230>I<007FB7FCA2B8 ! 1280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229157DA530>I<127812 ! 7EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1FFF6D7F010313E06D ! 7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153FEDFFF05C020713C0 ! 4A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC48485A4813E0000F ! 5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>III<147F4A7EA2497F ! A4497F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FEA590387F007FA449 ! 8049133F90B6FCA34881A39038FC001F00038149130FA4000781491307A2D87FFFEB7FFF ! B56CB51280A46C496C130029397DB830>I<007FB512F0B612FE6F7E82826C813A03F800 ! 1FF815076F7E1501A26F7EA615015EA24B5A1507ED1FF0ED7FE090B65A5E4BC7FC6F7E16 ! E0829039F8000FF8ED03FC6F7E1500167FA3EE3F80A6167F1700A25E4B5A1503ED1FFC00 ! 7FB6FCB75A5E16C05E6C02FCC7FC29387EB730>I<91387F803C903903FFF03E49EBFC7E ! 011F13FE49EBFFFE5B9038FFE07F48EB801F3903FE000F484813075B48481303A2484813 ! 015B123F491300A2127F90C8FC167C16005A5AAC7E7EA2167C6D14FE123FA27F121F6D13 ! 016C6C14FCA26C6CEB03F86D13076C6CEB0FF03901FF801F6C9038E07FE06DB512C06D14 ! 806D1400010713FC6D13F09038007FC0273A7CB830>I<003FB512E04814FCB67E6F7E6C ! 816C813A03F8007FF0ED1FF8150F6F7E6F7E15016F7EA2EE7F80A2163F17C0161FA4EE0F ! E0AC161F17C0A3163F1780A2167F17005E4B5A15034B5A150F4B5AED7FF0003FB65A485D ! B75A93C7FC6C14FC6C14E02B387FB730>I<007FB7FCB81280A47ED803F8C7123FA8EE1F ! 0093C7FCA4157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8 ! FCA46C16C02B387EB730>I<003FB712804816C0B8FCA27E7ED801FCC7121FA8EE0F8093 ! C7FCA5153E157FA490B6FCA69038FC007FA4153E92C8FCAE383FFFF8487FB5FCA27E6C5B ! 2A387EB730>I<02FF13F00103EBC0F8010F13F1013F13FD4913FF90B6FC4813C1EC007F ! 4848133F4848131F49130F485A491307121F5B123F491303A2127F90C7FC6F5A92C8FC5A ! 5AA892B5FC4A14805CA26C7F6C6D1400ED03F8A27F003F1407A27F121F6D130F120F7F6C ! 6C131FA2D803FE133F6C6C137FECC1FF6C90B5FC7F6D13FB010F13F30103EBC1F0010090 ! C8FC293A7DB830>I<3B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13 ! E0D803F8C7EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D4813F0B56C4813F8 ! A26C496C13F06C496C13E02D387FB730>I<007FB6FCB71280A46C1500260007F0C7FCB3 ! B3A8007FB6FCB71280A46C1500213879B730>I75 D<383FFFF8487FB57EA26C5B ! 6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003FB7FC5AB8FCA27E6C16802A387EB730>II ! I<90383FFFE048B512FC000714FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0 ! A290C71207A44815F8481403B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F8 ! 13FF90B6FC6C15C06C15806C1500000114FCD8003F13E0253A7BB830>I<007FB512F0B6 ! 12FE6F7E16E0826C813903F8003FED0FFCED03FE15016F7EA2821780163FA6167F17005E ! A24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15F001F8C9FCB0387FFFC0B57EA46C ! 5B29387EB730>I<90383FFFE048B512FC000714FF4815804815C04815E0EBF80001E013 ! 3F4848EB1FF049130F90C71207A44815F8481403B3A8147E14FE6CEBFF076C15F0EC7F87 ! A2EC3FC7018013CF9038C01FFFD83FE014E0EBF80F90B6FC6C15C06C15806C1500000114 ! FCD8003F7FEB00016E7EA21680157F16C0153F16E0151F16F0150FED07E025467BB830> ! I<003FB57E4814F0B612FC15FF6C816C812603F8017F9138003FF0151F6F7E1507150382 ! 1501A515035E1507150F4B5A153F4AB45A90B65A5E93C7FC5D8182D9F8007FED3FE0151F ! 150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EBFFF8B56C7E17F06C496C13E06C49 ! EB7FC0C9EA1F002E397FB730>I<90390FF803C0D97FFF13E048B512C74814F74814FF5A ! 381FF80F383FE001497E4848137F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F7F ! EA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C80011F13FF01031480D9003F13C01401 ! 9138007FE0151FED0FF0A2ED07F8A2007C140312FEA56C140716F07F6DEB0FE06D131F01 ! F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB830 ! >I<003FB712C04816E0B8FCA43AFE003F800FA8007CED07C0C791C7FCB3B1011FB5FC49 ! 80A46D91C7FC2B387EB730>I<3B7FFFC007FFFCB56C4813FEA46C496C13FCD803F8C7EA ! 3F80B3B16D147F00011600A36C6C14FE6D13016D5CEC800390393FE00FF890391FF83FF0 ! 6DB55A6D5C6D5C6D91C7FC9038007FFCEC1FF02F3980B730>III<3A3FFF01FFF84801837F02C77FA202835B6C01 ! 015B3A01FC007F806D91C7FC00005C6D5BEB7F01EC81FCEB3F8314C3011F5B14E7010F5B ! 14FF6D5BA26D5BA26D5BA26D90C8FCA4497FA2497FA2815B81EB0FE781EB1FC381EB3F81 ! 81EB7F0081497F49800001143F49800003141F49800007140FD87FFEEB7FFFB590B51280 ! 80A25C6C486D130029387DB730>II<001FB612FC4815FE5AA490C7EA03FCED07F8 ! 16F0150FED1FE016C0153FED7F80003E1500C85A4A5A5D14034A5A5D140F4A5A5D143F4A ! 5A92C7FC5C495A5C1303495A5C130F495A5C133F495A91C8FC5B4848147C4914FE120348 ! 5A5B120F485A5B123F485A90B6FCB7FCA46C15FC27387CB730>I<007FB5FCB61280A415 ! 0048C8FCB3B3B3A5B6FC1580A46C140019476DBE30>I<127CA212FEA27EA26C7EA26C7E ! A26C7EA26C7EA26C7EA26C7EA212017FA26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D ! 7EA2130180A26D7EA26E7EA26E7EA26E7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F ! 80A2ED3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED01F0150025477BBE30>I<007FB5 ! FCB61280A47EC7123FB3B3B3A5007FB5FCB6FCA46C140019477DBE30>I<007FB612F0A2 ! B712F8A36C15F0A225077B7D30>95 D<1338137CEA01FE12031207EA0FFC13F0EA1FE013 ! C0EA3F8013005A127EA212FE5AA5EAFFC013E013F0127FA2123FA2EA1FE0EA07C00F1D70 ! BE30>IIII<913801FFE04A7F5CA28080EC0007AAEB03FE90381FFF874913E790B6FC5A ! 5A481303380FFC00D81FF0133F49131F485A150F4848130790C7FCA25AA25AA87E6C140F ! A27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFFC06CB712E06C16F06C14F7 ! 6D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4FC010713E0011F13F8017F ! 7F90B57E488048018113803A07FC007FC04848133FD81FE0EB1FE0150F484814F0491307 ! 127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D ! 1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F14806DEBFE00010713F8010013 ! C0252A7CA830>IIII<14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFF ! F8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C023397AB830>III<387FFFF8B57EA47EEA0001B3B3A8007F ! B612F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B5 ! 00CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE9039F803FC01A201F013F8A3 ! 01E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01071380322881A730>II<49B4FC010F13E0013F13F8497F90B57E0003ECFF8014 ! 013A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F8491303007F15FC90C71201A3 ! 00FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D130F6C6CEB1FF06C6CEB3FE0 ! 6D137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F13E0010190C7FC272A7CA8 ! 30>II<49B413F8010FEBC1 ! FC013F13F14913FD48B6FC5A481381390FFC007F49131F4848130F491307485A49130312 ! 7F90C7FC15015A5AA77E7E15037FA26C6C1307150F6C6C131F6C6C133F01FC137F3907FF ! 01FF6C90B5FC6C14FD6C14F9013F13F1010F13C1903803FE0190C7FCAD92B512F84A14FC ! A46E14F82E3C7DA730>II<90381FFC1E48B5129F000714FF5A5A5A387FF0 ! 07EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C13FC6CEBFF806C14E00001 ! 14F86C6C7F01037F9038000FFF02001380007C147F00FEEC1FC0A2150F7EA27F151F6DEB ! 3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C026780FFEC7FC222A79A830 ! >III<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C1380 ! 3B01F80003F000A26D130700005DA26D130F017E5CA2017F131F6D5CA2EC803F011F91C7 ! FCA26E5A010F137EA2ECE0FE01075BA214F101035BA3903801FBF0A314FF6D5BA36E5A6E ! 5A2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0D807E0C7 ! EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147D ! A2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F800F802D ! 277FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815BC648C66CC7FC137FEC80FE ! 90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92C8FC147E147F5C497F8190 ! 3803F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE90387F007E017E137F01FE ! 6D7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180140029277DA630>I<3B3F ! FFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC0003F000A2000014076D5C ! 137E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E00107137EA2EB03F0157C15 ! FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2143F92C8FCA25C147EA200 ! 0F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA6 ! 30>I<001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E4913 ! 00C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A495A495A495A495A4948133E ! 4890C7127F485A485A485A485A485A48B7FCB8FCA46C15FE28277DA630>II<127CA212FEB3B3B3AD127CA207476CBE30>II<017C133848B4137C48EB80FE4813C14813C348EBEFFC397FEFFF ! F0D8FF8713E0010713C0486C1380D87C0113003838007C1F0C78B730>I ! E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Ft cmr10 10.95 82 ! /Ft 82 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907 ! F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7 ! FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11 ! DIII<001E130F397F803FC000FF137F01C013E0 ! A201E013F0A3007F133F391E600F3000001300A401E01370491360A3000114E04913C000 ! 03130101001380481303000EEB070048130E0018130C0038131C003013181C1C7DBE2D> ! 34 D<14E0A4EB07FC90383FFF8090B512E03901F8E3F03903E0E0FCD807C0133CD80F80 ! 7FD81F007F003E80003C1580007C140316C00078141F00F8143F157FA47EED3F806CEC0E ! 0092C7FC127F138013C0EA3FF013FEEA1FFF6C13FC6C13FF6C14C06C806C6C13F8011F7F ! 130301007FECE7FF14E102E01380157F153FED1FC0A2003E140F127FD8FF801307A51300 ! 00FC158000F0140F1270007815005D6C141E153E6C5C6C5C3907C0E1F03903F8EFE0C6B5 ! 1280D93FFEC7FCEB0FF8EB00E0A422497BC32D>36 D<121EEA7F8012FF13C0A213E0A312 ! 7FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C79BE19> ! 39 D<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B12015B1203A2 ! 485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E123FA37E ! A27F120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303EB01C0EB00 ! E014701430145A77C323>I<12C07E12707E7E121E7E6C7E7F12036C7E7F12007F137813 ! 7CA27FA2133F7FA21480130FA214C0A3130714E0A6130314F0B214E01307A614C0130FA3 ! 1480A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48C7FC121E121C5A5A ! 5A5A145A7BC323>I<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312 ! 011380120313005A120E5A1218123812300B1C798919>44 DI< ! 121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919>IIIIII<150E151E153EA2157EA215FE1401A21403EC077E1406140E141CA214381470A214E0 ! EB01C0A2EB0380EB0700A2130E5BA25B5BA25B5B1201485A90C7FC5A120E120C121C5AA2 ! 5A5AB8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<00061403D80780131F01F813FE ! 90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE90380FFF8090383E03E0903870 ! 01F8496C7E49137E497F90C713800006141FC813C0A216E0150FA316F0A3120C127F7F12 ! FFA416E090C7121F12FC007015C012780038EC3F80123C6CEC7F00001F14FE6C6C485A6C ! 6C485A3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC2D>II<1238123C123F90B612FCA316F85A16F016E00078C7120100 ! 70EC03C0ED078016005D48141E151C153C5DC8127015F04A5A5D14034A5A92C7FC5C141E ! A25CA2147C147814F8A213015C1303A31307A3130F5CA2131FA6133FAA6D5A0107C8FC26 ! 407BBD2D>III<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00 ! C7FCB3121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779A619>I<121EEA7F80A2EAFFC0 ! A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A213C0A4127F121E1200A412011380A31203 ! 13005A1206120E120C121C5A1230A20A3979A619>I<15074B7EA34B7EA34B7EA34B7EA3 ! 4B7E15E7A2913801C7FC15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA3 ! 4A6D7EA34A6D7EA349486D7E91B6FCA249819138800001A249C87EA24982010E157FA201 ! 1E82011C153FA2013C820138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010F ! B512F8A33D417DC044>65 DIIIIIIII<011FB512FCA3D900071300 ! 6E5A1401B3B3A6123FEA7F80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C ! 495A6C495A2603E07EC7FC3800FFF8EB3FC026407CBD2F>IIIIIIIIII<003FB91280A3903AF0007F ! E001018090393FC0003F48C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5 ! C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42>IIII<007FB5D8 ! C003B512E0A3C649C7EBFC00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C141C6D6C ! 143C5F6D6C14706D6D13F04C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5BEDF81E ! 913807FC1C163C6E6C5A913801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3BFEED71 ! FF15F103E07F913801C07F0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E02386D7E ! 14784A6D7E4A6D7F130149486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E00076D ! EC7FFFB500FC0103B512FEA33F3E7EBD44>II<003FB712F8A391C7EA1FF013F801E0EC3FE00180EC7FC090C8FC003EEDFF80 ! A2003C4A1300007C4A5A12784B5A4B5AA200704A5AA24B5A4B5AA2C8485A4A90C7FCA24A ! 5A4A5AA24A5AA24A5A4A5AA24A5A4A5AA24990C8FCA2495A4948141CA2495A495AA2495A ! 495A173C495AA24890C8FC485A1778485A484815F8A24848140116034848140F4848143F ! ED01FFB8FCA32E3E7BBD38>II<48 ! 6C13C00003130101001380481303000EEB070048130E0018130C0038131C003013180070 ! 133800601330A300E01370481360A400CFEB678039FFC07FE001E013F0A3007F133FA200 ! 3F131F01C013E0390F0007801C1C73BE2D>II96 DII<49B4FC010F13E090383F00F8017C13 ! 1E4848131F4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FCA290C9FC ! 5AAB6C7EA3003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C131E6C6C13 ! 7890383F01F090380FFFC0D901FEC7FC222A7DA828>IIII<167C ! 903903F801FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E000FC0600 ! 000F6EC7FC49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803E03903FE ! 0FC026071FFFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C ! 810003813A0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E007E157E ! 6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0293D7EA8 ! 2D>III<1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC147F ! EB7FFFA313017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F01387C03F038 ! 1E07C0380FFF803801FC00185185BD1C>III<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0913B7803 ! F03C01F80007903BE001F87000FC2603F9C06D487F000101805C01FBD900FF147F91C75B ! 13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA74C>I<39 ! 01F801FE00FF903807FFC091381E07E091387803F000079038E001F82603F9C07F000113 ! 8001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>I<14FF01 ! 0713E090381F81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0000F15F0 ! 4848EB01F8A2003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F15F86C6C ! EB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC90380FFFF001 ! 0090C7FC282A7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE003F03A07 ! FFC001FC6C496C7E6C90C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4 ! EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780FC0DA3F ! FFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90381F80 ! F090397F00387C01FC131CD803F8130E4848EB0FFC150748481303121F485A1501485AA4 ! 48C7FCAA6C7EA36C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E137990383F ! 81F190380FFFC1903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F807E000 ! FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300A35BB3 ! A5487EB512FEA31F287EA724>I<90383FC0603901FFF8E03807C03F381F000F003E1307 ! 003C1303127C0078130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C ! 1480000114C0D8003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E15F07E ! 14016C14E06CEB03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>I<131C ! A6133CA4137CA213FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0A91200 ! 9038FE01C0A2EB7F03013F138090381F8700EB07FEEB01F81B397EB723>IIIIII<001FB61280A2EBE0000180140049485A001E495A ! 121C4A5A003C495A141F00385C4A5A147F5D4AC7FCC6485AA2495A495A130F5C495A9039 ! 3FC00380A2EB7F80EBFF005A5B484813071207491400485A48485BA248485B4848137F00 ! FF495A90B6FCA221277EA628>I124 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fu cmbx12 20.736 14 ! /Fu 14 122 df<96267FFFE01670063FB6ED01F80503B700F01403053F04FC14074CB96C ! 130F040706E0131F043F72133F93BA00FC137F0303DC00076D13FF030F03C09039003FFF ! 814B02FCC8000713C3037F02E0030113F792B600806F6CB5FC02034ACA121F4A02F8834A ! 02E0834A4A1701027F4A8391B548CC7E494A85495C4C854988494A85494A85495C8A4991 ! CDFC90B54886A2484A1B7FA2481E3F5D481E1F5D5A1F0FA2485CA3481E075DA2795A489B ! C9FCA45DA2B6FCB27EA26F0403BA12C0A47EA3816C96C8000302F8C7FCA36C80A36C80A2 ! 7E817E817E817F6D80827F6D806D806D80826D6E606D806E80021F6E5F6E02F05F6E806E ! 02FE5F0200DAFFC05E6F02F04BB6FC031F02FE030713CF6FDAFFE0021F138703039226FF ! 8003B51201030093B6EAFC00043F4E133F040706E0131F04014E1307DC003F4CC7120105 ! 0304F8EC0070DD003F038092C8FCDE007F01F0CCFC827A75F798>71 ! D76 D78 D82 ! D85 D<92383FFFF80207B612E002 ! 7F15FC49B87E010717E0011F83499026F0007F13FC4948C7000F7F90B502036D7E486E6D ! 806F6D80727F486E6E7F8486727FA28684A26C5C72806C5C6D90C8FC6D5AEB0FF8EB03E0 ! 90CAFCA70507B6FC041FB7FC0303B8FC157F0203B9FC021FECFE0391B612800103ECF800 ! 010F14C04991C7FC017F13FC90B512F04814C0485C4891C8FC485B5A485B5C5A5CA2B5FC ! 5CA360A36E5DA26C5F6E5D187E6C6D846E4A48806C6D4A4814FC6C6ED90FF0ECFFFC6C02 ! E090263FE07F14FE00019139FC03FFC06C91B6487E013F4B487E010F4B1307010303F013 ! 01D9003F0280D9003F13FC020101F8CBFC57507ACE5E>97 D<903801FFFCB6FCA8C67E13 ! 1F7FB3ADF0FFFC050FEBFFE0057F14FE0403B77E040F16E0043F16F84CD9007F13FE9226 ! FDFFF001077F92B500C001018094C86C13E004FC6F7F4C6F7F04E06F7F4C6F7F5E747F93 ! C915804B7014C0A27414E0A21DF087A21DF8A31DFC87A41DFEAF1DFCA4631DF8A31DF098 ! B5FC1DE0A25014C0A26F1980501400705D705F704B5B505B704B5B04FC4B5BDBE7FE92B5 ! 5A9226C3FF8001035C038101E0011F49C7FC9226807FFC90B55A4B6CB712F04A010F16C0 ! 4A010393C8FC4A010015F84A023F14C090C9000301F0C9FC5F797AF76C>I<97380FFFE0 ! 0607B6FCA8F00003190086B3AD93383FFF800307B512F8033F14FF4AB712C0020716F002 ! 1F16FC027F9039FE007FFE91B500F0EB0FFF01030280010190B5FC4949C87E4949814949 ! 8149498149498190B548814884484A8192CAFC5AA2485BA25A5C5AA35A5CA4B5FCAF7EA4 ! 807EA37EA2807EA26C7F616C6E5D6C606C80616D6D5D6D6D5D6D6D92B67E6D6D4A15FC01 ! 0301FF0207EDFFFE6D02C0EB3FFE6D6C9039FC01FFF86E90B65A020F16C002031600DA00 ! 7F14FC030F14E09226007FFEC749C7FC5F797AF76C>100 D<93387FFF80030FB512FC03 ! 7FECFF804AB712E0020716F8021F16FE027FD9F8077F49B5D8C000804991C7003F13E049 ! 01FC020F7F49496E7F49498049496E7F49496E7F90B55A48727E92C914804884485B1BC0 ! 48841BE0485BA27313F05AA25C5AA21BF885A2B5FCA391BAFCA41BF002F8CCFCA67EA380 ! 7EA47E806CF103F0F207F86C7F1A0F6C6E17F06C191F6F17E06C6E163F6D6DEE7FC06D6D ! 16FF6D6D4B13806D6D4B13006D6D6CEC0FFE6D02E0EC3FFC6D02F8ECFFF86D9126FFC00F ! 5B023F91B65A020F178002034CC7FC020016F8031F15E0030392C8FCDB000F13E04D507B ! CE58>I105 D<903801FFFCB6FCA8C67E131F7FB3B3B3B3B3ABB812C0A82A ! 7879F735>108 D<902601FFF891380FFFE0B692B512FE05036E7E050F15E0053F15F84D ! 81932701FFF01F7F4CD900077FDC07FC6D80C66CDA0FF06D80011FDA1FC07F6D4A48824C ! C8FC047E6F7F5EEDF9F85E03FB707F5E15FF5EA25EA293C9FCA45DB3B3A6B8D8E003B812 ! 80A8614E79CD6C>110 D<902601FFF8EB07FEB691383FFFC094B512F00403804C14FE4C ! 8093261FFC3F138093263FE07F13C0DC7F80B5FCC66C5D011FDAFE0114E06DEBF9FC16F8 ! 15FB16F016E015FF16C07114C05E72138095381FFE0093C76C5AF001E095C8FCA25DA65D ! B3B3A2B812F8A8434E7ACD4F>114 D121 ! D E %EndDVIPSBitmapFont end %%EndProlog %%BeginSetup ! %%Feature: *Resolution 600dpi TeXDict begin %%BeginPaperSize: Letter *************** *** 1131,5198 **** %%EndSetup %%Page: 1 1 ! 1 0 bop 75 659 a Fv(GNU)33 b(Readline)h(Library)p 75 ! 709 1800 17 v 936 757 a Fu(Edition)17 b(4.3,)c(for)i ! Ft(Readline)f(Library)g Fu(V)l(ersion)i(4.3.)1643 811 ! y(Marc)o(h)e(2002)75 2467 y Fs(Brian)23 b(F)-6 b(o)n(x,)23 ! b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)75 ! 2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23 ! b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570 1800 9 v eop %%Page: 2 2 ! 2 1 bop 75 217 a Fu(This)14 b(do)q(cumen)o(t)h(describ)q(es)g(the)f ! (GNU)g(Readline)h(Library)l(,)f(a)g(utilit)o(y)h(whic)o(h)f(aids)g(in)h ! (the)f(consistency)75 271 y(of)h(user)g(in)o(terface)h(across)e ! (discrete)i(programs)e(that)h(need)h(to)e(pro)o(vide)i(a)f(command)g ! (line)i(in)o(terface.)75 339 y(Published)g(b)o(y)f(the)f(F)l(ree)g ! (Soft)o(w)o(are)f(F)l(oundation)75 394 y(59)h(T)l(emple)h(Place,)f ! (Suite)i(330,)75 448 y(Boston,)d(MA)h(02111)f(USA)75 ! 516 y(P)o(ermission)j(is)f(gran)o(ted)g(to)f(mak)o(e)h(and)g ! (distribute)i(v)o(erbatim)d(copies)i(of)f(this)h(man)o(ual)f(pro)o ! (vided)h(the)75 570 y(cop)o(yrigh)o(t)e(notice)h(and)f(this)h(p)q ! (ermission)g(notice)g(are)f(preserv)o(ed)h(on)f(all)h(copies.)75 ! 638 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g(cop)o(y)h(and)g ! (distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h(man)o(ual)g ! (under)h(the)f(con-)75 692 y(ditions)k(for)e(v)o(erbatim)h(cop)o(ying,) ! g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g(deriv)o(ed)g(w)o ! (ork)e(is)h(distributed)75 747 y(under)h(the)f(terms)g(of)g(a)f(p)q ! (ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75 ! 814 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f ! (distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another) ! g(lan-)75 869 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i ! (for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q ! (ermission)g(notice)75 924 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f ! (translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are) ! d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289 ! 2661 y Fr(\015)h Fu(1988-2002)f(F)l(ree)i(Soft)o(w)o(are)f(F)l ! (oundation,)h(Inc.)p eop ! %%Page: 1 3 ! 1 2 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 ! b(1)75 149 y Fq(1)41 b(Command)28 b(Line)e(Editing)137 ! 271 y Fu(This)16 b(c)o(hapter)f(describ)q(es)i(the)e(basic)h(features)f ! (of)g(the)g Fp(gnu)g Fu(command)g(line)i(editing)f(in)o(terface.)75 ! 403 y Fs(1.1)33 b(In)n(tro)r(duction)24 b(to)e(Line)i(Editing)137 ! 501 y Fu(The)16 b(follo)o(wing)g(paragraphs)e(describ)q(e)j(the)e ! (notation)g(used)h(to)e(represen)o(t)i(k)o(eystrok)o(es.)137 ! 569 y(The)h(text)f Fo(C-k)h Fu(is)g(read)g(as)f(`Con)o(trol-K')g(and)h ! (describ)q(es)h(the)f(c)o(haracter)f(pro)q(duced)h(when)h(the)1831 ! 567 y Fn(h)p 1844 541 19 2 v 1844 569 a Fm(k)p 1844 577 ! V 1860 567 a Fn(i)75 624 y Fu(k)o(ey)d(is)h(pressed)g(while)g(the)f ! (Con)o(trol)g(k)o(ey)g(is)h(depressed.)137 693 y(The)g(text)g ! Fo(M-k)f Fu(is)i(read)f(as)f(`Meta-K')g(and)h(describ)q(es)i(the)e(c)o ! (haracter)f(pro)q(duced)i(when)g(the)f(Meta)75 747 y(k)o(ey)e(\(if)g(y) ! o(ou)g(ha)o(v)o(e)g(one\))g(is)h(depressed,)g(and)f(the)930 ! 745 y Fn(h)p 942 719 V 942 747 a Fm(k)p 942 755 V 958 ! 745 a Fn(i)987 747 y Fu(k)o(ey)g(is)h(pressed.)20 b(The)15 ! b(Meta)e(k)o(ey)h(is)h(lab)q(eled)1779 745 y Fn(h)p 1791 ! 719 72 2 v 1791 747 a Fm(AL)m(T)p 1791 755 V 1860 745 ! a Fn(i)75 802 y Fu(on)e(man)o(y)g(k)o(eyb)q(oards.)19 ! b(On)13 b(k)o(eyb)q(oards)g(with)h(t)o(w)o(o)e(k)o(eys)g(lab)q(eled) ! 1213 800 y Fn(h)p 1225 774 V 1225 802 a Fm(AL)m(T)p 1225 ! 810 V 1294 800 a Fn(i)1322 802 y Fu(\(usually)i(to)e(either)i(side)g ! (of)f(the)75 857 y(space)j(bar\),)f(the)388 855 y Fn(h)p ! 400 829 V 400 857 a Fm(AL)m(T)p 400 865 V 469 855 a Fn(i)499 ! 857 y Fu(on)h(the)g(left)g(side)g(is)g(generally)h(set)f(to)f(w)o(ork)g ! (as)g(a)g(Meta)g(k)o(ey)l(.)22 b(The)1697 855 y Fn(h)p ! 1709 829 V 1709 857 a Fm(AL)m(T)p 1709 865 V 1778 855 ! a Fn(i)1808 857 y Fu(k)o(ey)75 912 y(on)17 b(the)f(righ)o(t)h(ma)o(y)f ! (also)h(b)q(e)g(con\014gured)g(to)f(w)o(ork)g(as)g(a)h(Meta)f(k)o(ey)g ! (or)g(ma)o(y)g(b)q(e)i(con\014gured)f(as)f(some)75 967 ! y(other)f(mo)q(di\014er,)h(suc)o(h)f(as)g(a)g(Comp)q(ose)g(k)o(ey)g ! (for)f(t)o(yping)i(accen)o(ted)f(c)o(haracters.)137 1035 ! y(If)c(y)o(ou)g(do)g(not)f(ha)o(v)o(e)h(a)f(Meta)h(or)694 ! 1033 y Fn(h)p 706 1007 V 706 1035 a Fm(AL)m(T)p 706 1043 ! V 775 1033 a Fn(i)801 1035 y Fu(k)o(ey)l(,)g(or)g(another)f(k)o(ey)h(w) ! o(orking)f(as)h(a)f(Meta)h(k)o(ey)l(,)g(the)g(iden)o(tical)75 ! 1090 y(k)o(eystrok)o(e)f(can)i(b)q(e)g(generated)f(b)o(y)g(t)o(yping) ! 809 1088 y Fn(h)p 822 1062 70 2 v 822 1090 a Fm(ESC)p ! 822 1098 V 888 1088 a Fn(i)915 1090 y Fl(\014rst)p Fu(,)g(and)g(then)h ! (t)o(yping)1339 1088 y Fn(h)p 1351 1062 19 2 v 1351 1090 ! a Fm(k)p 1351 1098 V 1368 1088 a Fn(i)1383 1090 y Fu(.)18 ! b(Either)12 b(pro)q(cess)f(is)h(kno)o(wn)75 1145 y(as)j ! Fk(metafying)k Fu(the)425 1143 y Fn(h)p 437 1117 V 437 ! 1145 a Fm(k)p 437 1153 V 454 1143 a Fn(i)484 1145 y Fu(k)o(ey)l(.)137 ! 1214 y(The)i(text)e Fo(M-C-k)h Fu(is)h(read)f(as)f(`Meta-Con)o(trol-k') ! g(and)h(describ)q(es)i(the)e(c)o(haracter)g(pro)q(duced)h(b)o(y)75 ! 1268 y Fk(metafying)e Fo(C-k)p Fu(.)137 1337 y(In)g(addition,)h(sev)o ! (eral)f(k)o(eys)f(ha)o(v)o(e)g(their)h(o)o(wn)f(names.)30 ! b(Sp)q(eci\014cally)l(,)1384 1335 y Fn(h)p 1396 1309 ! 73 2 v 1396 1337 a Fm(DEL)p 1396 1345 V 1467 1335 a Fn(i)1482 ! 1337 y Fu(,)1514 1335 y Fn(h)p 1526 1309 70 2 v 1526 ! 1337 a Fm(ESC)p 1526 1345 V 1593 1335 a Fn(i)1608 1337 ! y Fu(,)1640 1335 y Fn(h)p 1652 1309 72 2 v 1652 1337 ! a Fm(LFD)p 1652 1345 V 1722 1335 a Fn(i)1737 1337 y Fu(,)1768 ! 1335 y Fn(h)p 1780 1309 70 2 v 1780 1337 a Fm(SPC)p 1780 ! 1345 V 1847 1335 a Fn(i)1862 1337 y Fu(,)75 1390 y Fn(h)p ! 87 1364 76 2 v 87 1392 a Fm(RET)p 87 1399 V 160 1390 ! a Fn(i)175 1392 y Fu(,)23 b(and)306 1390 y Fn(h)p 318 ! 1364 74 2 v 318 1392 a Fm(T)m(AB)p 318 1399 V 390 1390 ! a Fn(i)427 1392 y Fu(all)f(stand)g(for)f(themselv)o(es)h(when)h(seen)f ! (in)g(this)g(text,)h(or)e(in)i(an)e(init)i(\014le)g(\(see)75 ! 1447 y(Section)d(1.3)f([Readline)h(Init)g(File],)h(page)e(4\).)32 ! b(If)19 b(y)o(our)g(k)o(eyb)q(oard)h(lac)o(ks)f(a)1444 ! 1445 y Fn(h)p 1456 1419 72 2 v 1456 1447 a Fm(LFD)p 1456 ! 1454 V 1526 1445 a Fn(i)1560 1447 y Fu(k)o(ey)l(,)h(t)o(yping)1802 ! 1445 y Fn(h)p 1814 1419 49 2 v 1814 1447 a Fm(C-j)p 1814 ! 1454 V 1860 1445 a Fn(i)75 1501 y Fu(will)c(pro)q(duce)g(the)f(desired) ! h(c)o(haracter.)j(The)874 1499 y Fn(h)p 886 1473 76 2 ! v 886 1501 a Fm(RET)p 886 1509 V 959 1499 a Fn(i)989 ! 1501 y Fu(k)o(ey)c(ma)o(y)f(b)q(e)h(lab)q(eled)1385 1499 ! y Fn(h)p 1397 1473 109 2 v 1397 1501 a Fm(Return)p 1397 ! 1509 V 1503 1499 a Fn(i)1533 1501 y Fu(or)1588 1499 y ! Fn(h)p 1600 1473 86 2 v 1600 1501 a Fm(En)o(ter)p 1600 ! 1509 V 1684 1499 a Fn(i)1714 1501 y Fu(on)f(some)75 1556 ! y(k)o(eyb)q(oards.)75 1688 y Fs(1.2)33 b(Readline)23 ! b(In)n(teraction)137 1786 y Fu(Often)13 b(during)h(an)e(in)o(teractiv)o ! (e)h(session)g(y)o(ou)g(t)o(yp)q(e)f(in)i(a)e(long)h(line)h(of)e(text,) ! h(only)g(to)f(notice)h(that)f(the)75 1841 y(\014rst)k(w)o(ord)f(on)h ! (the)h(line)h(is)e(missp)q(elled.)26 b(The)16 b(Readline)i(library)f ! (giv)o(es)f(y)o(ou)g(a)g(set)g(of)g(commands)g(for)75 ! 1896 y(manipulating)g(the)f(text)g(as)f(y)o(ou)h(t)o(yp)q(e)g(it)g(in,) ! g(allo)o(wing)h(y)o(ou)f(to)f(just)h(\014x)g(y)o(our)f(t)o(yp)q(o,)g ! (and)h(not)g(forcing)75 1950 y(y)o(ou)f(to)f(ret)o(yp)q(e)h(the)g(ma)s ! (jorit)o(y)f(of)h(the)g(line.)21 b(Using)15 b(these)f(editing)h ! (commands,)f(y)o(ou)g(mo)o(v)o(e)f(the)h(cursor)75 2005 ! y(to)i(the)i(place)g(that)e(needs)i(correction,)g(and)f(delete)h(or)f ! (insert)g(the)h(text)e(of)h(the)g(corrections.)26 b(Then,)75 ! 2060 y(when)16 b(y)o(ou)f(are)h(satis\014ed)g(with)g(the)f(line,)i(y)o ! (ou)e(simply)i(press)1160 2058 y Fn(h)p 1172 2032 76 ! 2 v 1172 2060 a Fm(RET)p 1172 2068 V 1245 2058 a Fn(i)1260 ! 2060 y Fu(.)k(Y)l(ou)16 b(do)f(not)h(ha)o(v)o(e)f(to)g(b)q(e)h(at)f ! (the)75 2115 y(end)k(of)e(the)h(line)i(to)d(press)563 ! 2113 y Fn(h)p 575 2087 V 575 2115 a Fm(RET)p 575 2122 ! V 648 2113 a Fn(i)663 2115 y Fu(;)i(the)f(en)o(tire)h(line)g(is)g ! (accepted)f(regardless)g(of)g(the)g(lo)q(cation)g(of)g(the)75 ! 2170 y(cursor)d(within)h(the)g(line.)75 2284 y Fj(1.2.1)30 ! b(Readline)20 b(Bare)g(Essen)n(tials)137 2382 y Fu(In)12 ! b(order)g(to)f(en)o(ter)g(c)o(haracters)g(in)o(to)g(the)h(line,)h ! (simply)g(t)o(yp)q(e)f(them.)18 b(The)12 b(t)o(yp)q(ed)g(c)o(haracter)f ! (app)q(ears)75 2437 y(where)16 b(the)h(cursor)f(w)o(as,)f(and)h(then)h ! (the)f(cursor)g(mo)o(v)o(es)g(one)g(space)g(to)g(the)g(righ)o(t.)23 ! b(If)17 b(y)o(ou)f(mist)o(yp)q(e)g(a)75 2492 y(c)o(haracter,)e(y)o(ou)h ! (can)g(use)h(y)o(our)f(erase)g(c)o(haracter)f(to)h(bac)o(k)g(up)g(and)h ! (delete)g(the)f(mist)o(yp)q(ed)h(c)o(haracter.)137 2560 ! y(Sometimes)g(y)o(ou)f(ma)o(y)g(mist)o(yp)q(e)h(a)f(c)o(haracter,)f ! (and)i(not)f(notice)h(the)f(error)g(un)o(til)i(y)o(ou)e(ha)o(v)o(e)g(t) ! o(yp)q(ed)75 2615 y(sev)o(eral)g(other)f(c)o(haracters.)19 ! b(In)c(that)e(case,)i(y)o(ou)f(can)g(t)o(yp)q(e)h Fo(C-b)f ! Fu(to)g(mo)o(v)o(e)f(the)i(cursor)f(to)g(the)g(left,)h(and)75 ! 2670 y(then)h(correct)e(y)o(our)h(mistak)o(e.)20 b(Afterw)o(ards,)13 ! b(y)o(ou)i(can)g(mo)o(v)o(e)g(the)g(cursor)g(to)g(the)g(righ)o(t)g ! (with)g Fo(C-f)p Fu(.)p eop ! %%Page: 2 4 ! 2 3 bop 75 -58 a Fu(2)1322 b(GNU)15 b(Readline)h(Library)137 ! 149 y(When)h(y)o(ou)f(add)g(text)g(in)h(the)g(middle)h(of)e(a)f(line,)j ! (y)o(ou)e(will)i(notice)f(that)f(c)o(haracters)f(to)h(the)g(righ)o(t)75 ! 204 y(of)e(the)g(cursor)g(are)g(`pushed)h(o)o(v)o(er')f(to)f(mak)o(e)h ! (ro)q(om)g(for)f(the)i(text)f(that)f(y)o(ou)h(ha)o(v)o(e)g(inserted.)21 ! b(Lik)o(ewise,)75 259 y(when)e(y)o(ou)g(delete)h(text)e(b)q(ehind)j ! (the)e(cursor,)g(c)o(haracters)f(to)g(the)h(righ)o(t)f(of)g(the)h ! (cursor)g(are)f(`pulled)75 314 y(bac)o(k')11 b(to)g(\014ll)h(in)h(the)e ! (blank)h(space)g(created)f(b)o(y)h(the)f(remo)o(v)m(al)g(of)g(the)h ! (text.)18 b(A)11 b(list)h(of)f(the)h(bare)f(essen)o(tials)75 ! 369 y(for)k(editing)h(the)f(text)g(of)g(an)g(input)h(line)h(follo)o ! (ws.)75 449 y Fo(C-b)168 b Fu(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o ! (haracter.)75 530 y Fo(C-f)168 b Fu(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h ! (c)o(haracter.)75 608 y Fn(h)p 87 582 73 2 v 87 610 a ! Fm(DEL)p 87 618 V 158 608 a Fn(i)188 610 y Fu(or)244 ! 608 y Fn(h)p 256 582 159 2 v 256 610 a Fm(Bac)o(kspace)p ! 256 618 V 412 608 a Fn(i)315 665 y Fu(Delete)h(the)f(c)o(haracter)g(to) ! f(the)h(left)h(of)f(the)g(cursor.)75 745 y Fo(C-d)168 ! b Fu(Delete)16 b(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)75 ! 825 y(Prin)o(ting)h(c)o(haracters)315 880 y(Insert)f(the)h(c)o ! (haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)75 ! 961 y Fo(C-_)g Fu(or)f Fo(C-x)h(C-u)315 1015 y Fu(Undo)i(the)g(last)f ! (editing)i(command.)25 b(Y)l(ou)17 b(can)g(undo)g(all)g(the)g(w)o(a)o ! (y)f(bac)o(k)h(to)f(an)g(empt)o(y)315 1070 y(line.)75 ! 1151 y(\(Dep)q(ending)i(on)f(y)o(our)g(con\014guration,)g(the)863 ! 1149 y Fn(h)p 875 1123 V 875 1151 a Fm(Bac)o(kspace)p ! 875 1159 V 1032 1149 a Fn(i)1063 1151 y Fu(k)o(ey)g(b)q(e)h(set)f(to)f ! (delete)i(the)f(c)o(haracter)g(to)f(the)75 1206 y(left)h(of)f(the)h ! (cursor)f(and)g(the)596 1204 y Fn(h)p 608 1178 73 2 v ! 608 1206 a Fm(DEL)p 608 1213 V 679 1204 a Fn(i)710 1206 ! y Fu(k)o(ey)h(set)f(to)g(delete)h(the)g(c)o(haracter)f(underneath)h ! (the)g(cursor,)f(lik)o(e)75 1260 y Fo(C-d)p Fu(,)e(rather)h(than)g(the) ! g(c)o(haracter)g(to)f(the)i(left)f(of)g(the)g(cursor.\))75 ! 1374 y Fj(1.2.2)30 b(Readline)20 b(Mo)n(v)n(emen)n(t)i(Commands)137 ! 1471 y Fu(The)14 b(ab)q(o)o(v)o(e)e(table)i(describ)q(es)g(the)g(most)e ! (basic)i(k)o(eystrok)o(es)d(that)i(y)o(ou)g(need)h(in)f(order)g(to)g ! (do)g(editing)75 1526 y(of)f(the)h(input)h(line.)21 b(F)l(or)12 ! b(y)o(our)g(con)o(v)o(enience,)i(man)o(y)f(other)f(commands)h(ha)o(v)o ! (e)f(b)q(een)i(added)f(in)h(addition)75 1580 y(to)h Fo(C-b)p ! Fu(,)h Fo(C-f)p Fu(,)f Fo(C-d)p Fu(,)g(and)522 1578 y ! Fn(h)p 534 1552 V 534 1580 a Fm(DEL)p 534 1588 V 605 ! 1578 a Fn(i)619 1580 y Fu(.)23 b(Here)16 b(are)g(some)f(commands)h(for) ! f(mo)o(ving)h(more)g(rapidly)h(ab)q(out)f(the)75 1635 ! y(line.)75 1716 y Fo(C-a)168 b Fu(Mo)o(v)o(e)14 b(to)h(the)g(start)f ! (of)h(the)g(line.)75 1796 y Fo(C-e)168 b Fu(Mo)o(v)o(e)14 ! b(to)h(the)g(end)h(of)f(the)g(line.)75 1876 y Fo(M-f)168 ! b Fu(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord,)f(where)i(a)e(w)o(ord)h ! (is)h(comp)q(osed)f(of)g(letters)g(and)h(digits.)75 1957 ! y Fo(M-b)168 b Fu(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)75 ! 2037 y Fo(C-l)168 b Fu(Clear)15 b(the)h(screen,)f(reprin)o(ting)h(the)f ! (curren)o(t)g(line)i(at)e(the)g(top.)137 2118 y(Notice)e(ho)o(w)f ! Fo(C-f)g Fu(mo)o(v)o(es)f(forw)o(ard)g(a)h(c)o(haracter,)g(while)i ! Fo(M-f)e Fu(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)18 ! b(It)13 b(is)g(a)f(lo)q(ose)75 2173 y(con)o(v)o(en)o(tion)j(that)f(con) ! o(trol)h(k)o(eystrok)o(es)f(op)q(erate)h(on)f(c)o(haracters)h(while)h ! (meta)e(k)o(eystrok)o(es)g(op)q(erate)h(on)75 2227 y(w)o(ords.)75 ! 2341 y Fj(1.2.3)30 b(Readline)20 b(Killing)h(Commands)137 ! 2438 y Fk(Killing)26 b Fu(text)18 b(means)g(to)g(delete)i(the)f(text)f ! (from)g(the)h(line,)i(but)d(to)g(sa)o(v)o(e)g(it)h(a)o(w)o(a)o(y)e(for) ! h(later)h(use,)75 2493 y(usually)f(b)o(y)f Fk(y)o(anking)22 ! b Fu(\(re-inserting\))17 b(it)g(bac)o(k)g(in)o(to)g(the)h(line.)27 ! b(\(`Cut')15 b(and)j(`paste')e(are)g(more)h(recen)o(t)75 ! 2547 y(jargon)d(for)h(`kill')h(and)g(`y)o(ank'.\))137 ! 2615 y(If)g(the)f(description)h(for)f(a)g(command)g(sa)o(ys)f(that)h ! (it)g(`kills')h(text,)e(then)i(y)o(ou)f(can)g(b)q(e)h(sure)f(that)f(y)o ! (ou)75 2670 y(can)h(get)g(the)g(text)g(bac)o(k)g(in)h(a)f(di\013eren)o ! (t)g(\(or)g(the)g(same\))g(place)h(later.)p eop ! %%Page: 3 5 ! 3 4 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 ! b(3)137 149 y(When)12 b(y)o(ou)g(use)g(a)f(kill)i(command,)f(the)g ! (text)f(is)h(sa)o(v)o(ed)f(in)i(a)e Fk(kill-ring)p Fu(.)21 ! b(An)o(y)12 b(n)o(um)o(b)q(er)g(of)f(consecutiv)o(e)75 ! 204 y(kills)17 b(sa)o(v)o(e)e(all)h(of)f(the)h(killed)i(text)d ! (together,)f(so)h(that)g(when)h(y)o(ou)f(y)o(ank)g(it)h(bac)o(k,)f(y)o ! (ou)g(get)g(it)h(all.)22 b(The)75 259 y(kill)c(ring)f(is)f(not)g(line)i ! (sp)q(eci\014c;)g(the)e(text)g(that)f(y)o(ou)h(killed)j(on)d(a)g ! (previously)h(t)o(yp)q(ed)g(line)h(is)e(a)o(v)m(ailable)75 ! 314 y(to)f(b)q(e)g(y)o(ank)o(ed)g(bac)o(k)h(later,)e(when)i(y)o(ou)f ! (are)g(t)o(yping)g(another)g(line.)137 380 y(Here)h(is)f(the)h(list)g ! (of)e(commands)h(for)g(killing)j(text.)75 458 y Fo(C-k)168 ! b Fu(Kill)17 b(the)f(text)e(from)h(the)g(curren)o(t)g(cursor)g(p)q ! (osition)h(to)f(the)g(end)h(of)f(the)g(line.)75 535 y ! Fo(M-d)168 b Fu(Kill)15 b(from)e(the)g(cursor)g(to)f(the)i(end)g(of)e ! (the)i(curren)o(t)f(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,) ! e(to)h(the)315 590 y(end)j(of)f(the)g(next)g(w)o(ord.)k(W)l(ord)c(b)q ! (oundaries)i(are)e(the)g(same)g(as)g(those)f(used)i(b)o(y)f ! Fo(M-f)p Fu(.)75 668 y Fo(M-)123 666 y Fn(h)p 135 640 ! 73 2 v 135 668 a Fm(DEL)p 135 675 V 206 666 a Fn(i)315 ! 668 y Fu(Kill)i(from)e(the)g(cursor)g(the)h(start)e(of)h(the)g(curren)o ! (t)g(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)e(to)h(the)315 ! 723 y(start)j(of)h(the)g(previous)h(w)o(ord.)31 b(W)l(ord)19 ! b(b)q(oundaries)h(are)f(the)h(same)e(as)h(those)g(used)h(b)o(y)315 ! 777 y Fo(M-b)p Fu(.)75 855 y Fo(C-w)168 b Fu(Kill)18 ! b(from)d(the)g(cursor)h(to)f(the)g(previous)i(whitespace.)22 ! b(This)16 b(is)g(di\013eren)o(t)g(than)f Fo(M-)1777 853 ! y Fn(h)p 1789 827 V 1789 855 a Fm(DEL)p 1789 863 V 1860 ! 853 a Fn(i)315 910 y Fu(b)q(ecause)h(the)f(w)o(ord)g(b)q(oundaries)h ! (di\013er.)137 987 y(Here)21 b(is)h(ho)o(w)e(to)g Fk(y)o(ank)j ! Fu(the)e(text)f(bac)o(k)h(in)o(to)g(the)f(line.)39 b(Y)l(anking)21 ! b(means)g(to)f(cop)o(y)h(the)g(most-)75 1042 y(recen)o(tly-killed)d ! (text)d(from)f(the)i(kill)h(bu\013er.)75 1120 y Fo(C-y)168 ! b Fu(Y)l(ank)15 b(the)h(most)e(recen)o(tly)i(killed)h(text)e(bac)o(k)g ! (in)o(to)g(the)h(bu\013er)f(at)f(the)i(cursor.)75 1198 ! y Fo(M-y)168 b Fu(Rotate)16 b(the)h(kill-ring,)j(and)d(y)o(ank)g(the)h ! (new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f(this)h(if)f(the)h(prior) ! 315 1252 y(command)d(is)h Fo(C-y)f Fu(or)f Fo(M-y)p Fu(.)75 ! 1361 y Fj(1.2.4)30 b(Readline)20 b(Argumen)n(ts)137 1457 ! y Fu(Y)l(ou)15 b(can)g(pass)f(n)o(umeric)i(argumen)o(ts)e(to)g ! (Readline)h(commands.)20 b(Sometimes)15 b(the)g(argumen)o(t)e(acts)75 ! 1511 y(as)20 b(a)f(rep)q(eat)i(coun)o(t,)f(other)g(times)g(it)h(is)f ! (the)g Fl(sign)j Fu(of)c(the)h(argumen)o(t)g(that)f(is)i(signi\014can)o ! (t.)35 b(If)20 b(y)o(ou)75 1566 y(pass)d(a)f(negativ)o(e)h(argumen)o(t) ! f(to)g(a)g(command)h(whic)o(h)h(normally)f(acts)f(in)i(a)e(forw)o(ard)g ! (direction,)i(that)75 1621 y(command)g(will)h(act)e(in)i(a)e(bac)o(kw)o ! (ard)g(direction.)28 b(F)l(or)17 b(example,)i(to)e(kill)j(text)d(bac)o ! (k)g(to)g(the)h(start)e(of)75 1676 y(the)f(line,)i(y)o(ou)e(migh)o(t)g ! (t)o(yp)q(e)g(`)p Ft(M--)f(C-k)p Fu('.)137 1742 y(The)h(general)f(w)o ! (a)o(y)f(to)h(pass)g(n)o(umeric)h(argumen)o(ts)e(to)g(a)h(command)g(is) ! h(to)e(t)o(yp)q(e)h(meta)g(digits)h(b)q(efore)75 1797 ! y(the)h(command.)k(If)c(the)f(\014rst)g(`digit')h(t)o(yp)q(ed)f(is)h(a) ! g(min)o(us)g(sign)g(\(`)p Ft(-)p Fu('\),)d(then)j(the)f(sign)h(of)f ! (the)h(argumen)o(t)75 1852 y(will)21 b(b)q(e)f(negativ)o(e.)31 ! b(Once)20 b(y)o(ou)f(ha)o(v)o(e)g(t)o(yp)q(ed)g(one)g(meta)g(digit)h ! (to)e(get)h(the)g(argumen)o(t)f(started,)h(y)o(ou)75 ! 1906 y(can)c(t)o(yp)q(e)f(the)h(remainder)g(of)f(the)g(digits,)h(and)g ! (then)g(the)f(command.)20 b(F)l(or)13 b(example,)i(to)f(giv)o(e)h(the)f ! Fo(C-d)75 1961 y Fu(command)19 b(an)f(argumen)o(t)g(of)g(10,)h(y)o(ou)f ! (could)i(t)o(yp)q(e)f(`)p Ft(M-1)14 b(0)h(C-d)p Fu(',)k(whic)o(h)g ! (will)h(delete)g(the)f(next)g(ten)75 2016 y(c)o(haracters)14 ! b(on)i(the)f(input)h(line.)75 2125 y Fj(1.2.5)30 b(Searc)n(hing)21 ! b(for)f(Commands)h(in)f(the)h(History)137 2220 y Fu(Readline)d(pro)o ! (vides)e(commands)g(for)g(searc)o(hing)g(through)g(the)g(command)g ! (history)g(for)g(lines)i(con-)75 2275 y(taining)e(a)f(sp)q(eci\014ed)i ! (string.)j(There)c(are)e(t)o(w)o(o)g(searc)o(h)h(mo)q(des:)20 ! b Fk(incremen)o(tal)e Fu(and)e Fk(non-incremen)o(tal)p ! Fu(.)137 2341 y(Incremen)o(tal)e(searc)o(hes)f(b)q(egin)h(b)q(efore)f ! (the)g(user)g(has)g(\014nished)h(t)o(yping)f(the)g(searc)o(h)g(string.) ! 19 b(As)13 b(eac)o(h)75 2396 y(c)o(haracter)k(of)g(the)h(searc)o(h)g ! (string)f(is)h(t)o(yp)q(ed,)h(Readline)g(displa)o(ys)f(the)g(next)g(en) ! o(try)f(from)g(the)h(history)75 2451 y(matc)o(hing)12 ! b(the)g(string)g(t)o(yp)q(ed)g(so)g(far.)18 b(An)13 b(incremen)o(tal)g ! (searc)o(h)f(requires)g(only)h(as)f(man)o(y)f(c)o(haracters)g(as)75 ! 2506 y(needed)16 b(to)d(\014nd)j(the)e(desired)i(history)e(en)o(try)l ! (.)19 b(T)l(o)c(searc)o(h)f(bac)o(kw)o(ard)f(in)j(the)e(history)g(for)g ! (a)g(particular)75 2560 y(string,)g(t)o(yp)q(e)h Fo(C-r)p ! Fu(.)k(T)o(yping)d Fo(C-s)e Fu(searc)o(hes)h(forw)o(ard)e(through)h ! (the)h(history)l(.)20 b(The)15 b(c)o(haracters)f(presen)o(t)75 ! 2615 y(in)20 b(the)f(v)m(alue)h(of)f(the)g Ft(isearch-terminators)d ! Fu(v)m(ariable)k(are)f(used)h(to)e(terminate)h(an)g(incremen)o(tal)75 ! 2670 y(searc)o(h.)31 b(If)19 b(that)f(v)m(ariable)i(has)f(not)f(b)q ! (een)i(assigned)g(a)e(v)m(alue,)j(the)1289 2668 y Fn(h)p ! 1301 2642 70 2 v 1301 2670 a Fm(ESC)p 1301 2678 V 1368 ! 2668 a Fn(i)1402 2670 y Fu(and)e Fo(C-J)f Fu(c)o(haracters)g(will)p eop ! %%Page: 4 6 ! 4 5 bop 75 -58 a Fu(4)1322 b(GNU)15 b(Readline)h(Library)75 ! 149 y(terminate)21 b(an)g(incremen)o(tal)i(searc)o(h.)37 ! b Fo(C-g)21 b Fu(will)i(ab)q(ort)e(an)g(incremen)o(tal)h(searc)o(h)f ! (and)g(restore)g(the)75 204 y(original)16 b(line.)21 ! b(When)15 b(the)f(searc)o(h)g(is)h(terminated,)g(the)f(history)h(en)o ! (try)f(con)o(taining)h(the)g(searc)o(h)f(string)75 259 ! y(b)q(ecomes)i(the)f(curren)o(t)g(line.)137 325 y(T)l(o)g(\014nd)i ! (other)e(matc)o(hing)g(en)o(tries)h(in)h(the)e(history)h(list,)g(t)o ! (yp)q(e)f Fo(C-r)g Fu(or)g Fo(C-s)g Fu(as)h(appropriate.)k(This)75 ! 380 y(will)15 b(searc)o(h)e(bac)o(kw)o(ard)f(or)g(forw)o(ard)g(in)i ! (the)f(history)g(for)g(the)g(next)g(en)o(try)g(matc)o(hing)g(the)g ! (searc)o(h)g(string)75 434 y(t)o(yp)q(ed)19 b(so)g(far.)30 ! b(An)o(y)19 b(other)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e(a)h(Readline) ! h(command)e(will)j(terminate)e(the)75 489 y(searc)o(h)10 ! b(and)h(execute)g(that)f(command.)18 b(F)l(or)10 b(instance,)i(a)1063 ! 487 y Fn(h)p 1076 461 76 2 v 1076 489 a Fm(RET)p 1076 ! 497 V 1149 487 a Fn(i)1174 489 y Fu(will)g(terminate)f(the)g(searc)o(h) ! f(and)h(accept)75 544 y(the)k(line,)h(thereb)o(y)f(executing)g(the)g ! (command)g(from)f(the)g(history)h(list.)20 b(A)15 b(mo)o(v)o(emen)o(t)f ! (command)g(will)75 599 y(terminate)h(the)g(searc)o(h,)g(mak)o(e)g(the)g ! (last)g(line)i(found)f(the)f(curren)o(t)g(line,)h(and)g(b)q(egin)g ! (editing.)137 665 y(Readline)j(remem)o(b)q(ers)e(the)h(last)f(incremen) ! o(tal)i(searc)o(h)e(string.)27 b(If)17 b(t)o(w)o(o)f ! Fo(C-r)p Fu(s)h(are)g(t)o(yp)q(ed)h(without)75 719 y(an)o(y)g(in)o ! (terv)o(ening)h(c)o(haracters)f(de\014ning)h(a)f(new)h(searc)o(h)f ! (string,)g(an)o(y)g(remem)o(b)q(ered)h(searc)o(h)f(string)g(is)75 ! 774 y(used.)137 840 y(Non-incremen)o(tal)25 b(searc)o(hes)e(read)h(the) ! f(en)o(tire)h(searc)o(h)f(string)g(b)q(efore)h(starting)f(to)f(searc)o ! (h)i(for)75 895 y(matc)o(hing)d(history)h(lines.)39 b(The)22 ! b(searc)o(h)f(string)g(ma)o(y)g(b)q(e)h(t)o(yp)q(ed)f(b)o(y)h(the)f ! (user)h(or)e(b)q(e)i(part)f(of)g(the)75 950 y(con)o(ten)o(ts)15 ! b(of)f(the)i(curren)o(t)f(line.)75 1074 y Fs(1.3)33 b(Readline)23 ! b(Init)h(File)137 1169 y Fu(Although)f(the)g(Readline)h(library)f ! (comes)g(with)g(a)f(set)g(of)g(Emacs-lik)o(e)i(k)o(eybindings)g ! (installed)75 1224 y(b)o(y)d(default,)h(it)f(is)h(p)q(ossible)g(to)e ! (use)i(a)e(di\013eren)o(t)h(set)g(of)f(k)o(eybindings.)39 ! b(An)o(y)20 b(user)h(can)g(customize)75 1278 y(programs)15 ! b(that)h(use)g(Readline)i(b)o(y)e(putting)g(commands)g(in)i(an)e ! Fk(inputrc)k Fu(\014le,)d(con)o(v)o(en)o(tionally)g(in)g(his)75 ! 1333 y(home)g(directory)l(.)24 b(The)17 b(name)g(of)f(this)h(\014le)g ! (is)g(tak)o(en)g(from)e(the)i(v)m(alue)h(of)e(the)h(en)o(vironmen)o(t)g ! (v)m(ariable)75 1388 y Ft(INPUTRC)p Fu(.)i(If)c(that)g(v)m(ariable)h ! (is)g(unset,)f(the)g(default)h(is)g(`)p Ft(~/.inputrc)p ! Fu('.)137 1454 y(When)f(a)g(program)f(whic)o(h)h(uses)g(the)g(Readline) ! h(library)g(starts)d(up,)i(the)g(init)h(\014le)g(is)f(read,)g(and)g ! (the)75 1509 y(k)o(ey)g(bindings)i(are)e(set.)137 1574 ! y(In)f(addition,)h(the)e Ft(C-x)i(C-r)e Fu(command)g(re-reads)h(this)g ! (init)g(\014le,)h(th)o(us)e(incorp)q(orating)h(an)o(y)f(c)o(hanges)75 ! 1629 y(that)h(y)o(ou)h(migh)o(t)g(ha)o(v)o(e)g(made)g(to)g(it.)75 ! 1737 y Fj(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)137 ! 1832 y Fu(There)c(are)g(only)g(a)g(few)f(basic)i(constructs)e(allo)o(w) ! o(ed)i(in)f(the)g(Readline)h(init)g(\014le.)26 b(Blank)18 ! b(lines)g(are)75 1886 y(ignored.)36 b(Lines)22 b(b)q(eginning)h(with)d ! (a)h(`)p Ft(#)p Fu(')e(are)h(commen)o(ts.)35 b(Lines)22 ! b(b)q(eginning)h(with)e(a)f(`)p Ft($)p Fu(')f(indicate)75 ! 1941 y(conditional)c(constructs)f(\(see)g(Section)g(1.3.2)f ! ([Conditional)h(Init)h(Constructs],)e(page)h(9\).)k(Other)c(lines)75 ! 1996 y(denote)h(v)m(ariable)i(settings)e(and)h(k)o(ey)f(bindings.)75 ! 2073 y(V)l(ariable)h(Settings)315 2128 y(Y)l(ou)k(can)h(mo)q(dify)g ! (the)f(run-time)h(b)q(eha)o(vior)g(of)e(Readline)j(b)o(y)e(altering)h ! (the)f(v)m(alues)h(of)315 2182 y(v)m(ariables)d(in)g(Readline)g(using)f ! (the)g Ft(set)g Fu(command)f(within)i(the)f(init)h(\014le.)26 ! b(The)17 b(syn)o(tax)315 2237 y(is)f(simple:)435 2300 ! y Ft(set)23 b Fk(v)m(ariable)28 b(v)m(alue)315 2366 y ! Fu(Here,)14 b(for)f(example,)h(is)g(ho)o(w)f(to)g(c)o(hange)h(from)f ! (the)h(default)g(Emacs-lik)o(e)h(k)o(ey)e(binding)j(to)315 ! 2421 y(use)g Ft(vi)e Fu(line)j(editing)g(commands:)435 ! 2484 y Ft(set)23 b(editing-mode)g(vi)315 2549 y Fu(V)l(ariable)c(names) ! e(and)h(v)m(alues,)h(where)e(appropriate,)h(are)f(recognized)i(without) ! e(regard)315 2604 y(to)e(case.)315 2670 y(A)g(great)g(deal)g(of)g ! (run-time)h(b)q(eha)o(vior)g(is)g(c)o(hangeable)g(with)f(the)h(follo)o ! (wing)f(v)m(ariables.)p eop ! %%Page: 5 7 ! 5 6 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 ! b(5)315 149 y Ft(bell-style)555 204 y Fu(Con)o(trols)21 ! b(what)h(happ)q(ens)h(when)f(Readline)h(w)o(an)o(ts)e(to)g(ring)i(the)f ! (termi-)555 259 y(nal)d(b)q(ell.)32 b(If)19 b(set)f(to)g(`)p ! Ft(none)p Fu(',)g(Readline)i(nev)o(er)f(rings)g(the)f(b)q(ell.)32 ! b(If)19 b(set)g(to)555 314 y(`)p Ft(visible)p Fu(',)c(Readline)i(uses)g ! (a)f(visible)j(b)q(ell)g(if)e(one)f(is)h(a)o(v)m(ailable.)26 ! b(If)16 b(set)h(to)555 369 y(`)p Ft(audible)p Fu(')g(\(the)h ! (default\),)i(Readline)g(attempts)e(to)g(ring)h(the)g(terminal's)555 ! 423 y(b)q(ell.)315 504 y Ft(comment-begin)555 559 y Fu(The)c(string)f ! (to)g(insert)i(at)d(the)i(b)q(eginning)i(of)d(the)h(line)h(when)f(the)g ! Ft(insert-)555 614 y(comment)f Fu(command)h(is)h(executed.)21 ! b(The)15 b(default)h(v)m(alue)g(is)g Ft("#")p Fu(.)315 ! 694 y Ft(completion-ignore-case)555 749 y Fu(If)e(set)f(to)g(`)p ! Ft(on)p Fu(',)g(Readline)i(p)q(erforms)e(\014lename)i(matc)o(hing)f ! (and)g(completion)555 804 y(in)i(a)f(case-insensitiv)o(e)i(fashion.)k ! (The)15 b(default)h(v)m(alue)g(is)g(`)p Ft(off)p Fu('.)315 ! 884 y Ft(completion-query-items)555 939 y Fu(The)d(n)o(um)o(b)q(er)h ! (of)e(p)q(ossible)j(completions)g(that)d(determines)i(when)g(the)f ! (user)555 994 y(is)21 b(ask)o(ed)g(whether)g(he)h(w)o(an)o(ts)d(to)i ! (see)g(the)g(list)h(of)e(p)q(ossibilitie)q(s.)40 b(If)21 ! b(the)555 1049 y(n)o(um)o(b)q(er)14 b(of)f(p)q(ossible)i(completions)f ! (is)g(greater)f(than)g(this)h(v)m(alue,)h(Readline)555 ! 1104 y(will)g(ask)e(the)g(user)h(whether)f(or)g(not)g(he)g(wishes)h(to) ! f(view)h(them;)f(otherwise,)555 1158 y(they)f(are)g(simply)i(listed.)20 ! b(This)13 b(v)m(ariable)g(m)o(ust)f(b)q(e)h(set)f(to)f(an)h(in)o(teger) ! h(v)m(alue)555 1213 y(greater)h(than)h(or)g(equal)h(to)f(0.)k(The)d ! (default)f(limit)i(is)f Ft(100)p Fu(.)315 1294 y Ft(convert-meta)555 ! 1348 y Fu(If)11 b(set)g(to)g(`)p Ft(on)p Fu(',)f(Readline)i(will)h(con) ! o(v)o(ert)d(c)o(haracters)h(with)g(the)g(eigh)o(th)h(bit)f(set)555 ! 1403 y(to)f(an)h Fp(asci)q(i)e Fu(k)o(ey)i(sequence)g(b)o(y)g ! (stripping)h(the)e(eigh)o(th)h(bit)h(and)e(pre\014xing)i(an)555 ! 1456 y Fn(h)p 567 1430 70 2 v 567 1458 a Fm(ESC)p 567 ! 1466 V 634 1456 a Fn(i)666 1458 y Fu(c)o(haracter,)k(con)o(v)o(erting)h ! (them)g(to)f(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)555 ! 1513 y(The)e(default)h(v)m(alue)h(is)e(`)p Ft(on)p Fu('.)315 ! 1593 y Ft(disable-completion)555 1648 y Fu(If)k(set)f(to)f(`)p ! Ft(On)p Fu(',)h(Readline)i(will)g(inhibit)g(w)o(ord)e(completion.)30 ! b(Completion)555 1703 y(c)o(haracters)12 b(will)j(b)q(e)f(inserted)g ! (in)o(to)f(the)g(line)h(as)f(if)h(they)f(had)g(b)q(een)h(mapp)q(ed)555 ! 1758 y(to)h Ft(self-insert)p Fu(.)j(The)d(default)h(is)g(`)p ! Ft(off)p Fu('.)315 1838 y Ft(editing-mode)555 1893 y ! Fu(The)f Ft(editing-mode)d Fu(v)m(ariable)k(con)o(trols)e(whic)o(h)h ! (default)g(set)f(of)g(k)o(ey)g(bind-)555 1948 y(ings)f(is)g(used.)20 ! b(By)12 b(default,)i(Readline)f(starts)f(up)h(in)g(Emacs)f(editing)i ! (mo)q(de,)555 2003 y(where)h(the)f(k)o(eystrok)o(es)g(are)g(most)g ! (similar)i(to)d(Emacs.)20 b(This)15 b(v)m(ariable)h(can)555 ! 2058 y(b)q(e)g(set)f(to)f(either)i(`)p Ft(emacs)p Fu(')e(or)h(`)p ! Ft(vi)p Fu('.)315 2138 y Ft(enable-keypad)555 2193 y ! Fu(When)d(set)f(to)h(`)p Ft(on)p Fu(',)e(Readline)j(will)h(try)d(to)g ! (enable)i(the)f(application)h(k)o(eypad)555 2248 y(when)h(it)f(is)h ! (called.)21 b(Some)13 b(systems)g(need)h(this)g(to)f(enable)h(the)g ! (arro)o(w)e(k)o(eys.)555 2303 y(The)j(default)h(is)g(`)p ! Ft(off)p Fu('.)315 2383 y Ft(expand-tilde)555 2438 y ! Fu(If)e(set)g(to)f(`)p Ft(on)p Fu(',)f(tilde)k(expansion)e(is)h(p)q ! (erformed)f(when)g(Readline)h(attempts)555 2493 y(w)o(ord)g ! (completion.)21 b(The)15 b(default)h(is)f(`)p Ft(off)p ! Fu('.)555 2560 y(If)g(set)g(to)f(`)p Ft(on)p Fu(',)g(the)g(history)h ! (co)q(de)h(attempts)e(to)g(place)i(p)q(oin)o(t)f(at)f(the)h(same)555 ! 2615 y(lo)q(cation)20 b(on)f(eac)o(h)g(history)h(line)g(retriv)o(ed)g ! (with)f Ft(previous-history)e Fu(or)555 2670 y Ft(next-history)p ! Fu(.)p eop ! %%Page: 6 8 ! 6 7 bop 75 -58 a Fu(6)1322 b(GNU)15 b(Readline)h(Library)315 ! 149 y Ft(horizontal-scroll-mode)555 204 y Fu(This)j(v)m(ariable)g(can)f ! (b)q(e)g(set)g(to)f(either)i(`)p Ft(on)p Fu(')e(or)g(`)p ! Ft(off)p Fu('.)27 b(Setting)19 b(it)f(to)f(`)p Ft(on)p ! Fu(')555 259 y(means)c(that)f(the)i(text)e(of)h(the)g(lines)i(b)q(eing) ! f(edited)g(will)h(scroll)f(horizon)o(tally)555 314 y(on)i(a)f(single)i ! (screen)g(line)g(when)g(they)f(are)f(longer)h(than)g(the)g(width)g(of)g ! (the)555 369 y(screen,)e(instead)f(of)g(wrapping)g(on)o(to)f(a)h(new)g ! (screen)h(line.)21 b(By)13 b(default,)h(this)555 423 ! y(v)m(ariable)j(is)e(set)g(to)g(`)p Ft(off)p Fu('.)315 ! 506 y Ft(input-meta)555 560 y Fu(If)h(set)f(to)g(`)p ! Ft(on)p Fu(',)f(Readline)j(will)h(enable)e(eigh)o(t-bit)h(input)f(\(it) ! g(will)h(not)e(clear)555 615 y(the)20 b(eigh)o(th)g(bit)g(in)h(the)f(c) ! o(haracters)f(it)h(reads\),)g(regardless)g(of)g(what)f(the)555 ! 670 y(terminal)i(claims)g(it)f(can)g(supp)q(ort.)34 b(The)20 ! b(default)h(v)m(alue)g(is)g(`)p Ft(off)p Fu('.)33 b(The)555 ! 725 y(name)15 b Ft(meta-flag)f Fu(is)i(a)f(synon)o(ym)g(for)f(this)i(v) ! m(ariable.)315 807 y Ft(isearch-terminators)555 862 y ! Fu(The)26 b(string)g(of)f(c)o(haracters)g(that)g(should)i(terminate)f ! (an)g(incremen)o(tal)555 917 y(searc)o(h)12 b(without)h(subsequen)o ! (tly)g(executing)h(the)e(c)o(haracter)g(as)g(a)g(command)555 ! 971 y(\(see)22 b(Section)h(1.2.5)e([Searc)o(hing],)j(page)e(3\).)40 ! b(If)23 b(this)g(v)m(ariable)g(has)f(not)555 1026 y(b)q(een)17 ! b(giv)o(en)f(a)g(v)m(alue,)g(the)g(c)o(haracters)1247 ! 1024 y Fn(h)p 1259 998 70 2 v 1259 1026 a Fm(ESC)p 1259 ! 1034 V 1326 1024 a Fn(i)1357 1026 y Fu(and)g Fo(C-J)f ! Fu(will)i(terminate)f(an)555 1081 y(incremen)o(tal)g(searc)o(h.)315 ! 1163 y Ft(keymap)96 b Fu(Sets)19 b(Readline's)i(idea)f(of)f(the)g ! (curren)o(t)h(k)o(eymap)f(for)f(k)o(ey)i(binding)h(com-)555 ! 1218 y(mands.)41 b(Acceptable)23 b Ft(keymap)f Fu(names)g(are)f ! Ft(emacs)p Fu(,)i Ft(emacs-standard)p Fu(,)555 1273 y ! Ft(emacs-meta)p Fu(,)49 b Ft(emacs-ctlx)p Fu(,)g Ft(vi)p ! Fu(,)h Ft(vi-move)p Fu(,)f Ft(vi-command)p Fu(,)g(and)555 ! 1328 y Ft(vi-insert)p Fu(.)31 b Ft(vi)20 b Fu(is)g(equiv)m(alen)o(t)h ! (to)e Ft(vi-command)p Fu(;)g Ft(emacs)g Fu(is)h(equiv)m(alen)o(t)555 ! 1382 y(to)15 b Ft(emacs-standard)p Fu(.)20 b(The)d(default)f(v)m(alue)h ! (is)g Ft(emacs)p Fu(.)k(The)16 b(v)m(alue)h(of)f(the)555 ! 1437 y Ft(editing-mode)e Fu(v)m(ariable)i(also)f(a\013ects)g(the)g ! (default)h(k)o(eymap.)315 1519 y Ft(mark-directories)555 ! 1574 y Fu(If)j(set)g(to)g(`)p Ft(on)p Fu(',)f(completed)i(directory)g ! (names)f(ha)o(v)o(e)f(a)h(slash)h(app)q(ended.)555 1629 ! y(The)15 b(default)h(is)g(`)p Ft(on)p Fu('.)315 1711 ! y Ft(mark-modified-lines)555 1766 y Fu(This)j(v)m(ariable,)g(when)g ! (set)e(to)h(`)p Ft(on)p Fu(',)f(causes)h(Readline)h(to)e(displa)o(y)i ! (an)f(as-)555 1821 y(terisk)f(\(`)p Ft(*)p Fu('\))e(at)i(the)f(start)g ! (of)h(history)f(lines)j(whic)o(h)e(ha)o(v)o(e)g(b)q(een)h(mo)q ! (di\014ed.)555 1875 y(This)e(v)m(ariable)g(is)g(`)p Ft(off)p ! Fu(')e(b)o(y)h(default.)315 1958 y Ft(mark-symlinked-directories)555 ! 2012 y Fu(If)23 b(set)f(to)f(`)p Ft(on)p Fu(',)i(completed)g(names)g ! (whic)o(h)g(are)f(sym)o(b)q(olic)i(links)f(to)f(di-)555 ! 2067 y(rectories)h(ha)o(v)o(e)g(a)g(slash)g(app)q(ended)i(\(sub)s(ject) ! e(to)f(the)i(v)m(alue)g(of)f Ft(mark-)555 2122 y(directories)p ! Fu(\).)18 b(The)d(default)h(is)g(`)p Ft(off)p Fu('.)315 ! 2204 y Ft(match-hidden-files)555 2259 y Fu(This)c(v)m(ariable,)h(when)e ! (set)g(to)g(`)p Ft(on)p Fu(',)f(causes)h(Readline)i(to)d(matc)o(h)h ! (\014les)h(whose)555 2314 y(names)22 b(b)q(egin)h(with)g(a)e(`)p ! Ft(.)p Fu(')h(\(hidden)h(\014les\))g(when)f(p)q(erforming)h(\014lename) ! 555 2369 y(completion,)g(unless)f(the)f(leading)h(`)p ! Ft(.)p Fu(')e(is)h(supplied)i(b)o(y)e(the)f(user)h(in)h(the)555 ! 2423 y(\014lename)16 b(to)f(b)q(e)h(completed.)21 b(This)15 ! b(v)m(ariable)i(is)f(`)p Ft(on)p Fu(')e(b)o(y)h(default.)315 ! 2506 y Ft(output-meta)555 2560 y Fu(If)j(set)f(to)g(`)p ! Ft(on)p Fu(',)g(Readline)i(will)h(displa)o(y)f(c)o(haracters)d(with)j ! (the)e(eigh)o(th)h(bit)555 2615 y(set)g(directly)i(rather)d(than)h(as)g ! (a)g(meta-pre\014xed)h(escap)q(e)g(sequence.)30 b(The)555 ! 2670 y(default)16 b(is)f(`)p Ft(off)p Fu('.)p eop ! %%Page: 7 9 ! 7 8 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 ! b(7)315 149 y Ft(page-completions)555 204 y Fu(If)17 ! b(set)g(to)f(`)p Ft(on)p Fu(',)g(Readline)i(uses)g(an)e(in)o(ternal)i ! Ft(more)p Fu(-lik)o(e)g(pager)f(to)f(displa)o(y)555 259 ! y(a)g(screenful)h(of)f(p)q(ossible)i(completions)f(at)f(a)g(time.)23 ! b(This)17 b(v)m(ariable)g(is)g(`)p Ft(on)p Fu(')555 314 ! y(b)o(y)e(default.)315 395 y Ft(print-completions-horizont)o(ally)555 ! 450 y Fu(If)d(set)g(to)f(`)p Ft(on)p Fu(',)h(Readline)h(will)g(displa)o ! (y)h(completions)f(with)f(matc)o(hes)f(sorted)555 505 ! y(horizon)o(tally)23 b(in)f(alphab)q(etical)i(order,)f(rather)e(than)g ! (do)o(wn)h(the)g(screen.)555 560 y(The)15 b(default)h(is)g(`)p ! Ft(off)p Fu('.)315 641 y Ft(show-all-if-ambiguous)555 ! 696 y Fu(This)g(alters)e(the)i(default)f(b)q(eha)o(vior)h(of)e(the)h ! (completion)h(functions.)21 b(If)15 b(set)555 751 y(to)e(`)p ! Ft(on)p Fu(',)g(w)o(ords)g(whic)o(h)h(ha)o(v)o(e)g(more)f(than)g(one)h ! (p)q(ossible)i(completion)f(cause)555 806 y(the)20 b(matc)o(hes)f(to)f ! (b)q(e)j(listed)f(immediately)h(instead)f(of)f(ringing)i(the)e(b)q ! (ell.)555 861 y(The)c(default)h(v)m(alue)h(is)e(`)p Ft(off)p ! Fu('.)315 942 y Ft(visible-stats)555 997 y Fu(If)h(set)g(to)f(`)p ! Ft(on)p Fu(',)g(a)h(c)o(haracter)f(denoting)h(a)g(\014le's)h(t)o(yp)q ! (e)f(is)g(app)q(ended)i(to)d(the)555 1052 y(\014lename)h(when)g ! (listing)h(p)q(ossible)g(completions.)j(The)c(default)g(is)f(`)p ! Ft(off)p Fu('.)75 1133 y(Key)h(Bindings)315 1188 y(The)21 ! b(syn)o(tax)f(for)h(con)o(trolling)h(k)o(ey)f(bindings)h(in)g(the)f ! (init)h(\014le)g(is)g(simple.)39 b(First)20 b(y)o(ou)315 ! 1243 y(need)15 b(to)e(\014nd)h(the)g(name)g(of)g(the)f(command)h(that)f ! (y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19 b(The)14 b(follo)o(wing)315 ! 1298 y(sections)k(con)o(tain)h(tables)f(of)f(the)h(command)g(name,)g ! (the)g(default)h(k)o(eybinding,)h(if)e(an)o(y)l(,)315 ! 1353 y(and)d(a)g(short)g(description)i(of)d(what)h(the)g(command)g(do)q ! (es.)315 1421 y(Once)k(y)o(ou)f(kno)o(w)f(the)h(name)g(of)g(the)g ! (command,)g(simply)h(place)g(on)f(a)f(line)j(in)f(the)f(init)315 ! 1476 y(\014le)g(the)f(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f(wish)i(to)e ! (bind)i(the)f(command)g(to,)f(a)g(colon,)i(and)f(then)315 ! 1530 y(the)f(name)g(of)g(the)g(command.)22 b(The)16 b(name)g(of)g(the)g ! (k)o(ey)f(can)i(b)q(e)f(expressed)h(in)g(di\013eren)o(t)315 ! 1585 y(w)o(a)o(ys,)d(dep)q(ending)j(on)e(what)g(y)o(ou)g(\014nd)h(most) ! e(comfortable.)315 1653 y(In)19 b(addition)g(to)e(command)h(names,)g ! (readline)i(allo)o(ws)e(k)o(eys)g(to)f(b)q(e)i(b)q(ound)g(to)e(a)h ! (string)315 1708 y(that)c(is)i(inserted)g(when)g(the)f(k)o(ey)g(is)h ! (pressed)g(\(a)e Fk(macro)r Fu(\).)315 1790 y Fk(k)o(eyname)s ! Fu(:)19 b Fk(function-name)g Fu(or)c Fk(macro)555 1845 ! y(k)o(eyname)i Fu(is)e(the)f(name)h(of)f(a)g(k)o(ey)g(sp)q(elled)j(out) ! d(in)h(English.)21 b(F)l(or)13 b(example:)675 1910 y ! Ft(Control-u:)22 b(universal-argument)675 1962 y(Meta-Rubout:)g ! (backward-kill-word)675 2014 y(Control-o:)g(">)i(output")555 ! 2082 y Fu(In)c(the)f(ab)q(o)o(v)o(e)g(example,)i Fo(C-u)e ! Fu(is)h(b)q(ound)g(to)f(the)g(function)h Ft(universal-)555 ! 2137 y(argument)p Fu(,)e Fo(M-DEL)h Fu(is)g(b)q(ound)h(to)e(the)h ! (function)h Ft(backward-kill-word)p Fu(,)555 2191 y(and)g ! Fo(C-o)f Fu(is)h(b)q(ound)g(to)f(run)h(the)f(macro)g(expressed)h(on)g ! (the)f(righ)o(t)h(hand)555 2246 y(side)c(\(that)e(is,)i(to)e(insert)i ! (the)f(text)g(`)p Ft(>)f(output)p Fu(')g(in)o(to)i(the)f(line\).)555 ! 2314 y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)i(c)o(haracter)e ! (names)g(are)g(recognized)i(while)g(pro-)555 2369 y(cessing)13 ! b(this)f(k)o(ey)g(binding)h(syn)o(tax:)18 b Fk(DEL)p ! Fu(,)11 b Fk(ESC)p Fu(,)h Fk(ESCAPE)p Fu(,)f Fk(LFD)p ! Fu(,)g Fk(NEW-)555 2424 y(LINE)p Fu(,)16 b Fk(RET)p Fu(,)e ! Fk(RETURN)p Fu(,)f Fk(R)o(UBOUT)p Fu(,)i Fk(SP)l(A)o(CE)p ! Fu(,)g Fk(SPC)p Fu(,)f(and)i Fk(T)l(AB)p Fu(.)315 2506 ! y Ft(")p Fk(k)o(eyseq)q Ft(")p Fu(:)k Fk(function-name)e ! Fu(or)d Fk(macro)555 2560 y(k)o(eyseq)i Fu(di\013ers)e(from)g ! Fk(k)o(eyname)j Fu(ab)q(o)o(v)o(e)d(in)i(that)d(strings)i(denoting)g ! (an)f(en-)555 2615 y(tire)i(k)o(ey)g(sequence)h(can)f(b)q(e)g(sp)q ! (eci\014ed,)i(b)o(y)e(placing)h(the)f(k)o(ey)g(sequence)h(in)555 ! 2670 y(double)e(quotes.)j(Some)c Fp(gnu)g Fu(Emacs)f(st)o(yle)h(k)o(ey) ! g(escap)q(es)g(can)g(b)q(e)g(used,)g(as)p eop ! %%Page: 8 10 ! 8 9 bop 75 -58 a Fu(8)1322 b(GNU)15 b(Readline)h(Library)555 ! 149 y(in)i(the)f(follo)o(wing)g(example,)h(but)f(the)g(sp)q(ecial)i(c)o ! (haracter)d(names)h(are)f(not)555 204 y(recognized.)675 ! 270 y Ft("\\C-u":)23 b(universal-argument)675 322 y("\\C-x\\C-r":)f ! (re-read-init-file)675 373 y("\\e[11~":)h("Function)f(Key)i(1")555 ! 442 y Fu(In)33 b(the)f(ab)q(o)o(v)o(e)g(example,)37 b ! Fo(C-u)32 b Fu(is)h(again)f(b)q(ound)h(to)f(the)g(function)555 ! 497 y Ft(universal-argument)19 b Fu(\(just)j(as)f(it)h(w)o(as)f(in)i ! (the)f(\014rst)f(example\),)j(`)p Fo(C-x)555 551 y(C-r)p ! Fu(')c(is)h(b)q(ound)g(to)f(the)h(function)g Ft(re-read-init-file)p ! Fu(,)f(and)g(`)1731 549 y Fn(h)p 1743 523 70 2 v 1743 ! 551 a Fm(ESC)p 1743 559 V 1810 549 a Fn(i)15 b(h)p 1852 ! 523 10 2 v 1852 551 a Fm([)p 1852 560 V 1860 549 a Fn(i)555 ! 604 y(h)p 567 578 18 2 v 567 606 a Fm(1)p 567 614 V 583 ! 604 a Fn(i)g(h)p 625 578 V 625 606 a Fm(1)p 625 614 V ! 640 604 a Fn(i)g(h)p 683 578 24 2 v 683 606 a Ft(~)p ! 683 614 V 704 604 a Fn(i)719 606 y Fu(')g(is)h(b)q(ound)g(to)e(insert)i ! (the)f(text)g(`)p Ft(Function)f(Key)g(1)p Fu('.)315 688 ! y(The)h(follo)o(wing)h Fp(gnu)e Fu(Emacs)h(st)o(yle)g(escap)q(e)h ! (sequences)g(are)e(a)o(v)m(ailable)j(when)e(sp)q(ecifying)315 ! 743 y(k)o(ey)g(sequences:)315 825 y Fo(\\C-)168 b Fu(con)o(trol)15 ! b(pre\014x)315 907 y Fo(\\M-)168 b Fu(meta)15 b(pre\014x)315 ! 989 y Fo(\\e)192 b Fu(an)15 b(escap)q(e)h(c)o(haracter)315 ! 1071 y Fo(\\\\)192 b Fu(bac)o(kslash)315 1152 y Fo(\\)p ! Ft(")555 1150 y Fn(h)p 567 1124 V 567 1152 a Ft(")p 567 ! 1160 V 589 1150 a Fn(i)604 1152 y Fu(,)15 b(a)f(double)j(quotation)e ! (mark)315 1234 y Fo(\\')555 1232 y Fn(h)p 567 1206 10 ! 2 v 567 1234 a Fm(')p 567 1242 V 575 1232 a Fn(i)590 ! 1234 y Fu(,)g(a)f(single)j(quote)e(or)g(ap)q(ostrophe)315 ! 1316 y(In)f(addition)h(to)f(the)f Fp(gnu)h Fu(Emacs)g(st)o(yle)f(escap) ! q(e)i(sequences,)g(a)e(second)i(set)e(of)h(bac)o(kslash)315 ! 1371 y(escap)q(es)i(is)g(a)o(v)m(ailable:)315 1453 y ! Ft(\\a)192 b Fu(alert)15 b(\(b)q(ell\))315 1535 y Ft(\\b)192 ! b Fu(bac)o(kspace)315 1617 y Ft(\\d)g Fu(delete)315 1699 ! y Ft(\\f)g Fu(form)14 b(feed)315 1781 y Ft(\\n)192 b ! Fu(newline)315 1862 y Ft(\\r)g Fu(carriage)15 b(return)315 ! 1944 y Ft(\\t)192 b Fu(horizon)o(tal)16 b(tab)315 2026 ! y Ft(\\v)192 b Fu(v)o(ertical)16 b(tab)315 2108 y Ft(\\)p ! Fk(nnn)141 b Fu(the)17 b(eigh)o(t-bit)h(c)o(haracter)f(whose)g(v)m ! (alue)i(is)e(the)h(o)q(ctal)f(v)m(alue)i Fk(nnn)f Fu(\(one)f(to)555 ! 2163 y(three)e(digits\))315 2245 y Ft(\\x)p Fk(HH)124 ! b Fu(the)20 b(eigh)o(t-bit)g(c)o(haracter)f(whose)h(v)m(alue)h(is)f ! (the)g(hexadecimal)h(v)m(alue)g Fk(HH)555 2300 y Fu(\(one)15 ! b(or)g(t)o(w)o(o)f(hex)h(digits\))315 2382 y(When)k(en)o(tering)g(the)g ! (text)f(of)g(a)h(macro,)f(single)i(or)e(double)i(quotes)f(m)o(ust)f(b)q ! (e)h(used)h(to)315 2436 y(indicate)12 b(a)f(macro)f(de\014nition.)20 ! b(Unquoted)11 b(text)f(is)i(assumed)e(to)h(b)q(e)g(a)f(function)i ! (name.)18 b(In)315 2491 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o ! (kslash)g(escap)q(es)g(describ)q(ed)i(ab)q(o)o(v)o(e)d(are)g(expanded.) ! 20 b(Bac)o(kslash)315 2546 y(will)i(quote)d(an)o(y)h(other)g(c)o ! (haracter)f(in)i(the)f(macro)f(text,)h(including)j(`)p ! Ft(")p Fu(')c(and)h(`)p Ft(')p Fu('.)34 b(F)l(or)315 ! 2601 y(example,)14 b(the)f(follo)o(wing)g(binding)i(will)g(mak)o(e)d(`) ! p Fo(C-x)i Ft(\\)p Fu(')f(insert)g(a)g(single)h(`)p Ft(\\)p ! Fu(')e(in)o(to)h(the)g(line:)435 2666 y Ft("\\C-x\\\\":)23 ! b("\\\\")p eop ! %%Page: 9 11 ! 9 10 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 ! b(9)75 149 y Fj(1.3.2)30 b(Conditional)20 b(Init)g(Constructs)137 ! 246 y Fu(Readline)f(implemen)o(ts)g(a)f(facilit)o(y)g(similar)h(in)g ! (spirit)f(to)f(the)h(conditional)h(compilation)g(features)75 ! 301 y(of)e(the)g(C)g(prepro)q(cessor)g(whic)o(h)i(allo)o(ws)e(k)o(ey)g ! (bindings)i(and)f(v)m(ariable)g(settings)f(to)g(b)q(e)h(p)q(erformed)f ! (as)75 355 y(the)e(result)h(of)f(tests.)k(There)c(are)g(four)g(parser)g ! (directiv)o(es)h(used.)75 435 y Ft($if)168 b Fu(The)16 ! b Ft($if)f Fu(construct)g(allo)o(ws)h(bindings)i(to)d(b)q(e)h(made)g ! (based)g(on)f(the)h(editing)h(mo)q(de,)f(the)315 490 ! y(terminal)k(b)q(eing)g(used,)g(or)f(the)g(application)i(using)e ! (Readline.)33 b(The)19 b(text)g(of)f(the)i(test)315 545 ! y(extends)c(to)e(the)h(end)h(of)f(the)g(line;)i(no)e(c)o(haracters)f ! (are)h(required)i(to)d(isolate)i(it.)315 624 y Ft(mode)144 ! b Fu(The)11 b Ft(mode=)e Fu(form)h(of)g(the)h Ft($if)f ! Fu(directiv)o(e)h(is)g(used)g(to)f(test)g(whether)h(Readline)555 ! 679 y(is)k(in)h Ft(emacs)e Fu(or)g Ft(vi)g Fu(mo)q(de.)20 ! b(This)c(ma)o(y)e(b)q(e)h(used)g(in)h(conjunction)g(with)f(the)555 ! 734 y(`)p Ft(set)f(keymap)p Fu(')f(command,)g(for)h(instance,)g(to)f ! (set)h(bindings)h(in)g(the)f Ft(emacs-)555 789 y(standard)d ! Fu(and)i Ft(emacs-ctlx)e Fu(k)o(eymaps)h(only)i(if)f(Readline)g(is)g ! (starting)f(out)555 844 y(in)k Ft(emacs)f Fu(mo)q(de.)315 ! 923 y Ft(term)144 b Fu(The)14 b Ft(term=)e Fu(form)h(ma)o(y)g(b)q(e)h ! (used)g(to)f(include)j(terminal-sp)q(eci\014c)g(k)o(ey)d(bind-)555 ! 978 y(ings,)19 b(p)q(erhaps)g(to)e(bind)i(the)g(k)o(ey)e(sequences)j ! (output)e(b)o(y)g(the)g(terminal's)555 1033 y(function)13 ! b(k)o(eys.)18 b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)g(side)g(of)g ! (the)g(`)p Ft(=)p Fu(')f(is)h(tested)g(against)555 1088 ! y(b)q(oth)j(the)g(full)i(name)e(of)f(the)h(terminal)h(and)f(the)g(p)q ! (ortion)h(of)e(the)h(terminal)555 1142 y(name)i(b)q(efore)g(the)g ! (\014rst)f(`)p Ft(-)p Fu('.)24 b(This)17 b(allo)o(ws)g ! Ft(sun)f Fu(to)g(matc)o(h)h(b)q(oth)f Ft(sun)h Fu(and)555 ! 1197 y Ft(sun-cmd)p Fu(,)d(for)g(instance.)315 1277 y ! Ft(application)555 1332 y Fu(The)d Fk(application)i Fu(construct)e(is)g ! (used)h(to)e(include)j(application-sp)q(eci)q(\014c)h(set-)555 ! 1386 y(tings.)19 b(Eac)o(h)12 b(program)f(using)j(the)e(Readline)i ! (library)f(sets)f(the)g Fk(application)555 1441 y(name)p ! Fu(,)g(and)g(y)o(ou)f(can)h(test)f(for)g(a)g(particular)h(v)m(alue.)20 ! b(This)12 b(could)h(b)q(e)f(used)h(to)555 1496 y(bind)18 ! b(k)o(ey)e(sequences)i(to)d(functions)j(useful)f(for)f(a)g(sp)q ! (eci\014c)i(program.)23 b(F)l(or)555 1551 y(instance,)17 ! b(the)g(follo)o(wing)g(command)g(adds)f(a)g(k)o(ey)h(sequence)g(that)f ! (quotes)555 1606 y(the)f(curren)o(t)g(or)g(previous)h(w)o(ord)e(in)j ! (Bash:)675 1670 y Ft($if)23 b(Bash)675 1722 y(#)h(Quote)f(the)g ! (current)g(or)h(previous)f(word)675 1774 y("\\C-xq":)g ! ("\\eb\\"\\ef\\"")675 1826 y($endif)75 1905 y($endif)96 ! b Fu(This)16 b(command,)e(as)h(seen)h(in)g(the)f(previous)h(example,)g ! (terminates)f(an)g Ft($if)f Fu(command.)75 1985 y Ft($else)120 ! b Fu(Commands)15 b(in)h(this)f(branc)o(h)h(of)e(the)i ! Ft($if)e Fu(directiv)o(e)j(are)e(executed)h(if)g(the)f(test)g(fails.)75 ! 2065 y Ft($include)48 b Fu(This)22 b(directiv)o(e)h(tak)o(es)e(a)h ! (single)h(\014lename)g(as)e(an)h(argumen)o(t)f(and)h(reads)f(commands) ! 315 2120 y(and)e(bindings)j(from)c(that)h(\014le.)33 ! b(F)l(or)19 b(example,)i(the)e(follo)o(wing)h(directiv)o(e)h(reads)e ! (from)315 2174 y(`)p Ft(/etc/inputrc)p Fu(':)435 2239 ! y Ft($include)k(/etc/inputrc)75 2351 y Fj(1.3.3)30 b(Sample)20 ! b(Init)h(File)137 2447 y Fu(Here)16 b(is)g(an)f(example)h(of)f(an)g ! Fk(inputrc)k Fu(\014le.)i(This)16 b(illustrates)g(k)o(ey)f(binding,)i ! (v)m(ariable)f(assignmen)o(t,)75 2502 y(and)f(conditional)i(syn)o(tax.) ! p eop ! %%Page: 10 12 ! 10 11 bop 75 -58 a Fu(10)1299 b(GNU)15 b(Readline)h(Library)195 ! 201 y Ft(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i(line)f ! (input)g(editing)g(for)195 253 y(#)h(programs)e(that)i(use)f(the)h(GNU) ! f(Readline)g(library.)47 b(Existing)195 305 y(#)24 b(programs)e ! (include)h(FTP,)h(Bash,)f(and)g(GDB.)195 357 y(#)195 ! 409 y(#)h(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h(C-x)f ! (C-r.)195 461 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h(comments.) ! 195 513 y(#)195 565 y(#)g(First,)f(include)g(any)g(systemwide)g ! (bindings)f(and)i(variable)195 616 y(#)g(assignments)e(from)h ! (/etc/Inputrc)195 668 y($include)g(/etc/Inputrc)195 772 ! y(#)195 824 y(#)h(Set)f(various)g(bindings)g(for)g(emacs)g(mode.)195 ! 928 y(set)g(editing-mode)g(emacs)195 1032 y($if)g(mode=emacs)195 ! 1135 y(Meta-Control-h:)46 b(backward-kill-word)21 b(Text)i(after)h(the) ! f(function)g(name)g(is)h(ignored)p 1986 1145 21 38 v ! 195 1239 a(#)195 1291 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)195 ! 1343 y(#)195 1395 y(#"\\M-OD":)190 b(backward-char)195 ! 1447 y(#"\\M-OC":)g(forward-char)195 1499 y(#"\\M-OA":)g ! (previous-history)195 1550 y(#"\\M-OB":)g(next-history)195 ! 1602 y(#)195 1654 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)195 ! 1706 y(#)195 1758 y("\\M-[D":)190 b(backward-char)195 ! 1810 y("\\M-[C":)g(forward-char)195 1862 y("\\M-[A":)g ! (previous-history)195 1914 y("\\M-[B":)g(next-history)195 ! 1966 y(#)195 2017 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode) ! 195 2069 y(#)195 2121 y(#"\\M-\\C-OD":)165 b(backward-char)195 ! 2173 y(#"\\M-\\C-OC":)g(forward-char)195 2225 y(#"\\M-\\C-OA":)g ! (previous-history)195 2277 y(#"\\M-\\C-OB":)g(next-history)195 ! 2329 y(#)195 2381 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode) ! 195 2433 y(#)195 2484 y(#"\\M-\\C-[D":)165 b(backward-char)195 ! 2536 y(#"\\M-\\C-[C":)g(forward-char)195 2588 y(#"\\M-\\C-[A":)g ! (previous-history)195 2640 y(#"\\M-\\C-[B":)g(next-history)p eop ! %%Page: 11 13 ! 11 12 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055 ! b(11)195 201 y Ft(C-q:)23 b(quoted-insert)195 305 y($endif)195 ! 409 y(#)h(An)f(old-style)g(binding.)47 b(This)23 b(happens)g(to)g(be)h ! (the)f(default.)195 461 y(TAB:)g(complete)195 565 y(#)h(Macros)f(that)g ! (are)h(convenient)e(for)h(shell)h(interaction)195 616 ! y($if)f(Bash)195 668 y(#)h(edit)f(the)g(path)195 720 ! y("\\C-xp":)g("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")195 ! 772 y(#)h(prepare)f(to)g(type)h(a)f(quoted)g(word)h(--)195 ! 824 y(#)g(insert)f(open)g(and)h(close)f(double)g(quotes)195 ! 876 y(#)h(and)f(move)g(to)h(just)f(after)h(the)f(open)g(quote)195 ! 928 y("\\C-x\\"":)g("\\"\\"\\C-b")195 980 y(#)h(insert)f(a)g(backslash) ! g(\(testing)g(backslash)g(escapes)195 1032 y(#)h(in)f(sequences)g(and)g ! (macros\))195 1083 y("\\C-x\\\\":)g("\\\\")195 1135 y(#)h(Quote)f(the)g ! (current)g(or)h(previous)f(word)195 1187 y("\\C-xq":)g ! ("\\eb\\"\\ef\\"")195 1239 y(#)h(Add)f(a)h(binding)f(to)g(refresh)g ! (the)h(line,)f(which)g(is)h(unbound)195 1291 y("\\C-xr":)f ! (redraw-current-line)195 1343 y(#)h(Edit)f(variable)g(on)g(current)g ! (line.)195 1395 y("\\M-\\C-v":)f("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=) ! o(")195 1447 y($endif)195 1550 y(#)i(use)f(a)h(visible)f(bell)g(if)h ! (one)f(is)h(available)195 1602 y(set)f(bell-style)g(visible)195 ! 1706 y(#)h(don't)f(strip)g(characters)g(to)g(7)h(bits)f(when)h(reading) ! 195 1758 y(set)f(input-meta)g(on)195 1862 y(#)h(allow)f(iso-latin1)f ! (characters)h(to)g(be)h(inserted)f(rather)195 1914 y(#)h(than)f ! (converted)g(to)g(prefix-meta)g(sequences)195 1966 y(set)g ! (convert-meta)g(off)195 2069 y(#)h(display)f(characters)f(with)h(the)h ! (eighth)f(bit)g(set)h(directly)195 2121 y(#)g(rather)f(than)g(as)h ! (meta-prefixed)e(characters)195 2173 y(set)h(output-meta)g(on)195 ! 2277 y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g ! (completions)f(for)195 2329 y(#)i(a)f(word,)h(ask)f(the)h(user)f(if)g ! (he)h(wants)f(to)h(see)f(all)h(of)f(them)195 2381 y(set)g ! (completion-query-items)e(150)195 2484 y(#)j(For)f(FTP)195 ! 2536 y($if)g(Ftp)195 2588 y("\\C-xg":)g("get)g(\\M-?")195 ! 2640 y("\\C-xt":)g("put)g(\\M-?")p eop ! %%Page: 12 14 ! 12 13 bop 75 -58 a Fu(12)1299 b(GNU)15 b(Readline)h(Library)195 ! 149 y Ft("\\M-.":)23 b(yank-last-arg)195 201 y($endif)75 ! 329 y Fs(1.4)33 b(Bindable)24 b(Readline)f(Commands)137 ! 425 y Fu(This)17 b(section)f(describ)q(es)h(Readline)g(commands)f(that) ! e(ma)o(y)h(b)q(e)i(b)q(ound)f(to)f(k)o(ey)h(sequences.)22 ! b(Com-)75 480 y(mand)15 b(names)g(without)h(an)f(accompan)o(ying)g(k)o ! (ey)g(sequence)i(are)e(un)o(b)q(ound)h(b)o(y)f(default.)137 ! 547 y(In)f(the)f(follo)o(wing)h(descriptions,)h Fk(p)q(oin)o(t)f ! Fu(refers)f(to)g(the)g(curren)o(t)g(cursor)f(p)q(osition,)j(and)e ! Fk(mark)i Fu(refers)75 601 y(to)k(a)g(cursor)g(p)q(osition)h(sa)o(v)o ! (ed)f(b)o(y)h(the)f Ft(set-mark)g Fu(command.)32 b(The)20 ! b(text)f(b)q(et)o(w)o(een)g(the)h(p)q(oin)o(t)g(and)75 ! 656 y(mark)15 b(is)g(referred)h(to)e(as)h(the)g Fk(region)p ! Fu(.)75 767 y Fj(1.4.1)30 b(Commands)21 b(F)-5 b(or)19 ! b(Mo)n(ving)75 888 y Ft(beginning-of-line)13 b(\(C-a\))315 ! 942 y Fu(Mo)o(v)o(e)h(to)h(the)g(start)f(of)h(the)g(curren)o(t)g(line.) ! 75 1034 y Ft(end-of-line)f(\(C-e\))315 1088 y Fu(Mo)o(v)o(e)g(to)h(the) ! g(end)h(of)f(the)g(line.)75 1179 y Ft(forward-char)f(\(C-f\))315 ! 1234 y Fu(Mo)o(v)o(e)g(forw)o(ard)g(a)h(c)o(haracter.)75 ! 1325 y Ft(backward-char)e(\(C-b\))315 1380 y Fu(Mo)o(v)o(e)h(bac)o(k)h ! (a)g(c)o(haracter.)75 1471 y Ft(forward-word)f(\(M-f\))315 ! 1526 y Fu(Mo)o(v)o(e)g(forw)o(ard)g(to)g(the)i(end)g(of)e(the)h(next)h ! (w)o(ord.)j(W)l(ords)c(are)f(comp)q(osed)i(of)f(letters)g(and)315 ! 1581 y(digits.)75 1672 y Ft(backward-word)e(\(M-b\))315 ! 1727 y Fu(Mo)o(v)o(e)j(bac)o(k)g(to)h(the)f(start)g(of)g(the)h(curren)o ! (t)g(or)f(previous)i(w)o(ord.)24 b(W)l(ords)16 b(are)h(comp)q(osed)315 ! 1782 y(of)e(letters)g(and)g(digits.)75 1873 y Ft(clear-screen)f ! (\(C-l\))315 1928 y Fu(Clear)f(the)h(screen)g(and)f(redra)o(w)g(the)g ! (curren)o(t)g(line,)i(lea)o(ving)g(the)e(curren)o(t)g(line)i(at)e(the)g ! (top)315 1982 y(of)i(the)g(screen.)75 2074 y Ft(redraw-current-line)e ! (\(\))315 2128 y Fu(Refresh)i(the)g(curren)o(t)g(line.)22 ! b(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75 2239 ! y Fj(1.4.2)30 b(Commands)21 b(F)-5 b(or)19 b(Manipulating)i(The)f ! (History)75 2360 y Ft(accept-line)14 b(\(Newline)g(or)h(Return\))315 ! 2414 y Fu(Accept)j(the)g(line)h(regardless)f(of)f(where)h(the)g(cursor) ! f(is.)27 b(If)18 b(this)g(line)h(is)g(non-empt)o(y)l(,)f(it)315 ! 2469 y(ma)o(y)d(b)q(e)i(added)f(to)g(the)g(history)g(list)g(for)g ! (future)g(recall)h(with)f Ft(add_history\(\))p Fu(.)k(If)d(this)315 ! 2524 y(line)g(is)f(a)e(mo)q(di\014ed)j(history)e(line,)i(the)e(history) ! g(line)i(is)f(restored)e(to)h(its)g(original)i(state.)75 ! 2615 y Ft(previous-history)c(\(C-p\))315 2670 y Fu(Mo)o(v)o(e)h(`bac)o ! (k')h(through)f(the)i(history)f(list,)g(fetc)o(hing)h(the)f(previous)h ! (command.)p eop ! %%Page: 13 15 ! 13 14 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055 ! b(13)75 149 y Ft(next-history)14 b(\(C-n\))315 204 y ! Fu(Mo)o(v)o(e)g(`forw)o(ard')f(through)i(the)h(history)f(list,)g(fetc)o ! (hing)h(the)f(next)h(command.)75 307 y Ft(beginning-of-history)c ! (\(M-<\))315 362 y Fu(Mo)o(v)o(e)i(to)h(the)g(\014rst)g(line)i(in)f ! (the)f(history)l(.)75 465 y Ft(end-of-history)e(\(M->\))315 ! 520 y Fu(Mo)o(v)o(e)h(to)h(the)g(end)h(of)f(the)g(input)h(history)l(,)f ! (i.e.,)g(the)g(line)i(curren)o(tly)f(b)q(eing)g(en)o(tered.)75 ! 624 y Ft(reverse-search-history)c(\(C-r\))315 678 y Fu(Searc)o(h)k(bac) ! o(kw)o(ard)e(starting)h(at)g(the)h(curren)o(t)f(line)j(and)d(mo)o(ving) ! h(`up')f(through)g(the)h(his-)315 733 y(tory)e(as)h(necessary)l(.)20 ! b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 836 ! y Ft(forward-search-history)c(\(C-s\))315 891 y Fu(Searc)o(h)j(forw)o ! (ard)e(starting)h(at)h(the)f(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do) ! o(wn')f(through)g(the)h(the)315 946 y(history)g(as)g(necessary)l(.)20 ! b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 1049 ! y Ft(non-incremental-reverse-se)o(arch-hi)o(story)c(\(M-p\))315 ! 1104 y Fu(Searc)o(h)k(bac)o(kw)o(ard)e(starting)h(at)g(the)h(curren)o ! (t)f(line)j(and)d(mo)o(ving)h(`up')f(through)g(the)h(his-)315 ! 1159 y(tory)h(as)h(necessary)g(using)h(a)e(non-incremen)o(tal)j(searc)o ! (h)e(for)f(a)h(string)g(supplied)i(b)o(y)e(the)315 1214 ! y(user.)75 1317 y Ft(non-incremental-forward-se)o(arch-hi)o(story)12 ! b(\(M-n\))315 1372 y Fu(Searc)o(h)j(forw)o(ard)e(starting)h(at)h(the)f ! (curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)o(wn')f(through)g(the)h(the) ! 315 1426 y(history)e(as)g(necessary)h(using)g(a)f(non-incremen)o(tal)i ! (searc)o(h)e(for)g(a)g(string)g(supplied)j(b)o(y)d(the)315 ! 1481 y(user.)75 1584 y Ft(history-search-forward)f(\(\))315 ! 1639 y Fu(Searc)o(h)21 b(forw)o(ard)e(through)i(the)f(history)h(for)f ! (the)h(string)g(of)f(c)o(haracters)g(b)q(et)o(w)o(een)h(the)315 ! 1694 y(start)16 b(of)h(the)h(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o ! (t.)28 b(This)18 b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27 ! b(By)315 1749 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75 ! 1852 y Ft(history-search-backward)c(\(\))315 1907 y Fu(Searc)o(h)18 ! b(bac)o(kw)o(ard)e(through)h(the)h(history)f(for)g(the)g(string)h(of)f ! (c)o(haracters)f(b)q(et)o(w)o(een)i(the)315 1962 y(start)e(of)h(the)h ! (curren)o(t)g(line)h(and)e(the)h(p)q(oin)o(t.)28 b(This)18 ! b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27 b(By)315 ! 2016 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75 ! 2120 y Ft(yank-nth-arg)e(\(M-C-y\))315 2174 y Fu(Insert)f(the)g ! (\014rst)g(argumen)o(t)f(to)g(the)i(previous)f(command)g(\(usually)h ! (the)f(second)h(w)o(ord)e(on)315 2229 y(the)j(previous)h(line\))g(at)e ! (p)q(oin)o(t.)21 b(With)15 b(an)g(argumen)o(t)f Fk(n)p ! Fu(,)h(insert)g(the)g Fk(n)p Fu(th)g(w)o(ord)g(from)f(the)315 ! 2284 y(previous)g(command)g(\(the)f(w)o(ords)f(in)j(the)e(previous)i ! (command)e(b)q(egin)i(with)e(w)o(ord)g(0\).)19 b(A)315 ! 2339 y(negativ)o(e)13 b(argumen)o(t)f(inserts)h(the)g ! Fk(n)p Fu(th)g(w)o(ord)f(from)g(the)h(end)h(of)e(the)h(previous)g ! (command.)75 2442 y Ft(yank-last-arg)g(\(M-.)i(or)g(M-_\))315 ! 2497 y Fu(Insert)j(last)f(argumen)o(t)g(to)g(the)g(previous)i(command)e ! (\(the)g(last)h(w)o(ord)f(of)g(the)g(previous)315 2552 ! y(history)e(en)o(try\).)20 b(With)15 b(an)g(argumen)o(t,)g(b)q(eha)o(v) ! o(e)g(exactly)h(lik)o(e)g Ft(yank-nth-arg)p Fu(.)j(Succes-)315 ! 2606 y(siv)o(e)f(calls)g(to)f Ft(yank-last-arg)e Fu(mo)o(v)o(e)i(bac)o ! (k)g(through)g(the)g(history)g(list,)i(inserting)f(the)315 ! 2661 y(last)d(argumen)o(t)g(of)f(eac)o(h)i(line)g(in)g(turn.)p eop ! %%Page: 14 16 ! 14 15 bop 75 -58 a Fu(14)1299 b(GNU)15 b(Readline)h(Library)75 ! 149 y Fj(1.4.3)30 b(Commands)21 b(F)-5 b(or)19 b(Changing)i(T)-5 ! b(ext)75 286 y Ft(delete-char)14 b(\(C-d\))315 341 y ! Fu(Delete)20 b(the)g(c)o(haracter)e(at)h(p)q(oin)o(t.)33 ! b(If)20 b(p)q(oin)o(t)g(is)g(at)e(the)i(b)q(eginning)i(of)d(the)g ! (line,)j(there)315 396 y(are)c(no)h(c)o(haracters)e(in)j(the)e(line,)j ! (and)e(the)f(last)h(c)o(haracter)e(t)o(yp)q(ed)i(w)o(as)f(not)g(b)q ! (ound)i(to)315 450 y Ft(delete-char)p Fu(,)13 b(then)j(return)f ! Fp(eof)p Fu(.)75 552 y Ft(backward-delete-char)d(\(Rubout\))315 ! 607 y Fu(Delete)k(the)f(c)o(haracter)f(b)q(ehind)j(the)f(cursor.)j(A)c ! (n)o(umeric)h(argumen)o(t)e(means)i(to)e(kill)j(the)315 ! 661 y(c)o(haracters)d(instead)i(of)f(deleting)i(them.)75 ! 763 y Ft(forward-backward-delete-ch)o(ar)12 b(\(\))315 ! 818 y Fu(Delete)20 b(the)f(c)o(haracter)f(under)i(the)f(cursor,)h ! (unless)g(the)f(cursor)g(is)h(at)e(the)h(end)h(of)f(the)315 ! 872 y(line,)e(in)g(whic)o(h)g(case)e(the)h(c)o(haracter)g(b)q(ehind)h ! (the)f(cursor)g(is)g(deleted.)23 b(By)16 b(default,)h(this)315 ! 927 y(is)f(not)f(b)q(ound)h(to)e(a)h(k)o(ey)l(.)75 1029 ! y Ft(quoted-insert)e(\(C-q)i(or)g(C-v\))315 1083 y Fu(Add)j(the)f(next) ! g(c)o(haracter)g(t)o(yp)q(ed)g(to)f(the)i(line)g(v)o(erbatim.)26 ! b(This)18 b(is)f(ho)o(w)g(to)g(insert)g(k)o(ey)315 1138 ! y(sequences)f(lik)o(e)h Fo(C-q)p Fu(,)d(for)h(example.)75 ! 1240 y Ft(tab-insert)f(\(M-)401 1238 y Fn(h)p 412 1212 ! 74 2 v 412 1240 a Fm(T)m(AB)p 412 1247 V 484 1238 a Fn(i)499 ! 1240 y Ft(\))315 1294 y Fu(Insert)h(a)g(tab)g(c)o(haracter.)75 ! 1396 y Ft(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...)o(\))315 ! 1451 y Fu(Insert)g(y)o(ourself.)75 1552 y Ft(transpose-chars)e(\(C-t\)) ! 315 1607 y Fu(Drag)i(the)h(c)o(haracter)f(b)q(efore)h(the)h(cursor)e ! (forw)o(ard)g(o)o(v)o(er)g(the)h(c)o(haracter)f(at)h(the)g(cursor,)315 ! 1662 y(mo)o(ving)i(the)f(cursor)h(forw)o(ard)e(as)i(w)o(ell.)28 ! b(If)18 b(the)g(insertion)h(p)q(oin)o(t)f(is)g(at)f(the)h(end)h(of)e ! (the)315 1716 y(line,)c(then)e(this)h(transp)q(oses)e(the)h(last)g(t)o ! (w)o(o)f(c)o(haracters)g(of)h(the)g(line.)20 b(Negativ)o(e)11 ! b(argumen)o(ts)315 1771 y(ha)o(v)o(e)k(no)g(e\013ect.)75 ! 1873 y Ft(transpose-words)e(\(M-t\))315 1927 y Fu(Drag)i(the)h(w)o(ord) ! g(b)q(efore)g(p)q(oin)o(t)h(past)f(the)g(w)o(ord)f(after)h(p)q(oin)o ! (t,)g(mo)o(ving)g(p)q(oin)o(t)h(past)f(that)315 1982 ! y(w)o(ord)d(as)h(w)o(ell.)21 b(If)14 b(the)g(insertion)i(p)q(oin)o(t)e ! (is)h(at)f(the)g(end)h(of)e(the)i(line,)g(this)g(transp)q(oses)f(the) ! 315 2037 y(last)h(t)o(w)o(o)f(w)o(ords)g(on)i(the)f(line.)75 ! 2138 y Ft(upcase-word)f(\(M-u\))315 2193 y Fu(Upp)q(ercase)j(the)f ! (curren)o(t)g(\(or)f(follo)o(wing\))h(w)o(ord.)22 b(With)16 ! b(a)g(negativ)o(e)g(argumen)o(t,)f(upp)q(er-)315 2248 ! y(case)g(the)g(previous)h(w)o(ord,)f(but)g(do)g(not)g(mo)o(v)o(e)f(the) ! i(cursor.)75 2349 y Ft(downcase-word)d(\(M-l\))315 2404 ! y Fu(Lo)o(w)o(ercase)d(the)h(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o ! (ord.)17 b(With)11 b(a)g(negativ)o(e)g(argumen)o(t,)f(lo)o(w)o(ercase) ! 315 2459 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f ! (the)h(cursor.)75 2560 y Ft(capitalize-word)e(\(M-c\))315 ! 2615 y Fu(Capitalize)f(the)f(curren)o(t)f(\(or)g(follo)o(wing\))h(w)o ! (ord.)18 b(With)11 b(a)f(negativ)o(e)h(argumen)o(t,)f(capitalize)315 ! 2670 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f ! (the)h(cursor.)p eop ! %%Page: 15 17 ! 15 16 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055 ! b(15)75 149 y Ft(overwrite-mode)13 b(\(\))315 204 y Fu(T)l(oggle)j(o)o ! (v)o(erwrite)g(mo)q(de.)24 b(With)17 b(an)f(explicit)j(p)q(ositiv)o(e)f ! (n)o(umeric)f(argumen)o(t,)f(switc)o(hes)315 259 y(to)10 ! b(o)o(v)o(erwrite)g(mo)q(de.)19 b(With)11 b(an)g(explicit)i(non-p)q ! (ositiv)o(e)f(n)o(umeric)g(argumen)o(t,)e(switc)o(hes)i(to)315 ! 314 y(insert)k(mo)q(de.)k(This)c(command)f(a\013ects)g(only)h ! Ft(emacs)e Fu(mo)q(de;)h Ft(vi)g Fu(mo)q(de)h(do)q(es)g(o)o(v)o ! (erwrite)315 369 y(di\013eren)o(tly)l(.)21 b(Eac)o(h)15 ! b(call)h(to)f Ft(readline\(\))f Fu(starts)f(in)k(insert)e(mo)q(de.)315 ! 436 y(In)g(o)o(v)o(erwrite)f(mo)q(de,)h(c)o(haracters)f(b)q(ound)h(to)f ! Ft(self-insert)f Fu(replace)j(the)e(text)h(at)e(p)q(oin)o(t)315 ! 491 y(rather)20 b(than)h(pushing)h(the)f(text)f(to)g(the)h(righ)o(t.)36 ! b(Characters)20 b(b)q(ound)i(to)e Ft(backward-)315 546 ! y(delete-char)14 b Fu(replace)i(the)f(c)o(haracter)g(b)q(efore)g(p)q ! (oin)o(t)h(with)f(a)g(space.)315 614 y(By)g(default,)h(this)f(command)g ! (is)h(un)o(b)q(ound.)75 729 y Fj(1.4.4)30 b(Killing)20 ! b(And)h(Y)-5 b(anking)75 853 y Ft(kill-line)14 b(\(C-k\))315 ! 908 y Fu(Kill)j(the)f(text)e(from)h(p)q(oin)o(t)h(to)e(the)h(end)h(of)f ! (the)g(line.)75 1002 y Ft(backward-kill-line)e(\(C-x)h(Rubout\))315 ! 1057 y Fu(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g ! (line.)75 1151 y Ft(unix-line-discard)e(\(C-u\))315 1205 ! y Fu(Kill)k(bac)o(kw)o(ard)e(from)f(the)i(cursor)e(to)h(the)g(b)q ! (eginning)j(of)c(the)i(curren)o(t)f(line.)75 1299 y Ft(kill-whole-line) ! e(\(\))315 1354 y Fu(Kill)20 b(all)g(c)o(haracters)d(on)h(the)h(curren) ! o(t)f(line,)i(no)e(matter)g(where)g(p)q(oin)o(t)h(is.)29 ! b(By)19 b(default,)315 1409 y(this)d(is)f(un)o(b)q(ound.)75 ! 1503 y Ft(kill-word)f(\(M-d\))315 1558 y Fu(Kill)j(from)d(p)q(oin)o(t)h ! (to)f(the)h(end)g(of)f(the)h(curren)o(t)g(w)o(ord,)e(or)i(if)g(b)q(et)o ! (w)o(een)g(w)o(ords,)e(to)i(the)f(end)315 1613 y(of)h(the)g(next)g(w)o ! (ord.)20 b(W)l(ord)14 b(b)q(oundaries)j(are)e(the)g(same)g(as)g ! Ft(forward-word)p Fu(.)75 1707 y Ft(backward-kill-word)e(\(M-)592 ! 1705 y Fn(h)p 603 1679 73 2 v 603 1707 a Fm(DEL)p 603 ! 1714 V 674 1705 a Fn(i)689 1707 y Ft(\))315 1761 y Fu(Kill)k(the)d(w)o ! (ord)g(b)q(ehind)i(p)q(oin)o(t.)21 b(W)l(ord)14 b(b)q(oundaries)h(are)f ! (the)h(same)f(as)g Ft(backward-word)p Fu(.)75 1855 y ! Ft(unix-word-rubout)f(\(C-w\))315 1910 y Fu(Kill)18 b(the)e(w)o(ord)f ! (b)q(ehind)j(p)q(oin)o(t,)e(using)h(white)f(space)g(as)g(a)f(w)o(ord)g ! (b)q(oundary)l(.)23 b(The)16 b(killed)315 1965 y(text)f(is)g(sa)o(v)o ! (ed)g(on)g(the)h(kill-ring.)75 2059 y Ft(delete-horizontal-space)c ! (\(\))315 2114 y Fu(Delete)k(all)g(spaces)f(and)h(tabs)e(around)i(p)q ! (oin)o(t.)k(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75 ! 2208 y Ft(kill-region)e(\(\))315 2263 y Fu(Kill)j(the)f(text)e(in)i ! (the)g(curren)o(t)f(region.)20 b(By)15 b(default,)h(this)f(command)g ! (is)h(un)o(b)q(ound.)75 2357 y Ft(copy-region-as-kill)d(\(\))315 ! 2412 y Fu(Cop)o(y)j(the)i(text)e(in)i(the)f(region)g(to)g(the)g(kill)h ! (bu\013er,)f(so)g(it)g(can)g(b)q(e)h(y)o(ank)o(ed)f(righ)o(t)g(a)o(w)o ! (a)o(y)l(.)315 2466 y(By)e(default,)h(this)f(command)g(is)h(un)o(b)q ! (ound.)75 2560 y Ft(copy-backward-word)d(\(\))315 2615 ! y Fu(Cop)o(y)19 b(the)g(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)h(to)e(the)i ! (kill)h(bu\013er.)32 b(The)19 b(w)o(ord)g(b)q(oundaries)h(are)f(the)315 ! 2670 y(same)c(as)g Ft(backward-word)p Fu(.)j(By)d(default,)g(this)h ! (command)f(is)h(un)o(b)q(ound.)p eop ! %%Page: 16 18 ! 16 17 bop 75 -58 a Fu(16)1299 b(GNU)15 b(Readline)h(Library)75 ! 149 y Ft(copy-forward-word)d(\(\))315 204 y Fu(Cop)o(y)i(the)h(w)o(ord) ! e(follo)o(wing)j(p)q(oin)o(t)f(to)f(the)g(kill)j(bu\013er.)i(The)c(w)o ! (ord)f(b)q(oundaries)i(are)e(the)315 259 y(same)g(as)g ! Ft(forward-word)p Fu(.)j(By)d(default,)h(this)f(command)g(is)h(un)o(b)q ! (ound.)75 342 y Ft(yank)f(\(C-y\))315 397 y Fu(Y)l(ank)g(the)h(top)f ! (of)f(the)i(kill)h(ring)e(in)o(to)g(the)h(bu\013er)f(at)f(p)q(oin)o(t.) ! 75 481 y Ft(yank-pop)g(\(M-y\))315 535 y Fu(Rotate)i(the)h(kill-ring,)j ! (and)d(y)o(ank)g(the)h(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f ! (this)h(if)f(the)h(prior)315 590 y(command)d(is)h Ft(yank)e ! Fu(or)h Ft(yank-pop)p Fu(.)75 693 y Fj(1.4.5)30 b(Sp)r(ecifying)20 ! b(Numeric)h(Argumen)n(ts)75 806 y Ft(digit-argument)13 ! b(\()p Fo(M-0)p Ft(,)i Fo(M-1)p Ft(,)f(...)h Fo(M--)p ! Ft(\))315 861 y Fu(Add)f(this)g(digit)g(to)f(the)h(argumen)o(t)e ! (already)i(accum)o(ulating,)g(or)f(start)f(a)h(new)h(argumen)o(t.)315 ! 915 y Fo(M--)h Fu(starts)f(a)h(negativ)o(e)g(argumen)o(t.)75 ! 999 y Ft(universal-argument)e(\(\))315 1054 y Fu(This)g(is)h(another)e ! (w)o(a)o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o(t.)18 b(If)13 ! b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)315 ! 1108 y(or)h(more)h(digits,)g(optionally)h(with)f(a)g(leading)h(min)o ! (us)f(sign,)g(those)g(digits)g(de\014ne)h(the)f(ar-)315 ! 1163 y(gumen)o(t.)k(If)c(the)g(command)f(is)h(follo)o(w)o(ed)g(b)o(y)g ! (digits,)g(executing)g Ft(universal-argument)315 1218 ! y Fu(again)h(ends)g(the)g(n)o(umeric)h(argumen)o(t,)e(but)h(is)h ! (otherwise)f(ignored.)22 b(As)16 b(a)g(sp)q(ecial)h(case,)315 ! 1273 y(if)g(this)g(command)f(is)h(immediately)h(follo)o(w)o(ed)f(b)o(y) ! f(a)g(c)o(haracter)g(that)g(is)h(neither)g(a)f(digit)315 ! 1328 y(or)d(min)o(us)i(sign,)f(the)g(argumen)o(t)g(coun)o(t)f(for)h ! (the)g(next)g(command)g(is)g(m)o(ultiplied)j(b)o(y)d(four.)315 ! 1382 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)h(initially)j(one,)d(so)f ! (executing)i(this)f(function)h(the)e(\014rst)h(time)315 ! 1437 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g ! (time)g(mak)o(es)g(the)g(argumen)o(t)f(coun)o(t)g(six-)315 ! 1492 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)h(this)f(is)h(not)f ! (b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1595 y Fj(1.4.6)30 ! b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5 ! b(ou)75 1708 y Ft(complete)14 b(\()305 1706 y Fn(h)p ! 317 1680 74 2 v 317 1708 a Fm(T)m(AB)p 317 1715 V 389 ! 1706 a Fn(i)404 1708 y Ft(\))315 1762 y Fu(A)o(ttempt)c(to)h(p)q ! (erform)g(completion)i(on)e(the)g(text)g(b)q(efore)h(p)q(oin)o(t.)19 ! b(The)11 b(actual)h(completion)315 1817 y(p)q(erformed)j(is)h ! (application-sp)q(eci\014)q(c.)23 b(The)15 b(default)h(is)g(\014lename) ! g(completion.)75 1901 y Ft(possible-completions)c(\(M-?\))315 ! 1955 y Fu(List)k(the)f(p)q(ossible)i(completions)f(of)f(the)g(text)g(b) ! q(efore)h(p)q(oin)o(t.)75 2039 y Ft(insert-completions)d(\(M-*\))315 ! 2093 y Fu(Insert)j(all)g(completions)g(of)f(the)g(text)g(b)q(efore)h(p) ! q(oin)o(t)f(that)g(w)o(ould)h(ha)o(v)o(e)f(b)q(een)h(generated)315 ! 2148 y(b)o(y)f Ft(possible-completions)p Fu(.)75 2232 ! y Ft(menu-complete)e(\(\))315 2286 y Fu(Similar)g(to)f ! Ft(complete)p Fu(,)f(but)h(replaces)h(the)f(w)o(ord)f(to)g(b)q(e)i ! (completed)f(with)h(a)e(single)j(matc)o(h)315 2341 y(from)k(the)h(list) ! h(of)e(p)q(ossible)j(completions.)32 b(Rep)q(eated)19 ! b(execution)h(of)f Ft(menu-complete)315 2396 y Fu(steps)h(through)g ! (the)g(list)h(of)f(p)q(ossible)i(completions,)g(inserting)f(eac)o(h)f ! (matc)o(h)f(in)i(turn.)315 2451 y(A)o(t)d(the)g(end)h(of)f(the)h(list)g ! (of)f(completions,)i(the)e(b)q(ell)j(is)d(rung)h(\(sub)s(ject)f(to)f ! (the)i(setting)315 2506 y(of)f Ft(bell-style)p Fu(\))e(and)i(the)g ! (original)h(text)f(is)g(restored.)28 b(An)19 b(argumen)o(t)e(of)g ! Fk(n)i Fu(mo)o(v)o(es)e Fk(n)315 2560 y Fu(p)q(ositions)h(forw)o(ard)e ! (in)j(the)e(list)h(of)f(matc)o(hes;)h(a)f(negativ)o(e)g(argumen)o(t)g ! (ma)o(y)g(b)q(e)h(used)g(to)315 2615 y(mo)o(v)o(e)g(bac)o(kw)o(ard)h ! (through)g(the)g(list.)32 b(This)20 b(command)f(is)h(in)o(tended)g(to)f ! (b)q(e)h(b)q(ound)g(to)315 2668 y Fn(h)p 327 2642 V 327 ! 2670 a Fm(T)m(AB)p 327 2678 V 399 2668 a Fn(i)414 2670 ! y Fu(,)15 b(but)g(is)h(un)o(b)q(ound)g(b)o(y)f(default.)p eop ! %%Page: 17 19 ! 17 18 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055 ! b(17)75 149 y Ft(delete-char-or-list)13 b(\(\))315 204 ! y Fu(Deletes)h(the)f(c)o(haracter)g(under)h(the)g(cursor)f(if)h(not)f ! (at)g(the)g(b)q(eginning)j(or)d(end)h(of)f(the)g(line)315 ! 259 y(\(lik)o(e)i Ft(delete-char)p Fu(\).)j(If)d(at)f(the)h(end)g(of)f ! (the)g(line,)i(b)q(eha)o(v)o(es)f(iden)o(tically)i(to)d ! Ft(possible-)315 314 y(completions)p Fu(.)k(This)e(command)f(is)h(un)o ! (b)q(ound)g(b)o(y)f(default.)75 428 y Fj(1.4.7)30 b(Keyb)r(oard)20 ! b(Macros)75 551 y Ft(start-kbd-macro)13 b(\(C-x)i(\(\))315 ! 606 y Fu(Begin)h(sa)o(ving)f(the)h(c)o(haracters)e(t)o(yp)q(ed)i(in)o ! (to)f(the)g(curren)o(t)g(k)o(eyb)q(oard)g(macro.)75 699 ! y Ft(end-kbd-macro)e(\(C-x)i(\)\))315 754 y Fu(Stop)f(sa)o(ving)f(the)h ! (c)o(haracters)f(t)o(yp)q(ed)h(in)o(to)f(the)h(curren)o(t)g(k)o(eyb)q ! (oard)f(macro)g(and)h(sa)o(v)o(e)f(the)315 809 y(de\014nition.)75 ! 902 y Ft(call-last-kbd-macro)g(\(C-x)h(e\))315 957 y ! Fu(Re-execute)k(the)g(last)f(k)o(eyb)q(oard)h(macro)f(de\014ned,)i(b)o ! (y)e(making)h(the)g(c)o(haracters)e(in)j(the)315 1012 ! y(macro)14 b(app)q(ear)i(as)f(if)g(t)o(yp)q(ed)h(at)e(the)i(k)o(eyb)q ! (oard.)75 1126 y Fj(1.4.8)30 b(Some)20 b(Miscellaneous)h(Commands)75 ! 1249 y Ft(re-read-init-file)13 b(\(C-x)h(C-r\))315 1304 ! y Fu(Read)d(in)g(the)g(con)o(ten)o(ts)g(of)f(the)h Fk(inputrc)k ! Fu(\014le,)d(and)g(incorp)q(orate)f(an)o(y)f(bindings)j(or)e(v)m ! (ariable)315 1358 y(assignmen)o(ts)k(found)h(there.)75 ! 1452 y Ft(abort)e(\(C-g\))315 1507 y Fu(Ab)q(ort)f(the)g(curren)o(t)h ! (editing)g(command)f(and)h(ring)f(the)h(terminal's)f(b)q(ell)i(\(sub)s ! (ject)e(to)g(the)315 1561 y(setting)i(of)g Ft(bell-style)p ! Fu(\).)75 1655 y Ft(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p ! Fk(x)p Ft(,)h(...\))315 1710 y Fu(If)f(the)g(meta\014ed)g(c)o(haracter) ! f Fk(x)k Fu(is)d(lo)o(w)o(ercase,)g(run)g(the)g(command)f(that)h(is)g ! (b)q(ound)h(to)e(the)315 1764 y(corresp)q(onding)j(upp)q(ercase)g(c)o ! (haracter.)75 1858 y Ft(prefix-meta)e(\()377 1856 y Fn(h)p ! 389 1830 70 2 v 389 1858 a Fm(ESC)p 389 1866 V 456 1856 ! a Fn(i)471 1858 y Ft(\))315 1913 y Fu(Metafy)k(the)h(next)g(c)o ! (haracter)f(t)o(yp)q(ed.)30 b(This)20 b(is)f(for)f(k)o(eyb)q(oards)h ! (without)g(a)f(meta)g(k)o(ey)l(.)315 1968 y(T)o(yping)e(`)485 ! 1966 y Fn(h)p 496 1939 V 496 1968 a Fm(ESC)p 496 1975 ! V 563 1966 a Fn(i)593 1968 y Ft(f)p Fu(')f(is)h(equiv)m(alen)o(t)h(to)d ! (t)o(yping)i Fo(M-f)p Fu(.)75 2061 y Ft(undo)f(\(C-_)f(or)h(C-x)g ! (C-u\))315 2116 y Fu(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q ! (ered)g(for)e(eac)o(h)h(line.)75 2209 y Ft(revert-line)f(\(M-r\))315 ! 2264 y Fu(Undo)j(all)g(c)o(hanges)g(made)f(to)g(this)h(line.)26 ! b(This)17 b(is)g(lik)o(e)h(executing)f(the)g Ft(undo)f ! Fu(command)315 2319 y(enough)g(times)f(to)g(get)f(bac)o(k)h(to)g(the)g ! (b)q(eginning.)75 2412 y Ft(tilde-expand)f(\(M-~\))315 ! 2467 y Fu(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o ! (ord.)75 2560 y Ft(set-mark)f(\(C-@\))315 2615 y Fu(Set)i(the)h(mark)f ! (to)f(the)i(p)q(oin)o(t.)24 b(If)17 b(a)f(n)o(umeric)h(argumen)o(t)f ! (is)g(supplied,)j(the)e(mark)e(is)i(set)315 2670 y(to)e(that)f(p)q ! (osition.)p eop ! %%Page: 18 20 ! 18 19 bop 75 -58 a Fu(18)1299 b(GNU)15 b(Readline)h(Library)75 ! 149 y Ft(exchange-point-and-mark)c(\(C-x)j(C-x\))315 ! 204 y Fu(Sw)o(ap)g(the)h(p)q(oin)o(t)g(with)g(the)g(mark.)k(The)c ! (curren)o(t)f(cursor)h(p)q(osition)g(is)g(set)g(to)f(the)g(sa)o(v)o(ed) ! 315 259 y(p)q(osition,)h(and)f(the)h(old)f(cursor)g(p)q(osition)h(is)g ! (sa)o(v)o(ed)f(as)g(the)g(mark.)75 347 y Ft(character-search)e(\(C-]\)) ! 315 402 y Fu(A)f(c)o(haracter)g(is)h(read)g(and)f(p)q(oin)o(t)h(is)g ! (mo)o(v)o(ed)f(to)g(the)g(next)h(o)q(ccurrence)g(of)f(that)g(c)o ! (haracter.)315 456 y(A)j(negativ)o(e)h(coun)o(t)f(searc)o(hes)g(for)f ! (previous)i(o)q(ccurrences.)75 544 y Ft(character-search-backward)c ! (\(M-C-]\))315 599 y Fu(A)22 b(c)o(haracter)g(is)h(read)f(and)h(p)q ! (oin)o(t)g(is)g(mo)o(v)o(ed)f(to)g(the)g(previous)h(o)q(ccurrence)h(of) ! e(that)315 654 y(c)o(haracter.)d(A)c(negativ)o(e)h(coun)o(t)f(searc)o ! (hes)g(for)f(subsequen)o(t)i(o)q(ccurrences.)75 741 y ! Ft(insert-comment)d(\(M-#\))315 796 y Fu(Without)18 b(a)f(n)o(umeric)i ! (argumen)o(t,)e(the)h(v)m(alue)h(of)f(the)f Ft(comment-begin)f ! Fu(v)m(ariable)k(is)e(in-)315 851 y(serted)e(at)f(the)h(b)q(eginning)i ! (of)d(the)h(curren)o(t)g(line.)23 b(If)16 b(a)g(n)o(umeric)h(argumen)o ! (t)e(is)h(supplied,)315 906 y(this)j(command)f(acts)g(as)f(a)h(toggle:) ! 26 b(if)19 b(the)f(c)o(haracters)g(at)f(the)i(b)q(eginning)h(of)e(the)g ! (line)315 960 y(do)d(not)g(matc)o(h)g(the)g(v)m(alue)i(of)e ! Ft(comment-begin)p Fu(,)e(the)i(v)m(alue)i(is)f(inserted,)f(otherwise)h ! (the)315 1015 y(c)o(haracters)j(in)i Ft(comment-begin)d ! Fu(are)i(deleted)i(from)d(the)h(b)q(eginning)i(of)e(the)g(line.)36 ! b(In)315 1070 y(either)16 b(case,)f(the)g(line)i(is)f(accepted)f(as)g ! (if)h(a)f(newline)i(had)e(b)q(een)i(t)o(yp)q(ed.)75 1158 ! y Ft(dump-functions)c(\(\))315 1213 y Fu(Prin)o(t)g(all)h(of)f(the)g ! (functions)h(and)g(their)g(k)o(ey)f(bindings)i(to)d(the)i(Readline)g ! (output)f(stream.)315 1267 y(If)j(a)g(n)o(umeric)g(argumen)o(t)f(is)i ! (supplied,)h(the)e(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o ! (y)f(that)315 1322 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g ! Fk(inputrc)k Fu(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o ! (y)f(default.)75 1410 y Ft(dump-variables)e(\(\))315 ! 1465 y Fu(Prin)o(t)e(all)g(of)f(the)h(settable)g(v)m(ariables)h(and)f ! (their)g(v)m(alues)h(to)e(the)h(Readline)h(output)e(stream.)315 ! 1519 y(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)i(supplied,)h(the)e ! (output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o(y)f(that)315 ! 1574 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g Fk(inputrc)k ! Fu(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o(y)f(default.) ! 75 1662 y Ft(dump-macros)f(\(\))315 1717 y Fu(Prin)o(t)j(all)h(of)e ! (the)h(Readline)h(k)o(ey)f(sequences)h(b)q(ound)g(to)e(macros)g(and)h ! (the)g(strings)g(they)315 1771 y(output.)26 b(If)18 b(a)f(n)o(umeric)h ! (argumen)o(t)f(is)h(supplied,)i(the)d(output)g(is)h(formatted)e(in)j ! (suc)o(h)e(a)315 1826 y(w)o(a)o(y)d(that)g(it)i(can)f(b)q(e)g(made)g ! (part)g(of)f(an)h Fk(inputrc)k Fu(\014le.)i(This)15 b(command)g(is)h ! (un)o(b)q(ound)g(b)o(y)315 1881 y(default.)75 1969 y ! Ft(emacs-editing-mode)d(\(C-e\))315 2024 y Fu(When)j(in)g ! Ft(vi)e Fu(command)i(mo)q(de,)f(this)g(causes)h(a)f(switc)o(h)g(to)g ! Ft(emacs)f Fu(editing)j(mo)q(de.)75 2111 y Ft(vi-editing-mode)c ! (\(M-C-j\))315 2166 y Fu(When)j(in)g Ft(emacs)e Fu(editing)j(mo)q(de,)e ! (this)g(causes)h(a)f(switc)o(h)g(to)g Ft(vi)f Fu(editing)j(mo)q(de.)75 ! 2290 y Fs(1.5)33 b(Readline)23 b(vi)h(Mo)r(de)137 2385 ! y Fu(While)13 b(the)f(Readline)i(library)e(do)q(es)g(not)g(ha)o(v)o(e)f ! (a)h(full)h(set)f(of)f Ft(vi)g Fu(editing)j(functions,)f(it)f(do)q(es)g ! (con)o(tain)75 2440 y(enough)17 b(to)g(allo)o(w)g(simple)h(editing)h ! (of)d(the)i(line.)27 b(The)17 b(Readline)h Ft(vi)f Fu(mo)q(de)g(b)q ! (eha)o(v)o(es)g(as)g(sp)q(eci\014ed)i(in)75 2495 y(the)c ! Fp(posix)g Fu(1003.2)f(standard.)137 2560 y(In)h(order)g(to)f(switc)o ! (h)g(in)o(teractiv)o(ely)i(b)q(et)o(w)o(een)f Ft(emacs)e ! Fu(and)i Ft(vi)f Fu(editing)i(mo)q(des,)f(use)f(the)h(command)75 ! 2615 y Fo(M-C-j)j Fu(\(b)q(ound)i(to)e(emacs-editing-mo)q(de)j(when)e ! (in)h Ft(vi)f Fu(mo)q(de)g(and)g(to)f(vi-editing-mo)q(de)k(in)e ! Ft(emacs)75 2670 y Fu(mo)q(de\).)g(The)15 b(Readline)i(default)f(is)f ! Ft(emacs)g Fu(mo)q(de.)p eop ! %%Page: 19 21 ! 19 20 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055 ! b(19)137 149 y(When)16 b(y)o(ou)e(en)o(ter)h(a)g(line)i(in)e ! Ft(vi)g Fu(mo)q(de,)g(y)o(ou)g(are)f(already)i(placed)g(in)g ! (`insertion')f(mo)q(de,)g(as)g(if)g(y)o(ou)75 204 y(had)e(t)o(yp)q(ed)h ! (an)f(`)p Ft(i)p Fu('.)18 b(Pressing)608 202 y Fn(h)p ! 620 176 70 2 v 620 204 a Fm(ESC)p 620 212 V 687 202 a ! Fn(i)715 204 y Fu(switc)o(hes)13 b(y)o(ou)g(in)o(to)g(`command')f(mo)q ! (de,)i(where)f(y)o(ou)g(can)g(edit)h(the)75 259 y(text)i(of)h(the)g ! (line)h(with)g(the)f(standard)f Ft(vi)h Fu(mo)o(v)o(emen)o(t)f(k)o ! (eys,)g(mo)o(v)o(e)g(to)h(previous)g(history)g(lines)i(with)75 ! 314 y(`)p Ft(k)p Fu(')14 b(and)i(subsequen)o(t)f(lines)i(with)f(`)p ! Ft(j)p Fu(',)e(and)h(so)g(forth.)p eop ! %%Page: 20 22 ! 20 21 bop 75 -58 a Fu(20)1299 b(GNU)15 b(Readline)h(Library)p eop ! %%Page: 21 23 ! 21 22 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(21)75 149 y Fq(2)41 b(Programming)28 ! b(with)e(GNU)i(Readline)137 267 y Fu(This)18 b(c)o(hapter)f(describ)q ! (es)h(the)f(in)o(terface)g(b)q(et)o(w)o(een)h(the)f Fp(gnu)g ! Fu(Readline)h(Library)f(and)g(other)g(pro-)75 322 y(grams.)h(If)11 ! b(y)o(ou)g(are)g(a)g(programmer,)f(and)i(y)o(ou)f(wish)g(to)g(include)j ! (the)d(features)g(found)g(in)i Fp(gnu)e Fu(Readline)75 ! 377 y(suc)o(h)h(as)f(completion,)h(line)h(editing,)g(and)f(in)o ! (teractiv)o(e)g(history)f(manipulation)i(in)f(y)o(our)f(o)o(wn)g ! (programs,)75 432 y(this)16 b(section)f(is)h(for)f(y)o(ou.)75 ! 561 y Fs(2.1)33 b(Basic)22 b(Beha)n(vior)137 658 y Fu(Man)o(y)15 ! b(programs)f(pro)o(vide)i(a)f(command)g(line)i(in)o(terface,)e(suc)o(h) ! h(as)f Ft(mail)p Fu(,)f Ft(ftp)p Fu(,)h(and)g Ft(sh)p ! Fu(.)20 b(F)l(or)15 b(suc)o(h)75 713 y(programs,)e(the)h(default)h(b)q ! (eha)o(viour)g(of)f(Readline)i(is)e(su\016cien)o(t.)21 ! b(This)14 b(section)h(describ)q(es)h(ho)o(w)e(to)g(use)75 ! 768 y(Readline)k(in)h(the)e(simplest)h(w)o(a)o(y)e(p)q(ossible,)j(p)q ! (erhaps)f(to)f(replace)h(calls)g(in)g(y)o(our)f(co)q(de)h(to)e ! Ft(gets\(\))g Fu(or)75 822 y Ft(fgets\(\))p Fu(.)137 ! 890 y(The)h(function)g Ft(readline\(\))e Fu(prin)o(ts)h(a)g(prompt)g ! Fk(prompt)h Fu(and)f(then)h(reads)f(and)h(returns)f(a)g(single)75 ! 945 y(line)i(of)e(text)g(from)f(the)i(user.)23 b(If)17 ! b Fk(prompt)g Fu(is)g Ft(NULL)e Fu(or)h(the)h(empt)o(y)f(string,)g(no)g ! (prompt)g(is)h(displa)o(y)o(ed.)75 1000 y(The)i(line)h ! Ft(readline)d Fu(returns)i(is)g(allo)q(cated)g(with)g ! Ft(malloc\(\))p Fu(;)g(the)g(caller)g(should)h Ft(free\(\))e ! Fu(the)g(line)75 1054 y(when)e(it)f(has)g(\014nished)i(with)f(it.)k ! (The)15 b(declaration)h(for)f Ft(readline)f Fu(in)i(ANSI)g(C)f(is)195 ! 1119 y Ft(char)23 b(*readline)g(\(const)g(char)g(*)p ! Fk(prompt)q Ft(\);)75 1187 y Fu(So,)15 b(one)g(migh)o(t)g(sa)o(y)195 ! 1251 y Ft(char)23 b(*line)g(=)h(readline)f(\("Enter)g(a)h(line:)f("\);) ! 75 1319 y Fu(in)12 b(order)f(to)g(read)h(a)f(line)i(of)e(text)g(from)f ! (the)i(user.)19 b(The)11 b(line)j(returned)d(has)h(the)f(\014nal)h ! (newline)i(remo)o(v)o(ed,)75 1374 y(so)h(only)h(the)f(text)g(remains.) ! 137 1441 y(If)21 b Ft(readline)e Fu(encoun)o(ters)h(an)g ! Ft(EOF)g Fu(while)i(reading)f(the)f(line,)j(and)d(the)h(line)g(is)g ! (empt)o(y)f(at)g(that)75 1496 y(p)q(oin)o(t,)15 b(then)g ! Ft(\(char)f(*\)NULL)g Fu(is)h(returned.)21 b(Otherwise,)15 ! b(the)g(line)h(is)f(ended)h(just)e(as)h(if)g(a)f(newline)j(had)75 ! 1551 y(b)q(een)f(t)o(yp)q(ed.)137 1618 y(If)d(y)o(ou)g(w)o(an)o(t)f ! (the)h(user)g(to)f(b)q(e)i(able)g(to)e(get)g(at)h(the)g(line)h(later,)f ! (\(with)1325 1616 y Fn(h)p 1338 1590 57 2 v 1338 1618 ! a Fm(C-p)p 1338 1626 V 1392 1616 a Fn(i)1420 1618 y Fu(for)f ! (example\),)i(y)o(ou)f(m)o(ust)75 1673 y(call)j Ft(add_history\(\))e ! Fu(to)g(sa)o(v)o(e)h(the)g(line)i(a)o(w)o(a)o(y)d(in)i(a)e ! Fk(history)19 b Fu(list)d(of)f(suc)o(h)h(lines.)195 1738 ! y Ft(add_history)22 b(\(line\);)75 1805 y Fu(F)l(or)15 ! b(full)h(details)g(on)f(the)h(GNU)f(History)g(Library)l(,)g(see)h(the)f ! (asso)q(ciated)g(man)o(ual.)137 1873 y(It)h(is)g(preferable)h(to)e(a)o ! (v)o(oid)g(sa)o(ving)h(empt)o(y)f(lines)i(on)f(the)g(history)f(list,)i ! (since)f(users)g(rarely)g(ha)o(v)o(e)f(a)75 1928 y(burning)h(need)g(to) ! e(reuse)h(a)g(blank)g(line.)22 b(Here)15 b(is)g(a)g(function)g(whic)o ! (h)h(usefully)h(replaces)e(the)g(standard)75 1983 y Ft(gets\(\))f ! Fu(library)i(function,)g(and)f(has)g(the)h(adv)m(an)o(tage)e(of)h(no)g ! (static)g(bu\013er)g(to)g(o)o(v)o(er\015o)o(w:)195 2047 ! y Ft(/*)24 b(A)f(static)g(variable)g(for)h(holding)e(the)i(line.)f(*/) ! 195 2099 y(static)g(char)g(*line_read)g(=)h(\(char)f(*\)NULL;)195 ! 2203 y(/*)h(Read)f(a)h(string,)f(and)g(return)g(a)h(pointer)f(to)g(it.) ! 267 2255 y(Returns)f(NULL)i(on)f(EOF.)h(*/)195 2307 y(char)f(*)195 ! 2359 y(rl_gets)g(\(\))195 2411 y({)243 2462 y(/*)g(If)h(the)f(buffer)g ! (has)h(already)f(been)g(allocated,)314 2514 y(return)g(the)h(memory)f ! (to)g(the)h(free)f(pool.)g(*/)243 2566 y(if)g(\(line_read\))290 ! 2618 y({)338 2670 y(free)g(\(line_read\);)p eop ! %%Page: 22 24 ! 22 23 bop 75 -58 a Fu(22)1299 b(GNU)15 b(Readline)h(Library)338 ! 149 y Ft(line_read)23 b(=)h(\(char)f(*\)NULL;)290 201 ! y(})243 305 y(/*)g(Get)h(a)f(line)h(from)f(the)h(user.)f(*/)243 ! 357 y(line_read)f(=)i(readline)f(\(""\);)243 461 y(/*)g(If)h(the)f ! (line)h(has)f(any)h(text)f(in)g(it,)314 513 y(save)h(it)f(on)h(the)f ! (history.)g(*/)243 565 y(if)g(\(line_read)g(&&)g(*line_read\))290 ! 616 y(add_history)g(\(line_read\);)243 720 y(return)g(\(line_read\);) ! 195 772 y(})137 848 y Fu(This)13 b(function)f(giv)o(es)h(the)e(user)h ! (the)g(default)h(b)q(eha)o(viour)g(of)1169 846 y Fn(h)p ! 1181 820 74 2 v 1181 848 a Fm(T)m(AB)p 1181 856 V 1253 ! 846 a Fn(i)1280 848 y Fu(completion:)19 b(completion)13 ! b(on)f(\014le)75 903 y(names.)20 b(If)c(y)o(ou)f(do)g(not)g(w)o(an)o(t) ! f(Readline)j(to)d(complete)j(on)e(\014lenames,)h(y)o(ou)f(can)g(c)o ! (hange)h(the)f(binding)75 958 y(of)g(the)205 956 y Fn(h)p ! 217 930 V 217 958 a Fm(T)m(AB)p 217 965 V 289 956 a Fn(i)319 ! 958 y Fu(k)o(ey)g(with)h Ft(rl_bind_key\(\))p Fu(.)195 ! 1031 y Ft(int)23 b(rl_bind_key)g(\(int)g Fk(k)o(ey)p ! Ft(,)h(rl_command_func_t)d(*)p Fk(function)p Ft(\);)137 ! 1107 y(rl_bind_key\(\))15 b Fu(tak)o(es)h(t)o(w)o(o)g(argumen)o(ts:)22 ! b Fk(k)o(ey)e Fu(is)e(the)e(c)o(haracter)g(that)g(y)o(ou)h(w)o(an)o(t)f ! (to)g(bind,)i(and)75 1161 y Fk(function)h Fu(is)f(the)g(address)g(of)g ! (the)g(function)g(to)g(call)h(when)f Fk(k)o(ey)k Fu(is)c(pressed.)29 ! b(Binding)1628 1159 y Fn(h)p 1641 1133 V 1641 1161 a ! Fm(T)m(AB)p 1641 1169 V 1712 1159 a Fn(i)1745 1161 y ! Fu(to)17 b Ft(rl_)75 1216 y(insert\(\))f Fu(mak)o(es)422 ! 1214 y Fn(h)p 434 1188 V 434 1216 a Fm(T)m(AB)p 434 1224 ! V 506 1214 a Fn(i)539 1216 y Fu(insert)i(itself.)28 b ! Ft(rl_bind_key\(\))15 b Fu(returns)j(non-zero)g(if)g ! Fk(k)o(ey)j Fu(is)d(not)f(a)g(v)m(alid)75 1271 y(ASCI)q(I)f(c)o ! (haracter)f(co)q(de)h(\(b)q(et)o(w)o(een)f(0)g(and)g(255\).)137 ! 1347 y(Th)o(us,)g(to)g(disable)h(the)g(default)703 1345 ! y Fn(h)p 716 1319 V 716 1347 a Fm(T)m(AB)p 716 1354 V ! 787 1345 a Fn(i)817 1347 y Fu(b)q(eha)o(vior,)g(the)f(follo)o(wing)h ! (su\016ces:)195 1420 y Ft(rl_bind_key)22 b(\('\\t',)h(rl_insert\);)137 ! 1496 y Fu(This)14 b(co)q(de)g(should)g(b)q(e)g(executed)g(once)g(at)e ! (the)h(start)f(of)h(y)o(our)g(program;)f(y)o(ou)h(migh)o(t)g(write)g(a) ! g(func-)75 1551 y(tion)k(called)h Ft(initialize_readline\(\))13 ! b Fu(whic)o(h)k(p)q(erforms)f(this)h(and)g(other)f(desired)h ! (initializations,)75 1605 y(suc)o(h)f(as)e(installing)k(custom)c ! (completers)i(\(see)f(Section)h(2.6)f([Custom)f(Completers],)g(page)h ! (41\).)75 1756 y Fs(2.2)33 b(Custom)21 b(F)-6 b(unctions)137 ! 1861 y Fu(Readline)14 b(pro)o(vides)f(man)o(y)e(functions)i(for)f ! (manipulating)i(the)e(text)g(of)g(the)g(line,)i(but)e(it)h(isn't)f(p)q ! (ossi-)75 1915 y(ble)i(to)f(an)o(ticipate)h(the)f(needs)h(of)f(all)h ! (programs.)k(This)13 b(section)h(describ)q(es)h(the)e(v)m(arious)h ! (functions)g(and)75 1970 y(v)m(ariables)g(de\014ned)h(within)f(the)f ! (Readline)i(library)e(whic)o(h)h(allo)o(w)g(a)e(user)h(program)f(to)h ! (add)g(customized)75 2025 y(functionalit)o(y)j(to)f(Readline.)137 ! 2101 y(Before)j(declaring)i(an)o(y)e(functions)h(that)f(customize)g ! (Readline's)h(b)q(eha)o(vior,)h(or)d(using)i(an)o(y)f(func-)75 ! 2156 y(tionalit)o(y)23 b(Readline)h(pro)o(vides)g(in)f(other)g(co)q ! (de,)h(an)f(application)i(writer)d(should)i(include)h(the)e(\014le)75 ! 2211 y Ft()14 b Fu(in)j(an)o(y)g(\014le)h(that)e ! (uses)h(Readline's)g(features.)24 b(Since)19 b(some)d(of)g(the)h ! (de\014-)75 2265 y(nitions)g(in)f Ft(readline.h)e Fu(use)i(the)g ! Ft(stdio)f Fu(library)l(,)h(the)g(\014le)g Ft()f ! Fu(should)h(b)q(e)g(included)j(b)q(efore)75 2320 y Ft(readline.h)p ! Fu(.)137 2396 y Ft(readline.h)14 b Fu(de\014nes)i(a)f(C)h(prepro)q ! (cessor)f(v)m(ariable)i(that)d(should)i(b)q(e)g(treated)f(as)g(an)g(in) ! o(teger,)g Ft(RL_)75 2451 y(READLINE_VERSION)p Fu(,)9 ! b(whic)o(h)j(ma)o(y)f(b)q(e)g(used)h(to)e(conditionally)k(compile)e ! (application)h(co)q(de)f(dep)q(ending)75 2506 y(on)17 ! b(the)h(installed)h(Readline)g(v)o(ersion.)27 b(The)18 ! b(v)m(alue)h(is)f(a)f(hexadecimal)i(enco)q(ding)g(of)e(the)h(ma)s(jor)e ! (and)75 2560 y(minor)h(v)o(ersion)h(n)o(um)o(b)q(ers)f(of)g(the)g ! (library)l(,)h(of)f(the)g(form)f(0x)p Fk(MMmm)p Fu(.)25 ! b Fk(MM)c Fu(is)c(the)h(t)o(w)o(o-digit)e(ma)s(jor)75 ! 2615 y(v)o(ersion)f(n)o(um)o(b)q(er;)f Fk(mm)h Fu(is)g(the)f(t)o(w)o ! (o-digit)g(minor)h(v)o(ersion)g(n)o(um)o(b)q(er.)20 b(F)l(or)14 ! b(Readline)h(4.2,)f(for)f(example,)75 2670 y(the)i(v)m(alue)i(of)d ! Ft(RL_READLINE_VERSION)f Fu(w)o(ould)j(b)q(e)f Ft(0x0402)p ! Fu(.)p eop ! %%Page: 23 25 ! 23 24 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(23)75 149 y Fj(2.2.1)30 b(Readline)20 ! b(T)n(yp)r(edefs)137 251 y Fu(F)l(or)15 b(readabilt)o(y)l(,)g(w)o(e)g ! (declare)i(a)d(n)o(um)o(b)q(er)i(of)f(new)g(ob)s(ject)g(t)o(yp)q(es,)g ! (all)h(p)q(oin)o(ters)f(to)g(functions.)137 324 y(The)j(reason)g(for)f ! (declaring)i(these)f(new)g(t)o(yp)q(es)g(is)h(to)e(mak)o(e)g(it)h ! (easier)h(to)e(write)h(co)q(de)g(describing)75 379 y(p)q(oin)o(ters)e ! (to)e(C)h(functions)h(with)g(appropriately)f(protot)o(yp)q(ed)g ! (argumen)o(ts)g(and)g(return)g(v)m(alues.)137 452 y(F)l(or)j(instance,) ! i(sa)o(y)e(w)o(e)g(w)o(an)o(t)f(to)h(declare)h(a)f(v)m(ariable)i ! Fk(func)i Fu(as)c(a)g(p)q(oin)o(ter)h(to)f(a)g(function)h(whic)o(h)75 ! 507 y(tak)o(es)12 b(t)o(w)o(o)g Ft(int)g Fu(argumen)o(ts)g(and)h ! (returns)g(an)g Ft(int)f Fu(\(this)h(is)g(the)g(t)o(yp)q(e)g(of)g(all)g ! (of)g(the)g(Readline)h(bindable)75 561 y(functions\).)20 ! b(Instead)c(of)f(the)g(classic)h(C)f(declaration)137 ! 634 y Ft(int)g(\(*func\)\(\);)75 707 y Fu(or)g(the)g(ANSI-C)h(st)o(yle) ! f(declaration)137 780 y Ft(int)g(\(*func\)\(int,)f(int\);)75 ! 853 y Fu(w)o(e)h(ma)o(y)f(write)137 926 y Ft(rl_command_func_t)f ! (*func;)137 999 y Fu(The)j(full)g(list)g(of)f(function)h(p)q(oin)o(ter) ! g(t)o(yp)q(es)f(a)o(v)m(ailable)i(is)75 1087 y Ft(typedef)d(int)h ! (rl_command_func_t)e(\(int,)h(int\);)75 1157 y(typedef)g(char)h ! (*rl_compentry_func_t)d(\(const)j(char)f(*,)h(int\);)75 ! 1227 y(typedef)f(char)h(**rl_completion_func_t)d(\(const)i(char)h(*,)g ! (int,)f(int\);)75 1297 y(typedef)g(char)h(*rl_quote_func_t)e(\(char)h ! (*,)h(int,)g(char)f(*\);)75 1367 y(typedef)g(char)h(*rl_dequote_func_t) ! d(\(char)j(*,)g(int\);)75 1437 y(typedef)f(int)h(rl_compignore_func_t)d ! (\(char)j(**\);)75 1507 y(typedef)f(void)h(rl_compdisp_func_t)d(\(char) ! j(**,)g(int,)f(int\);)75 1577 y(typedef)g(int)h(rl_hook_func_t)e ! (\(void\);)75 1647 y(typedef)h(int)h(rl_getc_func_t)e(\(FILE)i(*\);)75 ! 1717 y(typedef)f(int)h(rl_linebuf_func_t)e(\(char)h(*,)h(int\);)75 ! 1787 y(typedef)f(int)h(rl_intfunc_t)e(\(int\);)75 1857 ! y(#define)h(rl_ivoidfunc_t)f(rl_hook_func_t)75 1927 y(typedef)h(int)h ! (rl_icpfunc_t)e(\(char)i(*\);)75 1997 y(typedef)f(int)h(rl_icppfunc_t)e ! (\(char)i(**\);)75 2067 y(typedef)f(void)h(rl_voidfunc_t)e(\(void\);)75 ! 2137 y(typedef)h(void)h(rl_vintfunc_t)e(\(int\);)75 2208 ! y(typedef)h(void)h(rl_vcpfunc_t)e(\(char)i(*\);)75 2278 ! y(typedef)f(void)h(rl_vcppfunc_t)e(\(char)i(**\);)75 ! 2386 y Fj(2.2.2)30 b(W)-5 b(riting)20 b(a)h(New)f(F)-5 ! b(unction)137 2488 y Fu(In)17 b(order)f(to)f(write)h(new)h(functions)g ! (for)e(Readline,)i(y)o(ou)f(need)h(to)e(kno)o(w)h(the)g(calling)i(con)o ! (v)o(en)o(tions)75 2542 y(for)g(k)o(eyb)q(oard-in)o(v)o(ok)o(ed)h ! (functions,)g(and)g(the)f(names)h(of)f(the)g(v)m(ariables)i(that)d ! (describ)q(e)k(the)d(curren)o(t)75 2597 y(state)c(of)h(the)g(line)i ! (read)e(so)g(far.)137 2670 y(The)h(calling)h(sequence)f(for)f(a)f ! (command)i Ft(foo)e Fu(lo)q(oks)i(lik)o(e)p eop ! %%Page: 24 26 ! 24 25 bop 75 -58 a Fu(24)1299 b(GNU)15 b(Readline)h(Library)195 ! 149 y Ft(int)23 b(foo)h(\(int)f(count,)g(int)h(key\))75 ! 221 y Fu(where)18 b Fk(coun)o(t)h Fu(is)f(the)g(n)o(umeric)h(argumen)o ! (t)e(\(or)h(1)f(if)i(defaulted\))f(and)g Fk(k)o(ey)k ! Fu(is)d(the)f(k)o(ey)g(that)f(in)o(v)o(ok)o(ed)75 276 ! y(this)f(function.)137 348 y(It)c(is)g(completely)h(up)f(to)f(the)g ! (function)i(as)e(to)g(what)g(should)h(b)q(e)g(done)g(with)g(the)g(n)o ! (umeric)g(argumen)o(t.)75 403 y(Some)20 b(functions)h(use)f(it)g(as)g ! (a)g(rep)q(eat)g(coun)o(t,)g(some)g(as)g(a)f(\015ag,)i(and)f(others)g ! (to)f(c)o(ho)q(ose)h(alternate)75 457 y(b)q(eha)o(vior)i(\(refreshing)g ! (the)g(curren)o(t)f(line)j(as)d(opp)q(osed)h(to)f(refreshing)i(the)e ! (screen,)j(for)d(example\).)75 512 y(Some)c(c)o(ho)q(ose)f(to)g(ignore) ! h(it.)24 b(In)18 b(general,)f(if)g(a)f(function)h(uses)g(the)g(n)o ! (umeric)h(argumen)o(t)d(as)i(a)f(rep)q(eat)75 567 y(coun)o(t,)e(it)g ! (should)h(b)q(e)f(able)h(to)e(do)h(something)h(useful)g(with)f(b)q(oth) ! g(negativ)o(e)g(and)g(p)q(ositiv)o(e)h(argumen)o(ts.)75 ! 622 y(A)o(t)g(the)g(v)o(ery)g(least,)g(it)g(should)h(b)q(e)g(a)o(w)o ! (are)e(that)h(it)g(can)g(b)q(e)h(passed)g(a)f(negativ)o(e)g(argumen)o ! (t.)137 693 y(A)f(command)g(function)h(should)g(return)e(0)h(if)g(its)g ! (action)h(completes)f(successfully)l(,)i(and)e(a)g(non-zero)75 ! 748 y(v)m(alue)i(if)g(some)f(error)f(o)q(ccurs.)75 888 ! y Fs(2.3)33 b(Readline)23 b(V)-6 b(ariables)137 989 y ! Fu(These)16 b(v)m(ariables)g(are)f(a)o(v)m(ailable)i(to)e(function)h ! (writers.)1773 1120 y(V)l(ariable)-1861 b Fi(char)20 ! b(*)f Fh(rl)p 286 1120 18 3 v 21 w(line)p 395 1120 V ! 23 w(bu\013er)195 1174 y Fu(This)d(is)g(the)g(line)h(gathered)f(so)f ! (far.)20 b(Y)l(ou)c(are)f(w)o(elcome)h(to)f(mo)q(dify)h(the)g(con)o ! (ten)o(ts)f(of)g(the)h(line,)195 1229 y(but)i(see)g(Section)h(2.4.5)d ! ([Allo)o(wing)i(Undoing],)h(page)e(32.)27 b(The)18 b(function)h ! Ft(rl_extend_line_)195 1284 y(buffer)14 b Fu(is)i(a)o(v)m(ailable)h(to) ! d(increase)j(the)e(memory)f(allo)q(cated)j(to)d Ft(rl_line_buffer)p ! Fu(.)1773 1414 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p ! 215 1414 V 21 w(p)r(oin)n(t)195 1469 y Fu(The)15 b(o\013set)g(of)f(the) ! i(curren)o(t)f(cursor)g(p)q(osition)h(in)g Ft(rl_line_buffer)d ! Fu(\(the)i Fl(p)n(oint)t Fu(\).)1773 1600 y(V)l(ariable)-1861 ! b Fi(int)20 b Fh(rl)p 215 1600 V 21 w(end)195 1655 y ! Fu(The)14 b(n)o(um)o(b)q(er)g(of)g(c)o(haracters)f(presen)o(t)h(in)h ! Ft(rl_line_buffer)p Fu(.)i(When)e Ft(rl_point)e Fu(is)h(at)f(the)h(end) ! 195 1709 y(of)h(the)g(line,)i Ft(rl_point)d Fu(and)h ! Ft(rl_end)f Fu(are)h(equal.)1773 1840 y(V)l(ariable)-1861 ! b Fi(int)20 b Fh(rl)p 215 1840 V 21 w(mark)195 1895 y ! Fu(The)f Fk(mark)h Fu(\(sa)o(v)o(ed)e(p)q(osition\))h(in)g(the)g ! (curren)o(t)f(line.)31 b(If)19 b(set,)g(the)f(mark)g(and)h(p)q(oin)o(t) ! g(de\014ne)g(a)195 1950 y Fl(r)n(e)n(gion)p Fu(.)1773 ! 2080 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 2080 ! V 21 w(done)195 2135 y Fu(Setting)11 b(this)g(to)g(a)f(non-zero)h(v)m ! (alue)h(causes)f(Readline)h(to)f(return)f(the)h(curren)o(t)g(line)h ! (immediately)l(.)1773 2265 y(V)l(ariable)-1861 b Fi(int)20 ! b Fh(rl)p 215 2265 V 21 w(n)n(um)p 347 2265 V 19 w(c)n(hars)p ! 496 2265 V 20 w(to)p 567 2265 V 21 w(read)195 2320 y ! Fu(Setting)d(this)g(to)f(a)g(p)q(ositiv)o(e)h(v)m(alue)h(b)q(efore)f ! (calling)h Ft(readline\(\))d Fu(causes)h(Readline)i(to)e(return)195 ! 2375 y(after)h(accepting)i(that)e(man)o(y)g(c)o(haracters,)h(rather)f ! (than)h(reading)g(up)g(to)f(a)h(c)o(haracter)f(b)q(ound)195 ! 2430 y(to)e Ft(accept-line)p Fu(.)1773 2560 y(V)l(ariable)-1861 ! b Fi(int)20 b Fh(rl)p 215 2560 V 21 w(p)r(ending)p 436 ! 2560 V 20 w(input)195 2615 y Fu(Setting)13 b(this)g(to)f(a)g(v)m(alue)i ! (mak)o(es)e(it)h(the)f(next)h(k)o(eystrok)o(e)f(read.)19 ! b(This)13 b(is)g(a)f(w)o(a)o(y)g(to)f(stu\013)h(a)h(single)195 ! 2670 y(c)o(haracter)h(in)o(to)i(the)f(input)h(stream.)p eop ! %%Page: 25 27 ! 25 26 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(25)1773 149 y(V)l(ariable)-1861 b Fi(int)20 ! b Fh(rl)p 215 149 18 3 v 21 w(dispatc)n(hing)195 204 ! y Fu(Set)12 b(to)g(a)f(non-zero)i(v)m(alue)g(if)g(a)f(function)h(is)f ! (b)q(eing)i(called)f(from)f(a)f(k)o(ey)h(binding;)j(zero)d(otherwise.) ! 195 259 y(Application)20 b(functions)e(can)g(test)g(this)g(to)f(disco)o ! (v)o(er)h(whether)g(they)g(w)o(ere)g(called)h(directly)g(or)195 ! 314 y(b)o(y)c(Readline's)h(dispatc)o(hing)h(mec)o(hanism.)1773 ! 423 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 423 ! V 21 w(erase)p 363 423 V 20 w(empt)n(y)p 540 423 V 20 ! w(line)195 478 y Fu(Setting)j(this)h(to)e(a)h(non-zero)g(v)m(alue)h ! (causes)f(Readline)i(to)d(completely)i(erase)f(the)g(curren)o(t)195 ! 533 y(line,)g(including)h(an)o(y)c(prompt,)h(an)o(y)g(time)g(a)f ! (newline)j(is)e(t)o(yp)q(ed)g(as)f(the)h(only)g(c)o(haracter)f(on)195 ! 588 y(an)e(otherwise-empt)o(y)g(line.)31 b(The)18 b(cursor)g(is)h(mo)o ! (v)o(ed)e(to)h(the)g(b)q(eginning)i(of)e(the)g(newly-blank)195 ! 643 y(line.)1773 752 y(V)l(ariable)-1861 b Fi(char)20 ! b(*)f Fh(rl)p 286 752 V 21 w(prompt)195 807 y Fu(The)13 ! b(prompt)g(Readline)h(uses.)20 b(This)13 b(is)h(set)f(from)f(the)h ! (argumen)o(t)g(to)f Ft(readline\(\))p Fu(,)g(and)h(should)195 ! 862 y(not)g(b)q(e)h(assigned)g(to)f(directly)l(.)21 b(The)14 ! b Ft(rl_set_prompt\(\))d Fu(function)j(\(see)g(Section)g(2.4.6)e ! ([Redis-)195 917 y(pla)o(y],)j(page)g(33\))f(ma)o(y)h(b)q(e)g(used)h ! (to)f(mo)q(dify)h(the)f(prompt)g(string)g(after)f(calling)j ! Ft(readline\(\))p Fu(.)1773 1026 y(V)l(ariable)-1861 ! b Fi(int)20 b Fh(rl)p 215 1026 V 21 w(already)p 419 1026 ! V 21 w(prompted)195 1081 y Fu(If)e(an)g(application)i(wishes)f(to)f ! (displa)o(y)h(the)f(prompt)g(itself,)h(rather)f(than)g(ha)o(v)o(e)g ! (Readline)h(do)195 1136 y(it)e(the)f(\014rst)g(time)h ! Ft(readline\(\))e Fu(is)i(called,)h(it)e(should)i(set)e(this)h(v)m ! (ariable)g(to)f(a)g(non-zero)h(v)m(alue)195 1191 y(after)h(displa)o ! (ying)j(the)e(prompt.)31 b(The)19 b(prompt)g(m)o(ust)f(also)h(b)q(e)h ! (passed)f(as)f(the)h(argumen)o(t)g(to)195 1245 y Ft(readline\(\))c ! Fu(so)h(the)h(redispla)o(y)g(functions)h(can)e(up)q(date)h(the)g ! (displa)o(y)h(prop)q(erly)l(.)24 b(The)17 b(calling)195 ! 1300 y(application)g(is)f(resp)q(onsible)h(for)d(managing)h(the)h(v)m ! (alue;)g(Readline)g(nev)o(er)g(sets)e(it.)1773 1410 y(V)l(ariable)-1861 ! b Fi(const)20 b(char)g(*)f Fh(rl)p 436 1410 V 21 w(library)p ! 625 1410 V 21 w(v)n(ersion)195 1465 y Fu(The)c(v)o(ersion)h(n)o(um)o(b) ! q(er)f(of)g(this)h(revision)g(of)f(the)g(library)l(.)1773 ! 1574 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 1574 ! V 21 w(readline)p 434 1574 V 22 w(v)n(ersion)195 1629 ! y Fu(An)d(in)o(teger)h(enco)q(ding)g(the)f(curren)o(t)g(v)o(ersion)g ! (of)g(the)g(library)l(.)27 b(The)17 b(enco)q(ding)h(is)g(of)f(the)g ! (form)195 1684 y(0x)p Fk(MMmm)p Fu(,)g(where)i Fk(MM)j ! Fu(is)d(the)f(t)o(w)o(o-digit)g(ma)s(jor)f(v)o(ersion)i(n)o(um)o(b)q ! (er,)g(and)f Fk(mm)g Fu(is)h(the)f(t)o(w)o(o-)195 1738 ! y(digit)i(minor)e(v)o(ersion)h(n)o(um)o(b)q(er.)31 b(F)l(or)18 ! b(example,)i(for)e(Readline-4.2,)i Ft(rl_readline_version)195 ! 1793 y Fu(w)o(ould)c(ha)o(v)o(e)e(the)i(v)m(alue)g(0x0402.)1773 ! 1903 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 1903 ! V 21 w(gn)n(u)p 327 1903 V 20 w(readline)p 545 1903 V ! 22 w(p)195 1958 y Fu(Alw)o(a)o(ys)15 b(set)g(to)f(1,)h(denoting)h(that) ! e(this)i(is)g Fp(gnu)f Fu(readline)h(rather)f(than)g(some)g(em)o ! (ulation.)1773 2067 y(V)l(ariable)-1861 b Fi(const)20 ! b(char)g(*)f Fh(rl)p 436 2067 V 21 w(terminal)p 668 2067 ! V 21 w(name)195 2122 y Fu(The)14 b(terminal)h(t)o(yp)q(e,)f(used)h(for) ! e(initialization.)23 b(If)14 b(not)f(set)h(b)o(y)g(the)g(application,)i ! (Readline)f(sets)195 2177 y(this)h(to)e(the)h(v)m(alue)i(of)e(the)g ! Ft(TERM)g Fu(en)o(vironmen)o(t)g(v)m(ariable)i(the)e(\014rst)g(time)g ! (it)h(is)f(called.)1773 2286 y(V)l(ariable)-1861 b Fi(const)20 ! b(char)g(*)f Fh(rl)p 436 2286 V 21 w(readline)p 655 2286 ! V 22 w(name)195 2341 y Fu(This)d(v)m(ariable)h(is)f(set)g(to)f(a)g ! (unique)i(name)f(b)o(y)f(eac)o(h)h(application)h(using)f(Readline.)23 ! b(The)16 b(v)m(alue)195 2396 y(allo)o(ws)e(conditional)i(parsing)e(of)g ! (the)g(inputrc)h(\014le)g(\(see)f(Section)h(1.3.2)d([Conditional)j ! (Init)g(Con-)195 2451 y(structs],)f(page)h(9\).)1773 ! 2560 y(V)l(ariable)-1861 b Fi(FILE)20 b(*)f Fh(rl)p 286 ! 2560 V 21 w(instream)195 2615 y Fu(The)i(stdio)f(stream)g(from)g(whic)o ! (h)h(Readline)h(reads)e(input.)37 b(If)21 b Ft(NULL)p ! Fu(,)g(Readline)h(defaults)f(to)195 2670 y Fk(stdin)p ! Fu(.)p eop ! %%Page: 26 28 ! 26 27 bop 75 -58 a Fu(26)1299 b(GNU)15 b(Readline)h(Library)1773 ! 149 y(V)l(ariable)-1861 b Fi(FILE)20 b(*)f Fh(rl)p 286 ! 149 18 3 v 21 w(outstream)195 204 y Fu(The)e(stdio)h(stream)e(to)h ! (whic)o(h)h(Readline)g(p)q(erforms)f(output.)26 b(If)18 ! b Ft(NULL)p Fu(,)e(Readline)j(defaults)f(to)195 259 y ! Fk(stdout)p Fu(.)1773 381 y(V)l(ariable)-1861 b Fi(rl_command_func_t)22 ! b(*)d Fh(rl)p 626 381 V 21 w(last)p 735 381 V 21 w(func)195 ! 436 y Fu(The)f(address)f(of)g(the)g(last)h(command)f(function)h ! (Readline)h(executed.)27 b(Ma)o(y)17 b(b)q(e)h(used)g(to)f(test)195 ! 490 y(whether)e(or)g(not)g(a)g(function)h(is)f(b)q(eing)i(executed)f(t) ! o(wice)g(in)g(succession,)g(for)e(example.)1773 612 y(V)l(ariable)-1861 ! b Fi(rl_hook_func_t)21 b(*)e Fh(rl)p 547 612 V 22 w(startup)p ! 752 612 V 19 w(ho)r(ok)195 667 y Fu(If)e(non-zero,)h(this)g(is)f(the)h ! (address)f(of)f(a)h(function)h(to)f(call)h(just)f(b)q(efore)g ! Ft(readline)f Fu(prin)o(ts)i(the)195 722 y(\014rst)d(prompt.)1773 ! 844 y(V)l(ariable)-1861 b Fi(rl_hook_func_t)21 b(*)e ! Fh(rl)p 547 844 V 22 w(pre)p 651 844 V 20 w(input)p 804 ! 844 V 21 w(ho)r(ok)195 898 y Fu(If)f(non-zero,)g(this)g(is)h(the)f ! (address)f(of)h(a)f(function)i(to)e(call)i(after)e(the)h(\014rst)f ! (prompt)g(has)h(b)q(een)195 953 y(prin)o(ted)e(and)f(just)g(b)q(efore)h ! Ft(readline)e Fu(starts)g(reading)h(input)i(c)o(haracters.)1773 ! 1075 y(V)l(ariable)-1861 b Fi(rl_hook_func_t)21 b(*)e ! Fh(rl)p 547 1075 V 22 w(ev)n(en)n(t)p 701 1075 V 22 w(ho)r(ok)195 ! 1130 y Fu(If)i(non-zero,)g(this)g(is)g(the)f(address)g(of)g(a)g ! (function)h(to)f(call)i(p)q(erio)q(dically)h(when)e(Readline)g(is)195 ! 1184 y(w)o(aiting)15 b(for)f(terminal)h(input.)21 b(By)14 ! b(default,)h(this)g(will)i(b)q(e)e(called)h(at)e(most)g(ten)g(times)h ! (a)f(second)195 1239 y(if)i(there)f(is)h(no)f(k)o(eyb)q(oard)g(input.) ! 1773 1361 y(V)l(ariable)-1861 b Fi(rl_getc_func_t)21 ! b(*)e Fh(rl)p 547 1361 V 22 w(getc)p 671 1361 V 21 w(function)195 ! 1416 y Fu(If)c(non-zero,)h(Readline)g(will)h(call)f(indirectly)i ! (through)d(this)g(p)q(oin)o(ter)h(to)f(get)f(a)h(c)o(haracter)g(from) ! 195 1471 y(the)k(input)i(stream.)31 b(By)19 b(default,)h(it)g(is)g(set) ! f(to)f Ft(rl_getc)p Fu(,)h(the)g(default)h(Readline)h(c)o(haracter)195 ! 1525 y(input)16 b(function)g(\(see)f(Section)h(2.4.8)e([Character)g ! (Input],)h(page)g(34\).)1773 1647 y(V)l(ariable)-1861 ! b Fi(rl_voidfunc_t)21 b(*)e Fh(rl)p 521 1647 V 21 w(redispla)n(y)p ! 765 1647 V 22 w(function)195 1702 y Fu(If)f(non-zero,)h(Readline)g ! (will)h(call)f(indirectly)h(through)e(this)g(p)q(oin)o(ter)h(to)e(up)q ! (date)i(the)f(displa)o(y)195 1757 y(with)c(the)f(curren)o(t)h(con)o ! (ten)o(ts)f(of)g(the)g(editing)i(bu\013er.)k(By)14 b(default,)g(it)g ! (is)g(set)f(to)g Ft(rl_redisplay)p Fu(,)195 1812 y(the)i(default)h ! (Readline)h(redispla)o(y)f(function)g(\(see)f(Section)h(2.4.6)e ! ([Redispla)o(y],)h(page)g(33\).)1773 1933 y(V)l(ariable)-1861 ! b Fi(rl_vintfunc_t)21 b(*)e Fh(rl)p 521 1933 V 21 w(prep)p ! 656 1933 V 21 w(term)p 798 1933 V 19 w(function)195 1988 ! y Fu(If)12 b(non-zero,)h(Readline)g(will)h(call)f(indirectly)h(through) ! e(this)g(p)q(oin)o(ter)h(to)e(initialize)k(the)e(terminal.)195 ! 2043 y(The)19 b(function)g(tak)o(es)f(a)g(single)i(argumen)o(t,)e(an)h ! Ft(int)f Fu(\015ag)g(that)g(sa)o(ys)g(whether)g(or)h(not)f(to)g(use)195 ! 2098 y(eigh)o(t-bit)g(c)o(haracters.)25 b(By)17 b(default,)h(this)f(is) ! h(set)e(to)h Ft(rl_prep_terminal)e Fu(\(see)i(Section)h(2.4.9)195 ! 2152 y([T)l(erminal)e(Managemen)o(t],)d(page)i(35\).)1773 ! 2274 y(V)l(ariable)-1861 b Fi(rl_voidfunc_t)21 b(*)e ! Fh(rl)p 521 2274 V 21 w(deprep)p 714 2274 V 21 w(term)p ! 856 2274 V 19 w(function)195 2329 y Fu(If)g(non-zero,)g(Readline)g ! (will)h(call)g(indirectly)g(through)e(this)h(p)q(oin)o(ter)f(to)g ! (reset)g(the)h(terminal.)195 2384 y(This)f(function)g(should)h(undo)f ! (the)f(e\013ects)h(of)f Ft(rl_prep_term_function)p Fu(.)24 ! b(By)17 b(default,)i(this)195 2439 y(is)d(set)f(to)f ! Ft(rl_deprep_terminal)f Fu(\(see)i(Section)h(2.4.9)e([T)l(erminal)i ! (Managemen)o(t],)d(page)i(35\).)1773 2560 y(V)l(ariable)-1861 ! b Fi(Keymap)20 b Fh(rl)p 293 2560 V 21 w(executing)p ! 551 2560 V 22 w(k)n(eymap)195 2615 y Fu(This)f(v)m(ariable)g(is)f(set)g ! (to)g(the)g(k)o(eymap)f(\(see)h(Section)h(2.4.2)e([Keymaps],)g(page)h ! (29\))f(in)i(whic)o(h)195 2670 y(the)c(curren)o(tly)h(executing)g ! (readline)h(function)f(w)o(as)f(found.)p eop ! %%Page: 27 29 ! 27 28 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(27)1773 149 y(V)l(ariable)-1861 b Fi(Keymap)20 ! b Fh(rl)p 293 149 18 3 v 21 w(binding)p 501 149 V 22 ! w(k)n(eymap)195 204 y Fu(This)f(v)m(ariable)g(is)f(set)g(to)g(the)g(k)o ! (eymap)f(\(see)h(Section)h(2.4.2)e([Keymaps],)g(page)h(29\))f(in)i ! (whic)o(h)195 259 y(the)c(last)g(k)o(ey)g(binding)j(o)q(ccurred.)1773 ! 383 y(V)l(ariable)-1861 b Fi(char)20 b(*)f Fh(rl)p 286 ! 383 V 21 w(executing)p 544 383 V 22 w(macro)195 438 y ! Fu(This)d(v)m(ariable)g(is)g(set)f(to)g(the)g(text)g(of)f(an)o(y)h ! (curren)o(tly-executing)i(macro.)1773 562 y(V)l(ariable)-1861 ! b Fi(int)20 b Fh(rl)p 215 562 V 21 w(readline)p 434 562 ! V 22 w(state)195 617 y Fu(A)d(v)m(ariable)i(with)e(bit)h(v)m(alues)h ! (that)d(encapsulate)i(the)g(curren)o(t)f(Readline)h(state.)25 ! b(A)18 b(bit)f(is)h(set)195 671 y(with)h(the)g Ft(RL_SETSTATE)f ! Fu(macro,)h(and)g(unset)g(with)g(the)g Ft(RL_UNSETSTATE)e ! Fu(macro.)31 b(Use)19 b(the)195 726 y Ft(RL_ISSTATE)e ! Fu(macro)h(to)g(test)g(whether)h(a)f(particular)i(state)d(bit)j(is)f ! (set.)30 b(Curren)o(t)18 b(state)g(bits)195 781 y(include:)195 ! 864 y Ft(RL_STATE_NONE)435 919 y Fu(Readline)e(has)g(not)e(y)o(et)h(b)q ! (een)h(called,)h(nor)e(has)g(it)g(b)q(egun)h(to)f(in)o(tialize.)195 ! 1001 y Ft(RL_STATE_INITIALIZING)435 1056 y Fu(Readline)h(is)g ! (initializi)q(ng)i(its)d(in)o(ternal)h(data)f(structures.)195 ! 1138 y Ft(RL_STATE_INITIALIZED)435 1192 y Fu(Readline)h(has)g ! (completed)g(its)f(initialization.)195 1274 y Ft(RL_STATE_TERMPREPPED) ! 435 1329 y Fu(Readline)h(has)e(mo)q(di\014ed)i(the)e(terminal)h(mo)q ! (des)g(to)e(do)i(its)f(o)o(wn)g(input)h(and)g(redis-)435 ! 1384 y(pla)o(y)l(.)195 1466 y Ft(RL_STATE_READCMD)435 ! 1521 y Fu(Readline)h(is)g(reading)g(a)f(command)g(from)f(the)i(k)o(eyb) ! q(oard.)195 1603 y Ft(RL_STATE_METANEXT)435 1658 y Fu(Readline)g(is)g ! (reading)g(more)f(input)h(after)e(reading)i(the)f(meta-pre\014x)h(c)o ! (haracter.)195 1740 y Ft(RL_STATE_DISPATCHING)435 1794 ! y Fu(Readline)g(is)g(dispatc)o(hing)h(to)d(a)h(command.)195 ! 1876 y Ft(RL_STATE_MOREINPUT)435 1931 y Fu(Readline)h(is)g(reading)g ! (more)f(input)h(while)h(executing)f(an)f(editing)i(command.)195 ! 2013 y Ft(RL_STATE_ISEARCH)435 2068 y Fu(Readline)f(is)g(p)q(erforming) ! g(an)f(incremen)o(tal)h(history)f(searc)o(h.)195 2150 ! y Ft(RL_STATE_NSEARCH)435 2205 y Fu(Readline)h(is)g(p)q(erforming)g(a)f ! (non-incremen)o(tal)h(history)g(searc)o(h.)195 2287 y ! Ft(RL_STATE_SEARCH)435 2342 y Fu(Readline)11 b(is)g(searc)o(hing)g(bac) ! o(kw)o(ard)e(or)h(forw)o(ard)f(through)h(the)g(history)g(for)f(a)h ! (string.)195 2424 y Ft(RL_STATE_NUMERICARG)435 2478 y ! Fu(Readline)16 b(is)g(reading)g(a)f(n)o(umeric)h(argumen)o(t.)195 ! 2560 y Ft(RL_STATE_MACROINPUT)435 2615 y Fu(Readline)d(is)g(curren)o ! (tly)g(getting)f(its)g(input)h(from)e(a)h(previously-de\014ned)j(k)o ! (eyb)q(oard)435 2670 y(macro.)p eop ! %%Page: 28 30 ! 28 29 bop 75 -58 a Fu(28)1299 b(GNU)15 b(Readline)h(Library)195 ! 149 y Ft(RL_STATE_MACRODEF)435 204 y Fu(Readline)g(is)g(curren)o(tly)g ! (reading)g(c)o(haracters)e(de\014ning)j(a)e(k)o(eyb)q(oard)g(macro.)195 ! 286 y Ft(RL_STATE_OVERWRITE)435 341 y Fu(Readline)h(is)g(in)g(o)o(v)o ! (erwrite)f(mo)q(de.)195 423 y Ft(RL_STATE_COMPLETING)435 ! 478 y Fu(Readline)h(is)g(p)q(erforming)g(w)o(ord)e(completion.)195 ! 560 y Ft(RL_STATE_SIGHANDLER)435 615 y Fu(Readline)i(is)g(curren)o(tly) ! g(executing)g(the)f(readline)i(signal)f(handler.)195 ! 697 y Ft(RL_STATE_UNDOING)435 752 y Fu(Readline)g(is)g(p)q(erforming)g ! (an)f(undo.)195 834 y Ft(RL_STATE_DONE)435 889 y Fu(Readline)g(has)f ! (read)g(a)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e Ft(accept-line)f ! Fu(and)i(is)h(ab)q(out)f(to)435 944 y(return)h(the)g(line)i(to)e(the)g ! (caller.)1773 1068 y(V)l(ariable)-1861 b Fi(int)20 b ! Fh(rl)p 215 1068 18 3 v 21 w(explicit)p 417 1068 V 24 ! w(arg)195 1123 y Fu(Set)f(to)g(a)g(non-zero)h(v)m(alue)h(if)e(an)h ! (explicit)h(n)o(umeric)g(argumen)o(t)d(w)o(as)h(sp)q(eci\014ed)i(b)o(y) ! f(the)f(user.)195 1178 y(Only)d(v)m(alid)h(in)f(a)f(bindable)i(command) ! f(function.)1773 1302 y(V)l(ariable)-1861 b Fi(int)20 ! b Fh(rl)p 215 1302 V 21 w(n)n(umeric)p 437 1302 V 20 ! w(arg)195 1357 y Fu(Set)j(to)f(the)g(v)m(alue)i(of)f(an)o(y)f(n)o ! (umeric)h(argumen)o(t)f(explicitly)k(sp)q(eci\014ed)f(b)o(y)d(the)h ! (user)g(b)q(efore)195 1412 y(executing)14 b(the)f(curren)o(t)g ! (Readline)h(function.)20 b(Only)14 b(v)m(alid)h(in)f(a)f(bindable)i ! (command)d(function.)1773 1536 y(V)l(ariable)-1861 b ! Fi(int)20 b Fh(rl)p 215 1536 V 21 w(editing)p 407 1536 ! V 22 w(mo)r(de)195 1591 y Fu(Set)13 b(to)f(a)g(v)m(alue)i(denoting)f ! (Readline's)g(curren)o(t)g(editing)h(mo)q(de.)19 b(A)12 ! b(v)m(alue)i(of)e Fk(1)k Fu(means)d(Readline)195 1646 ! y(is)j(curren)o(tly)f(in)h(emacs)g(mo)q(de;)f Fk(0)j ! Fu(means)d(that)g(vi)h(mo)q(de)f(is)h(activ)o(e.)75 1781 ! y Fs(2.4)33 b(Readline)23 b(Con)n(v)n(enience)g(F)-6 ! b(unctions)75 1927 y Fj(2.4.1)30 b(Naming)20 b(a)g(F)-5 ! b(unction)137 2025 y Fu(The)20 b(user)g(can)g(dynamically)i(c)o(hange)e ! (the)g(bindings)i(of)d(k)o(eys)h(while)h(using)g(Readline.)35 ! b(This)20 b(is)75 2080 y(done)f(b)o(y)f(represen)o(ting)h(the)g ! (function)g(with)g(a)f(descriptiv)o(e)i(name.)29 b(The)19 ! b(user)f(is)h(able)h(to)d(t)o(yp)q(e)i(the)75 2135 y(descriptiv)o(e)e ! (name)e(when)h(referring)f(to)g(the)g(function.)21 b(Th)o(us,)14 ! b(in)i(an)f(init)i(\014le,)f(one)f(migh)o(t)g(\014nd)195 ! 2202 y Ft(Meta-Rubout:)46 b(backward-kill-word)137 2272 ! y Fu(This)21 b(binds)g(the)f(k)o(eystrok)o(e)661 2270 ! y Fn(h)p 673 2244 209 2 v 673 2272 a Fm(Meta-Rub)q(out)p ! 673 2279 V 879 2270 a Fn(i)914 2272 y Fu(to)g(the)g(function)g ! Fl(descriptively)k Fu(named)c Ft(backward-)75 2326 y(kill-word)p ! Fu(.)29 b(Y)l(ou,)19 b(as)f(the)h(programmer,)f(should)i(bind)f(the)g ! (functions)h(y)o(ou)e(write)h(to)e(descriptiv)o(e)75 ! 2381 y(names)e(as)g(w)o(ell.)21 b(Readline)16 b(pro)o(vides)g(a)f ! (function)h(for)e(doing)i(that:)1762 2506 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 2506 18 3 v 21 w(add)p 328 ! 2506 V 20 w(defun)i Fg(\()p Ft(const)14 b(char)h(*name,)f ! (rl_command_func_t)283 2560 y(*function,)f(int)i(key)p ! Fg(\))195 2615 y Fu(Add)j Fk(name)i Fu(to)d(the)h(list)h(of)e(named)h ! (functions.)28 b(Mak)o(e)17 b Fk(function)h Fu(b)q(e)g(the)g(function)h ! (that)d(gets)195 2670 y(called.)21 b(If)16 b Fk(k)o(ey)j ! Fu(is)d(not)e(-1,)h(then)h(bind)g(it)g(to)e Fk(function)i ! Fu(using)g Ft(rl_bind_key\(\))p Fu(.)p eop ! %%Page: 29 31 ! 29 30 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(29)137 149 y(Using)16 b(this)f(function)h(alone)g(is)f ! (su\016cien)o(t)h(for)f(most)f(applications.)21 b(It)15 ! b(is)h(the)f(recommended)h(w)o(a)o(y)75 204 y(to)d(add)h(a)f(few)g ! (functions)h(to)f(the)h(default)g(functions)g(that)f(Readline)i(has)e ! (built)i(in.)20 b(If)14 b(y)o(ou)f(need)h(to)f(do)75 ! 259 y(something)k(other)g(than)f(adding)i(a)e(function)i(to)e ! (Readline,)i(y)o(ou)f(ma)o(y)f(need)i(to)e(use)h(the)g(underlying)75 ! 314 y(functions)f(describ)q(ed)h(b)q(elo)o(w.)75 442 ! y Fj(2.4.2)30 b(Selecting)20 b(a)h(Keymap)137 546 y Fu(Key)16 ! b(bindings)i(tak)o(e)c(place)j(on)e(a)g Fk(k)o(eymap)p ! Fu(.)21 b(The)15 b(k)o(eymap)h(is)f(the)h(asso)q(ciation)g(b)q(et)o(w)o ! (een)g(the)f(k)o(eys)75 601 y(that)f(the)g(user)g(t)o(yp)q(es)g(and)h ! (the)f(functions)h(that)f(get)g(run.)19 b(Y)l(ou)c(can)f(mak)o(e)g(y)o ! (our)g(o)o(wn)f(k)o(eymaps,)h(cop)o(y)75 656 y(existing)i(k)o(eymaps,)f ! (and)g(tell)h(Readline)h(whic)o(h)f(k)o(eymap)f(to)f(use.)1762 ! 797 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293 ! 797 18 3 v 21 w(mak)n(e)p 445 797 V 20 w(bare)p 575 797 ! V 20 w(k)n(eymap)j Fg(\()p Ft(void)p Fg(\))195 851 y ! Fu(Returns)12 b(a)f(new,)i(empt)o(y)f(k)o(eymap.)18 b(The)13 ! b(space)f(for)f(the)i(k)o(eymap)e(is)i(allo)q(cated)g(with)f ! Ft(malloc\(\))p Fu(;)195 906 y(the)j(caller)i(should)f(free)f(it)h(b)o ! (y)f(calling)i Ft(rl_discard_keymap\(\))12 b Fu(when)k(done.)1762 ! 1047 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293 ! 1047 V 21 w(cop)n(y)p 428 1047 V 21 w(k)n(eymap)j Fg(\()p ! Ft(Keymap)14 b(map)p Fg(\))195 1102 y Fu(Return)h(a)g(new)g(k)o(eymap)g ! (whic)o(h)h(is)g(a)f(cop)o(y)g(of)g Fk(map)p Fu(.)1762 ! 1243 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293 ! 1243 V 21 w(mak)n(e)p 445 1243 V 20 w(k)n(eymap)j Fg(\()p ! Ft(void)p Fg(\))195 1298 y Fu(Return)16 b(a)f(new)i(k)o(eymap)e(with)i ! (the)f(prin)o(ting)h(c)o(haracters)e(b)q(ound)i(to)e(rl)p ! 1457 1298 14 2 v 17 w(insert,)h(the)g(lo)o(w)o(ercase)195 ! 1353 y(Meta)11 b(c)o(haracters)f(b)q(ound)i(to)f(run)h(their)f(equiv)m ! (alen)o(ts,)j(and)d(the)h(Meta)e(digits)i(b)q(ound)g(to)f(pro)q(duce) ! 195 1407 y(n)o(umeric)16 b(argumen)o(ts.)1762 1548 y(F)l(unction)-1861 ! b Fi(void)20 b Fh(rl)p 241 1548 18 3 v 21 w(discard)p ! 441 1548 V 21 w(k)n(eymap)i Fg(\()p Ft(Keymap)14 b(keymap)p ! Fg(\))195 1603 y Fu(F)l(ree)h(the)h(storage)d(asso)q(ciated)j(with)f ! Fk(k)o(eymap)p Fu(.)137 1711 y(Readline)24 b(has)f(sev)o(eral)g(in)o ! (ternal)g(k)o(eymaps.)42 b(These)23 b(functions)g(allo)o(w)g(y)o(ou)f ! (to)g(c)o(hange)h(whic)o(h)75 1766 y(k)o(eymap)15 b(is)h(activ)o(e.) ! 1762 1907 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p ! 293 1907 V 21 w(get)p 391 1907 V 21 w(k)n(eymap)i Fg(\()p ! Ft(void)p Fg(\))195 1962 y Fu(Returns)15 b(the)g(curren)o(tly)h(activ)o ! (e)f(k)o(eymap.)1762 2103 y(F)l(unction)-1861 b Fi(void)20 ! b Fh(rl)p 241 2103 V 21 w(set)p 333 2103 V 21 w(k)n(eymap)i ! Fg(\()p Ft(Keymap)14 b(keymap)p Fg(\))195 2158 y Fu(Mak)o(es)g ! Fk(k)o(eymap)j Fu(the)e(curren)o(tly)h(activ)o(e)f(k)o(eymap.)1762 ! 2298 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293 ! 2298 V 21 w(get)p 391 2298 V 21 w(k)n(eymap)p 605 2298 ! V 20 w(b)n(y)p 685 2298 V 21 w(name)i Fg(\()p Ft(const)14 ! b(char)g(*name)p Fg(\))195 2353 y Fu(Return)i(the)h(k)o(eymap)f(matc)o ! (hing)h Fk(name)p Fu(.)24 b Fk(name)19 b Fu(is)e(one)g(whic)o(h)g(w)o ! (ould)g(b)q(e)h(supplied)h(in)e(a)f Ft(set)195 2408 y(keymap)e ! Fu(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)i(Init)g(File],)g ! (page)f(4\).)1762 2549 y(F)l(unction)-1861 b Fi(char)20 ! b(*)f Fh(rl)p 286 2549 V 21 w(get)p 384 2549 V 21 w(k)n(eymap)p ! 598 2549 V 20 w(name)i Fg(\()p Ft(Keymap)14 b(keymap)p ! Fg(\))195 2604 y Fu(Return)i(the)h(name)g(matc)o(hing)f ! Fk(k)o(eymap)p Fu(.)24 b Fk(name)19 b Fu(is)e(one)g(whic)o(h)g(w)o ! (ould)g(b)q(e)h(supplied)h(in)e(a)f Ft(set)195 2659 y(keymap)e ! Fu(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)i(Init)g(File],)g ! (page)f(4\).)p eop ! %%Page: 30 32 ! 30 31 bop 75 -58 a Fu(30)1299 b(GNU)15 b(Readline)h(Library)75 ! 149 y Fj(2.4.3)30 b(Binding)20 b(Keys)137 244 y Fu(Key)13 ! b(sequences)g(are)e(asso)q(ciate)h(with)h(functions)f(through)g(the)g ! (k)o(eymap.)19 b(Readline)13 b(has)f(sev)o(eral)g(in-)75 ! 299 y(ternal)j(k)o(eymaps:)k Ft(emacs_standard_keymap)p ! Fu(,)11 b Ft(emacs_meta_keymap)p Fu(,)h Ft(emacs_ctlx_keymap)p ! Fu(,)g Ft(vi_)75 354 y(movement_keymap)p Fu(,)20 b(and)i ! Ft(vi_insertion_keymap)p Fu(.)35 b Ft(emacs_standard_keymap)18 ! b Fu(is)k(the)f(default,)75 408 y(and)15 b(the)h(examples)g(in)g(this)f ! (man)o(ual)h(assume)f(that.)137 474 y(Since)h Ft(readline\(\))c ! Fu(installs)j(a)f(set)f(of)h(default)g(k)o(ey)g(bindings)h(the)f ! (\014rst)g(time)g(it)g(is)g(called,)i(there)d(is)75 529 ! y(alw)o(a)o(ys)j(the)g(danger)g(that)g(a)g(custom)g(binding)i ! (installed)g(b)q(efore)f(the)f(\014rst)g(call)i(to)d ! Ft(readline\(\))g Fu(will)75 584 y(b)q(e)f(o)o(v)o(erridden.)19 ! b(An)13 b(alternate)g(mec)o(hanism)h(is)f(to)f(install)i(custom)f(k)o ! (ey)g(bindings)h(in)g(an)f(initialization)75 638 y(function)19 ! b(assigned)h(to)d(the)i Ft(rl_startup_hook)e Fu(v)m(ariable)j(\(see)e ! (Section)h(2.3)f([Readline)i(V)l(ariables],)75 693 y(page)15 ! b(24\).)137 759 y(These)h(functions)g(manage)e(k)o(ey)i(bindings.)1762 ! 868 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 868 ! 18 3 v 21 w(bind)p 347 868 V 21 w(k)n(ey)k Fg(\()p Ft(int)14 ! b(key,)h(rl_command_func_t)d(*function)p Fg(\))195 922 ! y Fu(Binds)18 b Fk(k)o(ey)i Fu(to)c Fk(function)h Fu(in)h(the)e(curren) ! o(tly)h(activ)o(e)g(k)o(eymap.)23 b(Returns)16 b(non-zero)h(in)g(the)g ! (case)195 977 y(of)e(an)g(in)o(v)m(alid)i Fk(k)o(ey)p ! Fu(.)1762 1086 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p ! 215 1086 V 21 w(bind)p 347 1086 V 21 w(k)n(ey)p 452 1086 ! V 21 w(in)p 520 1086 V 22 w(map)h Fg(\()p Ft(int)14 b(key,)h ! (rl_command_func_t)e(*function,)283 1141 y(Keymap)h(map)p ! Fg(\))195 1196 y Fu(Bind)i Fk(k)o(ey)j Fu(to)c Fk(function)h ! Fu(in)g Fk(map)p Fu(.)k(Returns)14 b(non-zero)i(in)g(the)f(case)g(of)g ! (an)g(in)o(v)m(alid)j Fk(k)o(ey)p Fu(.)1762 1304 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 1304 V 21 w(un)n(bind)p 409 ! 1304 V 21 w(k)n(ey)k Fg(\()p Ft(int)14 b(key)p Fg(\))195 ! 1359 y Fu(Bind)19 b Fk(k)o(ey)j Fu(to)c(the)g(n)o(ull)i(function)f(in)g ! (the)f(curren)o(tly)g(activ)o(e)h(k)o(eymap.)28 b(Returns)18 ! b(non-zero)g(in)195 1414 y(case)d(of)g(error.)1762 1523 ! y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 1523 V ! 21 w(un)n(bind)p 409 1523 V 21 w(k)n(ey)p 514 1523 V ! 21 w(in)p 582 1523 V 22 w(map)h Fg(\()p Ft(int)14 b(key,)h(Keymap)f ! (map)p Fg(\))195 1577 y Fu(Bind)i Fk(k)o(ey)j Fu(to)c(the)g(n)o(ull)i ! (function)f(in)g Fk(map)p Fu(.)k(Returns)14 b(non-zero)i(in)g(case)f ! (of)g(error.)1762 1686 y(F)l(unction)-1861 b Fi(int)20 ! b Fh(rl)p 215 1686 V 21 w(un)n(bind)p 409 1686 V 21 w(function)p ! 635 1686 V 21 w(in)p 703 1686 V 21 w(map)h Fg(\()p Ft ! (rl_command_func_t)13 b(*function,)283 1741 y(Keymap)h(map)p ! Fg(\))195 1796 y Fu(Un)o(bind)j(all)f(k)o(eys)f(that)f(execute)i ! Fk(function)g Fu(in)g Fk(map)p Fu(.)1762 1905 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 1905 V 21 w(un)n(bind)p 409 ! 1905 V 21 w(command)p 674 1905 V 17 w(in)p 738 1905 V ! 22 w(map)h Fg(\()p Ft(const)14 b(char)h(*command,)f(Keymap)283 ! 1959 y(map)p Fg(\))195 2014 y Fu(Un)o(bind)j(all)f(k)o(eys)f(that)f ! (are)h(b)q(ound)h(to)f Fk(command)i Fu(in)f Fk(map)p ! Fu(.)1762 2123 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p ! 215 2123 V 21 w(set)p 307 2123 V 20 w(k)n(ey)k Fg(\()p ! Ft(const)14 b(char)h(*keyseq,)f(rl_command_func_t)f(*function,)283 ! 2178 y(Keymap)h(map)p Fg(\))195 2232 y Fu(Bind)g(the)e(k)o(ey)h ! (sequence)h(represen)o(ted)f(b)o(y)f(the)h(string)f Fk(k)o(eyseq)i ! Fu(to)e(the)g(function)i Fk(function)p Fu(.)19 b(This)195 ! 2287 y(mak)o(es)13 b(new)g(k)o(eymaps)g(as)f(necessary)l(.)20 ! b(The)13 b(initial)j(k)o(eymap)c(in)i(whic)o(h)g(to)f(do)g(bindings)i ! (is)f Fk(map)p Fu(.)1762 2396 y(F)l(unction)-1861 b Fi(int)20 ! b Fh(rl)p 215 2396 V 21 w(generic)p 413 2396 V 21 w(bind)j ! Fg(\()p Ft(int)15 b(type,)f(const)h(char)f(*keyseq,)g(char)h(*data,)283 ! 2451 y(Keymap)f(map)p Fg(\))195 2506 y Fu(Bind)h(the)e(k)o(ey)h ! (sequence)h(represen)o(ted)e(b)o(y)h(the)g(string)f Fk(k)o(eyseq)i ! Fu(to)d(the)i(arbitrary)f(p)q(oin)o(ter)h Fk(data)p Fu(.)195 ! 2560 y Fk(t)o(yp)q(e)j Fu(sa)o(ys)c(what)h(kind)h(of)f(data)g(is)g(p)q ! (oin)o(ted)i(to)d(b)o(y)h Fk(data)p Fu(;)g(this)h(can)f(b)q(e)h(a)f ! (function)h(\()p Ft(ISFUNC)p Fu(\),)d(a)195 2615 y(macro)i(\()p ! Ft(ISMACR)p Fu(\),)f(or)h(a)h(k)o(eymap)f(\()p Ft(ISKMAP)p ! Fu(\).)k(This)e(mak)o(es)e(new)h(k)o(eymaps)f(as)h(necessary)l(.)20 ! b(The)195 2670 y(initial)d(k)o(eymap)e(in)h(whic)o(h)g(to)f(do)g ! (bindings)i(is)f Fk(map)p Fu(.)p eop ! %%Page: 31 33 ! 31 32 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(31)1762 149 y(F)l(unction)-1861 b Fi(int)20 ! b Fh(rl)p 215 149 18 3 v 21 w(parse)p 369 149 V 19 w(and)p ! 480 149 V 21 w(bind)j Fg(\()p Ft(char)14 b(*line)p Fg(\))195 ! 204 y Fu(P)o(arse)g Fk(line)19 b Fu(as)14 b(if)h(it)g(had)g(b)q(een)h ! (read)f(from)f(the)g Ft(inputrc)g Fu(\014le)i(and)f(p)q(erform)f(an)o ! (y)h(k)o(ey)f(bindings)195 259 y(and)h(v)m(ariable)i(assignmen)o(ts)e ! (found)h(\(see)f(Section)h(1.3)e([Readline)i(Init)g(File],)g(page)f ! (4\).)1762 359 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p ! 215 359 V 21 w(read)p 346 359 V 20 w(init)p 450 359 V ! 22 w(\014le)k Fg(\()p Ft(const)14 b(char)h(*filename)p ! Fg(\))195 414 y Fu(Read)g(k)o(eybindings)j(and)e(v)m(ariable)h ! (assignmen)o(ts)f(from)f Fk(\014lename)k Fu(\(see)d(Section)g(1.3)f ! ([Readline)195 469 y(Init)h(File],)g(page)f(4\).)75 571 ! y Fj(2.4.4)30 b(Asso)r(ciating)20 b(F)-5 b(unction)20 ! b(Names)h(and)f(Bindings)137 664 y Fu(These)11 b(functions)h(allo)o(w)e ! (y)o(ou)h(to)f(\014nd)h(out)f(what)g(k)o(eys)h(in)o(v)o(ok)o(e)f(named) ! h(functions)h(and)e(the)h(functions)75 718 y(in)o(v)o(ok)o(ed)j(b)o(y)g ! (a)f(particular)h(k)o(ey)g(sequence.)21 b(Y)l(ou)14 b(ma)o(y)f(also)g ! (asso)q(ciate)h(a)g(new)g(function)g(name)g(with)g(an)75 ! 773 y(arbitrary)h(function.)1762 873 y(F)l(unction)-1861 ! b Fi(rl_command_func_t)22 b(*)d Fh(rl)p 626 873 V 21 ! w(named)p 814 873 V 19 w(function)k Fg(\()p Ft(const)14 ! b(char)h(*name)p Fg(\))195 928 y Fu(Return)g(the)g(function)h(with)g ! (name)f Fk(name)p Fu(.)1762 1028 y(F)l(unction)-1861 ! b Fi(rl_command_func_t)22 b(*)d Fh(rl)p 626 1028 V 21 ! w(function)p 852 1028 V 21 w(of)p 920 1028 V 20 w(k)n(eyseq)24 ! b Fg(\()p Ft(const)14 b(char)283 1083 y(*keyseq,)g(Keymap)g(map,)h(int) ! f(*type)p Fg(\))195 1138 y Fu(Return)i(the)g(function)h(in)o(v)o(ok)o ! (ed)g(b)o(y)f Fk(k)o(eyseq)h Fu(in)g(k)o(eymap)f Fk(map)p ! Fu(.)23 b(If)17 b Fk(map)g Fu(is)g Ft(NULL)p Fu(,)f(the)g(curren)o(t) ! 195 1193 y(k)o(eymap)i(is)h(used.)31 b(If)18 b Fk(t)o(yp)q(e)j ! Fu(is)e(not)g Ft(NULL)p Fu(,)f(the)g(t)o(yp)q(e)h(of)f(the)h(ob)s(ject) ! f(is)h(returned)g(in)g(the)f Ft(int)195 1247 y Fu(v)m(ariable)f(it)e(p) ! q(oin)o(ts)h(to)e(\(one)h(of)g Ft(ISFUNC)p Fu(,)f Ft(ISKMAP)p ! Fu(,)g(or)h Ft(ISMACR)p Fu(\).)1762 1347 y(F)l(unction)-1861 ! b Fi(char)20 b(**)f Fh(rl)p 312 1347 V 21 w(in)n(v)n(oking)p ! 541 1347 V 23 w(k)n(eyseqs)k Fg(\()p Ft(rl_command_func_t)13 ! b(*function)p Fg(\))195 1402 y Fu(Return)i(an)h(arra)o(y)e(of)h ! (strings)h(represen)o(ting)g(the)g(k)o(ey)f(sequences)i(used)f(to)f(in) ! o(v)o(ok)o(e)h Fk(function)g Fu(in)195 1457 y(the)f(curren)o(t)g(k)o ! (eymap.)1762 1557 y(F)l(unction)-1861 b Fi(char)20 b(**)f ! Fh(rl)p 312 1557 V 21 w(in)n(v)n(oking)p 541 1557 V 23 ! w(k)n(eyseqs)p 750 1557 V 21 w(in)p 818 1557 V 22 w(map)i ! Fg(\()p Ft(rl_command_func_t)283 1612 y(*function,)13 ! b(Keymap)i(map)p Fg(\))195 1667 y Fu(Return)g(an)h(arra)o(y)e(of)h ! (strings)h(represen)o(ting)g(the)g(k)o(ey)f(sequences)i(used)f(to)f(in) ! o(v)o(ok)o(e)h Fk(function)g Fu(in)195 1722 y(the)f(k)o(eymap)g ! Fk(map)p Fu(.)1762 1822 y(F)l(unction)-1861 b Fi(void)20 ! b Fh(rl)p 241 1822 V 21 w(function)p 467 1822 V 21 w(dump)r(er)g ! Fg(\()p Ft(int)15 b(readable)p Fg(\))195 1876 y Fu(Prin)o(t)g(the)f ! (readline)j(function)e(names)g(and)f(the)h(k)o(ey)g(sequences)g(curren) ! o(tly)g(b)q(ound)h(to)e(them)h(to)195 1931 y Ft(rl_outstream)p ! Fu(.)j(If)c Fk(readable)j Fu(is)d(non-zero,)g(the)g(list)g(is)h ! (formatted)d(in)j(suc)o(h)f(a)f(w)o(a)o(y)g(that)g(it)h(can)195 ! 1986 y(b)q(e)i(made)f(part)g(of)f(an)i Ft(inputrc)e Fu(\014le)i(and)f ! (re-read.)1762 2086 y(F)l(unction)-1861 b Fi(void)20 ! b Fh(rl)p 241 2086 V 21 w(list)p 337 2086 V 22 w(funmap)p ! 550 2086 V 18 w(names)h Fg(\()p Ft(void)p Fg(\))195 2141 ! y Fu(Prin)o(t)15 b(the)g(names)h(of)e(all)j(bindable)g(Readline)f ! (functions)g(to)f Ft(rl_outstream)p Fu(.)1762 2241 y(F)l(unction)-1861 ! b Fi(const)20 b(char)g(**)f Fh(rl)p 462 2241 V 21 w(funmap)p ! 674 2241 V 18 w(names)i Fg(\()p Ft(void)p Fg(\))195 2296 ! y Fu(Return)13 b(a)f(NULL)i(terminated)g(arra)o(y)d(of)i(kno)o(wn)g ! (function)g(names.)20 b(The)13 b(arra)o(y)f(is)h(sorted.)19 ! b(The)195 2351 y(arra)o(y)11 b(itself)j(is)f(allo)q(cated,)h(but)f(not) ! f(the)h(strings)f(inside.)21 b(Y)l(ou)13 b(should)h Ft(free\(\))d ! Fu(the)i(arra)o(y)e(when)195 2405 y(y)o(ou)k(are)g(done,)g(but)g(not)g ! (the)g(p)q(oin)o(ters.)1762 2506 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 2506 V 21 w(add)p 328 2506 ! V 20 w(funmap)p 539 2506 V 18 w(en)n(try)j Fg(\()p Ft(const)14 ! b(char)h(*name,)f(rl_command_func_t)283 2560 y(*function)p ! Fg(\))195 2615 y Fu(Add)j Fk(name)i Fu(to)d(the)g(list)h(of)f(bindable) ! j(Readline)f(command)e(names,)g(and)h(mak)o(e)f Fk(function)h ! Fu(the)195 2670 y(function)f(to)f(b)q(e)g(called)i(when)f ! Fk(name)i Fu(is)d(in)o(v)o(ok)o(ed.)p eop ! %%Page: 32 34 ! 32 33 bop 75 -58 a Fu(32)1299 b(GNU)15 b(Readline)h(Library)75 ! 149 y Fj(2.4.5)30 b(Allo)n(wing)21 b(Undoing)137 251 ! y Fu(Supp)q(orting)14 b(the)g(undo)f(command)g(is)h(a)f(painless)h ! (thing,)g(and)f(mak)o(es)g(y)o(our)f(functions)i(m)o(uc)o(h)f(more)75 ! 306 y(useful.)21 b(It)15 b(is)h(certainly)g(easy)f(to)g(try)f ! (something)i(if)f(y)o(ou)g(kno)o(w)g(y)o(ou)g(can)g(undo)h(it.)137 ! 378 y(If)21 b(y)o(our)f(function)h(simply)h(inserts)f(text)e(once,)j ! (or)e(deletes)h(text)f(once,)i(and)f(uses)f Ft(rl_insert_)75 ! 433 y(text\(\))13 b Fu(or)h Ft(rl_delete_text\(\))d Fu(to)j(do)f(it,)h ! (then)h(undoing)g(is)f(already)g(done)h(for)e(y)o(ou)h(automatically)l ! (.)137 506 y(If)d(y)o(ou)f(do)g(m)o(ultiple)i(insertions)f(or)f(m)o ! (ultiple)i(deletions,)g(or)e(an)o(y)g(com)o(bination)h(of)f(these)g(op) ! q(erations,)75 560 y(y)o(ou)19 b(should)h(group)e(them)h(together)g(in) ! o(to)g(one)g(op)q(eration.)31 b(This)20 b(is)f(done)h(with)f ! Ft(rl_begin_undo_)75 615 y(group\(\))14 b Fu(and)i Ft ! (rl_end_undo_group\(\))p Fu(.)137 688 y(The)g(t)o(yp)q(es)f(of)g(ev)o ! (en)o(ts)g(that)f(can)h(b)q(e)h(undone)g(are:)195 757 ! y Ft(enum)23 b(undo_code)g({)h(UNDO_DELETE,)e(UNDO_INSERT,)g ! (UNDO_BEGIN,)g(UNDO_END)h(};)137 830 y Fu(Notice)16 b(that)e ! Ft(UNDO_DELETE)g Fu(means)h(to)g(insert)g(some)g(text,)f(and)i ! Ft(UNDO_INSERT)d Fu(means)i(to)g(delete)75 885 y(some)e(text.)19 ! b(That)14 b(is,)g(the)g(undo)g(co)q(de)g(tells)h(what)e(to)h(undo,)g ! (not)f(ho)o(w)g(to)g(undo)i(it.)k Ft(UNDO_BEGIN)13 b ! Fu(and)75 939 y Ft(UNDO_END)h Fu(are)h(tags)f(added)i(b)o(y)f ! Ft(rl_begin_undo_group\(\))d Fu(and)k Ft(rl_end_undo_group\(\))p ! Fu(.)1762 1072 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p ! 215 1072 18 3 v 21 w(b)r(egin)p 372 1072 V 20 w(undo)p ! 517 1072 V 20 w(group)h Fg(\()p Ft(void)p Fg(\))195 1127 ! y Fu(Begins)16 b(sa)o(ving)g(undo)g(information)f(in)i(a)e(group)g ! (construct.)20 b(The)c(undo)g(information)g(usually)195 ! 1182 y(comes)21 b(from)f(calls)i(to)e Ft(rl_insert_text\(\))e ! Fu(and)j Ft(rl_delete_text\(\))p Fu(,)f(but)h(could)g(b)q(e)h(the)195 ! 1237 y(result)16 b(of)e(calls)j(to)d Ft(rl_add_undo\(\))p ! Fu(.)1762 1370 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p ! 215 1370 V 21 w(end)p 326 1370 V 20 w(undo)p 471 1370 ! V 20 w(group)h Fg(\()p Ft(void)p Fg(\))195 1424 y Fu(Closes)15 ! b(the)f(curren)o(t)h(undo)g(group)f(started)g(with)g ! Ft(rl_begin_undo_group)f(\(\))p Fu(.)19 b(There)c(should)195 ! 1479 y(b)q(e)h(one)f(call)i(to)d Ft(rl_end_undo_group\(\))f ! Fu(for)h(eac)o(h)h(call)i(to)d Ft(rl_begin_undo_group\(\))p ! Fu(.)1762 1612 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p ! 241 1612 V 21 w(add)p 354 1612 V 20 w(undo)i Fg(\()p ! Ft(enum)14 b(undo_code)g(what,)g(int)h(start,)g(int)f(end,)h(char)283 ! 1667 y(*text)p Fg(\))195 1722 y Fu(Remem)o(b)q(er)i(ho)o(w)f(to)h(undo) ! g(an)g(ev)o(en)o(t)g(\(according)g(to)g Fk(what)q Fu(\).)24 ! b(The)17 b(a\013ected)g(text)f(runs)i(from)195 1776 y ! Fk(start)d Fu(to)g Fk(end)p Fu(,)g(and)g(encompasses)h ! Fk(text)p Fu(.)1762 1909 y(F)l(unction)-1861 b Fi(void)20 ! b Fh(rl)p 241 1909 V 21 w(free)p 356 1909 V 20 w(undo)p ! 501 1909 V 20 w(list)k Fg(\()p Ft(void)p Fg(\))195 1964 ! y Fu(F)l(ree)15 b(the)h(existing)g(undo)f(list.)1762 ! 2097 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2097 ! V 21 w(do)p 297 2097 V 20 w(undo)i Fg(\()p Ft(void)p ! Fg(\))195 2152 y Fu(Undo)12 b(the)f(\014rst)g(thing)h(on)g(the)f(undo)h ! (list.)19 b(Returns)11 b Ft(0)h Fu(if)g(there)f(w)o(as)g(nothing)h(to)e ! (undo,)j(non-zero)195 2206 y(if)j(something)f(w)o(as)f(undone.)137 ! 2309 y(Finally)l(,)j(if)f(y)o(ou)f(neither)i(insert)f(nor)f(delete)i ! (text,)e(but)g(directly)i(mo)q(dify)f(the)g(existing)g(text)g(\(e.g.,) ! 75 2364 y(c)o(hange)j(its)h(case\),)g(call)g Ft(rl_modifying\(\))e ! Fu(once,)i(just)f(b)q(efore)h(y)o(ou)f(mo)q(dify)h(the)f(text.)32 ! b(Y)l(ou)20 b(m)o(ust)75 2419 y(supply)c(the)g(indices)h(of)e(the)g ! (text)g(range)g(that)f(y)o(ou)h(are)g(going)g(to)g(mo)q(dify)l(.)1762 ! 2552 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2552 ! V 21 w(mo)r(difying)h Fg(\()p Ft(int)15 b(start,)f(int)h(end)p ! Fg(\))195 2606 y Fu(T)l(ell)22 b(Readline)f(to)e(sa)o(v)o(e)h(the)g ! (text)g(b)q(et)o(w)o(een)g Fk(start)g Fu(and)g Fk(end)j ! Fu(as)c(a)h(single)h(undo)g(unit.)35 b(It)20 b(is)195 ! 2661 y(assumed)15 b(that)g(y)o(ou)g(will)i(subsequen)o(tly)f(mo)q(dify) ! g(that)e(text.)p eop ! %%Page: 33 35 ! 33 34 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(33)75 149 y Fj(2.4.6)30 b(Redispla)n(y)1762 ! 302 y Fu(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 ! 302 18 3 v 21 w(redispla)n(y)k Fg(\()p Ft(void)p Fg(\))195 ! 356 y Fu(Change)19 b(what's)f(displa)o(y)o(ed)i(on)f(the)g(screen)g(to) ! f(re\015ect)i(the)f(curren)o(t)f(con)o(ten)o(ts)h(of)f ! Ft(rl_line_)195 411 y(buffer)p Fu(.)1762 534 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 534 V 21 w(forced)p 390 534 ! V 20 w(up)r(date)p 584 534 V 20 w(displa)n(y)k Fg(\()p ! Ft(void)p Fg(\))195 589 y Fu(F)l(orce)c(the)g(line)h(to)e(b)q(e)i(up)q ! (dated)f(and)g(redispla)o(y)o(ed,)i(whether)e(or)g(not)f(Readline)i ! (thinks)g(the)195 644 y(screen)16 b(displa)o(y)g(is)g(correct.)1762 ! 767 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 767 ! V 21 w(on)p 297 767 V 20 w(new)p 416 767 V 21 w(line)k ! Fg(\()p Ft(void)p Fg(\))195 822 y Fu(T)l(ell)16 b(the)f(up)q(date)h ! (functions)g(that)e(w)o(e)g(ha)o(v)o(e)h(mo)o(v)o(ed)f(on)o(to)g(a)h ! (new)g(\(empt)o(y\))f(line,)i(usually)h(after)195 877 ! y(ouputting)f(a)e(newline.)1762 1000 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 1000 V 21 w(on)p 297 1000 V ! 20 w(new)p 416 1000 V 21 w(line)p 525 1000 V 22 w(with)p ! 657 1000 V 22 w(prompt)h Fg(\()p Ft(void)p Fg(\))195 ! 1055 y Fu(T)l(ell)14 b(the)e(up)q(date)h(functions)g(that)f(w)o(e)g(ha) ! o(v)o(e)g(mo)o(v)o(ed)f(on)o(to)h(a)g(new)g(line,)i(with)f ! Fk(rl)p 1556 1055 14 2 v 17 w(prompt)g Fu(already)195 ! 1109 y(displa)o(y)o(ed.)21 b(This)15 b(could)g(b)q(e)g(used)g(b)o(y)f ! (applications)i(that)e(w)o(an)o(t)f(to)h(output)g(the)g(prompt)g ! (string)195 1164 y(themselv)o(es,)g(but)g(still)h(need)g(Readline)g(to) ! e(kno)o(w)g(the)h(prompt)f(string)h(length)g(for)f(redispla)o(y)l(.)21 ! b(It)195 1219 y(should)16 b(b)q(e)g(used)g(after)e(setting)i ! Fk(rl)p 795 1219 V 16 w(already)p 956 1219 V 17 w(prompted)p ! Fu(.)1762 1342 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p ! 215 1342 18 3 v 21 w(reset)p 357 1342 V 20 w(line)p 465 ! 1342 V 23 w(state)j Fg(\()p Ft(void)p Fg(\))195 1397 ! y Fu(Reset)17 b(the)g(displa)o(y)i(state)d(to)h(a)g(clean)h(state)f ! (and)g(redispla)o(y)i(the)e(curren)o(t)g(line)i(starting)e(on)g(a)195 ! 1452 y(new)e(line.)1762 1575 y(F)l(unction)-1861 b Fi(int)20 ! b Fh(rl)p 215 1575 V 21 w(crlf)j Fg(\()p Ft(void)p Fg(\))195 ! 1630 y Fu(Mo)o(v)o(e)14 b(the)h(cursor)g(to)g(the)g(start)f(of)h(the)g ! (next)g(screen)h(line.)1762 1753 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 1753 V 21 w(sho)n(w)p 359 1753 ! V 20 w(c)n(har)j Fg(\()p Ft(int)14 b(c)p Fg(\))195 1807 ! y Fu(Displa)o(y)j(c)o(haracter)e Fk(c)20 b Fu(on)c Ft(rl_outstream)p ! Fu(.)21 b(If)c(Readline)g(has)f(not)g(b)q(een)i(set)e(to)f(displa)o(y)j ! (meta)195 1862 y(c)o(haracters)12 b(directly)l(,)j(this)e(will)i(con)o ! (v)o(ert)d(meta)h(c)o(haracters)f(to)g(a)h(meta-pre\014xed)g(k)o(ey)g ! (sequence.)195 1917 y(This)j(is)f(in)o(tended)i(for)e(use)g(b)o(y)g ! (applications)i(whic)o(h)f(wish)g(to)f(do)g(their)g(o)o(wn)g(redispla)o ! (y)l(.)1762 2040 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p ! 215 2040 V 21 w(message)g Fg(\()p Ft(const)14 b(char)h(*,)g(...)p ! Fg(\))195 2095 y Fu(The)c(argumen)o(ts)e(are)h(a)g(format)f(string)h ! (as)g(w)o(ould)h(b)q(e)g(supplied)i(to)c Ft(printf)p ! Fu(,)h(p)q(ossibly)i(con)o(taining)195 2150 y(con)o(v)o(ersion)22 ! b(sp)q(eci\014cations)i(suc)o(h)f(as)e(`)p Ft(\045d)p ! Fu(',)i(and)f(an)o(y)g(additional)h(argumen)o(ts)e(necessary)i(to)195 ! 2205 y(satisfy)d(the)h(con)o(v)o(ersion)g(sp)q(eci\014cations.)38 ! b(The)21 b(resulting)h(string)e(is)i(displa)o(y)o(ed)g(in)f(the)g ! Fk(ec)o(ho)195 2259 y(area)p Fu(.)e(The)d(ec)o(ho)f(area)g(is)g(also)g ! (used)h(to)f(displa)o(y)h(n)o(umeric)g(argumen)o(ts)f(and)g(searc)o(h)g ! (strings.)1762 2382 y(F)l(unction)-1861 b Fi(int)20 b ! Fh(rl)p 215 2382 V 21 w(clear)p 354 2382 V 21 w(message)h ! Fg(\()p Ft(void)p Fg(\))195 2437 y Fu(Clear)15 b(the)h(message)e(in)i ! (the)g(ec)o(ho)f(area.)1762 2560 y(F)l(unction)-1861 ! b Fi(void)20 b Fh(rl)p 241 2560 V 21 w(sa)n(v)n(e)p 365 ! 2560 V 21 w(prompt)h Fg(\()p Ft(void)p Fg(\))195 2615 ! y Fu(Sa)o(v)o(e)g(the)h(lo)q(cal)g(Readline)h(prompt)e(displa)o(y)i ! (state)e(in)h(preparation)f(for)g(displa)o(ying)j(a)d(new)195 ! 2670 y(message)15 b(in)h(the)f(message)g(area)f(with)i ! Ft(rl_message\(\))p Fu(.)p eop ! %%Page: 34 36 ! 34 35 bop 75 -58 a Fu(34)1299 b(GNU)15 b(Readline)h(Library)1762 ! 149 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 149 ! 18 3 v 21 w(restore)p 436 149 V 20 w(prompt)g Fg(\()p ! Ft(void)p Fg(\))195 204 y Fu(Restore)g(the)i(lo)q(cal)g(Readline)h ! (prompt)e(displa)o(y)h(state)f(sa)o(v)o(ed)g(b)o(y)g(the)g(most)g ! (recen)o(t)g(call)i(to)195 259 y Ft(rl_save_prompt)p ! Fu(.)1762 369 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p ! 215 369 V 21 w(expand)p 416 369 V 20 w(prompt)h Fg(\()p ! Ft(char)14 b(*prompt)p Fg(\))195 423 y Fu(Expand)22 b(an)o(y)f(sp)q ! (ecial)i(c)o(haracter)e(sequences)h(in)g Fk(prompt)g ! Fu(and)g(set)f(up)h(the)f(lo)q(cal)i(Readline)195 478 ! y(prompt)17 b(redispla)o(y)i(v)m(ariables.)30 b(This)18 ! b(function)h(is)f(called)i(b)o(y)e Ft(readline\(\))p ! Fu(.)26 b(It)18 b(ma)o(y)f(also)h(b)q(e)195 533 y(called)12 ! b(to)e(expand)h(the)g(primary)g(prompt)f(if)h(the)f Ft ! (rl_on_new_line_with_prompt\(\))d Fu(function)195 588 ! y(or)12 b Ft(rl_already_prompted)e Fu(v)m(ariable)k(is)g(used.)19 ! b(It)13 b(returns)g(the)f(n)o(um)o(b)q(er)i(of)e(visible)j(c)o ! (haracters)195 643 y(on)g(the)g(last)h(line)g(of)f(the)g(\(p)q(ossibly) ! i(m)o(ulti-line\))g(prompt.)1762 752 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 752 V 21 w(set)p 307 752 V ! 20 w(prompt)h Fg(\()p Ft(const)14 b(char)h(*prompt)p ! Fg(\))195 807 y Fu(Mak)o(e)e(Readline)i(use)e Fk(prompt)h ! Fu(for)f(subsequen)o(t)h(redispla)o(y)l(.)21 b(This)14 ! b(calls)g Ft(rl_expand_prompt\(\))195 862 y Fu(to)h(expand)g(the)h ! (prompt)e(and)i(sets)f Ft(rl_prompt)f Fu(to)g(the)h(result.)75 ! 970 y Fj(2.4.7)30 b(Mo)r(difying)20 b(T)-5 b(ext)1762 ! 1108 y Fu(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 ! 1108 V 21 w(insert)p 378 1108 V 21 w(text)k Fg(\()p Ft(const)14 ! b(char)g(*text)p Fg(\))195 1163 y Fu(Insert)i Fk(text)g ! Fu(in)o(to)g(the)g(line)h(at)f(the)g(curren)o(t)f(cursor)h(p)q ! (osition.)22 b(Returns)16 b(the)g(n)o(um)o(b)q(er)g(of)f(c)o(har-)195 ! 1218 y(acters)g(inserted.)1762 1328 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 1328 V 21 w(delete)p 383 1328 ! V 22 w(text)k Fg(\()p Ft(int)14 b(start,)h(int)f(end)p ! Fg(\))195 1382 y Fu(Delete)19 b(the)g(text)g(b)q(et)o(w)o(een)g ! Fk(start)g Fu(and)g Fk(end)i Fu(in)f(the)f(curren)o(t)f(line.)33 ! b(Returns)18 b(the)h(n)o(um)o(b)q(er)g(of)195 1437 y(c)o(haracters)14 ! b(deleted.)1762 1547 y(F)l(unction)-1861 b Fi(char)20 ! b(*)f Fh(rl)p 286 1547 V 21 w(cop)n(y)p 421 1547 V 21 ! w(text)24 b Fg(\()p Ft(int)14 b(start,)h(int)g(end)p ! Fg(\))195 1602 y Fu(Return)g(a)g(cop)o(y)g(of)g(the)g(text)f(b)q(et)o ! (w)o(een)i Fk(start)f Fu(and)g Fk(end)j Fu(in)e(the)f(curren)o(t)g ! (line.)1762 1711 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p ! 215 1711 V 21 w(kill)p 311 1711 V 23 w(text)k Fg(\()p ! Ft(int)14 b(start,)h(int)g(end)p Fg(\))195 1766 y Fu(Cop)o(y)i(the)g ! (text)f(b)q(et)o(w)o(een)i Fk(start)f Fu(and)g Fk(end)i ! Fu(in)f(the)f(curren)o(t)g(line)i(to)e(the)g(kill)i(ring,)e(app)q ! (ending)195 1821 y(or)f(prep)q(ending)k(to)c(the)h(last)g(kill)i(if)e ! (the)g(last)g(command)g(w)o(as)f(a)h(kill)i(command.)25 ! b(The)17 b(text)f(is)195 1876 y(deleted.)26 b(If)17 b ! Fk(start)g Fu(is)g(less)g(than)g Fk(end)p Fu(,)g(the)g(text)g(is)g(app) ! q(ended,)h(otherwise)f(prep)q(ended.)27 b(If)17 b(the)195 ! 1930 y(last)e(command)g(w)o(as)g(not)f(a)h(kill,)i(a)e(new)g(kill)i ! (ring)f(slot)f(is)h(used.)1762 2040 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 2040 V 21 w(push)p 355 2040 ! V 19 w(macro)p 529 2040 V 19 w(input)k Fg(\()p Ft(char)14 ! b(*macro)p Fg(\))195 2095 y Fu(Cause)g Fk(macro)i Fu(to)d(b)q(e)i ! (inserted)g(in)o(to)f(the)g(line,)i(as)e(if)g(it)h(had)f(b)q(een)h(in)o ! (v)o(ok)o(ed)g(b)o(y)f(a)g(k)o(ey)g(b)q(ound)h(to)195 ! 2150 y(a)g(macro.)k(Not)c(esp)q(ecially)i(useful;)f(use)g ! Ft(rl_insert_text\(\))d Fu(instead.)75 2257 y Fj(2.4.8)30 ! b(Character)21 b(Input)1762 2396 y Fu(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 2396 V 21 w(read)p 346 2396 ! V 20 w(k)n(ey)k Fg(\()p Ft(void)p Fg(\))195 2451 y Fu(Return)14 ! b(the)h(next)g(c)o(haracter)f(a)o(v)m(ailable)i(from)e(Readline's)i ! (curren)o(t)f(input)g(stream.)k(This)d(han-)195 2506 ! y(dles)f(input)g(inserted)f(in)o(to)g(the)g(input)h(stream)e(via)h ! Fk(rl)p 1117 2506 14 2 v 17 w(p)q(ending)p 1290 2506 ! V 18 w(input)i Fu(\(see)e(Section)h(2.3)e([Read-)195 ! 2560 y(line)21 b(V)l(ariables],)g(page)f(24\))f(and)h ! Ft(rl_stuff_char\(\))p Fu(,)e(macros,)h(and)h(c)o(haracters)f(read)h ! (from)195 2615 y(the)d(k)o(eyb)q(oard.)25 b(While)19 ! b(w)o(aiting)e(for)f(input,)j(this)e(function)h(will)h(call)f(an)o(y)e ! (function)i(assigned)195 2670 y(to)d(the)g Ft(rl_event_hook)e ! Fu(v)m(ariable.)p eop ! %%Page: 35 37 ! 35 36 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(35)1762 149 y(F)l(unction)-1861 b Fi(int)20 ! b Fh(rl)p 215 149 18 3 v 21 w(getc)j Fg(\()p Ft(FILE)14 ! b(*stream)p Fg(\))195 204 y Fu(Return)c(the)h(next)g(c)o(haracter)f(a)o ! (v)m(ailable)i(from)e Fk(stream)p Fu(,)g(whic)o(h)i(is)f(assumed)f(to)g ! (b)q(e)i(the)e(k)o(eyb)q(oard.)1762 342 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 342 V 21 w(stu\013)p 346 342 ! V 20 w(c)n(har)j Fg(\()p Ft(int)15 b(c)p Fg(\))195 397 ! y Fu(Insert)i Fk(c)i Fu(in)o(to)d(the)h(Readline)h(input)f(stream.)23 ! b(It)16 b(will)i(b)q(e)f Ft(")p Fu(read)p Ft(")g Fu(b)q(efore)f ! (Readline)i(attempts)195 452 y(to)13 b(read)g(c)o(haracters)g(from)f ! (the)i(terminal)g(with)g Ft(rl_read_key\(\))p Fu(.)j(Up)d(to)f(512)f(c) ! o(haracters)h(ma)o(y)195 507 y(b)q(e)j(pushed)g(bac)o(k.)k ! Ft(rl_stuff_char)14 b Fu(returns)h(1)g(if)h(the)f(c)o(haracter)g(w)o ! (as)f(successfully)j(inserted;)195 562 y(0)e(otherwise.)1762 ! 700 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 700 ! V 21 w(execute)p 423 700 V 22 w(next)j Fg(\()p Ft(int)15 ! b(c)p Fg(\))195 754 y Fu(Mak)o(e)i Fk(c)k Fu(b)q(e)d(the)g(next)g ! (command)g(to)f(b)q(e)i(executed)f(when)h Ft(rl_read_key\(\))d ! Fu(is)i(called.)29 b(This)195 809 y(sets)15 b Fk(rl)p ! 317 809 14 2 v 17 w(p)q(ending)p 490 809 V 18 w(input)p ! Fu(.)1762 947 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p ! 215 947 18 3 v 21 w(clear)p 354 947 V 21 w(p)r(ending)p ! 575 947 V 21 w(input)j Fg(\()p Ft(void)p Fg(\))195 1002 ! y Fu(Unset)f Fk(rl)p 365 1002 14 2 v 16 w(p)q(ending)p ! 537 1002 V 19 w(input)p Fu(,)h(e\013ectiv)o(ely)g(negating)e(the)h ! (e\013ect)f(of)g(an)o(y)h(previous)g(call)h(to)d Ft(rl_)195 ! 1057 y(execute_next\(\))p Fu(.)29 b(This)19 b(w)o(orks)f(only)h(if)h ! (the)e(p)q(ending)j(input)f(has)f(not)f(already)h(b)q(een)h(read)195 ! 1112 y(with)c Ft(rl_read_key\(\))p Fu(.)1762 1250 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 1250 18 3 v 21 w(set)p 307 ! 1250 V 20 w(k)n(eyb)r(oard)p 558 1250 V 21 w(input)p ! 712 1250 V 21 w(timeout)i Fg(\()p Ft(int)15 b(u)p Fg(\))195 ! 1305 y Fu(While)21 b(w)o(aiting)g(for)e(k)o(eyb)q(oard)h(input)h(in)g ! Ft(rl_read_key\(\))p Fu(,)e(Readline)i(will)h(w)o(ait)e(for)f ! Fk(u)h Fu(mi-)195 1360 y(croseconds)h(for)e(input)j(b)q(efore)f ! (calling)h(an)o(y)e(function)h(assigned)g(to)f Ft(rl_event_hook)p ! Fu(.)34 b(The)195 1414 y(default)16 b(w)o(aiting)f(p)q(erio)q(d)i(is)e ! (one-ten)o(th)h(of)e(a)h(second.)21 b(Returns)14 b(the)i(old)f(timeout) ! h(v)m(alue.)75 1540 y Fj(2.4.9)30 b(T)-5 b(erminal)20 ! b(Managemen)n(t)1762 1708 y Fu(F)l(unction)-1861 b Fi(void)20 ! b Fh(rl)p 241 1708 V 21 w(prep)p 376 1708 V 20 w(terminal)j ! Fg(\()p Ft(int)14 b(meta_flag)p Fg(\))195 1762 y Fu(Mo)q(dify)22 ! b(the)f(terminal)h(settings)f(for)g(Readline's)h(use,)h(so)d ! Ft(readline\(\))g Fu(can)i(read)f(a)g(single)195 1817 ! y(c)o(haracter)15 b(at)g(a)g(time)i(from)d(the)i(k)o(eyb)q(oard.)22 ! b(The)16 b Fk(meta)p 1192 1817 14 2 v 15 w(\015ag)k Fu(argumen)o(t)15 ! b(should)h(b)q(e)h(non-zero)195 1872 y(if)f(Readline)g(should)g(read)f ! (eigh)o(t-bit)i(input.)1762 2010 y(F)l(unction)-1861 ! b Fi(void)20 b Fh(rl)p 241 2010 18 3 v 21 w(deprep)p ! 434 2010 V 20 w(terminal)j Fg(\()p Ft(void)p Fg(\))195 ! 2065 y Fu(Undo)16 b(the)g(e\013ects)f(of)h Ft(rl_prep_terminal\(\))p ! Fu(,)d(lea)o(ving)k(the)e(terminal)i(in)g(the)e(state)g(in)i(whic)o(h) ! 195 2120 y(it)e(w)o(as)g(b)q(efore)g(the)h(most)e(recen)o(t)h(call)i ! (to)d Ft(rl_prep_terminal\(\))p Fu(.)1762 2258 y(F)l(unction)-1861 ! b Fi(void)20 b Fh(rl)p 241 2258 V 21 w(tt)n(y)p 334 2258 ! V 22 w(set)p 427 2258 V 20 w(default)p 620 2258 V 21 ! w(bindings)k Fg(\()p Ft(Keymap)14 b(kmap)p Fg(\))195 ! 2313 y Fu(Read)k(the)h(op)q(erating)f(system's)g(terminal)h(editing)h ! (c)o(haracters)e(\(as)f(w)o(ould)i(b)q(e)g(displa)o(y)o(ed)h(b)o(y)195 ! 2367 y Ft(stty)p Fu(\))14 b(to)h(their)h(Readline)g(equiv)m(alen)o(ts.) ! 22 b(The)15 b(bindings)i(are)e(p)q(erformed)g(in)h Fk(kmap)p ! Fu(.)1762 2506 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p ! 215 2506 V 21 w(reset)p 357 2506 V 20 w(terminal)j Fg(\()p ! Ft(const)15 b(char)f(*terminal_name)p Fg(\))195 2560 ! y Fu(Reinitialize)h(Readline's)e(idea)g(of)f(the)g(terminal)h(settings) ! g(using)g Fk(terminal)p 1491 2560 14 2 v 17 w(name)h ! Fu(as)e(the)h(termi-)195 2615 y(nal)k(t)o(yp)q(e)f(\(e.g.,)f ! Ft(vt100)p Fu(\).)21 b(If)c Fk(terminal)p 878 2615 V ! 17 w(name)i Fu(is)d Ft(NULL)p Fu(,)g(the)g(v)m(alue)h(of)f(the)g ! Ft(TERM)g Fu(en)o(vironmen)o(t)195 2670 y(v)m(ariable)h(is)e(used.)p eop ! %%Page: 36 38 ! 36 37 bop 75 -58 a Fu(36)1299 b(GNU)15 b(Readline)h(Library)75 ! 149 y Fj(2.4.10)29 b(Utilit)n(y)22 b(F)-5 b(unctions)1762 ! 287 y Fu(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 ! 287 18 3 v 21 w(replace)p 438 287 V 22 w(line)k Fg(\()p ! Ft(const)14 b(char)h(*text,)f(int)h(clear_undo)p Fg(\))195 ! 342 y Fu(Replace)20 b(the)g(con)o(ten)o(ts)f(of)g Ft(rl_line_buffer)f ! Fu(with)i Fk(text)p Fu(.)33 b(The)20 b(p)q(oin)o(t)g(and)g(mark)f(are)h ! (pre-)195 397 y(serv)o(ed,)13 b(if)h(p)q(ossible.)21 ! b(If)13 b Fk(clear)p 712 397 14 2 v 17 w(undo)j Fu(is)d(non-zero,)h ! (the)f(undo)g(list)h(asso)q(ciated)g(with)f(the)g(curren)o(t)195 ! 452 y(line)k(is)f(cleared.)1762 561 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 561 18 3 v 21 w(extend)p 404 ! 561 V 21 w(line)p 513 561 V 22 w(bu\013er)j Fg(\()p Ft(int)15 ! b(len)p Fg(\))195 616 y Fu(Ensure)g(that)g Ft(rl_line_buffer)e ! Fu(has)i(enough)g(space)h(to)e(hold)i Fk(len)g Fu(c)o(haracters,)e(p)q ! (ossibly)i(real-)195 670 y(lo)q(cating)g(it)f(if)h(necessary)l(.)1762 ! 779 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 779 ! V 21 w(initiali)q(z)q(e)26 b Fg(\()p Ft(void)p Fg(\))195 ! 834 y Fu(Initialize)21 b(or)d(re-initialize)k(Readline's)d(in)o(ternal) ! h(state.)28 b(It's)18 b(not)g(strictly)h(necessary)g(to)f(call)195 ! 889 y(this;)d Ft(readline\(\))f Fu(calls)i(it)g(b)q(efore)f(reading)h ! (an)o(y)f(input.)1762 998 y(F)l(unction)-1861 b Fi(int)20 ! b Fh(rl)p 215 998 V 21 w(ding)j Fg(\()p Ft(void)p Fg(\))195 ! 1053 y Fu(Ring)15 b(the)g(terminal)h(b)q(ell,)h(ob)q(eying)f(the)g ! (setting)f(of)g Ft(bell-style)p Fu(.)1762 1162 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 1162 V 21 w(alphab)r(etic)k ! Fg(\()p Ft(int)14 b(c)p Fg(\))195 1217 y Fu(Return)h(1)g(if)g ! Fk(c)j Fu(is)e(an)f(alphab)q(etic)i(c)o(haracter.)1762 ! 1325 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 1325 ! V 21 w(displa)n(y)p 435 1325 V 22 w(matc)n(h)p 611 1325 ! V 20 w(list)25 b Fg(\()p Ft(char)14 b(**matches,)g(int)g(len,)h(int)g ! (max)p Fg(\))195 1380 y Fu(A)i(con)o(v)o(enience)i(function)f(for)f ! (displa)o(ying)i(a)e(list)h(of)e(strings)h(in)i(columnar)e(format)f(on) ! h(Read-)195 1435 y(line's)h(output)f(stream.)23 b Ft(matches)16 ! b Fu(is)h(the)g(list)h(of)e(strings,)h(in)g(argv)f(format,)g(suc)o(h)h ! (as)f(a)h(list)g(of)195 1490 y(completion)c(matc)o(hes.)19 ! b Ft(len)11 b Fu(is)i(the)f(n)o(um)o(b)q(er)h(of)e(strings)h(in)h ! Ft(matches)p Fu(,)f(and)g Ft(max)g Fu(is)g(the)h(length)f(of)195 ! 1545 y(the)h(longest)g(string)g(in)h Ft(matches)p Fu(.)19 ! b(This)13 b(function)h(uses)f(the)h(setting)f(of)f Ft ! (print-completions-)195 1599 y(horizontally)k Fu(to)i(select)h(ho)o(w)e ! (the)i(matc)o(hes)e(are)h(displa)o(y)o(ed)h(\(see)g(Section)g(1.3.1)d ! ([Readline)195 1654 y(Init)g(File)g(Syn)o(tax],)e(page)h(4\).)137 ! 1742 y(The)i(follo)o(wing)f(are)g(implemen)o(ted)i(as)e(macros,)f ! (de\014ned)i(in)g Ft(chardefs.h)p Fu(.)k(Applications)d(should)75 ! 1796 y(refrain)d(from)g(using)h(them.)1762 1905 y(F)l(unction)-1861 ! b Fi(int)p 176 1905 V 40 w Fh(rl)p 235 1905 V 21 w(upp)r(ercase)p ! 506 1905 V 20 w(p)23 b Fg(\()p Ft(int)14 b(c)p Fg(\))195 ! 1960 y Fu(Return)h(1)g(if)g Fk(c)j Fu(is)e(an)f(upp)q(ercase)i(alphab)q ! (etic)f(c)o(haracter.)1762 2069 y(F)l(unction)-1861 b ! Fi(int)p 176 2069 V 40 w Fh(rl)p 235 2069 V 21 w(lo)n(w)n(ercase)p ! 489 2069 V 23 w(p)22 b Fg(\()p Ft(int)15 b(c)p Fg(\))195 ! 2124 y Fu(Return)g(1)g(if)g Fk(c)j Fu(is)e(a)f(lo)o(w)o(ercase)g ! (alphab)q(etic)i(c)o(haracter.)1762 2233 y(F)l(unction)-1861 ! b Fi(int)p 176 2233 V 40 w Fh(rl)p 235 2233 V 21 w(digit)p ! 369 2233 V 22 w(p)23 b Fg(\()p Ft(int)14 b(c)p Fg(\))195 ! 2288 y Fu(Return)h(1)g(if)g Fk(c)j Fu(is)e(a)f(n)o(umeric)h(c)o ! (haracter.)1762 2397 y(F)l(unction)-1861 b Fi(int)p 176 ! 2397 V 40 w Fh(rl)p 235 2397 V 21 w(to)p 307 2397 V 21 ! w(upp)r(er)21 b Fg(\()p Ft(int)15 b(c)p Fg(\))195 2451 ! y Fu(If)d Fk(c)j Fu(is)d(a)g(lo)o(w)o(ercase)f(alphab)q(etic)j(c)o ! (haracter,)d(return)h(the)g(corresp)q(onding)h(upp)q(ercase)g(c)o ! (haracter.)1762 2560 y(F)l(unction)-1861 b Fi(int)p 176 ! 2560 V 40 w Fh(rl)p 235 2560 V 21 w(to)p 307 2560 V 21 ! w(lo)n(w)n(er)24 b Fg(\()p Ft(int)15 b(c)p Fg(\))195 ! 2615 y Fu(If)g Fk(c)i Fu(is)e(an)f(upp)q(ercase)i(alphab)q(etic)g(c)o ! (haracter,)e(return)g(the)h(corresp)q(onding)g(lo)o(w)o(ercase)f(c)o ! (harac-)195 2670 y(ter.)p eop ! %%Page: 37 39 ! 37 38 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(37)1762 149 y(F)l(unction)-1861 b Fi(int)p ! 176 149 18 3 v 40 w Fh(rl)p 235 149 V 21 w(digit)p 369 ! 149 V 22 w(v)m(alue)24 b Fg(\()p Ft(int)15 b(c)p Fg(\))195 ! 204 y Fu(If)g Fk(c)k Fu(is)c(a)g(n)o(um)o(b)q(er,)g(return)g(the)h(v)m ! (alue)g(it)g(represen)o(ts.)75 325 y Fj(2.4.11)29 b(Miscellaneous)22 ! b(F)-5 b(unctions)1762 484 y Fu(F)l(unction)-1861 b Fi(int)20 ! b Fh(rl)p 215 484 V 21 w(macro)p 391 484 V 19 w(bind)j ! Fg(\()p Ft(const)14 b(char)g(*keyseq,)h(const)f(char)h(*macro,)283 ! 539 y(Keymap)f(map)p Fg(\))195 593 y Fu(Bind)f(the)f(k)o(ey)f(sequence) ! i Fk(k)o(eyseq)g Fu(to)e(in)o(v)o(ok)o(e)g(the)h(macro)f ! Fk(macro)p Fu(.)18 b(The)12 b(binding)h(is)f(p)q(erformed)g(in)195 ! 648 y Fk(map)p Fu(.)19 b(When)14 b Fk(k)o(eyseq)h Fu(is)f(in)o(v)o(ok)o ! (ed,)g(the)g Fk(macro)i Fu(will)f(b)q(e)f(inserted)h(in)o(to)f(the)g ! (line.)21 b(This)14 b(function)195 703 y(is)i(deprecated;)f(use)h ! Ft(rl_generic_bind\(\))d Fu(instead.)1762 833 y(F)l(unction)-1861 ! b Fi(void)20 b Fh(rl)p 241 833 V 21 w(macro)p 417 833 ! V 19 w(dump)r(er)g Fg(\()p Ft(int)15 b(readable)p Fg(\))195 ! 888 y Fu(Prin)o(t)f(the)f(k)o(ey)h(sequences)g(b)q(ound)h(to)e(macros)g ! (and)g(their)h(v)m(alues,)h(using)f(the)g(curren)o(t)g(k)o(eymap,)195 ! 943 y(to)h Ft(rl_outstream)p Fu(.)k(If)d Fk(readable)j ! Fu(is)d(non-zero,)g(the)g(list)g(is)g(formatted)f(in)h(suc)o(h)g(a)f(w) ! o(a)o(y)g(that)g(it)195 997 y(can)g(b)q(e)h(made)f(part)g(of)g(an)g ! Ft(inputrc)f Fu(\014le)i(and)g(re-read.)1762 1127 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 1127 V 21 w(v)m(ariable)p 431 ! 1127 V 22 w(bind)j Fg(\()p Ft(const)14 b(char)g(*variable,)g(const)h ! (char)f(*value)p Fg(\))195 1182 y Fu(Mak)o(e)22 b(the)g(Readline)i(v)m ! (ariable)g Fk(v)m(ariable)j Fu(ha)o(v)o(e)22 b Fk(v)m(alue)p ! Fu(.)43 b(This)23 b(b)q(eha)o(v)o(es)g(as)f(if)h(the)f(readline)195 ! 1237 y(command)12 b(`)p Ft(set)j Fk(v)m(ariable)k(v)m(alue)s ! Fu(')12 b(had)h(b)q(een)g(executed)h(in)f(an)f Ft(inputrc)g ! Fu(\014le)h(\(see)f(Section)i(1.3.1)195 1292 y([Readline)i(Init)g(File) ! h(Syn)o(tax],)d(page)h(4\).)1762 1422 y(F)l(unction)-1861 ! b Fi(void)20 b Fh(rl)p 241 1422 V 21 w(v)m(ariable)p ! 457 1422 V 22 w(dump)r(er)g Fg(\()p Ft(int)14 b(readable)p ! Fg(\))195 1476 y Fu(Prin)o(t)g(the)h(readline)h(v)m(ariable)f(names)g ! (and)f(their)h(curren)o(t)f(v)m(alues)i(to)d Ft(rl_outstream)p ! Fu(.)18 b(If)d Fk(read-)195 1531 y(able)20 b Fu(is)e(non-zero,)f(the)g ! (list)h(is)g(formatted)e(in)h(suc)o(h)h(a)e(w)o(a)o(y)g(that)h(it)g ! (can)g(b)q(e)h(made)f(part)f(of)h(an)195 1586 y Ft(inputrc)d ! Fu(\014le)i(and)g(re-read.)1762 1716 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 1716 V 21 w(set)p 307 1716 ! V 20 w(paren)p 469 1716 V 20 w(blink)p 613 1716 V 23 ! w(timeout)i Fg(\()p Ft(int)15 b(u)p Fg(\))195 1771 y ! Fu(Set)e(the)f(time)h(in)o(terv)m(al)h(\(in)f(microseconds\))g(that)f ! (Readline)i(w)o(aits)e(when)h(sho)o(wing)f(a)h(balancing)195 ! 1826 y(c)o(haracter)h(when)i Ft(blink-matching-paren)d ! Fu(has)i(b)q(een)h(enabled.)1762 1956 y(F)l(unction)-1861 ! b Fi(char)20 b(*)f Fh(rl)p 286 1956 V 21 w(get)p 384 ! 1956 V 21 w(termcap)j Fg(\()p Ft(const)14 b(char)g(*cap)p ! Fg(\))195 2010 y Fu(Retriev)o(e)f(the)h(string)f(v)m(alue)i(of)e(the)h ! (termcap)f(capabilit)o(y)i Fk(cap)p Fu(.)k(Readline)c(fetc)o(hes)f(the) ! f(termcap)195 2065 y(en)o(try)j(for)h(the)f(curren)o(t)h(terminal)h ! (name)e(and)h(uses)g(those)g(capabilities)i(to)d(mo)o(v)o(e)g(around)h ! (the)195 2120 y(screen)11 b(line)h(and)f(p)q(erform)f(other)g ! (terminal-sp)q(eci\014c)k(op)q(erations,)d(lik)o(e)h(erasing)e(a)h ! (line.)20 b(Readline)195 2175 y(do)q(es)e(not)f(use)h(all)g(of)f(a)g ! (terminal's)h(capabilities,)i(and)e(this)g(function)g(will)h(return)f ! (v)m(alues)h(for)195 2230 y(only)d(those)f(capabilities)i(Readline)g ! (uses.)75 2350 y Fj(2.4.12)29 b(Alternate)21 b(In)n(terface)137 ! 2451 y Fu(An)i(alternate)f(in)o(terface)h(is)g(a)o(v)m(ailable)h(to)d ! (plain)j Ft(readline\(\))p Fu(.)40 b(Some)22 b(applications)i(need)g ! (to)75 2506 y(in)o(terlea)o(v)o(e)15 b(k)o(eyb)q(oard)f(I/O)h(with)g ! (\014le,)h(device,)f(or)f(windo)o(w)h(system)f(I/O,)h(t)o(ypically)h(b) ! o(y)e(using)h(a)g(main)75 2560 y(lo)q(op)f(to)g Ft(select\(\))e ! Fu(on)i(v)m(arious)g(\014le)h(descriptors.)20 b(T)l(o)14 ! b(accomo)q(date)f(this)h(need,)h(readline)g(can)f(also)g(b)q(e)75 ! 2615 y(in)o(v)o(ok)o(ed)i(as)f(a)g(`callbac)o(k')h(function)h(from)d ! (an)i(ev)o(en)o(t)f(lo)q(op.)22 b(There)16 b(are)f(functions)h(a)o(v)m ! (ailable)i(to)c(mak)o(e)75 2670 y(this)i(easy)l(.)p eop ! %%Page: 38 40 ! 38 39 bop 75 -58 a Fu(38)1299 b(GNU)15 b(Readline)h(Library)1762 ! 149 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 149 ! 18 3 v 21 w(callbac)n(k)p 458 149 V 23 w(handler)p 670 ! 149 V 21 w(install)25 b Fg(\()p Ft(const)14 b(char)h(*prompt,)283 ! 204 y(rl_vcpfunc_t)e(*lhandler)p Fg(\))195 259 y Fu(Set)f(up)h(the)g ! (terminal)g(for)f(readline)i(I/O)f(and)f(displa)o(y)i(the)e(initial)j ! (expanded)e(v)m(alue)h(of)e Fk(prompt)p Fu(.)195 314 ! y(Sa)o(v)o(e)j(the)h(v)m(alue)h(of)f Fk(lhandler)21 b ! Fu(to)15 b(use)h(as)f(a)h(function)h(to)e(call)i(when)f(a)g(complete)g ! (line)i(of)d(input)195 369 y(has)g(b)q(een)h(en)o(tered.)21 ! b(The)15 b(function)h(tak)o(es)e(the)i(text)e(of)h(the)g(line)i(as)e ! (an)g(argumen)o(t.)1762 480 y(F)l(unction)-1861 b Fi(void)20 ! b Fh(rl)p 241 480 V 21 w(callbac)n(k)p 458 480 V 23 w(read)p ! 591 480 V 20 w(c)n(har)j Fg(\()p Ft(void)p Fg(\))195 ! 535 y Fu(Whenev)o(er)17 b(an)g(application)h(determines)g(that)e(k)o ! (eyb)q(oard)h(input)h(is)f(a)o(v)m(ailable,)i(it)e(should)h(call)195 ! 590 y Ft(rl_callback_read_char\(\))p Fu(,)8 b(whic)o(h)k(will)g(read)f ! (the)g(next)g(c)o(haracter)f(from)g(the)h(curren)o(t)g(input)195 ! 645 y(source.)38 b(If)21 b(that)g(c)o(haracter)f(completes)i(the)f ! (line,)j Ft(rl_callback_read_char)18 b Fu(will)23 b(in)o(v)o(ok)o(e)195 ! 699 y(the)18 b Fk(lhandler)k Fu(function)d(sa)o(v)o(ed)e(b)o(y)h ! Ft(rl_callback_handler_insta)o(ll)d Fu(to)i(pro)q(cess)h(the)g(line.) ! 195 754 y(Before)13 b(calling)i(the)f Fk(lhandler)k Fu(function,)c(the) ! g(terminal)g(settings)f(are)g(reset)g(to)g(the)g(v)m(alues)i(they)195 ! 809 y(had)g(b)q(efore)g(calling)i Ft(rl_callback_handler_insta)o(ll)p ! Fu(.)g(If)e(the)g Fk(lhandler)20 b Fu(function)15 b(returns,)195 ! 864 y(the)d(terminal)i(settings)e(are)g(mo)q(di\014ed)i(for)d ! (Readline's)i(use)g(again.)19 b Ft(EOF)12 b Fu(is)h(indicated)h(b)o(y)e ! (calling)195 919 y Fk(lhandler)20 b Fu(with)c(a)f Ft(NULL)f ! Fu(line.)1762 1030 y(F)l(unction)-1861 b Fi(void)20 b ! Fh(rl)p 241 1030 V 21 w(callbac)n(k)p 458 1030 V 23 w(handler)p ! 670 1030 V 21 w(remo)n(v)n(e)i Fg(\()p Ft(void)p Fg(\))195 ! 1085 y Fu(Restore)c(the)g(terminal)i(to)d(its)i(initial)i(state)d(and)g ! (remo)o(v)o(e)g(the)h(line)h(handler.)31 b(This)19 b(ma)o(y)f(b)q(e)195 ! 1140 y(called)i(from)d(within)j(a)d(callbac)o(k)j(as)d(w)o(ell)i(as)f ! (indep)q(enden)o(tly)m(.)31 b(If)19 b(the)f Fk(lhandler)23 ! b Fu(installed)d(b)o(y)195 1195 y Ft(rl_callback_handler_instal)o(l)d ! Fu(do)q(es)i(not)g(exit)h(the)g(program,)e(either)i(this)g(function)g ! (or)195 1249 y(the)c(function)g(referred)g(to)f(b)o(y)h(the)g(v)m(alue) ! h(of)e Ft(rl_deprep_term_function)d Fu(should)17 b(b)q(e)f(called)195 ! 1304 y(b)q(efore)f(the)h(program)e(exits)h(to)g(reset)g(the)g(terminal) ! h(settings.)75 1413 y Fj(2.4.13)29 b(A)21 b(Readline)g(Example)137 ! 1508 y Fu(Here)f(is)g(a)f(function)i(whic)o(h)f(c)o(hanges)f(lo)o(w)o ! (ercase)h(c)o(haracters)e(to)h(their)h(upp)q(ercase)h(equiv)m(alen)o ! (ts,)75 1563 y(and)e(upp)q(ercase)i(c)o(haracters)d(to)h(lo)o(w)o ! (ercase.)31 b(If)20 b(this)f(function)h(w)o(as)f(b)q(ound)h(to)f(`)p ! Ft(M-c)p Fu(',)f(then)i(t)o(yping)75 1618 y(`)p Ft(M-c)p ! Fu(')12 b(w)o(ould)h(c)o(hange)h(the)f(case)g(of)g(the)g(c)o(haracter)g ! (under)g(p)q(oin)o(t.)20 b(T)o(yping)14 b(`)p Ft(M-1)g(0)h(M-c)p ! Fu(')d(w)o(ould)i(c)o(hange)75 1673 y(the)h(case)g(of)g(the)h(follo)o ! (wing)f(10)g(c)o(haracters,)f(lea)o(ving)i(the)f(cursor)g(on)g(the)h ! (last)f(c)o(haracter)f(c)o(hanged.)195 1736 y Ft(/*)24 ! b(Invert)f(the)g(case)g(of)h(the)f(COUNT)h(following)e(characters.)h ! (*/)195 1788 y(int)195 1840 y(invert_case_line)f(\(count,)h(key\))314 ! 1892 y(int)h(count,)f(key;)195 1944 y({)243 1995 y(register)f(int)i ! (start,)f(end,)g(i;)243 2099 y(start)g(=)h(rl_point;)243 ! 2203 y(if)f(\(rl_point)g(>=)h(rl_end\))290 2255 y(return)f(\(0\);)243 ! 2359 y(if)g(\(count)g(<)h(0\))290 2411 y({)338 2462 y(direction)f(=)h ! (-1;)338 2514 y(count)f(=)h(-count;)290 2566 y(})243 ! 2618 y(else)290 2670 y(direction)f(=)h(1;)p eop ! %%Page: 39 41 ! 39 40 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(39)243 201 y Ft(/*)23 b(Find)h(the)f(end)h(of)f(the)h ! (range)f(to)g(modify.)g(*/)243 253 y(end)g(=)h(start)f(+)h(\(count)f(*) ! h(direction\);)243 357 y(/*)f(Force)g(it)h(to)g(be)f(within)g(range.)g ! (*/)243 409 y(if)g(\(end)h(>)f(rl_end\))290 461 y(end)h(=)g(rl_end;)243 ! 513 y(else)f(if)h(\(end)f(<)h(0\))290 565 y(end)g(=)g(0;)243 ! 668 y(if)f(\(start)g(==)h(end\))290 720 y(return)f(\(0\);)243 ! 824 y(if)g(\(start)g(>)h(end\))290 876 y({)338 928 y(int)g(temp)f(=)h ! (start;)338 980 y(start)f(=)h(end;)338 1032 y(end)g(=)f(temp;)290 ! 1083 y(})243 1187 y(/*)g(Tell)h(readline)e(that)i(we)f(are)h(modifying) ! e(the)i(line,)314 1239 y(so)g(it)f(will)h(save)f(the)h(undo)f ! (information.)f(*/)243 1291 y(rl_modifying)g(\(start,)h(end\);)243 ! 1395 y(for)g(\(i)h(=)f(start;)h(i)f(!=)h(end;)f(i++\))290 ! 1447 y({)338 1499 y(if)h(\(_rl_uppercase_p)d(\(rl_line_buffer[i]\)\)) ! 386 1550 y(rl_line_buffer[i])g(=)j(_rl_to_lower)e ! (\(rl_line_buffer[i]\);)338 1602 y(else)h(if)h(\(_rl_lowercase_p)e ! (\(rl_line_buffer[i]\)\))386 1654 y(rl_line_buffer[i])f(=)j ! (_rl_to_upper)e(\(rl_line_buffer[i]\);)290 1706 y(})243 ! 1758 y(/*)h(Move)h(point)f(to)g(on)h(top)f(of)h(the)f(last)h(character) ! e(changed.)h(*/)243 1810 y(rl_point)f(=)i(\(direction)f(==)g(1\))h(?)g ! (end)f(-)h(1)g(:)f(start;)243 1862 y(return)g(\(0\);)195 ! 1914 y(})75 2057 y Fs(2.5)33 b(Readline)23 b(Signal)h(Handling)137 ! 2159 y Fu(Signals)e(are)f(async)o(hronous)f(ev)o(en)o(ts)h(sen)o(t)f ! (to)h(a)f(pro)q(cess)h(b)o(y)g(the)g(Unix)h(k)o(ernel,)g(sometimes)f ! (on)75 2213 y(b)q(ehalf)g(of)e(another)h(pro)q(cess.)34 ! b(They)20 b(are)g(in)o(tended)h(to)e(indicate)j(exceptional)f(ev)o(en)o ! (ts,)f(lik)o(e)h(a)f(user)75 2268 y(pressing)c(the)f(in)o(terrupt)g(k)o ! (ey)g(on)g(his)h(terminal,)f(or)g(a)f(net)o(w)o(ork)g(connection)i(b)q ! (eing)g(brok)o(en.)k(There)15 b(is)75 2323 y(a)e(class)g(of)g(signals)h ! (that)f(can)g(b)q(e)h(sen)o(t)f(to)f(the)i(pro)q(cess)f(curren)o(tly)h ! (reading)f(input)i(from)d(the)h(k)o(eyb)q(oard.)75 2378 ! y(Since)i(Readline)f(c)o(hanges)g(the)f(terminal)h(attributes)f(when)h ! (it)g(is)g(called,)h(it)e(needs)h(to)f(p)q(erform)g(sp)q(ecial)75 ! 2433 y(pro)q(cessing)i(when)f(suc)o(h)g(a)g(signal)g(is)g(receiv)o(ed)h ! (in)g(order)f(to)f(restore)g(the)h(terminal)g(to)f(a)h(sane)g(state,)e ! (or)75 2487 y(pro)o(vide)k(application)h(writers)e(with)g(functions)h ! (to)f(do)g(so)g(man)o(ually)l(.)137 2560 y(Readline)22 ! b(con)o(tains)e(an)g(in)o(ternal)h(signal)g(handler)g(that)f(is)h ! (installed)h(for)d(a)h(n)o(um)o(b)q(er)g(of)g(signals)75 ! 2615 y(\()p Ft(SIGINT)p Fu(,)h Ft(SIGQUIT)p Fu(,)g Ft(SIGTERM)p ! Fu(,)g Ft(SIGALRM)p Fu(,)g Ft(SIGTSTP)p Fu(,)g Ft(SIGTTIN)p ! Fu(,)h(and)f Ft(SIGTTOU)p Fu(\).)36 b(When)21 b(one)g(of)75 ! 2670 y(these)16 b(signals)h(is)f(receiv)o(ed,)h(the)f(signal)h(handler) ! f(will)i(reset)e(the)g(terminal)g(attributes)g(to)f(those)h(that)p eop ! %%Page: 40 42 ! 40 41 bop 75 -58 a Fu(40)1299 b(GNU)15 b(Readline)h(Library)75 ! 149 y(w)o(ere)d(in)i(e\013ect)e(b)q(efore)h Ft(readline\(\))e ! Fu(w)o(as)h(called,)i(reset)f(the)f(signal)i(handling)g(to)e(what)g(it) ! h(w)o(as)f(b)q(efore)75 204 y Ft(readline\(\))21 b Fu(w)o(as)h(called,) ! j(and)e(resend)g(the)g(signal)g(to)f(the)h(calling)h(application.)44 ! b(If)23 b(and)f(when)75 259 y(the)17 b(calling)i(application's)f ! (signal)g(handler)g(returns,)f(Readline)h(will)h(reinitialize)h(the)d ! (terminal)h(and)75 314 y(con)o(tin)o(ue)d(to)e(accept)i(input.)20 ! b(When)15 b(a)e Ft(SIGINT)h Fu(is)g(receiv)o(ed,)h(the)g(Readline)g ! (signal)g(handler)g(p)q(erforms)75 369 y(some)k(additional)i(w)o(ork,)e ! (whic)o(h)h(will)h(cause)f(an)o(y)f(partially-en)o(tered)i(line)g(to)d ! (b)q(e)i(ab)q(orted)g(\(see)f(the)75 423 y(description)e(of)d ! Ft(rl_free_line_state\(\))f Fu(b)q(elo)o(w\).)137 488 ! y(There)g(is)f(an)g(additional)i(Readline)g(signal)f(handler,)g(for)f ! Ft(SIGWINCH)p Fu(,)f(whic)o(h)i(the)f(k)o(ernel)h(sends)g(to)e(a)75 ! 543 y(pro)q(cess)k(whenev)o(er)g(the)f(terminal's)h(size)g(c)o(hanges)f ! (\(for)g(example,)h(if)g(a)f(user)h(resizes)g(an)f Ft(xterm)p ! Fu(\).)19 b(The)75 598 y(Readline)g Ft(SIGWINCH)e Fu(handler)i(up)q ! (dates)f(Readline's)h(in)o(ternal)f(screen)h(size)f(information,)h(and) ! f(then)75 653 y(calls)g(an)o(y)f Ft(SIGWINCH)e Fu(signal)j(handler)g ! (the)f(calling)i(application)f(has)f(installed.)27 b(Readline)18 ! b(calls)g(the)75 708 y(application's)h Ft(SIGWINCH)d ! Fu(signal)j(handler)f(without)g(resetting)g(the)f(terminal)i(to)e(its)g ! (original)i(state.)75 762 y(If)d(the)g(application's)h(signal)g ! (handler)g(do)q(es)g(more)e(than)h(up)q(date)h(its)f(idea)h(of)e(the)h ! (terminal)h(size)g(and)75 817 y(return)e(\(for)f(example,)h(a)f ! Ft(longjmp)g Fu(bac)o(k)h(to)f(a)h(main)g(pro)q(cessing)g(lo)q(op\),)g ! (it)g Fl(must)20 b Fu(call)c Ft(rl_cleanup_)75 872 y(after_signal\(\))d ! Fu(\(describ)q(ed)k(b)q(elo)o(w\),)e(to)g(restore)f(the)h(terminal)h ! (state.)137 937 y(Readline)g(pro)o(vides)f(t)o(w)o(o)e(v)m(ariables)i ! (that)f(allo)o(w)g(application)i(writers)e(to)g(con)o(trol)g(whether)h ! (or)e(not)75 992 y(it)k(will)h(catc)o(h)e(certain)h(signals)h(and)f ! (act)f(on)g(them)h(when)g(they)f(are)h(receiv)o(ed.)25 ! b(It)16 b(is)i(imp)q(ortan)o(t)e(that)75 1047 y(applications)k(c)o ! (hange)e(the)h(v)m(alues)g(of)f(these)h(v)m(ariables)g(only)g(when)g ! (calling)h Ft(readline\(\))p Fu(,)d(not)h(in)h(a)75 1101 ! y(signal)d(handler,)g(so)f(Readline's)h(in)o(ternal)g(signal)g(state)e ! (is)i(not)f(corrupted.)1773 1208 y(V)l(ariable)-1861 ! b Fi(int)20 b Fh(rl)p 215 1208 18 3 v 21 w(catc)n(h)p ! 366 1208 V 22 w(signals)195 1262 y Fu(If)15 b(this)g(v)m(ariable)g(is)g ! (non-zero,)g(Readline)h(will)g(install)f(signal)h(handlers)f(for)f ! Ft(SIGINT)p Fu(,)f Ft(SIGQUIT)p Fu(,)195 1317 y Ft(SIGTERM)p ! Fu(,)h Ft(SIGALRM)p Fu(,)g Ft(SIGTSTP)p Fu(,)f Ft(SIGTTIN)p ! Fu(,)h(and)i Ft(SIGTTOU)p Fu(.)195 1382 y(The)f(default)h(v)m(alue)h ! (of)d Ft(rl_catch_signals)f Fu(is)j(1.)1773 1488 y(V)l(ariable)-1861 ! b Fi(int)20 b Fh(rl)p 215 1488 V 21 w(catc)n(h)p 366 ! 1488 V 22 w(sigwinc)n(h)195 1543 y Fu(If)15 b(this)h(v)m(ariable)h(is)e ! (non-zero,)g(Readline)i(will)g(install)f(a)f(signal)h(handler)h(for)d ! Ft(SIGWINCH)p Fu(.)195 1608 y(The)h(default)h(v)m(alue)h(of)d ! Ft(rl_catch_sigwinch)f Fu(is)j(1.)137 1694 y(If)g(an)f(application)j ! (do)q(es)d(not)g(wish)i(to)d(ha)o(v)o(e)h(Readline)i(catc)o(h)f(an)o(y) ! f(signals,)h(or)f(to)f(handle)j(signals)75 1749 y(other)i(than)g(those) ! g(Readline)i(catc)o(hes)e(\()p Ft(SIGHUP)p Fu(,)g(for)g(example\),)h ! (Readline)h(pro)o(vides)e(con)o(v)o(enience)75 1804 y(functions)d(to)f ! (do)g(the)g(necessary)g(terminal)h(and)g(in)o(ternal)g(state)e(clean)o ! (up)i(up)q(on)g(receipt)g(of)f(a)g(signal.)1762 1910 ! y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 1910 V ! 21 w(clean)n(up)p 450 1910 V 22 w(after)p 590 1910 V ! 20 w(signal)j Fg(\()p Ft(void)p Fg(\))195 1965 y Fu(This)18 ! b(function)f(will)i(reset)e(the)g(state)f(of)g(the)h(terminal)h(to)e ! (what)h(it)g(w)o(as)f(b)q(efore)h Ft(readline\(\))195 ! 2019 y Fu(w)o(as)d(called,)i(and)f(remo)o(v)o(e)f(the)g(Readline)i ! (signal)g(handlers)g(for)e(all)h(signals,)g(dep)q(ending)i(on)e(the)195 ! 2074 y(v)m(alues)h(of)f Ft(rl_catch_signals)e Fu(and)i ! Ft(rl_catch_sigwinch)p Fu(.)1762 2180 y(F)l(unction)-1861 ! b Fi(void)20 b Fh(rl)p 241 2180 V 21 w(free)p 356 2180 ! V 20 w(line)p 464 2180 V 23 w(state)j Fg(\()p Ft(void)p ! Fg(\))195 2235 y Fu(This)d(will)h(free)f(an)o(y)f(partial)h(state)f ! (asso)q(ciated)h(with)g(the)g(curren)o(t)f(input)i(line)g(\(undo)f ! (infor-)195 2290 y(mation,)i(an)o(y)f(partial)h(history)f(en)o(try)l(,) ! h(an)o(y)f(partially-en)o(tered)i(k)o(eyb)q(oard)e(macro,)h(and)f(an)o ! (y)195 2345 y(partially-en)o(tered)k(n)o(umeric)g(argumen)o(t\).)45 ! b(This)24 b(should)h(b)q(e)g(called)g(b)q(efore)g Ft(rl_cleanup_)195 ! 2399 y(after_signal\(\))p Fu(.)36 b(The)22 b(Readline)h(signal)f ! (handler)g(for)f Ft(SIGINT)f Fu(calls)j(this)e(to)g(ab)q(ort)g(the)195 ! 2454 y(curren)o(t)15 b(input)h(line.)1762 2560 y(F)l(unction)-1861 ! b Fi(void)20 b Fh(rl)p 241 2560 V 21 w(reset)p 383 2560 ! V 20 w(after)p 521 2560 V 21 w(signal)j Fg(\()p Ft(void)p ! Fg(\))195 2615 y Fu(This)15 b(will)h(reinitialize)h(the)d(terminal)h ! (and)g(reinstall)h(an)o(y)d(Readline)j(signal)f(handlers,)g(dep)q(end-) ! 195 2670 y(ing)h(on)f(the)g(v)m(alues)i(of)d Ft(rl_catch_signals)f ! Fu(and)j Ft(rl_catch_sigwinch)p Fu(.)p eop ! %%Page: 41 43 ! 41 42 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(41)137 149 y(If)20 b(an)g(application)h(do)q(es)f(not)g ! (wish)g(Readline)h(to)e(catc)o(h)g Ft(SIGWINCH)p Fu(,)h(it)g(ma)o(y)f ! (call)h Ft(rl_resize_)75 204 y(terminal\(\))12 b Fu(or)h ! Ft(rl_set_screen_size\(\))e Fu(to)i(force)g(Readline)i(to)e(up)q(date)h ! (its)g(idea)g(of)g(the)f(terminal)75 259 y(size)j(when)g(a)f ! Ft(SIGWINCH)f Fu(is)h(receiv)o(ed.)1762 360 y(F)l(unction)-1861 ! b Fi(void)20 b Fh(rl)p 241 360 18 3 v 21 w(resize)p 401 ! 360 V 22 w(terminal)j Fg(\()p Ft(void)p Fg(\))195 415 ! y Fu(Up)q(date)16 b(Readline's)g(in)o(ternal)g(screen)f(size)i(b)o(y)e ! (reading)g(v)m(alues)i(from)d(the)i(k)o(ernel.)1762 516 ! y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 516 V ! 21 w(set)p 333 516 V 21 w(screen)p 510 516 V 20 w(size)k ! Fg(\()p Ft(int)15 b(rows,)f(int)h(cols)p Fg(\))195 571 ! y Fu(Set)g(Readline's)h(idea)g(of)f(the)g(terminal)h(size)g(to)f ! Fk(ro)o(ws)h Fu(ro)o(ws)e(and)i Fk(cols)h Fu(columns.)137 ! 653 y(If)g(an)g(application)h(do)q(es)f(not)f(w)o(an)o(t)g(to)g ! (install)i(a)f Ft(SIGWINCH)e Fu(handler,)j(but)f(is)g(still)h(in)o ! (terested)f(in)75 708 y(the)e(screen)h(dimensions,)g(Readline's)h(idea) ! e(of)g(the)h(screen)f(size)h(ma)o(y)f(b)q(e)h(queried.)1762 ! 809 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 809 ! V 21 w(get)p 339 809 V 21 w(screen)p 516 809 V 20 w(size)k ! Fg(\()p Ft(int)15 b(*rows,)f(int)h(*cols)p Fg(\))195 ! 864 y Fu(Return)g(Readline's)h(idea)f(of)g(the)g(terminal's)g(size)h ! (in)g(the)f(v)m(ariables)i(p)q(oin)o(ted)f(to)e(b)o(y)h(the)g(argu-)195 ! 918 y(men)o(ts.)137 1001 y(The)h(follo)o(wing)g(functions)g(install)g ! (and)g(remo)o(v)o(e)e(Readline's)i(signal)g(handlers.)1762 ! 1102 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 1102 ! V 21 w(set)p 307 1102 V 20 w(signals)j Fg(\()p Ft(void)p ! Fg(\))195 1157 y Fu(Install)c(Readline's)f(signal)h(handler)f(for)f ! Ft(SIGINT)p Fu(,)g Ft(SIGQUIT)p Fu(,)g Ft(SIGTERM)p Fu(,)g ! Ft(SIGALRM)p Fu(,)f Ft(SIGTSTP)p Fu(,)195 1211 y Ft(SIGTTIN)p ! Fu(,)11 b Ft(SIGTTOU)p Fu(,)g(and)h Ft(SIGWINCH)p Fu(,)e(dep)q(ending)k ! (on)e(the)f(v)m(alues)i(of)e Ft(rl_catch_signals)f Fu(and)195 ! 1266 y Ft(rl_catch_sigwinch)p Fu(.)1762 1367 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 1367 V 21 w(clear)p 354 1367 ! V 21 w(signals)j Fg(\()p Ft(void)p Fg(\))195 1422 y Fu(Remo)o(v)o(e)14 ! b(all)i(of)f(the)g(Readline)i(signal)f(handlers)g(installed)h(b)o(y)e ! Ft(rl_set_signals\(\))p Fu(.)75 1541 y Fs(2.6)33 b(Custom)21 ! b(Completers)137 1634 y Fu(T)o(ypically)l(,)e(a)d(program)f(that)h ! (reads)h(commands)f(from)g(the)h(user)f(has)h(a)f(w)o(a)o(y)g(of)g ! (disam)o(biguating)75 1689 y(commands)i(and)f(data.)27 ! b(If)18 b(y)o(our)f(program)g(is)h(one)g(of)f(these,)i(then)f(it)g(can) ! f(pro)o(vide)i(completion)g(for)75 1744 y(commands,)14 ! b(data,)g(or)g(b)q(oth.)20 b(The)15 b(follo)o(wing)g(sections)g ! (describ)q(e)h(ho)o(w)e(y)o(our)g(program)g(and)h(Readline)75 ! 1798 y(co)q(op)q(erate)g(to)g(pro)o(vide)g(this)h(service.)75 ! 1901 y Fj(2.6.1)30 b(Ho)n(w)21 b(Completing)f(W)-5 b(orks)137 ! 1994 y Fu(In)18 b(order)f(to)f(complete)i(some)f(text,)g(the)g(full)i ! (list)e(of)g(p)q(ossible)i(completions)f(m)o(ust)f(b)q(e)h(a)o(v)m ! (ailable.)75 2049 y(That)e(is,)i(it)f(is)h(not)f(p)q(ossible)h(to)f ! (accurately)g(expand)h(a)e(partial)i(w)o(ord)e(without)h(kno)o(wing)g ! (all)h(of)f(the)75 2104 y(p)q(ossible)i(w)o(ords)e(whic)o(h)h(mak)o(e)f ! (sense)h(in)h(that)d(con)o(text.)26 b(The)18 b(Readline)h(library)f ! (pro)o(vides)g(the)g(user)75 2158 y(in)o(terface)f(to)f(completion,)i ! (and)e(t)o(w)o(o)g(of)g(the)h(most)f(common)g(completion)i(functions:) ! 23 b(\014lename)18 b(and)75 2213 y(username.)h(F)l(or)10 ! b(completing)i(other)e(t)o(yp)q(es)h(of)f(text,)h(y)o(ou)g(m)o(ust)f ! (write)h(y)o(our)f(o)o(wn)h(completion)g(function.)75 ! 2268 y(This)16 b(section)g(describ)q(es)g(exactly)g(what)f(suc)o(h)g ! (functions)h(m)o(ust)f(do,)f(and)i(pro)o(vides)f(an)h(example.)137 ! 2332 y(There)g(are)f(three)g(ma)s(jor)f(functions)i(used)f(to)g(p)q ! (erform)g(completion:)100 2396 y(1.)29 b(The)22 b(user-in)o(terface)g ! (function)h Ft(rl_complete\(\))p Fu(.)37 b(This)22 b(function)h(is)f ! (called)h(with)f(the)g(same)165 2451 y(argumen)o(ts)17 ! b(as)h(other)g(bindable)i(Readline)f(functions:)27 b ! Fk(coun)o(t)19 b Fu(and)f Fk(in)o(v)o(oking)p 1556 2451 ! 14 2 v 17 w(k)o(ey)p Fu(.)28 b(It)19 b(isolates)165 2506 ! y(the)g(w)o(ord)f(to)g(b)q(e)i(completed)f(and)g(calls)h ! Ft(rl_completion_matches\(\))c Fu(to)i(generate)g(a)h(list)g(of)165 ! 2560 y(p)q(ossible)e(completions.)22 b(It)16 b(then)g(either)g(lists)g ! (the)g(p)q(ossible)h(completions,)g(inserts)f(the)f(p)q(ossible)165 ! 2615 y(completions,)25 b(or)d(actually)i(p)q(erforms)e(the)g ! (completion,)k(dep)q(ending)e(on)f(whic)o(h)g(b)q(eha)o(vior)g(is)165 ! 2670 y(desired.)p eop ! %%Page: 42 44 ! 42 43 bop 75 -58 a Fu(42)1299 b(GNU)15 b(Readline)h(Library)100 ! 149 y(2.)29 b(The)17 b(in)o(ternal)h(function)f Ft ! (rl_completion_matches\(\))d Fu(uses)j(an)g(application-supplie)q(d)j ! Fk(gener-)165 204 y(ator)h Fu(function)e(to)f(generate)g(the)h(list)g ! (of)f(p)q(ossible)i(matc)o(hes,)f(and)f(then)h(returns)g(the)f(arra)o ! (y)f(of)165 259 y(these)j(matc)o(hes.)32 b(The)20 b(caller)g(should)h ! (place)f(the)g(address)f(of)h(its)f(generator)g(function)h(in)g ! Ft(rl_)165 314 y(completion_entry_function)p Fu(.)100 ! 383 y(3.)29 b(The)12 b(generator)e(function)i(is)g(called)h(rep)q ! (eatedly)g(from)e Ft(rl_completion_matches\(\))p Fu(,)d(returning)165 ! 438 y(a)16 b(string)g(eac)o(h)h(time.)24 b(The)17 b(argumen)o(ts)e(to)h ! (the)g(generator)g(function)h(are)f Fk(text)h Fu(and)g ! Fk(state)p Fu(.)22 b Fk(text)165 493 y Fu(is)17 b(the)f(partial)g(w)o ! (ord)f(to)h(b)q(e)h(completed.)23 b Fk(state)18 b Fu(is)e(zero)g(the)g ! (\014rst)g(time)g(the)g(function)h(is)g(called,)165 547 ! y(allo)o(wing)23 b(the)f(generator)f(to)g(p)q(erform)h(an)o(y)g ! (necessary)g(initialization,)k(and)c(a)g(p)q(ositiv)o(e)h(non-)165 ! 602 y(zero)14 b(in)o(teger)h(for)f(eac)o(h)h(subsequen)o(t)g(call.)21 ! b(The)15 b(generator)e(function)j(returns)e Ft(\(char)h(*\)NULL)f ! Fu(to)165 657 y(inform)19 b Ft(rl_completion_matches\(\))d ! Fu(that)i(there)h(are)g(no)g(more)g(p)q(ossibilities)j(left.)32 ! b(Usually)165 712 y(the)19 b(generator)g(function)h(computes)g(the)f ! (list)h(of)f(p)q(ossible)i(completions)g(when)e Fk(state)j ! Fu(is)d(zero,)165 767 y(and)13 b(returns)g(them)f(one)h(at)f(a)h(time)g ! (on)g(subsequen)o(t)g(calls.)20 b(Eac)o(h)13 b(string)f(the)h ! (generator)f(function)165 821 y(returns)k(as)f(a)h(matc)o(h)f(m)o(ust)h ! (b)q(e)g(allo)q(cated)h(with)g Ft(malloc\(\))p Fu(;)d(Readline)k(frees) ! e(the)g(strings)f(when)165 876 y(it)g(has)h(\014nished)g(with)g(them.) ! 1762 1005 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 ! 1005 18 3 v 21 w(complete)j Fg(\()p Ft(int)14 b(ignore,)g(int)h ! (invoking_key)p Fg(\))195 1059 y Fu(Complete)h(the)f(w)o(ord)g(at)f(or) ! h(b)q(efore)h(p)q(oin)o(t.)21 b(Y)l(ou)15 b(ha)o(v)o(e)g(supplied)j ! (the)d(function)i(that)d(do)q(es)i(the)195 1114 y(initial)23 ! b(simple)f(matc)o(hing)e(selection)i(algorithm)f(\(see)f ! Ft(rl_completion_matches\(\))p Fu(\).)33 b(The)195 1169 ! y(default)16 b(is)f(to)g(do)g(\014lename)h(completion.)1773 ! 1298 y(V)l(ariable)-1861 b Fi(rl_compentry_func_t)22 ! b(*)d Fh(rl)p 678 1298 V 21 w(completion)p 973 1298 V ! 21 w(en)n(try)p 1126 1298 V 22 w(function)195 1352 y ! Fu(This)i(is)f(a)g(p)q(oin)o(ter)g(to)f(the)h(generator)g(function)g ! (for)g Ft(rl_completion_matches\(\))p Fu(.)31 b(If)20 ! b(the)195 1407 y(v)m(alue)13 b(of)f Ft(rl_completion_entry_fun)o(ction) ! d Fu(is)j Ft(NULL)f Fu(then)h(the)g(default)h(\014lename)g(generator) ! 195 1462 y(function,)j Ft(rl_filename_completion_f)o(unction)o(\(\))p ! Fu(,)c(is)k(used.)75 1582 y Fj(2.6.2)30 b(Completion)20 ! b(F)-5 b(unctions)137 1682 y Fu(Here)16 b(is)f(the)h(complete)g(list)g ! (of)e(callable)k(completion)e(functions)g(presen)o(t)f(in)h(Readline.) ! 1762 1810 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 ! 1810 V 21 w(complete)p 460 1810 V 21 w(in)n(ternal)k ! Fg(\()p Ft(int)15 b(what_to_do)p Fg(\))195 1865 y Fu(Complete)k(the)g ! (w)o(ord)f(at)g(or)g(b)q(efore)h(p)q(oin)o(t.)31 b Fk(what)p ! 1108 1865 14 2 v 16 w(to)p 1165 1865 V 16 w(do)21 b Fu(sa)o(ys)d(what)g ! (to)g(do)h(with)g(the)g(com-)195 1920 y(pletion.)j(A)16 ! b(v)m(alue)h(of)e(`)p Ft(?)p Fu(')g(means)g(list)i(the)e(p)q(ossible)j ! (completions.)k(`)p Ft(TAB)p Fu(')14 b(means)i(do)f(standard)195 ! 1975 y(completion.)22 b(`)p Ft(*)p Fu(')15 b(means)g(insert)h(all)h(of) ! e(the)h(p)q(ossible)h(completions.)22 b(`)p Ft(!)p Fu(')15 ! b(means)g(to)g(displa)o(y)i(all)195 2029 y(of)g(the)g(p)q(ossible)i ! (completions,)f(if)g(there)f(is)h(more)f(than)g(one,)g(as)g(w)o(ell)h ! (as)f(p)q(erforming)h(partial)195 2084 y(completion.)1762 ! 2213 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2213 ! 18 3 v 21 w(complete)j Fg(\()p Ft(int)14 b(ignore,)g(int)h ! (invoking_key)p Fg(\))195 2268 y Fu(Complete)21 b(the)g(w)o(ord)e(at)h ! (or)g(b)q(efore)h(p)q(oin)o(t.)37 b(Y)l(ou)21 b(ha)o(v)o(e)f(supplied)j ! (the)d(function)i(that)e(do)q(es)195 2322 y(the)d(initial)h(simple)g ! (matc)o(hing)f(selection)h(algorithm)e(\(see)g Ft ! (rl_completion_matches\(\))e Fu(and)195 2377 y Ft ! (rl_completion_entry_functi)o(on)p Fu(\).)25 b(The)18 ! b(default)h(is)f(to)f(do)h(\014lename)h(completion.)29 ! b(This)195 2432 y(calls)16 b Ft(rl_complete_internal\(\))c ! Fu(with)k(an)f(argumen)o(t)f(dep)q(ending)k(on)d Fk(in)o(v)o(oking)p ! 1657 2432 14 2 v 17 w(k)o(ey)p Fu(.)1762 2560 y(F)l(unction)-1861 ! b Fi(int)20 b Fh(rl)p 215 2560 18 3 v 21 w(p)r(ossible)p ! 433 2560 V 20 w(completions)j Fg(\()p Ft(int)15 b(count,)f(int)h ! (invoking_key)p Fg(\))195 2615 y Fu(List)21 b(the)f(p)q(ossible)i ! (completions.)36 b(See)21 b(description)h(of)e Ft(rl_complete)13 ! b(\(\))p Fu(.)35 b(This)21 b(calls)g Ft(rl_)195 2670 ! y(complete_internal\(\))13 b Fu(with)i(an)g(argumen)o(t)g(of)f(`)p ! Ft(?)p Fu('.)p eop ! %%Page: 43 45 ! 43 44 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(43)1762 149 y(F)l(unction)-1861 b Fi(int)20 ! b Fh(rl)p 215 149 18 3 v 21 w(insert)p 378 149 V 21 w(completions)j ! Fg(\()p Ft(int)14 b(count,)g(int)h(invoking_key)p Fg(\))195 ! 204 y Fu(Insert)i(the)g(list)h(of)e(p)q(ossible)j(completions)e(in)o ! (to)g(the)g(line,)i(deleting)f(the)f(partially-completed)195 ! 259 y(w)o(ord.)k(See)c(description)g(of)e Ft(rl_complete\(\))p ! Fu(.)20 b(This)d(calls)g Ft(rl_complete_internal\(\))c ! Fu(with)195 314 y(an)i(argumen)o(t)g(of)f(`)p Ft(*)p ! Fu('.)1762 434 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p ! 215 434 V 21 w(completion)p 510 434 V 21 w(mo)r(de)h ! Fg(\()p Ft(rl_command_func_t)12 b(*cfunc)p Fg(\))195 ! 489 y Fu(Returns)25 b(the)g(apppriate)h(v)m(alue)g(to)f(pass)g(to)f ! Ft(rl_complete_internal\(\))f Fu(dep)q(ending)k(on)195 ! 543 y(whether)22 b Fk(cfunc)j Fu(w)o(as)d(called)h(t)o(wice)f(in)h ! (succession)g(and)f(the)g(v)m(alue)h(of)f(the)g Ft(show-all-if-)195 ! 598 y(ambiguous)14 b Fu(v)m(ariable.)21 b(Application-sp)q(ec)q(i\014c) ! e(completion)d(functions)g(ma)o(y)f(use)g(this)h(function)195 ! 653 y(to)f(presen)o(t)g(the)g(same)g(in)o(terface)g(as)g ! Ft(rl_complete\(\))p Fu(.)1762 773 y(F)l(unction)-1861 ! b Fi(char)20 b(**)f Fh(rl)p 312 773 V 21 w(completion)p ! 607 773 V 21 w(matc)n(hes)j Fg(\()p Ft(const)15 b(char)f(*text,)283 ! 828 y(rl_compentry_func_t)e(*entry_func)p Fg(\))195 883 ! y Fu(Returns)18 b(an)h(arra)o(y)f(of)g(strings)h(whic)o(h)h(is)g(a)e ! (list)i(of)e(completions)i(for)f Fk(text)p Fu(.)30 b(If)19 ! b(there)g(are)g(no)195 937 y(completions,)f(returns)g ! Ft(NULL)p Fu(.)25 b(The)17 b(\014rst)g(en)o(try)g(in)h(the)f(returned)h ! (arra)o(y)e(is)i(the)f(substitution)195 992 y(for)c Fk(text)p ! Fu(.)18 b(The)c(remaining)g(en)o(tries)f(are)g(the)h(p)q(ossible)g ! (completions.)21 b(The)13 b(arra)o(y)f(is)i(terminated)195 ! 1047 y(with)i(a)e Ft(NULL)h Fu(p)q(oin)o(ter.)195 1115 ! y Fk(en)o(try)p 302 1115 14 2 v 16 w(func)h Fu(is)e(a)f(function)h(of)e ! (t)o(w)o(o)g(args,)g(and)i(returns)f(a)f Ft(char)j(*)p ! Fu(.)k(The)13 b(\014rst)g(argumen)o(t)f(is)i Fk(text)p ! Fu(.)195 1170 y(The)f(second)g(is)f(a)h(state)e(argumen)o(t;)h(it)h(is) ! g(zero)f(on)g(the)h(\014rst)f(call,)i(and)e(non-zero)h(on)f(subsequen)o ! (t)195 1225 y(calls.)20 b Fk(en)o(try)p 420 1225 V 16 ! w(func)15 b Fu(returns)e(a)e Ft(NULL)h Fu(p)q(oin)o(ter)h(to)e(the)i ! (caller)g(when)g(there)f(are)g(no)g(more)g(matc)o(hes.)1762 ! 1345 y(F)l(unction)-1861 b Fi(char)20 b(*)f Fh(rl)p 286 ! 1345 18 3 v 21 w(\014lename)p 515 1345 V 20 w(completion)p ! 809 1345 V 21 w(function)k Fg(\()p Ft(const)15 b(char)f(*text,)h(int) ! 283 1400 y(state)p Fg(\))195 1454 y Fu(A)e(generator)f(function)h(for)g ! (\014lename)h(completion)f(in)h(the)f(general)g(case.)19 ! b Fk(text)14 b Fu(is)f(a)g(partial)g(\014le-)195 1509 ! y(name.)20 b(The)15 b(Bash)f(source)h(is)g(a)g(useful)g(reference)h ! (for)e(writing)h(custom)f(completion)i(functions)195 ! 1564 y(\(the)f(Bash)g(completion)i(functions)e(call)i(this)e(and)h ! (other)f(Readline)h(functions\).)1762 1684 y(F)l(unction)-1861 ! b Fi(char)20 b(*)f Fh(rl)p 286 1684 V 21 w(username)p ! 547 1684 V 19 w(completion)p 840 1684 V 21 w(function)k ! Fg(\()p Ft(const)14 b(char)g(*text,)283 1739 y(int)g(state)p ! Fg(\))195 1794 y Fu(A)g(completion)i(generator)d(for)h(usernames.)19 ! b Fk(text)c Fu(con)o(tains)f(a)g(partial)h(username)f(preceded)i(b)o(y) ! 195 1848 y(a)f(random)g(c)o(haracter)f(\(usually)j(`)p ! Ft(~)p Fu('\).)i(As)c(with)g(all)i(completion)f(generators,)e ! Fk(state)j Fu(is)f(zero)f(on)195 1903 y(the)g(\014rst)g(call)h(and)g ! (non-zero)f(for)g(subsequen)o(t)h(calls.)75 2017 y Fj(2.6.3)30 ! b(Completion)20 b(V)-5 b(ariables)1773 2166 y Fu(V)l(ariable)-1861 ! b Fi(rl_compentry_func_t)22 b(*)d Fh(rl)p 678 2166 V ! 21 w(completion)p 973 2166 V 21 w(en)n(try)p 1126 2166 ! V 22 w(function)195 2221 y Fu(A)e(p)q(oin)o(ter)g(to)f(the)h(generator) ! f(function)h(for)f Ft(rl_completion_matches\(\))p Fu(.)22 ! b Ft(NULL)16 b Fu(means)h(to)195 2276 y(use)f Ft ! (rl_filename_completion_)o(functio)o(n\(\))p Fu(,)c(the)j(default)h ! (\014lename)g(completer.)1773 2396 y(V)l(ariable)-1861 ! b Fi(rl_completion_func_t)22 b(*)d Fh(rl)p 704 2396 V ! 22 w(attempted)p 985 2396 V 20 w(completion)p 1279 2396 ! V 21 w(function)195 2451 y Fu(A)e(p)q(oin)o(ter)h(to)f(an)g(alternativ) ! o(e)h(function)g(to)f(create)g(matc)o(hes.)26 b(The)18 ! b(function)g(is)g(called)h(with)195 2506 y Fk(text)p ! Fu(,)11 b Fk(start)p Fu(,)g(and)h Fk(end)p Fu(.)19 b ! Fk(start)11 b Fu(and)h Fk(end)i Fu(are)d(indices)i(in)g ! Ft(rl_line_buffer)c Fu(de\014ning)k(the)f(b)q(ound-)195 ! 2560 y(aries)h(of)g Fk(text)p Fu(,)f(whic)o(h)i(is)g(a)e(c)o(haracter)h ! (string.)19 b(If)13 b(this)g(function)h(exists)g(and)f(returns)g ! Ft(NULL)p Fu(,)f(or)g(if)195 2615 y(this)f(v)m(ariable)i(is)e(set)g(to) ! f Ft(NULL)p Fu(,)h(then)g Ft(rl_complete\(\))e Fu(will)k(call)f(the)f ! (v)m(alue)h(of)f Ft(rl_completion_)195 2670 y(entry_function)h ! Fu(to)i(generate)g(matc)o(hes,)f(otherwise)i(the)f(arra)o(y)f(of)h ! (strings)g(returned)g(will)i(b)q(e)p eop ! %%Page: 44 46 ! 44 45 bop 75 -58 a Fu(44)1299 b(GNU)15 b(Readline)h(Library)195 ! 149 y(used.)j(If)12 b(this)f(function)h(sets)f(the)g ! Ft(rl_attempted_completion_over)d Fu(v)m(ariable)k(to)f(a)g(non-zero) ! 195 204 y(v)m(alue,)18 b(Readline)h(will)f(not)f(p)q(erform)f(its)i ! (default)f(completion)h(ev)o(en)f(if)h(this)f(function)h(returns)195 ! 259 y(no)d(matc)o(hes.)1773 380 y(V)l(ariable)-1861 b ! Fi(rl_quote_func_t)21 b(*)f Fh(rl)p 574 380 18 3 v 21 ! w(\014lename)p 803 380 V 20 w(quoting)p 1012 380 V 21 ! w(function)195 434 y Fu(A)c(p)q(oin)o(ter)h(to)f(a)g(function)h(that)e ! (will)j(quote)e(a)g(\014lename)i(in)f(an)f(application-sp)q(eci\014)q ! (c)j(fashion.)195 489 y(This)h(is)g(called)i(if)e(\014lename)g ! (completion)h(is)f(b)q(eing)h(attempted)e(and)h(one)g(of)f(the)h(c)o ! (haracters)195 544 y(in)d Ft(rl_filename_quote_characters)c ! Fu(app)q(ears)k(in)g(a)g(completed)g(\014lename.)25 b(The)17 ! b(function)195 599 y(is)i(called)i(with)e Fk(text)p Fu(,)g ! Fk(matc)o(h)p 722 599 14 2 v 16 w(t)o(yp)q(e)p Fu(,)g(and)g ! Fk(quote)p 1059 599 V 17 w(p)q(oin)o(ter)p Fu(.)31 b(The)19 ! b Fk(text)h Fu(is)f(the)g(\014lename)h(to)e(b)q(e)195 ! 654 y(quoted.)39 b(The)21 b Fk(matc)o(h)p 607 654 V 16 ! w(t)o(yp)q(e)j Fu(is)e(either)g Ft(SINGLE_MATCH)p Fu(,)f(if)h(there)f ! (is)h(only)g(one)g(completion)195 708 y(matc)o(h,)15 ! b(or)g Ft(MULT_MATCH)p Fu(.)20 b(Some)c(functions)g(use)g(this)g(to)f ! (decide)j(whether)e(or)f(not)g(to)g(insert)h(a)195 763 ! y(closing)c(quote)e(c)o(haracter.)18 b(The)11 b Fk(quote)p ! 877 763 V 16 w(p)q(oin)o(ter)k Fu(is)c(a)f(p)q(oin)o(ter)i(to)e(an)o(y) ! g(op)q(ening)i(quote)f(c)o(haracter)195 818 y(the)k(user)h(t)o(yp)q ! (ed.)k(Some)15 b(functions)h(c)o(ho)q(ose)f(to)g(reset)g(this)g(c)o ! (haracter.)1773 938 y(V)l(ariable)-1861 b Fi(rl_dequote_func_t)22 ! b(*)d Fh(rl)p 626 938 18 3 v 21 w(\014lename)p 855 938 ! V 20 w(dequoting)p 1122 938 V 21 w(function)195 993 y ! Fu(A)c(p)q(oin)o(ter)g(to)f(a)h(function)g(that)g(will)h(remo)o(v)o(e)e ! (application-sp)q(eci\014)q(c)k(quoting)d(c)o(haracters)f(from)195 ! 1048 y(a)i(\014lename)h(b)q(efore)g(completion)g(is)g(attempted,)f(so)f ! (those)h(c)o(haracters)g(do)g(not)g(in)o(terfere)h(with)195 ! 1103 y(matc)o(hing)i(the)g(text)g(against)f(names)h(in)h(the)f ! (\014lesystem.)33 b(It)19 b(is)g(called)i(with)e Fk(text)p ! Fu(,)g(the)g(text)195 1158 y(of)i(the)g(w)o(ord)g(to)g(b)q(e)h ! (dequoted,)h(and)e Fk(quote)p 1009 1158 14 2 v 17 w(c)o(har)p ! Fu(,)h(whic)o(h)g(is)g(the)f(quoting)h(c)o(haracter)f(that)195 ! 1212 y(delimits)d(the)e(\014lename)i(\(usually)f(`)p ! Ft(')p Fu(')f(or)f(`)p Ft(")p Fu('\).)22 b(If)17 b Fk(quote)p ! 1187 1212 V 16 w(c)o(har)i Fu(is)e(zero,)f(the)g(\014lename)i(w)o(as)d ! (not)195 1267 y(in)h(an)f(em)o(b)q(edded)i(string.)1773 ! 1388 y(V)l(ariable)-1861 b Fi(rl_linebuf_func_t)22 b(*)d ! Fh(rl)p 626 1388 18 3 v 21 w(c)n(har)p 754 1388 V 21 ! w(is)p 813 1388 V 21 w(quoted)p 1005 1388 V 21 w(p)195 ! 1443 y Fu(A)f(p)q(oin)o(ter)h(to)f(a)g(function)h(to)f(call)i(that)d ! (determines)j(whether)e(or)g(not)g(a)g(sp)q(eci\014c)j(c)o(haracter)195 ! 1497 y(in)d(the)f(line)i(bu\013er)e(is)h(quoted,)g(according)f(to)g ! (whatev)o(er)f(quoting)i(mec)o(hanism)g(the)f(program)195 ! 1552 y(calling)d(Readline)g(uses.)19 b(The)13 b(function)g(is)g(called) ! h(with)f(t)o(w)o(o)e(argumen)o(ts:)17 b Fk(text)p Fu(,)12 ! b(the)h(text)f(of)g(the)195 1607 y(line,)17 b(and)e Fk(index)p ! Fu(,)i(the)e(index)i(of)e(the)g(c)o(haracter)g(in)h(the)g(line.)22 ! b(It)15 b(is)h(used)g(to)f(decide)i(whether)e(a)195 1662 ! y(c)o(haracter)f(found)i(in)g Ft(rl_completer_word_break_)o(charact)o ! (ers)c Fu(should)k(b)q(e)g(used)g(to)e(break)195 1717 ! y(w)o(ords)g(for)h(the)g(completer.)1773 1837 y(V)l(ariable)-1861 ! b Fi(rl_compignore_func_t)22 b(*)d Fh(rl)p 704 1837 V ! 22 w(ignore)p 881 1837 V 20 w(some)p 1028 1837 V 19 w(completions)p ! 1344 1837 V 21 w(function)195 1892 y Fu(This)g(function,)i(if)e ! (de\014ned,)i(is)e(called)h(b)o(y)f(the)g(completer)g(when)h(real)f ! (\014lename)h(completion)195 1947 y(is)e(done,)f(after)f(all)i(the)f ! (matc)o(hing)g(names)g(ha)o(v)o(e)g(b)q(een)h(generated.)25 ! b(It)17 b(is)h(passed)f(a)g Ft(NULL)f Fu(ter-)195 2001 ! y(minated)g(arra)o(y)e(of)h(matc)o(hes.)20 b(The)c(\014rst)f(elemen)o ! (t)h(\()p Ft(matches[0])p Fu(\))d(is)j(the)g(maximal)g(substring)195 ! 2056 y(common)e(to)g(all)h(matc)o(hes.)k(This)c(function)g(can)g ! (re-arrange)f(the)g(list)h(of)f(matc)o(hes)g(as)g(required,)195 ! 2111 y(but)h(eac)o(h)h(elemen)o(t)g(deleted)g(from)f(the)g(arra)o(y)f ! (m)o(ust)g(b)q(e)i(freed.)1773 2232 y(V)l(ariable)-1861 ! b Fi(rl_icppfunc_t)21 b(*)e Fh(rl)p 521 2232 V 21 w(directory)p ! 769 2232 V 22 w(completion)p 1065 2232 V 21 w(ho)r(ok)195 ! 2286 y Fu(This)k(function,)i(if)e(de\014ned,)j(is)d(allo)o(w)o(ed)g(to) ! f(mo)q(dify)h(the)g(directory)g(p)q(ortion)g(of)f(\014lenames)195 ! 2341 y(Readline)e(completes.)29 b(It)19 b(is)f(called)i(with)f(the)f ! (address)h(of)e(a)h(string)h(\(the)f(curren)o(t)g(directory)195 ! 2396 y(name\))g(as)g(an)h(argumen)o(t,)f(and)h(ma)o(y)f(mo)q(dify)h ! (that)f(string.)30 b(If)19 b(the)f(string)h(is)g(replaced)h(with)195 ! 2451 y(a)g(new)g(string,)h(the)f(old)g(v)m(alue)h(should)g(b)q(e)g ! (freed.)34 b(An)o(y)20 b(mo)q(di\014ed)i(directory)e(name)g(should)195 ! 2506 y(ha)o(v)o(e)14 b(a)g(trailing)i(slash.)k(The)15 ! b(mo)q(di\014ed)h(v)m(alue)g(will)g(b)q(e)f(displa)o(y)o(ed)h(as)e ! (part)g(of)h(the)f(completion,)195 2560 y(replacing)h(the)g(directory)f ! (p)q(ortion)g(of)g(the)g(pathname)g(the)h(user)f(t)o(yp)q(ed.)20 ! b(It)14 b(returns)g(an)g(in)o(teger)195 2615 y(that)i(should)h(b)q(e)g ! (non-zero)g(if)g(the)g(function)g(mo)q(di\014es)h(its)e(directory)h ! (argumen)o(t.)23 b(It)17 b(could)g(b)q(e)195 2670 y(used)f(to)e(expand) ! i(sym)o(b)q(olic)h(links)f(or)f(shell)i(v)m(ariables)f(in)g(pathnames.) ! p eop ! %%Page: 45 47 ! 45 46 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(45)1773 149 y(V)l(ariable)-1861 b Fi ! (rl_compdisp_func_t)22 b(*)d Fh(rl)p 652 149 18 3 v 21 ! w(completion)p 947 149 V 21 w(displa)n(y)p 1141 149 V ! 22 w(matc)n(hes)p 1366 149 V 21 w(ho)r(ok)195 204 y Fu(If)11 ! b(non-zero,)h(then)f(this)h(is)f(the)g(address)g(of)g(a)g(function)g ! (to)g(call)h(when)f(completing)i(a)d(w)o(ord)h(w)o(ould)195 ! 259 y(normally)h(displa)o(y)g(the)f(list)h(of)f(p)q(ossible)h(matc)o ! (hes.)18 b(This)12 b(function)g(is)g(called)g(in)g(lieu)h(of)e ! (Readline)195 314 y(displa)o(ying)21 b(the)d(list.)32 ! b(It)19 b(tak)o(es)f(three)h(argumen)o(ts:)26 b(\()p ! Ft(char)14 b(**)p Fk(matc)o(hes)p Fu(,)19 b Ft(int)f ! Fk(n)o(um)p 1688 314 14 2 v 17 w(matc)o(hes)p Fu(,)195 ! 369 y Ft(int)13 b Fk(max)p 368 369 V 16 w(length)p Fu(\))i(where)f ! Fk(matc)o(hes)h Fu(is)f(the)g(arra)o(y)f(of)g(matc)o(hing)h(strings,)g ! Fk(n)o(um)p 1578 369 V 16 w(matc)o(hes)i Fu(is)e(the)195 ! 423 y(n)o(um)o(b)q(er)h(of)f(strings)h(in)h(that)e(arra)o(y)l(,)f(and)i ! Fk(max)p 1012 423 V 16 w(length)h Fu(is)f(the)g(length)g(of)g(the)f ! (longest)h(string)g(in)195 478 y(that)e(arra)o(y)l(.)19 ! b(Readline)c(pro)o(vides)g(a)e(con)o(v)o(enience)j(function,)f ! Ft(rl_display_match_list)p Fu(,)c(that)195 533 y(tak)o(es)17 ! b(care)g(of)g(doing)h(the)f(displa)o(y)i(to)d(Readline's)j(output)e ! (stream.)26 b(That)16 b(function)j(ma)o(y)d(b)q(e)195 ! 588 y(called)h(from)d(this)i(ho)q(ok.)1773 704 y(V)l(ariable)-1861 ! b Fi(const)20 b(char)g(*)f Fh(rl)p 436 704 18 3 v 21 ! w(basic)p 580 704 V 21 w(w)n(ord)p 725 704 V 21 w(break)p ! 886 704 V 20 w(c)n(haracters)195 759 y Fu(The)j(basic)h(list)g(of)f(c)o ! (haracters)f(that)g(signal)i(a)f(break)g(b)q(et)o(w)o(een)g(w)o(ords)g ! (for)f(the)h(completer)195 814 y(routine.)30 b(The)19 ! b(default)g(v)m(alue)h(of)e(this)h(v)m(ariable)h(is)f(the)g(c)o ! (haracters)f(whic)o(h)h(break)g(w)o(ords)f(for)195 869 ! y(completion)e(in)g(Bash:)k Ft(")15 b(\\t\\n\\"\\\\'`@$><=;|&{\(")p ! Fu(.)1773 985 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f ! Fh(rl)p 436 985 V 21 w(basic)p 580 985 V 21 w(quote)p ! 740 985 V 21 w(c)n(haracters)195 1040 y Fu(A)c(list)h(of)f(quote)g(c)o ! (haracters)f(whic)o(h)i(can)g(cause)f(a)g(w)o(ord)g(break.)1773 ! 1156 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p ! 436 1156 V 21 w(completer)p 705 1156 V 21 w(w)n(ord)p ! 850 1156 V 20 w(break)p 1010 1156 V 20 w(c)n(haracters)195 ! 1211 y Fu(The)33 b(list)g(of)f(c)o(haracters)g(that)f(signal)j(a)e ! (break)g(b)q(et)o(w)o(een)h(w)o(ords)f(for)g Ft(rl_complete_)195 ! 1266 y(internal\(\))p Fu(.)18 b(The)e(default)g(list)g(is)f(the)h(v)m ! (alue)g(of)f Ft(rl_basic_word_break_chara)o(cters)p Fu(.)1773 ! 1382 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p ! 436 1382 V 21 w(completer)p 705 1382 V 21 w(quote)p 865 ! 1382 V 20 w(c)n(haracters)195 1437 y Fu(A)e(list)h(of)e(c)o(haracters)g ! (whic)o(h)i(can)f(b)q(e)g(used)h(to)e(quote)h(a)f(substring)h(of)g(the) ! g(line.)26 b(Completion)195 1492 y(o)q(ccurs)13 b(on)h(the)f(en)o(tire) ! g(substring,)h(and)f(within)i(the)e(substring)g Ft ! (rl_completer_word_break_)195 1547 y(characters)j Fu(are)h(treated)g ! (as)h(an)o(y)f(other)g(c)o(haracter,)g(unless)i(they)e(also)h(app)q ! (ear)g(within)h(this)195 1601 y(list.)1773 1718 y(V)l(ariable)-1861 ! b Fi(const)20 b(char)g(*)f Fh(rl)p 436 1718 V 21 w(\014lename)p ! 665 1718 V 20 w(quote)p 824 1718 V 21 w(c)n(haracters)195 ! 1773 y Fu(A)e(list)h(of)e(c)o(haracters)g(that)g(cause)h(a)g ! (\014lename)h(to)e(b)q(e)i(quoted)e(b)o(y)h(the)g(completer)h(when)f ! (they)195 1828 y(app)q(ear)e(in)h(a)f(completed)h(\014lename.)21 ! b(The)16 b(default)g(is)f(the)h(n)o(ull)g(string.)1773 ! 1944 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p ! 436 1944 V 21 w(sp)r(ecial)p 623 1944 V 22 w(pre\014xes)195 ! 1999 y Fu(The)14 b(list)h(of)e(c)o(haracters)g(that)g(are)h(w)o(ord)f ! (break)h(c)o(haracters,)f(but)h(should)h(b)q(e)f(left)g(in)h ! Fk(text)f Fu(when)195 2054 y(it)f(is)f(passed)h(to)f(the)g(completion)h ! (function.)20 b(Programs)11 b(can)h(use)h(this)g(to)f(help)h(determine) ! h(what)195 2108 y(kind)i(of)e(completing)i(to)e(do.)19 ! b(F)l(or)14 b(instance,)i(Bash)e(sets)h(this)g(v)m(ariable)h(to)e ! Ft(")p Fu($)p Ft(@")g Fu(so)g(that)g(it)h(can)195 2163 ! y(complete)h(shell)h(v)m(ariables)f(and)g(hostnames.)1773 ! 2280 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 2280 ! V 21 w(completion)p 510 2280 V 21 w(query)p 673 2280 ! V 21 w(items)195 2334 y Fu(Up)e(to)g(this)g(man)o(y)g(items)g(will)i(b) ! q(e)f(displa)o(y)o(ed)g(in)g(resp)q(onse)g(to)e(a)h(p)q ! (ossible-completions)j(call.)195 2389 y(After)14 b(that,)f(w)o(e)h(ask) ! g(the)h(user)f(if)h(she)f(is)h(sure)g(she)f(w)o(an)o(ts)f(to)h(see)h ! (them)f(all.)20 b(The)15 b(default)g(v)m(alue)195 2444 ! y(is)h(100.)1773 2560 y(V)l(ariable)-1861 b Fi(int)20 ! b Fh(rl)p 215 2560 V 21 w(completion)p 510 2560 V 21 ! w(app)r(end)p 715 2560 V 19 w(c)n(haracter)195 2615 y ! Fu(When)d(a)f(single)i(completion)g(alternativ)o(e)f(matc)o(hes)f(at)g ! (the)h(end)g(of)f(the)h(command)f(line,)j(this)195 2670 ! y(c)o(haracter)10 b(is)h(app)q(ended)i(to)d(the)g(inserted)i ! (completion)g(text.)18 b(The)11 b(default)g(is)g(a)g(space)g(c)o ! (haracter)p eop ! %%Page: 46 48 ! 46 47 bop 75 -58 a Fu(46)1299 b(GNU)15 b(Readline)h(Library)195 ! 149 y(\(`)e('\).)19 b(Setting)14 b(this)f(to)g(the)g(n)o(ull)i(c)o ! (haracter)e(\(`)p Ft(\\0)p Fu('\))e(prev)o(en)o(ts)i(an)o(ything)h(b)q ! (eing)h(app)q(ended)f(auto-)195 204 y(matically)l(.)21 ! b(This)15 b(can)f(b)q(e)h(c)o(hanged)g(in)g(custom)f(completion)i ! (functions)f(to)f(pro)o(vide)h(the)f(\\most)195 259 y(sensible)i(w)o ! (ord)c(separator)h(c)o(haracter")f(according)i(to)f(an)h ! (application-sp)q(eci\014c)j(command)c(line)195 314 y(syn)o(tax)h(sp)q ! (eci\014cation.)1773 423 y(V)l(ariable)-1861 b Fi(int)20 ! b Fh(rl)p 215 423 18 3 v 21 w(completion)p 510 423 V ! 21 w(suppress)p 746 423 V 19 w(app)r(end)195 478 y Fu(If)e(non-zero,)g ! Fk(rl)p 476 478 14 2 v 17 w(completion)p 709 478 V 18 ! w(app)q(end)p 871 478 V 17 w(c)o(haracter)i Fu(is)f(not)e(app)q(ended)i ! (to)e(matc)o(hes)g(at)h(the)f(end)195 533 y(of)c(the)h(command)g(line,) ! h(as)f(describ)q(ed)h(ab)q(o)o(v)o(e.)k(It)14 b(is)h(set)e(to)g(0)h(b)q ! (efore)g(an)o(y)f(application-sp)q(eci)q(\014c)195 588 ! y(completion)j(function)g(is)g(called.)1773 697 y(V)l(ariable)-1861 ! b Fi(int)20 b Fh(rl)p 215 697 18 3 v 21 w(completion)p ! 510 697 V 21 w(mark)p 662 697 V 19 w(symlink)p 875 697 ! V 21 w(dirs)195 752 y Fu(If)c(non-zero,)g(a)g(slash)g(will)i(b)q(e)e ! (app)q(ended)i(to)d(completed)i(\014lenames)g(that)e(are)g(sym)o(b)q ! (olic)j(links)195 807 y(to)11 b(directory)i(names,)f(sub)s(ject)g(to)f ! (the)i(v)m(alue)g(of)f(the)g(user-settable)g Fk(mark-directories)j ! Fu(v)m(ariable.)195 862 y(This)i(v)m(ariable)h(exists)f(so)g(that)e ! (application)k(completion)f(functions)f(can)g(o)o(v)o(erride)g(the)f ! (user's)195 917 y(global)f(preference)g(\(set)e(via)h(the)g ! Fk(mark-symlink)o(ed-directories)k Fu(Readline)e(v)m(ariable\))f(if)f ! (appro-)195 971 y(priate.)20 b(This)15 b(v)m(ariable)g(is)g(set)f(to)f ! (the)i(user's)e(preference)j(b)q(efore)e(an)o(y)g(application)i ! (completion)195 1026 y(function)j(is)g(called,)h(so)e(unless)h(that)f ! (function)h(mo)q(di\014es)g(the)f(v)m(alue,)i(the)e(user's)g ! (preferences)195 1081 y(are)d(honored.)1773 1191 y(V)l(ariable)-1861 ! b Fi(int)20 b Fh(rl)p 215 1191 V 21 w(ignore)p 391 1191 ! V 20 w(completion)p 685 1191 V 21 w(duplicates)195 1245 ! y Fu(If)15 b(non-zero,)h(then)f(duplicates)i(in)f(the)f(matc)o(hes)g ! (are)g(remo)o(v)o(ed.)k(The)d(default)g(is)f(1.)1773 ! 1355 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 1355 ! V 21 w(\014lename)p 444 1355 V 20 w(completion)p 738 ! 1355 V 21 w(desired)195 1410 y Fu(Non-zero)c(means)g(that)f(the)h ! (results)g(of)g(the)g(matc)o(hes)f(are)h(to)f(b)q(e)i(treated)e(as)g ! (\014lenames.)23 b(This)195 1465 y(is)14 b Fl(always)j ! Fu(zero)c(on)g(en)o(try)l(,)g(and)h(can)f(only)h(b)q(e)g(c)o(hanged)f ! (within)i(a)e(completion)h(en)o(try)f(generator)195 1519 ! y(function.)38 b(If)21 b(it)g(is)g(set)g(to)f(a)g(non-zero)h(v)m(alue,) ! i(directory)e(names)g(ha)o(v)o(e)g(a)f(slash)h(app)q(ended)195 ! 1574 y(and)d(Readline)h(attempts)d(to)h(quote)g(completed)i ! (\014lenames)f(if)g(they)g(con)o(tain)g(an)o(y)f(c)o(haracters)195 ! 1629 y(in)f Ft(rl_filename_quote_character)o(s)d Fu(and)i ! Ft(rl_filename_quoting_desired)d Fu(is)k(set)f(to)f(a)195 ! 1684 y(non-zero)h(v)m(alue.)1773 1793 y(V)l(ariable)-1861 ! b Fi(int)20 b Fh(rl)p 215 1793 V 21 w(\014lename)p 444 ! 1793 V 20 w(quoting)p 653 1793 V 21 w(desired)195 1848 ! y Fu(Non-zero)14 b(means)g(that)f(the)i(results)f(of)g(the)g(matc)o ! (hes)f(are)h(to)f(b)q(e)i(quoted)f(using)h(double)g(quotes)195 ! 1903 y(\(or)c(an)h(application-sp)q(eci\014)q(c)j(quoting)d(mec)o ! (hanism\))g(if)h(the)f(completed)h(\014lename)g(con)o(tains)f(an)o(y) ! 195 1958 y(c)o(haracters)i(in)i Ft(rl_filename_quote_chars)p ! Fu(.)h(This)f(is)f Fl(always)k Fu(non-zero)d(on)f(en)o(try)l(,)f(and)i ! (can)195 2012 y(only)c(b)q(e)g(c)o(hanged)g(within)h(a)f(completion)g ! (en)o(try)g(generator)e(function.)20 b(The)12 b(quoting)g(is)g ! (e\013ected)195 2067 y(via)j(a)g(call)i(to)d(the)i(function)g(p)q(oin)o ! (ted)g(to)e(b)o(y)h Ft(rl_filename_quoting_function)p ! Fu(.)1773 2177 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p ! 215 2177 V 21 w(attempted)p 495 2177 V 20 w(completion)p ! 789 2177 V 21 w(o)n(v)n(er)195 2232 y Fu(If)47 b(an)g(application-sp)q ! (eci\014)q(c)j(completion)e(function)g(assigned)f(to)g ! Ft(rl_attempted_)195 2286 y(completion_function)24 b ! Fu(sets)i(this)h(v)m(ariable)h(to)e(a)g(non-zero)h(v)m(alue,)j ! (Readline)e(will)g(not)195 2341 y(p)q(erform)15 b(its)g(default)g ! (\014lename)h(completion)g(ev)o(en)f(if)g(the)g(application's)h ! (completion)g(function)195 2396 y(returns)f(no)g(matc)o(hes.)20 ! b(It)15 b(should)h(b)q(e)g(set)f(only)h(b)o(y)f(an)g(application's)h ! (completion)h(function.)1773 2506 y(V)l(ariable)-1861 ! b Fi(int)20 b Fh(rl)p 215 2506 V 21 w(completion)p 510 ! 2506 V 21 w(t)n(yp)r(e)195 2560 y Fu(Set)e(to)e(a)i(c)o(haracter)f ! (describing)i(the)e(t)o(yp)q(e)h(of)f(completion)i(Readline)g(is)f ! (curren)o(tly)g(attempt-)195 2615 y(ing;)g(see)f(the)f(description)i ! (of)f Ft(rl_complete_internal\(\))c Fu(\(see)k(Section)h(2.6.2)d ! ([Completion)195 2670 y(F)l(unctions],)g(page)g(42\))g(for)f(the)h ! (list)h(of)f(c)o(haracters.)p eop ! %%Page: 47 49 ! 47 48 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(47)1773 149 y(V)l(ariable)-1861 b Fi(int)20 ! b Fh(rl)p 215 149 18 3 v 21 w(inhibit)p 399 149 V 23 ! w(completion)195 204 y Fu(If)14 b(this)h(v)m(ariable)g(is)g(non-zero,)f ! (completion)i(is)e(inhibited.)22 b(The)15 b(completion)g(c)o(haracter)e ! (will)j(b)q(e)195 259 y(inserted)g(as)f(an)o(y)g(other)g(b)q(ound)h(to) ! e Ft(self-insert)p Fu(.)75 371 y Fj(2.6.4)30 b(A)21 b(Short)f ! (Completion)g(Example)137 467 y Fu(Here)11 b(is)f(a)g(small)h ! (application)h(demonstrating)e(the)g(use)h(of)e(the)i(GNU)f(Readline)h ! (library)l(.)19 b(It)11 b(is)f(called)75 522 y Ft(fileman)p ! Fu(,)17 b(and)h(the)g(source)g(co)q(de)g(resides)h(in)f(`)p ! Ft(examples/fileman.c)p Fu('.)25 b(This)18 b(sample)g(application)75 ! 577 y(pro)o(vides)c(completion)g(of)e(command)h(names,)g(line)i ! (editing)g(features,)d(and)i(access)f(to)f(the)h(history)h(list.)p eop ! %%Page: 48 50 ! 48 49 bop 75 -58 a Fu(48)1299 b(GNU)15 b(Readline)h(Library)195 ! 149 y Ft(/*)24 b(fileman.c)e(--)i(A)g(tiny)f(application)f(which)h ! (demonstrates)g(how)g(to)h(use)f(the)267 201 y(GNU)g(Readline)g ! (library.)46 b(This)24 b(application)e(interactively)g(allows)h(users) ! 267 253 y(to)g(manipulate)g(files)g(and)g(their)g(modes.)h(*/)195 ! 357 y(#include)f()195 409 y(#include)g()195 ! 461 y(#include)g()195 513 y(#include)g()195 ! 565 y(#include)g()195 668 y(#include)g ! ()195 720 y(#include)g()195 ! 824 y(extern)g(char)g(*xmalloc)g(\(\);)195 928 y(/*)h(The)f(names)g(of) ! h(functions)e(that)i(actually)f(do)g(the)h(manipulation.)e(*/)195 ! 980 y(int)h(com_list)g(__P\(\(char)g(*\)\);)195 1032 ! y(int)g(com_view)g(__P\(\(char)g(*\)\);)195 1083 y(int)g(com_rename)g ! (__P\(\(char)g(*\)\);)195 1135 y(int)g(com_stat)g(__P\(\(char)g(*\)\);) ! 195 1187 y(int)g(com_pwd)g(__P\(\(char)g(*\)\);)195 1239 ! y(int)g(com_delete)g(__P\(\(char)g(*\)\);)195 1291 y(int)g(com_help)g ! (__P\(\(char)g(*\)\);)195 1343 y(int)g(com_cd)g(__P\(\(char)g(*\)\);) ! 195 1395 y(int)g(com_quit)g(__P\(\(char)g(*\)\);)195 ! 1499 y(/*)h(A)f(structure)g(which)g(contains)g(information)f(on)i(the)f ! (commands)g(this)g(program)267 1550 y(can)g(understand.)f(*/)195 ! 1654 y(typedef)h(struct)g({)243 1706 y(char)g(*name;)g(/*)h(User)f ! (printable)g(name)g(of)h(the)f(function.)g(*/)243 1758 ! y(rl_icpfunc_t)f(*func;)h(/*)h(Function)e(to)i(call)f(to)h(do)f(the)h ! (job.)f(*/)243 1810 y(char)g(*doc;)g(/*)h(Documentation)e(for)h(this)h ! (function.)46 b(*/)195 1862 y(})24 b(COMMAND;)195 1966 ! y(COMMAND)f(commands[])f(=)i({)243 2017 y({)f("cd",)h(com_cd,)f ! ("Change)f(to)i(directory)f(DIR")g(},)243 2069 y({)g("delete",)g ! (com_delete,)f("Delete)h(FILE")h(},)243 2121 y({)f("help",)g(com_help,) ! g("Display)g(this)g(text")g(},)243 2173 y({)g("?",)h(com_help,)e ! ("Synonym)h(for)h(`help'")f(},)243 2225 y({)g("list",)g(com_list,)g ! ("List)g(files)g(in)h(DIR")f(},)243 2277 y({)g("ls",)h(com_list,)e ! ("Synonym)h(for)g(`list'")g(},)243 2329 y({)g("pwd",)g(com_pwd,)g ! ("Print)g(the)h(current)f(working)g(directory")f(},)243 ! 2381 y({)h("quit",)g(com_quit,)g("Quit)g(using)g(Fileman")g(},)243 ! 2433 y({)g("rename",)g(com_rename,)f("Rename)h(FILE)h(to)f(NEWNAME")g ! (},)243 2484 y({)g("stat",)g(com_stat,)g("Print)g(out)g(statistics)g ! (on)h(FILE")f(},)243 2536 y({)g("view",)g(com_view,)g("View)g(the)h ! (contents)e(of)i(FILE")f(},)243 2588 y({)g(\(char)h(*\)NULL,)f ! (\(rl_icpfunc_t)f(*\)NULL,)h(\(char)g(*\)NULL)g(})195 ! 2640 y(};)p eop ! %%Page: 49 51 ! 49 50 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(49)195 201 y Ft(/*)24 b(Forward)e(declarations.)h(*/) ! 195 253 y(char)g(*stripwhite)g(\(\);)195 305 y(COMMAND)g(*find_command) ! f(\(\);)195 409 y(/*)i(The)f(name)g(of)h(this)f(program,)g(as)h(taken)f ! (from)g(argv[0].)g(*/)195 461 y(char)g(*progname;)195 ! 565 y(/*)h(When)f(non-zero,)g(this)g(means)g(the)g(user)h(is)f(done)h ! (using)f(this)g(program.)g(*/)195 616 y(int)g(done;)195 ! 720 y(char)g(*)195 772 y(dupstr)g(\(s\))314 824 y(int)h(s;)195 ! 876 y({)243 928 y(char)f(*r;)243 1032 y(r)g(=)h(xmalloc)f(\(strlen)g ! (\(s\))g(+)h(1\);)243 1083 y(strcpy)f(\(r,)g(s\);)243 ! 1135 y(return)g(\(r\);)195 1187 y(})195 1291 y(main)g(\(argc,)g(argv\)) ! 314 1343 y(int)h(argc;)314 1395 y(char)g(**argv;)195 ! 1447 y({)243 1499 y(char)f(*line,)g(*s;)243 1602 y(progname)f(=)i ! (argv[0];)243 1706 y(initialize_readline)d(\(\);)i(/*)h(Bind)f(our)h ! (completer.)e(*/)243 1810 y(/*)h(Loop)h(reading)f(and)g(executing)g ! (lines)g(until)g(the)g(user)h(quits.)f(*/)243 1862 y(for)g(\()h(;)g ! (done)f(==)h(0;)f(\))290 1914 y({)338 1966 y(line)g(=)h(readline)f ! (\("FileMan:)f("\);)338 2069 y(if)i(\(!line\))386 2121 ! y(break;)338 2225 y(/*)g(Remove)f(leading)g(and)g(trailing)g ! (whitespace)f(from)i(the)f(line.)410 2277 y(Then,)g(if)h(there)f(is)g ! (anything)g(left,)g(add)h(it)f(to)h(the)f(history)g(list)410 ! 2329 y(and)g(execute)g(it.)h(*/)338 2381 y(s)g(=)g(stripwhite)e ! (\(line\);)338 2484 y(if)i(\(*s\))386 2536 y({)434 2588 ! y(add_history)e(\(s\);)434 2640 y(execute_line)g(\(s\);)p eop ! %%Page: 50 52 ! 50 51 bop 75 -58 a Fu(50)1299 b(GNU)15 b(Readline)h(Library)386 ! 149 y Ft(})338 253 y(free)23 b(\(line\);)290 305 y(})243 ! 357 y(exit)g(\(0\);)195 409 y(})195 513 y(/*)h(Execute)e(a)i(command)f ! (line.)g(*/)195 565 y(int)195 616 y(execute_line)f(\(line\))314 ! 668 y(char)i(*line;)195 720 y({)243 772 y(register)e(int)i(i;)243 ! 824 y(COMMAND)f(*command;)243 876 y(char)g(*word;)243 ! 980 y(/*)g(Isolate)g(the)h(command)f(word.)g(*/)243 1032 ! y(i)g(=)h(0;)243 1083 y(while)f(\(line[i])g(&&)g(whitespace)g ! (\(line[i]\)\))290 1135 y(i++;)243 1187 y(word)g(=)h(line)f(+)h(i;)243 ! 1291 y(while)f(\(line[i])g(&&)g(!whitespace)g(\(line[i]\)\))290 ! 1343 y(i++;)243 1447 y(if)g(\(line[i]\))290 1499 y(line[i++])g(=)h ! ('\\0';)243 1602 y(command)f(=)g(find_command)g(\(word\);)243 ! 1706 y(if)g(\(!command\))290 1758 y({)338 1810 y(fprintf)g(\(stderr,)g ! ("\045s:)g(No)h(such)f(command)g(for)g(FileMan.\\n",)g(word\);)338 ! 1862 y(return)g(\(-1\);)290 1914 y(})243 2017 y(/*)g(Get)h(argument)f ! (to)g(command,)g(if)g(any.)h(*/)243 2069 y(while)f(\(whitespace)f ! (\(line[i]\)\))290 2121 y(i++;)243 2225 y(word)h(=)h(line)f(+)h(i;)243 ! 2329 y(/*)f(Call)h(the)f(function.)g(*/)243 2381 y(return)g ! (\(\(*\(command->func\)\))e(\(word\)\);)195 2433 y(})195 ! 2536 y(/*)j(Look)f(up)g(NAME)h(as)f(the)h(name)f(of)h(a)f(command,)g ! (and)h(return)f(a)g(pointer)g(to)h(that)267 2588 y(command.)46 ! b(Return)23 b(a)h(NULL)f(pointer)g(if)h(NAME)f(isn't)g(a)h(command)f ! (name.)g(*/)195 2640 y(COMMAND)g(*)p eop ! %%Page: 51 53 ! 51 52 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(51)195 149 y Ft(find_command)22 b(\(name\))314 ! 201 y(char)i(*name;)195 253 y({)243 305 y(register)e(int)i(i;)243 ! 409 y(for)f(\(i)h(=)f(0;)h(commands[i].name;)e(i++\))290 ! 461 y(if)i(\(strcmp)f(\(name,)g(commands[i].name\))f(==)h(0\))338 ! 513 y(return)g(\(&commands[i]\);)243 616 y(return)g(\(\(COMMAND)f ! (*\)NULL\);)195 668 y(})195 772 y(/*)i(Strip)f(whitespace)f(from)i(the) ! f(start)g(and)h(end)f(of)h(STRING.)46 b(Return)24 b(a)f(pointer)267 ! 824 y(into)g(STRING.)g(*/)195 876 y(char)g(*)195 928 ! y(stripwhite)f(\(string\))314 980 y(char)i(*string;)195 ! 1032 y({)243 1083 y(register)e(char)i(*s,)f(*t;)243 1187 ! y(for)g(\(s)h(=)f(string;)g(whitespace)g(\(*s\);)g(s++\))290 ! 1239 y(;)243 1343 y(if)g(\(*s)h(==)f(0\))290 1395 y(return)g(\(s\);)243 ! 1499 y(t)g(=)h(s)g(+)g(strlen)f(\(s\))g(-)h(1;)243 1550 ! y(while)f(\(t)g(>)h(s)g(&&)g(whitespace)e(\(*t\)\))290 ! 1602 y(t--;)243 1654 y(*++t)h(=)h('\\0';)243 1758 y(return)f(s;)195 ! 1810 y(})195 1914 y(/*)h(***********************)o(*******)o(********)o ! (*******)o(*******)o(********)o(****)d(*/)195 1966 y(/*)1575 ! b(*/)195 2017 y(/*)429 b(Interface)23 b(to)g(Readline)g(Completion)381 ! b(*/)195 2069 y(/*)1575 b(*/)195 2121 y(/*)24 b ! (***********************)o(*******)o(********)o(*******)o(*******)o ! (********)o(****)d(*/)195 2225 y(char)i(*command_generator)f ! (__P\(\(const)g(char)i(*,)f(int\)\);)195 2277 y(char)g ! (**fileman_completion)e(__P\(\(const)i(char)g(*,)h(int,)f(int\)\);)195 ! 2381 y(/*)h(Tell)f(the)g(GNU)h(Readline)f(library)f(how)i(to)g ! (complete.)46 b(We)24 b(want)f(to)h(try)f(to)267 2433 ! y(complete)f(on)i(command)f(names)g(if)h(this)f(is)h(the)f(first)g ! (word)g(in)h(the)g(line,)f(or)267 2484 y(on)g(filenames)g(if)g(not.)h ! (*/)195 2536 y(initialize_readline)d(\(\))195 2588 y({)243 ! 2640 y(/*)i(Allow)g(conditional)g(parsing)g(of)g(the)h(~/.inputrc)e ! (file.)h(*/)p eop ! %%Page: 52 54 ! 52 53 bop 75 -58 a Fu(52)1299 b(GNU)15 b(Readline)h(Library)243 ! 149 y Ft(rl_readline_name)21 b(=)j("FileMan";)243 253 ! y(/*)f(Tell)h(the)f(completer)g(that)g(we)h(want)f(a)h(crack)f(first.)g ! (*/)243 305 y(rl_attempted_completion_)o(functio)o(n)e(=)j ! (fileman_completion;)195 357 y(})195 461 y(/*)g(Attempt)e(to)i ! (complete)f(on)g(the)h(contents)f(of)g(TEXT.)47 b(START)23 ! b(and)h(END)267 513 y(bound)f(the)g(region)g(of)h(rl_line_buffer)e ! (that)h(contains)g(the)g(word)h(to)267 565 y(complete.)46 ! b(TEXT)23 b(is)h(the)f(word)h(to)f(complete.)47 b(We)23 ! b(can)h(use)f(the)h(entire)267 616 y(contents)e(of)i(rl_line_buffer)e ! (in)h(case)h(we)f(want)h(to)f(do)h(some)f(simple)267 ! 668 y(parsing.)46 b(Returnthe)23 b(array)g(of)h(matches,)e(or)i(NULL)f ! (if)h(there)f(aren't)g(any.)g(*/)195 720 y(char)g(**)195 ! 772 y(fileman_completion)e(\(text,)i(start,)g(end\))314 ! 824 y(const)g(char)h(*text;)314 876 y(int)g(start,)f(end;)195 ! 928 y({)243 980 y(char)g(**matches;)243 1083 y(matches)g(=)g(\(char)h ! (**\)NULL;)243 1187 y(/*)f(If)h(this)f(word)h(is)f(at)h(the)f(start)g ! (of)h(the)f(line,)h(then)f(it)g(is)h(a)g(command)314 ! 1239 y(to)g(complete.)46 b(Otherwise)23 b(it)h(is)f(the)h(name)f(of)h ! (a)f(file)h(in)f(the)h(current)314 1291 y(directory.)f(*/)243 ! 1343 y(if)g(\(start)g(==)h(0\))290 1395 y(matches)f(=)h ! (rl_completion_matches)d(\(text,)i(command_generator\);)243 ! 1499 y(return)g(\(matches\);)195 1550 y(})195 1654 y(/*)h(Generator)e ! (function)h(for)g(command)g(completion.)47 b(STATE)23 ! b(lets)g(us)267 1706 y(know)g(whether)g(to)g(start)h(from)f(scratch;)g ! (without)g(any)g(state)267 1758 y(\(i.e.)g(STATE)g(==)h(0\),)f(then)g ! (we)h(start)f(at)h(the)f(top)h(of)f(the)h(list.)f(*/)195 ! 1810 y(char)g(*)195 1862 y(command_generator)f(\(text,)h(state\))314 ! 1914 y(const)g(char)h(*text;)314 1966 y(int)g(state;)195 ! 2017 y({)243 2069 y(static)f(int)g(list_index,)g(len;)243 ! 2121 y(char)g(*name;)243 2225 y(/*)g(If)h(this)f(is)h(a)g(new)f(word)g ! (to)h(complete,)f(initialize)f(now.)47 b(This)314 2277 ! y(includes)23 b(saving)g(the)h(length)f(of)g(TEXT)h(for)f(efficiency,)f ! (and)314 2329 y(initializing)h(the)g(index)g(variable)g(to)h(0.)f(*/) ! 243 2381 y(if)g(\(!state\))290 2433 y({)338 2484 y(list_index)g(=)g(0;) ! 338 2536 y(len)h(=)f(strlen)g(\(text\);)290 2588 y(})p eop ! %%Page: 53 55 ! 53 54 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(53)243 149 y Ft(/*)23 b(Return)g(the)h(next)f(name)g ! (which)h(partially)e(matches)h(from)g(the)314 201 y(command)g(list.)g ! (*/)243 253 y(while)g(\(name)g(=)h(commands[list_index].name)o(\))290 ! 305 y({)338 357 y(list_index++;)338 461 y(if)g(\(strncmp)f(\(name,)g ! (text,)g(len\))g(==)h(0\))386 513 y(return)f(\(dupstr\(name\)\);)290 ! 565 y(})243 668 y(/*)g(If)h(no)f(names)h(matched,)e(then)i(return)f ! (NULL.)g(*/)243 720 y(return)g(\(\(char)g(*\)NULL\);)195 ! 772 y(})195 876 y(/*)h(***********************)o(*******)o(********)o ! (*******)o(*******)o(********)o(****)d(*/)195 928 y(/*)1575 ! b(*/)195 980 y(/*)549 b(FileMan)22 b(Commands)644 b(*/)195 ! 1032 y(/*)1575 b(*/)195 1083 y(/*)24 b(***********************)o ! (*******)o(********)o(*******)o(*******)o(********)o(****)d(*/)195 ! 1187 y(/*)j(String)f(to)g(pass)h(to)f(system)g(\(\).)47 ! b(This)24 b(is)f(for)h(the)f(LIST,)g(VIEW)h(and)f(RENAME)267 ! 1239 y(commands.)f(*/)195 1291 y(static)h(char)g(syscom[1024];)195 ! 1395 y(/*)h(List)f(the)g(file\(s\))g(named)g(in)h(arg.)f(*/)195 ! 1447 y(com_list)g(\(arg\))314 1499 y(char)h(*arg;)195 ! 1550 y({)243 1602 y(if)f(\(!arg\))290 1654 y(arg)h(=)g("";)243 ! 1758 y(sprintf)f(\(syscom,)f("ls)i(-FClg)f(\045s",)g(arg\);)243 ! 1810 y(return)g(\(system)g(\(syscom\)\);)195 1862 y(})195 ! 1966 y(com_view)g(\(arg\))314 2017 y(char)h(*arg;)195 ! 2069 y({)243 2121 y(if)f(\(!valid_argument)f(\("view",)h(arg\)\))290 ! 2173 y(return)g(1;)243 2277 y(sprintf)g(\(syscom,)f("more)i(\045s",)f ! (arg\);)243 2329 y(return)g(\(system)g(\(syscom\)\);)195 ! 2381 y(})195 2484 y(com_rename)f(\(arg\))314 2536 y(char)i(*arg;)195 ! 2588 y({)243 2640 y(too_dangerous)e(\("rename"\);)p eop ! %%Page: 54 56 ! 54 55 bop 75 -58 a Fu(54)1299 b(GNU)15 b(Readline)h(Library)243 ! 149 y Ft(return)23 b(\(1\);)195 201 y(})195 305 y(com_stat)g(\(arg\)) ! 314 357 y(char)h(*arg;)195 409 y({)243 461 y(struct)f(stat)g(finfo;)243 ! 565 y(if)g(\(!valid_argument)f(\("stat",)h(arg\)\))290 ! 616 y(return)g(\(1\);)243 720 y(if)g(\(stat)g(\(arg,)h(&finfo\))f(==)g ! (-1\))290 772 y({)338 824 y(perror)g(\(arg\);)338 876 ! y(return)g(\(1\);)290 928 y(})243 1032 y(printf)g(\("Statistics)f(for)h ! (`\045s':\\n",)g(arg\);)243 1135 y(printf)g(\("\045s)g(has)h(\045d)f ! (link\045s,)g(and)g(is)h(\045d)g(byte\045s)f(in)g(length.\\n",)g(arg,) ! 434 1187 y(finfo.st_nlink,)434 1239 y(\(finfo.st_nlink)e(==)j(1\))g(?)f ! ("")h(:)g("s",)434 1291 y(finfo.st_size,)434 1343 y(\(finfo.st_size)e ! (==)h(1\))h(?)f("")h(:)g("s"\);)243 1395 y(printf)f(\("Inode)g(Last)g ! (Change)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_ctime\)\);)243 ! 1447 y(printf)g(\(")143 b(Last)23 b(access)g(at:)g(\045s",)h(ctime)f ! (\(&finfo.st_atime\)\);)243 1499 y(printf)g(\(")95 b(Last)23 ! b(modified)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_mtime\)\);)243 ! 1550 y(return)g(\(0\);)195 1602 y(})195 1706 y(com_delete)f(\(arg\))314 ! 1758 y(char)i(*arg;)195 1810 y({)243 1862 y(too_dangerous)e ! (\("delete"\);)243 1914 y(return)h(\(1\);)195 1966 y(})195 ! 2069 y(/*)h(Print)f(out)g(help)h(for)f(ARG,)g(or)h(for)f(all)h(of)f ! (the)h(commands)f(if)g(ARG)h(is)267 2121 y(not)f(present.)g(*/)195 ! 2173 y(com_help)g(\(arg\))314 2225 y(char)h(*arg;)195 ! 2277 y({)243 2329 y(register)e(int)i(i;)243 2381 y(int)f(printed)g(=)h ! (0;)243 2484 y(for)f(\(i)h(=)f(0;)h(commands[i].name;)e(i++\))290 ! 2536 y({)338 2588 y(if)i(\(!*arg)f(||)g(\(strcmp)g(\(arg,)g ! (commands[i].name\))f(==)i(0\)\))386 2640 y({)p eop ! %%Page: 55 57 ! 55 56 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g ! (Readline)843 b(55)434 149 y Ft(printf)23 b(\("\045s\\t\\t\045s.\\n",)e ! (commands[i].name,)h(commands[i].doc\);)434 201 y(printed++;)386 ! 253 y(})290 305 y(})243 409 y(if)h(\(!printed\))290 461 ! y({)338 513 y(printf)g(\("No)h(commands)e(match)h(`\045s'.)48 ! b(Possibilties)22 b(are:\\n",)h(arg\);)338 616 y(for)h(\(i)f(=)h(0;)g ! (commands[i].name;)d(i++\))386 668 y({)434 720 y(/*)i(Print)g(in)h(six) ! f(columns.)g(*/)434 772 y(if)g(\(printed)g(==)h(6\))481 ! 824 y({)529 876 y(printed)f(=)h(0;)529 928 y(printf)f(\("\\n"\);)481 ! 980 y(})434 1083 y(printf)g(\("\045s\\t",)f(commands[i].name\);)434 ! 1135 y(printed++;)386 1187 y(})338 1291 y(if)i(\(printed\))386 ! 1343 y(printf)f(\("\\n"\);)290 1395 y(})243 1447 y(return)g(\(0\);)195 ! 1499 y(})195 1602 y(/*)h(Change)f(to)g(the)h(directory)e(ARG.)i(*/)195 ! 1654 y(com_cd)f(\(arg\))314 1706 y(char)h(*arg;)195 1758 ! y({)243 1810 y(if)f(\(chdir)g(\(arg\))h(==)f(-1\))290 ! 1862 y({)338 1914 y(perror)g(\(arg\);)338 1966 y(return)g(1;)290 ! 2017 y(})243 2121 y(com_pwd)g(\(""\);)243 2173 y(return)g(\(0\);)195 ! 2225 y(})195 2329 y(/*)h(Print)f(out)g(the)h(current)f(working)f ! (directory.)h(*/)195 2381 y(com_pwd)g(\(ignore\))314 ! 2433 y(char)h(*ignore;)195 2484 y({)243 2536 y(char)f(dir[1024],)g(*s;) ! 243 2640 y(s)g(=)h(getcwd)f(\(dir,)g(sizeof\(dir\))g(-)g(1\);)p eop ! %%Page: 56 58 ! 56 57 bop 75 -58 a Fu(56)1299 b(GNU)15 b(Readline)h(Library)243 ! 149 y Ft(if)23 b(\(s)h(==)f(0\))290 201 y({)338 253 y(printf)g ! (\("Error)g(getting)g(pwd:)g(\045s\\n",)g(dir\);)338 ! 305 y(return)g(1;)290 357 y(})243 461 y(printf)g(\("Current)f ! (directory)h(is)h(\045s\\n",)f(dir\);)243 513 y(return)g(0;)195 ! 565 y(})195 668 y(/*)h(The)f(user)g(wishes)g(to)h(quit)f(using)g(this)h ! (program.)46 b(Just)24 b(set)f(DONE)267 720 y(non-zero.)f(*/)195 ! 772 y(com_quit)h(\(arg\))314 824 y(char)h(*arg;)195 876 ! y({)243 928 y(done)f(=)h(1;)243 980 y(return)f(\(0\);)195 ! 1032 y(})195 1135 y(/*)h(Function)e(which)i(tells)f(you)g(that)g(you)h ! (can't)f(do)h(this.)f(*/)195 1187 y(too_dangerous)f(\(caller\))314 ! 1239 y(char)i(*caller;)195 1291 y({)243 1343 y(fprintf)f(\(stderr,)457 ! 1395 y("\045s:)h(Too)f(dangerous)g(for)g(me)h(to)g(distribute.\\n")457 ! 1447 y(caller\);)243 1499 y(fprintf)f(\(stderr,)f("Write)h(it)h ! (yourself.\\n"\);)195 1550 y(})195 1654 y(/*)g(Return)f(non-zero)f(if)i ! (ARG)f(is)h(a)g(valid)f(argument)g(for)g(CALLER,)267 ! 1706 y(else)g(print)g(an)h(error)f(message)g(and)g(return)g(zero.)g(*/) ! 195 1758 y(int)195 1810 y(valid_argument)f(\(caller,)h(arg\))314 ! 1862 y(char)h(*caller,)e(*arg;)195 1914 y({)243 1966 ! y(if)h(\(!arg)g(||)h(!*arg\))290 2017 y({)338 2069 y(fprintf)f ! (\(stderr,)g("\045s:)g(Argument)g(required.\\n",)f(caller\);)338 ! 2121 y(return)h(\(0\);)290 2173 y(})243 2277 y(return)g(\(1\);)195 ! 2329 y(})p eop ! %%Page: 57 59 ! 57 58 bop 75 -58 a Fu(Concept)15 b(Index)1466 b(57)75 ! 149 y Fq(Concept)27 b(Index)75 321 y Fs(C)75 382 y Ff(command)14 ! b(editing)e Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) ! g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 ! b Ff(1)75 511 y Fs(E)75 572 y Ff(editing)15 b(command)f(lines)f ! Fe(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) ! g(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b Ff(1)75 702 y Fs(I)75 ! 763 y Ff(initiali)q(zati)q(on)16 b(\014le,)e(readline)t ! Fe(.)8 b(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) ! f(.)g(.)g(.)g(.)g(.)17 b Ff(4)75 808 y(in)o(teraction,)e(readline)5 ! b Fe(.)j(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) ! g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(1)75 ! 938 y Fs(K)75 999 y Ff(kill)d(ring)8 b Fe(.)f(.)f(.)g(.)h(.)f(.)g(.)g ! (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) ! g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 ! b Ff(3)75 1044 y(killing)c(text)9 b Fe(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)h ! (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) ! g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(2)1012 321 ! y Fs(N)1012 390 y Ff(notation,)15 b(readline)7 b Fe(.)h(.)e(.)g(.)g(.)g ! (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) ! g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(1)1012 539 y Fs(R)1012 ! 608 y Ff(readline,)15 b(function)8 b Fe(.)g(.)e(.)g(.)g(.)g(.)h(.)f(.)g ! (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) ! f(.)g(.)21 b Ff(21)1012 757 y Fs(V)1012 826 y Ff(v)n(ariables,)15 ! b(readline)t Fe(.)9 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h ! (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)17 ! b Ff(4)1012 976 y Fs(Y)1012 1044 y Ff(y)o(anking)e(text)t ! Fe(.)7 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) ! g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17 ! b Ff(2)p eop ! %%Page: 58 60 ! 58 59 bop 75 -58 a Fu(58)1299 b(GNU)15 b(Readline)h(Library)p eop - %%Page: 59 61 - 59 60 bop 75 -58 a Fu(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1187 - b(59)75 149 y Fq(F)-7 b(unction)26 b(and)h(V)-7 b(ariable)26 - b(Index)p 79 307 21 3 v 75 369 a Fd(_rl_digit_)o(p)7 - b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 - b Ff(36)75 415 y Fd(_rl_digit_)o(va)o(lue)6 b Fe(.)t(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)20 b Ff(37)75 462 y Fd(_rl_lowerc)o(as)o(e_p)6 - b Fe(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Ff(36)75 - 508 y Fd(_rl_to_low)o(er)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) - g(.)h(.)f(.)22 b Ff(36)75 554 y Fd(_rl_to_upp)o(er)6 - b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22 - b Ff(36)75 600 y Fd(_rl_upperc)o(as)o(e_p)6 b Fe(.)t(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)20 b Ff(36)75 733 y Fs(A)75 794 y - Fd(abort)11 b(\(C-g\))5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)17 b Ff(17)75 841 y Fd(accept-lin)o(e)10 - b(\(Newline)f(or)j(Return\))6 b Fe(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)19 b Ff(12)75 973 y Fs(B)75 1035 y Fd(backward-c)o(ha)o(r)10 - b(\(C-b\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 b Ff(12)75 - 1081 y Fd(backward-d)o(el)o(ete)o(-c)o(har)9 b(\(Rubout\))e - Fe(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 - b Ff(14)75 1127 y Fd(backward-k)o(il)o(l-l)o(in)o(e)10 - b(\(C-x)h(Rubout\))e Fe(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24 - b Ff(15)75 1174 y Fd(backward-k)o(il)o(l-w)o(or)o(d)10 - b(\(M-)501 1172 y Fn(h)p 512 1146 73 2 v 512 1174 a Fm(DEL)p - 512 1181 V 583 1172 a Fn(i)598 1174 y Fd(\))g Fe(.)c(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23 b Ff(15)75 1220 y - Fd(backward-w)o(or)o(d)10 b(\(M-b\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 - b Ff(12)75 1266 y Fd(beginning-)o(of)o(-hi)o(st)o(ory)9 - b(\(M-<\))h Fe(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)25 b Ff(13)75 1312 y Fd(beginning-)o(of)o(-li)o(ne)9 - b(\(C-a\))c Fe(.)t(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)18 b Ff(12)75 1359 y(b)q(ell-st)o(yle)7 - b Fe(.)i(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) - g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)20 b Ff(5)75 1490 y Fs(C)75 1552 y Fd(call-last-)o(kb)o(d-m) - o(ac)o(ro)9 b(\(C-x)j(e\))5 b Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)g(.)h(.)f(.)18 b Ff(17)75 1598 y Fd(capitalize)o(-w)o(ord)9 - b(\(M-c\))d Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(14)75 1644 y Fd(character-)o(se) - o(arc)o(h)10 b(\(C-]\))c Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)18 b Ff(18)75 - 1691 y Fd(character-)o(se)o(arc)o(h-)o(bac)o(kwa)o(rd)9 - b(\(M-C-]\))e Fe(.)s(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)20 - b Ff(18)75 1737 y Fd(clear-scre)o(en)9 b(\(C-l\))g Fe(.)t(.)d(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) - g(.)h(.)f(.)21 b Ff(12)75 1783 y(commen)o(t-b)q(egin)9 - b Fe(.)f(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)21 - b Ff(5)75 1829 y Fd(complete)10 b(\()265 1827 y Fn(h)p - 276 1801 74 2 v 276 1829 a Fm(T)m(AB)p 276 1837 V 348 - 1827 a Fn(i)363 1829 y Fd(\))f Fe(.)e(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) - 22 b Ff(16)75 1875 y(completion-query-i)q(tems)t Fe(.)9 - b(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)h(.)16 b Ff(5)75 1922 y(con)o(v)o(ert-meta)10 - b Fe(.)c(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22 - b Ff(5)75 1968 y Fd(copy-backw)o(ar)o(d-w)o(or)o(d)10 - b(\(\))c Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(15)75 2014 y Fd(copy-forwa)o(rd)o - (-wo)o(rd)9 b(\(\))e Fe(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(16)75 - 2060 y Fd(copy-regio)o(n-)o(as-)o(ki)o(ll)9 b(\(\))d - Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)18 b Ff(15)75 2193 y Fs(D)75 2255 y Fd(delete-cha)o(r)10 - b(\(C-d\))d Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(14)75 - 2301 y Fd(delete-cha)o(r-)o(or-)o(li)o(st)9 b(\(\))d - Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)18 b Ff(17)75 2347 y Fd(delete-hor)o(iz)o(ont)o(al)o - (-sp)o(ace)9 b(\(\))i Fe(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)25 b Ff(15)75 2393 y Fd(digit-argu)o(me)o(nt)9 - b(\()p Fc(M-0)p Fd(,)i Fc(M-1)p Fd(,)h(...)f Fc(M--)p - Fd(\))c Fe(.)e(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(16)75 - 2439 y(disable-comple)q(tion)9 b Fe(.)g(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)21 b Ff(5)75 2486 y Fd(do-upperca)o(se)o(-ve)o(rs)o(ion)9 - b(\(M-a,)i(M-b,)g(M-)p Fb(x)p Fd(,)h(...)o(\))159 2531 - y Fe(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) - g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(17)75 2578 y Fd(downcase-w)o(or)o(d)10 - b(\(M-l\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 b Ff(14)75 - 2624 y Fd(dump-funct)o(io)o(ns)9 b(\(\))g Fe(.)d(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)22 b Ff(18)75 2670 y Fd(dump-macro)o(s)10 b(\(\))g - Fe(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)24 b Ff(18)1012 - 307 y Fd(dump-variab)o(le)o(s)10 b(\(\))e Fe(.)e(.)h(.)f(.)g(.)g(.)g(.) - g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)23 b Ff(18)1012 449 y Fs(E)1012 514 y Ff(editing-mo)q(de)12 - b Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 - b Ff(5)1012 562 y Fd(emacs-editi)o(ng)o(-mo)o(de)9 b(\(C-e\))t - Fe(.)c(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)18 b Ff(18)1012 610 y(enable-k)o(eypad)9 b Fe(.)g(.)d(.)h(.)f(.) - g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(5)1012 - 658 y Fd(end-kbd-mac)o(ro)9 b(\(C-x)i(\)\))e Fe(.)e(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23 - b Ff(17)1012 706 y Fd(end-of-hist)o(or)o(y)10 b(\(M->\))d - Fe(.)t(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)h(.)20 b Ff(13)1012 754 y Fd(end-of-line)9 - b(\(C-e\))e Fe(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Ff(12)1012 - 802 y Fd(exchange-po)o(in)o(t-a)o(nd)o(-ma)o(rk)9 b(\(C-x)j(C-x\))c - Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(18)1012 - 850 y(expand-tilde)6 b Fe(.)j(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)19 b Ff(5)1012 991 y Fs(F)1012 1056 - y Fd(forward-bac)o(kw)o(ard)o(-d)o(ele)o(te)o(-ch)o(ar)9 - b(\(\))f Fe(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22 - b Ff(14)1012 1104 y Fd(forward-cha)o(r)10 b(\(C-f\))f - Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(12)1012 1152 y - Fd(forward-sea)o(rc)o(h-h)o(is)o(tor)o(y)10 b(\(C-s\))e - Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 - b Ff(13)1012 1200 y Fd(forward-wor)o(d)10 b(\(M-f\))f - Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(12)1012 1334 y - Fs(H)1012 1400 y Ff(history-preserv)o(e-p)q(oi)q(n)o(t)8 - b Fe(.)h(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21 b Ff(5)1012 1448 y - Fd(history-sea)o(rc)o(h-b)o(ac)o(kwa)o(rd)9 b(\(\))i - Fe(.)c(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)25 - b Ff(13)1012 1496 y Fd(history-sea)o(rc)o(h-f)o(or)o(war)o(d)10 - b(\(\))s Fe(.)c(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)17 b Ff(13)1012 1543 y(horizon)o(tal-scrol)q(l-mo)r(de)6 - b Fe(.)j(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(6)1012 1678 y - Fs(I)1012 1743 y Ff(input-meta)8 b Fe(.)g(.)e(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(6)1012 1791 - y Fd(insert-comm)o(en)o(t)10 b(\(M-#\))d Fe(.)t(.)f(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 - b Ff(18)1012 1839 y Fd(insert-comp)o(le)o(tio)o(ns)9 - b(\(M-*\))t Fe(.)c(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)18 b Ff(16)1012 1887 y(isearc)o(h-terminators)t - Fe(.)8 b(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)16 b Ff(6)1012 - 2021 y Fs(K)1012 2087 y Ff(k)o(eymap)9 b Fe(.)e(.)f(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 - b Ff(6)1012 2135 y Fd(kill-line)10 b(\(C-k\))f Fe(.)d(.)g(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)24 b Ff(15)1012 2183 y Fd(kill-region)9 - b(\(\))i Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 - b Ff(15)1012 2231 y Fd(kill-whole-)o(li)o(ne)9 b(\(\))g - Fe(.)c(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(15)1012 2278 y - Fd(kill-word)10 b(\(M-d\))f Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - 24 b Ff(15)1012 2413 y Fs(M)1012 2478 y Ff(mark-mo)q(di\014ed-li)q(nes) - 8 b Fe(.)h(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(6)1012 - 2526 y(mark-symlink)o(ed-di)q(rectori)q(es)14 b Fe(.)6 - b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)23 b Ff(6)1012 2574 y(matc)o(h-hidden-\014l)q(es)14 - b Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)24 b Ff(6)1012 - 2622 y Fd(menu-comple)o(te)9 b(\(\))g Fe(.)e(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)23 b Ff(16)1012 2670 y(meta-\015ag)t Fe(.)8 b(.)e(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 - b Ff(6)p eop - %%Page: 60 62 - 60 61 bop 75 -58 a Fu(60)1299 b(GNU)15 b(Readline)h(Library)75 - 149 y Fs(N)75 210 y Fd(next-histo)o(ry)9 b(\(C-n\))g - Fe(.)t(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(13)75 256 y Fd(non-increm)o(en)o - (tal)o(-f)o(orw)o(ard)o(-s)o(ear)o(ch)o(-hi)o(st)o(ory)9 - b(\(M-n\))159 302 y Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(13)75 - 347 y Fd(non-increm)o(en)o(tal)o(-r)o(eve)o(rse)o(-s)o(ear)o(ch)o(-hi)o - (st)o(ory)9 b(\(M-p\))159 393 y Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 - b Ff(13)75 515 y Fs(O)75 576 y Ff(output-meta)5 b Fe(.)i(.)f(.)h(.)f(.) - g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(6)75 - 622 y Fd(overwrite-)o(mo)o(de)9 b(\(\))g Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)22 b Ff(15)75 744 y Fs(P)75 805 y Ff(page-completions)14 - b Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)23 - b Ff(7)75 851 y Fd(possible-c)o(om)o(ple)o(ti)o(ons)9 - b(\(M-?\))h Fe(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)25 b Ff(16)75 897 y Fd(prefix-met)o(a)10 b(\()324 - 895 y Fn(h)p 335 868 70 2 v 335 897 a Fm(ESC)p 335 904 - V 402 895 a Fn(i)417 897 y Fd(\))g Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 - b Ff(17)75 942 y Fd(previous-h)o(is)o(tor)o(y)10 b(\(C-p\))c - Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)18 b Ff(12)75 1072 y Fs(Q)75 1133 y Fd(quoted-ins)o(er)o - (t)10 b(\(C-q)h(or)h(C-v\))c Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(14)75 1263 y Fs(R)75 - 1323 y Fd(re-read-in)o(it)o(-fi)o(le)9 b(\(C-x)i(C-r\))5 - b Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)18 - b Ff(17)75 1369 y Fd(readline)s Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Ff(21)75 - 1415 y Fd(redraw-cur)o(re)o(nt-)o(li)o(ne)9 b(\(\))d - Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)18 b Ff(12)75 1461 y Fd(reverse-se)o(ar)o(ch-)o(hi)o - (sto)o(ry)9 b(\(C-r\))g Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)23 b Ff(13)75 1506 y Fd(revert-lin)o(e)10 - b(\(M-r\))d Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(17)75 - 1552 y Fd(rl_add_def)o(un)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)22 b Ff(28)75 1598 y Fd(rl_add_fun)o(ma)o(p_e)o(nt)o(ry) - t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(31)75 1643 y Fd(rl_add_und)o(o)7 - b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 - b Ff(32)75 1689 y Fd(rl_alphabe)o(ti)o(c)9 b Fe(.)s(.)d(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)22 b Ff(36)75 1735 y Fd(rl_already)o(_p)o(rom)o - (pt)o(ed)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(25)75 - 1781 y Fd(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_f)o(unc)o(ti)o(on)t - Fe(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Ff(43)75 - 1826 y Fd(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_o)o(ver)6 - b Fe(.)s(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 - b Ff(46)75 1872 y Fd(rl_basic_q)o(uo)o(te_)o(ch)o(ara)o(cte)o(rs)8 - b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - 22 b Ff(45)75 1918 y Fd(rl_basic_w)o(or)o(d_b)o(re)o(ak_)o(cha)o(ra)o - (cte)o(rs)5 b Fe(.)s(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 - b Ff(45)75 1964 y Fd(rl_begin_u)o(nd)o(o_g)o(ro)o(up)t - Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(32)75 2009 y Fd(rl_bind_ke)o(y)7 - b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 - b Ff(30)75 2055 y Fd(rl_bind_ke)o(y_)o(in_)o(ma)o(p)5 - b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(30)75 2101 y - Fd(rl_binding)o(_k)o(eym)o(ap)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 - b Ff(27)75 2146 y Fd(rl_callbac)o(k_)o(han)o(dl)o(er_)o(ins)o(ta)o(ll)7 - b Fe(.)s(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 - b Ff(38)75 2192 y Fd(rl_callbac)o(k_)o(han)o(dl)o(er_)o(rem)o(ov)o(e)8 - b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21 - b Ff(38)75 2238 y Fd(rl_callbac)o(k_)o(rea)o(d_)o(cha)o(r)9 - b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)25 b Ff(38)75 2284 y Fd(rl_catch_s)o(ig)o(nal)o(s)6 - b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(40)75 - 2329 y Fd(rl_catch_s)o(ig)o(win)o(ch)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) - g(.)19 b Ff(40)75 2375 y Fd(rl_char_is)o(_q)o(uot)o(ed)o(_p)t - Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(44)75 2421 y Fd(rl_cleanup)o(_a)o - (fte)o(r_)o(sig)o(nal)7 b Fe(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(40)75 2467 y - Fd(rl_clear_m)o(es)o(sag)o(e)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) - 19 b Ff(33)75 2512 y Fd(rl_clear_p)o(en)o(din)o(g_)o(inp)o(ut)8 - b Fe(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)24 b Ff(35)1012 149 y Fd(rl_clear_si)o(gn)o(als)6 - b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(41)1012 - 196 y Fd(rl_complete)6 b Fe(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)24 b Ff(42)1012 242 y Fd(rl_complete)o(_i)o(nte)o(rn)o(al)s - Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(42)1012 288 y Fd(rl_complete)o(r_)o - (quo)o(te)o(_ch)o(ar)o(act)o(ers)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)20 b Ff(45)1012 335 y Fd(rl_complete)o(r_)o(wor)o - (d_)o(bre)o(ak)o(_ch)o(ara)o(ct)o(ers)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)g(.) - 25 b Ff(45)1012 381 y Fd(rl_completi)o(on)o(_ap)o(pe)o(nd_)o(ch)o(ara)o - (cte)o(r)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 - b Ff(45)1012 427 y Fd(rl_completi)o(on)o(_di)o(sp)o(lay)o(_m)o(atc)o - (hes)o(_h)o(ook)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)g(.)25 b - Ff(45)1012 474 y Fd(rl_completi)o(on)o(_en)o(tr)o(y_f)o(un)o(cti)o(on)s - Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(42,)c(43)1012 - 520 y Fd(rl_completi)o(on)o(_ma)o(rk)o(_sy)o(ml)o(ink)o(_di)o(rs)t - Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Ff(46)1012 - 566 y Fd(rl_completi)o(on)o(_ma)o(tc)o(hes)8 b Fe(.)f(.)f(.)g(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25 - b Ff(43)1012 613 y Fd(rl_completi)o(on)o(_mo)o(de)t Fe(.)t(.)6 - b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)g(.)19 b Ff(43)1012 659 y Fd(rl_completi)o(on)o(_qu) - o(er)o(y_i)o(te)o(ms)9 b Fe(.)s(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)g(.)23 b Ff(45)1012 705 y Fd(rl_completi)o(on)o(_su) - o(pp)o(res)o(s_)o(app)o(end)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)20 b Ff(46)1012 752 y Fd(rl_completi)o(on)o(_ty)o(pe)t - Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) - g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(46)1012 798 y - Fd(rl_copy_key)o(ma)o(p)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - h(.)21 b Ff(29)1012 844 y Fd(rl_copy_tex)o(t)6 b Fe(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(34)1012 891 y - Fd(rl_crlf)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(33)1012 937 y Fd(rl_delete_t)o(ex)o(t)8 - b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)21 b - Ff(34)1012 983 y Fd(rl_deprep_t)o(er)o(m_f)o(un)o(cti)o(on)7 - b Fe(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)24 b Ff(26)1012 1030 y Fd(rl_deprep_t)o(er)o(min)o(al)t - Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) - g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(35)1012 1076 - y Fd(rl_ding)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(36)1012 1122 y Fd(rl_director)o(y_)o - (com)o(pl)o(eti)o(on)o(_ho)o(ok)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)g(.)h(.)20 b Ff(44)1012 1169 y Fd(rl_discard_)o(ke)o - (yma)o(p)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 b Ff(29)1012 - 1215 y Fd(rl_dispatch)o(in)o(g)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)21 b Ff(25)1012 1261 y Fd(rl_display_)o(ma)o(tch)o(_l)o - (ist)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)h(.)25 b Ff(36)1012 1308 y Fd(rl_do_undo)8 - b Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24 - b Ff(32)1012 1354 y Fd(rl_done)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(24)1012 - 1400 y Fd(rl_editing_)o(mo)o(de)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)21 b Ff(28)1012 1447 y Fd(rl_end)5 b Fe(.)t(.)h(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 - b Ff(24)1012 1493 y Fd(rl_end_undo)o(_g)o(rou)o(p)6 b - Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 b Ff(32)1012 1539 - y Fd(rl_erase_em)o(pt)o(y_l)o(in)o(e)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 - b Ff(25)1012 1586 y Fd(rl_event_ho)o(ok)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(26)1012 1632 y Fd(rl_execute_)o(ne)o - (xt)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 - b Ff(35)1012 1678 y Fd(rl_executin)o(g_)o(key)o(ma)o(p)t - Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(26)1012 1725 y Fd(rl_executin)o(g_) - o(mac)o(ro)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(27)1012 - 1771 y Fd(rl_expand_p)o(ro)o(mpt)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)20 b Ff(34)1012 1817 y Fd(rl_explicit)o(_a)o(rg)7 - b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(28)1012 - 1864 y Fd(rl_extend_l)o(in)o(e_b)o(uf)o(fer)8 b Fe(.)f(.)f(.)g(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25 - b Ff(36)1012 1910 y Fd(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(des)o - (ire)o(d)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 - b Ff(46)1012 1956 y Fd(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(fun)o - (cti)o(on)t Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 - b Ff(43)1012 2003 y Fd(rl_filename)o(_d)o(equ)o(ot)o(ing)o(_f)o(unc)o - (tio)o(n)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 - b Ff(44)1012 2049 y Fd(rl_filename)o(_q)o(uot)o(e_)o(cha)o(ra)o(cte)o - (rs)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)20 - b Ff(45)1012 2095 y Fd(rl_filename)o(_q)o(uot)o(in)o(g_d)o(es)o(ire)o - (d)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21 - b Ff(46)1012 2142 y Fd(rl_filename)o(_q)o(uot)o(in)o(g_f)o(un)o(cti)o - (on)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)20 - b Ff(44)1012 2188 y Fd(rl_forced_u)o(pd)o(ate)o(_d)o(isp)o(la)o(y)7 - b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)23 b Ff(33)1012 2234 y Fd(rl_free_lin)o(e_)o(sta)o(te)t - Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) - g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(40)1012 2281 - y Fd(rl_free_und)o(o_)o(lis)o(t)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - 19 b Ff(32)1012 2327 y Fd(rl_function)o(_d)o(ump)o(er)t - Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) - g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(31)1012 2373 - y Fd(rl_function)o(_o)o(f_k)o(ey)o(seq)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25 - b Ff(31)1012 2420 y Fd(rl_funmap_n)o(am)o(es)7 b Fe(.)s(.)f(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)21 b Ff(31)1012 2466 y Fd(rl_generic_)o(bi)o(nd)7 - b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(30)1012 - 2512 y Fd(rl_get_keym)o(ap)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)22 b Ff(29)p eop - %%Page: 61 63 - 61 62 bop 75 -58 a Fu(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1187 - b(61)75 149 y Fd(rl_get_key)o(ma)o(p_b)o(y_)o(nam)o(e)9 - b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)25 b Ff(29)75 196 y Fd(rl_get_key)o(ma)o(p_n)o(am)o(e)5 - b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(29)75 242 y Fd(rl_get_scr)o(ee) - o(n_s)o(iz)o(e)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 - b Ff(41)75 288 y Fd(rl_get_ter)o(mc)o(ap)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)21 b Ff(37)75 335 y Fd(rl_getc)t - Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)17 b Ff(35)75 381 y Fd(rl_getc_fu)o(nc)o(tio)o(n)6 - b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(26)75 - 427 y Fd(rl_gnu_rea)o(dl)o(ine)o(_p)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) - g(.)19 b Ff(25)75 474 y Fd(rl_ignore_)o(co)o(mpl)o(et)o(ion)o(_du)o(pl) - o(ica)o(te)o(s)5 b Fe(.)s(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 - b Ff(46)75 520 y Fd(rl_ignore_)o(so)o(me_)o(co)o(mpl)o(eti)o(on)o(s_f)o - (un)o(cti)o(on)7 b Fe(.)g(.)f(.)g(.)g(.)g(.)24 b Ff(44)75 - 566 y Fd(rl_inhibit)o(_c)o(omp)o(le)o(tio)o(n)9 b Fe(.)d(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 - b Ff(47)75 613 y Fd(rl_initial)o(iz)o(e)9 b Fe(.)s(.)d(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)22 b Ff(36)75 659 y Fd(rl_insert_)o(co)o(mpl)o - (et)o(ion)o(s)9 b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 b Ff(43)75 705 y Fd(rl_insert_)o(te) - o(xt)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 - b Ff(34)75 752 y Fd(rl_instrea)o(m)7 b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(25)75 798 y Fd(rl_invokin)o(g_)o - (key)o(se)o(qs)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(31)75 - 844 y Fd(rl_invokin)o(g_)o(key)o(se)o(qs_)o(in_)o(ma)o(p)8 - b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21 - b Ff(31)75 891 y Fd(rl_kill_te)o(xt)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(34)75 937 y Fd(rl_last_fu)o(nc)6 - b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22 - b Ff(26)75 983 y Fd(rl_library)o(_v)o(ers)o(io)o(n)5 - b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(25)75 1030 y - Fd(rl_line_bu)o(ff)o(er)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)21 b Ff(24)75 1076 y Fd(rl_list_fu)o(nm)o(ap_)o(na)o(mes)s - Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(31)75 1122 y Fd(rl_macro_b)o(in)o(d)9 - b Fe(.)s(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22 - b Ff(37)75 1169 y Fd(rl_macro_d)o(um)o(per)6 b Fe(.)t(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)20 b Ff(37)75 1215 y Fd(rl_make_ba)o(re)o(_ke)o(ym) - o(ap)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(29)75 1261 - y Fd(rl_make_ke)o(ym)o(ap)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)21 b Ff(29)75 1308 y Fd(rl_mark)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 - b Ff(24)75 1354 y Fd(rl_message)7 b Fe(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Ff(33)75 1400 y Fd(rl_modifyi)o(ng)6 - b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22 - b Ff(32)75 1447 y Fd(rl_named_f)o(un)o(cti)o(on)5 b Fe(.)s(.)i(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)19 b Ff(31)75 1493 y Fd(rl_num_cha)o(rs)o(_to)o(_r)o - (ead)s Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(24)75 1539 y Fd(rl_numeric)o(_a) - o(rg)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 - b Ff(28)75 1586 y Fd(rl_on_new_)o(li)o(ne)8 b Fe(.)s(.)e(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)21 b Ff(33)75 1632 y Fd(rl_on_new_)o(li)o(ne_)o - (wi)o(th_)o(pro)o(mp)o(t)8 b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)g(.)h(.)f(.)21 b Ff(33)75 1678 y Fd(rl_outstre)o(am)6 - b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22 - b Ff(26)75 1725 y Fd(rl_parse_a)o(nd)o(_bi)o(nd)5 b Fe(.)s(.)i(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)19 b Ff(31)75 1771 y Fd(rl_pending)o(_i)o(npu)o(t)6 - b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(24)75 - 1817 y Fd(rl_point)s Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Ff(24)75 1864 y Fd(rl_possibl)o(e_)o - (com)o(pl)o(eti)o(ons)7 b Fe(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(42)75 1910 y - Fd(rl_pre_inp)o(ut)o(_ho)o(ok)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 - b Ff(26)75 1956 y Fd(rl_prep_te)o(rm)o(_fu)o(nc)o(tio)o(n)9 - b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)25 b Ff(26)75 2003 y Fd(rl_prep_te)o(rm)o(ina)o(l)6 - b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(35)75 - 2049 y Fd(rl_prompt)8 b Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)h(.)24 b Ff(25)75 2095 y Fd(rl_push_ma)o(cr)o(o_i)o(np) - o(ut)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(34)75 2142 - y Fd(rl_read_in)o(it)o(_fi)o(le)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - 19 b Ff(31)75 2188 y Fd(rl_read_ke)o(y)7 b Fe(.)f(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(34)75 2234 y - Fd(rl_readlin)o(e_)o(nam)o(e)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) - 19 b Ff(25)75 2281 y Fd(rl_readlin)o(e_)o(sta)o(te)5 - b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(27)75 2327 - y Fd(rl_readlin)o(e_)o(ver)o(si)o(on)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 - b Ff(25)75 2373 y Fd(rl_redispl)o(ay)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(33)75 2420 y Fd(rl_redispl)o(ay)o(_fu)o - (nc)o(tio)o(n)9 b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 b Ff(26)75 2466 y - Fd(rl_replace)o(_l)o(ine)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - 20 b Ff(36)75 2512 y Fd(rl_reset_a)o(ft)o(er_)o(si)o(gna)o(l)9 - b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)25 b Ff(40)1012 149 y Fd(rl_reset_li)o(ne)o(_st)o(at)o - (e)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(33)1012 195 - y Fd(rl_reset_te)o(rm)o(ina)o(l)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - 19 b Ff(35)1012 241 y Fd(rl_resize_t)o(er)o(min)o(al)t - Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) - g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(41)1012 287 y - Fd(rl_restore_)o(pr)o(omp)o(t)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 - b Ff(34)1012 333 y Fd(rl_save_pro)o(mp)o(t)8 b Fe(.)s(.)e(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)21 b Ff(33)1012 379 y Fd(rl_set_key)8 - b Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24 - b Ff(30)1012 424 y Fd(rl_set_keyb)o(oa)o(rd_)o(in)o(put)o(_t)o(ime)o - (out)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)20 - b Ff(35)1012 470 y Fd(rl_set_keym)o(ap)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(29)1012 516 y Fd(rl_set_pare)o(n_)o - (bli)o(nk)o(_ti)o(me)o(out)7 b Fe(.)t(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)22 b Ff(37)1012 562 y Fd(rl_set_prom)o(pt)8 - b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 - b Ff(34)1012 608 y Fd(rl_set_scre)o(en)o(_si)o(ze)t Fe(.)t(.)6 - b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)g(.)19 b Ff(41)1012 654 y Fd(rl_set_sign)o(al)o(s)8 - b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)21 b - Ff(41)1012 700 y Fd(rl_show_cha)o(r)6 b Fe(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(33)1012 745 y Fd(rl_special_)o(pr)o - (efi)o(xe)o(s)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(45)1012 - 791 y Fd(rl_startup_)o(ho)o(ok)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)21 b Ff(26)1012 837 y Fd(rl_stuff_ch)o(ar)8 b - Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 - b Ff(35)1012 883 y Fd(rl_terminal)o(_n)o(ame)6 b Fe(.)s(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)20 b Ff(25)1012 929 y Fd(rl_tty_set_)o(de)o(fau)o(lt)o - (_bi)o(nd)o(ing)o(s)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)21 b Ff(35)1012 975 y Fd(rl_unbind_c)o(om)o(man)o(d_)o - (in_)o(ma)o(p)7 b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)h(.)f(.)23 b Ff(30)1012 1020 y Fd(rl_unbind_f)o(un)o(cti)o - (on)o(_in)o(_m)o(ap)9 b Fe(.)s(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)g(.)23 b Ff(30)1012 1066 y Fd(rl_unbind_k)o(ey)8 - b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 - b Ff(30)1012 1112 y Fd(rl_unbind_k)o(ey)o(_in)o(_m)o(ap)s - Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) - g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(30)1012 1158 y Fd(rl_username)o(_c)o - (omp)o(le)o(tio)o(n_)o(fun)o(cti)o(on)t Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.) - g(.)h(.)f(.)g(.)18 b Ff(43)1012 1204 y Fd(rl_variable)o(_b)o(ind)6 - b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(37)1012 - 1250 y Fd(rl_variable)o(_d)o(ump)o(er)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g - (.)19 b Ff(37)1012 1380 y Fs(S)1012 1441 y Fd(self-insert)9 - b(\(a,)j(b,)g(A,)g(1,)g(!,)g(...)o(\))6 b Fe(.)g(.)g(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)20 b Ff(14)1012 1487 y Fd(set-mark)10 - b(\(C-@\))g Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 - b Ff(17)1012 1533 y(sho)o(w-all-if-am)o(bigu)q(ous)14 - b Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(7)1012 1579 - y Fd(start-kbd-m)o(ac)o(ro)9 b(\(C-x)j(\(\))c Fe(.)d(.)i(.)f(.)g(.)g(.) - g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22 - b Ff(17)1012 1701 y Fs(T)1012 1763 y Fd(tab-insert)9 - b(\(M-)1281 1761 y Fn(h)p 1292 1735 74 2 v 1292 1763 - a Fm(T)m(AB)p 1292 1770 V 1364 1761 a Fn(i)1379 1763 - y Fd(\))e Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.) - f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Ff(14)1012 1808 - y Fd(tilde-expan)o(d)10 b(\(M-~\))f Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g - (.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 - b Ff(17)1012 1854 y Fd(transpose-c)o(ha)o(rs)9 b(\(C-t\))d - Fe(.)f(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)20 b Ff(14)1012 1900 y Fd(transpose-w)o(or)o(ds)9 - b(\(M-t\))d Fe(.)f(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(14)1012 2030 y - Fs(U)1012 2092 y Fd(undo)12 b(\(C-_)f(or)h(C-x)g(C-u\))c - Fe(.)t(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)21 b Ff(17)1012 2137 y Fd(universal-a)o(rg)o - (ume)o(nt)9 b(\(\))d Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(16)1012 - 2183 y Fd(unix-line-d)o(is)o(car)o(d)10 b(\(C-u\))5 b - Fe(.)t(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)18 b Ff(15)1012 2229 y Fd(unix-word-r)o(ub)o(out)9 - b(\(C-w\))d Fe(.)t(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(15)1012 2275 y Fd(upcase-word)9 - b(\(M-u\))e Fe(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Ff(14)1012 - 2405 y Fs(V)1012 2466 y Fd(vi-editing-)o(mo)o(de)9 b(\(M-C-j\))c - Fe(.)t(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g - (.)h(.)f(.)18 b Ff(18)1012 2512 y(visible-stats)c Fe(.)6 - b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 - b Ff(7)p eop - %%Page: 62 64 - 62 63 bop 75 -58 a Fu(62)1299 b(GNU)15 b(Readline)h(Library)75 - 149 y Fs(Y)75 242 y Fd(yank)11 b(\(C-y\))5 b Fe(.)g(.)h(.)g(.)g(.)g(.)h - (.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) - h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Ff(16)1012 - 149 y Fd(yank-last-a)o(rg)9 b(\(M-.)i(or)h(M-_\))c Fe(.)f(.)f(.)g(.)g - (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 - b Ff(13)1012 196 y Fd(yank-nth-ar)o(g)10 b(\(M-C-y\))d - Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f - (.)g(.)g(.)g(.)g(.)h(.)20 b Ff(13)1012 242 y Fd(yank-pop)10 - b(\(M-y\))g Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g - (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 - b Ff(16)p eop - %%Page: -1 65 - -1 64 bop 1862 -58 a Fu(i)75 149 y Fq(T)-7 b(able)27 - b(of)f(Con)n(ten)n(ts)75 320 y Fs(1)67 b(Command)22 b(Line)i(Editing)d - Fa(.)10 b(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h - (.)f(.)g(.)g(.)42 b Fs(1)224 389 y Fu(1.1)j(In)o(tro)q(duction)16 - b(to)f(Line)h(Editing)e Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) - f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f - (.)27 b Fu(1)224 444 y(1.2)45 b(Readline)16 b(In)o(teraction)8 - b Fl(.)g(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) - h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f - (.)h(.)f(.)23 b Fu(1)374 499 y(1.2.1)44 b(Readline)16 - b(Bare)f(Essen)o(tials)f Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h - (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27 - b Fu(1)374 553 y(1.2.2)44 b(Readline)16 b(Mo)o(v)o(emen)o(t)e(Commands) - 7 b Fl(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f - (.)h(.)21 b Fu(2)374 608 y(1.2.3)44 b(Readline)16 b(Killing)i(Commands) - 11 b Fl(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h - (.)f(.)h(.)f(.)h(.)25 b Fu(2)374 663 y(1.2.4)44 b(Readline)16 - b(Argumen)o(ts)c Fl(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h - (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 - b Fu(3)374 718 y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h - (the)f(History)e Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27 - b Fu(3)224 773 y(1.3)45 b(Readline)16 b(Init)h(File)e - Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) - h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f - (.)h(.)f(.)h(.)f(.)29 b Fu(4)374 827 y(1.3.1)44 b(Readline)16 - b(Init)g(File)h(Syn)o(tax)7 b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) - f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 - b Fu(4)374 882 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)5 - b Fl(.)i(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) - h(.)f(.)h(.)g(.)f(.)19 b Fu(9)374 937 y(1.3.3)44 b(Sample)16 - b(Init)g(File)11 b Fl(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h - (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) - h(.)f(.)26 b Fu(9)224 992 y(1.4)45 b(Bindable)17 b(Readline)g(Commands) - 6 b Fl(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h - (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fu(12)374 - 1046 y(1.4.1)44 b(Commands)14 b(F)l(or)h(Mo)o(ving)e - Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) - h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Fu(12)374 1101 y(1.4.2)44 - b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9 - b Fl(.)e(.)h(.)f(.)h(.)f(.)h(.)24 b Fu(12)374 1156 y(1.4.3)44 - b(Commands)14 b(F)l(or)h(Changing)h(T)l(ext)e Fl(.)8 - b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30 - b Fu(14)374 1211 y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)9 - b Fl(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) - h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 b Fu(15)374 - 1266 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c - Fl(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)27 - b Fu(16)374 1320 y(1.4.6)44 b(Letting)15 b(Readline)i(T)o(yp)q(e)e(F)l - (or)g(Y)l(ou)10 b Fl(.)d(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) - h(.)f(.)h(.)f(.)25 b Fu(16)374 1375 y(1.4.7)44 b(Keyb)q(oard)15 - b(Macros)6 b Fl(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f - (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21 - b Fu(17)374 1430 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)7 - b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) - 22 b Fu(17)224 1485 y(1.5)45 b(Readline)16 b(vi)g(Mo)q(de)e - Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) - f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f - (.)h(.)f(.)h(.)28 b Fu(18)75 1606 y Fs(2)67 b(Programming)23 - b(with)g(GNU)f(Readline)12 b Fa(.)f(.)g(.)f(.)g(.)g(.)g(.)h(.)f(.)35 - b Fs(21)224 1675 y Fu(2.1)45 b(Basic)16 b(Beha)o(vior)8 - b Fl(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) - f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f - (.)h(.)f(.)h(.)f(.)h(.)f(.)23 b Fu(21)224 1729 y(2.2)45 - b(Custom)14 b(F)l(unctions)7 b Fl(.)i(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f - (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) - f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)22 b Fu(22)374 - 1784 y(2.2.1)44 b(Readline)16 b(T)o(yp)q(edefs)9 b Fl(.)g(.)e(.)h(.)f - (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) - f(.)h(.)f(.)h(.)g(.)f(.)h(.)24 b Fu(23)374 1839 y(2.2.2)44 - b(W)l(riting)16 b(a)e(New)i(F)l(unction)6 b Fl(.)i(.)f(.)h(.)f(.)h(.)f - (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) - 21 b Fu(23)224 1894 y(2.3)45 b(Readline)16 b(V)l(ariables)g - Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) - h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g - (.)f(.)h(.)29 b Fu(24)224 1949 y(2.4)45 b(Readline)16 - b(Con)o(v)o(enience)h(F)l(unctions)7 b Fl(.)i(.)e(.)h(.)f(.)h(.)f(.)h - (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) - 23 b Fu(28)374 2003 y(2.4.1)44 b(Naming)15 b(a)g(F)l(unction)e - Fl(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) - h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27 b Fu(28)374 - 2058 y(2.4.2)44 b(Selecting)17 b(a)e(Keymap)6 b Fl(.)h(.)h(.)g(.)f(.)h - (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) - h(.)f(.)h(.)f(.)h(.)21 b Fu(29)374 2113 y(2.4.3)44 b(Binding)17 - b(Keys)5 b Fl(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f - (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) - h(.)f(.)20 b Fu(30)374 2168 y(2.4.4)44 b(Asso)q(ciating)16 - b(F)l(unction)g(Names)f(and)g(Bindings)8 b Fl(.)h(.)f(.)f(.)h(.)f(.)h - (.)23 b Fu(31)374 2222 y(2.4.5)44 b(Allo)o(wing)16 b(Undoing)f - Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) - f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)29 b - Fu(32)374 2277 y(2.4.6)44 b(Redispla)o(y)10 b Fl(.)e(.)g(.)g(.)f(.)h(.) - f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h - (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26 - b Fu(33)374 2332 y(2.4.7)44 b(Mo)q(difying)16 b(T)l(ext)7 - b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) - f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22 - b Fu(34)374 2387 y(2.4.8)44 b(Character)14 b(Input)c - Fl(.)f(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h - (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)25 - b Fu(34)374 2442 y(2.4.9)44 b(T)l(erminal)16 b(Managemen)o(t)11 - b Fl(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) - h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fu(35)374 2496 y(2.4.10)43 - b(Utilit)o(y)17 b(F)l(unctions)c Fl(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f - (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) - f(.)h(.)f(.)28 b Fu(36)374 2551 y(2.4.11)43 b(Miscellaneous)18 - b(F)l(unctions)6 b Fl(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h - (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fu(37)374 - 2606 y(2.4.12)43 b(Alternate)16 b(In)o(terface)f Fl(.)7 - b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f - (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30 b Fu(37)374 2661 - y(2.4.13)43 b(A)16 b(Readline)g(Example)9 b Fl(.)f(.)f(.)h(.)f(.)h(.)g - (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) - h(.)f(.)24 b Fu(38)p eop - %%Page: -2 66 - -2 65 bop 75 -58 a Fu(ii)1321 b(GNU)15 b(Readline)h(Library)224 - 42 y(2.5)45 b(Readline)16 b(Signal)h(Handling)12 b Fl(.)c(.)g(.)f(.)h - (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) - f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fu(39)224 96 - y(2.6)45 b(Custom)14 b(Completers)f Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.) - f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f - (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)28 b Fu(41)374 - 151 y(2.6.1)44 b(Ho)o(w)14 b(Completing)i(W)l(orks)10 - b Fl(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) - f(.)h(.)f(.)h(.)f(.)h(.)f(.)25 b Fu(41)374 206 y(2.6.2)44 - b(Completion)16 b(F)l(unctions)6 b Fl(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h - (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) - 21 b Fu(42)374 261 y(2.6.3)44 b(Completion)16 b(V)l(ariables)c - Fl(.)c(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f - (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fu(43)374 315 - y(2.6.4)44 b(A)15 b(Short)g(Completion)h(Example)5 b - Fl(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h - (.)f(.)20 b Fu(47)75 437 y Fs(Concept)i(Index)10 b Fa(.)i(.)e(.)g(.)g - (.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.) - g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)33 b Fs(57)75 572 - y(F)-6 b(unction)25 b(and)d(V)-6 b(ariable)24 b(Index)9 - b Fa(.)i(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) - g(.)32 b Fs(59)p eop %%Trailer end --- 2326,7288 ---- %%EndSetup %%Page: 1 1 ! 1 0 bop 150 1318 a Fu(GNU)65 b(Readline)i(Library)p 150 ! 1418 3600 34 v 1873 1515 a Ft(Edition)28 b(5.0,)k(for)e ! Fs(Readline)e(Library)h Ft(V)-8 b(ersion)30 b(5.0.)3218 ! 1623 y(Jan)m(uary)g(2004)150 4935 y Fr(Chet)45 b(Ramey)-11 ! b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150 ! 5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F) ! -11 b(oundation)p 150 5141 3600 17 v eop %%Page: 2 2 ! 2 1 bop 150 3024 a Ft(This)27 b(man)m(ual)i(describ)s(es)f(the)h(GNU)h ! (Readline)e(Library)f(\(v)m(ersion)i(5.0,)i(28)f(Jan)m(uary)f(2004\),)j ! (a)d(library)150 3133 y(whic)m(h)38 b(aids)g(in)g(the)h(consistency)g ! (of)h(user)e(in)m(terface)i(across)g(discrete)f(programs)f(whic)m(h)g ! (pro)m(vide)h(a)150 3243 y(command)30 b(line)f(in)m(terface.)150 ! 3377 y(Cop)m(yrigh)m(t)602 3374 y(c)577 3377 y Fq(\015)h ! Ft(1988-2004)k(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8 ! b(oundation,)31 b(Inc.)150 3512 y(P)m(ermission)f(is)i(gran)m(ted)h(to) ! f(mak)m(e)i(and)d(distribute)f(v)m(erbatim)i(copies)g(of)g(this)f(man)m ! (ual)h(pro)m(vided)f(the)150 3621 y(cop)m(yrigh)m(t)g(notice)f(and)g ! (this)f(p)s(ermission)f(notice)i(are)h(preserv)m(ed)f(on)h(all)e ! (copies.)390 3756 y(P)m(ermission)k(is)i(gran)m(ted)g(to)h(cop)m(y)-8 ! b(,)38 b(distribute)33 b(and/or)i(mo)s(dify)e(this)h(do)s(cumen)m(t)h ! (under)390 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8 ! b(ree)39 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)38 ! b(1.1)h(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)27 ! b(published)c(b)m(y)28 b(the)f(F)-8 b(ree)29 b(Soft)m(w)m(are)f(F)-8 ! b(oundation;)29 b(with)d(no)h(In)m(v)-5 b(arian)m(t)27 ! b(Sections,)390 4085 y(with)i(the)i(F)-8 b(ron)m(t-Co)m(v)m(er)33 ! b(texts)e(b)s(eing)f(\\A)h(GNU)g(Man)m(ual,")g(and)f(with)f(the)i(Bac)m ! (k-Co)m(v)m(er)390 4194 y(T)-8 b(exts)33 b(as)g(in)e(\(a\))i(b)s(elo)m ! (w.)46 b(A)33 b(cop)m(y)g(of)f(the)h(license)e(is)h(included)d(in)i ! (the)i(section)f(en)m(titled)390 4304 y(\\GNU)f(F)-8 ! b(ree)32 b(Do)s(cumen)m(tation)f(License.")390 4438 y(\(a\))39 ! b(The)f(FSF's)g(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext)39 b(is:)55 ! b(\\Y)-8 b(ou)39 b(ha)m(v)m(e)g(freedom)f(to)h(cop)m(y)f(and)g(mo)s ! (dify)390 4548 y(this)31 b(GNU)j(Man)m(ual,)f(lik)m(e)f(GNU)h(soft)m(w) ! m(are.)49 b(Copies)31 b(published)e(b)m(y)j(the)h(F)-8 ! b(ree)34 b(Soft)m(w)m(are)390 4658 y(F)-8 b(oundation)30 ! b(raise)g(funds)e(for)j(GNU)g(dev)m(elopmen)m(t.")150 ! 4902 y(Published)c(b)m(y)j(the)h(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 ! b(oundation)150 5011 y(59)31 b(T)-8 b(emple)30 b(Place,)h(Suite)e(330,) ! 150 5121 y(Boston,)j(MA)e(02111-1307)150 5230 y(USA)p ! eop ! %%Page: -1 3 ! -1 2 bop 3725 -116 a Ft(i)150 299 y Fp(T)-13 b(able)54 ! b(of)g(Con)l(ten)l(ts)150 641 y Fr(1)135 b(Command)45 ! b(Line)g(Editing)40 b Fo(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h ! (.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)84 b Fr(1)449 778 ! y Ft(1.1)92 b(In)m(tro)s(duction)29 b(to)i(Line)e(Editing)23 ! b Fn(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 ! b Ft(1)449 888 y(1.2)92 b(Readline)29 b(In)m(teraction)16 ! b Fn(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)46 b Ft(1)748 997 y(1.2.1)93 b(Readline)29 ! b(Bare)i(Essen)m(tials)25 b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 ! b Ft(1)748 1107 y(1.2.2)93 b(Readline)29 b(Mo)m(v)m(emen)m(t)j ! (Commands)14 b Fn(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)44 b Ft(2)748 1216 y(1.2.3)93 b(Readline)29 ! b(Killing)e(Commands)22 b Fn(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)51 b Ft(2)748 ! 1326 y(1.2.4)93 b(Readline)29 b(Argumen)m(ts)c Fn(.)15 ! b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Ft(3)748 ! 1435 y(1.2.5)93 b(Searc)m(hing)29 b(for)i(Commands)e(in)g(the)h ! (History)c Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 ! b Ft(3)449 1545 y(1.3)92 b(Readline)29 b(Init)g(File)f ! Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)58 b Ft(4)748 1655 y(1.3.1)93 b(Readline)29 ! b(Init)g(File)g(Syn)m(tax)13 b Fn(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43 ! b Ft(4)748 1764 y(1.3.2)93 b(Conditional)27 b(Init)j(Constructs)9 ! b Fn(.)14 b(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)39 b Ft(9)748 1874 y(1.3.3)93 ! b(Sample)29 b(Init)g(File)21 b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)51 b Ft(10)449 1983 y(1.4)92 b(Bindable)29 ! b(Readline)g(Commands)12 b Fn(.)i(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)41 ! b Ft(13)748 2093 y(1.4.1)93 b(Commands)29 b(F)-8 b(or)31 ! b(Mo)m(ving)c Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b Ft(13)748 ! 2203 y(1.4.2)93 b(Commands)29 b(F)-8 b(or)31 b(Manipulating)d(The)i ! (History)18 b Fn(.)d(.)g(.)g(.)g(.)g(.)g(.)47 b Ft(13)748 ! 2312 y(1.4.3)93 b(Commands)29 b(F)-8 b(or)31 b(Changing)e(T)-8 ! b(ext)30 b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)h(.)f(.)58 b Ft(14)748 2422 y(1.4.4)93 b(Killing)27 ! b(And)i(Y)-8 b(anking)17 b Fn(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)46 ! b Ft(16)748 2531 y(1.4.5)93 b(Sp)s(ecifying)27 b(Numeric)j(Argumen)m ! (ts)25 b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)54 b Ft(17)748 2641 y(1.4.6)93 b(Letting)30 ! b(Readline)f(T)m(yp)s(e)h(F)-8 b(or)31 b(Y)-8 b(ou)19 ! b Fn(.)d(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! 49 b Ft(17)748 2751 y(1.4.7)93 b(Keyb)s(oard)29 b(Macros)11 ! b Fn(.)17 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 ! b Ft(17)748 2860 y(1.4.8)93 b(Some)30 b(Miscellaneous)f(Commands)13 ! b Fn(.)h(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) ! 42 b Ft(18)449 2970 y(1.5)92 b(Readline)29 b(vi)g(Mo)s(de)e ! Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)56 b Ft(19)150 3212 y Fr(2)135 b(Programming)46 ! b(with)f(GNU)g(Readline)25 b Fo(.)c(.)e(.)h(.)f(.)g(.)h(.)f(.)h(.)69 ! b Fr(21)449 3349 y Ft(2.1)92 b(Basic)31 b(Beha)m(vior)15 ! b Fn(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)h(.)f(.)44 b Ft(21)449 3459 y(2.2)92 ! b(Custom)30 b(F)-8 b(unctions)15 b Fn(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b ! Ft(22)748 3568 y(2.2.1)93 b(Readline)29 b(T)m(yp)s(edefs)19 ! b Fn(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 ! b Ft(22)748 3678 y(2.2.2)93 b(W)-8 b(riting)29 b(a)i(New)f(F)-8 ! b(unction)11 b Fn(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b Ft(23)449 ! 3787 y(2.3)92 b(Readline)29 b(V)-8 b(ariables)28 b Fn(.)15 ! b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)58 b Ft(24)449 3897 y(2.4)92 b(Readline)29 b(Con)m(v)m(enience)i(F) ! -8 b(unctions)15 b Fn(.)f(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h ! (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 ! b Ft(28)748 4007 y(2.4.1)93 b(Naming)29 b(a)i(F)-8 b(unction)24 ! b Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(28)748 ! 4116 y(2.4.2)93 b(Selecting)29 b(a)i(Keymap)12 b Fn(.)j(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)41 b Ft(28)748 4226 y(2.4.3)93 b(Binding)28 ! b(Keys)10 b Fn(.)k(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)39 b Ft(29)748 4335 y(2.4.4)93 b(Asso)s(ciating)29 ! b(F)-8 b(unction)30 b(Names)h(and)f(Bindings)16 b Fn(.)d(.)i(.)g(.)g(.) ! g(.)g(.)45 b Ft(31)748 4445 y(2.4.5)93 b(Allo)m(wing)28 ! b(Undoing)g Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 ! b Ft(31)748 4555 y(2.4.6)93 b(Redispla)m(y)21 b Fn(.)13 ! b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)50 b Ft(32)748 4664 y(2.4.7)93 b(Mo)s(difying)28 ! b(T)-8 b(ext)13 b Fn(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g ! (.)g(.)42 b Ft(34)748 4774 y(2.4.8)93 b(Character)30 ! b(Input)20 b Fn(.)14 b(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! 50 b Ft(34)748 4883 y(2.4.9)93 b(T)-8 b(erminal)28 b(Managemen)m(t)e ! Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 b Ft(35)748 4993 ! y(2.4.10)93 b(Utilit)m(y)29 b(F)-8 b(unctions)25 b Fn(.)15 ! b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b Ft(35)748 ! 5103 y(2.4.11)93 b(Miscellaneous)29 b(F)-8 b(unctions)12 ! b Fn(.)j(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)h(.)f(.)g(.)g(.)g(.)41 b Ft(36)748 5212 y(2.4.12)93 ! b(Alternate)31 b(In)m(terface)g Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)59 b Ft(37)748 5322 y(2.4.13)93 b(A)30 b(Readline)f(Example)17 ! b Fn(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)46 b Ft(38)p eop ! %%Page: -2 4 ! -2 3 bop 150 -116 a Ft(ii)2638 b(GNU)31 b(Readline)e(Library)449 ! 83 y(2.5)92 b(Readline)29 b(Signal)g(Handling)23 b Fn(.)13 ! b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)52 ! b Ft(39)449 193 y(2.6)92 b(Custom)30 b(Completers)24 ! b Fn(.)15 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)55 b Ft(41)748 302 y(2.6.1)93 b(Ho)m(w)31 b(Completing)e(W)-8 ! b(orks)19 b Fn(.)d(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 b Ft(41)748 ! 412 y(2.6.2)93 b(Completion)28 b(F)-8 b(unctions)12 b ! Fn(.)k(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42 b Ft(42)748 521 ! y(2.6.3)93 b(Completion)28 b(V)-8 b(ariables)23 b Fn(.)15 ! b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)52 b Ft(43)748 631 y(2.6.4)93 ! b(A)30 b(Short)g(Completion)f(Example)9 b Fn(.)14 b(.)h(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)38 ! b Ft(47)150 873 y Fr(App)t(endix)44 b(A)99 b(Cop)l(ying)46 ! b(This)e(Man)l(ual)29 b Fo(.)20 b(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f ! (.)74 b Fr(57)449 1010 y Ft(A.1)92 b(GNU)31 b(F)-8 b(ree)31 ! b(Do)s(cumen)m(tation)g(License)c Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 ! b Ft(57)748 1120 y(A.1.1)92 b(ADDENDUM:)33 b(Ho)m(w)e(to)g(use)f(this)f ! (License)h(for)h(y)m(our)930 1230 y(do)s(cumen)m(ts)c ! Fn(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)57 b Ft(63)150 1472 y Fr(Concept)45 b(Index)21 ! b Fo(.)e(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.) ! f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)65 ! b Fr(65)150 1742 y(F)-11 b(unction)44 b(and)h(V)-11 b(ariable)45 ! b(Index)17 b Fo(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h ! (.)f(.)g(.)h(.)62 b Fr(67)p eop ! %%Page: 1 5 ! 1 4 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2151 b(1)150 299 y Fp(1)80 b(Command)52 ! b(Line)i(Editing)275 511 y Ft(This)28 b(c)m(hapter)j(describ)s(es)e ! (the)h(basic)g(features)h(of)f(the)h Fm(gnu)f Ft(command)g(line)f ! (editing)g(in)m(terface.)150 755 y Fr(1.1)68 b(In)l(tro)t(duction)45 ! b(to)g(Line)h(Editing)275 995 y Ft(The)29 b(follo)m(wing)g(paragraphs)h ! (describ)s(e)f(the)h(notation)h(used)e(to)j(represen)m(t)e(k)m(eystrok) ! m(es.)275 1125 y(The)i(text)j Fl(C-k)d Ft(is)h(read)g(as)h(`Con)m ! (trol-K')f(and)g(describ)s(es)f(the)h(c)m(haracter)i(pro)s(duced)d ! (when)g(the)3663 1122 y Fk(h)p 3687 1069 38 4 v 3687 ! 1125 a Fj(k)p 3687 1140 V 3720 1122 a Fk(i)150 1235 y ! Ft(k)m(ey)f(is)f(pressed)f(while)f(the)j(Con)m(trol)f(k)m(ey)h(is)f ! (depressed.)275 1365 y(The)h(text)i Fl(M-k)e Ft(is)g(read)g(as)i ! (`Meta-K')g(and)f(describ)s(es)e(the)i(c)m(haracter)h(pro)s(duced)e ! (when)f(the)i(Meta)150 1474 y(k)m(ey)d(\(if)f(y)m(ou)h(ha)m(v)m(e)g ! (one\))g(is)f(depressed,)g(and)f(the)1859 1471 y Fk(h)p ! 1883 1418 V 1883 1474 a Fj(k)p 1883 1490 V 1916 1471 ! a Fk(i)1974 1474 y Ft(k)m(ey)j(is)d(pressed.)39 b(The)28 ! b(Meta)i(k)m(ey)f(is)f(lab)s(eled)3558 1471 y Fk(h)p ! 3582 1418 143 4 v 3582 1474 a Fj(AL)-6 b(T)p 3582 1490 ! V 3720 1471 a Fk(i)150 1584 y Ft(on)26 b(man)m(y)g(k)m(eyb)s(oards.)39 ! b(On)26 b(k)m(eyb)s(oards)g(with)f(t)m(w)m(o)i(k)m(eys)g(lab)s(eled) ! 2425 1581 y Fk(h)p 2450 1528 V 2450 1584 a Fj(AL)-6 b(T)p ! 2450 1599 V 2587 1581 a Fk(i)2643 1584 y Ft(\(usually)25 ! b(to)i(either)e(side)g(of)i(the)150 1693 y(space)32 b(bar\),)g(the)775 ! 1690 y Fk(h)p 799 1637 V 799 1693 a Fj(AL)-6 b(T)p 799 ! 1709 V 937 1690 a Fk(i)998 1693 y Ft(on)32 b(the)f(left)g(side)g(is)f ! (generally)h(set)g(to)i(w)m(ork)e(as)h(a)f(Meta)i(k)m(ey)-8 ! b(.)45 b(The)3393 1690 y Fk(h)p 3417 1637 V 3417 1693 ! a Fj(AL)-6 b(T)p 3417 1709 V 3555 1690 a Fk(i)3616 1693 ! y Ft(k)m(ey)150 1803 y(on)33 b(the)h(righ)m(t)f(ma)m(y)h(also)f(b)s(e)g ! (con\014gured)f(to)i(w)m(ork)g(as)g(a)f(Meta)i(k)m(ey)f(or)g(ma)m(y)g ! (b)s(e)e(con\014gured)h(as)h(some)150 1913 y(other)d(mo)s(di\014er,)d ! (suc)m(h)i(as)h(a)g(Comp)s(ose)f(k)m(ey)h(for)f(t)m(yping)g(accen)m ! (ted)i(c)m(haracters.)275 2043 y(If)21 b(y)m(ou)h(do)g(not)g(ha)m(v)m ! (e)h(a)f(Meta)h(or)1388 2040 y Fk(h)p 1412 1987 V 1412 ! 2043 a Fj(AL)-6 b(T)p 1412 2058 V 1550 2040 a Fk(i)1601 ! 2043 y Ft(k)m(ey)e(,)25 b(or)d(another)g(k)m(ey)h(w)m(orking)e(as)h(a)g ! (Meta)h(k)m(ey)-8 b(,)25 b(the)d(iden)m(tical)150 2152 ! y(k)m(eystrok)m(e)i(can)f(b)s(e)f(generated)i(b)m(y)e(t)m(yping)1619 ! 2149 y Fk(h)p 1643 2096 139 4 v 1643 2152 a Fj(ESC)p ! 1643 2168 V 1777 2149 a Fk(i)1829 2152 y Fn(\014rst)p ! Ft(,)j(and)d(then)g(t)m(yping)2678 2149 y Fk(h)p 2703 ! 2096 38 4 v 2703 2152 a Fj(k)p 2703 2168 V 2736 2149 ! a Fk(i)2765 2152 y Ft(.)38 b(Either)22 b(pro)s(cess)g(is)f(kno)m(wn)150 ! 2262 y(as)31 b Fi(metafying)38 b Ft(the)850 2259 y Fk(h)p ! 874 2206 V 874 2262 a Fj(k)p 874 2277 V 907 2259 a Fk(i)968 ! 2262 y Ft(k)m(ey)-8 b(.)275 2392 y(The)39 b(text)j Fl(M-C-k)d ! Ft(is)g(read)h(as)h(`Meta-Con)m(trol-k')i(and)c(describ)s(es)g(the)h(c) ! m(haracter)i(pro)s(duced)d(b)m(y)150 2501 y Fi(metafying)f ! Fl(C-k)p Ft(.)275 2632 y(In)e(addition,)h(sev)m(eral)g(k)m(eys)g(ha)m ! (v)m(e)h(their)e(o)m(wn)h(names.)60 b(Sp)s(eci\014cally)-8 ! b(,)2768 2629 y Fk(h)p 2792 2576 146 4 v 2792 2632 a ! Fj(DEL)p 2792 2647 V 2934 2629 a Fk(i)2964 2632 y Ft(,)3028 ! 2629 y Fk(h)p 3052 2576 139 4 v 3052 2632 a Fj(ESC)p ! 3052 2647 V 3186 2629 a Fk(i)3216 2632 y Ft(,)3279 2629 ! y Fk(h)p 3303 2576 144 4 v 3303 2632 a Fj(LFD)p 3303 ! 2647 V 3443 2629 a Fk(i)3473 2632 y Ft(,)3537 2629 y ! Fk(h)p 3561 2576 139 4 v 3561 2632 a Fj(SPC)p 3561 2647 ! V 3695 2629 a Fk(i)3725 2632 y Ft(,)150 2738 y Fk(h)p ! 174 2685 151 4 v 174 2741 a Fj(RET)p 174 2757 V 321 2738 ! a Fk(i)351 2741 y Ft(,)47 b(and)612 2738 y Fk(h)p 637 ! 2685 148 4 v 637 2741 a Fj(T)-6 b(AB)p 637 2757 V 780 ! 2738 a Fk(i)853 2741 y Ft(all)43 b(stand)g(for)g(themselv)m(es)h(when)e ! (seen)i(in)e(this)g(text,)48 b(or)43 b(in)f(an)i(init)d(\014le)i(\(see) ! 150 2851 y(Section)c(1.3)g([Readline)f(Init)f(File],)k(page)e(4\).)67 ! b(If)38 b(y)m(our)h(k)m(eyb)s(oard)f(lac)m(ks)h(a)2888 ! 2848 y Fk(h)p 2912 2795 144 4 v 2912 2851 a Fj(LFD)p ! 2912 2866 V 3052 2848 a Fk(i)3121 2851 y Ft(k)m(ey)-8 ! b(,)42 b(t)m(yping)3604 2848 y Fk(h)p 3628 2795 97 4 ! v 3628 2851 a Fj(C-j)p 3628 2866 V 3720 2848 a Fk(i)150 ! 2960 y Ft(will)27 b(pro)s(duce)h(the)i(desired)e(c)m(haracter.)42 ! b(The)1748 2957 y Fk(h)p 1772 2904 151 4 v 1772 2960 ! a Fj(RET)p 1772 2976 V 1919 2957 a Fk(i)1978 2960 y Ft(k)m(ey)30 ! b(ma)m(y)g(b)s(e)f(lab)s(eled)2770 2957 y Fk(h)p 2794 ! 2904 217 4 v 2794 2960 a Fj(Return)p 2794 2976 V 3007 ! 2957 a Fk(i)3066 2960 y Ft(or)3176 2957 y Fk(h)p 3201 ! 2904 172 4 v 3201 2960 a Fj(En)n(ter)p 3201 2976 V 3368 ! 2957 a Fk(i)3427 2960 y Ft(on)h(some)150 3070 y(k)m(eyb)s(oards.)150 ! 3314 y Fr(1.2)68 b(Readline)47 b(In)l(teraction)275 3554 ! y Ft(Often)24 b(during)f(an)i(in)m(teractiv)m(e)h(session)f(y)m(ou)g(t) ! m(yp)s(e)h(in)e(a)h(long)g(line)e(of)j(text,)h(only)e(to)g(notice)h ! (that)g(the)150 3663 y(\014rst)32 b(w)m(ord)g(on)g(the)g(line)f(is)h ! (missp)s(elled.)43 b(The)32 b(Readline)f(library)f(giv)m(es)i(y)m(ou)h ! (a)g(set)g(of)f(commands)g(for)150 3773 y(manipulating)27 ! b(the)j(text)h(as)f(y)m(ou)g(t)m(yp)s(e)g(it)f(in,)g(allo)m(wing)f(y)m ! (ou)i(to)h(just)e(\014x)g(y)m(our)h(t)m(yp)s(o,)g(and)g(not)g(forcing) ! 150 3883 y(y)m(ou)e(to)h(ret)m(yp)s(e)g(the)f(ma)5 b(jorit)m(y)28 ! b(of)g(the)h(line.)38 b(Using)27 b(these)i(editing)e(commands,)h(y)m ! (ou)h(mo)m(v)m(e)g(the)g(cursor)150 3992 y(to)35 b(the)f(place)h(that)f ! (needs)g(correction,)i(and)e(delete)g(or)g(insert)g(the)g(text)h(of)g ! (the)f(corrections.)53 b(Then,)150 4102 y(when)30 b(y)m(ou)i(are)f ! (satis\014ed)f(with)g(the)h(line,)f(y)m(ou)i(simply)c(press)2320 ! 4099 y Fk(h)p 2344 4046 151 4 v 2344 4102 a Fj(RET)p ! 2344 4117 V 2491 4099 a Fk(i)2520 4102 y Ft(.)43 b(Y)-8 ! b(ou)32 b(do)f(not)g(ha)m(v)m(e)i(to)e(b)s(e)g(at)h(the)150 ! 4211 y(end)j(of)h(the)g(line)e(to)j(press)1126 4208 y ! Fk(h)p 1150 4155 V 1150 4211 a Fj(RET)p 1150 4227 V 1297 ! 4208 a Fk(i)1327 4211 y Ft(;)h(the)e(en)m(tire)g(line)e(is)h(accepted)i ! (regardless)e(of)h(the)g(lo)s(cation)g(of)g(the)150 4321 ! y(cursor)30 b(within)e(the)i(line.)150 4532 y Fh(1.2.1)63 ! b(Readline)40 b(Bare)h(Essen)m(tials)275 4772 y Ft(In)22 ! b(order)g(to)i(en)m(ter)g(c)m(haracters)g(in)m(to)f(the)h(line,)f ! (simply)d(t)m(yp)s(e)k(them.)38 b(The)22 b(t)m(yp)s(ed)h(c)m(haracter)i ! (app)s(ears)150 4881 y(where)32 b(the)h(cursor)e(w)m(as,)j(and)e(then)g ! (the)h(cursor)e(mo)m(v)m(es)j(one)f(space)g(to)g(the)g(righ)m(t.)46 ! b(If)32 b(y)m(ou)h(mist)m(yp)s(e)f(a)150 4991 y(c)m(haracter,)g(y)m(ou) ! f(can)g(use)f(y)m(our)g(erase)h(c)m(haracter)h(to)f(bac)m(k)g(up)f(and) ! f(delete)i(the)g(mist)m(yp)s(ed)d(c)m(haracter.)275 5121 ! y(Sometimes)i(y)m(ou)h(ma)m(y)h(mist)m(yp)s(e)d(a)j(c)m(haracter,)g ! (and)e(not)i(notice)f(the)g(error)f(un)m(til)f(y)m(ou)i(ha)m(v)m(e)h(t) ! m(yp)s(ed)150 5230 y(sev)m(eral)d(other)g(c)m(haracters.)42 ! b(In)28 b(that)i(case,)g(y)m(ou)f(can)g(t)m(yp)s(e)h ! Fl(C-b)d Ft(to)j(mo)m(v)m(e)g(the)f(cursor)g(to)g(the)g(left,)h(and)150 ! 5340 y(then)g(correct)i(y)m(our)e(mistak)m(e.)41 b(Afterw)m(ards,)31 ! b(y)m(ou)f(can)h(mo)m(v)m(e)h(the)e(cursor)g(to)h(the)g(righ)m(t)f ! (with)f Fl(C-f)p Ft(.)p eop ! %%Page: 2 6 ! 2 5 bop 150 -116 a Ft(2)2645 b(GNU)31 b(Readline)e(Library)275 ! 299 y(When)j(y)m(ou)h(add)f(text)h(in)e(the)i(middle)d(of)j(a)g(line,)f ! (y)m(ou)g(will)e(notice)j(that)g(c)m(haracters)h(to)g(the)e(righ)m(t) ! 150 408 y(of)d(the)g(cursor)f(are)h(`pushed)e(o)m(v)m(er')j(to)g(mak)m ! (e)f(ro)s(om)g(for)f(the)h(text)h(that)f(y)m(ou)g(ha)m(v)m(e)h ! (inserted.)39 b(Lik)m(ewise,)150 518 y(when)e(y)m(ou)g(delete)h(text)h ! (b)s(ehind)34 b(the)k(cursor,)h(c)m(haracters)g(to)f(the)g(righ)m(t)f ! (of)h(the)g(cursor)e(are)i(`pulled)150 628 y(bac)m(k')24 ! b(to)f(\014ll)e(in)g(the)i(blank)e(space)j(created)f(b)m(y)g(the)g ! (remo)m(v)-5 b(al)23 b(of)g(the)g(text.)39 b(A)23 b(list)e(of)i(the)g ! (bare)f(essen)m(tials)150 737 y(for)30 b(editing)f(the)i(text)g(of)g ! (an)f(input)e(line)h(follo)m(ws.)150 892 y Fl(C-b)336 ! b Ft(Mo)m(v)m(e)32 b(bac)m(k)g(one)e(c)m(haracter.)150 ! 1048 y Fl(C-f)336 b Ft(Mo)m(v)m(e)32 b(forw)m(ard)e(one)h(c)m ! (haracter.)150 1200 y Fk(h)p 174 1147 146 4 v 174 1203 ! a Fj(DEL)p 174 1218 V 316 1200 a Fk(i)376 1203 y Ft(or)487 ! 1200 y Fk(h)p 512 1147 317 4 v 512 1203 a Fj(Bac)n(kspace)p ! 512 1218 V 824 1200 a Fk(i)630 1312 y Ft(Delete)h(the)e(c)m(haracter)i ! (to)f(the)g(left)f(of)g(the)h(cursor.)150 1467 y Fl(C-d)336 ! b Ft(Delete)32 b(the)e(c)m(haracter)i(underneath)d(the)i(cursor.)150 ! 1622 y(Prin)m(ting)e(c)m(haracters)630 1732 y(Insert)h(the)g(c)m ! (haracter)i(in)m(to)f(the)f(line)f(at)i(the)g(cursor.)150 ! 1887 y Fl(C-_)e Ft(or)i Fl(C-x)e(C-u)630 1997 y Ft(Undo)k(the)h(last)f ! (editing)f(command.)50 b(Y)-8 b(ou)34 b(can)f(undo)g(all)f(the)h(w)m(a) ! m(y)i(bac)m(k)f(to)g(an)g(empt)m(y)630 2106 y(line.)150 ! 2262 y(\(Dep)s(ending)f(on)h(y)m(our)g(con\014guration,)g(the)1726 ! 2259 y Fk(h)p 1750 2205 V 1750 2262 a Fj(Bac)n(kspace)p ! 1750 2277 V 2063 2259 a Fk(i)2127 2262 y Ft(k)m(ey)h(b)s(e)e(set)h(to)h ! (delete)f(the)g(c)m(haracter)i(to)f(the)150 2371 y(left)e(of)g(the)g ! (cursor)f(and)h(the)1192 2368 y Fk(h)p 1216 2315 146 ! 4 v 1216 2371 a Fj(DEL)p 1216 2386 V 1358 2368 a Fk(i)1421 ! 2371 y Ft(k)m(ey)g(set)h(to)g(delete)f(the)g(c)m(haracter)i(underneath) ! c(the)i(cursor,)h(lik)m(e)150 2481 y Fl(C-d)p Ft(,)c(rather)g(than)g ! (the)h(c)m(haracter)h(to)f(the)f(left)g(of)h(the)f(cursor.\))150 ! 2698 y Fh(1.2.2)63 b(Readline)40 b(Mo)m(v)m(emen)m(t)g(Commands)275 ! 2940 y Ft(The)25 b(ab)s(o)m(v)m(e)i(table)f(describ)s(es)f(the)h(most)h ! (basic)e(k)m(eystrok)m(es)j(that)f(y)m(ou)f(need)g(in)f(order)g(to)i ! (do)f(editing)150 3050 y(of)g(the)f(input)f(line.)37 ! b(F)-8 b(or)27 b(y)m(our)e(con)m(v)m(enience,)j(man)m(y)d(other)h ! (commands)f(ha)m(v)m(e)i(b)s(een)e(added)g(in)f(addition)150 ! 3160 y(to)33 b Fl(C-b)p Ft(,)e Fl(C-f)p Ft(,)h Fl(C-d)p ! Ft(,)g(and)1043 3157 y Fk(h)p 1067 3104 V 1067 3160 a ! Fj(DEL)p 1067 3175 V 1209 3157 a Fk(i)1239 3160 y Ft(.)45 ! b(Here)33 b(are)f(some)g(commands)g(for)g(mo)m(ving)g(more)g(rapidly)d ! (ab)s(out)j(the)150 3269 y(line.)150 3424 y Fl(C-a)336 ! b Ft(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f(line.)150 ! 3579 y Fl(C-e)336 b Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h ! (line.)150 3735 y Fl(M-f)336 b Ft(Mo)m(v)m(e)32 b(forw)m(ard)e(a)h(w)m ! (ord,)f(where)g(a)h(w)m(ord)f(is)f(comp)s(osed)h(of)h(letters)g(and)e ! (digits.)150 3890 y Fl(M-b)336 b Ft(Mo)m(v)m(e)32 b(bac)m(kw)m(ard)f(a) ! g(w)m(ord.)150 4045 y Fl(C-l)336 b Ft(Clear)30 b(the)g(screen,)h ! (reprin)m(ting)d(the)j(curren)m(t)f(line)f(at)i(the)f(top.)275 ! 4200 y(Notice)25 b(ho)m(w)g Fl(C-f)e Ft(mo)m(v)m(es)j(forw)m(ard)e(a)h ! (c)m(haracter,)j(while)23 b Fl(M-f)g Ft(mo)m(v)m(es)j(forw)m(ard)e(a)h ! (w)m(ord.)39 b(It)24 b(is)g(a)h(lo)s(ose)150 4310 y(con)m(v)m(en)m ! (tion)31 b(that)g(con)m(trol)f(k)m(eystrok)m(es)i(op)s(erate)e(on)g(c)m ! (haracters)h(while)d(meta)j(k)m(eystrok)m(es)h(op)s(erate)e(on)150 ! 4419 y(w)m(ords.)150 4637 y Fh(1.2.3)63 b(Readline)40 ! b(Killing)i(Commands)275 4879 y Fi(Killing)f Ft(text)e(means)e(to)h ! (delete)f(the)h(text)g(from)f(the)g(line,)h(but)f(to)h(sa)m(v)m(e)h(it) ! d(a)m(w)m(a)m(y)k(for)d(later)g(use,)150 4988 y(usually)32 ! b(b)m(y)i Fi(y)m(anking)41 b Ft(\(re-inserting\))33 b(it)h(bac)m(k)h ! (in)m(to)f(the)g(line.)50 b(\(`Cut')35 b(and)e(`paste')i(are)g(more)f ! (recen)m(t)150 5098 y(jargon)d(for)f(`kill')e(and)i(`y)m(ank'.\))275 ! 5230 y(If)f(the)i(description)d(for)i(a)h(command)f(sa)m(ys)g(that)h ! (it)f(`kills')e(text,)k(then)e(y)m(ou)g(can)h(b)s(e)e(sure)h(that)h(y)m ! (ou)150 5340 y(can)g(get)g(the)g(text)g(bac)m(k)g(in)e(a)i(di\013eren)m ! (t)f(\(or)h(the)f(same\))h(place)g(later.)p eop ! %%Page: 3 7 ! 3 6 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2151 b(3)275 299 y(When)23 b(y)m(ou)g(use)g(a)h(kill)d ! (command,)j(the)g(text)g(is)e(sa)m(v)m(ed)j(in)d(a)h ! Fi(kill-ring)p Ft(.)35 b(An)m(y)24 b(n)m(um)m(b)s(er)e(of)h(consecutiv) ! m(e)150 408 y(kills)28 b(sa)m(v)m(e)33 b(all)d(of)h(the)g(killed)e ! (text)j(together,)g(so)g(that)f(when)f(y)m(ou)h(y)m(ank)h(it)e(bac)m ! (k,)i(y)m(ou)g(get)g(it)e(all.)41 b(The)150 518 y(kill)30 ! b(ring)h(is)g(not)i(line)e(sp)s(eci\014c;)h(the)h(text)g(that)g(y)m(ou) ! g(killed)c(on)k(a)f(previously)e(t)m(yp)s(ed)j(line)d(is)i(a)m(v)-5 ! b(ailable)150 628 y(to)31 b(b)s(e)f(y)m(ank)m(ed)h(bac)m(k)g(later,)g ! (when)e(y)m(ou)i(are)g(t)m(yping)e(another)i(line.)275 ! 760 y(Here)f(is)g(the)g(list)f(of)i(commands)f(for)g(killing)d(text.) ! 150 916 y Fl(C-k)336 b Ft(Kill)28 b(the)i(text)i(from)e(the)g(curren)m ! (t)g(cursor)g(p)s(osition)f(to)i(the)f(end)g(of)g(the)h(line.)150 ! 1072 y Fl(M-d)336 b Ft(Kill)24 b(from)i(the)g(cursor)g(to)h(the)f(end)g ! (of)h(the)f(curren)m(t)g(w)m(ord,)h(or,)h(if)d(b)s(et)m(w)m(een)i(w)m ! (ords,)g(to)g(the)630 1182 y(end)j(of)g(the)h(next)f(w)m(ord.)41 ! b(W)-8 b(ord)30 b(b)s(oundaries)e(are)j(the)g(same)f(as)h(those)g(used) ! f(b)m(y)g Fl(M-f)p Ft(.)150 1337 y Fl(M-)246 1334 y Fk(h)p ! 270 1281 146 4 v 270 1337 a Fj(DEL)p 270 1353 V 411 1334 ! a Fk(i)630 1337 y Ft(Kill)e(from)i(the)h(cursor)f(the)g(start)h(of)g ! (the)g(curren)m(t)f(w)m(ord,)h(or,)f(if)g(b)s(et)m(w)m(een)h(w)m(ords,) ! f(to)i(the)630 1447 y(start)39 b(of)f(the)h(previous)e(w)m(ord.)64 ! b(W)-8 b(ord)39 b(b)s(oundaries)d(are)j(the)f(same)h(as)g(those)f(used) ! g(b)m(y)630 1557 y Fl(M-b)p Ft(.)150 1712 y Fl(C-w)336 ! b Ft(Kill)29 b(from)h(the)i(cursor)e(to)i(the)g(previous)d(whitespace.) ! 43 b(This)30 b(is)g(di\013eren)m(t)h(than)g Fl(M-)3555 ! 1709 y Fk(h)p 3578 1656 V 3578 1712 a Fj(DEL)p 3578 1728 ! V 3720 1709 a Fk(i)630 1822 y Ft(b)s(ecause)f(the)h(w)m(ord)f(b)s ! (oundaries)e(di\013er.)275 1978 y(Here)42 b(is)e(ho)m(w)i(to)g ! Fi(y)m(ank)47 b Ft(the)42 b(text)g(bac)m(k)h(in)m(to)e(the)h(line.)72 ! b(Y)-8 b(anking)42 b(means)f(to)h(cop)m(y)h(the)e(most-)150 ! 2087 y(recen)m(tly-killed)29 b(text)i(from)f(the)g(kill)f(bu\013er.)150 ! 2243 y Fl(C-y)336 b Ft(Y)-8 b(ank)31 b(the)f(most)h(recen)m(tly)g ! (killed)d(text)j(bac)m(k)g(in)m(to)g(the)f(bu\013er)g(at)h(the)f ! (cursor.)150 2399 y Fl(M-y)336 b Ft(Rotate)36 b(the)f(kill-ring,)e(and) ! h(y)m(ank)h(the)f(new)g(top.)54 b(Y)-8 b(ou)35 b(can)g(only)e(do)i ! (this)e(if)h(the)h(prior)630 2509 y(command)30 b(is)g ! Fl(C-y)f Ft(or)h Fl(M-y)p Ft(.)150 2727 y Fh(1.2.4)63 ! b(Readline)40 b(Argumen)m(ts)275 2970 y Ft(Y)-8 b(ou)29 ! b(can)h(pass)f(n)m(umeric)f(argumen)m(ts)h(to)h(Readline)e(commands.)40 ! b(Sometimes)29 b(the)g(argumen)m(t)h(acts)150 3079 y(as)40 ! b(a)h(rep)s(eat)f(coun)m(t,)j(other)e(times)e(it)h(is)f(the)h ! Fn(sign)47 b Ft(of)41 b(the)f(argumen)m(t)g(that)h(is)e(signi\014can)m ! (t.)69 b(If)40 b(y)m(ou)150 3189 y(pass)33 b(a)h(negativ)m(e)h(argumen) ! m(t)f(to)g(a)g(command)f(whic)m(h)f(normally)g(acts)i(in)e(a)i(forw)m ! (ard)f(direction,)g(that)150 3298 y(command)i(will)e(act)j(in)e(a)i ! (bac)m(kw)m(ard)f(direction.)55 b(F)-8 b(or)36 b(example,)g(to)g(kill)d ! (text)j(bac)m(k)g(to)g(the)g(start)g(of)150 3408 y(the)31 ! b(line,)e(y)m(ou)h(migh)m(t)g(t)m(yp)s(e)h(`)p Fs(M--)f(C-k)p ! Ft('.)275 3541 y(The)d(general)h(w)m(a)m(y)i(to)e(pass)g(n)m(umeric)f ! (argumen)m(ts)i(to)g(a)f(command)g(is)f(to)i(t)m(yp)s(e)f(meta)i ! (digits)c(b)s(efore)150 3650 y(the)31 b(command.)42 b(If)30 ! b(the)h(\014rst)f(`digit')g(t)m(yp)s(ed)h(is)f(a)h(min)m(us)e(sign)h ! (\(`)p Fs(-)p Ft('\),)i(then)f(the)g(sign)e(of)i(the)g(argumen)m(t)150 ! 3760 y(will)36 b(b)s(e)h(negativ)m(e.)65 b(Once)38 b(y)m(ou)h(ha)m(v)m ! (e)g(t)m(yp)s(ed)f(one)h(meta)g(digit)e(to)h(get)i(the)e(argumen)m(t)h ! (started,)i(y)m(ou)150 3869 y(can)29 b(t)m(yp)s(e)g(the)g(remainder)e ! (of)i(the)g(digits,)f(and)h(then)f(the)h(command.)40 ! b(F)-8 b(or)30 b(example,)f(to)g(giv)m(e)h(the)f Fl(C-d)150 ! 3979 y Ft(command)37 b(an)g(argumen)m(t)h(of)g(10,)i(y)m(ou)e(could)e ! (t)m(yp)s(e)i(`)p Fs(M-1)29 b(0)h(C-d)p Ft(',)39 b(whic)m(h)d(will)f ! (delete)j(the)f(next)h(ten)150 4089 y(c)m(haracters)32 ! b(on)e(the)h(input)d(line.)150 4307 y Fh(1.2.5)63 b(Searc)m(hing)40 ! b(for)h(Commands)f(in)h(the)g(History)275 4550 y Ft(Readline)30 ! b(pro)m(vides)i(commands)g(for)g(searc)m(hing)g(through)f(the)i ! (command)f(history)f(for)h(lines)e(con-)150 4659 y(taining)f(a)i(sp)s ! (eci\014ed)e(string.)39 b(There)30 b(are)h(t)m(w)m(o)h(searc)m(h)f(mo)s ! (des:)40 b Fi(incremen)m(tal)33 b Ft(and)d Fi(non-incremen)m(tal)p ! Ft(.)275 4792 y(Incremen)m(tal)25 b(searc)m(hes)i(b)s(egin)d(b)s(efore) ! h(the)h(user)f(has)h(\014nished)d(t)m(yping)i(the)h(searc)m(h)g ! (string.)38 b(As)26 b(eac)m(h)150 4902 y(c)m(haracter)37 ! b(of)e(the)h(searc)m(h)g(string)e(is)h(t)m(yp)s(ed,)h(Readline)e ! (displa)m(ys)g(the)h(next)h(en)m(try)g(from)e(the)i(history)150 ! 5011 y(matc)m(hing)24 b(the)g(string)f(t)m(yp)s(ed)h(so)g(far.)39 ! b(An)23 b(incremen)m(tal)h(searc)m(h)g(requires)f(only)g(as)h(man)m(y)g ! (c)m(haracters)i(as)150 5121 y(needed)i(to)i(\014nd)d(the)i(desired)e ! (history)h(en)m(try)-8 b(.)41 b(T)-8 b(o)29 b(searc)m(h)h(bac)m(kw)m ! (ard)f(in)e(the)i(history)f(for)g(a)i(particular)150 ! 5230 y(string,)f(t)m(yp)s(e)g Fl(C-r)p Ft(.)40 b(T)m(yping)28 ! b Fl(C-s)h Ft(searc)m(hes)h(forw)m(ard)f(through)g(the)g(history)-8 ! b(.)40 b(The)29 b(c)m(haracters)i(presen)m(t)150 5340 ! y(in)37 b(the)h(v)-5 b(alue)37 b(of)h(the)g Fs(isearch-terminators)33 ! b Ft(v)-5 b(ariable)37 b(are)h(used)f(to)i(terminate)f(an)g(incremen)m ! (tal)p eop ! %%Page: 4 8 ! 4 7 bop 150 -116 a Ft(4)2645 b(GNU)31 b(Readline)e(Library)150 ! 299 y(searc)m(h.)63 b(If)38 b(that)g(v)-5 b(ariable)36 ! b(has)i(not)g(b)s(een)f(assigned)g(a)h(v)-5 b(alue,)39 ! b(the)2578 296 y Fk(h)p 2602 243 139 4 v 2602 299 a Fj(ESC)p ! 2602 314 V 2736 296 a Fk(i)2804 299 y Ft(and)e Fl(C-J)f ! Ft(c)m(haracters)k(will)150 408 y(terminate)i(an)h(incremen)m(tal)e ! (searc)m(h.)78 b Fl(C-g)41 b Ft(will)f(ab)s(ort)i(an)g(incremen)m(tal)g ! (searc)m(h)h(and)f(restore)h(the)150 518 y(original)27 ! b(line.)39 b(When)28 b(the)h(searc)m(h)h(is)e(terminated,)h(the)g ! (history)f(en)m(try)h(con)m(taining)f(the)h(searc)m(h)h(string)150 ! 628 y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 769 y(T)-8 ! b(o)31 b(\014nd)e(other)j(matc)m(hing)f(en)m(tries)g(in)e(the)i ! (history)f(list,)g(t)m(yp)s(e)i Fl(C-r)e Ft(or)h Fl(C-s)f ! Ft(as)h(appropriate.)42 b(This)150 878 y(will)23 b(searc)m(h)k(bac)m ! (kw)m(ard)g(or)f(forw)m(ard)g(in)e(the)j(history)e(for)h(the)g(next)g ! (en)m(try)h(matc)m(hing)f(the)g(searc)m(h)h(string)150 ! 988 y(t)m(yp)s(ed)37 b(so)h(far.)63 b(An)m(y)38 b(other)f(k)m(ey)i ! (sequence)f(b)s(ound)e(to)i(a)g(Readline)f(command)g(will)e(terminate)j ! (the)150 1098 y(searc)m(h)22 b(and)e(execute)j(that)e(command.)38 ! b(F)-8 b(or)22 b(instance,)g(a)2127 1095 y Fk(h)p 2151 ! 1042 151 4 v 2151 1098 a Fj(RET)p 2151 1113 V 2298 1095 ! a Fk(i)2349 1098 y Ft(will)c(terminate)j(the)g(searc)m(h)h(and)e ! (accept)150 1207 y(the)30 b(line,)e(thereb)m(y)h(executing)h(the)f ! (command)g(from)g(the)h(history)e(list.)39 b(A)29 b(mo)m(v)m(emen)m(t)j ! (command)d(will)150 1317 y(terminate)h(the)h(searc)m(h,)g(mak)m(e)h ! (the)e(last)g(line)f(found)g(the)i(curren)m(t)f(line,)f(and)h(b)s(egin) ! f(editing.)275 1458 y(Readline)k(remem)m(b)s(ers)h(the)h(last)g ! (incremen)m(tal)f(searc)m(h)h(string.)53 b(If)34 b(t)m(w)m(o)j ! Fl(C-r)p Ft(s)c(are)i(t)m(yp)s(ed)g(without)150 1567 ! y(an)m(y)i(in)m(terv)m(ening)e(c)m(haracters)j(de\014ning)d(a)i(new)f ! (searc)m(h)h(string,)g(an)m(y)g(remem)m(b)s(ered)e(searc)m(h)i(string)f ! (is)150 1677 y(used.)275 1818 y(Non-incremen)m(tal)46 ! b(searc)m(hes)i(read)e(the)h(en)m(tire)g(searc)m(h)g(string)f(b)s ! (efore)g(starting)g(to)i(searc)m(h)f(for)150 1928 y(matc)m(hing)c ! (history)e(lines.)76 b(The)42 b(searc)m(h)h(string)f(ma)m(y)h(b)s(e)f ! (t)m(yp)s(ed)g(b)m(y)g(the)h(user)f(or)h(b)s(e)f(part)g(of)h(the)150 ! 2037 y(con)m(ten)m(ts)32 b(of)f(the)f(curren)m(t)g(line.)150 ! 2311 y Fr(1.3)68 b(Readline)47 b(Init)e(File)275 2562 ! y Ft(Although)f(the)h(Readline)f(library)e(comes)k(with)e(a)i(set)f(of) ! g(Emacs-lik)m(e)g(k)m(eybindings)e(installed)150 2672 ! y(b)m(y)f(default,)h(it)f(is)e(p)s(ossible)f(to)k(use)e(a)h(di\013eren) ! m(t)f(set)h(of)g(k)m(eybindings.)72 b(An)m(y)42 b(user)f(can)h ! (customize)150 2781 y(programs)32 b(that)h(use)f(Readline)f(b)m(y)i ! (putting)e(commands)h(in)f(an)h Fi(inputrc)k Ft(\014le,)d(con)m(v)m(en) ! m(tionally)f(in)f(his)150 2891 y(home)i(directory)-8 ! b(.)49 b(The)33 b(name)g(of)g(this)f(\014le)h(is)f(tak)m(en)i(from)f ! (the)g(v)-5 b(alue)33 b(of)g(the)g(en)m(vironmen)m(t)g(v)-5 ! b(ariable)150 3000 y Fs(INPUTRC)p Ft(.)39 b(If)30 b(that)h(v)-5 ! b(ariable)29 b(is)g(unset,)h(the)h(default)f(is)f(`)p ! Fs(~/.inputrc)p Ft('.)275 3142 y(When)g(a)h(program)f(whic)m(h)g(uses)g ! (the)h(Readline)e(library)f(starts)j(up,)f(the)h(init)e(\014le)g(is)h ! (read,)h(and)f(the)150 3251 y(k)m(ey)i(bindings)c(are)k(set.)275 ! 3392 y(In)26 b(addition,)g(the)h Fs(C-x)i(C-r)d Ft(command)h(re-reads)g ! (this)e(init)g(\014le,)i(th)m(us)g(incorp)s(orating)e(an)m(y)i(c)m ! (hanges)150 3502 y(that)k(y)m(ou)g(migh)m(t)f(ha)m(v)m(e)h(made)g(to)g ! (it.)150 3739 y Fh(1.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)275 ! 3990 y Ft(There)33 b(are)h(only)f(a)h(few)f(basic)g(constructs)h(allo)m ! (w)m(ed)f(in)g(the)h(Readline)e(init)g(\014le.)50 b(Blank)33 ! b(lines)f(are)150 4100 y(ignored.)71 b(Lines)40 b(b)s(eginning)e(with)i ! (a)h(`)p Fs(#)p Ft(')g(are)h(commen)m(ts.)73 b(Lines)40 ! b(b)s(eginning)e(with)h(a)j(`)p Fs($)p Ft(')f(indicate)150 ! 4209 y(conditional)26 b(constructs)i(\(see)g(Section)g(1.3.2)h ! ([Conditional)d(Init)g(Constructs],)j(page)f(9\).)41 ! b(Other)27 b(lines)150 4319 y(denote)k(v)-5 b(ariable)29 ! b(settings)h(and)g(k)m(ey)h(bindings.)150 4488 y(V)-8 ! b(ariable)30 b(Settings)630 4598 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)d ! (the)j(run-time)e(b)s(eha)m(vior)g(of)i(Readline)e(b)m(y)h(altering)f ! (the)i(v)-5 b(alues)40 b(of)630 4707 y(v)-5 b(ariables)32 ! b(in)g(Readline)h(using)f(the)h Fs(set)g Ft(command)g(within)e(the)j ! (init)e(\014le.)49 b(The)33 b(syn)m(tax)630 4817 y(is)c(simple:)870 ! 4955 y Fs(set)47 b Fl(variable)56 b(value)630 5093 y ! Ft(Here,)29 b(for)e(example,)g(is)g(ho)m(w)g(to)h(c)m(hange)g(from)f ! (the)g(default)g(Emacs-lik)m(e)g(k)m(ey)h(binding)c(to)630 ! 5202 y(use)30 b Fs(vi)g Ft(line)f(editing)g(commands:)870 ! 5340 y Fs(set)47 b(editing-mode)d(vi)p eop ! %%Page: 5 9 ! 5 8 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2151 b(5)630 299 y(V)-8 b(ariable)34 ! b(names)h(and)g(v)-5 b(alues,)35 b(where)g(appropriate,)g(are)h ! (recognized)f(without)f(regard)630 408 y(to)d(case.)630 ! 541 y(A)f(great)i(deal)e(of)h(run-time)e(b)s(eha)m(vior)g(is)g(c)m ! (hangeable)j(with)d(the)h(follo)m(wing)f(v)-5 b(ariables.)630 ! 697 y Fs(bell-style)1110 806 y Ft(Con)m(trols)43 b(what)h(happ)s(ens)e ! (when)h(Readline)g(w)m(an)m(ts)h(to)h(ring)d(the)i(termi-)1110 ! 916 y(nal)36 b(b)s(ell.)59 b(If)37 b(set)h(to)g(`)p Fs(none)p ! Ft(',)g(Readline)e(nev)m(er)i(rings)d(the)j(b)s(ell.)59 ! b(If)36 b(set)i(to)1110 1026 y(`)p Fs(visible)p Ft(',)32 ! b(Readline)g(uses)h(a)g(visible)d(b)s(ell)h(if)h(one)h(is)f(a)m(v)-5 ! b(ailable.)48 b(If)33 b(set)g(to)1110 1135 y(`)p Fs(audible)p ! Ft(')j(\(the)i(default\),)h(Readline)d(attempts)i(to)h(ring)d(the)h ! (terminal's)1110 1245 y(b)s(ell.)630 1401 y Fs(comment-begin)1110 ! 1510 y Ft(The)29 b(string)f(to)i(insert)e(at)i(the)f(b)s(eginning)e(of) ! i(the)h(line)d(when)h(the)i Fs(insert-)1110 1620 y(comment)e ! Ft(command)j(is)e(executed.)42 b(The)29 b(default)h(v)-5 ! b(alue)30 b(is)f Fs("#")p Ft(.)630 1775 y Fs(completion-ignore-case) ! 1110 1885 y Ft(If)e(set)h(to)g(`)p Fs(on)p Ft(',)g(Readline)e(p)s ! (erforms)g(\014lename)g(matc)m(hing)i(and)f(completion)1110 ! 1995 y(in)i(a)i(case-insensitiv)m(e)f(fashion.)39 b(The)30 ! b(default)g(v)-5 b(alue)29 b(is)h(`)p Fs(off)p Ft('.)630 ! 2150 y Fs(completion-query-items)1110 2260 y Ft(The)c(n)m(um)m(b)s(er)f ! (of)h(p)s(ossible)e(completions)h(that)i(determines)e(when)g(the)i ! (user)1110 2370 y(is)h(ask)m(ed)i(whether)f(the)h(list)e(of)h(p)s ! (ossibilities)c(should)i(b)s(e)i(displa)m(y)m(ed.)39 ! b(If)29 b(the)1110 2479 y(n)m(um)m(b)s(er)d(of)h(p)s(ossible)d ! (completions)i(is)g(greater)i(than)e(this)g(v)-5 b(alue,)27 ! b(Readline)1110 2589 y(will)d(ask)j(the)f(user)g(whether)g(or)g(not)h ! (he)f(wishes)f(to)j(view)d(them;)j(otherwise,)1110 2698 ! y(they)d(are)f(simply)e(listed.)38 b(This)22 b(v)-5 b(ariable)23 ! b(m)m(ust)i(b)s(e)e(set)i(to)g(an)g(in)m(teger)f(v)-5 ! b(alue)1110 2808 y(greater)32 b(than)e(or)g(equal)g(to)h(0.)41 ! b(The)30 b(default)g(limit)e(is)h Fs(100)p Ft(.)630 2964 ! y Fs(convert-meta)1110 3073 y Ft(If)22 b(set)g(to)h(`)p ! Fs(on)p Ft(',)h(Readline)d(will)e(con)m(v)m(ert)24 b(c)m(haracters)f ! (with)e(the)h(eigh)m(th)g(bit)f(set)1110 3183 y(to)h(an)f ! Fm(asci)r(i)g Ft(k)m(ey)h(sequence)g(b)m(y)f(stripping)d(the)k(eigh)m ! (th)f(bit)f(and)h(pre\014xing)e(an)1110 3289 y Fk(h)p ! 1134 3236 139 4 v 1134 3292 a Fj(ESC)p 1134 3308 V 1268 ! 3289 a Fk(i)1332 3292 y Ft(c)m(haracter,)36 b(con)m(v)m(erting)f(them)f ! (to)g(a)h(meta-pre\014xed)f(k)m(ey)g(sequence.)1110 3402 ! y(The)c(default)f(v)-5 b(alue)30 b(is)g(`)p Fs(on)p Ft('.)630 ! 3558 y Fs(disable-completion)1110 3667 y Ft(If)36 b(set)h(to)h(`)p ! Fs(On)p Ft(',)g(Readline)d(will)f(inhibit)f(w)m(ord)k(completion.)58 ! b(Completion)1110 3777 y(c)m(haracters)28 b(will)23 b(b)s(e)i(inserted) ! g(in)m(to)h(the)h(line)d(as)i(if)f(they)i(had)e(b)s(een)g(mapp)s(ed) ! 1110 3886 y(to)31 b Fs(self-insert)p Ft(.)38 b(The)30 ! b(default)f(is)h(`)p Fs(off)p Ft('.)630 4042 y Fs(editing-mode)1110 ! 4152 y Ft(The)e Fs(editing-mode)e Ft(v)-5 b(ariable)27 ! b(con)m(trols)i(whic)m(h)e(default)h(set)i(of)e(k)m(ey)i(bind-)1110 ! 4261 y(ings)24 b(is)g(used.)38 b(By)26 b(default,)f(Readline)f(starts)h ! (up)f(in)g(Emacs)h(editing)f(mo)s(de,)1110 4371 y(where)29 ! b(the)g(k)m(eystrok)m(es)i(are)e(most)h(similar)c(to)k(Emacs.)40 ! b(This)28 b(v)-5 b(ariable)28 b(can)1110 4481 y(b)s(e)i(set)h(to)g ! (either)f(`)p Fs(emacs)p Ft(')f(or)h(`)p Fs(vi)p Ft('.)630 ! 4636 y Fs(enable-keypad)1110 4746 y Ft(When)23 b(set)h(to)g(`)p ! Fs(on)p Ft(',)h(Readline)d(will)f(try)i(to)h(enable)f(the)g ! (application)f(k)m(eypad)1110 4855 y(when)k(it)g(is)f(called.)39 ! b(Some)27 b(systems)f(need)h(this)e(to)i(enable)f(the)h(arro)m(w)g(k)m ! (eys.)1110 4965 y(The)j(default)f(is)h(`)p Fs(off)p Ft('.)630 ! 5121 y Fs(expand-tilde)1110 5230 y Ft(If)d(set)h(to)h(`)p ! Fs(on)p Ft(',)f(tilde)e(expansion)h(is)f(p)s(erformed)g(when)h ! (Readline)f(attempts)1110 5340 y(w)m(ord)k(completion.)40 ! b(The)30 b(default)f(is)h(`)p Fs(off)p Ft('.)p eop ! %%Page: 6 10 ! 6 9 bop 150 -116 a Ft(6)2645 b(GNU)31 b(Readline)e(Library)1110 ! 299 y(If)g(set)i(to)f(`)p Fs(on)p Ft(',)g(the)g(history)f(co)s(de)h ! (attempts)g(to)h(place)e(p)s(oin)m(t)g(at)i(the)f(same)1110 ! 408 y(lo)s(cation)j(on)g(eac)m(h)i(history)d(line)g(retriev)m(ed)h ! (with)f Fs(previous-history)d Ft(or)1110 518 y Fs(next-history)p ! Ft(.)630 696 y Fs(horizontal-scroll-mode)1110 806 y Ft(This)34 ! b(v)-5 b(ariable)35 b(can)h(b)s(e)f(set)h(to)h(either)e(`)p ! Fs(on)p Ft(')h(or)g(`)p Fs(off)p Ft('.)57 b(Setting)35 ! b(it)g(to)i(`)p Fs(on)p Ft(')1110 915 y(means)26 b(that)h(the)f(text)h ! (of)g(the)f(lines)e(b)s(eing)h(edited)h(will)d(scroll)i(horizon)m ! (tally)1110 1025 y(on)32 b(a)g(single)e(screen)i(line)e(when)g(they)i ! (are)g(longer)g(than)f(the)h(width)e(of)i(the)1110 1134 ! y(screen,)27 b(instead)f(of)g(wrapping)e(on)m(to)j(a)f(new)g(screen)g ! (line.)37 b(By)27 b(default,)f(this)1110 1244 y(v)-5 ! b(ariable)29 b(is)h(set)g(to)i(`)p Fs(off)p Ft('.)630 ! 1422 y Fs(input-meta)1110 1532 y Ft(If)f(set)g(to)h(`)p ! Fs(on)p Ft(',)g(Readline)e(will)e(enable)j(eigh)m(t-bit)g(input)e(\(it) ! i(will)d(not)k(clear)1110 1641 y(the)40 b(eigh)m(th)f(bit)g(in)f(the)i ! (c)m(haracters)h(it)e(reads\),)k(regardless)38 b(of)i(what)g(the)1110 ! 1751 y(terminal)e(claims)h(it)h(can)g(supp)s(ort.)68 ! b(The)39 b(default)g(v)-5 b(alue)39 b(is)g(`)p Fs(off)p ! Ft('.)69 b(The)1110 1861 y(name)30 b Fs(meta-flag)e Ft(is)i(a)g(synon)m ! (ym)g(for)g(this)g(v)-5 b(ariable.)630 2039 y Fs(isearch-terminators) ! 1110 2148 y Ft(The)51 b(string)g(of)h(c)m(haracters)h(that)f(should)d ! (terminate)j(an)g(incremen)m(tal)1110 2258 y(searc)m(h)25 ! b(without)f(subsequen)m(tly)g(executing)h(the)g(c)m(haracter)h(as)f(a)g ! (command)1110 2367 y(\(see)45 b(Section)g(1.2.5)h([Searc)m(hing],)i ! (page)e(3\).)84 b(If)44 b(this)f(v)-5 b(ariable)43 b(has)i(not)1110 ! 2477 y(b)s(een)31 b(giv)m(en)g(a)h(v)-5 b(alue,)31 b(the)h(c)m ! (haracters)2494 2474 y Fk(h)p 2518 2421 139 4 v 2518 ! 2477 a Fj(ESC)p 2518 2492 V 2652 2474 a Fk(i)2713 2477 ! y Ft(and)f Fl(C-J)g Ft(will)e(terminate)i(an)1110 2587 ! y(incremen)m(tal)f(searc)m(h.)630 2765 y Fs(keymap)192 ! b Ft(Sets)39 b(Readline's)e(idea)i(of)g(the)g(curren)m(t)f(k)m(eymap)h ! (for)g(k)m(ey)g(binding)d(com-)1110 2874 y(mands.)81 ! b(Acceptable)46 b Fs(keymap)c Ft(names)i(are)h Fs(emacs)p ! Ft(,)i Fs(emacs-standard)p Ft(,)1110 2984 y Fs(emacs-meta)p ! Ft(,)99 b Fs(emacs-ctlx)p Ft(,)f Fs(vi)p Ft(,)j Fs(vi-move)p ! Ft(,)f Fs(vi-command)p Ft(,)f(and)1110 3093 y Fs(vi-insert)p ! Ft(.)64 b Fs(vi)38 b Ft(is)g(equiv)-5 b(alen)m(t)39 b(to)g ! Fs(vi-command)p Ft(;)i Fs(emacs)c Ft(is)h(equiv)-5 b(alen)m(t)1110 ! 3203 y(to)33 b Fs(emacs-standard)p Ft(.)41 b(The)31 b(default)g(v)-5 ! b(alue)31 b(is)g Fs(emacs)p Ft(.)44 b(The)31 b(v)-5 b(alue)32 ! b(of)g(the)1110 3313 y Fs(editing-mode)27 b Ft(v)-5 b(ariable)29 ! b(also)i(a\013ects)g(the)g(default)e(k)m(eymap.)630 3491 ! y Fs(mark-directories)1110 3600 y Ft(If)38 b(set)g(to)h(`)p ! Fs(on)p Ft(',)i(completed)d(directory)f(names)h(ha)m(v)m(e)i(a)e(slash) ! f(app)s(ended.)1110 3710 y(The)30 b(default)f(is)h(`)p ! Fs(on)p Ft('.)630 3888 y Fs(mark-modified-lines)1110 ! 3998 y Ft(This)k(v)-5 b(ariable,)36 b(when)f(set)h(to)h(`)p ! Fs(on)p Ft(',)g(causes)g(Readline)d(to)j(displa)m(y)d(an)h(as-)1110 ! 4107 y(terisk)e(\(`)p Fs(*)p Ft('\))i(at)f(the)g(start)g(of)g(history)f ! (lines)f(whic)m(h)g(ha)m(v)m(e)j(b)s(een)e(mo)s(di\014ed.)1110 ! 4217 y(This)c(v)-5 b(ariable)29 b(is)g(`)p Fs(off)p Ft(')h(b)m(y)g ! (default.)630 4395 y Fs(mark-symlinked-directori)o(es)1110 ! 4504 y Ft(If)44 b(set)h(to)h(`)p Fs(on)p Ft(',)i(completed)d(names)g ! (whic)m(h)e(are)i(sym)m(b)s(olic)e(links)g(to)i(di-)1110 ! 4614 y(rectories)i(ha)m(v)m(e)g(a)g(slash)e(app)s(ended)f(\(sub)5 ! b(ject)47 b(to)g(the)f(v)-5 b(alue)46 b(of)g Fs(mark-)1110 ! 4724 y(directories)p Ft(\).)38 b(The)30 b(default)f(is)h(`)p ! Fs(off)p Ft('.)630 4902 y Fs(match-hidden-files)1110 ! 5011 y Ft(This)20 b(v)-5 b(ariable,)23 b(when)f(set)g(to)h(`)p ! Fs(on)p Ft(',)h(causes)f(Readline)e(to)i(matc)m(h)g(\014les)e(whose) ! 1110 5121 y(names)44 b(b)s(egin)f(with)g(a)h(`)p Fs(.)p ! Ft(')g(\(hidden)e(\014les\))i(when)f(p)s(erforming)f(\014lename)1110 ! 5230 y(completion,)i(unless)c(the)h(leading)f(`)p Fs(.)p ! Ft(')i(is)f(supplied)d(b)m(y)j(the)h(user)f(in)f(the)1110 ! 5340 y(\014lename)30 b(to)h(b)s(e)e(completed.)41 b(This)29 ! b(v)-5 b(ariable)29 b(is)g(`)p Fs(on)p Ft(')i(b)m(y)f(default.)p ! eop ! %%Page: 7 11 ! 7 10 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2151 b(7)630 299 y Fs(output-meta)1110 ! 408 y Ft(If)35 b(set)h(to)g(`)p Fs(on)p Ft(',)h(Readline)d(will)f ! (displa)m(y)g(c)m(haracters)k(with)d(the)i(eigh)m(th)f(bit)1110 ! 518 y(set)i(directly)e(rather)h(than)g(as)h(a)g(meta-pre\014xed)f ! (escap)s(e)h(sequence.)59 b(The)1110 628 y(default)30 ! b(is)f(`)p Fs(off)p Ft('.)630 789 y Fs(page-completions)1110 ! 898 y Ft(If)k(set)i(to)f(`)p Fs(on)p Ft(',)h(Readline)e(uses)g(an)h(in) ! m(ternal)f Fs(more)p Ft(-lik)m(e)f(pager)i(to)h(displa)m(y)1110 ! 1008 y(a)e(screenful)e(of)h(p)s(ossible)e(completions)i(at)h(a)g(time.) ! 46 b(This)30 b(v)-5 b(ariable)32 b(is)f(`)p Fs(on)p Ft(')1110 ! 1118 y(b)m(y)f(default.)630 1279 y Fs(print-completions-horizo)o(ntal)o ! (ly)1110 1388 y Ft(If)23 b(set)i(to)g(`)p Fs(on)p Ft(',)g(Readline)e ! (will)e(displa)m(y)h(completions)h(with)g(matc)m(hes)i(sorted)1110 ! 1498 y(horizon)m(tally)42 b(in)g(alphab)s(etical)g(order,)47 ! b(rather)c(than)g(do)m(wn)g(the)h(screen.)1110 1608 y(The)30 ! b(default)f(is)h(`)p Fs(off)p Ft('.)630 1769 y Fs ! (show-all-if-ambiguous)1110 1878 y Ft(This)e(alters)i(the)g(default)f ! (b)s(eha)m(vior)g(of)h(the)h(completion)e(functions.)39 ! b(If)29 b(set)1110 1988 y(to)f(`)p Fs(on)p Ft(',)g(w)m(ords)f(whic)m(h) ! f(ha)m(v)m(e)j(more)f(than)f(one)h(p)s(ossible)d(completion)h(cause) ! 1110 2097 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)f(immediately)h ! (instead)g(of)h(ringing)e(the)i(b)s(ell.)1110 2207 y(The)30 ! b(default)f(v)-5 b(alue)30 b(is)g(`)p Fs(off)p Ft('.)630 ! 2368 y Fs(show-all-if-unmodified)1110 2478 y Ft(This)37 ! b(alters)h(the)h(default)f(b)s(eha)m(vior)g(of)g(the)h(completion)f ! (functions)f(in)h(a)1110 2587 y(fashion)24 b(similar)f(to)j ! Fi(sho)m(w-all-if-am)m(biguous)p Ft(.)37 b(If)25 b(set)h(to)h(`)p ! Fs(on)p Ft(',)f(w)m(ords)f(whic)m(h)1110 2697 y(ha)m(v)m(e)32 ! b(more)f(than)f(one)i(p)s(ossible)c(completion)i(without)g(an)m(y)h(p)s ! (ossible)d(par-)1110 2807 y(tial)41 b(completion)h(\(the)h(p)s(ossible) ! d(completions)h(don't)h(share)g(a)h(common)1110 2916 ! y(pre\014x\))30 b(cause)g(the)h(matc)m(hes)g(to)g(b)s(e)f(listed)e ! (immediately)h(instead)g(of)i(ring-)1110 3026 y(ing)f(the)g(b)s(ell.)39 ! b(The)30 b(default)f(v)-5 b(alue)30 b(is)f(`)p Fs(off)p ! Ft('.)630 3187 y Fs(visible-stats)1110 3296 y Ft(If)i(set)i(to)f(`)p ! Fs(on)p Ft(',)h(a)f(c)m(haracter)i(denoting)d(a)h(\014le's)f(t)m(yp)s ! (e)h(is)f(app)s(ended)f(to)j(the)1110 3406 y(\014lename)d(when)f ! (listing)f(p)s(ossible)g(completions.)40 b(The)30 b(default)f(is)h(`)p ! Fs(off)p Ft('.)150 3567 y(Key)g(Bindings)630 3677 y(The)41 ! b(syn)m(tax)i(for)f(con)m(trolling)e(k)m(ey)j(bindings)c(in)i(the)h ! (init)e(\014le)h(is)g(simple.)73 b(First)42 b(y)m(ou)630 ! 3786 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h(the)g(command)f(that)i ! (y)m(ou)f(w)m(an)m(t)g(to)g(c)m(hange.)41 b(The)27 b(follo)m(wing)630 ! 3896 y(sections)36 b(con)m(tain)g(tables)g(of)g(the)g(command)f(name,)j ! (the)e(default)f(k)m(eybinding,)g(if)g(an)m(y)-8 b(,)630 ! 4006 y(and)30 b(a)h(short)f(description)e(of)j(what)f(the)g(command)h ! (do)s(es.)630 4141 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g ! (the)g(command,)h(simply)d(place)i(on)f(a)i(line)d(in)h(the)h(init)630 ! 4251 y(\014le)d(the)h(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)e(to)i ! (bind)e(the)i(command)f(to,)i(a)f(colon,)h(and)e(then)630 ! 4360 y(the)f(name)g(of)g(the)g(command.)46 b(The)31 b(name)h(of)g(the)g ! (k)m(ey)h(can)f(b)s(e)f(expressed)h(in)e(di\013eren)m(t)630 ! 4470 y(w)m(a)m(ys,)h(dep)s(ending)d(on)j(what)f(y)m(ou)h(\014nd)d(most) ! j(comfortable.)630 4605 y(In)k(addition)f(to)j(command)f(names,)i ! (readline)c(allo)m(ws)h(k)m(eys)i(to)g(b)s(e)e(b)s(ound)f(to)j(a)f ! (string)630 4715 y(that)31 b(is)e(inserted)h(when)f(the)i(k)m(ey)g(is)e ! (pressed)h(\(a)h Fi(macro)5 b Ft(\).)630 4876 y Fi(k)m(eyname)g ! Ft(:)42 b Fi(function-name)34 b Ft(or)d Fi(macro)1110 ! 4985 y(k)m(eyname)k Ft(is)28 b(the)g(name)h(of)g(a)g(k)m(ey)h(sp)s ! (elled)c(out)j(in)f(English.)37 b(F)-8 b(or)30 b(example:)1350 ! 5121 y Fs(Control-u:)45 b(universal-argument)1350 5230 ! y(Meta-Rubout:)f(backward-kill-word)1350 5340 y(Control-o:)h(">)i ! (output")p eop ! %%Page: 8 12 ! 8 11 bop 150 -116 a Ft(8)2645 b(GNU)31 b(Readline)e(Library)1110 ! 299 y(In)38 b(the)h(ab)s(o)m(v)m(e)h(example,)g Fl(C-u)e ! Ft(is)g(b)s(ound)e(to)k(the)e(function)g Fs(universal-)1110 ! 408 y(argument)p Ft(,)g Fl(M-DEL)e Ft(is)h(b)s(ound)f(to)i(the)g ! (function)f Fs(backward-kill-word)p Ft(,)1110 518 y(and)h ! Fl(C-o)g Ft(is)g(b)s(ound)f(to)j(run)d(the)j(macro)f(expressed)g(on)f ! (the)i(righ)m(t)e(hand)1110 628 y(side)29 b(\(that)j(is,)d(to)i(insert) ! f(the)g(text)i(`)p Fs(>)e(output)p Ft(')f(in)m(to)h(the)h(line\).)1110 ! 764 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)e(c)m(haracter)k ! (names)e(are)g(recognized)g(while)e(pro-)1110 873 y(cessing)23 ! b(this)g(k)m(ey)h(binding)d(syn)m(tax:)37 b Fi(DEL)p ! Ft(,)24 b Fi(ESC)p Ft(,)f Fi(ESCAPE)p Ft(,)g Fi(LFD)p ! Ft(,)h Fi(NEW-)1110 983 y(LINE)p Ft(,)30 b Fi(RET)p Ft(,)g ! Fi(RETURN)p Ft(,)h Fi(R)m(UBOUT)p Ft(,)g Fi(SP)-8 b(A)m(CE)p ! Ft(,)30 b Fi(SPC)p Ft(,)g(and)f Fi(T)-8 b(AB)p Ft(.)630 ! 1146 y Fs(")p Fi(k)m(eyseq)r Fs(")p Ft(:)41 b Fi(function-name)35 ! b Ft(or)30 b Fi(macro)1110 1256 y(k)m(eyseq)k Ft(di\013ers)c(from)g ! Fi(k)m(eyname)37 b Ft(ab)s(o)m(v)m(e)32 b(in)e(that)i(strings)e ! (denoting)g(an)h(en-)1110 1365 y(tire)i(k)m(ey)i(sequence)f(can)g(b)s ! (e)f(sp)s(eci\014ed,)g(b)m(y)g(placing)g(the)h(k)m(ey)g(sequence)g(in) ! 1110 1475 y(double)28 b(quotes.)41 b(Some)29 b Fm(gnu)h ! Ft(Emacs)f(st)m(yle)h(k)m(ey)g(escap)s(es)g(can)g(b)s(e)f(used,)g(as) ! 1110 1584 y(in)j(the)i(follo)m(wing)f(example,)h(but)f(the)h(sp)s ! (ecial)f(c)m(haracter)i(names)f(are)g(not)1110 1694 y(recognized.)1350 ! 1830 y Fs("\\C-u":)46 b(universal-argument)1350 1940 ! y("\\C-x\\C-r":)f(re-read-init-file)1350 2049 y("\\e[11~":)g("Function) ! h(Key)g(1")1110 2186 y Ft(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)73 ! b Fl(C-u)64 b Ft(is)f(again)i(b)s(ound)d(to)k(the)e(function)1110 ! 2295 y Fs(universal-argument)39 b Ft(\(just)k(as)h(it)f(w)m(as)h(in)f ! (the)g(\014rst)g(example\),)48 b(`)p Fl(C-x)1110 2405 ! y(C-r)p Ft(')41 b(is)f(b)s(ound)f(to)j(the)f(function)f ! Fs(re-read-init-file)p Ft(,)f(and)i(`)3462 2402 y Fk(h)p ! 3486 2349 139 4 v 3486 2405 a Fj(ESC)p 3486 2420 V 3620 ! 2402 a Fk(i)31 b(h)p 3705 2349 20 4 v 3705 2405 a Fj([)p ! 3705 2421 V 3720 2402 a Fk(i)1110 2511 y(h)p 1134 2458 ! 36 4 v 1134 2514 a Fj(1)p 1134 2530 V 1165 2511 a Fk(i)f(h)p ! 1250 2458 V 1250 2514 a Fj(1)p 1250 2530 V 1281 2511 ! a Fk(i)g(h)p 1365 2458 48 4 v 1365 2514 a Fs(~)p 1365 ! 2530 V 1409 2511 a Fk(i)1438 2514 y Ft(')h(is)e(b)s(ound)g(to)i(insert) ! e(the)i(text)g(`)p Fs(Function)d(Key)i(1)p Ft('.)630 ! 2677 y(The)f(follo)m(wing)f Fm(gnu)i Ft(Emacs)g(st)m(yle)g(escap)s(e)g ! (sequences)g(are)g(a)m(v)-5 b(ailable)29 b(when)g(sp)s(ecifying)630 ! 2787 y(k)m(ey)i(sequences:)630 2950 y Fl(\\C-)336 b Ft(con)m(trol)31 ! b(pre\014x)630 3113 y Fl(\\M-)336 b Ft(meta)31 b(pre\014x)630 ! 3276 y Fl(\\e)384 b Ft(an)30 b(escap)s(e)h(c)m(haracter)630 ! 3438 y Fl(\\\\)384 b Ft(bac)m(kslash)630 3601 y Fl(\\)p ! Fs(")1110 3598 y Fk(h)p 1134 3545 V 1134 3601 a Fs(")p ! 1134 3617 V 1178 3598 a Fk(i)1208 3601 y Ft(,)30 b(a)h(double)e ! (quotation)h(mark)630 3764 y Fl(\\')1110 3761 y Fk(h)p ! 1134 3708 20 4 v 1134 3764 a Fj(')p 1134 3780 V 1150 ! 3761 a Fk(i)1179 3764 y Ft(,)h(a)g(single)e(quote)i(or)f(ap)s(ostrophe) ! 630 3927 y(In)d(addition)f(to)i(the)g Fm(gnu)f Ft(Emacs)h(st)m(yle)g ! (escap)s(e)g(sequences,)h(a)f(second)f(set)h(of)g(bac)m(kslash)630 ! 4037 y(escap)s(es)j(is)e(a)m(v)-5 b(ailable:)630 4200 ! y Fs(\\a)384 b Ft(alert)30 b(\(b)s(ell\))630 4363 y Fs(\\b)384 ! b Ft(bac)m(kspace)630 4525 y Fs(\\d)g Ft(delete)630 4688 ! y Fs(\\f)g Ft(form)30 b(feed)630 4851 y Fs(\\n)384 b ! Ft(newline)630 5014 y Fs(\\r)g Ft(carriage)31 b(return)630 ! 5177 y Fs(\\t)384 b Ft(horizon)m(tal)30 b(tab)630 5340 ! y Fs(\\v)384 b Ft(v)m(ertical)30 b(tab)p eop ! %%Page: 9 13 ! 9 12 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2151 b(9)630 299 y Fs(\\)p Fl(nnn)288 ! b Ft(the)35 b(eigh)m(t-bit)f(c)m(haracter)i(whose)e(v)-5 ! b(alue)34 b(is)g(the)g(o)s(ctal)h(v)-5 b(alue)34 b Fi(nnn)f ! Ft(\(one)i(to)1110 408 y(three)c(digits\))630 564 y Fs(\\x)p ! Fl(HH)288 b Ft(the)40 b(eigh)m(t-bit)f(c)m(haracter)i(whose)e(v)-5 ! b(alue)38 b(is)h(the)g(hexadecimal)g(v)-5 b(alue)39 b ! Fi(HH)1110 674 y Ft(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630 ! 830 y(When)37 b(en)m(tering)g(the)h(text)g(of)g(a)g(macro,)i(single)c ! (or)h(double)f(quotes)i(m)m(ust)f(b)s(e)g(used)f(to)630 ! 939 y(indicate)21 b(a)g(macro)h(de\014nition.)36 b(Unquoted)21 ! b(text)i(is)d(assumed)h(to)h(b)s(e)f(a)h(function)e(name.)38 ! b(In)630 1049 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23 ! b(the)e(bac)m(kslash)g(escap)s(es)h(describ)s(ed)d(ab)s(o)m(v)m(e)k ! (are)e(expanded.)37 b(Bac)m(kslash)630 1158 y(will)g(quote)k(an)m(y)f ! (other)g(c)m(haracter)i(in)c(the)j(macro)f(text,)k(including)36 ! b(`)p Fs(")p Ft(')k(and)g(`)p Fs(')p Ft('.)69 b(F)-8 ! b(or)630 1268 y(example,)27 b(the)f(follo)m(wing)e(binding)e(will)h ! (mak)m(e)k(`)p Fl(C-x)j Fs(\\)p Ft(')c(insert)e(a)i(single)f(`)p ! Fs(\\)p Ft(')h(in)m(to)f(the)h(line:)870 1401 y Fs("\\C-x\\\\":)45 ! b("\\\\")150 1619 y Fh(1.3.2)63 b(Conditional)41 b(Init)g(Constructs) ! 275 1862 y Ft(Readline)34 b(implemen)m(ts)f(a)j(facilit)m(y)f(similar)d ! (in)i(spirit)f(to)j(the)g(conditional)e(compilation)g(features)150 ! 1971 y(of)h(the)f(C)g(prepro)s(cessor)g(whic)m(h)f(allo)m(ws)h(k)m(ey)h ! (bindings)c(and)j(v)-5 b(ariable)33 b(settings)i(to)g(b)s(e)f(p)s ! (erformed)f(as)150 2081 y(the)e(result)e(of)h(tests.)42 ! b(There)30 b(are)h(four)e(parser)h(directiv)m(es)g(used.)150 ! 2237 y Fs($if)336 b Ft(The)31 b Fs($if)f Ft(construct)i(allo)m(ws)f ! (bindings)d(to)k(b)s(e)e(made)i(based)f(on)g(the)g(editing)f(mo)s(de,)i ! (the)630 2346 y(terminal)37 b(b)s(eing)f(used,)k(or)e(the)g ! (application)e(using)h(Readline.)62 b(The)38 b(text)h(of)f(the)g(test) ! 630 2456 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)e(no)h(c)m ! (haracters)i(are)f(required)d(to)j(isolate)g(it.)630 ! 2612 y Fs(mode)288 b Ft(The)20 b Fs(mode=)g Ft(form)g(of)h(the)g ! Fs($if)f Ft(directiv)m(e)h(is)f(used)g(to)h(test)h(whether)e(Readline) ! 1110 2721 y(is)28 b(in)h Fs(emacs)f Ft(or)h Fs(vi)g Ft(mo)s(de.)40 ! b(This)28 b(ma)m(y)i(b)s(e)e(used)h(in)f(conjunction)h(with)f(the)1110 ! 2831 y(`)p Fs(set)i(keymap)p Ft(')c(command,)i(for)f(instance,)h(to)g ! (set)g(bindings)d(in)h(the)i Fs(emacs-)1110 2940 y(standard)23 ! b Ft(and)h Fs(emacs-ctlx)f Ft(k)m(eymaps)i(only)f(if)g(Readline)g(is)g ! (starting)h(out)1110 3050 y(in)k Fs(emacs)g Ft(mo)s(de.)630 ! 3206 y Fs(term)288 b Ft(The)26 b Fs(term=)g Ft(form)g(ma)m(y)i(b)s(e)e ! (used)g(to)i(include)d(terminal-sp)s(eci\014c)f(k)m(ey)k(bind-)1110 ! 3315 y(ings,)37 b(p)s(erhaps)d(to)j(bind)d(the)i(k)m(ey)h(sequences)f ! (output)g(b)m(y)g(the)g(terminal's)1110 3425 y(function)23 ! b(k)m(eys.)39 b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)e(side)g(of)h ! (the)g(`)p Fs(=)p Ft(')g(is)f(tested)i(against)1110 3534 ! y(b)s(oth)k(the)h(full)e(name)i(of)g(the)g(terminal)f(and)g(the)i(p)s ! (ortion)d(of)i(the)g(terminal)1110 3644 y(name)k(b)s(efore)f(the)g ! (\014rst)g(`)p Fs(-)p Ft('.)50 b(This)32 b(allo)m(ws)h ! Fs(sun)g Ft(to)h(matc)m(h)g(b)s(oth)f Fs(sun)g Ft(and)1110 ! 3754 y Fs(sun-cmd)p Ft(,)c(for)h(instance.)630 3909 y ! Fs(application)1110 4019 y Ft(The)21 b Fi(application)g ! Ft(construct)h(is)f(used)g(to)i(include)d(application-sp)s(eci\014c)f ! (set-)1110 4129 y(tings.)38 b(Eac)m(h)26 b(program)e(using)f(the)i ! (Readline)e(library)g(sets)i(the)g Fi(application)1110 ! 4238 y(name)p Ft(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)f ! (v)-5 b(alue.)38 b(This)21 b(could)h(b)s(e)h(used)f(to)1110 ! 4348 y(bind)31 b(k)m(ey)i(sequences)g(to)h(functions)d(useful)g(for)i ! (a)g(sp)s(eci\014c)e(program.)48 b(F)-8 b(or)1110 4457 ! y(instance,)34 b(the)f(follo)m(wing)e(command)i(adds)f(a)i(k)m(ey)f ! (sequence)h(that)f(quotes)1110 4567 y(the)e(curren)m(t)f(or)g(previous) ! f(w)m(ord)h(in)f(Bash:)1350 4700 y Fs($if)47 b(Bash)1350 ! 4809 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350 ! 4919 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 5028 y($endif)150 ! 5184 y($endif)192 b Ft(This)28 b(command,)j(as)f(seen)h(in)e(the)h ! (previous)f(example,)h(terminates)g(an)h Fs($if)e Ft(command.)150 ! 5340 y Fs($else)240 b Ft(Commands)29 b(in)g(this)h(branc)m(h)f(of)i ! (the)f Fs($if)g Ft(directiv)m(e)g(are)h(executed)g(if)e(the)i(test)g ! (fails.)p eop ! %%Page: 10 14 ! 10 13 bop 150 -116 a Ft(10)2600 b(GNU)31 b(Readline)e(Library)150 ! 299 y Fs($include)96 b Ft(This)42 b(directiv)m(e)h(tak)m(es)i(a)e ! (single)g(\014lename)f(as)i(an)f(argumen)m(t)h(and)f(reads)g(commands) ! 630 408 y(and)38 b(bindings)d(from)j(that)i(\014le.)64 ! b(F)-8 b(or)39 b(example,)i(the)e(follo)m(wing)e(directiv)m(e)h(reads)g ! (from)630 518 y(`)p Fs(/etc/inputrc)p Ft(':)870 653 y ! Fs($include)46 b(/etc/inputrc)150 877 y Fh(1.3.3)63 b(Sample)40 ! b(Init)h(File)275 1121 y Ft(Here)31 b(is)e(an)h(example)h(of)f(an)g ! Fi(inputrc)k Ft(\014le.)41 b(This)28 b(illustrates)h(k)m(ey)i(binding,) ! d(v)-5 b(ariable)29 b(assignmen)m(t,)150 1230 y(and)h(conditional)e ! (syn)m(tax.)p eop ! %%Page: 11 15 ! 11 14 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2105 b(11)390 408 y Fs(#)47 b(This)g(file)g(controls)e ! (the)i(behaviour)e(of)j(line)e(input)h(editing)e(for)390 ! 518 y(#)i(programs)f(that)h(use)g(the)f(GNU)h(Readline)f(library.)93 ! b(Existing)390 628 y(#)47 b(programs)f(include)g(FTP,)g(Bash,)h(and)g ! (GDB.)390 737 y(#)390 847 y(#)g(You)g(can)g(re-read)f(the)h(inputrc)f ! (file)g(with)h(C-x)g(C-r.)390 956 y(#)g(Lines)g(beginning)e(with)i('#') ! g(are)g(comments.)390 1066 y(#)390 1176 y(#)g(First,)g(include)e(any)i ! (systemwide)e(bindings)h(and)h(variable)390 1285 y(#)g(assignments)e ! (from)i(/etc/Inputrc)390 1395 y($include)f(/etc/Inputrc)390 ! 1614 y(#)390 1724 y(#)h(Set)g(various)f(bindings)g(for)h(emacs)f(mode.) ! 390 1943 y(set)h(editing-mode)d(emacs)390 2162 y($if)j(mode=emacs)390 ! 2381 y(Meta-Control-h:)91 b(backward-kill-word)43 b(Text)k(after)f(the) ! h(function)f(name)g(is)h(ignored)p 3971 2401 42 76 v ! 390 2600 a(#)390 2710 y(#)g(Arrow)g(keys)f(in)i(keypad)e(mode)390 ! 2819 y(#)390 2929 y(#"\\M-OD":)379 b(backward-char)390 ! 3039 y(#"\\M-OC":)g(forward-char)390 3148 y(#"\\M-OA":)g ! (previous-history)390 3258 y(#"\\M-OB":)g(next-history)390 ! 3367 y(#)390 3477 y(#)47 b(Arrow)g(keys)f(in)i(ANSI)e(mode)390 ! 3587 y(#)390 3696 y("\\M-[D":)380 b(backward-char)390 ! 3806 y("\\M-[C":)g(forward-char)390 3915 y("\\M-[A":)g ! (previous-history)390 4025 y("\\M-[B":)g(next-history)390 ! 4134 y(#)390 4244 y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(keypad)f(mode) ! 390 4354 y(#)390 4463 y(#"\\M-\\C-OD":)331 b(backward-char)390 ! 4573 y(#"\\M-\\C-OC":)g(forward-char)390 4682 y(#"\\M-\\C-OA":)g ! (previous-history)390 4792 y(#"\\M-\\C-OB":)g(next-history)390 ! 4902 y(#)390 5011 y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(ANSI)g(mode) ! 390 5121 y(#)390 5230 y(#"\\M-\\C-[D":)331 b(backward-char)390 ! 5340 y(#"\\M-\\C-[C":)g(forward-char)p eop ! %%Page: 12 16 ! 12 15 bop 150 -116 a Ft(12)2600 b(GNU)31 b(Readline)e(Library)390 ! 299 y Fs(#"\\M-\\C-[A":)331 b(previous-history)390 408 ! y(#"\\M-\\C-[B":)g(next-history)390 628 y(C-q:)47 b(quoted-insert)390 ! 847 y($endif)390 1066 y(#)g(An)h(old-style)d(binding.)93 ! b(This)47 b(happens)f(to)h(be)g(the)g(default.)390 1176 ! y(TAB:)g(complete)390 1395 y(#)g(Macros)g(that)f(are)h(convenient)e ! (for)i(shell)f(interaction)390 1504 y($if)h(Bash)390 ! 1614 y(#)g(edit)g(the)g(path)390 1724 y("\\C-xp":)f ! ("PATH=${PATH}\\e\\C-e\\C-a)o(\\ef)o(\\C-f)o(")390 1833 ! y(#)h(prepare)f(to)h(type)g(a)h(quoted)e(word)g(--)390 ! 1943 y(#)h(insert)g(open)f(and)h(close)f(double)h(quotes)390 ! 2052 y(#)g(and)g(move)g(to)g(just)g(after)f(the)h(open)g(quote)390 ! 2162 y("\\C-x\\"":)e("\\"\\"\\C-b")390 2271 y(#)i(insert)g(a)g ! (backslash)e(\(testing)h(backslash)f(escapes)390 2381 ! y(#)i(in)h(sequences)d(and)i(macros\))390 2491 y("\\C-x\\\\":)e("\\\\") ! 390 2600 y(#)i(Quote)g(the)g(current)f(or)h(previous)e(word)390 ! 2710 y("\\C-xq":)h("\\eb\\"\\ef\\"")390 2819 y(#)h(Add)g(a)h(binding)e ! (to)h(refresh)f(the)h(line,)f(which)g(is)h(unbound)390 ! 2929 y("\\C-xr":)f(redraw-current-line)390 3039 y(#)h(Edit)g(variable)f ! (on)h(current)f(line.)390 3148 y("\\M-\\C-v":)f ! ("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-)o(a\\C-)o(y=")390 3258 ! y($endif)390 3477 y(#)i(use)g(a)h(visible)e(bell)g(if)h(one)g(is)h ! (available)390 3587 y(set)f(bell-style)e(visible)390 ! 3806 y(#)i(don't)g(strip)f(characters)f(to)i(7)h(bits)e(when)h(reading) ! 390 3915 y(set)g(input-meta)e(on)390 4134 y(#)i(allow)g(iso-latin1)e ! (characters)g(to)i(be)g(inserted)f(rather)390 4244 y(#)h(than)g ! (converted)e(to)j(prefix-meta)c(sequences)390 4354 y(set)j ! (convert-meta)d(off)390 4573 y(#)j(display)f(characters)f(with)i(the)g ! (eighth)f(bit)h(set)g(directly)390 4682 y(#)g(rather)g(than)f(as)h ! (meta-prefixed)e(characters)390 4792 y(set)i(output-meta)e(on)390 ! 5011 y(#)i(if)h(there)e(are)h(more)g(than)f(150)h(possible)f ! (completions)e(for)390 5121 y(#)j(a)h(word,)e(ask)h(the)g(user)g(if)g ! (he)g(wants)f(to)i(see)f(all)f(of)i(them)390 5230 y(set)f ! (completion-query-items)42 b(150)p eop ! %%Page: 13 17 ! 13 16 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2105 b(13)390 299 y Fs(#)47 b(For)g(FTP)390 ! 408 y($if)g(Ftp)390 518 y("\\C-xg":)f("get)g(\\M-?")390 ! 628 y("\\C-xt":)g("put)g(\\M-?")390 737 y("\\M-.":)g(yank-last-arg)390 ! 847 y($endif)150 1098 y Fr(1.4)68 b(Bindable)45 b(Readline)i(Commands) ! 275 1340 y Ft(This)29 b(section)j(describ)s(es)d(Readline)h(commands)h ! (that)h(ma)m(y)g(b)s(e)f(b)s(ound)e(to)j(k)m(ey)g(sequences.)44 ! b(Com-)150 1449 y(mand)30 b(names)g(without)f(an)h(accompan)m(ying)h(k) ! m(ey)h(sequence)e(are)h(un)m(b)s(ound)d(b)m(y)i(default.)275 ! 1582 y(In)25 b(the)h(follo)m(wing)f(descriptions,)g Fi(p)s(oin)m(t)i ! Ft(refers)f(to)h(the)f(curren)m(t)g(cursor)g(p)s(osition,)f(and)h ! Fi(mark)31 b Ft(refers)150 1691 y(to)40 b(a)f(cursor)f(p)s(osition)f ! (sa)m(v)m(ed)j(b)m(y)f(the)g Fs(set-mark)d Ft(command.)66 ! b(The)38 b(text)i(b)s(et)m(w)m(een)g(the)f(p)s(oin)m(t)f(and)150 ! 1801 y(mark)30 b(is)g(referred)f(to)i(as)g(the)f Fi(region)p ! Ft(.)150 2018 y Fh(1.4.1)63 b(Commands)40 b(F)-10 b(or)41 ! b(Mo)m(ving)150 2260 y Fs(beginning-of-line)26 b(\(C-a\))630 ! 2370 y Ft(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f(curren)m(t)g ! (line.)150 2525 y Fs(end-of-line)d(\(C-e\))630 2635 y ! Ft(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150 ! 2790 y Fs(forward-char)c(\(C-f\))630 2899 y Ft(Mo)m(v)m(e)32 ! b(forw)m(ard)e(a)h(c)m(haracter.)150 3054 y Fs(backward-char)c(\(C-b\)) ! 630 3164 y Ft(Mo)m(v)m(e)32 b(bac)m(k)g(a)e(c)m(haracter.)150 ! 3319 y Fs(forward-word)d(\(M-f\))630 3429 y Ft(Mo)m(v)m(e)32 ! b(forw)m(ard)e(to)h(the)f(end)g(of)g(the)h(next)f(w)m(ord.)41 ! b(W)-8 b(ords)30 b(are)h(comp)s(osed)f(of)g(letters)h(and)630 ! 3538 y(digits.)150 3693 y Fs(backward-word)c(\(M-b\))630 ! 3803 y Ft(Mo)m(v)m(e)36 b(bac)m(k)e(to)g(the)g(start)g(of)g(the)g ! (curren)m(t)f(or)g(previous)f(w)m(ord.)50 b(W)-8 b(ords)34 ! b(are)g(comp)s(osed)630 3913 y(of)d(letters)f(and)g(digits.)150 ! 4068 y Fs(clear-screen)d(\(C-l\))630 4177 y Ft(Clear)f(the)h(screen)f ! (and)h(redra)m(w)f(the)h(curren)m(t)f(line,)g(lea)m(ving)g(the)h ! (curren)m(t)g(line)e(at)i(the)g(top)630 4287 y(of)k(the)f(screen.)150 ! 4442 y Fs(redraw-current-line)25 b(\(\))630 4552 y Ft(Refresh)30 ! b(the)g(curren)m(t)h(line.)39 b(By)30 b(default,)g(this)f(is)h(un)m(b)s ! (ound.)150 4769 y Fh(1.4.2)63 b(Commands)40 b(F)-10 b(or)41 ! b(Manipulating)h(The)f(History)150 5011 y Fs(accept-line)27 ! b(\(Newline)h(or)i(Return\))630 5121 y Ft(Accept)36 b(the)g(line)d ! (regardless)i(of)g(where)g(the)g(cursor)g(is.)54 b(If)34 ! b(this)g(line)g(is)g(non-empt)m(y)-8 b(,)37 b(it)630 ! 5230 y(ma)m(y)32 b(b)s(e)g(added)f(to)h(the)g(history)f(list)g(for)g ! (future)g(recall)h(with)e Fs(add_history\(\))p Ft(.)42 ! b(If)31 b(this)630 5340 y(line)e(is)g(a)i(mo)s(di\014ed)d(history)h ! (line,)g(the)i(history)e(line)g(is)g(restored)i(to)g(its)f(original)e ! (state.)p eop ! %%Page: 14 18 ! 14 17 bop 150 -116 a Ft(14)2600 b(GNU)31 b(Readline)e(Library)150 ! 299 y Fs(previous-history)d(\(C-p\))630 408 y Ft(Mo)m(v)m(e)32 ! b(`bac)m(k')g(through)e(the)g(history)g(list,)f(fetc)m(hing)h(the)h ! (previous)e(command.)150 586 y Fs(next-history)e(\(C-n\))630 ! 696 y Ft(Mo)m(v)m(e)32 b(`forw)m(ard')f(through)e(the)i(history)e ! (list,)h(fetc)m(hing)g(the)h(next)f(command.)150 873 ! y Fs(beginning-of-history)25 b(\(M-<\))630 983 y Ft(Mo)m(v)m(e)32 ! b(to)g(the)e(\014rst)g(line)e(in)i(the)g(history)-8 b(.)150 ! 1161 y Fs(end-of-history)26 b(\(M->\))630 1270 y Ft(Mo)m(v)m(e)32 ! b(to)g(the)e(end)g(of)g(the)h(input)d(history)-8 b(,)30 ! b(i.e.,)h(the)g(line)d(curren)m(tly)i(b)s(eing)f(en)m(tered.)150 ! 1448 y Fs(reverse-search-history)24 b(\(C-r\))630 1558 ! y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)f(at)h(the)f(curren)m(t)g ! (line)e(and)i(mo)m(ving)g(`up')f(through)h(the)g(his-)630 ! 1667 y(tory)g(as)f(necessary)-8 b(.)42 b(This)28 b(is)i(an)g(incremen)m ! (tal)g(searc)m(h.)150 1845 y Fs(forward-search-history)24 ! b(\(C-s\))630 1955 y Ft(Searc)m(h)30 b(forw)m(ard)f(starting)g(at)h ! (the)g(curren)m(t)f(line)f(and)h(mo)m(ving)g(`do)m(wn')g(through)g(the) ! h(the)630 2064 y(history)f(as)i(necessary)-8 b(.)41 b(This)29 ! b(is)g(an)i(incremen)m(tal)e(searc)m(h.)150 2242 y Fs ! (non-incremental-reverse-)o(sear)o(ch-h)o(ist)o(ory)24 ! b(\(M-p\))630 2352 y Ft(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)f(at)h ! (the)f(curren)m(t)g(line)e(and)i(mo)m(ving)g(`up')f(through)h(the)g ! (his-)630 2461 y(tory)36 b(as)g(necessary)h(using)d(a)j(non-incremen)m ! (tal)e(searc)m(h)h(for)g(a)g(string)f(supplied)e(b)m(y)j(the)630 ! 2571 y(user.)150 2748 y Fs(non-incremental-forward-)o(sear)o(ch-h)o ! (ist)o(ory)24 b(\(M-n\))630 2858 y Ft(Searc)m(h)30 b(forw)m(ard)f ! (starting)g(at)h(the)g(curren)m(t)f(line)f(and)h(mo)m(ving)g(`do)m(wn') ! g(through)g(the)h(the)630 2968 y(history)c(as)g(necessary)i(using)d(a)i ! (non-incremen)m(tal)e(searc)m(h)j(for)e(a)h(string)f(supplied)d(b)m(y)k ! (the)630 3077 y(user.)150 3255 y Fs(history-search-forward)d(\(\))630 ! 3364 y Ft(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)e(for)h ! (the)h(string)e(of)i(c)m(haracters)h(b)s(et)m(w)m(een)f(the)630 ! 3474 y(start)36 b(of)f(the)g(curren)m(t)g(line)e(and)i(the)g(p)s(oin)m ! (t.)54 b(This)33 b(is)i(a)g(non-incremen)m(tal)f(searc)m(h.)56 ! b(By)630 3584 y(default,)30 b(this)f(command)h(is)g(un)m(b)s(ound.)150 ! 3761 y Fs(history-search-backward)24 b(\(\))630 3871 ! y Ft(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)f(for)h ! (the)f(string)g(of)h(c)m(haracters)h(b)s(et)m(w)m(een)g(the)630 ! 3981 y(start)g(of)f(the)g(curren)m(t)g(line)e(and)i(the)g(p)s(oin)m(t.) ! 54 b(This)33 b(is)i(a)g(non-incremen)m(tal)f(searc)m(h.)56 ! b(By)630 4090 y(default,)30 b(this)f(command)h(is)g(un)m(b)s(ound.)150 ! 4268 y Fs(yank-nth-arg)d(\(M-C-y\))630 4377 y Ft(Insert)e(the)i ! (\014rst)e(argumen)m(t)h(to)h(the)f(previous)f(command)g(\(usually)f ! (the)i(second)g(w)m(ord)g(on)630 4487 y(the)k(previous)f(line\))f(at)j ! (p)s(oin)m(t.)39 b(With)30 b(an)g(argumen)m(t)g Fi(n)p ! Ft(,)g(insert)e(the)j Fi(n)p Ft(th)e(w)m(ord)g(from)h(the)630 ! 4597 y(previous)25 b(command)i(\(the)h(w)m(ords)e(in)g(the)h(previous)e ! (command)i(b)s(egin)e(with)h(w)m(ord)h(0\).)40 b(A)630 ! 4706 y(negativ)m(e)27 b(argumen)m(t)f(inserts)e(the)i ! Fi(n)p Ft(th)f(w)m(ord)g(from)g(the)h(end)f(of)h(the)g(previous)e ! (command.)150 4884 y Fs(yank-last-arg)j(\(M-.)i(or)h(M-_\))630 ! 4994 y Ft(Insert)k(last)h(argumen)m(t)h(to)g(the)f(previous)e(command)i ! (\(the)h(last)e(w)m(ord)h(of)g(the)g(previous)630 5103 ! y(history)30 b(en)m(try\).)41 b(With)30 b(an)h(argumen)m(t,)g(b)s(eha)m ! (v)m(e)g(exactly)h(lik)m(e)e Fs(yank-nth-arg)p Ft(.)38 ! b(Succes-)630 5213 y(siv)m(e)c(calls)g(to)h Fs(yank-last-arg)c ! Ft(mo)m(v)m(e)36 b(bac)m(k)g(through)d(the)i(history)f(list,)g ! (inserting)f(the)630 5322 y(last)d(argumen)m(t)h(of)g(eac)m(h)g(line)e ! (in)g(turn.)p eop ! %%Page: 15 19 ! 15 18 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2105 b(15)150 299 y Fh(1.4.3)63 b(Commands)40 ! b(F)-10 b(or)41 b(Changing)g(T)-10 b(ext)150 547 y Fs(delete-char)27 ! b(\(C-d\))630 656 y Ft(Delete)40 b(the)f(c)m(haracter)i(at)e(p)s(oin)m ! (t.)65 b(If)39 b(p)s(oin)m(t)e(is)h(at)i(the)f(b)s(eginning)d(of)j(the) ! g(line,)h(there)630 766 y(are)d(no)g(c)m(haracters)i(in)c(the)j(line,)f ! (and)f(the)h(last)g(c)m(haracter)i(t)m(yp)s(ed)e(w)m(as)g(not)g(b)s ! (ound)e(to)630 875 y Fs(delete-char)p Ft(,)28 b(then)i(return)f ! Fm(eof)p Ft(.)150 1042 y Fs(backward-delete-char)c(\(Rubout\))630 ! 1152 y Ft(Delete)31 b(the)g(c)m(haracter)g(b)s(ehind)d(the)i(cursor.)40 ! b(A)30 b(n)m(umeric)f(argumen)m(t)i(means)f(to)h(kill)d(the)630 ! 1261 y(c)m(haracters)k(instead)d(of)i(deleting)e(them.)150 ! 1428 y Fs(forward-backward-delete-)o(char)24 b(\(\))630 ! 1538 y Ft(Delete)39 b(the)g(c)m(haracter)h(under)c(the)j(cursor,)h ! (unless)c(the)j(cursor)e(is)g(at)i(the)g(end)e(of)i(the)630 ! 1647 y(line,)31 b(in)f(whic)m(h)g(case)j(the)f(c)m(haracter)h(b)s ! (ehind)c(the)j(cursor)f(is)f(deleted.)45 b(By)32 b(default,)f(this)630 ! 1757 y(is)e(not)i(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 ! 1924 y Fs(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 2033 ! y Ft(Add)j(the)i(next)f(c)m(haracter)i(t)m(yp)s(ed)e(to)h(the)f(line)f ! (v)m(erbatim.)52 b(This)32 b(is)i(ho)m(w)g(to)h(insert)e(k)m(ey)630 ! 2143 y(sequences)e(lik)m(e)e Fl(C-q)p Ft(,)h(for)g(example.)150 ! 2310 y Fs(tab-insert)e(\(M-)802 2307 y Fk(h)p 825 2254 ! 148 4 v 825 2310 a Fj(T)-6 b(AB)p 825 2325 V 969 2307 ! a Fk(i)998 2310 y Fs(\))630 2419 y Ft(Insert)30 b(a)h(tab)f(c)m ! (haracter.)150 2586 y Fs(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o ! (\))630 2696 y Ft(Insert)g(y)m(ourself.)150 2862 y Fs(transpose-chars)c ! (\(C-t\))630 2972 y Ft(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)g ! (cursor)f(forw)m(ard)h(o)m(v)m(er)h(the)f(c)m(haracter)i(at)e(the)g ! (cursor,)630 3081 y(mo)m(ving)j(the)h(cursor)f(forw)m(ard)g(as)g(w)m ! (ell.)55 b(If)35 b(the)h(insertion)e(p)s(oin)m(t)g(is)g(at)j(the)e(end) ! g(of)h(the)630 3191 y(line,)22 b(then)g(this)f(transp)s(oses)g(the)h ! (last)g(t)m(w)m(o)h(c)m(haracters)g(of)f(the)h(line.)36 ! b(Negativ)m(e)24 b(argumen)m(ts)630 3301 y(ha)m(v)m(e)32 ! b(no)e(e\013ect.)150 3467 y Fs(transpose-words)c(\(M-t\))630 ! 3577 y Ft(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)f(past)h ! (the)h(w)m(ord)f(after)g(p)s(oin)m(t,)h(mo)m(ving)f(p)s(oin)m(t)f(past) ! h(that)630 3687 y(w)m(ord)c(as)h(w)m(ell.)39 b(If)27 ! b(the)i(insertion)d(p)s(oin)m(t)i(is)f(at)i(the)g(end)e(of)i(the)f ! (line,)g(this)f(transp)s(oses)h(the)630 3796 y(last)i(t)m(w)m(o)i(w)m ! (ords)e(on)g(the)h(line.)150 3963 y Fs(upcase-word)c(\(M-u\))630 ! 4073 y Ft(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))f ! (w)m(ord.)45 b(With)31 b(a)h(negativ)m(e)i(argumen)m(t,)f(upp)s(er-)630 ! 4182 y(case)e(the)g(previous)e(w)m(ord,)h(but)g(do)g(not)h(mo)m(v)m(e)h ! (the)e(cursor.)150 4349 y Fs(downcase-word)d(\(M-l\))630 ! 4458 y Ft(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))f ! (w)m(ord.)37 b(With)21 b(a)h(negativ)m(e)h(argumen)m(t,)h(lo)m(w)m ! (ercase)630 4568 y(the)31 b(previous)d(w)m(ord,)j(but)e(do)i(not)f(mo)m ! (v)m(e)i(the)f(cursor.)150 4735 y Fs(capitalize-word)26 ! b(\(M-c\))630 4844 y Ft(Capitalize)20 b(the)i(curren)m(t)f(\(or)g ! (follo)m(wing\))f(w)m(ord.)38 b(With)20 b(a)i(negativ)m(e)g(argumen)m ! (t,)i(capitalize)630 4954 y(the)31 b(previous)d(w)m(ord,)j(but)e(do)i ! (not)f(mo)m(v)m(e)i(the)f(cursor.)150 5121 y Fs(overwrite-mode)26 ! b(\(\))630 5230 y Ft(T)-8 b(oggle)34 b(o)m(v)m(erwrite)g(mo)s(de.)48 ! b(With)32 b(an)h(explicit)e(p)s(ositiv)m(e)h(n)m(umeric)g(argumen)m(t,) ! i(switc)m(hes)630 5340 y(to)22 b(o)m(v)m(erwrite)h(mo)s(de.)37 ! b(With)21 b(an)h(explicit)e(non-p)s(ositiv)m(e)g(n)m(umeric)h(argumen)m ! (t,)j(switc)m(hes)d(to)p eop ! %%Page: 16 20 ! 16 19 bop 150 -116 a Ft(16)2600 b(GNU)31 b(Readline)e(Library)630 ! 299 y(insert)g(mo)s(de.)41 b(This)29 b(command)i(a\013ects)h(only)d ! Fs(emacs)g Ft(mo)s(de;)i Fs(vi)f Ft(mo)s(de)g(do)s(es)g(o)m(v)m ! (erwrite)630 408 y(di\013eren)m(tly)-8 b(.)40 b(Eac)m(h)31 ! b(call)f(to)h Fs(readline\(\))c Ft(starts)k(in)e(insert)g(mo)s(de.)630 ! 539 y(In)f(o)m(v)m(erwrite)i(mo)s(de,)f(c)m(haracters)i(b)s(ound)c(to)j ! Fs(self-insert)c Ft(replace)j(the)h(text)g(at)g(p)s(oin)m(t)630 ! 648 y(rather)41 b(than)h(pushing)d(the)j(text)g(to)g(the)g(righ)m(t.)74 ! b(Characters)42 b(b)s(ound)d(to)j Fs(backward-)630 758 ! y(delete-char)27 b Ft(replace)k(the)f(c)m(haracter)i(b)s(efore)e(p)s ! (oin)m(t)g(with)f(a)h(space.)630 888 y(By)h(default,)e(this)h(command)g ! (is)f(un)m(b)s(ound.)150 1099 y Fh(1.4.4)63 b(Killing)42 ! b(And)e(Y)-10 b(anking)150 1339 y Fs(kill-line)28 b(\(C-k\))630 ! 1449 y Ft(Kill)g(the)i(text)i(from)e(p)s(oin)m(t)f(to)i(the)g(end)e(of) ! i(the)f(line.)150 1599 y Fs(backward-kill-line)25 b(\(C-x)30 ! b(Rubout\))630 1709 y Ft(Kill)e(bac)m(kw)m(ard)j(to)g(the)f(b)s ! (eginning)e(of)i(the)h(line.)150 1860 y Fs(unix-line-discard)26 ! b(\(C-u\))630 1969 y Ft(Kill)i(bac)m(kw)m(ard)j(from)e(the)i(cursor)f ! (to)h(the)f(b)s(eginning)e(of)j(the)f(curren)m(t)g(line.)150 ! 2120 y Fs(kill-whole-line)c(\(\))630 2230 y Ft(Kill)34 ! b(all)h(c)m(haracters)j(on)f(the)f(curren)m(t)h(line,)f(no)h(matter)g ! (where)f(p)s(oin)m(t)g(is.)58 b(By)36 b(default,)630 ! 2339 y(this)29 b(is)h(un)m(b)s(ound.)150 2490 y Fs(kill-word)e(\(M-d\)) ! 630 2600 y Ft(Kill)f(from)i(p)s(oin)m(t)f(to)i(the)g(end)e(of)i(the)f ! (curren)m(t)h(w)m(ord,)f(or)g(if)g(b)s(et)m(w)m(een)h(w)m(ords,)f(to)h ! (the)g(end)630 2709 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8 ! b(ord)31 b(b)s(oundaries)d(are)i(the)h(same)g(as)f Fs(forward-word)p ! Ft(.)150 2860 y Fs(backward-kill-word)25 b(\(M-)1183 ! 2857 y Fk(h)p 1207 2804 146 4 v 1207 2860 a Fj(DEL)p ! 1207 2875 V 1348 2857 a Fk(i)1378 2860 y Fs(\))630 2970 ! y Ft(Kill)h(the)j(w)m(ord)g(b)s(ehind)d(p)s(oin)m(t.)39 ! b(W)-8 b(ord)29 b(b)s(oundaries)e(are)i(the)g(same)g(as)g ! Fs(backward-word)p Ft(.)150 3120 y Fs(unix-word-rubout)d(\(C-w\))630 ! 3230 y Ft(Kill)j(the)j(w)m(ord)f(b)s(ehind)e(p)s(oin)m(t,)i(using)f ! (white)h(space)h(as)g(a)g(w)m(ord)f(b)s(oundary)-8 b(.)43 ! b(The)31 b(killed)630 3339 y(text)g(is)f(sa)m(v)m(ed)h(on)g(the)f ! (kill-ring.)150 3490 y Fs(unix-filename-rubout)25 b(\(\))630 ! 3600 y Ft(Kill)34 b(the)i(w)m(ord)g(b)s(ehind)e(p)s(oin)m(t,)j(using)e ! (white)g(space)i(and)f(the)g(slash)f(c)m(haracter)j(as)f(the)630 ! 3709 y(w)m(ord)30 b(b)s(oundaries.)38 b(The)30 b(killed)e(text)j(is)f ! (sa)m(v)m(ed)h(on)g(the)f(kill-ring.)150 3860 y Fs ! (delete-horizontal-space)24 b(\(\))630 3970 y Ft(Delete)32 ! b(all)d(spaces)i(and)e(tabs)i(around)e(p)s(oin)m(t.)40 ! b(By)31 b(default,)e(this)h(is)f(un)m(b)s(ound.)150 4121 ! y Fs(kill-region)e(\(\))630 4230 y Ft(Kill)h(the)i(text)i(in)d(the)h ! (curren)m(t)h(region.)40 b(By)31 b(default,)e(this)h(command)g(is)f(un) ! m(b)s(ound.)150 4381 y Fs(copy-region-as-kill)c(\(\))630 ! 4490 y Ft(Cop)m(y)34 b(the)g(text)h(in)e(the)h(region)f(to)i(the)f ! (kill)e(bu\013er,)i(so)g(it)g(can)g(b)s(e)f(y)m(ank)m(ed)i(righ)m(t)e ! (a)m(w)m(a)m(y)-8 b(.)630 4600 y(By)31 b(default,)e(this)h(command)g ! (is)f(un)m(b)s(ound.)150 4751 y Fs(copy-backward-word)c(\(\))630 ! 4860 y Ft(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)f(to)j ! (the)e(kill)e(bu\013er.)64 b(The)38 b(w)m(ord)g(b)s(oundaries)e(are)j ! (the)630 4970 y(same)31 b(as)f Fs(backward-word)p Ft(.)38 ! b(By)30 b(default,)g(this)f(command)h(is)g(un)m(b)s(ound.)150 ! 5121 y Fs(copy-forward-word)c(\(\))630 5230 y Ft(Cop)m(y)31 ! b(the)g(w)m(ord)g(follo)m(wing)e(p)s(oin)m(t)h(to)i(the)f(kill)e ! (bu\013er.)42 b(The)30 b(w)m(ord)h(b)s(oundaries)d(are)k(the)630 ! 5340 y(same)f(as)f Fs(forward-word)p Ft(.)38 b(By)30 ! b(default,)g(this)g(command)g(is)f(un)m(b)s(ound.)p eop ! %%Page: 17 21 ! 17 20 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2105 b(17)150 299 y Fs(yank)29 b(\(C-y\))630 ! 408 y Ft(Y)-8 b(ank)31 b(the)f(top)h(of)g(the)f(kill)e(ring)h(in)m(to)i ! (the)f(bu\013er)g(at)h(p)s(oin)m(t.)150 552 y Fs(yank-pop)d(\(M-y\))630 ! 661 y Ft(Rotate)36 b(the)f(kill-ring,)e(and)h(y)m(ank)h(the)f(new)g ! (top.)54 b(Y)-8 b(ou)35 b(can)g(only)e(do)i(this)e(if)h(the)h(prior)630 ! 771 y(command)30 b(is)g Fs(yank)f Ft(or)h Fs(yank-pop)p ! Ft(.)150 971 y Fh(1.4.5)63 b(Sp)s(ecifying)41 b(Numeric)f(Argumen)m(ts) ! 150 1207 y Fs(digit-argument)26 b(\()p Fl(M-0)p Fs(,)j ! Fl(M-1)p Fs(,)h(...)f Fl(M--)p Fs(\))630 1317 y Ft(Add)d(this)g(digit)f ! (to)j(the)f(argumen)m(t)g(already)g(accum)m(ulating,)g(or)g(start)h(a)f ! (new)f(argumen)m(t.)630 1427 y Fl(M--)j Ft(starts)i(a)g(negativ)m(e)h ! (argumen)m(t.)150 1570 y Fs(universal-argument)25 b(\(\))630 ! 1680 y Ft(This)f(is)g(another)i(w)m(a)m(y)g(to)h(sp)s(ecify)d(an)h ! (argumen)m(t.)40 b(If)25 b(this)f(command)i(is)e(follo)m(w)m(ed)h(b)m ! (y)h(one)630 1789 y(or)k(more)f(digits,)g(optionally)f(with)g(a)i ! (leading)f(min)m(us)f(sign,)h(those)h(digits)e(de\014ne)h(the)h(ar-)630 ! 1899 y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)f(follo)m(w)m(ed)g(b) ! m(y)h(digits,)g(executing)g Fs(universal-argument)630 ! 2008 y Ft(again)j(ends)f(the)h(n)m(umeric)e(argumen)m(t,)j(but)e(is)g ! (otherwise)g(ignored.)44 b(As)32 b(a)g(sp)s(ecial)f(case,)630 ! 2118 y(if)h(this)g(command)g(is)g(immediately)f(follo)m(w)m(ed)i(b)m(y) ! f(a)h(c)m(haracter)i(that)e(is)f(neither)g(a)h(digit)630 ! 2228 y(or)28 b(min)m(us)e(sign,)i(the)g(argumen)m(t)g(coun)m(t)h(for)e ! (the)i(next)f(command)f(is)g(m)m(ultiplied)e(b)m(y)i(four.)630 ! 2337 y(The)37 b(argumen)m(t)h(coun)m(t)f(is)g(initially)d(one,)39 ! b(so)f(executing)f(this)f(function)g(the)i(\014rst)e(time)630 ! 2447 y(mak)m(es)d(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)i(second)e ! (time)h(mak)m(es)g(the)g(argumen)m(t)g(coun)m(t)h(six-)630 ! 2556 y(teen,)e(and)f(so)h(on.)40 b(By)31 b(default,)f(this)f(is)g(not)i ! (b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 2757 y Fh(1.4.6)63 ! b(Letting)40 b(Readline)h(T)m(yp)s(e)g(F)-10 b(or)42 ! b(Y)-10 b(ou)150 2993 y Fs(complete)28 b(\()610 2990 ! y Fk(h)p 634 2937 148 4 v 634 2993 a Fj(T)-6 b(AB)p 634 ! 3008 V 778 2990 a Fk(i)808 2993 y Fs(\))630 3102 y Ft(A)m(ttempt)24 ! b(to)f(p)s(erform)e(completion)h(on)h(the)g(text)g(b)s(efore)f(p)s(oin) ! m(t.)38 b(The)22 b(actual)h(completion)630 3212 y(p)s(erformed)29 ! b(is)g(application-sp)s(eci\014c.)38 b(The)30 b(default)g(is)f ! (\014lename)h(completion.)150 3355 y Fs(possible-completions)25 ! b(\(M-?\))630 3465 y Ft(List)30 b(the)g(p)s(ossible)e(completions)i(of) ! g(the)h(text)g(b)s(efore)f(p)s(oin)m(t.)150 3608 y Fs ! (insert-completions)25 b(\(M-*\))630 3718 y Ft(Insert)30 ! b(all)f(completions)h(of)h(the)g(text)g(b)s(efore)f(p)s(oin)m(t)g(that) ! h(w)m(ould)e(ha)m(v)m(e)j(b)s(een)e(generated)630 3827 ! y(b)m(y)g Fs(possible-completions)p Ft(.)150 3971 y Fs(menu-complete)d ! (\(\))630 4080 y Ft(Similar)21 b(to)j Fs(complete)p Ft(,)f(but)h ! (replaces)f(the)h(w)m(ord)g(to)g(b)s(e)f(completed)h(with)e(a)j(single) ! d(matc)m(h)630 4190 y(from)37 b(the)h(list)f(of)h(p)s(ossible)d ! (completions.)62 b(Rep)s(eated)39 b(execution)f(of)g ! Fs(menu-complete)630 4300 y Ft(steps)i(through)g(the)g(list)f(of)h(p)s ! (ossible)e(completions,)k(inserting)c(eac)m(h)k(matc)m(h)f(in)e(turn.) ! 630 4409 y(A)m(t)f(the)f(end)f(of)h(the)g(list)e(of)i(completions,)g ! (the)g(b)s(ell)e(is)h(rung)g(\(sub)5 b(ject)36 b(to)i(the)f(setting)630 ! 4519 y(of)f Fs(bell-style)p Ft(\))e(and)h(the)h(original)f(text)i(is)e ! (restored.)57 b(An)36 b(argumen)m(t)h(of)f Fi(n)f Ft(mo)m(v)m(es)i ! Fi(n)630 4628 y Ft(p)s(ositions)c(forw)m(ard)h(in)f(the)i(list)f(of)g ! (matc)m(hes;)39 b(a)c(negativ)m(e)h(argumen)m(t)f(ma)m(y)g(b)s(e)f ! (used)g(to)630 4738 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g ! (list.)63 b(This)37 b(command)h(is)f(in)m(tended)g(to)i(b)s(e)f(b)s ! (ound)e(to)630 4845 y Fk(h)p 654 4792 V 654 4848 a Fj(T)-6 ! b(AB)p 654 4863 V 798 4845 a Fk(i)828 4848 y Ft(,)30 ! b(but)g(is)f(un)m(b)s(ound)f(b)m(y)i(default.)150 4991 ! y Fs(delete-char-or-list)25 b(\(\))630 5101 y Ft(Deletes)j(the)f(c)m ! (haracter)h(under)e(the)h(cursor)f(if)g(not)h(at)g(the)g(b)s(eginning)e ! (or)h(end)h(of)g(the)g(line)630 5210 y(\(lik)m(e)i Fs(delete-char)p ! Ft(\).)37 b(If)29 b(at)h(the)f(end)f(of)i(the)f(line,)f(b)s(eha)m(v)m ! (es)i(iden)m(tically)d(to)i Fs(possible-)630 5320 y(completions)p ! Ft(.)38 b(This)28 b(command)i(is)g(un)m(b)s(ound)e(b)m(y)i(default.)p ! eop ! %%Page: 18 22 ! 18 21 bop 150 -116 a Ft(18)2600 b(GNU)31 b(Readline)e(Library)150 ! 299 y Fh(1.4.7)63 b(Keyb)s(oard)41 b(Macros)150 545 y ! Fs(start-kbd-macro)26 b(\(C-x)j(\(\))630 655 y Ft(Begin)h(sa)m(ving)h ! (the)f(c)m(haracters)i(t)m(yp)s(ed)e(in)m(to)g(the)h(curren)m(t)f(k)m ! (eyb)s(oard)g(macro.)150 818 y Fs(end-kbd-macro)d(\(C-x)i(\)\))630 ! 927 y Ft(Stop)e(sa)m(ving)g(the)h(c)m(haracters)g(t)m(yp)s(ed)f(in)m ! (to)h(the)f(curren)m(t)g(k)m(eyb)s(oard)g(macro)h(and)f(sa)m(v)m(e)i ! (the)630 1037 y(de\014nition.)150 1200 y Fs(call-last-kbd-macro)c ! (\(C-x)k(e\))630 1310 y Ft(Re-execute)37 b(the)e(last)g(k)m(eyb)s(oard) ! g(macro)h(de\014ned,)f(b)m(y)h(making)e(the)h(c)m(haracters)i(in)d(the) ! 630 1419 y(macro)d(app)s(ear)f(as)g(if)g(t)m(yp)s(ed)g(at)h(the)f(k)m ! (eyb)s(oard.)150 1651 y Fh(1.4.8)63 b(Some)40 b(Miscellaneous)j ! (Commands)150 1898 y Fs(re-read-init-file)26 b(\(C-x)j(C-r\))630 ! 2007 y Ft(Read)22 b(in)f(the)h(con)m(ten)m(ts)h(of)f(the)g ! Fi(inputrc)k Ft(\014le,)d(and)e(incorp)s(orate)g(an)m(y)i(bindings)18 ! b(or)k(v)-5 b(ariable)630 2117 y(assignmen)m(ts)30 b(found)f(there.)150 ! 2280 y Fs(abort)g(\(C-g\))630 2390 y Ft(Ab)s(ort)d(the)h(curren)m(t)f ! (editing)f(command)h(and)g(ring)g(the)g(terminal's)f(b)s(ell)g(\(sub)5 ! b(ject)26 b(to)i(the)630 2499 y(setting)i(of)h Fs(bell-style)p ! Ft(\).)150 2663 y Fs(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p ! Fl(x)p Fs(,)g(...)o(\))630 2772 y Ft(If)e(the)h(meta\014ed)g(c)m ! (haracter)h Fi(x)34 b Ft(is)27 b(lo)m(w)m(ercase,)i(run)e(the)g ! (command)h(that)g(is)f(b)s(ound)e(to)k(the)630 2882 y(corresp)s(onding) ! f(upp)s(ercase)i(c)m(haracter.)150 3045 y Fs(prefix-meta)d(\()753 ! 3042 y Fk(h)p 777 2989 139 4 v 777 3045 a Fj(ESC)p 777 ! 3060 V 911 3042 a Fk(i)941 3045 y Fs(\))630 3155 y Ft(Metafy)39 ! b(the)e(next)h(c)m(haracter)h(t)m(yp)s(ed.)62 b(This)36 ! b(is)g(for)i(k)m(eyb)s(oards)f(without)f(a)i(meta)g(k)m(ey)-8 ! b(.)630 3264 y(T)m(yping)29 b(`)968 3261 y Fk(h)p 993 ! 3208 V 993 3264 a Fj(ESC)p 993 3280 V 1127 3261 a Fk(i)1187 ! 3264 y Fs(f)p Ft(')h(is)f(equiv)-5 b(alen)m(t)30 b(to)h(t)m(yping)f ! Fl(M-f)p Ft(.)150 3428 y Fs(undo)f(\(C-_)g(or)h(C-x)g(C-u\))630 ! 3537 y Ft(Incremen)m(tal)g(undo,)g(separately)g(remem)m(b)s(ered)g(for) ! g(eac)m(h)i(line.)150 3700 y Fs(revert-line)27 b(\(M-r\))630 ! 3810 y Ft(Undo)33 b(all)f(c)m(hanges)i(made)f(to)h(this)e(line.)47 ! b(This)31 b(is)h(lik)m(e)h(executing)g(the)g Fs(undo)f ! Ft(command)630 3920 y(enough)e(times)g(to)h(get)h(bac)m(k)f(to)g(the)f ! (b)s(eginning.)150 4083 y Fs(tilde-expand)d(\(M-~\))630 ! 4192 y Ft(P)m(erform)j(tilde)f(expansion)h(on)g(the)g(curren)m(t)h(w)m ! (ord.)150 4356 y Fs(set-mark)d(\(C-@\))630 4465 y Ft(Set)33 ! b(the)g(mark)f(to)i(the)f(p)s(oin)m(t.)47 b(If)32 b(a)h(n)m(umeric)f ! (argumen)m(t)h(is)f(supplied,)e(the)j(mark)g(is)e(set)630 ! 4575 y(to)g(that)g(p)s(osition.)150 4738 y Fs(exchange-point-and-mark) ! 24 b(\(C-x)29 b(C-x\))630 4848 y Ft(Sw)m(ap)i(the)g(p)s(oin)m(t)f(with) ! g(the)h(mark.)43 b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)g(is)g ! (set)i(to)f(the)h(sa)m(v)m(ed)630 4957 y(p)s(osition,)d(and)g(the)i ! (old)f(cursor)f(p)s(osition)g(is)g(sa)m(v)m(ed)j(as)e(the)h(mark.)150 ! 5121 y Fs(character-search)26 b(\(C-]\))630 5230 y Ft(A)f(c)m(haracter) ! h(is)e(read)h(and)f(p)s(oin)m(t)g(is)g(mo)m(v)m(ed)i(to)g(the)f(next)g ! (o)s(ccurrence)g(of)g(that)g(c)m(haracter.)630 5340 y(A)30 ! b(negativ)m(e)i(coun)m(t)f(searc)m(hes)g(for)f(previous)f(o)s ! (ccurrences.)p eop ! %%Page: 19 23 ! 19 22 bop 150 -116 a Ft(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2105 b(19)150 299 y Fs(character-search-backwar)o(d)24 ! b(\(M-C-]\))630 408 y Ft(A)45 b(c)m(haracter)h(is)e(read)h(and)f(p)s ! (oin)m(t)g(is)g(mo)m(v)m(ed)i(to)f(the)g(previous)e(o)s(ccurrence)i(of) ! g(that)630 518 y(c)m(haracter.)d(A)31 b(negativ)m(e)g(coun)m(t)g(searc) ! m(hes)h(for)e(subsequen)m(t)f(o)s(ccurrences.)150 677 ! y Fs(insert-comment)d(\(M-#\))630 787 y Ft(Without)35 ! b(a)h(n)m(umeric)f(argumen)m(t,)i(the)f(v)-5 b(alue)35 ! b(of)h(the)g Fs(comment-begin)c Ft(v)-5 b(ariable)34 ! b(is)h(in-)630 897 y(serted)d(at)g(the)g(b)s(eginning)d(of)j(the)f ! (curren)m(t)h(line.)43 b(If)31 b(a)h(n)m(umeric)e(argumen)m(t)i(is)f ! (supplied,)630 1006 y(this)k(command)i(acts)g(as)g(a)g(toggle:)54 ! b(if)36 b(the)g(c)m(haracters)i(at)g(the)e(b)s(eginning)e(of)j(the)g ! (line)630 1116 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5 ! b(alue)30 b(of)g Fs(comment-begin)p Ft(,)e(the)i(v)-5 ! b(alue)30 b(is)g(inserted,)g(otherwise)g(the)630 1225 ! y(c)m(haracters)42 b(in)c Fs(comment-begin)f Ft(are)j(deleted)g(from)g ! (the)g(b)s(eginning)e(of)i(the)g(line.)69 b(In)630 1335 ! y(either)30 b(case,)i(the)e(line)f(is)g(accepted)j(as)f(if)e(a)i ! (newline)d(had)i(b)s(een)f(t)m(yp)s(ed.)150 1494 y Fs(dump-functions)d ! (\(\))630 1604 y Ft(Prin)m(t)f(all)h(of)g(the)h(functions)e(and)h ! (their)f(k)m(ey)i(bindings)c(to)28 b(the)e(Readline)f(output)h(stream.) ! 630 1714 y(If)31 b(a)h(n)m(umeric)f(argumen)m(t)h(is)f(supplied,)e(the) ! j(output)f(is)g(formatted)h(in)e(suc)m(h)i(a)g(w)m(a)m(y)g(that)630 ! 1823 y(it)e(can)h(b)s(e)e(made)i(part)f(of)g(an)h Fi(inputrc)j ! Ft(\014le.)40 b(This)28 b(command)i(is)g(un)m(b)s(ound)d(b)m(y)k ! (default.)150 1983 y Fs(dump-variables)26 b(\(\))630 ! 2092 y Ft(Prin)m(t)20 b(all)g(of)i(the)f(settable)h(v)-5 ! b(ariables)20 b(and)h(their)f(v)-5 b(alues)21 b(to)h(the)f(Readline)f ! (output)h(stream.)630 2202 y(If)31 b(a)h(n)m(umeric)f(argumen)m(t)h(is) ! f(supplied,)e(the)j(output)f(is)g(formatted)h(in)e(suc)m(h)i(a)g(w)m(a) ! m(y)g(that)630 2311 y(it)e(can)h(b)s(e)e(made)i(part)f(of)g(an)h ! Fi(inputrc)j Ft(\014le.)40 b(This)28 b(command)i(is)g(un)m(b)s(ound)d ! (b)m(y)k(default.)150 2471 y Fs(dump-macros)c(\(\))630 ! 2580 y Ft(Prin)m(t)33 b(all)f(of)i(the)g(Readline)e(k)m(ey)j(sequences) ! f(b)s(ound)e(to)i(macros)g(and)f(the)h(strings)f(they)630 ! 2690 y(output.)53 b(If)35 b(a)g(n)m(umeric)e(argumen)m(t)j(is)d ! (supplied,)g(the)i(output)g(is)e(formatted)j(in)d(suc)m(h)i(a)630 ! 2800 y(w)m(a)m(y)c(that)g(it)e(can)h(b)s(e)g(made)g(part)f(of)i(an)e ! Fi(inputrc)34 b Ft(\014le.)40 b(This)28 b(command)i(is)f(un)m(b)s(ound) ! e(b)m(y)630 2909 y(default.)150 3068 y Fs(emacs-editing-mode)e(\(C-e\)) ! 630 3178 y Ft(When)30 b(in)f Fs(vi)h Ft(command)g(mo)s(de,)g(this)g ! (causes)g(a)h(switc)m(h)f(to)h Fs(emacs)e Ft(editing)g(mo)s(de.)150 ! 3337 y Fs(vi-editing-mode)d(\(M-C-j\))630 3447 y Ft(When)k(in)f ! Fs(emacs)g Ft(editing)g(mo)s(de,)h(this)g(causes)g(a)h(switc)m(h)f(to)h ! Fs(vi)f Ft(editing)f(mo)s(de.)150 3704 y Fr(1.5)68 b(Readline)47 ! b(vi)e(Mo)t(de)275 3949 y Ft(While)22 b(the)i(Readline)e(library)f(do)s ! (es)j(not)g(ha)m(v)m(e)g(a)h(full)c(set)j(of)g Fs(vi)f ! Ft(editing)f(functions,)i(it)f(do)s(es)h(con)m(tain)150 ! 4058 y(enough)34 b(to)h(allo)m(w)e(simple)f(editing)h(of)h(the)g(line.) ! 50 b(The)34 b(Readline)e Fs(vi)i Ft(mo)s(de)f(b)s(eha)m(v)m(es)i(as)f ! (sp)s(eci\014ed)e(in)150 4168 y(the)f Fm(posix)e Ft(1003.2)k(standard.) ! 275 4302 y(In)28 b(order)g(to)i(switc)m(h)f(in)m(teractiv)m(ely)g(b)s ! (et)m(w)m(een)g Fs(emacs)f Ft(and)g Fs(vi)h Ft(editing)e(mo)s(des,)i ! (use)g(the)g(command)150 4412 y Fl(M-C-j)36 b Ft(\(b)s(ound)h(to)h ! (emacs-editing-mo)s(de)g(when)f(in)f Fs(vi)i Ft(mo)s(de)f(and)g(to)i ! (vi-editing-mo)s(de)d(in)g Fs(emacs)150 4521 y Ft(mo)s(de\).)41 ! b(The)30 b(Readline)f(default)g(is)g Fs(emacs)g Ft(mo)s(de.)275 ! 4656 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)d(in)h Fs(vi)g ! Ft(mo)s(de,)h(y)m(ou)h(are)f(already)g(placed)f(in)g(`insertion')f(mo)s ! (de,)i(as)h(if)e(y)m(ou)150 4765 y(had)d(t)m(yp)s(ed)g(an)g(`)p ! Fs(i)p Ft('.)39 b(Pressing)1215 4762 y Fk(h)p 1239 4709 ! 139 4 v 1239 4765 a Fj(ESC)p 1239 4781 V 1373 4762 a ! Fk(i)1429 4765 y Ft(switc)m(hes)26 b(y)m(ou)h(in)m(to)f(`command')g(mo) ! s(de,)h(where)f(y)m(ou)h(can)f(edit)g(the)150 4875 y(text)35 ! b(of)f(the)g(line)e(with)g(the)i(standard)f Fs(vi)g Ft(mo)m(v)m(emen)m ! (t)j(k)m(eys,)g(mo)m(v)m(e)f(to)f(previous)f(history)f(lines)g(with)150 ! 4985 y(`)p Fs(k)p Ft(')f(and)e(subsequen)m(t)h(lines)f(with)g(`)p ! Fs(j)p Ft(',)h(and)g(so)h(forth.)p eop ! %%Page: 20 24 ! 20 23 bop 150 -116 a Ft(20)2600 b(GNU)31 b(Readline)e(Library)p ! eop ! %%Page: 21 25 ! 21 24 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(21)150 299 y Fp(2)80 b(Programming)53 ! b(with)h(GNU)g(Readline)275 527 y Ft(This)32 b(c)m(hapter)i(describ)s ! (es)e(the)i(in)m(terface)h(b)s(et)m(w)m(een)f(the)g Fm(gnu)g ! Ft(Readline)f(Library)f(and)h(other)h(pro-)150 637 y(grams.)k(If)22 ! b(y)m(ou)h(are)g(a)g(programmer,)h(and)d(y)m(ou)i(wish)e(to)i(include)d ! (the)j(features)g(found)e(in)g Fm(gnu)h Ft(Readline)150 ! 746 y(suc)m(h)g(as)h(completion,)h(line)d(editing,)i(and)f(in)m ! (teractiv)m(e)h(history)f(manipulation)e(in)h(y)m(our)h(o)m(wn)h ! (programs,)150 856 y(this)29 b(section)i(is)e(for)h(y)m(ou.)150 ! 1110 y Fr(2.1)68 b(Basic)45 b(Beha)l(vior)275 1353 y ! Ft(Man)m(y)31 b(programs)f(pro)m(vide)g(a)h(command)f(line)f(in)m ! (terface,)i(suc)m(h)g(as)f Fs(mail)p Ft(,)g Fs(ftp)p ! Ft(,)g(and)g Fs(sh)p Ft(.)41 b(F)-8 b(or)31 b(suc)m(h)150 ! 1462 y(programs,)e(the)f(default)g(b)s(eha)m(viour)f(of)i(Readline)e ! (is)h(su\016cien)m(t.)39 b(This)27 b(section)i(describ)s(es)d(ho)m(w)j ! (to)g(use)150 1572 y(Readline)k(in)g(the)i(simplest)d(w)m(a)m(y)j(p)s ! (ossible,)f(p)s(erhaps)e(to)j(replace)g(calls)e(in)g(y)m(our)i(co)s(de) ! f(to)h Fs(gets\(\))e Ft(or)150 1682 y Fs(fgets\(\))p ! Ft(.)275 1815 y(The)f(function)f Fs(readline\(\))f Ft(prin)m(ts)h(a)h ! (prompt)g Fi(prompt)i Ft(and)e(then)g(reads)g(and)g(returns)f(a)i ! (single)150 1924 y(line)e(of)i(text)h(from)e(the)h(user.)47 ! b(If)32 b Fi(prompt)i Ft(is)d Fs(NULL)h Ft(or)h(the)f(empt)m(y)i ! (string,)e(no)h(prompt)e(is)h(displa)m(y)m(ed.)150 2034 ! y(The)37 b(line)e Fs(readline)g Ft(returns)h(is)g(allo)s(cated)h(with)f ! Fs(malloc\(\))p Ft(;)i(the)f(caller)g(should)e Fs(free\(\))g ! Ft(the)j(line)150 2144 y(when)29 b(it)h(has)g(\014nished)e(with)h(it.) ! 41 b(The)29 b(declaration)h(for)h Fs(readline)d Ft(in)h(ANSI)h(C)g(is) ! 390 2277 y Fs(char)47 b(*readline)e(\(const)h(char)h(*)p ! Fl(prompt)11 b Fs(\);)150 2410 y Ft(So,)31 b(one)f(migh)m(t)g(sa)m(y) ! 390 2544 y Fs(char)47 b(*line)f(=)h(readline)f(\("Enter)g(a)h(line:)g ! ("\);)150 2677 y Ft(in)22 b(order)g(to)h(read)g(a)g(line)f(of)h(text)h ! (from)e(the)h(user.)38 b(The)22 b(line)f(returned)h(has)g(the)h ! (\014nal)f(newline)f(remo)m(v)m(ed,)150 2787 y(so)31 ! b(only)e(the)i(text)g(remains.)275 2920 y(If)40 b Fs(readline)e ! Ft(encoun)m(ters)j(an)f Fs(EOF)f Ft(while)g(reading)g(the)i(line,)h ! (and)d(the)i(line)e(is)g(empt)m(y)i(at)g(that)150 3029 ! y(p)s(oin)m(t,)29 b(then)g Fs(\(char)g(*\)NULL)e Ft(is)i(returned.)39 ! b(Otherwise,)29 b(the)g(line)f(is)g(ended)h(just)g(as)g(if)g(a)g ! (newline)f(had)150 3139 y(b)s(een)i(t)m(yp)s(ed.)275 ! 3272 y(If)25 b(y)m(ou)h(w)m(an)m(t)h(the)f(user)f(to)i(b)s(e)e(able)g ! (to)i(get)g(at)g(the)f(line)e(later,)j(\(with)2651 3269 ! y Fk(h)p 2675 3216 114 4 v 2675 3272 a Fj(C-p)p 2675 ! 3288 V 2784 3269 a Fk(i)2840 3272 y Ft(for)f(example\),)h(y)m(ou)f(m)m ! (ust)150 3382 y(call)k Fs(add_history\(\))c Ft(to)32 ! b(sa)m(v)m(e)f(the)g(line)e(a)m(w)m(a)m(y)j(in)d(a)i ! Fi(history)37 b Ft(list)29 b(of)i(suc)m(h)f(lines.)390 ! 3515 y Fs(add_history)45 b(\(line\);)150 3649 y Ft(F)-8 ! b(or)31 b(full)d(details)i(on)g(the)g(GNU)h(History)f(Library)-8 ! b(,)30 b(see)h(the)f(asso)s(ciated)h(man)m(ual.)275 3782 ! y(It)g(is)f(preferable)g(to)j(a)m(v)m(oid)e(sa)m(ving)h(empt)m(y)f ! (lines)f(on)h(the)h(history)e(list,)g(since)h(users)f(rarely)h(ha)m(v)m ! (e)i(a)150 3892 y(burning)27 b(need)i(to)i(reuse)e(a)h(blank)f(line.)38 ! b(Here)31 b(is)d(a)i(function)f(whic)m(h)f(usefully)f(replaces)j(the)g ! (standard)150 4001 y Fs(gets\(\))f Ft(library)f(function,)h(and)h(has)g ! (the)g(adv)-5 b(an)m(tage)33 b(of)d(no)g(static)h(bu\013er)f(to)h(o)m ! (v)m(er\015o)m(w:)390 4134 y Fs(/*)47 b(A)h(static)e(variable)f(for)i ! (holding)f(the)h(line.)f(*/)390 4244 y(static)g(char)h(*line_read)e(=)i ! (\(char)g(*\)NULL;)390 4463 y(/*)g(Read)g(a)g(string,)f(and)h(return)f ! (a)i(pointer)d(to)j(it.)533 4573 y(Returns)e(NULL)h(on)g(EOF.)f(*/)390 ! 4682 y(char)h(*)390 4792 y(rl_gets)f(\(\))390 4902 y({)485 ! 5011 y(/*)i(If)f(the)g(buffer)f(has)h(already)f(been)g(allocated,)629 ! 5121 y(return)g(the)h(memory)f(to)h(the)g(free)f(pool.)h(*/)485 ! 5230 y(if)h(\(line_read\))581 5340 y({)p eop ! %%Page: 22 26 ! 22 25 bop 150 -116 a Ft(22)2600 b(GNU)31 b(Readline)e(Library)676 ! 299 y Fs(free)47 b(\(line_read\);)676 408 y(line_read)f(=)h(\(char)f ! (*\)NULL;)581 518 y(})485 737 y(/*)i(Get)f(a)g(line)g(from)f(the)h ! (user.)g(*/)485 847 y(line_read)f(=)h(readline)f(\(""\);)485 ! 1066 y(/*)i(If)f(the)g(line)f(has)h(any)g(text)g(in)g(it,)629 ! 1176 y(save)f(it)h(on)h(the)f(history.)e(*/)485 1285 ! y(if)j(\(line_read)d(&&)i(*line_read\))581 1395 y(add_history)e ! (\(line_read\);)485 1614 y(return)i(\(line_read\);)390 ! 1724 y(})275 1854 y Ft(This)21 b(function)i(giv)m(es)h(the)g(user)f ! (the)h(default)f(b)s(eha)m(viour)f(of)2338 1851 y Fk(h)p ! 2362 1798 148 4 v 2362 1854 a Fj(T)-6 b(AB)p 2362 1870 ! V 2506 1851 a Fk(i)2560 1854 y Ft(completion:)36 b(completion)23 ! b(on)h(\014le)150 1964 y(names.)41 b(If)31 b(y)m(ou)g(do)f(not)h(w)m ! (an)m(t)g(Readline)f(to)h(complete)g(on)g(\014lenames,)f(y)m(ou)h(can)f ! (c)m(hange)i(the)f(binding)150 2074 y(of)g(the)410 2071 ! y Fk(h)p 434 2018 V 434 2074 a Fj(T)-6 b(AB)p 434 2089 ! V 578 2071 a Fk(i)638 2074 y Ft(k)m(ey)31 b(with)e Fs(rl_bind_key\(\))p ! Ft(.)390 2205 y Fs(int)47 b(rl_bind_key)e(\(int)h Fl(key)p ! Fs(,)h(rl_command_func_t)c(*)p Fl(function)11 b Fs(\);)275 ! 2335 y(rl_bind_key\(\))29 b Ft(tak)m(es)35 b(t)m(w)m(o)g(argumen)m(ts:) ! 47 b Fi(k)m(ey)c Ft(is)32 b(the)i(c)m(haracter)h(that)f(y)m(ou)g(w)m ! (an)m(t)g(to)g(bind,)f(and)150 2445 y Fi(function)h Ft(is)h(the)h ! (address)f(of)h(the)g(function)f(to)h(call)f(when)g Fi(k)m(ey)44 ! b Ft(is)35 b(pressed.)56 b(Binding)3257 2442 y Fk(h)p ! 3281 2389 V 3281 2445 a Fj(T)-6 b(AB)p 3281 2460 V 3425 ! 2442 a Fk(i)3490 2445 y Ft(to)37 b Fs(rl_)150 2555 y(insert\(\))c ! Ft(mak)m(es)845 2552 y Fk(h)p 869 2499 V 869 2555 a Fj(T)-6 ! b(AB)p 869 2570 V 1013 2552 a Fk(i)1077 2555 y Ft(insert)34 ! b(itself.)54 b Fs(rl_bind_key\(\))32 b Ft(returns)h(non-zero)j(if)e ! Fi(k)m(ey)44 b Ft(is)34 b(not)h(a)h(v)-5 b(alid)150 2664 ! y(ASCI)s(I)29 b(c)m(haracter)j(co)s(de)e(\(b)s(et)m(w)m(een)i(0)f(and)e ! (255\).)275 2795 y(Th)m(us,)g(to)i(disable)e(the)h(default)1407 ! 2792 y Fk(h)p 1431 2739 V 1431 2795 a Fj(T)-6 b(AB)p ! 1431 2810 V 1575 2792 a Fk(i)1635 2795 y Ft(b)s(eha)m(vior,)30 ! b(the)g(follo)m(wing)f(su\016ces:)390 2926 y Fs(rl_bind_key)45 ! b(\('\\t',)h(rl_insert\);)275 3057 y Ft(This)24 b(co)s(de)j(should)d(b) ! s(e)i(executed)h(once)g(at)g(the)g(start)g(of)f(y)m(our)h(program;)g(y) ! m(ou)g(migh)m(t)f(write)g(a)h(func-)150 3166 y(tion)32 ! b(called)g Fs(initialize_readline\(\))27 b Ft(whic)m(h)32 ! b(p)s(erforms)f(this)g(and)i(other)g(desired)e(initializations,)150 ! 3276 y(suc)m(h)f(as)h(installing)c(custom)k(completers)f(\(see)h ! (Section)g(2.6)g([Custom)f(Completers],)g(page)h(41\).)150 ! 3523 y Fr(2.2)68 b(Custom)45 b(F)-11 b(unctions)275 3763 ! y Ft(Readline)23 b(pro)m(vides)g(man)m(y)i(functions)e(for)h ! (manipulating)d(the)k(text)g(of)g(the)g(line,)f(but)g(it)g(isn't)f(p)s ! (ossi-)150 3873 y(ble)i(to)i(an)m(ticipate)g(the)g(needs)f(of)g(all)f ! (programs.)39 b(This)25 b(section)h(describ)s(es)f(the)h(v)-5 ! b(arious)26 b(functions)f(and)150 3982 y(v)-5 b(ariables)25 ! b(de\014ned)g(within)e(the)j(Readline)f(library)f(whic)m(h)h(allo)m(w)g ! (a)i(user)e(program)h(to)h(add)e(customized)150 4092 ! y(functionalit)m(y)k(to)i(Readline.)275 4223 y(Before)37 ! b(declaring)e(an)m(y)i(functions)e(that)i(customize)g(Readline's)e(b)s ! (eha)m(vior,)i(or)g(using)e(an)m(y)i(func-)150 4332 y(tionalit)m(y)45 ! b(Readline)f(pro)m(vides)g(in)g(other)i(co)s(de,)k(an)45 ! b(application)f(writer)g(should)g(include)f(the)j(\014le)150 ! 4442 y Fs()28 b Ft(in)k(an)m(y)i(\014le)e(that)i ! (uses)f(Readline's)f(features.)51 b(Since)32 b(some)i(of)g(the)f ! (de\014-)150 4552 y(nitions)c(in)h Fs(readline.h)e Ft(use)j(the)h ! Fs(stdio)d Ft(library)-8 b(,)30 b(the)h(\014le)g Fs()d ! Ft(should)h(b)s(e)i(included)d(b)s(efore)150 4661 y Fs(readline.h)p ! Ft(.)275 4792 y Fs(readline.h)f Ft(de\014nes)j(a)h(C)f(prepro)s(cessor) ! g(v)-5 b(ariable)29 b(that)i(should)e(b)s(e)h(treated)h(as)g(an)g(in)m ! (teger,)g Fs(RL_)150 4902 y(READLINE_VERSION)p Ft(,)20 ! b(whic)m(h)g(ma)m(y)j(b)s(e)f(used)f(to)i(conditionally)d(compile)h ! (application)f(co)s(de)i(dep)s(ending)150 5011 y(on)35 ! b(the)g(installed)e(Readline)g(v)m(ersion.)55 b(The)34 ! b(v)-5 b(alue)34 b(is)h(a)g(hexadecimal)f(enco)s(ding)g(of)h(the)h(ma)5 ! b(jor)35 b(and)150 5121 y(minor)e(v)m(ersion)g(n)m(um)m(b)s(ers)g(of)h ! (the)h(library)-8 b(,)33 b(of)h(the)h(form)e(0x)p Fi(MMmm)p ! Ft(.)53 b Fi(MM)45 b Ft(is)33 b(the)h(t)m(w)m(o-digit)h(ma)5 ! b(jor)150 5230 y(v)m(ersion)28 b(n)m(um)m(b)s(er;)h Fi(mm)f ! Ft(is)g(the)h(t)m(w)m(o-digit)h(minor)d(v)m(ersion)i(n)m(um)m(b)s(er.) ! 38 b(F)-8 b(or)30 b(Readline)e(4.2,)i(for)f(example,)150 ! 5340 y(the)i(v)-5 b(alue)29 b(of)i Fs(RL_READLINE_VERSION)25 ! b Ft(w)m(ould)k(b)s(e)h Fs(0x0402)p Ft(.)p eop ! %%Page: 23 27 ! 23 26 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(23)150 299 y Fh(2.2.1)63 ! b(Readline)40 b(T)m(yp)s(edefs)275 540 y Ft(F)-8 b(or)31 ! b(readabilt)m(y)-8 b(,)30 b(w)m(e)h(declare)f(a)h(n)m(um)m(b)s(er)e(of) ! h(new)g(ob)5 b(ject)32 b(t)m(yp)s(es,)e(all)f(p)s(oin)m(ters)h(to)h ! (functions.)275 672 y(The)k(reason)h(for)f(declaring)f(these)j(new)e(t) ! m(yp)s(es)g(is)g(to)i(mak)m(e)f(it)f(easier)h(to)g(write)f(co)s(de)h ! (describing)150 782 y(p)s(oin)m(ters)29 b(to)i(C)f(functions)f(with)g ! (appropriately)g(protot)m(yp)s(ed)h(argumen)m(ts)h(and)f(return)f(v)-5 ! b(alues.)275 913 y(F)d(or)37 b(instance,)i(sa)m(y)e(w)m(e)g(w)m(an)m(t) ! h(to)g(declare)e(a)i(v)-5 b(ariable)35 b Fi(func)42 b ! Ft(as)37 b(a)g(p)s(oin)m(ter)f(to)h(a)h(function)d(whic)m(h)150 ! 1023 y(tak)m(es)27 b(t)m(w)m(o)g Fs(int)e Ft(argumen)m(ts)h(and)f ! (returns)f(an)i Fs(int)f Ft(\(this)g(is)f(the)i(t)m(yp)s(e)g(of)g(all)f ! (of)g(the)h(Readline)f(bindable)150 1132 y(functions\).)40 ! b(Instead)30 b(of)g(the)h(classic)f(C)g(declaration)275 ! 1264 y Fs(int)f(\(*func\)\(\);)150 1396 y Ft(or)h(the)h(ANSI-C)f(st)m ! (yle)h(declaration)275 1528 y Fs(int)e(\(*func\)\(int,)e(int\);)150 ! 1659 y Ft(w)m(e)k(ma)m(y)g(write)275 1791 y Fs(rl_command_func_t)25 ! b(*func;)275 1923 y Ft(The)k(full)f(list)i(of)g(function)f(p)s(oin)m ! (ter)g(t)m(yp)s(es)i(a)m(v)-5 b(ailable)30 b(is)150 2077 ! y Fs(typedef)e(int)i(rl_command_func_t)c(\(int,)i(int\);)150 ! 2186 y(typedef)g(char)i(*rl_compentry_func_t)24 b(\(const)29 ! b(char)g(*,)h(int\);)150 2296 y(typedef)e(char)i ! (**rl_completion_func_t)24 b(\(const)29 b(char)g(*,)h(int,)f(int\);)150 ! 2405 y(typedef)f(char)i(*rl_quote_func_t)c(\(char)i(*,)i(int,)f(char)h ! (*\);)150 2515 y(typedef)e(char)i(*rl_dequote_func_t)25 ! b(\(char)k(*,)h(int\);)150 2625 y(typedef)e(int)i(rl_compignore_func_t) ! 25 b(\(char)k(**\);)150 2734 y(typedef)f(void)i(rl_compdisp_func_t)25 ! b(\(char)k(**,)g(int,)h(int\);)150 2844 y(typedef)e(int)i ! (rl_hook_func_t)c(\(void\);)150 2953 y(typedef)i(int)i(rl_getc_func_t)c ! (\(FILE)j(*\);)150 3063 y(typedef)f(int)i(rl_linebuf_func_t)c(\(char)i ! (*,)i(int\);)150 3173 y(typedef)e(int)i(rl_intfunc_t)d(\(int\);)150 ! 3282 y(#define)h(rl_ivoidfunc_t)f(rl_hook_func_t)150 ! 3392 y(typedef)h(int)i(rl_icpfunc_t)d(\(char)i(*\);)150 ! 3501 y(typedef)f(int)i(rl_icppfunc_t)d(\(char)i(**\);)150 ! 3611 y(typedef)f(void)i(rl_voidfunc_t)c(\(void\);)150 ! 3720 y(typedef)i(void)i(rl_vintfunc_t)c(\(int\);)150 ! 3830 y(typedef)i(void)i(rl_vcpfunc_t)d(\(char)i(*\);)150 ! 3940 y(typedef)f(void)i(rl_vcppfunc_t)c(\(char)j(**\);)150 ! 4133 y Fh(2.2.2)63 b(W)-10 b(riting)41 b(a)f(New)h(F)-10 ! b(unction)275 4375 y Ft(In)31 b(order)h(to)g(write)g(new)f(functions)g ! (for)h(Readline,)g(y)m(ou)g(need)g(to)h(kno)m(w)f(the)g(calling)f(con)m ! (v)m(en)m(tions)150 4484 y(for)37 b(k)m(eyb)s(oard-in)m(v)m(ok)m(ed)g ! (functions,)g(and)f(the)h(names)g(of)g(the)g(v)-5 b(ariables)36 ! b(that)h(describ)s(e)e(the)i(curren)m(t)150 4594 y(state)32 ! b(of)e(the)h(line)e(read)h(so)g(far.)275 4726 y(The)f(calling)g ! (sequence)i(for)f(a)h(command)f Fs(foo)g Ft(lo)s(oks)f(lik)m(e)390 ! 4857 y Fs(int)47 b(foo)g(\(int)f(count,)h(int)f(key\))150 ! 4989 y Ft(where)35 b Fi(coun)m(t)k Ft(is)c(the)h(n)m(umeric)f(argumen)m ! (t)h(\(or)g(1)g(if)f(defaulted\))h(and)f Fi(k)m(ey)44 ! b Ft(is)35 b(the)h(k)m(ey)h(that)f(in)m(v)m(ok)m(ed)150 ! 5099 y(this)29 b(function.)275 5230 y(It)23 b(is)f(completely)g(up)g ! (to)i(the)f(function)f(as)h(to)h(what)f(should)e(b)s(e)i(done)f(with)g ! (the)h(n)m(umeric)f(argumen)m(t.)150 5340 y(Some)40 b(functions)f(use)g ! (it)h(as)g(a)g(rep)s(eat)h(coun)m(t,)i(some)d(as)h(a)f(\015ag,)j(and)c ! (others)h(to)h(c)m(ho)s(ose)g(alternate)p eop ! %%Page: 24 28 ! 24 27 bop 150 -116 a Ft(24)2600 b(GNU)31 b(Readline)e(Library)150 ! 299 y(b)s(eha)m(vior)42 b(\(refreshing)g(the)i(curren)m(t)f(line)f(as)h ! (opp)s(osed)g(to)h(refreshing)d(the)j(screen,)j(for)c(example\).)150 ! 408 y(Some)33 b(c)m(ho)s(ose)h(to)g(ignore)f(it.)49 b(In)32 ! b(general,)i(if)f(a)g(function)f(uses)h(the)g(n)m(umeric)f(argumen)m(t) ! i(as)f(a)h(rep)s(eat)150 518 y(coun)m(t,)29 b(it)f(should)e(b)s(e)h ! (able)g(to)i(do)f(something)f(useful)f(with)h(b)s(oth)g(negativ)m(e)i ! (and)e(p)s(ositiv)m(e)g(argumen)m(ts.)150 628 y(A)m(t)k(the)g(v)m(ery)g ! (least,)g(it)e(should)g(b)s(e)h(a)m(w)m(are)h(that)g(it)f(can)h(b)s(e)f ! (passed)g(a)g(negativ)m(e)i(argumen)m(t.)275 762 y(A)27 ! b(command)h(function)e(should)g(return)h(0)h(if)f(its)g(action)h ! (completes)g(successfully)-8 b(,)27 b(and)g(a)h(non-zero)150 ! 872 y(v)-5 b(alue)30 b(if)f(some)i(error)f(o)s(ccurs.)150 ! 1130 y Fr(2.3)68 b(Readline)47 b(V)-11 b(ariables)275 ! 1375 y Ft(These)30 b(v)-5 b(ariables)29 b(are)h(a)m(v)-5 ! b(ailable)30 b(to)h(function)e(writers.)3371 1559 y([V)-8 ! b(ariable])-3600 b Fg(char)39 b(*)g Ff(rl)p 575 1559 ! 35 5 v 50 w(line)p 806 1559 V 50 w(bu\013er)390 1669 ! y Ft(This)29 b(is)i(the)g(line)e(gathered)j(so)f(far.)43 ! b(Y)-8 b(ou)32 b(are)f(w)m(elcome)h(to)g(mo)s(dify)e(the)h(con)m(ten)m ! (ts)i(of)e(the)g(line,)390 1779 y(but)k(see)h(Section)f(2.4.5)i([Allo)m ! (wing)e(Undoing],)h(page)g(32.)57 b(The)35 b(function)f ! Fs(rl_extend_line_)390 1888 y(buffer)29 b Ft(is)g(a)m(v)-5 ! b(ailable)30 b(to)h(increase)f(the)h(memory)f(allo)s(cated)g(to)h ! Fs(rl_line_buffer)p Ft(.)3371 2073 y([V)-8 b(ariable])-3600 ! b Fg(int)39 b Ff(rl)p 432 2073 V 51 w(p)s(oin)m(t)390 ! 2183 y Ft(The)30 b(o\013set)h(of)g(the)f(curren)m(t)h(cursor)e(p)s ! (osition)g(in)g Fs(rl_line_buffer)d Ft(\(the)31 b Fn(p)-5 ! b(oint)9 b Ft(\).)3371 2368 y([V)-8 b(ariable])-3600 ! b Fg(int)39 b Ff(rl)p 432 2368 V 51 w(end)390 2477 y ! Ft(The)27 b(n)m(um)m(b)s(er)g(of)h(c)m(haracters)h(presen)m(t)f(in)f ! Fs(rl_line_buffer)p Ft(.)36 b(When)27 b Fs(rl_point)f ! Ft(is)h(at)i(the)f(end)390 2587 y(of)j(the)f(line,)f ! Fs(rl_point)f Ft(and)i Fs(rl_end)f Ft(are)h(equal.)3371 ! 2772 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432 ! 2772 V 51 w(mark)390 2881 y Ft(The)d Fi(mark)42 b Ft(\(sa)m(v)m(ed)d(p) ! s(osition\))c(in)h(the)h(curren)m(t)f(line.)59 b(If)36 ! b(set,)k(the)d(mark)f(and)h(p)s(oin)m(t)e(de\014ne)i(a)390 ! 2991 y Fn(r)-5 b(e)g(gion)p Ft(.)3371 3176 y([V)d(ariable])-3600 ! b Fg(int)39 b Ff(rl)p 432 3176 V 51 w(done)390 3285 y ! Ft(Setting)21 b(this)g(to)h(a)g(non-zero)g(v)-5 b(alue)22 ! b(causes)g(Readline)e(to)i(return)f(the)h(curren)m(t)f(line)f ! (immediately)-8 b(.)3371 3470 y([V)g(ariable])-3600 b ! Fg(int)39 b Ff(rl)p 432 3470 V 51 w(n)m(um)p 703 3470 ! V 50 w(c)m(hars)p 1013 3470 V 49 w(to)p 1164 3470 V 51 ! w(read)390 3580 y Ft(Setting)33 b(this)e(to)j(a)f(p)s(ositiv)m(e)f(v)-5 ! b(alue)33 b(b)s(efore)f(calling)f Fs(readline\(\))g Ft(causes)i ! (Readline)e(to)j(return)390 3689 y(after)i(accepting)g(that)h(man)m(y)e ! (c)m(haracters,)k(rather)d(than)f(reading)g(up)f(to)j(a)f(c)m(haracter) ! h(b)s(ound)390 3799 y(to)31 b Fs(accept-line)p Ft(.)3371 ! 3984 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432 ! 3984 V 51 w(p)s(ending)p 884 3984 V 48 w(input)390 4093 ! y Ft(Setting)25 b(this)f(to)i(a)f(v)-5 b(alue)25 b(mak)m(es)h(it)f(the) ! g(next)g(k)m(eystrok)m(e)i(read.)39 b(This)23 b(is)i(a)g(w)m(a)m(y)h ! (to)g(stu\013)f(a)g(single)390 4203 y(c)m(haracter)32 ! b(in)m(to)e(the)h(input)d(stream.)3371 4388 y([V)-8 b(ariable])-3600 ! b Fg(int)39 b Ff(rl)p 432 4388 V 51 w(dispatc)m(hing)390 ! 4498 y Ft(Set)24 b(to)h(a)g(non-zero)g(v)-5 b(alue)23 ! b(if)h(a)g(function)f(is)g(b)s(eing)g(called)h(from)f(a)i(k)m(ey)g ! (binding;)e(zero)i(otherwise.)390 4607 y(Application)34 ! b(functions)g(can)i(test)h(this)d(to)j(disco)m(v)m(er)f(whether)f(they) ! h(w)m(ere)g(called)f(directly)f(or)390 4717 y(b)m(y)c(Readline's)f ! (dispatc)m(hing)g(mec)m(hanism.)3371 4902 y([V)-8 b(ariable])-3600 ! b Fg(int)39 b Ff(rl)p 432 4902 V 51 w(erase)p 737 4902 ! V 49 w(empt)m(y)p 1100 4902 V 50 w(line)390 5011 y Ft(Setting)46 ! b(this)e(to)j(a)f(non-zero)h(v)-5 b(alue)45 b(causes)i(Readline)d(to)j ! (completely)e(erase)i(the)f(curren)m(t)390 5121 y(line,)d(including)38 ! b(an)m(y)j(prompt,)j(an)m(y)d(time)g(a)h(newline)d(is)i(t)m(yp)s(ed)g ! (as)g(the)h(only)e(c)m(haracter)j(on)390 5230 y(an)36 ! b(otherwise-empt)m(y)h(line.)56 b(The)36 b(cursor)g(is)f(mo)m(v)m(ed)i ! (to)g(the)g(b)s(eginning)c(of)k(the)f(newly-blank)390 ! 5340 y(line.)p eop ! %%Page: 25 29 ! 25 28 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(25)3371 299 y([V)-8 b(ariable])-3600 ! b Fg(char)39 b(*)g Ff(rl)p 575 299 35 5 v 50 w(prompt)390 ! 408 y Ft(The)26 b(prompt)f(Readline)g(uses.)38 b(This)25 ! b(is)g(set)i(from)e(the)i(argumen)m(t)f(to)h Fs(readline\(\))p ! Ft(,)d(and)i(should)390 518 y(not)h(b)s(e)f(assigned)g(to)i(directly)-8 ! b(.)39 b(The)26 b Fs(rl_set_prompt\(\))d Ft(function)i(\(see)j(Section) ! f(2.4.6)i([Redis-)390 628 y(pla)m(y],)h(page)i(32\))f(ma)m(y)g(b)s(e)f ! (used)f(to)j(mo)s(dify)c(the)j(prompt)e(string)g(after)i(calling)e ! Fs(readline\(\))p Ft(.)3371 797 y([V)-8 b(ariable])-3600 ! b Fg(int)39 b Ff(rl)p 432 797 V 51 w(already)p 851 797 ! V 49 w(prompted)390 907 y Ft(If)d(an)g(application)f(wishes)f(to)j ! (displa)m(y)e(the)h(prompt)g(itself,)g(rather)h(than)f(ha)m(v)m(e)h ! (Readline)e(do)390 1016 y(it)d(the)h(\014rst)f(time)h ! Fs(readline\(\))d Ft(is)h(called,)i(it)f(should)f(set)i(this)f(v)-5 ! b(ariable)32 b(to)h(a)g(non-zero)g(v)-5 b(alue)390 1126 ! y(after)38 b(displa)m(ying)e(the)i(prompt.)63 b(The)37 ! b(prompt)g(m)m(ust)h(also)g(b)s(e)f(passed)g(as)i(the)f(argumen)m(t)g ! (to)390 1235 y Fs(readline\(\))30 b Ft(so)j(the)h(redispla)m(y)d ! (functions)g(can)j(up)s(date)e(the)h(displa)m(y)e(prop)s(erly)-8 ! b(.)47 b(The)32 b(calling)390 1345 y(application)d(is)g(resp)s(onsible) ! f(for)i(managing)g(the)g(v)-5 b(alue;)30 b(Readline)f(nev)m(er)i(sets)g ! (it.)3371 1514 y([V)-8 b(ariable])-3600 b Fg(const)40 ! b(char)f(*)g Ff(rl)p 875 1514 V 50 w(library)p 1263 1514 ! V 50 w(v)m(ersion)390 1624 y Ft(The)30 b(v)m(ersion)g(n)m(um)m(b)s(er)f ! (of)h(this)g(revision)e(of)j(the)f(library)-8 b(.)3371 ! 1793 y([V)g(ariable])-3600 b Fg(int)39 b Ff(rl)p 432 ! 1793 V 51 w(readline)p 884 1793 V 48 w(v)m(ersion)390 ! 1903 y Ft(An)34 b(in)m(teger)g(enco)s(ding)f(the)h(curren)m(t)g(v)m ! (ersion)g(of)g(the)g(library)-8 b(.)50 b(The)34 b(enco)s(ding)f(is)g ! (of)h(the)g(form)390 2012 y(0x)p Fi(MMmm)p Ft(,)39 b(where)d ! Fi(MM)47 b Ft(is)35 b(the)i(t)m(w)m(o-digit)g(ma)5 b(jor)36 ! b(v)m(ersion)g(n)m(um)m(b)s(er,)h(and)f Fi(mm)g Ft(is)g(the)g(t)m(w)m ! (o-)390 2122 y(digit)g(minor)g(v)m(ersion)h(n)m(um)m(b)s(er.)60 ! b(F)-8 b(or)38 b(example,)h(for)e(Readline-4.2,)i Fs ! (rl_readline_version)390 2232 y Ft(w)m(ould)29 b(ha)m(v)m(e)j(the)e(v) ! -5 b(alue)30 b(0x0402.)3371 2401 y([V)-8 b(ariable])-3600 ! b Fg(int)39 b Ff(rl)p 432 2401 V 51 w(gn)m(u)p 665 2401 ! V 49 w(readline)p 1115 2401 V 49 w(p)390 2511 y Ft(Alw)m(a)m(ys)31 ! b(set)g(to)g(1,)g(denoting)e(that)i(this)f(is)f Fm(gnu)h ! Ft(readline)f(rather)h(than)g(some)h(em)m(ulation.)3371 ! 2680 y([V)-8 b(ariable])-3600 b Fg(const)40 b(char)f(*)g ! Ff(rl)p 875 2680 V 50 w(terminal)p 1349 2680 V 49 w(name)390 ! 2790 y Ft(The)28 b(terminal)e(t)m(yp)s(e,)j(used)e(for)h ! (initialization.)37 b(If)28 b(not)g(set)h(b)m(y)e(the)i(application,)e ! (Readline)g(sets)390 2899 y(this)i(to)i(the)g(v)-5 b(alue)30 ! b(of)g(the)h Fs(TERM)e Ft(en)m(vironmen)m(t)h(v)-5 b(ariable)29 ! b(the)i(\014rst)e(time)i(it)e(is)h(called.)3371 3068 ! y([V)-8 b(ariable])-3600 b Fg(const)40 b(char)f(*)g Ff(rl)p ! 875 3068 V 50 w(readline)p 1326 3068 V 48 w(name)390 ! 3178 y Ft(This)29 b(v)-5 b(ariable)30 b(is)h(set)g(to)h(a)g(unique)d ! (name)i(b)m(y)g(eac)m(h)i(application)c(using)h(Readline.)42 ! b(The)30 b(v)-5 b(alue)390 3288 y(allo)m(ws)27 b(conditional)g(parsing) ! f(of)i(the)h(inputrc)d(\014le)h(\(see)i(Section)f(1.3.2)h([Conditional) ! d(Init)h(Con-)390 3397 y(structs],)k(page)g(9\).)3371 ! 3567 y([V)-8 b(ariable])-3600 b Fg(FILE)39 b(*)g Ff(rl)p ! 575 3567 V 50 w(instream)390 3676 y Ft(The)h(stdio)h(stream)g(from)g ! (whic)m(h)e(Readline)h(reads)h(input.)70 b(If)41 b Fs(NULL)p ! Ft(,)i(Readline)c(defaults)h(to)390 3786 y Fi(stdin)p ! Ft(.)3371 3955 y([V)-8 b(ariable])-3600 b Fg(FILE)39 ! b(*)g Ff(rl)p 575 3955 V 50 w(outstream)390 4065 y Ft(The)34 ! b(stdio)g(stream)g(to)i(whic)m(h)d(Readline)g(p)s(erforms)g(output.)52 ! b(If)34 b Fs(NULL)p Ft(,)h(Readline)e(defaults)g(to)390 ! 4174 y Fi(stdout)p Ft(.)3371 4344 y([V)-8 b(ariable])-3600 ! b Fg(rl_command_func_t)43 b(*)c Ff(rl)p 1255 4344 V 50 ! w(last)p 1483 4344 V 50 w(func)390 4453 y Ft(The)34 b(address)g(of)h ! (the)g(last)g(command)f(function)f(Readline)h(executed.)55 ! b(Ma)m(y)35 b(b)s(e)g(used)f(to)h(test)390 4563 y(whether)30 ! b(or)g(not)h(a)f(function)g(is)f(b)s(eing)g(executed)i(t)m(wice)g(in)e ! (succession,)h(for)g(example.)3371 4732 y([V)-8 b(ariable])-3600 ! b Fg(rl_hook_func_t)42 b(*)d Ff(rl)p 1098 4732 V 50 w(startup)p ! 1514 4732 V 49 w(ho)s(ok)390 4842 y Ft(If)34 b(non-zero,)i(this)d(is)h ! (the)g(address)f(of)i(a)g(function)e(to)i(call)e(just)h(b)s(efore)g ! Fs(readline)e Ft(prin)m(ts)h(the)390 4951 y(\014rst)d(prompt.)3371 ! 5121 y([V)-8 b(ariable])-3600 b Fg(rl_hook_func_t)42 ! b(*)d Ff(rl)p 1098 5121 V 50 w(pre)p 1312 5121 V 50 w(input)p ! 1631 5121 V 49 w(ho)s(ok)390 5230 y Ft(If)c(non-zero,)j(this)c(is)g ! (the)i(address)f(of)g(a)h(function)e(to)j(call)d(after)i(the)g(\014rst) ! f(prompt)f(has)i(b)s(een)390 5340 y(prin)m(ted)29 b(and)h(just)f(b)s ! (efore)h Fs(readline)f Ft(starts)h(reading)g(input)e(c)m(haracters.)p ! eop ! %%Page: 26 30 ! 26 29 bop 150 -116 a Ft(26)2600 b(GNU)31 b(Readline)e(Library)3371 ! 299 y([V)-8 b(ariable])-3600 b Fg(rl_hook_func_t)42 b(*)d ! Ff(rl)p 1098 299 35 5 v 50 w(ev)m(en)m(t)p 1417 299 V ! 49 w(ho)s(ok)390 408 y Ft(If)h(non-zero,)k(this)c(is)f(the)i(address)f ! (of)h(a)g(function)e(to)i(call)f(p)s(erio)s(dically)d(when)j(Readline)f ! (is)390 518 y(w)m(aiting)28 b(for)h(terminal)f(input.)38 ! b(By)30 b(default,)f(this)f(will)e(b)s(e)j(called)f(at)i(most)f(ten)h ! (times)e(a)i(second)390 628 y(if)f(there)i(is)e(no)i(k)m(eyb)s(oard)f ! (input.)3371 814 y([V)-8 b(ariable])-3600 b Fg(rl_getc_func_t)42 ! b(*)d Ff(rl)p 1098 814 V 50 w(getc)p 1354 814 V 50 w(function)390 ! 924 y Ft(If)30 b(non-zero,)h(Readline)e(will)f(call)i(indirectly)d ! (through)j(this)g(p)s(oin)m(ter)f(to)i(get)h(a)e(c)m(haracter)i(from) ! 390 1033 y(the)39 b(input)d(stream.)65 b(By)39 b(default,)h(it)e(is)f ! (set)i(to)g Fs(rl_getc)p Ft(,)g(the)g(default)e(Readline)g(c)m ! (haracter)390 1143 y(input)28 b(function)h(\(see)j(Section)e(2.4.8)i ! ([Character)f(Input],)f(page)h(34\).)3371 1329 y([V)-8 ! b(ariable])-3600 b Fg(rl_voidfunc_t)42 b(*)d Ff(rl)p ! 1046 1329 V 50 w(redispla)m(y)p 1546 1329 V 49 w(function)390 ! 1439 y Ft(If)d(non-zero,)i(Readline)c(will)g(call)h(indirectly)e ! (through)j(this)f(p)s(oin)m(ter)g(to)h(up)s(date)g(the)g(displa)m(y)390 ! 1548 y(with)26 b(the)h(curren)m(t)g(con)m(ten)m(ts)h(of)f(the)h ! (editing)d(bu\013er.)39 b(By)27 b(default,)g(it)g(is)f(set)h(to)h ! Fs(rl_redisplay)p Ft(,)390 1658 y(the)j(default)e(Readline)g(redispla)m ! (y)g(function)g(\(see)i(Section)f(2.4.6)i([Redispla)m(y],)e(page)h ! (32\).)3371 1844 y([V)-8 b(ariable])-3600 b Fg(rl_vintfunc_t)42 ! b(*)d Ff(rl)p 1046 1844 V 50 w(prep)p 1324 1844 V 49 ! w(term)p 1613 1844 V 51 w(function)390 1954 y Ft(If)24 ! b(non-zero,)i(Readline)c(will)g(call)h(indirectly)f(through)h(this)g(p) ! s(oin)m(ter)g(to)i(initialize)c(the)j(terminal.)390 2063 ! y(The)37 b(function)e(tak)m(es)k(a)e(single)f(argumen)m(t,)k(an)d ! Fs(int)f Ft(\015ag)h(that)h(sa)m(ys)g(whether)e(or)h(not)g(to)h(use)390 ! 2173 y(eigh)m(t-bit)c(c)m(haracters.)53 b(By)35 b(default,)f(this)f(is) ! g(set)i(to)g Fs(rl_prep_terminal)29 b Ft(\(see)35 b(Section)f(2.4.9)390 ! 2283 y([T)-8 b(erminal)29 b(Managemen)m(t],)k(page)e(35\).)3371 ! 2469 y([V)-8 b(ariable])-3600 b Fg(rl_voidfunc_t)42 b(*)d ! Ff(rl)p 1046 2469 V 50 w(deprep)p 1441 2469 V 49 w(term)p ! 1730 2469 V 50 w(function)390 2579 y Ft(If)d(non-zero,)j(Readline)c ! (will)f(call)i(indirectly)e(through)i(this)f(p)s(oin)m(ter)h(to)h ! (reset)g(the)g(terminal.)390 2688 y(This)c(function)h(should)f(undo)h ! (the)h(e\013ects)h(of)f Fs(rl_prep_term_function)p Ft(.)49 ! b(By)35 b(default,)h(this)390 2798 y(is)29 b(set)i(to)g ! Fs(rl_deprep_terminal)26 b Ft(\(see)31 b(Section)f(2.4.9)j([T)-8 ! b(erminal)28 b(Managemen)m(t],)33 b(page)e(35\).)3371 ! 2984 y([V)-8 b(ariable])-3600 b Fg(Keymap)40 b Ff(rl)p ! 589 2984 V 50 w(executing)p 1118 2984 V 49 w(k)m(eymap)390 ! 3094 y Ft(This)34 b(v)-5 b(ariable)35 b(is)g(set)h(to)h(the)f(k)m ! (eymap)h(\(see)g(Section)e(2.4.2)j([Keymaps],)g(page)e(28\))i(in)c ! (whic)m(h)390 3203 y(the)d(curren)m(tly)e(executing)i(readline)d ! (function)h(w)m(as)i(found.)3371 3390 y([V)-8 b(ariable])-3600 ! b Fg(Keymap)40 b Ff(rl)p 589 3390 V 50 w(binding)p 1016 ! 3390 V 49 w(k)m(eymap)390 3499 y Ft(This)34 b(v)-5 b(ariable)35 ! b(is)g(set)h(to)h(the)f(k)m(eymap)h(\(see)g(Section)e(2.4.2)j ! ([Keymaps],)g(page)e(28\))i(in)c(whic)m(h)390 3609 y(the)d(last)f(k)m ! (ey)h(binding)c(o)s(ccurred.)3371 3795 y([V)-8 b(ariable])-3600 ! b Fg(char)39 b(*)g Ff(rl)p 575 3795 V 50 w(executing)p ! 1104 3795 V 49 w(macro)390 3905 y Ft(This)29 b(v)-5 b(ariable)29 ! b(is)g(set)i(to)g(the)g(text)g(of)g(an)m(y)f(curren)m(tly-executing)g ! (macro.)3371 4091 y([V)-8 b(ariable])-3600 b Fg(int)39 ! b Ff(rl)p 432 4091 V 51 w(readline)p 884 4091 V 48 w(state)390 ! 4201 y Ft(A)c(v)-5 b(ariable)33 b(with)g(bit)g(v)-5 b(alues)34 ! b(that)h(encapsulate)g(the)f(curren)m(t)h(Readline)e(state.)54 ! b(A)34 b(bit)g(is)f(set)390 4310 y(with)k(the)h Fs(RL_SETSTATE)c ! Ft(macro,)41 b(and)c(unset)h(with)e(the)i Fs(RL_UNSETSTATE)d ! Ft(macro.)63 b(Use)39 b(the)390 4420 y Fs(RL_ISSTATE)34 ! b Ft(macro)k(to)g(test)g(whether)f(a)h(particular)d(state)k(bit)d(is)g ! (set.)62 b(Curren)m(t)36 b(state)j(bits)390 4529 y(include:)390 ! 4690 y Fs(RL_STATE_NONE)870 4800 y Ft(Readline)29 b(has)h(not)h(y)m(et) ! g(b)s(een)f(called,)g(nor)g(has)g(it)g(b)s(egun)f(to)i(in)m(tialize.) ! 390 4960 y Fs(RL_STATE_INITIALIZING)870 5070 y Ft(Readline)e(is)g ! (initializing)e(its)j(in)m(ternal)f(data)i(structures.)390 ! 5230 y Fs(RL_STATE_INITIALIZED)870 5340 y Ft(Readline)e(has)h ! (completed)g(its)g(initialization.)p eop ! %%Page: 27 31 ! 27 30 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(27)390 299 y Fs(RL_STATE_TERMPREPPED)870 ! 408 y Ft(Readline)27 b(has)i(mo)s(di\014ed)d(the)j(terminal)e(mo)s(des) ! h(to)i(do)e(its)h(o)m(wn)f(input)f(and)h(redis-)870 518 ! y(pla)m(y)-8 b(.)390 687 y Fs(RL_STATE_READCMD)870 797 ! y Ft(Readline)29 b(is)g(reading)h(a)h(command)f(from)g(the)g(k)m(eyb)s ! (oard.)390 966 y Fs(RL_STATE_METANEXT)870 1075 y Ft(Readline)f(is)g ! (reading)h(more)g(input)f(after)i(reading)e(the)i(meta-pre\014x)f(c)m ! (haracter.)390 1244 y Fs(RL_STATE_DISPATCHING)870 1354 ! y Ft(Readline)f(is)g(dispatc)m(hing)g(to)i(a)g(command.)390 ! 1523 y Fs(RL_STATE_MOREINPUT)870 1633 y Ft(Readline)e(is)g(reading)h ! (more)g(input)f(while)f(executing)j(an)f(editing)f(command.)390 ! 1802 y Fs(RL_STATE_ISEARCH)870 1911 y Ft(Readline)g(is)g(p)s(erforming) ! g(an)h(incremen)m(tal)g(history)f(searc)m(h.)390 2080 ! y Fs(RL_STATE_NSEARCH)870 2190 y Ft(Readline)g(is)g(p)s(erforming)g(a)h ! (non-incremen)m(tal)g(history)f(searc)m(h.)390 2359 y ! Fs(RL_STATE_SEARCH)870 2469 y Ft(Readline)19 b(is)g(searc)m(hing)i(bac) ! m(kw)m(ard)f(or)h(forw)m(ard)e(through)h(the)h(history)e(for)h(a)h ! (string.)390 2638 y Fs(RL_STATE_NUMERICARG)870 2747 y ! Ft(Readline)29 b(is)g(reading)h(a)h(n)m(umeric)e(argumen)m(t.)390 ! 2916 y Fs(RL_STATE_MACROINPUT)870 3026 y Ft(Readline)23 ! b(is)g(curren)m(tly)g(getting)i(its)f(input)e(from)i(a)g ! (previously-de\014ned)d(k)m(eyb)s(oard)870 3136 y(macro.)390 ! 3305 y Fs(RL_STATE_MACRODEF)870 3414 y Ft(Readline)29 ! b(is)g(curren)m(tly)h(reading)f(c)m(haracters)j(de\014ning)d(a)h(k)m ! (eyb)s(oard)h(macro.)390 3583 y Fs(RL_STATE_OVERWRITE)870 ! 3693 y Ft(Readline)e(is)g(in)g(o)m(v)m(erwrite)i(mo)s(de.)390 ! 3862 y Fs(RL_STATE_COMPLETING)870 3972 y Ft(Readline)e(is)g(p)s ! (erforming)g(w)m(ord)h(completion.)390 4141 y Fs(RL_STATE_SIGHANDLER) ! 870 4250 y Ft(Readline)f(is)g(curren)m(tly)h(executing)g(the)h ! (readline)e(signal)g(handler.)390 4419 y Fs(RL_STATE_UNDOING)870 ! 4529 y Ft(Readline)g(is)g(p)s(erforming)g(an)h(undo.)390 ! 4698 y Fs(RL_STATE_DONE)870 4808 y Ft(Readline)c(has)i(read)f(a)i(k)m ! (ey)f(sequence)g(b)s(ound)e(to)i Fs(accept-line)d Ft(and)i(is)g(ab)s ! (out)g(to)870 4917 y(return)i(the)i(line)e(to)i(the)f(caller.)3371 ! 5121 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432 ! 5121 35 5 v 51 w(explicit)p 852 5121 V 49 w(arg)390 5230 ! y Ft(Set)g(to)g(a)h(non-zero)f(v)-5 b(alue)38 b(if)g(an)h(explicit)e(n) ! m(umeric)g(argumen)m(t)j(w)m(as)f(sp)s(eci\014ed)e(b)m(y)h(the)h(user.) ! 390 5340 y(Only)29 b(v)-5 b(alid)28 b(in)i(a)g(bindable)e(command)i ! (function.)p eop ! %%Page: 28 32 ! 28 31 bop 150 -116 a Ft(28)2600 b(GNU)31 b(Readline)e(Library)3371 ! 299 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432 ! 299 35 5 v 51 w(n)m(umeric)p 886 299 V 49 w(arg)390 408 ! y Ft(Set)45 b(to)h(the)g(v)-5 b(alue)45 b(of)g(an)m(y)h(n)m(umeric)e ! (argumen)m(t)i(explicitly)d(sp)s(eci\014ed)g(b)m(y)i(the)h(user)e(b)s ! (efore)390 518 y(executing)26 b(the)g(curren)m(t)g(Readline)f ! (function.)37 b(Only)25 b(v)-5 b(alid)24 b(in)h(a)h(bindable)d(command) ! j(function.)3371 698 y([V)-8 b(ariable])-3600 b Fg(int)39 ! b Ff(rl)p 432 698 V 51 w(editing)p 830 698 V 48 w(mo)s(de)390 ! 807 y Ft(Set)25 b(to)h(a)g(v)-5 b(alue)24 b(denoting)h(Readline's)e ! (curren)m(t)i(editing)f(mo)s(de.)39 b(A)25 b(v)-5 b(alue)24 ! b(of)i Fi(1)32 b Ft(means)25 b(Readline)390 917 y(is)k(curren)m(tly)h ! (in)f(emacs)i(mo)s(de;)f Fi(0)38 b Ft(means)31 b(that)f(vi)g(mo)s(de)g ! (is)f(activ)m(e.)150 1170 y Fr(2.4)68 b(Readline)47 b(Con)l(v)l ! (enience)f(F)-11 b(unctions)150 1499 y Fh(2.4.1)63 b(Naming)40 ! b(a)h(F)-10 b(unction)275 1741 y Ft(The)39 b(user)g(can)h(dynamically)d ! (c)m(hange)k(the)f(bindings)c(of)k(k)m(eys)h(while)c(using)i(Readline.) ! 67 b(This)38 b(is)150 1851 y(done)f(b)m(y)f(represen)m(ting)g(the)h ! (function)f(with)f(a)j(descriptiv)m(e)d(name.)61 b(The)36 ! b(user)g(is)g(able)g(to)i(t)m(yp)s(e)f(the)150 1960 y(descriptiv)m(e)29 ! b(name)i(when)e(referring)g(to)i(the)g(function.)39 b(Th)m(us,)30 ! b(in)f(an)h(init)f(\014le,)g(one)i(migh)m(t)f(\014nd)390 ! 2093 y Fs(Meta-Rubout:)92 b(backward-kill-word)275 2226 ! y Ft(This)38 b(binds)f(the)j(k)m(eystrok)m(e)1322 2223 ! y Fk(h)p 1346 2170 417 4 v 1346 2226 a Fj(Meta-Rub)r(out)p ! 1346 2242 V 1759 2223 a Fk(i)1828 2226 y Ft(to)h(the)f(function)f ! Fn(descriptively)49 b Ft(named)39 b Fs(backward-)150 ! 2336 y(kill-word)p Ft(.)59 b(Y)-8 b(ou,)39 b(as)f(the)f(programmer,)i ! (should)c(bind)g(the)i(functions)f(y)m(ou)i(write)e(to)i(descriptiv)m ! (e)150 2445 y(names)30 b(as)h(w)m(ell.)40 b(Readline)29 ! b(pro)m(vides)g(a)i(function)e(for)h(doing)f(that:)3350 ! 2625 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 ! 2625 35 5 v 51 w(add)p 667 2625 V 49 w(defun)44 b Fe(\()p ! Fs(const)29 b(char)g(*name,)g(rl_command_func_t)d(*function,)565 ! 2735 y(int)k(key)p Fe(\))390 2844 y Ft(Add)k Fi(name)41 ! b Ft(to)36 b(the)f(list)f(of)i(named)e(functions.)54 ! b(Mak)m(e)37 b Fi(function)d Ft(b)s(e)h(the)g(function)f(that)i(gets) ! 390 2954 y(called.)k(If)30 b Fi(k)m(ey)39 b Ft(is)29 ! b(not)i(-1,)g(then)f(bind)e(it)i(to)h Fi(function)e Ft(using)g ! Fs(rl_bind_key\(\))p Ft(.)275 3134 y(Using)g(this)g(function)g(alone)h ! (is)f(su\016cien)m(t)g(for)h(most)h(applications.)39 ! b(It)30 b(is)f(the)h(recommended)g(w)m(a)m(y)150 3243 ! y(to)e(add)e(a)h(few)g(functions)f(to)h(the)g(default)g(functions)e ! (that)j(Readline)d(has)i(built)e(in.)38 b(If)26 b(y)m(ou)i(need)e(to)i ! (do)150 3353 y(something)33 b(other)h(than)f(adding)g(a)h(function)e ! (to)i(Readline,)g(y)m(ou)g(ma)m(y)g(need)f(to)i(use)e(the)h(underlying) ! 150 3462 y(functions)29 b(describ)s(ed)f(b)s(elo)m(w.)150 ! 3682 y Fh(2.4.2)63 b(Selecting)41 b(a)f(Keymap)275 3924 ! y Ft(Key)30 b(bindings)e(tak)m(e)33 b(place)d(on)h(a)g ! Fi(k)m(eymap)p Ft(.)43 b(The)31 b(k)m(eymap)g(is)f(the)h(asso)s ! (ciation)g(b)s(et)m(w)m(een)g(the)g(k)m(eys)150 4034 ! y(that)e(the)g(user)e(t)m(yp)s(es)i(and)f(the)g(functions)f(that)i(get) ! h(run.)39 b(Y)-8 b(ou)29 b(can)f(mak)m(e)i(y)m(our)e(o)m(wn)h(k)m ! (eymaps,)g(cop)m(y)150 4143 y(existing)g(k)m(eymaps,)i(and)f(tell)g ! (Readline)f(whic)m(h)g(k)m(eymap)i(to)g(use.)3350 4323 ! y([F)-8 b(unction])-3600 b Fg(Keymap)40 b Ff(rl)p 589 ! 4323 V 50 w(mak)m(e)p 900 4323 V 51 w(bare)p 1171 4323 ! V 49 w(k)m(eymap)46 b Fe(\()p Fs(void)p Fe(\))390 4433 ! y Ft(Returns)23 b(a)i(new,)g(empt)m(y)f(k)m(eymap.)40 ! b(The)23 b(space)i(for)f(the)g(k)m(eymap)h(is)e(allo)s(cated)h(with)f ! Fs(malloc\(\))p Ft(;)390 4542 y(the)31 b(caller)e(should)g(free)h(it)g ! (b)m(y)g(calling)f Fs(rl_discard_keymap\(\))c Ft(when)30 ! b(done.)3350 4722 y([F)-8 b(unction])-3600 b Fg(Keymap)40 ! b Ff(rl)p 589 4722 V 50 w(cop)m(y)p 868 4722 V 51 w(k)m(eymap)46 ! b Fe(\()p Fs(Keymap)29 b(map)p Fe(\))390 4832 y Ft(Return)h(a)g(new)g ! (k)m(eymap)h(whic)m(h)e(is)h(a)g(cop)m(y)h(of)g Fi(map)p ! Ft(.)3350 5011 y([F)-8 b(unction])-3600 b Fg(Keymap)40 ! b Ff(rl)p 589 5011 V 50 w(mak)m(e)p 900 5011 V 51 w(k)m(eymap)45 ! b Fe(\()p Fs(void)p Fe(\))390 5121 y Ft(Return)31 b(a)g(new)g(k)m ! (eymap)h(with)e(the)i(prin)m(ting)d(c)m(haracters)k(b)s(ound)c(to)j(rl) ! p 2910 5121 28 4 v 39 w(insert,)f(the)h(lo)m(w)m(ercase)390 ! 5230 y(Meta)24 b(c)m(haracters)g(b)s(ound)d(to)i(run)e(their)h(equiv)-5 ! b(alen)m(ts,)23 b(and)f(the)h(Meta)h(digits)d(b)s(ound)g(to)i(pro)s ! (duce)390 5340 y(n)m(umeric)29 b(argumen)m(ts.)p eop ! %%Page: 29 33 ! 29 32 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(29)3350 299 y([F)-8 b(unction])-3600 ! b Fg(void)39 b Ff(rl)p 484 299 35 5 v 51 w(discard)p ! 894 299 V 49 w(k)m(eymap)46 b Fe(\()p Fs(Keymap)29 b(keymap)p ! Fe(\))390 408 y Ft(F)-8 b(ree)31 b(the)g(storage)h(asso)s(ciated)f ! (with)e Fi(k)m(eymap)p Ft(.)275 584 y(Readline)43 b(has)i(sev)m(eral)h ! (in)m(ternal)e(k)m(eymaps.)86 b(These)45 b(functions)f(allo)m(w)g(y)m ! (ou)i(to)g(c)m(hange)g(whic)m(h)150 694 y(k)m(eymap)31 ! b(is)e(activ)m(e.)3350 869 y([F)-8 b(unction])-3600 b ! Fg(Keymap)40 b Ff(rl)p 589 869 V 50 w(get)p 794 869 V ! 50 w(k)m(eymap)46 b Fe(\()p Fs(void)p Fe(\))390 979 y ! Ft(Returns)29 b(the)i(curren)m(tly)e(activ)m(e)j(k)m(eymap.)3350 ! 1155 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p ! 484 1155 V 51 w(set)p 678 1155 V 49 w(k)m(eymap)46 b ! Fe(\()p Fs(Keymap)29 b(keymap)p Fe(\))390 1264 y Ft(Mak)m(es)j ! Fi(k)m(eymap)h Ft(the)e(curren)m(tly)e(activ)m(e)j(k)m(eymap.)3350 ! 1440 y([F)-8 b(unction])-3600 b Fg(Keymap)40 b Ff(rl)p ! 589 1440 V 50 w(get)p 794 1440 V 50 w(k)m(eymap)p 1229 ! 1440 V 51 w(b)m(y)p 1401 1440 V 50 w(name)45 b Fe(\()p ! Fs(const)29 b(char)g(*name)p Fe(\))390 1550 y Ft(Return)j(the)i(k)m ! (eymap)f(matc)m(hing)h Fi(name)p Ft(.)49 b Fi(name)38 ! b Ft(is)33 b(one)g(whic)m(h)f(w)m(ould)g(b)s(e)g(supplied)e(in)i(a)i ! Fs(set)390 1659 y(keymap)29 b Ft(inputrc)f(line)h(\(see)i(Section)f ! (1.3)i([Readline)d(Init)g(File],)h(page)h(4\).)3350 1835 ! y([F)-8 b(unction])-3600 b Fg(char)39 b(*)g Ff(rl)p 575 ! 1835 V 50 w(get)p 780 1835 V 50 w(k)m(eymap)p 1215 1835 ! V 51 w(name)44 b Fe(\()p Fs(Keymap)29 b(keymap)p Fe(\))390 ! 1945 y Ft(Return)j(the)i(name)f(matc)m(hing)g Fi(k)m(eymap)p ! Ft(.)50 b Fi(name)38 b Ft(is)33 b(one)g(whic)m(h)f(w)m(ould)g(b)s(e)g ! (supplied)e(in)i(a)i Fs(set)390 2054 y(keymap)29 b Ft(inputrc)f(line)h ! (\(see)i(Section)f(1.3)i([Readline)d(Init)g(File],)h(page)h(4\).)150 ! 2270 y Fh(2.4.3)63 b(Binding)42 b(Keys)275 2511 y Ft(Key)23 ! b(sequences)i(are)f(asso)s(ciate)h(with)e(functions)f(through)h(the)h ! (k)m(eymap.)39 b(Readline)23 b(has)h(sev)m(eral)g(in-)150 ! 2620 y(ternal)29 b(k)m(eymaps:)40 b Fs(emacs_standard_keymap)p ! Ft(,)24 b Fs(emacs_meta_keymap)p Ft(,)h Fs(emacs_ctlx_keymap)p ! Ft(,)g Fs(vi_)150 2730 y(movement_keymap)p Ft(,)41 b(and)h ! Fs(vi_insertion_keymap)p Ft(.)71 b Fs(emacs_standard_keymap)37 ! b Ft(is)k(the)h(default,)150 2840 y(and)30 b(the)g(examples)g(in)f ! (this)h(man)m(ual)f(assume)h(that.)275 2971 y(Since)c ! Fs(readline\(\))f Ft(installs)g(a)j(set)g(of)g(default)f(k)m(ey)h ! (bindings)d(the)j(\014rst)e(time)i(it)f(is)f(called,)i(there)g(is)150 ! 3081 y(alw)m(a)m(ys)33 b(the)g(danger)f(that)i(a)f(custom)g(binding)c ! (installed)i(b)s(efore)h(the)h(\014rst)e(call)h(to)i ! Fs(readline\(\))c Ft(will)150 3190 y(b)s(e)25 b(o)m(v)m(erridden.)38 ! b(An)26 b(alternate)g(mec)m(hanism)f(is)g(to)h(install)e(custom)i(k)m ! (ey)g(bindings)d(in)h(an)i(initialization)150 3300 y(function)36 ! b(assigned)g(to)i(the)f Fs(rl_startup_hook)c Ft(v)-5 ! b(ariable)36 b(\(see)i(Section)f(2.3)h([Readline)e(V)-8 ! b(ariables],)150 3410 y(page)31 b(24\).)275 3541 y(These)f(functions)f ! (manage)i(k)m(ey)g(bindings.)3350 3717 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 3717 V 51 w(bind)p 707 3717 ! V 49 w(k)m(ey)45 b Fe(\()p Fs(int)30 b(key,)f(rl_command_func_t)d ! (*function)p Fe(\))390 3827 y Ft(Binds)31 b Fi(k)m(ey)42 ! b Ft(to)34 b Fi(function)d Ft(in)h(the)h(curren)m(tly)f(activ)m(e)i(k)m ! (eymap.)49 b(Returns)32 b(non-zero)i(in)e(the)h(case)390 ! 3936 y(of)e(an)f(in)m(v)-5 b(alid)28 b Fi(k)m(ey)p Ft(.)3350 ! 4112 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 ! 4112 V 51 w(bind)p 707 4112 V 49 w(k)m(ey)p 926 4112 ! V 50 w(in)p 1072 4112 V 50 w(map)46 b Fe(\()p Fs(int)29 ! b(key,)h(rl_command_func_t)25 b(*function,)565 4221 y(Keymap)k(map)p ! Fe(\))390 4331 y Ft(Bind)g Fi(k)m(ey)39 b Ft(to)31 b ! Fi(function)e Ft(in)g Fi(map)p Ft(.)40 b(Returns)30 b(non-zero)h(in)e ! (the)i(case)g(of)f(an)h(in)m(v)-5 b(alid)28 b Fi(k)m(ey)p ! Ft(.)3350 4507 y([F)-8 b(unction])-3600 b Fg(int)39 b ! Ff(rl)p 432 4507 V 51 w(bind)p 707 4507 V 49 w(k)m(ey)p ! 926 4507 V 50 w(if)p 1043 4507 V 51 w(un)m(b)s(ound)k ! Fe(\()p Fs(int)30 b(key,)f(rl_command_func_t)565 4616 ! y(*function)p Fe(\))390 4726 y Ft(Binds)42 b Fi(k)m(ey)53 ! b Ft(to)45 b Fi(function)d Ft(if)h(it)h(is)f(not)h(already)f(b)s(ound)f ! (in)h(the)h(curren)m(tly)f(activ)m(e)i(k)m(eymap.)390 ! 4836 y(Returns)29 b(non-zero)i(in)e(the)i(case)g(of)g(an)f(in)m(v)-5 ! b(alid)28 b Fi(k)m(ey)39 b Ft(or)30 b(if)g Fi(k)m(ey)39 ! b Ft(is)29 b(already)h(b)s(ound.)3350 5011 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 5011 V 51 w(bind)p 707 5011 ! V 49 w(k)m(ey)p 926 5011 V 50 w(if)p 1043 5011 V 51 w(un)m(b)s(ound)p ! 1535 5011 V 48 w(in)p 1679 5011 V 50 w(map)45 b Fe(\()p ! Fs(int)30 b(key,)565 5121 y(rl_command_func_t)c(*function,)h(Keymap)i ! (map)p Fe(\))390 5230 y Ft(Binds)d Fi(k)m(ey)36 b Ft(to)28 ! b Fi(function)e Ft(if)g(it)h(is)f(not)i(already)f(b)s(ound)e(in)h ! Fi(map)p Ft(.)39 b(Returns)27 b(non-zero)g(in)f(the)i(case)390 ! 5340 y(of)j(an)f(in)m(v)-5 b(alid)28 b Fi(k)m(ey)39 b ! Ft(or)30 b(if)f Fi(k)m(ey)39 b Ft(is)30 b(already)g(b)s(ound.)p ! eop ! %%Page: 30 34 ! 30 33 bop 150 -116 a Ft(30)2600 b(GNU)31 b(Readline)e(Library)3350 ! 299 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 ! 299 35 5 v 51 w(un)m(bind)p 832 299 V 48 w(k)m(ey)46 ! b Fe(\()p Fs(int)29 b(key)p Fe(\))390 408 y Ft(Bind)35 ! b Fi(k)m(ey)45 b Ft(to)37 b(the)f(n)m(ull)e(function)h(in)g(the)i ! (curren)m(tly)e(activ)m(e)i(k)m(eymap.)59 b(Returns)35 ! b(non-zero)i(in)390 518 y(case)31 b(of)g(error.)3350 ! 693 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 ! 693 V 51 w(un)m(bind)p 832 693 V 48 w(k)m(ey)p 1050 693 ! V 51 w(in)p 1197 693 V 49 w(map)46 b Fe(\()p Fs(int)29 ! b(key,)h(Keymap)e(map)p Fe(\))390 803 y Ft(Bind)h Fi(k)m(ey)39 ! b Ft(to)31 b(the)g(n)m(ull)d(function)h(in)g Fi(map)p ! Ft(.)40 b(Returns)30 b(non-zero)h(in)e(case)i(of)g(error.)3350 ! 978 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 ! 978 V 51 w(un)m(bind)p 832 978 V 48 w(function)p 1292 ! 978 V 49 w(in)p 1437 978 V 50 w(map)45 b Fe(\()p Fs(rl_command_func_t) ! 26 b(*function,)565 1088 y(Keymap)j(map)p Fe(\))390 1198 ! y Ft(Un)m(bind)f(all)h(k)m(eys)i(that)g(execute)h Fi(function)d ! Ft(in)g Fi(map)p Ft(.)3350 1373 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 1373 V 51 w(un)m(bind)p 832 ! 1373 V 48 w(command)p 1362 1373 V 50 w(in)p 1508 1373 ! V 50 w(map)46 b Fe(\()p Fs(const)29 b(char)g(*command,)f(Keymap)565 ! 1482 y(map)p Fe(\))390 1592 y Ft(Un)m(bind)g(all)h(k)m(eys)i(that)g ! (are)g(b)s(ound)e(to)i Fi(command)i Ft(in)c Fi(map)p ! Ft(.)3350 1767 y([F)-8 b(unction])-3600 b Fg(int)39 b ! Ff(rl)p 432 1767 V 51 w(bind)p 707 1767 V 49 w(k)m(eyseq)46 ! b Fe(\()p Fs(const)29 b(char)g(*keyseq,)f(rl_command_func_t)565 ! 1877 y(*function)p Fe(\))390 1987 y Ft(Bind)42 b(the)h(k)m(ey)h ! (sequence)f(represen)m(ted)g(b)m(y)g(the)g(string)f Fi(k)m(eyseq)k ! Ft(to)e(the)f(function)f Fi(function)p Ft(,)390 2096 ! y(b)s(eginning)25 b(in)i(the)i(curren)m(t)f(k)m(eymap.)40 ! b(This)27 b(mak)m(es)i(new)e(k)m(eymaps)i(as)f(necessary)-8 ! b(.)41 b(The)28 b(return)390 2206 y(v)-5 b(alue)30 b(is)f(non-zero)i ! (if)f Fi(k)m(eyseq)j Ft(is)c(in)m(v)-5 b(alid.)3350 2381 ! y([F)d(unction])-3600 b Fg(int)39 b Ff(rl)p 432 2381 ! V 51 w(bind)p 707 2381 V 49 w(k)m(eyseq)p 1084 2381 V ! 51 w(in)p 1231 2381 V 49 w(map)46 b Fe(\()p Fs(const)29 ! b(char)g(*keyseq,)565 2491 y(rl_command_func_t)d(*function,)h(Keymap)i ! (map)p Fe(\))390 2600 y Ft(Bind)24 b(the)h(k)m(ey)h(sequence)f ! (represen)m(ted)g(b)m(y)g(the)g(string)f Fi(k)m(eyseq)k ! Ft(to)e(the)f(function)f Fi(function)p Ft(.)38 b(This)390 ! 2710 y(mak)m(es)30 b(new)f(k)m(eymaps)g(as)g(necessary)-8 ! b(.)42 b(Initial)27 b(bindings)e(are)30 b(p)s(erformed)e(in)f ! Fi(map)p Ft(.)40 b(The)29 b(return)390 2819 y(v)-5 b(alue)30 ! b(is)f(non-zero)i(if)f Fi(k)m(eyseq)j Ft(is)c(in)m(v)-5 ! b(alid.)3350 2995 y([F)d(unction])-3600 b Fg(int)39 b ! Ff(rl)p 432 2995 V 51 w(set)p 626 2995 V 49 w(k)m(ey)46 ! b Fe(\()p Fs(const)29 b(char)g(*keyseq,)g(rl_command_func_t)c ! (*function,)565 3104 y(Keymap)k(map)p Fe(\))390 3214 ! y Ft(Equiv)-5 b(alen)m(t)29 b(to)i Fs(rl_bind_keyseq_in_map)p ! Ft(.)3350 3389 y([F)-8 b(unction])-3600 b Fg(int)39 b ! Ff(rl)p 432 3389 V 51 w(bind)p 707 3389 V 49 w(k)m(eyseq)p ! 1084 3389 V 51 w(if)p 1202 3389 V 50 w(un)m(b)s(ound)k ! Fe(\()p Fs(const)30 b(char)f(*keyseq,)565 3499 y(rl_command_func_t)d ! (*function)p Fe(\))390 3608 y Ft(Binds)34 b Fi(k)m(eyseq)39 ! b Ft(to)d Fi(function)e Ft(if)g(it)h(is)g(not)h(already)f(b)s(ound)e ! (in)h(the)i(curren)m(tly)e(activ)m(e)j(k)m(eymap.)390 ! 3718 y(Returns)29 b(non-zero)i(in)e(the)i(case)g(of)g(an)f(in)m(v)-5 ! b(alid)28 b Fi(k)m(eyseq)34 b Ft(or)c(if)f Fi(k)m(eyseq)34 ! b Ft(is)29 b(already)h(b)s(ound.)3350 3893 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 3893 V 51 w(bind)p 707 3893 ! V 49 w(k)m(eyseq)p 1084 3893 V 51 w(if)p 1202 3893 V ! 50 w(un)m(b)s(ound)p 1693 3893 V 48 w(in)p 1837 3893 ! V 50 w(map)46 b Fe(\()p Fs(const)29 b(char)g(*keyseq,)565 ! 4003 y(rl_command_func_t)d(*function,)h(Keymap)i(map)p ! Fe(\))390 4113 y Ft(Binds)h Fi(k)m(eyseq)35 b Ft(to)e ! Fi(function)e Ft(if)g(it)g(is)g(not)h(already)g(b)s(ound)e(in)g ! Fi(map)p Ft(.)46 b(Returns)31 b(non-zero)h(in)f(the)390 ! 4222 y(case)g(of)g(an)f(in)m(v)-5 b(alid)28 b Fi(k)m(eyseq)34 ! b Ft(or)c(if)f Fi(k)m(eyseq)34 b Ft(is)29 b(already)h(b)s(ound.)3350 ! 4398 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 ! 4398 V 51 w(generic)p 840 4398 V 49 w(bind)44 b Fe(\()p ! Fs(int)30 b(type,)f(const)g(char)g(*keyseq,)f(char)h(*data,)565 ! 4507 y(Keymap)g(map)p Fe(\))390 4617 y Ft(Bind)d(the)h(k)m(ey)h ! (sequence)f(represen)m(ted)g(b)m(y)g(the)g(string)f Fi(k)m(eyseq)k ! Ft(to)e(the)f(arbitrary)f(p)s(oin)m(ter)g Fi(data)p Ft(.)390 ! 4726 y Fi(t)m(yp)s(e)34 b Ft(sa)m(ys)29 b(what)f(kind)f(of)h(data)h(is) ! f(p)s(oin)m(ted)f(to)i(b)m(y)g Fi(data)p Ft(;)h(this)d(can)i(b)s(e)f(a) ! g(function)f(\()p Fs(ISFUNC)p Ft(\),)i(a)390 4836 y(macro)h(\()p ! Fs(ISMACR)p Ft(\),)f(or)g(a)h(k)m(eymap)g(\()p Fs(ISKMAP)p ! Ft(\).)40 b(This)27 b(mak)m(es)k(new)e(k)m(eymaps)g(as)h(necessary)-8 ! b(.)41 b(The)390 4945 y(initial)28 b(k)m(eymap)i(in)g(whic)m(h)f(to)i ! (do)f(bindings)d(is)j Fi(map)p Ft(.)3350 5121 y([F)-8 ! b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 5121 V 51 ! w(parse)p 748 5121 V 49 w(and)p 981 5121 V 50 w(bind)44 ! b Fe(\()p Fs(char)29 b(*line)p Fe(\))390 5230 y Ft(P)m(arse)h ! Fi(line)j Ft(as)c(if)g(it)g(had)f(b)s(een)h(read)g(from)g(the)h ! Fs(inputrc)d Ft(\014le)i(and)f(p)s(erform)g(an)m(y)i(k)m(ey)g(bindings) ! 390 5340 y(and)g(v)-5 b(ariable)29 b(assignmen)m(ts)h(found)f(\(see)i ! (Section)g(1.3)g([Readline)e(Init)g(File],)i(page)g(4\).)p eop ! %%Page: 31 35 ! 31 34 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(31)3350 299 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 299 35 5 v 51 w(read)p 703 ! 299 V 49 w(init)p 925 299 V 49 w(\014le)45 b Fe(\()p ! Fs(const)29 b(char)g(*filename)p Fe(\))390 408 y Ft(Read)j(k)m ! (eybindings)d(and)i(v)-5 b(ariable)30 b(assignmen)m(ts)h(from)g ! Fi(\014lename)36 b Ft(\(see)c(Section)f(1.3)i([Readline)390 ! 518 y(Init)c(File],)h(page)h(4\).)150 792 y Fh(2.4.4)63 ! b(Asso)s(ciating)41 b(F)-10 b(unction)42 b(Names)e(and)h(Bindings)275 ! 1060 y Ft(These)21 b(functions)e(allo)m(w)i(y)m(ou)h(to)g(\014nd)d(out) ! j(what)f(k)m(eys)h(in)m(v)m(ok)m(e)g(named)f(functions)e(and)i(the)g ! (functions)150 1170 y(in)m(v)m(ok)m(ed)28 b(b)m(y)f(a)h(particular)e(k) ! m(ey)i(sequence.)40 b(Y)-8 b(ou)28 b(ma)m(y)g(also)g(asso)s(ciate)g(a)g ! (new)f(function)f(name)i(with)e(an)150 1279 y(arbitrary)j(function.) ! 3350 1513 y([F)-8 b(unction])-3600 b Fg(rl_command_func_t)43 ! b(*)c Ff(rl)p 1255 1513 V 50 w(named)p 1637 1513 V 50 ! w(function)44 b Fe(\()p Fs(const)29 b(char)g(*name)p ! Fe(\))390 1623 y Ft(Return)h(the)g(function)f(with)g(name)i ! Fi(name)p Ft(.)3350 1856 y([F)-8 b(unction])-3600 b Fg ! (rl_command_func_t)43 b(*)c Ff(rl)p 1255 1856 V 50 w(function)p ! 1717 1856 V 49 w(of)p 1858 1856 V 51 w(k)m(eyseq)46 b ! Fe(\()p Fs(const)29 b(char)g(*keyseq,)565 1966 y(Keymap)g(map,)g(int)g ! (*type)p Fe(\))390 2075 y Ft(Return)j(the)g(function)g(in)m(v)m(ok)m ! (ed)h(b)m(y)f Fi(k)m(eyseq)k Ft(in)31 b(k)m(eymap)i Fi(map)p ! Ft(.)47 b(If)32 b Fi(map)j Ft(is)c Fs(NULL)p Ft(,)h(the)h(curren)m(t) ! 390 2185 y(k)m(eymap)k(is)f(used.)60 b(If)37 b Fi(t)m(yp)s(e)42 ! b Ft(is)36 b(not)h Fs(NULL)p Ft(,)h(the)f(t)m(yp)s(e)g(of)g(the)g(ob)5 ! b(ject)38 b(is)e(returned)g(in)g(the)h Fs(int)390 2295 ! y Ft(v)-5 b(ariable)29 b(it)h(p)s(oin)m(ts)f(to)i(\(one)g(of)g ! Fs(ISFUNC)p Ft(,)e Fs(ISKMAP)p Ft(,)g(or)h Fs(ISMACR)p ! Ft(\).)3350 2528 y([F)-8 b(unction])-3600 b Fg(char)39 ! b(**)g Ff(rl)p 627 2528 V 51 w(in)m(v)m(oking)p 1098 ! 2528 V 50 w(k)m(eyseqs)46 b Fe(\()p Fs(rl_command_func_t)26 ! b(*function)p Fe(\))390 2638 y Ft(Return)k(an)i(arra)m(y)f(of)h ! (strings)e(represen)m(ting)g(the)h(k)m(ey)h(sequences)g(used)e(to)i(in) ! m(v)m(ok)m(e)g Fi(function)e Ft(in)390 2747 y(the)h(curren)m(t)f(k)m ! (eymap.)3350 2981 y([F)-8 b(unction])-3600 b Fg(char)39 ! b(**)g Ff(rl)p 627 2981 V 51 w(in)m(v)m(oking)p 1098 ! 2981 V 50 w(k)m(eyseqs)p 1521 2981 V 51 w(in)p 1668 2981 ! V 50 w(map)45 b Fe(\()p Fs(rl_command_func_t)565 3091 ! y(*function,)28 b(Keymap)g(map)p Fe(\))390 3200 y Ft(Return)i(an)i ! (arra)m(y)f(of)h(strings)e(represen)m(ting)g(the)h(k)m(ey)h(sequences)g ! (used)e(to)i(in)m(v)m(ok)m(e)g Fi(function)e Ft(in)390 ! 3310 y(the)h(k)m(eymap)f Fi(map)p Ft(.)3350 3543 y([F)-8 ! b(unction])-3600 b Fg(void)39 b Ff(rl)p 484 3543 V 51 ! w(function)p 947 3543 V 49 w(dump)s(er)45 b Fe(\()p Fs(int)29 ! b(readable)p Fe(\))390 3653 y Ft(Prin)m(t)f(the)i(readline)d(function)h ! (names)h(and)g(the)g(k)m(ey)h(sequences)g(curren)m(tly)e(b)s(ound)f(to) ! j(them)f(to)390 3762 y Fs(rl_outstream)p Ft(.)36 b(If)27 ! b Fi(readable)32 b Ft(is)27 b(non-zero,)i(the)e(list)g(is)f(formatted)i ! (in)e(suc)m(h)h(a)h(w)m(a)m(y)h(that)f(it)f(can)390 3872 ! y(b)s(e)j(made)g(part)g(of)h(an)f Fs(inputrc)f Ft(\014le)g(and)h ! (re-read.)3350 4106 y([F)-8 b(unction])-3600 b Fg(void)39 ! b Ff(rl)p 484 4106 V 51 w(list)p 689 4106 V 50 w(funmap)p ! 1117 4106 V 49 w(names)45 b Fe(\()p Fs(void)p Fe(\))390 ! 4215 y Ft(Prin)m(t)29 b(the)i(names)f(of)h(all)e(bindable)f(Readline)h ! (functions)g(to)i Fs(rl_outstream)p Ft(.)3350 4449 y([F)-8 ! b(unction])-3600 b Fg(const)40 b(char)f(**)g Ff(rl)p ! 927 4449 V 50 w(funmap)p 1355 4449 V 50 w(names)45 b ! Fe(\()p Fs(void)p Fe(\))390 4558 y Ft(Return)25 b(a)i(NULL)f ! (terminated)f(arra)m(y)i(of)f(kno)m(wn)f(function)g(names.)39 ! b(The)26 b(arra)m(y)g(is)f(sorted.)39 b(The)390 4668 ! y(arra)m(y)26 b(itself)e(is)g(allo)s(cated,)j(but)d(not)i(the)f ! (strings)f(inside.)37 b(Y)-8 b(ou)26 b(should)d Fs(free\(\))h ! Ft(the)h(arra)m(y)h(when)390 4778 y(y)m(ou)31 b(are)f(done,)h(but)f ! (not)g(the)h(p)s(oin)m(ters.)3350 5011 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 5011 V 51 w(add)p 667 5011 ! V 49 w(funmap)p 1094 5011 V 49 w(en)m(try)45 b Fe(\()p ! Fs(const)29 b(char)h(*name,)e(rl_command_func_t)565 5121 ! y(*function)p Fe(\))390 5230 y Ft(Add)k Fi(name)38 b ! Ft(to)33 b(the)g(list)f(of)h(bindable)d(Readline)h(command)i(names,)g ! (and)f(mak)m(e)i Fi(function)e Ft(the)390 5340 y(function)d(to)i(b)s(e) ! f(called)f(when)h Fi(name)35 b Ft(is)30 b(in)m(v)m(ok)m(ed.)p eop ! %%Page: 32 36 ! 32 35 bop 150 -116 a Ft(32)2600 b(GNU)31 b(Readline)e(Library)150 ! 299 y Fh(2.4.5)63 b(Allo)m(wing)41 b(Undoing)275 539 ! y Ft(Supp)s(orting)23 b(the)j(undo)f(command)h(is)g(a)g(painless)f ! (thing,)h(and)f(mak)m(es)j(y)m(our)e(functions)e(m)m(uc)m(h)j(more)150 ! 648 y(useful.)39 b(It)30 b(is)g(certainly)f(easy)i(to)g(try)g ! (something)f(if)f(y)m(ou)i(kno)m(w)f(y)m(ou)h(can)f(undo)g(it.)275 ! 779 y(If)40 b(y)m(our)h(function)e(simply)f(inserts)i(text)i(once,)i ! (or)d(deletes)g(text)h(once,)i(and)c(uses)h Fs(rl_insert_)150 ! 888 y(text\(\))26 b Ft(or)i Fs(rl_delete_text\(\))23 ! b Ft(to)29 b(do)f(it,)g(then)g(undoing)e(is)g(already)i(done)g(for)f(y) ! m(ou)h(automatically)-8 b(.)275 1018 y(If)20 b(y)m(ou)g(do)h(m)m ! (ultiple)d(insertions)g(or)j(m)m(ultiple)d(deletions,)k(or)e(an)m(y)h ! (com)m(bination)f(of)g(these)h(op)s(erations,)150 1128 ! y(y)m(ou)38 b(should)e(group)i(them)g(together)h(in)m(to)f(one)g(op)s ! (eration.)63 b(This)36 b(is)h(done)h(with)f Fs(rl_begin_undo_)150 ! 1238 y(group\(\))28 b Ft(and)i Fs(rl_end_undo_group\(\))p ! Ft(.)275 1368 y(The)f(t)m(yp)s(es)i(of)f(ev)m(en)m(ts)i(that)f(can)g(b) ! s(e)e(undone)h(are:)390 1476 y Fd(enum)40 b(undo_code)h({)f ! (UNDO_DELETE,)i(UNDO_INSERT,)g(UNDO_BEGIN,)g(UNDO_END)f(};)275 ! 1606 y Ft(Notice)31 b(that)g Fs(UNDO_DELETE)c Ft(means)j(to)h(insert)e ! (some)i(text,)h(and)d Fs(UNDO_INSERT)e Ft(means)k(to)g(delete)150 ! 1715 y(some)d(text.)41 b(That)27 b(is,)h(the)f(undo)g(co)s(de)h(tells)e ! (what)i(to)g(undo,)f(not)h(ho)m(w)g(to)g(undo)e(it.)40 ! b Fs(UNDO_BEGIN)25 b Ft(and)150 1825 y Fs(UNDO_END)j ! Ft(are)j(tags)g(added)f(b)m(y)g Fs(rl_begin_undo_group\(\))25 ! b Ft(and)30 b Fs(rl_end_undo_group\(\))p Ft(.)3350 1997 ! y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 1997 ! 35 5 v 51 w(b)s(egin)p 756 1997 V 49 w(undo)p 1054 1997 ! V 50 w(group)45 b Fe(\()p Fs(void)p Fe(\))390 2106 y ! Ft(Begins)31 b(sa)m(ving)g(undo)e(information)h(in)f(a)j(group)e ! (construct.)43 b(The)30 b(undo)g(information)f(usually)390 ! 2216 y(comes)42 b(from)f(calls)g(to)h Fs(rl_insert_text\(\))37 ! b Ft(and)k Fs(rl_delete_text\(\))p Ft(,)f(but)h(could)g(b)s(e)g(the)390 ! 2325 y(result)29 b(of)i(calls)e(to)i Fs(rl_add_undo\(\))p ! Ft(.)3350 2497 y([F)-8 b(unction])-3600 b Fg(int)39 b ! Ff(rl)p 432 2497 V 51 w(end)p 664 2497 V 49 w(undo)p ! 962 2497 V 49 w(group)46 b Fe(\()p Fs(void)p Fe(\))390 ! 2606 y Ft(Closes)28 b(the)i(curren)m(t)e(undo)g(group)h(started)g(with) ! f Fs(rl_begin_undo_group)d(\(\))p Ft(.)39 b(There)29 ! b(should)390 2716 y(b)s(e)h(one)g(call)g(to)h Fs(rl_end_undo_group\(\)) ! 25 b Ft(for)30 b(eac)m(h)i(call)e(to)h Fs(rl_begin_undo_group\(\))p ! Ft(.)3350 2888 y([F)-8 b(unction])-3600 b Fg(void)39 ! b Ff(rl)p 484 2888 V 51 w(add)p 719 2888 V 49 w(undo)45 ! b Fe(\()p Fs(enum)29 b(undo_code)f(what,)h(int)h(start,)e(int)i(end,)f ! (char)565 2997 y(*text)p Fe(\))390 3107 y Ft(Remem)m(b)s(er)34 ! b(ho)m(w)g(to)h(undo)d(an)i(ev)m(en)m(t)i(\(according)e(to)h ! Fi(what)r Ft(\).)52 b(The)33 b(a\013ected)j(text)f(runs)d(from)390 ! 3216 y Fi(start)h Ft(to)e Fi(end)p Ft(,)f(and)g(encompasses)h ! Fi(text)p Ft(.)3350 3388 y([F)-8 b(unction])-3600 b Fg(void)39 ! b Ff(rl)p 484 3388 V 51 w(free)p 723 3388 V 49 w(undo)p ! 1021 3388 V 50 w(list)45 b Fe(\()p Fs(void)p Fe(\))390 ! 3497 y Ft(F)-8 b(ree)31 b(the)g(existing)e(undo)h(list.)3350 ! 3669 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 ! 3669 V 51 w(do)p 604 3669 V 50 w(undo)45 b Fe(\()p Fs(void)p ! Fe(\))390 3779 y Ft(Undo)22 b(the)h(\014rst)g(thing)e(on)i(the)g(undo)f ! (list.)37 b(Returns)22 b Fs(0)g Ft(if)g(there)h(w)m(as)g(nothing)f(to)i ! (undo,)f(non-zero)390 3888 y(if)29 b(something)h(w)m(as)h(undone.)275 ! 4060 y(Finally)-8 b(,)29 b(if)h(y)m(ou)i(neither)e(insert)g(nor)g ! (delete)i(text,)g(but)f(directly)e(mo)s(dify)h(the)h(existing)f(text)i ! (\(e.g.,)150 4169 y(c)m(hange)40 b(its)e(case\),)k(call)c ! Fs(rl_modifying\(\))d Ft(once,)42 b(just)c(b)s(efore)g(y)m(ou)h(mo)s ! (dify)e(the)i(text.)67 b(Y)-8 b(ou)39 b(m)m(ust)150 4279 ! y(supply)28 b(the)i(indices)f(of)h(the)h(text)g(range)g(that)g(y)m(ou)g ! (are)g(going)f(to)h(mo)s(dify)-8 b(.)3350 4450 y([F)g(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 4450 V 51 w(mo)s(difying)46 ! b Fe(\()p Fs(int)29 b(start,)g(int)h(end)p Fe(\))390 ! 4560 y Ft(T)-8 b(ell)39 b(Readline)g(to)i(sa)m(v)m(e)g(the)g(text)g(b)s ! (et)m(w)m(een)g Fi(start)i Ft(and)c Fi(end)k Ft(as)e(a)f(single)f(undo) ! g(unit.)69 b(It)40 b(is)390 4670 y(assumed)30 b(that)h(y)m(ou)f(will)e ! (subsequen)m(tly)h(mo)s(dify)f(that)j(text.)150 4881 ! y Fh(2.4.6)63 b(Redispla)m(y)3350 5121 y Ft([F)-8 b(unction])-3600 ! b Fg(void)39 b Ff(rl)p 484 5121 V 51 w(redispla)m(y)44 ! b Fe(\()p Fs(void)p Fe(\))390 5230 y Ft(Change)38 b(what's)f(displa)m ! (y)m(ed)g(on)g(the)h(screen)g(to)h(re\015ect)f(the)g(curren)m(t)g(con)m ! (ten)m(ts)h(of)f Fs(rl_line_)390 5340 y(buffer)p Ft(.)p eop ! %%Page: 33 37 ! 33 36 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(33)3350 299 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 299 35 5 v 51 w(forced)p 790 ! 299 V 49 w(up)s(date)p 1188 299 V 49 w(displa)m(y)44 ! b Fe(\()p Fs(void)p Fe(\))390 408 y Ft(F)-8 b(orce)41 ! b(the)f(line)e(to)j(b)s(e)e(up)s(dated)f(and)h(redispla)m(y)m(ed,)i ! (whether)e(or)g(not)h(Readline)f(thinks)f(the)390 518 ! y(screen)30 b(displa)m(y)f(is)g(correct.)3350 704 y([F)-8 ! b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 704 V 51 w(on)p ! 604 704 V 50 w(new)p 854 704 V 49 w(line)44 b Fe(\()p ! Fs(void)p Fe(\))390 814 y Ft(T)-8 b(ell)29 b(the)h(up)s(date)f ! (functions)f(that)j(w)m(e)f(ha)m(v)m(e)h(mo)m(v)m(ed)g(on)m(to)g(a)f ! (new)f(\(empt)m(y\))i(line,)e(usually)e(after)390 924 ! y(ouputting)i(a)i(newline.)3350 1110 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 1110 V 51 w(on)p 604 1110 V ! 50 w(new)p 854 1110 V 49 w(line)p 1084 1110 V 49 w(with)p ! 1357 1110 V 50 w(prompt)45 b Fe(\()p Fs(void)p Fe(\))390 ! 1219 y Ft(T)-8 b(ell)23 b(the)h(up)s(date)f(functions)g(that)i(w)m(e)f ! (ha)m(v)m(e)h(mo)m(v)m(ed)g(on)m(to)h(a)e(new)g(line,)g(with)e ! Fi(rl)p 3107 1219 28 4 v 39 w(prompt)j Ft(already)390 ! 1329 y(displa)m(y)m(ed.)39 b(This)27 b(could)g(b)s(e)h(used)g(b)m(y)g ! (applications)f(that)i(w)m(an)m(t)h(to)f(output)f(the)h(prompt)f ! (string)390 1439 y(themselv)m(es,)g(but)f(still)e(need)j(Readline)e(to) ! i(kno)m(w)f(the)h(prompt)e(string)g(length)h(for)g(redispla)m(y)-8 ! b(.)39 b(It)390 1548 y(should)28 b(b)s(e)i(used)g(after)h(setting)f ! Fi(rl)p 1591 1548 V 39 w(already)p 1921 1548 V 40 w(prompted)p ! Ft(.)3350 1734 y([F)-8 b(unction])-3600 b Fg(int)39 b ! Ff(rl)p 432 1734 35 5 v 51 w(reset)p 726 1734 V 49 w(line)p ! 956 1734 V 49 w(state)44 b Fe(\()p Fs(void)p Fe(\))390 ! 1844 y Ft(Reset)36 b(the)e(displa)m(y)f(state)j(to)g(a)f(clean)f(state) ! i(and)e(redispla)m(y)f(the)i(curren)m(t)g(line)e(starting)h(on)h(a)390 ! 1954 y(new)30 b(line.)3350 2140 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 2140 V 51 w(crlf)45 b Fe(\()p ! Fs(void)p Fe(\))390 2250 y Ft(Mo)m(v)m(e)32 b(the)f(cursor)f(to)h(the)f ! (start)h(of)g(the)f(next)h(screen)f(line.)3350 2436 y([F)-8 ! b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 2436 V 51 ! w(sho)m(w)p 729 2436 V 50 w(c)m(har)44 b Fe(\()p Fs(int)30 ! b(c)p Fe(\))390 2545 y Ft(Displa)m(y)i(c)m(haracter)i ! Fi(c)k Ft(on)32 b Fs(rl_outstream)p Ft(.)44 b(If)32 b(Readline)f(has)i ! (not)f(b)s(een)g(set)h(to)g(displa)m(y)e(meta)390 2655 ! y(c)m(haracters)c(directly)-8 b(,)27 b(this)d(will)g(con)m(v)m(ert)j ! (meta)g(c)m(haracters)h(to)e(a)h(meta-pre\014xed)f(k)m(ey)g(sequence.) ! 390 2765 y(This)j(is)g(in)m(tended)g(for)h(use)g(b)m(y)h(applications)d ! (whic)m(h)h(wish)g(to)i(do)f(their)g(o)m(wn)g(redispla)m(y)-8 ! b(.)3350 2951 y([F)g(unction])-3600 b Fg(int)39 b Ff(rl)p ! 432 2951 V 51 w(message)45 b Fe(\()p Fs(const)29 b(char)g(*,)h(...)o ! Fe(\))390 3061 y Ft(The)20 b(argumen)m(ts)h(are)g(a)g(format)g(string)f ! (as)g(w)m(ould)g(b)s(e)g(supplied)d(to)22 b Fs(printf)p ! Ft(,)f(p)s(ossibly)c(con)m(taining)390 3170 y(con)m(v)m(ersion)44 ! b(sp)s(eci\014cations)f(suc)m(h)h(as)g(`)p Fs(\045d)p ! Ft(',)k(and)c(an)m(y)g(additional)e(argumen)m(ts)j(necessary)f(to)390 ! 3280 y(satisfy)d(the)g(con)m(v)m(ersion)h(sp)s(eci\014cations.)72 ! b(The)41 b(resulting)f(string)g(is)g(displa)m(y)m(ed)g(in)g(the)i ! Fi(ec)m(ho)390 3389 y(area)p Ft(.)g(The)29 b(ec)m(ho)j(area)f(is)f ! (also)g(used)g(to)h(displa)m(y)d(n)m(umeric)h(argumen)m(ts)i(and)f ! (searc)m(h)h(strings.)3350 3576 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 3576 V 51 w(clear)p 722 3576 ! V 49 w(message)45 b Fe(\()p Fs(void)p Fe(\))390 3685 ! y Ft(Clear)30 b(the)g(message)i(in)d(the)h(ec)m(ho)i(area.)3350 ! 3871 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p ! 484 3871 V 51 w(sa)m(v)m(e)p 743 3871 V 50 w(prompt)45 ! b Fe(\()p Fs(void)p Fe(\))390 3981 y Ft(Sa)m(v)m(e)f(the)f(lo)s(cal)g ! (Readline)e(prompt)h(displa)m(y)g(state)i(in)e(preparation)g(for)h ! (displa)m(ying)d(a)j(new)390 4091 y(message)31 b(in)f(the)g(message)i ! (area)f(with)e Fs(rl_message\(\))p Ft(.)3350 4277 y([F)-8 ! b(unction])-3600 b Fg(void)39 b Ff(rl)p 484 4277 V 51 ! w(restore)p 882 4277 V 50 w(prompt)45 b Fe(\()p Fs(void)p ! Fe(\))390 4387 y Ft(Restore)f(the)e(lo)s(cal)g(Readline)g(prompt)f ! (displa)m(y)g(state)j(sa)m(v)m(ed)g(b)m(y)f(the)f(most)h(recen)m(t)h ! (call)e(to)390 4496 y Fs(rl_save_prompt)p Ft(.)3350 4682 ! y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 4682 ! V 51 w(expand)p 844 4682 V 49 w(prompt)45 b Fe(\()p Fs(char)29 ! b(*prompt)p Fe(\))390 4792 y Ft(Expand)41 b(an)m(y)j(sp)s(ecial)d(c)m ! (haracter)j(sequences)f(in)f Fi(prompt)h Ft(and)f(set)i(up)d(the)i(lo)s ! (cal)f(Readline)390 4902 y(prompt)35 b(redispla)m(y)f(v)-5 ! b(ariables.)55 b(This)34 b(function)h(is)g(called)g(b)m(y)g ! Fs(readline\(\))p Ft(.)55 b(It)35 b(ma)m(y)i(also)f(b)s(e)390 ! 5011 y(called)20 b(to)i(expand)f(the)g(primary)e(prompt)h(if)h(the)g ! Fs(rl_on_new_line_with_prom)o(pt\()o(\))15 b Ft(function)390 ! 5121 y(or)25 b Fs(rl_already_prompted)c Ft(v)-5 b(ariable)24 ! b(is)g(used.)39 b(It)25 b(returns)f(the)i(n)m(um)m(b)s(er)e(of)i ! (visible)c(c)m(haracters)390 5230 y(on)34 b(the)g(last)f(line)f(of)i ! (the)g(\(p)s(ossibly)d(m)m(ulti-line\))h(prompt.)50 b(Applications)31 ! b(ma)m(y)k(indicate)d(that)390 5340 y(the)c(prompt)f(con)m(tains)h(c)m ! (haracters)h(that)g(tak)m(e)g(up)e(no)h(ph)m(ysical)e(screen)i(space)g ! (when)f(displa)m(y)m(ed)p eop ! %%Page: 34 38 ! 34 37 bop 150 -116 a Ft(34)2600 b(GNU)31 b(Readline)e(Library)390 ! 299 y(b)m(y)41 b(brac)m(k)m(eting)h(a)f(sequence)g(of)g(suc)m(h)g(c)m ! (haracters)h(with)e(the)h(sp)s(ecial)f(mark)m(ers)h Fs(RL_PROMPT_)390 ! 408 y(START_IGNORE)27 b Ft(and)k Fs(RL_PROMPT_END_IGNORE)25 ! b Ft(\(declared)30 b(in)g(`)p Fs(readline.h)p Ft('.)39 ! b(This)29 b(ma)m(y)j(b)s(e)390 518 y(used)e(to)h(em)m(b)s(ed)f ! (terminal-sp)s(eci\014c)e(escap)s(e)i(sequences)h(in)e(prompts.)3350 ! 710 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 ! 710 35 5 v 51 w(set)p 626 710 V 49 w(prompt)45 b Fe(\()p ! Fs(const)30 b(char)f(*prompt)p Fe(\))390 819 y Ft(Mak)m(e)f(Readline)e ! (use)h Fi(prompt)h Ft(for)e(subsequen)m(t)h(redispla)m(y)-8 ! b(.)38 b(This)25 b(calls)h Fs(rl_expand_prompt\(\))390 ! 929 y Ft(to)31 b(expand)f(the)g(prompt)g(and)g(sets)g ! Fs(rl_prompt)e Ft(to)j(the)g(result.)150 1161 y Fh(2.4.7)63 ! b(Mo)s(difying)42 b(T)-10 b(ext)3350 1408 y Ft([F)i(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 1408 V 51 w(insert)p 769 1408 ! V 49 w(text)44 b Fe(\()p Fs(const)30 b(char)f(*text)p ! Fe(\))390 1518 y Ft(Insert)i Fi(text)k Ft(in)m(to)c(the)h(line)e(at)i ! (the)g(curren)m(t)f(cursor)g(p)s(osition.)43 b(Returns)30 ! b(the)i(n)m(um)m(b)s(er)f(of)g(c)m(har-)390 1628 y(acters)g(inserted.) ! 3350 1819 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p ! 432 1819 V 51 w(delete)p 783 1819 V 47 w(text)45 b Fe(\()p ! Fs(int)30 b(start,)f(int)g(end)p Fe(\))390 1929 y Ft(Delete)39 ! b(the)f(text)h(b)s(et)m(w)m(een)f Fi(start)i Ft(and)d ! Fi(end)k Ft(in)36 b(the)i(curren)m(t)g(line.)61 b(Returns)36 ! b(the)i(n)m(um)m(b)s(er)f(of)390 2039 y(c)m(haracters)32 ! b(deleted.)3350 2230 y([F)-8 b(unction])-3600 b Fg(char)39 ! b(*)g Ff(rl)p 575 2230 V 50 w(cop)m(y)p 854 2230 V 51 ! w(text)44 b Fe(\()p Fs(int)30 b(start,)f(int)g(end)p ! Fe(\))390 2340 y Ft(Return)h(a)g(cop)m(y)h(of)g(the)g(text)g(b)s(et)m ! (w)m(een)g Fi(start)i Ft(and)d Fi(end)j Ft(in)c(the)i(curren)m(t)f ! (line.)3350 2532 y([F)-8 b(unction])-3600 b Fg(int)39 ! b Ff(rl)p 432 2532 V 51 w(kill)p 639 2532 V 50 w(text)44 ! b Fe(\()p Fs(int)30 b(start,)f(int)g(end)p Fe(\))390 ! 2641 y Ft(Cop)m(y)34 b(the)g(text)i(b)s(et)m(w)m(een)e ! Fi(start)j Ft(and)d Fi(end)j Ft(in)c(the)h(curren)m(t)g(line)e(to)j ! (the)f(kill)e(ring,)i(app)s(ending)390 2751 y(or)g(prep)s(ending)d(to)k ! (the)f(last)g(kill)d(if)i(the)h(last)g(command)g(w)m(as)g(a)h(kill)c ! (command.)51 b(The)34 b(text)h(is)390 2861 y(deleted.)50 ! b(If)33 b Fi(start)j Ft(is)d(less)g(than)g Fi(end)p Ft(,)h(the)g(text)g ! (is)f(app)s(ended,)g(otherwise)g(prep)s(ended.)48 b(If)33 ! b(the)390 2970 y(last)d(command)g(w)m(as)h(not)g(a)f(kill,)f(a)i(new)e ! (kill)f(ring)i(slot)g(is)f(used.)3350 3162 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 3162 V 51 w(push)p 720 3162 ! V 49 w(macro)p 1075 3162 V 51 w(input)44 b Fe(\()p Fs(char)29 ! b(*macro)p Fe(\))390 3271 y Ft(Cause)f Fi(macro)33 b ! Ft(to)c(b)s(e)f(inserted)f(in)m(to)h(the)h(line,)e(as)h(if)g(it)f(had)h ! (b)s(een)g(in)m(v)m(ok)m(ed)g(b)m(y)g(a)h(k)m(ey)g(b)s(ound)d(to)390 ! 3381 y(a)31 b(macro.)41 b(Not)31 b(esp)s(ecially)e(useful;)g(use)h ! Fs(rl_insert_text\(\))c Ft(instead.)150 3613 y Fh(2.4.8)63 ! b(Character)39 b(Input)3350 3861 y Ft([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 3861 V 51 w(read)p 703 3861 ! V 49 w(k)m(ey)46 b Fe(\()p Fs(void)p Fe(\))390 3970 y ! Ft(Return)29 b(the)g(next)h(c)m(haracter)h(a)m(v)-5 b(ailable)29 ! b(from)g(Readline's)f(curren)m(t)h(input)f(stream.)41 ! b(This)27 b(han-)390 4080 y(dles)e(input)g(inserted)g(in)m(to)i(the)f ! (input)f(stream)i(via)f Fi(rl)p 2227 4080 28 4 v 39 w(p)s(ending)p ! 2584 4080 V 37 w(input)h Ft(\(see)g(Section)g(2.3)g([Read-)390 ! 4189 y(line)38 b(V)-8 b(ariables],)41 b(page)f(24\))g(and)f ! Fs(rl_stuff_char\(\))p Ft(,)f(macros,)k(and)d(c)m(haracters)h(read)f ! (from)390 4299 y(the)34 b(k)m(eyb)s(oard.)52 b(While)33 ! b(w)m(aiting)g(for)h(input,)f(this)g(function)g(will)e(call)j(an)m(y)g ! (function)f(assigned)390 4408 y(to)e(the)g Fs(rl_event_hook)26 ! b Ft(v)-5 b(ariable.)3350 4600 y([F)d(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 4600 35 5 v 51 w(getc)44 b ! Fe(\()p Fs(FILE)30 b(*stream)p Fe(\))390 4710 y Ft(Return)20 ! b(the)i(next)f(c)m(haracter)i(a)m(v)-5 b(ailable)21 b(from)f ! Fi(stream)p Ft(,)k(whic)m(h)c(is)g(assumed)h(to)h(b)s(e)e(the)i(k)m ! (eyb)s(oard.)3350 4902 y([F)-8 b(unction])-3600 b Fg(int)39 ! b Ff(rl)p 432 4902 V 51 w(stu\013)p 704 4902 V 49 w(c)m(har)45 ! b Fe(\()p Fs(int)30 b(c)p Fe(\))390 5011 y Ft(Insert)i ! Fi(c)39 b Ft(in)m(to)33 b(the)g(Readline)e(input)g(stream.)49 ! b(It)33 b(will)d(b)s(e)i Fs(")p Ft(read)p Fs(")g Ft(b)s(efore)h ! (Readline)e(attempts)390 5121 y(to)c(read)g(c)m(haracters)h(from)f(the) ! g(terminal)e(with)g Fs(rl_read_key\(\))p Ft(.)36 b(Up)27 ! b(to)g(512)h(c)m(haracters)g(ma)m(y)390 5230 y(b)s(e)i(pushed)f(bac)m ! (k.)42 b Fs(rl_stuff_char)27 b Ft(returns)i(1)i(if)e(the)i(c)m ! (haracter)h(w)m(as)f(successfully)e(inserted;)390 5340 ! y(0)i(otherwise.)p eop ! %%Page: 35 39 ! 35 38 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(35)3350 299 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 299 35 5 v 51 w(execute)p 862 ! 299 V 48 w(next)45 b Fe(\()p Fs(int)30 b(c)p Fe(\))390 ! 408 y Ft(Mak)m(e)37 b Fi(c)42 b Ft(b)s(e)35 b(the)h(next)f(command)h ! (to)g(b)s(e)f(executed)i(when)d Fs(rl_read_key\(\))e ! Ft(is)j(called.)56 b(This)390 518 y(sets)31 b Fi(rl)p ! 636 518 28 4 v 39 w(p)s(ending)p 993 518 V 37 w(input)p ! Ft(.)3350 699 y([F)-8 b(unction])-3600 b Fg(int)39 b ! Ff(rl)p 432 699 35 5 v 51 w(clear)p 722 699 V 49 w(p)s(ending)p ! 1172 699 V 49 w(input)44 b Fe(\()p Fs(void)p Fe(\))390 ! 808 y Ft(Unset)e Fi(rl)p 730 808 28 4 v 39 w(p)s(ending)p ! 1087 808 V 37 w(input)p Ft(,)h(e\013ectiv)m(ely)g(negating)f(the)g ! (e\013ect)h(of)f(an)m(y)g(previous)e(call)h(to)i Fs(rl_)390 ! 918 y(execute_next\(\))p Ft(.)59 b(This)35 b(w)m(orks)j(only)f(if)f ! (the)i(p)s(ending)d(input)h(has)h(not)h(already)f(b)s(een)g(read)390 ! 1028 y(with)29 b Fs(rl_read_key\(\))p Ft(.)3350 1208 ! y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 1208 ! 35 5 v 51 w(set)p 626 1208 V 49 w(k)m(eyb)s(oard)p 1136 ! 1208 V 51 w(input)p 1456 1208 V 48 w(timeout)45 b Fe(\()p ! Fs(int)29 b(u)p Fe(\))390 1318 y Ft(While)39 b(w)m(aiting)g(for)h(k)m ! (eyb)s(oard)g(input)e(in)h Fs(rl_read_key\(\))p Ft(,)g(Readline)g(will) ! e(w)m(ait)j(for)g Fi(u)g Ft(mi-)390 1427 y(croseconds)h(for)g(input)e ! (b)s(efore)h(calling)g(an)m(y)h(function)e(assigned)h(to)i ! Fs(rl_event_hook)p Ft(.)68 b(The)390 1537 y(default)30 ! b(w)m(aiting)f(p)s(erio)s(d)f(is)i(one-ten)m(th)h(of)g(a)g(second.)40 ! b(Returns)30 b(the)g(old)g(timeout)g(v)-5 b(alue.)150 ! 1758 y Fh(2.4.9)63 b(T)-10 b(erminal)40 b(Managemen)m(t)3350 ! 2000 y Ft([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p ! 484 2000 V 51 w(prep)p 763 2000 V 49 w(terminal)44 b ! Fe(\()p Fs(int)30 b(meta_flag)p Fe(\))390 2110 y Ft(Mo)s(dify)41 ! b(the)i(terminal)e(settings)h(for)g(Readline's)g(use,)j(so)e ! Fs(readline\(\))c Ft(can)k(read)f(a)h(single)390 2220 ! y(c)m(haracter)32 b(at)g(a)f(time)g(from)f(the)h(k)m(eyb)s(oard.)43 ! b(The)30 b Fi(meta)p 2376 2220 28 4 v 41 w(\015ag)39 ! b Ft(argumen)m(t)31 b(should)e(b)s(e)h(non-zero)390 2329 ! y(if)f(Readline)g(should)g(read)h(eigh)m(t-bit)g(input.)3350 ! 2510 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p ! 484 2510 35 5 v 51 w(deprep)p 880 2510 V 48 w(terminal)45 ! b Fe(\()p Fs(void)p Fe(\))390 2619 y Ft(Undo)31 b(the)h(e\013ects)h(of) ! f Fs(rl_prep_terminal\(\))p Ft(,)27 b(lea)m(ving)k(the)h(terminal)e(in) ! g(the)i(state)h(in)d(whic)m(h)390 2729 y(it)g(w)m(as)h(b)s(efore)f(the) ! g(most)h(recen)m(t)g(call)f(to)h Fs(rl_prep_terminal\(\))p ! Ft(.)3350 2910 y([F)-8 b(unction])-3600 b Fg(void)39 ! b Ff(rl)p 484 2910 V 51 w(tt)m(y)p 682 2910 V 50 w(set)p ! 875 2910 V 49 w(default)p 1273 2910 V 49 w(bindings)44 ! b Fe(\()p Fs(Keymap)29 b(kmap)p Fe(\))390 3019 y Ft(Read)37 ! b(the)g(op)s(erating)g(system's)g(terminal)e(editing)h(c)m(haracters)i ! (\(as)g(w)m(ould)d(b)s(e)i(displa)m(y)m(ed)e(b)m(y)390 ! 3129 y Fs(stty)p Ft(\))30 b(to)h(their)e(Readline)g(equiv)-5 ! b(alen)m(ts.)40 b(The)30 b(bindings)d(are)k(p)s(erformed)e(in)g ! Fi(kmap)p Ft(.)3350 3310 y([F)-8 b(unction])-3600 b Fg(void)39 ! b Ff(rl)p 484 3310 V 51 w(tt)m(y)p 682 3310 V 50 w(unset)p ! 1003 3310 V 49 w(default)p 1401 3310 V 48 w(bindings)44 ! b Fe(\()p Fs(Keymap)29 b(kmap)p Fe(\))390 3419 y Ft(Reset)k(the)f ! (bindings)c(manipulated)i(b)m(y)i Fs(rl_tty_set_default_bind)o(ing)o(s) ! 26 b Ft(so)32 b(that)g(the)g(ter-)390 3529 y(minal)38 ! b(editing)g(c)m(haracters)j(are)f(b)s(ound)e(to)i Fs(rl_insert)p ! Ft(.)66 b(The)39 b(bindings)d(are)k(p)s(erformed)e(in)390 ! 3638 y Fi(kmap)p Ft(.)3350 3819 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 3819 V 51 w(reset)p 726 3819 ! V 49 w(terminal)44 b Fe(\()p Fs(const)29 b(char)h(*terminal_name)p ! Fe(\))390 3929 y Ft(Reinitialize)21 b(Readline's)i(idea)g(of)h(the)g ! (terminal)f(settings)g(using)g Fi(terminal)p 2979 3929 ! 28 4 v 38 w(name)29 b Ft(as)24 b(the)g(termi-)390 4038 ! y(nal)31 b(t)m(yp)s(e)h(\(e.g.,)i Fs(vt100)p Ft(\).)44 ! b(If)31 b Fi(terminal)p 1755 4038 V 39 w(name)37 b Ft(is)30 ! b Fs(NULL)p Ft(,)i(the)g(v)-5 b(alue)31 b(of)h(the)g ! Fs(TERM)e Ft(en)m(vironmen)m(t)390 4148 y(v)-5 b(ariable)29 ! b(is)h(used.)150 4368 y Fh(2.4.10)63 b(Utilit)m(y)40 ! b(F)-10 b(unctions)3350 4611 y Ft([F)i(unction])-3600 ! b Fg(void)39 b Ff(rl)p 484 4611 35 5 v 51 w(replace)p ! 891 4611 V 49 w(line)44 b Fe(\()p Fs(const)29 b(char)g(*text,)g(int)g ! (clear_undo)p Fe(\))390 4721 y Ft(Replace)40 b(the)f(con)m(ten)m(ts)i ! (of)f Fs(rl_line_buffer)35 b Ft(with)j Fi(text)p Ft(.)69 ! b(The)39 b(p)s(oin)m(t)g(and)f(mark)h(are)h(pre-)390 ! 4831 y(serv)m(ed,)27 b(if)d(p)s(ossible.)37 b(If)25 b ! Fi(clear)p 1423 4831 28 4 v 40 w(undo)k Ft(is)c(non-zero,)i(the)f(undo) ! e(list)g(asso)s(ciated)i(with)e(the)i(curren)m(t)390 ! 4940 y(line)j(is)g(cleared.)3350 5121 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 5121 35 5 v 51 w(extend)p 822 ! 5121 V 48 w(line)p 1051 5121 V 50 w(bu\013er)44 b Fe(\()p ! Fs(int)30 b(len)p Fe(\))390 5230 y Ft(Ensure)f(that)h ! Fs(rl_line_buffer)d Ft(has)j(enough)f(space)i(to)g(hold)e ! Fi(len)g Ft(c)m(haracters,)j(p)s(ossibly)27 b(real-)390 ! 5340 y(lo)s(cating)j(it)g(if)f(necessary)-8 b(.)p eop ! %%Page: 36 40 ! 36 39 bop 150 -116 a Ft(36)2600 b(GNU)31 b(Readline)e(Library)3350 ! 299 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 ! 299 35 5 v 51 w(initialize)j Fe(\()p Fs(void)p Fe(\))390 ! 408 y Ft(Initialize)35 b(or)i(re-initialize)d(Readline's)i(in)m(ternal) ! f(state.)62 b(It's)37 b(not)g(strictly)f(necessary)h(to)h(call)390 ! 518 y(this;)30 b Fs(readline\(\))d Ft(calls)j(it)g(b)s(efore)g(reading) ! f(an)m(y)i(input.)3350 687 y([F)-8 b(unction])-3600 b ! Fg(int)39 b Ff(rl)p 432 687 V 51 w(ding)44 b Fe(\()p ! Fs(void)p Fe(\))390 796 y Ft(Ring)29 b(the)i(terminal)e(b)s(ell,)f(ob)s ! (eying)i(the)g(setting)h(of)f Fs(bell-style)p Ft(.)3350 ! 965 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 ! 965 V 51 w(alphab)s(etic)j Fe(\()p Fs(int)30 b(c)p Fe(\))390 ! 1074 y Ft(Return)g(1)g(if)g Fi(c)36 b Ft(is)29 b(an)i(alphab)s(etic)e ! (c)m(haracter.)3350 1243 y([F)-8 b(unction])-3600 b Fg(void)39 ! b Ff(rl)p 484 1243 V 51 w(displa)m(y)p 885 1243 V 49 ! w(matc)m(h)p 1242 1243 V 50 w(list)45 b Fe(\()p Fs(char)29 ! b(**matches,)f(int)h(len,)h(int)f(max)p Fe(\))390 1352 ! y Ft(A)35 b(con)m(v)m(enience)g(function)e(for)h(displa)m(ying)e(a)j ! (list)e(of)i(strings)e(in)g(columnar)g(format)i(on)f(Read-)390 ! 1462 y(line's)e(output)h(stream.)51 b Fs(matches)31 b ! Ft(is)i(the)g(list)g(of)g(strings,)h(in)e(argv)i(format,)h(suc)m(h)e ! (as)h(a)g(list)e(of)390 1572 y(completion)24 b(matc)m(hes.)39 ! b Fs(len)24 b Ft(is)f(the)h(n)m(um)m(b)s(er)f(of)i(strings)e(in)g ! Fs(matches)p Ft(,)g(and)h Fs(max)f Ft(is)h(the)g(length)g(of)390 ! 1681 y(the)i(longest)h(string)e(in)g Fs(matches)p Ft(.)37 ! b(This)24 b(function)h(uses)h(the)g(setting)h(of)f Fs ! (print-completions-)390 1791 y(horizontally)33 b Ft(to)k(select)g(ho)m ! (w)f(the)g(matc)m(hes)i(are)e(displa)m(y)m(ed)f(\(see)i(Section)f ! (1.3.1)i([Readline)390 1900 y(Init)29 b(File)h(Syn)m(tax],)h(page)g ! (4\).)275 2069 y(The)g(follo)m(wing)g(are)h(implemen)m(ted)f(as)h ! (macros,)h(de\014ned)e(in)g Fs(chardefs.h)p Ft(.)43 b(Applications)30 ! b(should)150 2179 y(refrain)f(from)h(using)f(them.)3350 ! 2347 y([F)-8 b(unction])-3600 b Fg(int)p 353 2347 V 90 ! w Ff(rl)p 483 2347 V 50 w(upp)s(ercase)p 1033 2347 V ! 48 w(p)46 b Fe(\()p Fs(int)29 b(c)p Fe(\))390 2457 y ! Ft(Return)h(1)g(if)g Fi(c)36 b Ft(is)29 b(an)i(upp)s(ercase)e(alphab)s ! (etic)g(c)m(haracter.)3350 2625 y([F)-8 b(unction])-3600 ! b Fg(int)p 353 2625 V 90 w Ff(rl)p 483 2625 V 50 w(lo)m(w)m(ercase)p ! 1004 2625 V 49 w(p)45 b Fe(\()p Fs(int)30 b(c)p Fe(\))390 ! 2735 y Ft(Return)g(1)g(if)g Fi(c)36 b Ft(is)29 b(a)i(lo)m(w)m(ercase)h ! (alphab)s(etic)d(c)m(haracter.)3350 2903 y([F)-8 b(unction])-3600 ! b Fg(int)p 353 2903 V 90 w Ff(rl)p 483 2903 V 50 w(digit)p ! 763 2903 V 49 w(p)46 b Fe(\()p Fs(int)29 b(c)p Fe(\))390 ! 3013 y Ft(Return)h(1)g(if)g Fi(c)36 b Ft(is)29 b(a)i(n)m(umeric)e(c)m ! (haracter.)3350 3182 y([F)-8 b(unction])-3600 b Fg(int)p ! 353 3182 V 90 w Ff(rl)p 483 3182 V 50 w(to)p 635 3182 ! V 50 w(upp)s(er)44 b Fe(\()p Fs(int)30 b(c)p Fe(\))390 ! 3291 y Ft(If)23 b Fi(c)30 b Ft(is)23 b(a)h(lo)m(w)m(ercase)h(alphab)s ! (etic)d(c)m(haracter,)27 b(return)c(the)h(corresp)s(onding)d(upp)s ! (ercase)i(c)m(haracter.)3350 3460 y([F)-8 b(unction])-3600 ! b Fg(int)p 353 3460 V 90 w Ff(rl)p 483 3460 V 50 w(to)p ! 635 3460 V 50 w(lo)m(w)m(er)45 b Fe(\()p Fs(int)30 b(c)p ! Fe(\))390 3569 y Ft(If)e Fi(c)35 b Ft(is)28 b(an)h(upp)s(ercase)f ! (alphab)s(etic)f(c)m(haracter,)k(return)d(the)h(corresp)s(onding)e(lo)m ! (w)m(ercase)j(c)m(harac-)390 3679 y(ter.)3350 3847 y([F)-8 ! b(unction])-3600 b Fg(int)p 353 3847 V 90 w Ff(rl)p 483 ! 3847 V 50 w(digit)p 763 3847 V 49 w(v)-6 b(alue)45 b ! Fe(\()p Fs(int)30 b(c)p Fe(\))390 3957 y Ft(If)g Fi(c)36 ! b Ft(is)30 b(a)g(n)m(um)m(b)s(er,)g(return)f(the)h(v)-5 ! b(alue)30 b(it)g(represen)m(ts.)150 4165 y Fh(2.4.11)63 ! b(Miscellaneous)42 b(F)-10 b(unctions)3350 4404 y Ft([F)i(unction]) ! -3600 b Fg(int)39 b Ff(rl)p 432 4404 V 51 w(macro)p 789 ! 4404 V 50 w(bind)45 b Fe(\()p Fs(const)29 b(char)g(*keyseq,)f(const)h ! (char)g(*macro,)g(Keymap)565 4514 y(map)p Fe(\))390 4623 ! y Ft(Bind)22 b(the)h(k)m(ey)h(sequence)g Fi(k)m(eyseq)i ! Ft(to)e(in)m(v)m(ok)m(e)g(the)g(macro)f Fi(macro)p Ft(.)39 ! b(The)23 b(binding)d(is)j(p)s(erformed)e(in)390 4733 ! y Fi(map)p Ft(.)39 b(When)28 b Fi(k)m(eyseq)i Ft(is)d(in)m(v)m(ok)m ! (ed,)i(the)e Fi(macro)33 b Ft(will)25 b(b)s(e)i(inserted)f(in)m(to)i ! (the)f(line.)39 b(This)25 b(function)390 4843 y(is)k(deprecated;)j(use) ! e Fs(rl_generic_bind\(\))25 b Ft(instead.)3350 5011 y([F)-8 ! b(unction])-3600 b Fg(void)39 b Ff(rl)p 484 5011 V 51 ! w(macro)p 841 5011 V 51 w(dump)s(er)45 b Fe(\()p Fs(int)29 ! b(readable)p Fe(\))390 5121 y Ft(Prin)m(t)d(the)h(k)m(ey)h(sequences)g ! (b)s(ound)d(to)j(macros)f(and)g(their)f(v)-5 b(alues,)27 ! b(using)f(the)h(curren)m(t)g(k)m(eymap,)390 5230 y(to)32 ! b Fs(rl_outstream)p Ft(.)40 b(If)31 b Fi(readable)k Ft(is)c(non-zero,)h ! (the)f(list)f(is)g(formatted)i(in)e(suc)m(h)h(a)g(w)m(a)m(y)i(that)e ! (it)390 5340 y(can)g(b)s(e)e(made)i(part)f(of)h(an)f ! Fs(inputrc)e Ft(\014le)i(and)f(re-read.)p eop ! %%Page: 37 41 ! 37 40 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(37)3350 299 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 299 35 5 v 51 w(v)-6 b(ariable)p ! 877 299 V 48 w(bind)45 b Fe(\()p Fs(const)29 b(char)g(*variable,)f ! (const)h(char)g(*value)p Fe(\))390 408 y Ft(Mak)m(e)i(the)e(Readline)e ! (v)-5 b(ariable)28 b Fi(v)-5 b(ariable)33 b Ft(ha)m(v)m(e)d ! Fi(v)-5 b(alue)p Ft(.)40 b(This)27 b(b)s(eha)m(v)m(es)i(as)h(if)e(the)h ! (readline)e(com-)390 518 y(mand)h(`)p Fs(set)i Fl(variable)38 ! b(value)11 b Ft(')28 b(had)g(b)s(een)g(executed)i(in)d(an)i ! Fs(inputrc)e Ft(\014le)h(\(see)h(Section)g(1.3.1)390 ! 628 y([Readline)g(Init)g(File)h(Syn)m(tax],)h(page)g(4\).)3350 ! 807 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p 484 ! 807 V 51 w(v)-6 b(ariable)p 929 807 V 49 w(dump)s(er)44 ! b Fe(\()p Fs(int)30 b(readable)p Fe(\))390 916 y Ft(Prin)m(t)e(the)g ! (readline)f(v)-5 b(ariable)28 b(names)g(and)g(their)g(curren)m(t)g(v)-5 ! b(alues)28 b(to)i Fs(rl_outstream)p Ft(.)37 b(If)28 b ! Fi(read-)390 1026 y(able)39 b Ft(is)33 b(non-zero,)j(the)e(list)e(is)h ! (formatted)i(in)e(suc)m(h)h(a)g(w)m(a)m(y)h(that)g(it)e(can)h(b)s(e)g ! (made)g(part)g(of)g(an)390 1135 y Fs(inputrc)28 b Ft(\014le)i(and)g ! (re-read.)3350 1314 y([F)-8 b(unction])-3600 b Fg(int)39 ! b Ff(rl)p 432 1314 V 51 w(set)p 626 1314 V 49 w(paren)p ! 959 1314 V 49 w(blink)p 1260 1314 V 50 w(timeout)44 b ! Fe(\()p Fs(int)30 b(u)p Fe(\))390 1424 y Ft(Set)25 b(the)h(time)e(in)m ! (terv)-5 b(al)25 b(\(in)f(microseconds\))h(that)h(Readline)d(w)m(aits)i ! (when)f(sho)m(wing)h(a)g(balancing)390 1533 y(c)m(haracter)32 ! b(when)d Fs(blink-matching-paren)c Ft(has)30 b(b)s(een)g(enabled.)3350 ! 1712 y([F)-8 b(unction])-3600 b Fg(char)39 b(*)g Ff(rl)p ! 575 1712 V 50 w(get)p 780 1712 V 50 w(termcap)45 b Fe(\()p ! Fs(const)29 b(char)g(*cap)p Fe(\))390 1822 y Ft(Retriev)m(e)f(the)f ! (string)f(v)-5 b(alue)26 b(of)h(the)h(termcap)f(capabilit)m(y)f ! Fi(cap)p Ft(.)40 b(Readline)25 b(fetc)m(hes)j(the)g(termcap)390 ! 1931 y(en)m(try)34 b(for)f(the)h(curren)m(t)f(terminal)f(name)i(and)f ! (uses)g(those)h(capabilities)d(to)j(mo)m(v)m(e)h(around)e(the)390 ! 2041 y(screen)21 b(line)f(and)g(p)s(erform)g(other)h(terminal-sp)s ! (eci\014c)e(op)s(erations,)j(lik)m(e)e(erasing)h(a)g(line.)36 ! b(Readline)390 2151 y(do)s(es)f(not)g(use)g(all)e(of)j(a)f(terminal's)e ! (capabilities,)i(and)f(this)g(function)g(will)e(return)i(v)-5 ! b(alues)34 b(for)390 2260 y(only)29 b(those)i(capabilities)e(Readline)g ! (uses.)150 2479 y Fh(2.4.12)63 b(Alternate)40 b(In)m(terface)275 ! 2721 y Ft(An)k(alternate)h(in)m(terface)g(is)f(a)m(v)-5 ! b(ailable)44 b(to)i(plain)c Fs(readline\(\))p Ft(.)81 ! b(Some)45 b(applications)e(need)h(to)150 2831 y(in)m(terlea)m(v)m(e)30 ! b(k)m(eyb)s(oard)f(I/O)g(with)e(\014le,)i(device,)h(or)f(windo)m(w)e ! (system)i(I/O,)g(t)m(ypically)f(b)m(y)h(using)f(a)h(main)150 ! 2940 y(lo)s(op)e(to)h Fs(select\(\))e Ft(on)h(v)-5 b(arious)27 ! b(\014le)g(descriptors.)38 b(T)-8 b(o)28 b(accomo)s(date)i(this)d ! (need,)h(readline)e(can)i(also)g(b)s(e)150 3050 y(in)m(v)m(ok)m(ed)k ! (as)f(a)h(`callbac)m(k')f(function)f(from)h(an)g(ev)m(en)m(t)h(lo)s ! (op.)43 b(There)30 b(are)i(functions)e(a)m(v)-5 b(ailable)30 ! b(to)i(mak)m(e)150 3160 y(this)d(easy)-8 b(.)3350 3338 ! y([F)g(unction])-3600 b Fg(void)39 b Ff(rl)p 484 3338 ! V 51 w(callbac)m(k)p 934 3338 V 49 w(handler)p 1363 3338 ! V 49 w(install)44 b Fe(\()p Fs(const)29 b(char)g(*prompt,)565 ! 3448 y(rl_vcpfunc_t)e(*lhandler)p Fe(\))390 3558 y Ft(Set)e(up)f(the)h ! (terminal)e(for)h(readline)g(I/O)g(and)g(displa)m(y)f(the)i(initial)d ! (expanded)i(v)-5 b(alue)25 b(of)g Fi(prompt)p Ft(.)390 ! 3667 y(Sa)m(v)m(e)33 b(the)f(v)-5 b(alue)31 b(of)h Fi(lhandler)j ! Ft(to)e(use)e(as)h(a)g(function)e(to)i(call)f(when)g(a)h(complete)g ! (line)e(of)i(input)390 3777 y(has)e(b)s(een)g(en)m(tered.)41 ! b(The)30 b(function)f(tak)m(es)j(the)e(text)i(of)e(the)h(line)e(as)h ! (an)g(argumen)m(t.)3350 3956 y([F)-8 b(unction])-3600 ! b Fg(void)39 b Ff(rl)p 484 3956 V 51 w(callbac)m(k)p ! 934 3956 V 49 w(read)p 1203 3956 V 50 w(c)m(har)44 b ! Fe(\()p Fs(void)p Fe(\))390 4065 y Ft(Whenev)m(er)34 ! b(an)g(application)e(determines)g(that)j(k)m(eyb)s(oard)e(input)f(is)h ! (a)m(v)-5 b(ailable,)34 b(it)f(should)f(call)390 4175 ! y Fs(rl_callback_read_char\(\))p Ft(,)17 b(whic)m(h)k(will)e(read)i ! (the)h(next)g(c)m(haracter)h(from)f(the)f(curren)m(t)h(input)390 ! 4284 y(source.)77 b(If)41 b(that)i(c)m(haracter)h(completes)f(the)f ! (line,)i Fs(rl_callback_read_char)36 b Ft(will)k(in)m(v)m(ok)m(e)390 ! 4394 y(the)c Fi(lhandler)j Ft(function)34 b(sa)m(v)m(ed)i(b)m(y)g ! Fs(rl_callback_handler_ins)o(tall)29 b Ft(to)36 b(pro)s(cess)f(the)g ! (line.)390 4504 y(Before)28 b(calling)d(the)i Fi(lhandler)j ! Ft(function,)d(the)f(terminal)g(settings)g(are)h(reset)h(to)f(the)g(v) ! -5 b(alues)26 b(they)390 4613 y(had)j(b)s(efore)g(calling)g ! Fs(rl_callback_handler_ins)o(tall)o Ft(.)35 b(If)29 b(the)h ! Fi(lhandler)k Ft(function)28 b(returns,)390 4723 y(the)d(terminal)e ! (settings)i(are)g(mo)s(di\014ed)d(for)j(Readline's)e(use)h(again.)39 ! b Fs(EOF)24 b Ft(is)g(indicated)f(b)m(y)h(calling)390 ! 4832 y Fi(lhandler)34 b Ft(with)29 b(a)i Fs(NULL)e Ft(line.)3350 ! 5011 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p ! 484 5011 V 51 w(callbac)m(k)p 934 5011 V 49 w(handler)p ! 1363 5011 V 49 w(remo)m(v)m(e)45 b Fe(\()p Fs(void)p ! Fe(\))390 5121 y Ft(Restore)38 b(the)f(terminal)f(to)i(its)e(initial)f ! (state)j(and)f(remo)m(v)m(e)h(the)g(line)d(handler.)59 ! b(This)36 b(ma)m(y)i(b)s(e)390 5230 y(called)d(from)h(within)e(a)j ! (callbac)m(k)f(as)h(w)m(ell)e(as)h(indep)s(enden)m(tly)-8 ! b(.)56 b(If)36 b(the)h Fi(lhandler)j Ft(installed)34 ! b(b)m(y)390 5340 y Fs(rl_callback_handler_inst)o(all)e ! Ft(do)s(es)39 b(not)g(exit)f(the)h(program,)i(either)d(this)g(function) ! f(or)p eop ! %%Page: 38 42 ! 38 41 bop 150 -116 a Ft(38)2600 b(GNU)31 b(Readline)e(Library)390 ! 299 y(the)j(function)e(referred)g(to)i(b)m(y)g(the)f(v)-5 ! b(alue)31 b(of)h Fs(rl_deprep_term_function)25 b Ft(should)k(b)s(e)i ! (called)390 408 y(b)s(efore)f(the)h(program)f(exits)g(to)h(reset)g(the) ! f(terminal)f(settings.)150 660 y Fh(2.4.13)63 b(A)41 ! b(Readline)f(Example)275 918 y Ft(Here)f(is)f(a)h(function)f(whic)m(h)g ! (c)m(hanges)i(lo)m(w)m(ercase)g(c)m(haracters)h(to)e(their)f(upp)s ! (ercase)g(equiv)-5 b(alen)m(ts,)150 1027 y(and)38 b(upp)s(ercase)f(c)m ! (haracters)j(to)f(lo)m(w)m(ercase.)67 b(If)37 b(this)h(function)f(w)m ! (as)i(b)s(ound)d(to)j(`)p Fs(M-c)p Ft(',)h(then)e(t)m(yping)150 ! 1137 y(`)p Fs(M-c)p Ft(')26 b(w)m(ould)f(c)m(hange)i(the)g(case)g(of)g ! (the)f(c)m(haracter)i(under)d(p)s(oin)m(t.)38 b(T)m(yping)25 ! b(`)p Fs(M-1)30 b(0)g(M-c)p Ft(')c(w)m(ould)f(c)m(hange)150 ! 1247 y(the)31 b(case)g(of)g(the)f(follo)m(wing)f(10)i(c)m(haracters,)h ! (lea)m(ving)e(the)h(cursor)f(on)g(the)g(last)h(c)m(haracter)h(c)m ! (hanged.)390 1395 y Fs(/*)47 b(Invert)f(the)h(case)g(of)g(the)g(COUNT)f ! (following)g(characters.)e(*/)390 1504 y(int)390 1614 ! y(invert_case_line)f(\(count,)j(key\))629 1724 y(int)h(count,)f(key;) ! 390 1833 y({)485 1943 y(register)g(int)h(start,)f(end,)h(i;)485 ! 2162 y(start)g(=)g(rl_point;)485 2381 y(if)h(\(rl_point)d(>=)i ! (rl_end\))581 2491 y(return)f(\(0\);)485 2710 y(if)i(\(count)e(<)h(0\)) ! 581 2819 y({)676 2929 y(direction)f(=)h(-1;)676 3039 ! y(count)g(=)g(-count;)581 3148 y(})485 3258 y(else)581 ! 3367 y(direction)e(=)j(1;)485 3587 y(/*)g(Find)e(the)h(end)g(of)g(the)g ! (range)g(to)g(modify.)f(*/)485 3696 y(end)h(=)h(start)e(+)i(\(count)e ! (*)h(direction\);)485 3915 y(/*)h(Force)e(it)h(to)g(be)h(within)e ! (range.)g(*/)485 4025 y(if)i(\(end)e(>)i(rl_end\))581 ! 4134 y(end)f(=)g(rl_end;)485 4244 y(else)g(if)g(\(end)g(<)g(0\))581 ! 4354 y(end)g(=)g(0;)485 4573 y(if)h(\(start)e(==)h(end\))581 ! 4682 y(return)f(\(0\);)485 4902 y(if)i(\(start)e(>)h(end\))581 ! 5011 y({)676 5121 y(int)g(temp)g(=)g(start;)676 5230 ! y(start)g(=)g(end;)676 5340 y(end)g(=)h(temp;)p eop ! %%Page: 39 43 ! 39 42 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(39)581 299 y Fs(})485 ! 518 y(/*)48 b(Tell)e(readline)g(that)g(we)i(are)f(modifying)e(the)i ! (line,)629 628 y(so)g(it)g(will)g(save)f(the)h(undo)g(information.)d ! (*/)485 737 y(rl_modifying)h(\(start,)h(end\);)485 956 ! y(for)h(\(i)h(=)f(start;)f(i)i(!=)f(end;)f(i++\))581 ! 1066 y({)676 1176 y(if)i(\(_rl_uppercase_p)43 b ! (\(rl_line_buffer[i]\)\))772 1285 y(rl_line_buffer[i])g(=)k ! (_rl_to_lower)e(\(rl_line_buffer[i]\);)676 1395 y(else)i(if)g ! (\(_rl_lowercase_p)d(\(rl_line_buffer[i]\)\))772 1504 ! y(rl_line_buffer[i])f(=)k(_rl_to_upper)e(\(rl_line_buffer[i]\);)581 ! 1614 y(})485 1724 y(/*)j(Move)e(point)h(to)g(on)g(top)g(of)g(the)g ! (last)g(character)e(changed.)g(*/)485 1833 y(rl_point)h(=)h ! (\(direction)e(==)j(1\))f(?)g(end)g(-)h(1)f(:)h(start;)485 ! 1943 y(return)f(\(0\);)390 2052 y(})150 2298 y Fr(2.5)68 ! b(Readline)47 b(Signal)e(Handling)275 2538 y Ft(Signals)39 ! b(are)j(async)m(hronous)g(ev)m(en)m(ts)h(sen)m(t)f(to)g(a)g(pro)s(cess) ! f(b)m(y)h(the)g(Unix)e(k)m(ernel,)k(sometimes)e(on)150 ! 2647 y(b)s(ehalf)c(of)i(another)g(pro)s(cess.)68 b(They)39 ! b(are)h(in)m(tended)f(to)h(indicate)f(exceptional)h(ev)m(en)m(ts,)k ! (lik)m(e)39 b(a)h(user)150 2757 y(pressing)28 b(the)j(in)m(terrupt)d(k) ! m(ey)j(on)f(his)e(terminal,)h(or)h(a)g(net)m(w)m(ork)h(connection)f(b)s ! (eing)f(brok)m(en.)40 b(There)30 b(is)150 2866 y(a)d(class)f(of)g ! (signals)f(that)i(can)g(b)s(e)f(sen)m(t)h(to)g(the)f(pro)s(cess)g ! (curren)m(tly)g(reading)f(input)f(from)i(the)h(k)m(eyb)s(oard.)150 ! 2976 y(Since)f(Readline)f(c)m(hanges)j(the)e(terminal)g(attributes)g ! (when)g(it)g(is)f(called,)i(it)f(needs)h(to)g(p)s(erform)e(sp)s(ecial) ! 150 3086 y(pro)s(cessing)h(when)h(suc)m(h)g(a)h(signal)e(is)h(receiv)m ! (ed)h(in)e(order)h(to)h(restore)h(the)e(terminal)f(to)j(a)f(sane)f ! (state,)j(or)150 3195 y(pro)m(vide)f(application)g(writers)g(with)g ! (functions)g(to)i(do)g(so)f(man)m(ually)-8 b(.)275 3326 ! y(Readline)38 b(con)m(tains)j(an)f(in)m(ternal)f(signal)g(handler)g ! (that)i(is)e(installed)f(for)i(a)h(n)m(um)m(b)s(er)e(of)h(signals)150 ! 3435 y(\()p Fs(SIGINT)p Ft(,)k Fs(SIGQUIT)p Ft(,)f Fs(SIGTERM)p ! Ft(,)g Fs(SIGALRM)p Ft(,)h Fs(SIGTSTP)p Ft(,)f Fs(SIGTTIN)p ! Ft(,)g(and)e Fs(SIGTTOU)p Ft(\).)75 b(When)41 b(one)i(of)150 ! 3545 y(these)32 b(signals)e(is)h(receiv)m(ed,)i(the)f(signal)e(handler) ! g(will)f(reset)j(the)g(terminal)e(attributes)i(to)g(those)g(that)150 ! 3654 y(w)m(ere)c(in)e(e\013ect)i(b)s(efore)f Fs(readline\(\))d ! Ft(w)m(as)k(called,)f(reset)h(the)g(signal)d(handling)g(to)j(what)f(it) ! g(w)m(as)g(b)s(efore)150 3764 y Fs(readline\(\))42 b ! Ft(w)m(as)k(called,)i(and)c(resend)h(the)g(signal)f(to)i(the)f(calling) ! f(application.)83 b(If)44 b(and)h(when)150 3874 y(the)34 ! b(calling)f(application's)f(signal)h(handler)f(returns,)i(Readline)e ! (will)g(reinitialize)f(the)j(terminal)f(and)150 3983 ! y(con)m(tin)m(ue)28 b(to)h(accept)h(input.)38 b(When)28 ! b(a)h Fs(SIGINT)d Ft(is)i(receiv)m(ed,)h(the)f(Readline)f(signal)g ! (handler)g(p)s(erforms)150 4093 y(some)39 b(additional)e(w)m(ork,)k ! (whic)m(h)c(will)f(cause)j(an)m(y)h(partially-en)m(tered)d(line)g(to)j ! (b)s(e)e(ab)s(orted)g(\(see)i(the)150 4202 y(description)28 ! b(of)j Fs(rl_free_line_state\(\))25 b Ft(b)s(elo)m(w\).)275 ! 4333 y(There)e(is)h(an)g(additional)e(Readline)h(signal)g(handler,)h ! (for)g Fs(SIGWINCH)p Ft(,)g(whic)m(h)f(the)h(k)m(ernel)g(sends)f(to)j ! (a)150 4442 y(pro)s(cess)i(whenev)m(er)h(the)g(terminal's)e(size)i(c)m ! (hanges)h(\(for)f(example,)g(if)f(a)h(user)f(resizes)h(an)f ! Fs(xterm)p Ft(\).)39 b(The)150 4552 y(Readline)34 b Fs(SIGWINCH)g ! Ft(handler)f(up)s(dates)i(Readline's)f(in)m(ternal)h(screen)g(size)h ! (information,)f(and)g(then)150 4662 y(calls)e(an)m(y)h ! Fs(SIGWINCH)e Ft(signal)g(handler)g(the)i(calling)e(application)g(has)i ! (installed.)48 b(Readline)33 b(calls)g(the)150 4771 y(application's)h ! Fs(SIGWINCH)f Ft(signal)g(handler)h(without)g(resetting)h(the)h ! (terminal)d(to)j(its)f(original)e(state.)150 4881 y(If)e(the)i ! (application's)d(signal)h(handler)f(do)s(es)h(more)h(than)g(up)s(date)f ! (its)h(idea)f(of)h(the)g(terminal)f(size)h(and)150 4990 ! y(return)c(\(for)i(example,)g(a)g Fs(longjmp)d Ft(bac)m(k)k(to)f(a)g ! (main)f(pro)s(cessing)f(lo)s(op\),)h(it)g Fn(must)39 ! b Ft(call)29 b Fs(rl_cleanup_)150 5100 y(after_signal\(\))d ! Ft(\(describ)s(ed)j(b)s(elo)m(w\),)h(to)h(restore)g(the)g(terminal)e ! (state.)275 5230 y(Readline)e(pro)m(vides)g(t)m(w)m(o)j(v)-5 ! b(ariables)27 b(that)j(allo)m(w)e(application)f(writers)g(to)i(con)m ! (trol)g(whether)f(or)h(not)150 5340 y(it)k(will)d(catc)m(h)35 ! b(certain)e(signals)e(and)i(act)h(on)f(them)g(when)f(they)i(are)f ! (receiv)m(ed.)50 b(It)33 b(is)f(imp)s(ortan)m(t)g(that)p eop ! %%Page: 40 44 ! 40 43 bop 150 -116 a Ft(40)2600 b(GNU)31 b(Readline)e(Library)150 ! 299 y(applications)35 b(c)m(hange)j(the)e(v)-5 b(alues)36 ! b(of)h(these)g(v)-5 b(ariables)35 b(only)h(when)g(calling)f ! Fs(readline\(\))p Ft(,)g(not)i(in)f(a)150 408 y(signal)29 ! b(handler,)g(so)h(Readline's)g(in)m(ternal)f(signal)g(state)j(is)d(not) ! i(corrupted.)3371 596 y([V)-8 b(ariable])-3600 b Fg(int)39 ! b Ff(rl)p 432 596 35 5 v 51 w(catc)m(h)p 747 596 V 48 ! w(signals)390 705 y Ft(If)28 b(this)g(v)-5 b(ariable)28 ! b(is)g(non-zero,)i(Readline)d(will)f(install)h(signal)g(handlers)g(for) ! i Fs(SIGINT)p Ft(,)f Fs(SIGQUIT)p Ft(,)390 815 y Fs(SIGTERM)p ! Ft(,)h Fs(SIGALRM)p Ft(,)f Fs(SIGTSTP)p Ft(,)h Fs(SIGTTIN)p ! Ft(,)g(and)g Fs(SIGTTOU)p Ft(.)390 951 y(The)h(default)f(v)-5 ! b(alue)30 b(of)h Fs(rl_catch_signals)26 b Ft(is)j(1.)3371 ! 1138 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432 ! 1138 V 51 w(catc)m(h)p 747 1138 V 48 w(sigwinc)m(h)390 ! 1248 y Ft(If)30 b(this)f(v)-5 b(ariable)29 b(is)h(non-zero,)h(Readline) ! e(will)f(install)g(a)j(signal)e(handler)f(for)i Fs(SIGWINCH)p ! Ft(.)390 1384 y(The)g(default)f(v)-5 b(alue)30 b(of)h ! Fs(rl_catch_sigwinch)25 b Ft(is)30 b(1.)275 1571 y(If)g(an)h ! (application)e(do)s(es)i(not)g(wish)e(to)j(ha)m(v)m(e)g(Readline)e ! (catc)m(h)i(an)m(y)f(signals,)f(or)h(to)h(handle)d(signals)150 ! 1681 y(other)39 b(than)f(those)h(Readline)f(catc)m(hes)i(\()p ! Fs(SIGHUP)p Ft(,)g(for)e(example\),)j(Readline)c(pro)m(vides)h(con)m(v) ! m(enience)150 1791 y(functions)29 b(to)i(do)f(the)h(necessary)g ! (terminal)e(and)g(in)m(ternal)g(state)j(clean)m(up)e(up)s(on)f(receipt) ! h(of)h(a)f(signal.)3350 1978 y([F)-8 b(unction])-3600 ! b Fg(void)39 b Ff(rl)p 484 1978 V 51 w(clean)m(up)p 916 ! 1978 V 48 w(after)p 1200 1978 V 49 w(signal)45 b Fe(\()p ! Fs(void)p Fe(\))390 2088 y Ft(This)32 b(function)h(will)e(reset)j(the)g ! (state)i(of)e(the)g(terminal)e(to)j(what)f(it)f(w)m(as)h(b)s(efore)g ! Fs(readline\(\))390 2197 y Ft(w)m(as)c(called,)f(and)f(remo)m(v)m(e)j ! (the)f(Readline)e(signal)g(handlers)f(for)i(all)f(signals,)h(dep)s ! (ending)e(on)i(the)390 2307 y(v)-5 b(alues)30 b(of)g ! Fs(rl_catch_signals)c Ft(and)k Fs(rl_catch_sigwinch)p ! Ft(.)3350 2494 y([F)-8 b(unction])-3600 b Fg(void)39 ! b Ff(rl)p 484 2494 V 51 w(free)p 723 2494 V 49 w(line)p ! 953 2494 V 50 w(state)44 b Fe(\()p Fs(void)p Fe(\))390 ! 2604 y Ft(This)37 b(will)g(free)i(an)m(y)h(partial)e(state)i(asso)s ! (ciated)g(with)e(the)h(curren)m(t)g(input)e(line)h(\(undo)g(infor-)390 ! 2713 y(mation,)45 b(an)m(y)e(partial)f(history)f(en)m(try)-8 ! b(,)47 b(an)m(y)42 b(partially-en)m(tered)g(k)m(eyb)s(oard)g(macro,)47 ! b(and)42 b(an)m(y)390 2823 y(partially-en)m(tered)47 ! b(n)m(umeric)f(argumen)m(t\).)94 b(This)46 b(should)g(b)s(e)h(called)g ! (b)s(efore)g Fs(rl_cleanup_)390 2932 y(after_signal\(\))p ! Ft(.)74 b(The)42 b(Readline)f(signal)g(handler)g(for)i ! Fs(SIGINT)e Ft(calls)g(this)h(to)h(ab)s(ort)g(the)390 ! 3042 y(curren)m(t)30 b(input)f(line.)3350 3229 y([F)-8 ! b(unction])-3600 b Fg(void)39 b Ff(rl)p 484 3229 V 51 ! w(reset)p 778 3229 V 49 w(after)p 1063 3229 V 50 w(signal)44 ! b Fe(\()p Fs(void)p Fe(\))390 3339 y Ft(This)27 b(will)e(reinitialize)h ! (the)j(terminal)e(and)h(reinstall)e(an)m(y)j(Readline)e(signal)g ! (handlers,)g(dep)s(end-)390 3449 y(ing)j(on)g(the)g(v)-5 ! b(alues)30 b(of)h Fs(rl_catch_signals)26 b Ft(and)j Fs ! (rl_catch_sigwinch)p Ft(.)275 3636 y(If)38 b(an)i(application)d(do)s ! (es)i(not)h(wish)e(Readline)g(to)i(catc)m(h)h Fs(SIGWINCH)p ! Ft(,)e(it)g(ma)m(y)h(call)f Fs(rl_resize_)150 3746 y(terminal\(\))24 ! b Ft(or)j Fs(rl_set_screen_size\(\))22 b Ft(to)28 b(force)g(Readline)d ! (to)j(up)s(date)f(its)f(idea)h(of)g(the)g(terminal)150 ! 3855 y(size)j(when)g(a)g Fs(SIGWINCH)e Ft(is)i(receiv)m(ed.)3350 ! 4043 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p ! 484 4043 V 51 w(resize)p 816 4043 V 49 w(terminal)45 ! b Fe(\()p Fs(void)p Fe(\))390 4152 y Ft(Up)s(date)30 ! b(Readline's)f(in)m(ternal)g(screen)i(size)f(b)m(y)g(reading)g(v)-5 ! b(alues)30 b(from)g(the)g(k)m(ernel.)3350 4339 y([F)-8 ! b(unction])-3600 b Fg(void)39 b Ff(rl)p 484 4339 V 51 ! w(set)p 678 4339 V 49 w(screen)p 1040 4339 V 50 w(size)45 ! b Fe(\()p Fs(int)30 b(rows,)f(int)g(cols)p Fe(\))390 ! 4449 y Ft(Set)i(Readline's)e(idea)h(of)g(the)h(terminal)e(size)h(to)h ! Fi(ro)m(ws)j Ft(ro)m(ws)c(and)g Fi(cols)k Ft(columns.)275 ! 4636 y(If)e(an)i(application)d(do)s(es)i(not)h(w)m(an)m(t)g(to)g ! (install)d(a)j Fs(SIGWINCH)d Ft(handler,)i(but)f(is)h(still)e(in)m ! (terested)i(in)150 4746 y(the)e(screen)f(dimensions,)e(Readline's)h ! (idea)h(of)h(the)f(screen)h(size)f(ma)m(y)h(b)s(e)f(queried.)3350 ! 4933 y([F)-8 b(unction])-3600 b Fg(void)39 b Ff(rl)p ! 484 4933 V 51 w(get)p 690 4933 V 50 w(screen)p 1053 4933 ! V 49 w(size)45 b Fe(\()p Fs(int)30 b(*rows,)e(int)i(*cols)p ! Fe(\))390 5043 y Ft(Return)f(Readline's)g(idea)h(of)g(the)g(terminal's) ! f(size)h(in)f(the)h(v)-5 b(ariables)29 b(p)s(oin)m(ted)g(to)h(b)m(y)g ! (the)h(argu-)390 5153 y(men)m(ts.)275 5340 y(The)e(follo)m(wing)g ! (functions)g(install)f(and)i(remo)m(v)m(e)i(Readline's)d(signal)g ! (handlers.)p eop ! %%Page: 41 45 ! 41 44 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(41)3350 299 y([F)-8 b(unction])-3600 ! b Fg(int)39 b Ff(rl)p 432 299 35 5 v 51 w(set)p 626 299 ! V 49 w(signals)45 b Fe(\()p Fs(void)p Fe(\))390 408 y ! Ft(Install)34 b(Readline's)f(signal)h(handler)f(for)i ! Fs(SIGINT)p Ft(,)g Fs(SIGQUIT)p Ft(,)g Fs(SIGTERM)p Ft(,)f ! Fs(SIGALRM)p Ft(,)h Fs(SIGTSTP)p Ft(,)390 518 y Fs(SIGTTIN)p ! Ft(,)23 b Fs(SIGTTOU)p Ft(,)g(and)f Fs(SIGWINCH)p Ft(,)h(dep)s(ending)e ! (on)i(the)g(v)-5 b(alues)22 b(of)i Fs(rl_catch_signals)19 ! b Ft(and)390 628 y Fs(rl_catch_sigwinch)p Ft(.)3350 820 ! y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 820 ! V 51 w(clear)p 722 820 V 49 w(signals)45 b Fe(\()p Fs(void)p ! Fe(\))390 929 y Ft(Remo)m(v)m(e)32 b(all)d(of)i(the)g(Readline)e ! (signal)g(handlers)f(installed)g(b)m(y)i Fs(rl_set_signals\(\))p ! Ft(.)150 1196 y Fr(2.6)68 b(Custom)45 b(Completers)275 ! 1444 y Ft(T)m(ypically)-8 b(,)32 b(a)i(program)f(that)h(reads)f ! (commands)f(from)h(the)g(user)g(has)g(a)g(w)m(a)m(y)i(of)e(disam)m ! (biguating)150 1554 y(commands)i(and)g(data.)56 b(If)35 ! b(y)m(our)h(program)f(is)f(one)i(of)g(these,)h(then)e(it)g(can)h(pro)m ! (vide)e(completion)h(for)150 1663 y(commands,)29 b(data,)i(or)e(b)s ! (oth.)39 b(The)29 b(follo)m(wing)f(sections)h(describ)s(e)e(ho)m(w)j(y) ! m(our)f(program)g(and)f(Readline)150 1773 y(co)s(op)s(erate)j(to)h(pro) ! m(vide)d(this)g(service.)150 2004 y Fh(2.6.1)63 b(Ho)m(w)40 ! b(Completing)h(W)-10 b(orks)275 2252 y Ft(In)33 b(order)h(to)h ! (complete)g(some)f(text,)j(the)d(full)e(list)h(of)h(p)s(ossible)e ! (completions)i(m)m(ust)g(b)s(e)f(a)m(v)-5 b(ailable.)150 ! 2362 y(That)34 b(is,)g(it)g(is)f(not)h(p)s(ossible)e(to)i(accurately)h ! (expand)e(a)i(partial)e(w)m(ord)g(without)g(kno)m(wing)h(all)f(of)h ! (the)150 2472 y(p)s(ossible)e(w)m(ords)j(whic)m(h)f(mak)m(e)i(sense)e ! (in)g(that)i(con)m(text.)56 b(The)34 b(Readline)g(library)f(pro)m ! (vides)g(the)j(user)150 2581 y(in)m(terface)e(to)g(completion,)f(and)g ! (t)m(w)m(o)i(of)e(the)g(most)h(common)g(completion)e(functions:)45 ! b(\014lename)33 b(and)150 2691 y(username.)k(F)-8 b(or)23 ! b(completing)e(other)g(t)m(yp)s(es)h(of)g(text,)j(y)m(ou)d(m)m(ust)f ! (write)g(y)m(our)g(o)m(wn)h(completion)f(function.)150 ! 2800 y(This)29 b(section)h(describ)s(es)f(exactly)i(what)f(suc)m(h)g ! (functions)f(m)m(ust)h(do,)h(and)f(pro)m(vides)f(an)h(example.)275 ! 2939 y(There)f(are)i(three)g(ma)5 b(jor)30 b(functions)f(used)h(to)h(p) ! s(erform)e(completion:)199 3077 y(1.)61 b(The)43 b(user-in)m(terface)g ! (function)f Fs(rl_complete\(\))p Ft(.)76 b(This)42 b(function)g(is)g ! (called)h(with)f(the)i(same)330 3186 y(argumen)m(ts)36 ! b(as)g(other)g(bindable)d(Readline)h(functions:)50 b ! Fi(coun)m(t)38 b Ft(and)d Fi(in)m(v)m(oking)p 3109 3186 ! 28 4 v 39 w(k)m(ey)p Ft(.)57 b(It)36 b(isolates)330 3296 ! y(the)i(w)m(ord)f(to)h(b)s(e)f(completed)h(and)e(calls)h ! Fs(rl_completion_matches\(\))31 b Ft(to)39 b(generate)g(a)f(list)e(of) ! 330 3406 y(p)s(ossible)29 b(completions.)42 b(It)31 b(then)g(either)f ! (lists)g(the)h(p)s(ossible)e(completions,)h(inserts)g(the)h(p)s ! (ossible)330 3515 y(completions,)48 b(or)d(actually)g(p)s(erforms)f ! (the)h(completion,)j(dep)s(ending)43 b(on)i(whic)m(h)f(b)s(eha)m(vior)g ! (is)330 3625 y(desired.)199 3761 y(2.)61 b(The)33 b(in)m(ternal)f ! (function)h Fs(rl_completion_matches\(\))27 b Ft(uses)33 ! b(an)g(application-supplied)c Fi(gener-)330 3871 y(ator)44 ! b Ft(function)36 b(to)i(generate)g(the)f(list)f(of)h(p)s(ossible)d ! (matc)m(hes,)40 b(and)d(then)f(returns)g(the)h(arra)m(y)h(of)330 ! 3980 y(these)h(matc)m(hes.)68 b(The)39 b(caller)f(should)f(place)i(the) ! g(address)f(of)h(its)f(generator)j(function)c(in)h Fs(rl_)330 ! 4090 y(completion_entry_functio)o(n)p Ft(.)199 4226 y(3.)61 ! b(The)22 b(generator)i(function)e(is)g(called)g(rep)s(eatedly)g(from)h ! Fs(rl_completion_matches\(\))o Ft(,)c(returning)330 4336 ! y(a)33 b(string)f(eac)m(h)i(time.)48 b(The)32 b(argumen)m(ts)h(to)h ! (the)f(generator)h(function)d(are)i Fi(text)j Ft(and)c ! Fi(state)p Ft(.)50 b Fi(text)330 4446 y Ft(is)31 b(the)h(partial)f(w)m ! (ord)h(to)h(b)s(e)e(completed.)46 b Fi(state)38 b Ft(is)31 ! b(zero)i(the)f(\014rst)g(time)f(the)i(function)d(is)h(called,)330 ! 4555 y(allo)m(wing)43 b(the)h(generator)h(to)f(p)s(erform)f(an)m(y)h ! (necessary)g(initialization,)h(and)e(a)h(p)s(ositiv)m(e)f(non-)330 ! 4665 y(zero)30 b(in)m(teger)g(for)e(eac)m(h)j(subsequen)m(t)d(call.)40 ! b(The)29 b(generator)h(function)e(returns)g Fs(\(char)h(*\)NULL)e ! Ft(to)330 4774 y(inform)36 b Fs(rl_completion_matches\(\))c ! Ft(that)39 b(there)f(are)g(no)g(more)g(p)s(ossibilities)c(left.)64 ! b(Usually)330 4884 y(the)39 b(generator)h(function)d(computes)i(the)g ! (list)e(of)i(p)s(ossible)d(completions)i(when)g Fi(state)45 ! b Ft(is)38 b(zero,)330 4994 y(and)25 b(returns)f(them)i(one)f(at)i(a)f ! (time)f(on)g(subsequen)m(t)g(calls.)38 b(Eac)m(h)26 b(string)f(the)h ! (generator)g(function)330 5103 y(returns)31 b(as)h(a)g(matc)m(h)h(m)m ! (ust)f(b)s(e)f(allo)s(cated)h(with)e Fs(malloc\(\))p ! Ft(;)h(Readline)f(frees)i(the)g(strings)f(when)330 5213 ! y(it)i(has)h(\014nished)d(with)i(them.)51 b(Suc)m(h)33 ! b(a)h(generator)h(function)e(is)g(referred)g(to)h(as)h(an)e ! Fi(application-)330 5322 y(sp)s(eci\014c)c(completion)h(function)p ! Ft(.)p eop ! %%Page: 42 46 ! 42 45 bop 150 -116 a Ft(42)2600 b(GNU)31 b(Readline)e(Library)3350 ! 299 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 ! 299 35 5 v 51 w(complete)44 b Fe(\()p Fs(int)30 b(ignore,)e(int)h ! (invoking_key)p Fe(\))390 408 y Ft(Complete)h(the)h(w)m(ord)g(at)g(or)g ! (b)s(efore)f(p)s(oin)m(t.)40 b(Y)-8 b(ou)32 b(ha)m(v)m(e)g(supplied)27 ! b(the)k(function)e(that)i(do)s(es)g(the)390 518 y(initial)38 ! b(simple)h(matc)m(hing)j(selection)e(algorithm)h(\(see)h ! Fs(rl_completion_matches\(\))o Ft(\).)67 b(The)390 628 ! y(default)30 b(is)f(to)i(do)f(\014lename)g(completion.)3371 ! 811 y([V)-8 b(ariable])-3600 b Fg(rl_compentry_func_t)44 ! b(*)38 b Ff(rl)p 1359 811 V 51 w(completion)p 1960 811 ! V 49 w(en)m(try)p 2275 811 V 50 w(function)390 921 y ! Ft(This)g(is)h(a)h(p)s(oin)m(ter)f(to)i(the)f(generator)h(function)e ! (for)g Fs(rl_completion_matches\(\))p Ft(.)63 b(If)40 ! b(the)390 1031 y(v)-5 b(alue)23 b(of)h Fs(rl_completion_entry_funct)o ! (ion)17 b Ft(is)23 b Fs(NULL)g Ft(then)g(the)h(default)f(\014lename)g ! (generator)390 1140 y(function,)48 b Fs(rl_filename_completion_)o(fun)o ! (ctio)o(n\(\))p Ft(,)42 b(is)i(used.)84 b(An)44 b Fi(application-sp)s ! (eci\014c)390 1250 y(completion)20 b(function)g Ft(is)g(a)i(function)d ! (whose)i(address)f(is)g(assigned)h(to)g Fs(rl_completion_entry_)390 ! 1359 y(function)28 b Ft(and)i(whose)g(return)f(v)-5 b(alues)30 ! b(are)h(used)e(to)j(generate)f(p)s(ossible)d(completions.)150 ! 1583 y Fh(2.6.2)63 b(Completion)40 b(F)-10 b(unctions)275 ! 1827 y Ft(Here)30 b(is)g(the)g(complete)h(list)e(of)i(callable)e ! (completion)h(functions)f(presen)m(t)h(in)f(Readline.)3350 ! 2010 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 ! 2010 V 51 w(complete)p 933 2010 V 49 w(in)m(ternal)k ! Fe(\()p Fs(int)30 b(what_to_do)p Fe(\))390 2120 y Ft(Complete)36 ! b(the)h(w)m(ord)f(at)i(or)e(b)s(efore)g(p)s(oin)m(t.)59 ! b Fi(what)p 2208 2120 28 4 v 40 w(to)p 2328 2120 V 41 ! w(do)41 b Ft(sa)m(ys)c(what)f(to)i(do)e(with)f(the)i(com-)390 ! 2230 y(pletion.)42 b(A)31 b(v)-5 b(alue)31 b(of)g(`)p ! Fs(?)p Ft(')g(means)h(list)d(the)j(p)s(ossible)c(completions.)43 ! b(`)p Fs(TAB)p Ft(')31 b(means)g(do)g(standard)390 2339 ! y(completion.)42 b(`)p Fs(*)p Ft(')32 b(means)f(insert)f(all)g(of)h ! (the)g(p)s(ossible)e(completions.)42 b(`)p Fs(!)p Ft(')32 ! b(means)f(to)h(displa)m(y)d(all)390 2449 y(of)35 b(the)f(p)s(ossible)e ! (completions,)j(if)e(there)i(is)e(more)h(than)h(one,)g(as)g(w)m(ell)e ! (as)i(p)s(erforming)d(partial)390 2558 y(completion.)39 ! b(`)p Fs(@)p Ft(')27 b(is)g(similar)d(to)k(`)p Fs(!)p ! Ft(',)h(but)d(p)s(ossible)f(completions)i(are)g(not)h(listed)e(if)g ! (the)h(p)s(ossible)390 2668 y(completions)j(share)g(a)g(common)h ! (pre\014x.)3350 2852 y([F)-8 b(unction])-3600 b Fg(int)39 ! b Ff(rl)p 432 2852 35 5 v 51 w(complete)44 b Fe(\()p ! Fs(int)30 b(ignore,)e(int)h(invoking_key)p Fe(\))390 ! 2961 y Ft(Complete)41 b(the)g(w)m(ord)g(at)h(or)f(b)s(efore)g(p)s(oin)m ! (t.)72 b(Y)-8 b(ou)41 b(ha)m(v)m(e)i(supplied)37 b(the)42 ! b(function)e(that)h(do)s(es)390 3071 y(the)33 b(initial)d(simple)h ! (matc)m(hing)i(selection)g(algorithm)f(\(see)i Fs ! (rl_completion_matches\(\))27 b Ft(and)390 3180 y Fs ! (rl_completion_entry_func)o(tion)o Ft(\).)52 b(The)35 ! b(default)g(is)g(to)i(do)e(\014lename)g(completion.)57 ! b(This)390 3290 y(calls)30 b Fs(rl_complete_internal\(\))24 ! b Ft(with)29 b(an)h(argumen)m(t)h(dep)s(ending)d(on)i ! Fi(in)m(v)m(oking)p 3316 3290 28 4 v 39 w(k)m(ey)p Ft(.)3350 ! 3474 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 ! 3474 35 5 v 51 w(p)s(ossible)p 878 3474 V 49 w(completions)45 ! b Fe(\()p Fs(int)30 b(count,)e(int)i(invoking_key)p Fe(\))390 ! 3583 y Ft(List)40 b(the)g(p)s(ossible)e(completions.)71 ! b(See)40 b(description)f(of)i Fs(rl_complete)27 b(\(\))p ! Ft(.)70 b(This)39 b(calls)h Fs(rl_)390 3693 y(complete_internal\(\))25 ! b Ft(with)k(an)h(argumen)m(t)h(of)g(`)p Fs(?)p Ft('.)3350 ! 3877 y([F)-8 b(unction])-3600 b Fg(int)39 b Ff(rl)p 432 ! 3877 V 51 w(insert)p 769 3877 V 49 w(completions)44 b ! Fe(\()p Fs(int)30 b(count,)f(int)g(invoking_key)p Fe(\))390 ! 3986 y Ft(Insert)k(the)h(list)e(of)i(p)s(ossible)d(completions)i(in)m ! (to)g(the)h(line,)f(deleting)g(the)h(partially-completed)390 ! 4096 y(w)m(ord.)44 b(See)32 b(description)e(of)i Fs(rl_complete\(\))p ! Ft(.)41 b(This)30 b(calls)h Fs(rl_complete_internal\(\))25 ! b Ft(with)390 4205 y(an)30 b(argumen)m(t)h(of)g(`)p Fs(*)p ! Ft('.)3350 4389 y([F)-8 b(unction])-3600 b Fg(int)39 ! b Ff(rl)p 432 4389 V 51 w(completion)p 1033 4389 V 49 ! w(mo)s(de)45 b Fe(\()p Fs(rl_command_func_t)26 b(*cfunc)p ! Fe(\))390 4499 y Ft(Returns)50 b(the)g(apppriate)g(v)-5 ! b(alue)49 b(to)j(pass)e(to)h Fs(rl_complete_internal\(\))44 ! b Ft(dep)s(ending)k(on)390 4608 y(whether)40 b Fi(cfunc)46 ! b Ft(w)m(as)41 b(called)f(t)m(wice)h(in)f(succession)g(and)g(the)h(v)-5 ! b(alues)40 b(of)h(the)g Fs(show-all-if-)390 4718 y(ambiguous)25 ! b Ft(and)i Fs(show-all-if-unmodified)21 b Ft(v)-5 b(ariables.)39 ! b(Application-sp)s(eci\014c)25 b(completion)390 4827 ! y(functions)k(ma)m(y)i(use)f(this)f(function)g(to)i(presen)m(t)g(the)f ! (same)h(in)m(terface)g(as)g Fs(rl_complete\(\))p Ft(.)3350 ! 5011 y([F)-8 b(unction])-3600 b Fg(char)39 b(**)g Ff(rl)p ! 627 5011 V 51 w(completion)p 1228 5011 V 49 w(matc)m(hes)44 ! b Fe(\()p Fs(const)30 b(char)f(*text,)565 5121 y(rl_compentry_func_t)c ! (*entry_func)p Fe(\))390 5230 y Ft(Returns)37 b(an)h(arra)m(y)g(of)g ! (strings)f(whic)m(h)f(is)h(a)h(list)f(of)h(completions)f(for)g ! Fi(text)p Ft(.)64 b(If)38 b(there)g(are)g(no)390 5340 ! y(completions,)d(returns)e Fs(NULL)p Ft(.)52 b(The)34 ! b(\014rst)f(en)m(try)i(in)e(the)i(returned)e(arra)m(y)i(is)f(the)g ! (substitution)p eop ! %%Page: 43 47 ! 43 46 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(43)390 299 y(for)26 b ! Fi(text)p Ft(.)40 b(The)26 b(remaining)f(en)m(tries)h(are)h(the)f(p)s ! (ossible)e(completions.)38 b(The)26 b(arra)m(y)h(is)e(terminated)390 ! 408 y(with)k(a)i Fs(NULL)e Ft(p)s(oin)m(ter.)390 544 ! y Fi(en)m(try)p 603 544 28 4 v 40 w(func)44 b Ft(is)39 ! b(a)h(function)e(of)i(t)m(w)m(o)g(args,)j(and)38 b(returns)h(a)g ! Fs(char)30 b(*)p Ft(.)67 b(The)39 b(\014rst)g(argumen)m(t)h(is)390 ! 653 y Fi(text)p Ft(.)66 b(The)39 b(second)f(is)g(a)h(state)h(argumen)m ! (t;)j(it)38 b(is)g(zero)h(on)g(the)g(\014rst)f(call,)i(and)e(non-zero)h ! (on)390 763 y(subsequen)m(t)33 b(calls.)50 b Fi(en)m(try)p ! 1320 763 V 41 w(func)38 b Ft(returns)33 b(a)h Fs(NULL)f ! Ft(p)s(oin)m(ter)f(to)j(the)f(caller)f(when)g(there)h(are)g(no)390 ! 872 y(more)d(matc)m(hes.)3350 1058 y([F)-8 b(unction])-3600 ! b Fg(char)39 b(*)g Ff(rl)p 575 1058 35 5 v 50 w(\014lename)p ! 1042 1058 V 49 w(completion)p 1641 1058 V 49 w(function)44 ! b Fe(\()p Fs(const)30 b(char)f(*text,)g(int)565 1168 ! y(state)p Fe(\))390 1277 y Ft(A)d(generator)h(function)d(for)h ! (\014lename)g(completion)g(in)f(the)i(general)g(case.)40 ! b Fi(text)28 b Ft(is)d(a)h(partial)f(\014le-)390 1387 ! y(name.)38 b(The)21 b(Bash)g(source)h(is)f(a)g(useful)f(reference)i ! (for)f(writing)f(application-sp)s(eci\014c)f(completion)390 ! 1497 y(functions)29 b(\(the)i(Bash)f(completion)g(functions)f(call)h ! (this)f(and)h(other)g(Readline)f(functions\).)3350 1682 ! y([F)-8 b(unction])-3600 b Fg(char)39 b(*)g Ff(rl)p 575 ! 1682 V 50 w(username)p 1102 1682 V 50 w(completion)p ! 1702 1682 V 49 w(function)44 b Fe(\()p Fs(const)29 b(char)g(*text,)g ! (int)565 1792 y(state)p Fe(\))390 1901 y Ft(A)g(completion)e(generator) ! j(for)e(usernames.)40 b Fi(text)31 b Ft(con)m(tains)e(a)g(partial)e ! (username)h(preceded)g(b)m(y)390 2011 y(a)j(random)f(c)m(haracter)i ! (\(usually)c(`)p Fs(~)p Ft('\).)42 b(As)31 b(with)e(all)g(completion)h ! (generators,)i Fi(state)37 b Ft(is)30 b(zero)h(on)390 ! 2121 y(the)g(\014rst)e(call)h(and)g(non-zero)h(for)f(subsequen)m(t)f ! (calls.)150 2346 y Fh(2.6.3)63 b(Completion)40 b(V)-10 ! b(ariables)3371 2591 y Ft([V)i(ariable])-3600 b Fg(rl_compentry_func_t) ! 44 b(*)38 b Ff(rl)p 1359 2591 V 51 w(completion)p 1960 ! 2591 V 49 w(en)m(try)p 2275 2591 V 50 w(function)390 ! 2701 y Ft(A)c(p)s(oin)m(ter)e(to)i(the)g(generator)h(function)d(for)h ! Fs(rl_completion_matches\(\))p Ft(.)44 b Fs(NULL)32 b ! Ft(means)h(to)390 2810 y(use)d Fs(rl_filename_completion_fu)o(nct)o ! (ion\()o(\))p Ft(,)25 b(the)30 b(default)g(\014lename)f(completer.)3371 ! 2996 y([V)-8 b(ariable])-3600 b Fg(rl_completion_func_t)44 ! b(*)39 b Ff(rl)p 1412 2996 V 50 w(attempted)p 1982 2996 ! V 48 w(completion)p 2580 2996 V 49 w(function)390 3105 ! y Ft(A)c(p)s(oin)m(ter)f(to)h(an)g(alternativ)m(e)g(function)e(to)j ! (create)g(matc)m(hes.)55 b(The)34 b(function)g(is)f(called)h(with)390 ! 3215 y Fi(text)p Ft(,)26 b Fi(start)p Ft(,)f(and)d Fi(end)p ! Ft(.)38 b Fi(start)25 b Ft(and)e Fi(end)j Ft(are)d(indices)e(in)h ! Fs(rl_line_buffer)d Ft(de\014ning)i(the)i(b)s(ound-)390 ! 3325 y(aries)i(of)i Fi(text)p Ft(,)h(whic)m(h)c(is)h(a)i(c)m(haracter)g ! (string.)38 b(If)26 b(this)f(function)f(exists)i(and)f(returns)g ! Fs(NULL)p Ft(,)h(or)g(if)390 3434 y(this)21 b(v)-5 b(ariable)20 ! b(is)h(set)i(to)f Fs(NULL)p Ft(,)h(then)f Fs(rl_complete\(\))c ! Ft(will)h(call)i(the)h(v)-5 b(alue)22 b(of)g Fs(rl_completion_)390 ! 3544 y(entry_function)i Ft(to)30 b(generate)f(matc)m(hes,)i(otherwise)c ! (the)i(arra)m(y)g(of)f(strings)g(returned)f(will)f(b)s(e)390 ! 3653 y(used.)37 b(If)22 b(this)f(function)g(sets)i(the)g ! Fs(rl_attempted_completion)o(_ove)o(r)16 b Ft(v)-5 b(ariable)22 ! b(to)h(a)f(non-zero)390 3763 y(v)-5 b(alue,)34 b(Readline)f(will)e(not) ! j(p)s(erform)f(its)g(default)g(completion)g(ev)m(en)i(if)e(this)g ! (function)f(returns)390 3873 y(no)e(matc)m(hes.)3371 ! 4058 y([V)-8 b(ariable])-3600 b Fg(rl_quote_func_t)43 ! b(*)38 b Ff(rl)p 1150 4058 V 51 w(\014lename)p 1618 4058 ! V 48 w(quoting)p 2045 4058 V 51 w(function)390 4168 y ! Ft(A)33 b(p)s(oin)m(ter)e(to)i(a)g(function)f(that)h(will)d(quote)j(a)g ! (\014lename)e(in)h(an)g(application-sp)s(eci\014c)e(fashion.)390 ! 4278 y(This)37 b(is)i(called)f(if)g(\014lename)h(completion)f(is)g(b)s ! (eing)g(attempted)j(and)d(one)i(of)f(the)g(c)m(haracters)390 ! 4387 y(in)32 b Fs(rl_filename_quote_charac)o(ter)o(s)27 ! b Ft(app)s(ears)33 b(in)f(a)h(completed)g(\014lename.)49 ! b(The)32 b(function)390 4497 y(is)k(called)g(with)f Fi(text)p ! Ft(,)40 b Fi(matc)m(h)p 1438 4497 28 4 v 41 w(t)m(yp)s(e)p ! Ft(,)f(and)d Fi(quote)p 2119 4497 V 41 w(p)s(oin)m(ter)p ! Ft(.)59 b(The)36 b Fi(text)k Ft(is)c(the)h(\014lename)f(to)i(b)s(e)390 ! 4606 y(quoted.)76 b(The)42 b Fi(matc)m(h)p 1210 4606 ! V 41 w(t)m(yp)s(e)48 b Ft(is)41 b(either)h Fs(SINGLE_MATCH)p ! Ft(,)g(if)f(there)h(is)g(only)f(one)i(completion)390 ! 4716 y(matc)m(h,)33 b(or)e Fs(MULT_MATCH)p Ft(.)41 b(Some)31 ! b(functions)f(use)h(this)g(to)h(decide)e(whether)h(or)h(not)f(to)h ! (insert)f(a)390 4825 y(closing)20 b(quote)h(c)m(haracter.)40 ! b(The)20 b Fi(quote)p 1751 4825 V 41 w(p)s(oin)m(ter)26 ! b Ft(is)20 b(a)h(p)s(oin)m(ter)f(to)h(an)m(y)h(op)s(ening)d(quote)i(c)m ! (haracter)390 4935 y(the)31 b(user)e(t)m(yp)s(ed.)41 ! b(Some)30 b(functions)f(c)m(ho)s(ose)i(to)g(reset)g(this)f(c)m ! (haracter.)3371 5121 y([V)-8 b(ariable])-3600 b Fg(rl_dequote_func_t)43 ! b(*)c Ff(rl)p 1255 5121 35 5 v 50 w(\014lename)p 1722 ! 5121 V 49 w(dequoting)p 2267 5121 V 49 w(function)390 ! 5230 y Ft(A)30 b(p)s(oin)m(ter)e(to)j(a)f(function)e(that)i(will)d ! (remo)m(v)m(e)k(application-sp)s(eci\014c)c(quoting)i(c)m(haracters)i ! (from)390 5340 y(a)i(\014lename)f(b)s(efore)g(completion)f(is)h ! (attempted,)i(so)f(those)g(c)m(haracters)h(do)e(not)h(in)m(terfere)f ! (with)p eop ! %%Page: 44 48 ! 44 47 bop 150 -116 a Ft(44)2600 b(GNU)31 b(Readline)e(Library)390 ! 299 y(matc)m(hing)38 b(the)g(text)i(against)e(names)g(in)f(the)h ! (\014lesystem.)63 b(It)38 b(is)f(called)h(with)e Fi(text)p ! Ft(,)42 b(the)c(text)390 408 y(of)k(the)h(w)m(ord)f(to)g(b)s(e)g ! (dequoted,)j(and)d Fi(quote)p 2014 408 28 4 v 41 w(c)m(har)p ! Ft(,)j(whic)m(h)c(is)h(the)g(quoting)g(c)m(haracter)h(that)390 ! 518 y(delimits)30 b(the)i(\014lename)f(\(usually)g(`)p ! Fs(')p Ft(')h(or)g(`)p Fs(")p Ft('\).)46 b(If)32 b Fi(quote)p ! 2368 518 V 41 w(c)m(har)39 b Ft(is)31 b(zero,)j(the)e(\014lename)f(w)m ! (as)i(not)390 628 y(in)c(an)h(em)m(b)s(edded)g(string.)3371 ! 847 y([V)-8 b(ariable])-3600 b Fg(rl_linebuf_func_t)43 ! b(*)c Ff(rl)p 1255 847 35 5 v 50 w(c)m(har)p 1520 847 ! V 50 w(is)p 1647 847 V 50 w(quoted)p 2040 847 V 50 w(p)390 ! 956 y Ft(A)e(p)s(oin)m(ter)f(to)h(a)g(function)f(to)h(call)f(that)i ! (determines)e(whether)g(or)h(not)g(a)g(sp)s(eci\014c)e(c)m(haracter)390 ! 1066 y(in)e(the)i(line)d(bu\013er)i(is)f(quoted,)j(according)f(to)g ! (whatev)m(er)g(quoting)f(mec)m(hanism)g(the)g(program)390 ! 1176 y(calling)23 b(Readline)h(uses.)38 b(The)24 b(function)g(is)g ! (called)g(with)f(t)m(w)m(o)j(argumen)m(ts:)39 b Fi(text)p ! Ft(,)27 b(the)e(text)h(of)f(the)390 1285 y(line,)k(and)i ! Fi(index)p Ft(,)e(the)i(index)e(of)i(the)g(c)m(haracter)i(in)c(the)i ! (line.)40 b(It)31 b(is)f(used)g(to)h(decide)f(whether)h(a)390 ! 1395 y(c)m(haracter)h(found)d(in)f Fs(rl_completer_word_break_ch)o(ara) ! o(cter)o(s)c Ft(should)k(b)s(e)i(used)f(to)i(break)390 ! 1504 y(w)m(ords)f(for)g(the)h(completer.)3371 1724 y([V)-8 ! b(ariable])-3600 b Fg(rl_compignore_func_t)44 b(*)39 ! b Ff(rl)p 1412 1724 V 50 w(ignore)p 1772 1724 V 50 w(some)p ! 2072 1724 V 51 w(completions)p 2718 1724 V 50 w(function)390 ! 1833 y Ft(This)d(function,)i(if)f(de\014ned,)h(is)f(called)g(b)m(y)g ! (the)h(completer)g(when)f(real)g(\014lename)g(completion)390 ! 1943 y(is)c(done,)i(after)f(all)f(the)i(matc)m(hing)f(names)f(ha)m(v)m ! (e)j(b)s(een)d(generated.)53 b(It)34 b(is)f(passed)g(a)i ! Fs(NULL)d Ft(ter-)390 2052 y(minated)e(arra)m(y)h(of)g(matc)m(hes.)43 ! b(The)31 b(\014rst)f(elemen)m(t)h(\()p Fs(matches[0])p ! Ft(\))e(is)g(the)i(maximal)f(substring)390 2162 y(common)f(to)g(all)f ! (matc)m(hes.)41 b(This)27 b(function)h(can)h(re-arrange)g(the)g(list)f ! (of)h(matc)m(hes)g(as)g(required,)390 2271 y(but)h(eac)m(h)h(elemen)m ! (t)g(deleted)f(from)g(the)h(arra)m(y)g(m)m(ust)f(b)s(e)g(freed.)3371 ! 2491 y([V)-8 b(ariable])-3600 b Fg(rl_icppfunc_t)42 b(*)d ! Ff(rl)p 1046 2491 V 50 w(directory)p 1552 2491 V 50 w(completion)p ! 2152 2491 V 49 w(ho)s(ok)390 2600 y Ft(This)k(function,)48 ! b(if)d(de\014ned,)j(is)c(allo)m(w)m(ed)h(to)h(mo)s(dify)d(the)j ! (directory)f(p)s(ortion)e(of)j(\014lenames)390 2710 y(Readline)35 ! b(completes.)60 b(It)36 b(is)g(called)f(with)h(the)g(address)g(of)h(a)g ! (string)e(\(the)i(curren)m(t)f(directory)390 2819 y(name\))i(as)f(an)g ! (argumen)m(t,)i(and)e(ma)m(y)h(mo)s(dify)d(that)j(string.)59 ! b(If)37 b(the)g(string)g(is)f(replaced)g(with)390 2929 ! y(a)k(new)g(string,)h(the)f(old)f(v)-5 b(alue)40 b(should)e(b)s(e)h ! (freed.)69 b(An)m(y)40 b(mo)s(di\014ed)e(directory)h(name)h(should)390 ! 3039 y(ha)m(v)m(e)30 b(a)g(trailing)d(slash.)39 b(The)29 ! b(mo)s(di\014ed)e(v)-5 b(alue)29 b(will)d(b)s(e)j(displa)m(y)m(ed)e(as) ! j(part)f(of)g(the)g(completion,)390 3148 y(replacing)e(the)h(directory) ! g(p)s(ortion)f(of)h(the)h(pathname)f(the)g(user)g(t)m(yp)s(ed.)39 ! b(It)28 b(returns)f(an)i(in)m(teger)390 3258 y(that)34 ! b(should)d(b)s(e)h(non-zero)i(if)d(the)j(function)d(mo)s(di\014es)h ! (its)g(directory)g(argumen)m(t.)49 b(It)34 b(could)e(b)s(e)390 ! 3367 y(used)e(to)h(expand)e(sym)m(b)s(olic)g(links)f(or)j(shell)d(v)-5 ! b(ariables)29 b(in)g(pathnames.)3371 3587 y([V)-8 b(ariable])-3600 ! b Fg(rl_compdisp_func_t)44 b(*)38 b Ff(rl)p 1307 3587 ! V 51 w(completion)p 1908 3587 V 49 w(displa)m(y)p 2307 ! 3587 V 49 w(matc)m(hes)p 2762 3587 V 50 w(ho)s(ok)390 ! 3696 y Ft(If)22 b(non-zero,)i(then)e(this)f(is)g(the)h(address)f(of)h ! (a)g(function)f(to)i(call)e(when)g(completing)g(a)i(w)m(ord)e(w)m(ould) ! 390 3806 y(normally)f(displa)m(y)h(the)h(list)f(of)h(p)s(ossible)e ! (matc)m(hes.)39 b(This)20 b(function)h(is)g(called)h(in)f(lieu)f(of)i ! (Readline)390 3915 y(displa)m(ying)34 b(the)k(list.)59 ! b(It)37 b(tak)m(es)i(three)e(argumen)m(ts:)54 b(\()p ! Fs(char)30 b(**)p Fi(matc)m(hes)p Ft(,)39 b Fs(int)d ! Fi(n)m(um)p 3370 3915 28 4 v 40 w(matc)m(hes)p Ft(,)390 ! 4025 y Fs(int)26 b Fi(max)p 735 4025 V 40 w(length)p ! Ft(\))g(where)g Fi(matc)m(hes)31 b Ft(is)26 b(the)g(arra)m(y)h(of)g ! (matc)m(hing)f(strings,)h Fi(n)m(um)p 3152 4025 V 39 ! w(matc)m(hes)k Ft(is)26 b(the)390 4134 y(n)m(um)m(b)s(er)i(of)h ! (strings)f(in)g(that)h(arra)m(y)-8 b(,)31 b(and)d Fi(max)p ! 2020 4134 V 40 w(length)h Ft(is)f(the)h(length)g(of)g(the)g(longest)g ! (string)f(in)390 4244 y(that)h(arra)m(y)-8 b(.)41 b(Readline)26 ! b(pro)m(vides)h(a)i(con)m(v)m(enience)g(function,)e Fs ! (rl_display_match_list)p Ft(,)c(that)390 4354 y(tak)m(es)36 ! b(care)g(of)f(doing)f(the)h(displa)m(y)d(to)k(Readline's)d(output)i ! (stream.)54 b(That)35 b(function)e(ma)m(y)j(b)s(e)390 ! 4463 y(called)30 b(from)f(this)h(ho)s(ok.)3371 4682 y([V)-8 ! b(ariable])-3600 b Fg(const)40 b(char)f(*)g Ff(rl)p 875 ! 4682 35 5 v 50 w(basic)p 1173 4682 V 50 w(w)m(ord)p 1471 ! 4682 V 50 w(break)p 1801 4682 V 50 w(c)m(haracters)390 ! 4792 y Ft(The)44 b(basic)f(list)g(of)h(c)m(haracters)i(that)f(signal)e ! (a)h(break)g(b)s(et)m(w)m(een)h(w)m(ords)f(for)g(the)g(completer)390 ! 4902 y(routine.)60 b(The)37 b(default)f(v)-5 b(alue)36 ! b(of)i(this)e(v)-5 b(ariable)36 b(is)g(the)h(c)m(haracters)i(whic)m(h)d ! (break)h(w)m(ords)f(for)390 5011 y(completion)30 b(in)f(Bash:)41 ! b Fs(")30 b(\\t\\n\\"\\\\'`@$><=;|&{\(")p Ft(.)3371 5230 ! y([V)-8 b(ariable])-3600 b Fg(const)40 b(char)f(*)g Ff(rl)p ! 875 5230 V 50 w(basic)p 1173 5230 V 50 w(quote)p 1502 ! 5230 V 50 w(c)m(haracters)390 5340 y Ft(A)30 b(list)g(of)g(quote)h(c)m ! (haracters)h(whic)m(h)d(can)i(cause)g(a)f(w)m(ord)g(break.)p eop ! %%Page: 45 49 ! 45 48 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(45)3371 299 y([V)-8 b(ariable])-3600 ! b Fg(const)40 b(char)f(*)g Ff(rl)p 875 299 35 5 v 50 ! w(completer)p 1422 299 V 49 w(w)m(ord)p 1719 299 V 50 ! w(break)p 2049 299 V 50 w(c)m(haracters)390 408 y Ft(The)64 ! b(list)g(of)h(c)m(haracters)h(that)g(signal)e(a)h(break)g(b)s(et)m(w)m ! (een)g(w)m(ords)g(for)f Fs(rl_complete_)390 518 y(internal\(\))p ! Ft(.)38 b(The)30 b(default)f(list)g(is)h(the)g(v)-5 b(alue)30 ! b(of)h Fs(rl_basic_word_break_cha)o(ract)o(ers)p Ft(.)3371 ! 710 y([V)-8 b(ariable])-3600 b Fg(rl_cpvfunc_t)42 b(*)c ! Ff(rl)p 993 710 V 51 w(completion)p 1594 710 V 49 w(w)m(ord)p ! 1891 710 V 50 w(break)p 2221 710 V 50 w(ho)s(ok)390 819 ! y Ft(If)31 b(non-zero,)i(this)d(is)h(the)g(address)g(of)g(a)h(function) ! f(to)h(call)f(when)f(Readline)g(is)h(deciding)e(where)390 ! 929 y(to)35 b(separate)g(w)m(ords)f(for)g(w)m(ord)g(completion.)52 ! b(It)34 b(should)e(return)h(a)i(c)m(haracter)h(string)d(lik)m(e)h ! Fs(rl_)390 1039 y(completer_word_break_cha)o(ract)o(ers)26 ! b Ft(to)34 b(b)s(e)e(used)g(to)i(p)s(erform)e(the)h(curren)m(t)f ! (completion.)390 1148 y(The)24 b(function)g(ma)m(y)h(c)m(ho)s(ose)h(to) ! f(set)g Fs(rl_completer_word_break_ch)o(arac)o(ter)o(s)19 ! b Ft(itself.)37 b(If)25 b(the)390 1258 y(function)k(returns)g ! Fs(NULL)p Ft(,)h Fs(rl_completer_word_break)o(_cha)o(rac)o(ters)24 ! b Ft(is)29 b(used.)3371 1450 y([V)-8 b(ariable])-3600 ! b Fg(const)40 b(char)f(*)g Ff(rl)p 875 1450 V 50 w(completer)p ! 1422 1450 V 49 w(quote)p 1750 1450 V 50 w(c)m(haracters)390 ! 1559 y Ft(A)34 b(list)e(of)i(c)m(haracters)h(whic)m(h)d(can)i(b)s(e)g ! (used)e(to)j(quote)f(a)g(substring)e(of)i(the)f(line.)49 ! b(Completion)390 1669 y(o)s(ccurs)26 b(on)g(the)g(en)m(tire)h ! (substring,)e(and)g(within)f(the)i(substring)f Fs ! (rl_completer_word_break)o(_)390 1778 y(characters)32 ! b Ft(are)k(treated)g(as)f(an)m(y)h(other)f(c)m(haracter,)j(unless)c ! (they)h(also)g(app)s(ear)f(within)f(this)390 1888 y(list.)3371 ! 2080 y([V)-8 b(ariable])-3600 b Fg(const)40 b(char)f(*)g ! Ff(rl)p 875 2080 V 50 w(\014lename)p 1342 2080 V 49 w(quote)p ! 1670 2080 V 50 w(c)m(haracters)390 2189 y Ft(A)34 b(list)e(of)i(c)m ! (haracters)h(that)f(cause)h(a)f(\014lename)f(to)h(b)s(e)f(quoted)h(b)m ! (y)f(the)h(completer)g(when)f(they)390 2299 y(app)s(ear)d(in)f(a)i ! (completed)f(\014lename.)40 b(The)30 b(default)f(is)h(the)g(n)m(ull)f ! (string.)3371 2491 y([V)-8 b(ariable])-3600 b Fg(const)40 ! b(char)f(*)g Ff(rl)p 875 2491 V 50 w(sp)s(ecial)p 1261 ! 2491 V 49 w(pre\014xes)390 2600 y Ft(The)27 b(list)g(of)g(c)m ! (haracters)j(that)e(are)g(w)m(ord)f(break)h(c)m(haracters,)i(but)d ! (should)e(b)s(e)i(left)h(in)e Fi(text)31 b Ft(when)390 ! 2710 y(it)24 b(is)g(passed)g(to)h(the)g(completion)f(function.)37 ! b(Programs)25 b(can)g(use)f(this)g(to)h(help)e(determine)h(what)390 ! 2819 y(kind)j(of)j(completing)e(to)i(do.)41 b(F)-8 b(or)30 ! b(instance,)f(Bash)h(sets)f(this)f(v)-5 b(ariable)29 ! b(to)h Fs(")p Ft($)p Fs(@")e Ft(so)i(that)g(it)f(can)390 ! 2929 y(complete)i(shell)d(v)-5 b(ariables)29 b(and)h(hostnames.)3371 ! 3121 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432 ! 3121 V 51 w(completion)p 1033 3121 V 49 w(query)p 1366 ! 3121 V 51 w(items)390 3230 y Ft(Up)d(to)h(this)e(man)m(y)h(items)g ! (will)d(b)s(e)j(displa)m(y)m(ed)f(in)f(resp)s(onse)i(to)h(a)f(p)s ! (ossible-completions)d(call.)390 3340 y(After)c(that,)h(w)m(e)f(ask)f ! (the)h(user)f(if)f(she)i(is)e(sure)h(she)g(w)m(an)m(ts)i(to)f(see)g ! (them)g(all.)39 b(The)28 b(default)f(v)-5 b(alue)390 ! 3450 y(is)29 b(100.)3371 3641 y([V)-8 b(ariable])-3600 ! b Fg(int)39 b Ff(rl)p 432 3641 V 51 w(completion)p 1033 ! 3641 V 49 w(app)s(end)p 1450 3641 V 48 w(c)m(haracter)390 ! 3751 y Ft(When)33 b(a)h(single)d(completion)i(alternativ)m(e)h(matc)m ! (hes)g(at)g(the)f(end)g(of)g(the)h(command)f(line,)f(this)390 ! 3861 y(c)m(haracter)23 b(is)d(app)s(ended)g(to)i(the)g(inserted)e ! (completion)h(text.)39 b(The)20 b(default)h(is)g(a)g(space)h(c)m ! (haracter)390 3970 y(\(`)31 b('\).)86 b(Setting)45 b(this)f(to)i(the)g ! (n)m(ull)d(c)m(haracter)k(\(`)p Fs(\\0)p Ft('\))f(prev)m(en)m(ts)g(an)m ! (ything)f(b)s(eing)f(app)s(ended)390 4080 y(automatically)-8 ! b(.)63 b(This)36 b(can)i(b)s(e)f(c)m(hanged)h(in)f(application-sp)s ! (eci\014c)e(completion)i(functions)f(to)390 4189 y(pro)m(vide)j(the)h ! (\\most)g(sensible)e(w)m(ord)h(separator)i(c)m(haracter")h(according)d ! (to)i(an)e(application-)390 4299 y(sp)s(eci\014c)29 b(command)h(line)f ! (syn)m(tax)i(sp)s(eci\014cation.)3371 4491 y([V)-8 b(ariable])-3600 ! b Fg(int)39 b Ff(rl)p 432 4491 V 51 w(completion)p 1033 ! 4491 V 49 w(suppress)p 1509 4491 V 50 w(app)s(end)390 ! 4600 y Ft(If)33 b(non-zero,)i Fi(rl)p 950 4600 28 4 v ! 38 w(completion)p 1423 4600 V 40 w(app)s(end)p 1755 4600 ! V 38 w(c)m(haracter)42 b Ft(is)32 b(not)h(app)s(ended)f(to)i(matc)m ! (hes)g(at)g(the)g(end)390 4710 y(of)28 b(the)f(command)h(line,)f(as)g ! (describ)s(ed)f(ab)s(o)m(v)m(e.)41 b(It)27 b(is)g(set)h(to)g(0)g(b)s ! (efore)g(an)m(y)f(application-sp)s(eci\014c)390 4819 ! y(completion)j(function)f(is)g(called,)h(and)g(ma)m(y)h(only)e(b)s(e)h ! (c)m(hanged)h(within)d(suc)m(h)i(a)h(function.)3371 5011 ! y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432 5011 ! 35 5 v 51 w(completion)p 1033 5011 V 49 w(quote)p 1361 ! 5011 V 50 w(c)m(haracter)390 5121 y Ft(When)d(Readline)f(is)g ! (completing)g(quoted)i(text,)h(as)f(delimited)d(b)m(y)i(one)g(of)g(the) ! h(c)m(haracters)g(in)390 5230 y Fi(rl)p 458 5230 28 4 ! v 39 w(completer)p 886 5230 V 40 w(quote)p 1145 5230 ! V 41 w(c)m(haracters)p Ft(,)43 b(it)38 b(sets)h(this)f(v)-5 ! b(ariable)38 b(to)i(the)f(quoting)f(c)m(haracter)j(found.)390 ! 5340 y(This)29 b(is)g(set)i(b)s(efore)f(an)m(y)h(application-sp)s ! (eci\014c)c(completion)j(function)f(is)h(called.)p eop ! %%Page: 46 50 ! 46 49 bop 150 -116 a Ft(46)2600 b(GNU)31 b(Readline)e(Library)3371 ! 299 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432 ! 299 35 5 v 51 w(completion)p 1033 299 V 49 w(suppress)p ! 1509 299 V 50 w(quote)390 408 y Ft(If)32 b(non-zero,)h(Readline)e(do)s ! (es)h(not)h(app)s(end)d(a)j(matc)m(hing)f(quote)h(c)m(haracter)h(when)d ! (p)s(erforming)390 518 y(completion)23 b(on)g(a)h(quoted)g(string.)37 ! b(It)24 b(is)e(set)i(to)h(0)f(b)s(efore)f(an)m(y)h(application-sp)s ! (eci\014c)d(completion)390 628 y(function)29 b(is)g(called,)h(and)g(ma) ! m(y)h(only)f(b)s(e)f(c)m(hanged)i(within)d(suc)m(h)i(a)h(function.)3371 ! 800 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432 ! 800 V 51 w(completion)p 1033 800 V 49 w(found)p 1366 ! 800 V 50 w(quote)390 909 y Ft(When)31 b(Readline)g(is)f(completing)h ! (quoted)h(text,)h(it)e(sets)h(this)f(v)-5 b(ariable)30 ! b(to)j(a)f(non-zero)g(v)-5 b(alue)31 b(if)390 1019 y(the)21 ! b(w)m(ord)g(b)s(eing)f(completed)h(con)m(tains)g(or)g(is)f(delimited)f ! (b)m(y)i(an)m(y)g(quoting)g(c)m(haracters,)j(including)390 ! 1129 y(bac)m(kslashes.)41 b(This)28 b(is)i(set)h(b)s(efore)f(an)m(y)g ! (application-sp)s(eci\014c)e(completion)i(function)f(is)g(called.)3371 ! 1301 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432 ! 1301 V 51 w(completion)p 1033 1301 V 49 w(mark)p 1340 ! 1301 V 51 w(symlink)p 1779 1301 V 51 w(dirs)390 1410 ! y Ft(If)31 b(non-zero,)i(a)f(slash)f(will)e(b)s(e)i(app)s(ended)f(to)j ! (completed)f(\014lenames)e(that)j(are)f(sym)m(b)s(olic)e(links)390 ! 1520 y(to)25 b(directory)f(names,)h(sub)5 b(ject)24 b(to)h(the)f(v)-5 ! b(alue)24 b(of)g(the)h(user-settable)f Fi(mark-directories)j ! Ft(v)-5 b(ariable.)390 1630 y(This)26 b(v)-5 b(ariable)26 ! b(exists)h(so)g(that)h(application-sp)s(eci\014c)d(completion)i ! (functions)f(can)h(o)m(v)m(erride)h(the)390 1739 y(user's)42 ! b(global)f(preference)i(\(set)g(via)f(the)g Fi(mark-symlink)m ! (ed-directories)i Ft(Readline)d(v)-5 b(ariable\))390 ! 1849 y(if)37 b(appropriate.)61 b(This)36 b(v)-5 b(ariable)36 ! b(is)h(set)h(to)g(the)g(user's)f(preference)g(b)s(efore)g(an)m(y)h ! (application-)390 1958 y(sp)s(eci\014c)30 b(completion)h(function)g(is) ! f(called,)i(so)g(unless)e(that)i(function)e(mo)s(di\014es)g(the)i(v)-5 ! b(alue,)32 b(the)390 2068 y(user's)e(preferences)g(are)h(honored.)3371 ! 2240 y([V)-8 b(ariable])-3600 b Fg(int)39 b Ff(rl)p 432 ! 2240 V 51 w(ignore)p 793 2240 V 50 w(completion)p 1393 ! 2240 V 49 w(duplicates)390 2350 y Ft(If)30 b(non-zero,)h(then)f ! (duplicates)f(in)g(the)i(matc)m(hes)g(are)g(remo)m(v)m(ed.)42 ! b(The)29 b(default)h(is)f(1.)3371 2522 y([V)-8 b(ariable])-3600 ! b Fg(int)39 b Ff(rl)p 432 2522 V 51 w(\014lename)p 900 ! 2522 V 48 w(completion)p 1498 2522 V 50 w(desired)390 ! 2632 y Ft(Non-zero)33 b(means)f(that)g(the)g(results)e(of)i(the)g(matc) ! m(hes)h(are)f(to)h(b)s(e)e(treated)i(as)f(\014lenames.)44 ! b(This)390 2741 y(is)39 b Fn(always)49 b Ft(zero)41 b(when)e ! (completion)g(is)g(attempted,)k(and)d(can)g(only)f(b)s(e)g(c)m(hanged)i ! (within)c(an)390 2851 y(application-sp)s(eci\014c)g(completion)i ! (function.)66 b(If)39 b(it)g(is)f(set)i(to)h(a)e(non-zero)h(v)-5 ! b(alue)39 b(b)m(y)g(suc)m(h)h(a)390 2960 y(function,)23 ! b(directory)f(names)g(ha)m(v)m(e)h(a)g(slash)e(app)s(ended)f(and)i ! (Readline)f(attempts)i(to)g(quote)g(com-)390 3070 y(pleted)34 ! b(\014lenames)g(if)g(they)i(con)m(tain)f(an)m(y)g(c)m(haracters)i(in)d ! Fs(rl_filename_quote_chara)o(cter)o(s)390 3180 y Ft(and)c ! Fs(rl_filename_quoting_des)o(ired)24 b Ft(is)29 b(set)i(to)g(a)g ! (non-zero)g(v)-5 b(alue.)3371 3352 y([V)d(ariable])-3600 ! b Fg(int)39 b Ff(rl)p 432 3352 V 51 w(\014lename)p 900 ! 3352 V 48 w(quoting)p 1327 3352 V 50 w(desired)390 3461 ! y Ft(Non-zero)29 b(means)f(that)h(the)f(results)f(of)h(the)g(matc)m ! (hes)i(are)e(to)h(b)s(e)e(quoted)h(using)f(double)f(quotes)390 ! 3571 y(\(or)43 b(an)f(application-sp)s(eci\014c)e(quoting)i(mec)m ! (hanism\))g(if)f(the)i(completed)f(\014lename)g(con)m(tains)390 ! 3680 y(an)m(y)28 b(c)m(haracters)h(in)d Fs(rl_filename_quote_chars)p ! Ft(.)34 b(This)26 b(is)g Fn(always)37 b Ft(non-zero)28 ! b(when)f(comple-)390 3790 y(tion)g(is)g(attempted,)i(and)e(can)h(only)f ! (b)s(e)g(c)m(hanged)h(within)d(an)j(application-sp)s(eci\014c)d ! (completion)390 3900 y(function.)36 b(The)21 b(quoting)f(is)g ! (e\013ected)j(via)d(a)i(call)e(to)i(the)f(function)f(p)s(oin)m(ted)g ! (to)h(b)m(y)g Fs(rl_filename_)390 4009 y(quoting_function)p ! Ft(.)3371 4181 y([V)-8 b(ariable])-3600 b Fg(int)39 b ! Ff(rl)p 432 4181 V 51 w(attempted)p 1003 4181 V 47 w(completion)p ! 1600 4181 V 49 w(o)m(v)m(er)390 4291 y Ft(If)93 b(an)h(application-sp)s ! (eci\014c)e(completion)h(function)g(assigned)g(to)i Fs(rl_attempted_) ! 390 4401 y(completion_function)48 b Ft(sets)53 b(this)f(v)-5 ! b(ariable)52 b(to)i(a)f(non-zero)h(v)-5 b(alue,)59 b(Readline)51 ! b(will)g(not)390 4510 y(p)s(erform)28 b(its)h(default)g(\014lename)g ! (completion)g(ev)m(en)h(if)f(the)g(application's)f(completion)h ! (function)390 4620 y(returns)g(no)h(matc)m(hes.)42 b(It)31 ! b(should)d(b)s(e)i(set)h(only)e(b)m(y)i(an)f(application's)f ! (completion)g(function.)3371 4792 y([V)-8 b(ariable])-3600 ! b Fg(int)39 b Ff(rl)p 432 4792 V 51 w(completion)p 1033 ! 4792 V 49 w(t)m(yp)s(e)390 4902 y Ft(Set)c(to)h(a)f(c)m(haracter)i ! (describing)c(the)i(t)m(yp)s(e)g(of)g(completion)g(Readline)e(is)h ! (curren)m(tly)h(attempt-)390 5011 y(ing;)f(see)g(the)g(description)d ! (of)i Fs(rl_complete_internal\(\))28 b Ft(\(see)34 b(Section)f(2.6.2)i ! ([Completion)390 5121 y(F)-8 b(unctions],)38 b(page)g(42\))f(for)g(the) ! g(list)e(of)i(c)m(haracters.)61 b(This)35 b(is)g(set)j(to)f(the)g ! (appropriate)e(v)-5 b(alue)390 5230 y(b)s(efore)31 b(an)m(y)h ! (application-sp)s(eci\014c)d(completion)i(function)g(is)f(called,)i ! (allo)m(wing)e(suc)m(h)h(functions)390 5340 y(to)g(presen)m(t)g(the)f ! (same)h(in)m(terface)g(as)f Fs(rl_complete\(\))p Ft(.)p eop ! %%Page: 47 51 ! 47 50 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(47)3371 299 y([V)-8 b(ariable])-3600 ! b Fg(int)39 b Ff(rl)p 432 299 35 5 v 51 w(inhibit)p 816 ! 299 V 48 w(completion)390 408 y Ft(If)28 b(this)f(v)-5 ! b(ariable)27 b(is)g(non-zero,)j(completion)d(is)g(inhibited.)37 ! b(The)28 b(completion)f(c)m(haracter)j(will)c(b)s(e)390 ! 518 y(inserted)j(as)i(an)m(y)g(other)f(b)s(ound)e(to)k ! Fs(self-insert)p Ft(.)150 742 y Fh(2.6.4)63 b(A)40 b(Short)i ! (Completion)f(Example)275 986 y Ft(Here)20 b(is)g(a)h(small)d ! (application)h(demonstrating)h(the)g(use)g(of)h(the)g(GNU)f(Readline)f ! (library)-8 b(.)36 b(It)20 b(is)g(called)150 1096 y Fs(fileman)p ! Ft(,)35 b(and)g(the)h(source)f(co)s(de)h(resides)e(in)h(`)p ! Fs(examples/fileman.c)p Ft('.)51 b(This)34 b(sample)h(application)150 ! 1205 y(pro)m(vides)25 b(completion)h(of)g(command)g(names,)h(line)d ! (editing)h(features,)j(and)d(access)j(to)f(the)f(history)f(list.)p eop ! %%Page: 48 52 ! 48 51 bop 150 -116 a Ft(48)2600 b(GNU)31 b(Readline)e(Library)390 ! 299 y Fd(/*)40 b(fileman.c)h(--)f(A)f(tiny)h(application)i(which)e ! (demonstrates)i(how)e(to)g(use)g(the)508 386 y(GNU)g(Readline)h ! (library.)80 b(This)40 b(application)i(interactively)g(allows)f(users) ! 508 473 y(to)e(manipulate)j(files)e(and)g(their)h(modes.)f(*/)390 ! 648 y(#include)h()390 735 y(#include)g()390 ! 822 y(#include)g()390 909 y(#include)g()390 ! 996 y(#include)g()390 1171 y(#include)g ! ()390 1258 y(#include)g()390 ! 1432 y(extern)g(char)f(*xmalloc)h(\(\);)390 1606 y(/*)f(The)g(names)g ! (of)g(functions)h(that)f(actually)h(do)f(the)g(manipulation.)i(*/)390 ! 1694 y(int)e(com_list)h(__P\(\(char)g(*\)\);)390 1781 ! y(int)f(com_view)h(__P\(\(char)g(*\)\);)390 1868 y(int)f(com_rename)h ! (__P\(\(char)h(*\)\);)390 1955 y(int)e(com_stat)h(__P\(\(char)g(*\)\);) ! 390 2042 y(int)f(com_pwd)h(__P\(\(char)g(*\)\);)390 2130 ! y(int)f(com_delete)h(__P\(\(char)h(*\)\);)390 2217 y(int)e(com_help)h ! (__P\(\(char)g(*\)\);)390 2304 y(int)f(com_cd)g(__P\(\(char)i(*\)\);) ! 390 2391 y(int)e(com_quit)h(__P\(\(char)g(*\)\);)390 ! 2565 y(/*)f(A)f(structure)i(which)g(contains)g(information)h(on)d(the)h ! (commands)h(this)f(program)508 2653 y(can)g(understand.)h(*/)390 ! 2827 y(typedef)g(struct)f({)468 2914 y(char)h(*name;)f(/*)g(User)g ! (printable)h(name)f(of)g(the)g(function.)h(*/)468 3001 ! y(rl_icpfunc_t)h(*func;)f(/*)f(Function)h(to)e(call)i(to)e(do)h(the)g ! (job.)g(*/)468 3088 y(char)h(*doc;)f(/*)g(Documentation)i(for)e(this)g ! (function.)80 b(*/)390 3176 y(})39 b(COMMAND;)390 3350 ! y(COMMAND)i(commands[])g(=)f({)468 3437 y({)g("cd",)g(com_cd,)h ! ("Change)g(to)f(directory)h(DIR")f(},)468 3524 y({)g("delete",)h ! (com_delete,)h("Delete)f(FILE")f(},)468 3611 y({)g("help",)h(com_help,) ! g("Display)g(this)f(text")h(},)468 3699 y({)f("?",)g(com_help,)h ! ("Synonym)g(for)f(`help'")h(},)468 3786 y({)f("list",)h(com_list,)g ! ("List)f(files)h(in)e(DIR")i(},)468 3873 y({)f("ls",)g(com_list,)i ! ("Synonym)f(for)f(`list'")g(},)468 3960 y({)g("pwd",)g(com_pwd,)i ! ("Print)e(the)g(current)h(working)g(directory")g(},)468 ! 4047 y({)f("quit",)h(com_quit,)g("Quit)f(using)h(Fileman")g(},)468 ! 4134 y({)f("rename",)h(com_rename,)h("Rename)f(FILE)f(to)g(NEWNAME")h ! (},)468 4222 y({)f("stat",)h(com_stat,)g("Print)g(out)f(statistics)h ! (on)f(FILE")g(},)468 4309 y({)g("view",)h(com_view,)g("View)f(the)g ! (contents)h(of)f(FILE")g(},)468 4396 y({)g(\(char)g(*\)NULL,)h ! (\(rl_icpfunc_t)h(*\)NULL,)f(\(char)f(*\)NULL)h(})390 ! 4483 y(};)390 4658 y(/*)f(Forward)g(declarations.)j(*/)390 ! 4745 y(char)d(*stripwhite)i(\(\);)390 4832 y(COMMAND)f(*find_command)h ! (\(\);)390 5006 y(/*)e(The)g(name)g(of)f(this)i(program,)g(as)e(taken)i ! (from)f(argv[0].)h(*/)390 5093 y(char)f(*progname;)390 ! 5268 y(/*)g(When)g(non-zero,)h(this)f(means)h(the)f(user)g(is)f(done)h ! (using)h(this)f(program.)h(*/)p eop ! %%Page: 49 53 ! 49 52 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(49)390 299 y Fd(int)40 ! b(done;)390 473 y(char)g(*)390 560 y(dupstr)h(\(s\))586 ! 648 y(int)f(s;)390 735 y({)468 822 y(char)h(*r;)468 996 ! y(r)f(=)f(xmalloc)i(\(strlen)g(\(s\))f(+)f(1\);)468 1083 ! y(strcpy)i(\(r,)f(s\);)468 1171 y(return)h(\(r\);)390 ! 1258 y(})390 1432 y(main)f(\(argc,)h(argv\))586 1519 ! y(int)f(argc;)586 1606 y(char)g(**argv;)390 1694 y({)468 ! 1781 y(char)h(*line,)f(*s;)468 1955 y(progname)h(=)f(argv[0];)468 ! 2130 y(initialize_readline)k(\(\);)c(/*)g(Bind)g(our)g(completer.)h(*/) ! 468 2304 y(/*)f(Loop)g(reading)h(and)f(executing)h(lines)g(until)f(the) ! g(user)g(quits.)h(*/)468 2391 y(for)f(\()g(;)f(done)h(==)g(0;)g(\))547 ! 2478 y({)625 2565 y(line)g(=)g(readline)h(\("FileMan:)h("\);)625 ! 2740 y(if)e(\(!line\))704 2827 y(break;)625 3001 y(/*)g(Remove)h ! (leading)f(and)g(trailing)h(whitespace)h(from)e(the)g(line.)743 ! 3088 y(Then,)g(if)g(there)g(is)g(anything)h(left,)g(add)e(it)h(to)g ! (the)g(history)h(list)743 3176 y(and)f(execute)h(it.)f(*/)625 ! 3263 y(s)g(=)f(stripwhite)j(\(line\);)625 3437 y(if)e(\(*s\))704 ! 3524 y({)782 3611 y(add_history)i(\(s\);)782 3699 y(execute_line)g ! (\(s\);)704 3786 y(})625 3960 y(free)e(\(line\);)547 ! 4047 y(})468 4134 y(exit)h(\(0\);)390 4222 y(})390 4396 ! y(/*)f(Execute)g(a)g(command)h(line.)f(*/)390 4483 y(int)390 ! 4570 y(execute_line)i(\(line\))586 4658 y(char)e(*line;)390 ! 4745 y({)468 4832 y(register)h(int)f(i;)468 4919 y(COMMAND)h(*command;) ! 468 5006 y(char)g(*word;)468 5181 y(/*)f(Isolate)h(the)f(command)h ! (word.)f(*/)468 5268 y(i)g(=)f(0;)p eop ! %%Page: 50 54 ! 50 53 bop 150 -116 a Ft(50)2600 b(GNU)31 b(Readline)e(Library)468 ! 299 y Fd(while)41 b(\(line[i])g(&&)f(whitespace)h(\(line[i]\)\))547 ! 386 y(i++;)468 473 y(word)g(=)e(line)h(+)g(i;)468 648 ! y(while)h(\(line[i])g(&&)f(!whitespace)h(\(line[i]\)\))547 ! 735 y(i++;)468 909 y(if)f(\(line[i]\))547 996 y(line[i++])h(=)f('\\0';) ! 468 1171 y(command)h(=)f(find_command)i(\(word\);)468 ! 1345 y(if)e(\(!command\))547 1432 y({)625 1519 y(fprintf)h(\(stderr,)g ! ("\045s:)f(No)g(such)g(command)h(for)f(FileMan.\\n",)i(word\);)625 ! 1606 y(return)f(\(-1\);)547 1694 y(})468 1868 y(/*)f(Get)g(argument)h ! (to)f(command,)h(if)f(any.)g(*/)468 1955 y(while)h(\(whitespace)h ! (\(line[i]\)\))547 2042 y(i++;)468 2217 y(word)f(=)e(line)h(+)g(i;)468 ! 2391 y(/*)g(Call)g(the)g(function.)h(*/)468 2478 y(return)g ! (\(\(*\(command->func\)\))j(\(word\)\);)390 2565 y(})390 ! 2740 y(/*)c(Look)g(up)f(NAME)i(as)e(the)h(name)g(of)g(a)g(command,)h ! (and)e(return)i(a)f(pointer)g(to)g(that)508 2827 y(command.)80 ! b(Return)41 b(a)e(NULL)h(pointer)h(if)f(NAME)g(isn't)g(a)g(command)g ! (name.)h(*/)390 2914 y(COMMAND)g(*)390 3001 y(find_command)h(\(name\)) ! 586 3088 y(char)e(*name;)390 3176 y({)468 3263 y(register)h(int)f(i;) ! 468 3437 y(for)g(\(i)g(=)f(0;)h(commands[i].name;)j(i++\))547 ! 3524 y(if)d(\(strcmp)g(\(name,)h(commands[i].name\))i(==)d(0\))625 ! 3611 y(return)h(\(&commands[i]\);)468 3786 y(return)g(\(\(COMMAND)g ! (*\)NULL\);)390 3873 y(})390 4047 y(/*)f(Strip)g(whitespace)i(from)e ! (the)g(start)g(and)g(end)g(of)f(STRING.)81 b(Return)40 ! b(a)g(pointer)508 4134 y(into)g(STRING.)h(*/)390 4222 ! y(char)f(*)390 4309 y(stripwhite)h(\(string\))586 4396 ! y(char)f(*string;)390 4483 y({)468 4570 y(register)h(char)g(*s,)f(*t;) ! 468 4745 y(for)g(\(s)g(=)f(string;)i(whitespace)h(\(*s\);)e(s++\))547 ! 4832 y(;)468 5006 y(if)g(\(*s)g(==)g(0\))547 5093 y(return)g(\(s\);)468 ! 5268 y(t)g(=)f(s)h(+)f(strlen)i(\(s\))f(-)f(1;)p eop ! %%Page: 51 55 ! 51 54 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(51)468 299 y Fd(while)41 ! b(\(t)e(>)h(s)f(&&)h(whitespace)i(\(*t\)\))547 386 y(t--;)468 ! 473 y(*++t)f(=)e('\\0';)468 648 y(return)i(s;)390 735 ! y(})390 909 y(/*)f(******************************)q(*****)q(****)q ! (*****)q(****)q(****)q(*****)q(****)q(***)45 b(*/)390 ! 996 y(/*)2589 b(*/)390 1083 y(/*)707 b(Interface)41 b(to)f(Readline)h ! (Completion)629 b(*/)390 1171 y(/*)2589 b(*/)390 1258 ! y(/*)40 b(******************************)q(*****)q(****)q(*****)q(****) ! q(****)q(*****)q(****)q(***)45 b(*/)390 1432 y(char)40 ! b(*command_generator)j(__P\(\(const)f(char)e(*,)g(int\)\);)390 ! 1519 y(char)g(**fileman_completion)k(__P\(\(const)d(char)g(*,)e(int,)h ! (int\)\);)390 1694 y(/*)g(Tell)g(the)g(GNU)g(Readline)h(library)g(how)e ! (to)h(complete.)81 b(We)39 b(want)h(to)g(try)g(to)508 ! 1781 y(complete)h(on)e(command)i(names)g(if)e(this)h(is)g(the)g(first)g ! (word)h(in)e(the)h(line,)g(or)508 1868 y(on)f(filenames)j(if)d(not.)h ! (*/)390 1955 y(initialize_readline)k(\(\))390 2042 y({)468 ! 2130 y(/*)c(Allow)g(conditional)i(parsing)f(of)f(the)g(~/.inputrc)h ! (file.)g(*/)468 2217 y(rl_readline_name)i(=)d("FileMan";)468 ! 2391 y(/*)g(Tell)g(the)g(completer)h(that)g(we)e(want)h(a)g(crack)g ! (first.)h(*/)468 2478 y(rl_attempted_completion_fun)q(ctio)q(n)k(=)39 ! b(fileman_completion;)390 2565 y(})390 2740 y(/*)h(Attempt)g(to)g ! (complete)h(on)f(the)g(contents)h(of)f(TEXT.)79 b(START)41 ! b(and)e(END)508 2827 y(bound)h(the)g(region)h(of)e(rl_line_buffer)k ! (that)d(contains)h(the)f(word)g(to)508 2914 y(complete.)80 ! b(TEXT)40 b(is)g(the)g(word)g(to)g(complete.)80 b(We)40 ! b(can)g(use)g(the)g(entire)508 3001 y(contents)h(of)e(rl_line_buffer)k ! (in)d(case)g(we)f(want)h(to)g(do)g(some)g(simple)508 ! 3088 y(parsing.)80 b(Returnthe)41 b(array)g(of)e(matches,)i(or)f(NULL)g ! (if)g(there)g(aren't)h(any.)f(*/)390 3176 y(char)g(**)390 ! 3263 y(fileman_completion)j(\(text,)e(start,)g(end\))586 ! 3350 y(const)f(char)h(*text;)586 3437 y(int)f(start,)h(end;)390 ! 3524 y({)468 3611 y(char)g(**matches;)468 3786 y(matches)g(=)f(\(char)g ! (**\)NULL;)468 3960 y(/*)g(If)g(this)g(word)g(is)g(at)f(the)h(start)h ! (of)e(the)h(line,)h(then)f(it)g(is)f(a)h(command)586 ! 4047 y(to)g(complete.)80 b(Otherwise)42 b(it)d(is)h(the)g(name)g(of)g ! (a)f(file)h(in)g(the)g(current)586 4134 y(directory.)i(*/)468 ! 4222 y(if)e(\(start)h(==)e(0\))547 4309 y(matches)i(=)e ! (rl_completion_matches)44 b(\(text,)d(command_generator\);)468 ! 4483 y(return)g(\(matches\);)390 4570 y(})390 4745 y(/*)f(Generator)h ! (function)g(for)f(command)h(completion.)81 b(STATE)40 ! b(lets)g(us)508 4832 y(know)g(whether)h(to)e(start)i(from)f(scratch;)h ! (without)g(any)f(state)508 4919 y(\(i.e.)g(STATE)g(==)g(0\),)g(then)g ! (we)g(start)g(at)g(the)g(top)g(of)f(the)h(list.)h(*/)390 ! 5006 y(char)f(*)390 5093 y(command_generator)j(\(text,)e(state\))586 ! 5181 y(const)f(char)h(*text;)586 5268 y(int)f(state;)p eop ! %%Page: 52 56 ! 52 55 bop 150 -116 a Ft(52)2600 b(GNU)31 b(Readline)e(Library)390 ! 299 y Fd({)468 386 y(static)41 b(int)f(list_index,)i(len;)468 ! 473 y(char)f(*name;)468 648 y(/*)f(If)g(this)g(is)g(a)f(new)h(word)g ! (to)g(complete,)h(initialize)h(now.)79 b(This)586 735 ! y(includes)41 b(saving)g(the)f(length)g(of)g(TEXT)g(for)g(efficiency,)i ! (and)586 822 y(initializing)g(the)e(index)g(variable)h(to)f(0.)g(*/)468 ! 909 y(if)g(\(!state\))547 996 y({)625 1083 y(list_index)i(=)d(0;)625 ! 1171 y(len)h(=)g(strlen)g(\(text\);)547 1258 y(})468 ! 1432 y(/*)g(Return)h(the)f(next)g(name)g(which)g(partially)i(matches)e ! (from)h(the)586 1519 y(command)g(list.)f(*/)468 1606 ! y(while)h(\(name)f(=)g(commands[list_index].name\))547 ! 1694 y({)625 1781 y(list_index++;)625 1955 y(if)g(\(strncmp)h(\(name,)g ! (text,)f(len\))g(==)g(0\))704 2042 y(return)g(\(dupstr\(name\)\);)547 ! 2130 y(})468 2304 y(/*)g(If)g(no)f(names)i(matched,)g(then)f(return)h ! (NULL.)f(*/)468 2391 y(return)h(\(\(char)g(*\)NULL\);)390 ! 2478 y(})390 2653 y(/*)f(******************************)q(*****)q(****) ! q(*****)q(****)q(****)q(*****)q(****)q(***)45 b(*/)390 ! 2740 y(/*)2589 b(*/)390 2827 y(/*)903 b(FileMan)41 b(Commands)1060 ! b(*/)390 2914 y(/*)2589 b(*/)390 3001 y(/*)40 b ! (******************************)q(*****)q(****)q(*****)q(****)q(****)q ! (*****)q(****)q(***)45 b(*/)390 3176 y(/*)40 b(String)g(to)g(pass)g(to) ! g(system)g(\(\).)80 b(This)40 b(is)f(for)h(the)g(LIST,)h(VIEW)f(and)g ! (RENAME)508 3263 y(commands.)h(*/)390 3350 y(static)g(char)f ! (syscom[1024];)390 3524 y(/*)g(List)g(the)g(file\(s\))h(named)f(in)g ! (arg.)g(*/)390 3611 y(com_list)h(\(arg\))586 3699 y(char)f(*arg;)390 ! 3786 y({)468 3873 y(if)g(\(!arg\))547 3960 y(arg)g(=)f("";)468 ! 4134 y(sprintf)i(\(syscom,)g("ls)f(-FClg)h(\045s",)f(arg\);)468 ! 4222 y(return)h(\(system)g(\(syscom\)\);)390 4309 y(})390 ! 4483 y(com_view)g(\(arg\))586 4570 y(char)f(*arg;)390 ! 4658 y({)468 4745 y(if)g(\(!valid_argument)j(\("view",)e(arg\)\))547 ! 4832 y(return)f(1;)468 5006 y(sprintf)h(\(syscom,)g("more)g(\045s",)f ! (arg\);)468 5093 y(return)h(\(system)g(\(syscom\)\);)390 ! 5181 y(})p eop ! %%Page: 53 57 ! 53 56 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(53)390 299 y Fd(com_rename)41 ! b(\(arg\))586 386 y(char)f(*arg;)390 473 y({)468 560 ! y(too_dangerous)j(\("rename"\);)468 648 y(return)e(\(1\);)390 ! 735 y(})390 909 y(com_stat)g(\(arg\))586 996 y(char)f(*arg;)390 ! 1083 y({)468 1171 y(struct)h(stat)f(finfo;)468 1345 y(if)g ! (\(!valid_argument)j(\("stat",)e(arg\)\))547 1432 y(return)f(\(1\);)468 ! 1606 y(if)g(\(stat)g(\(arg,)h(&finfo\))g(==)e(-1\))547 ! 1694 y({)625 1781 y(perror)i(\(arg\);)625 1868 y(return)g(\(1\);)547 ! 1955 y(})468 2130 y(printf)g(\("Statistics)h(for)e(`\045s':\\n",)h ! (arg\);)468 2304 y(printf)g(\("\045s)f(has)g(\045d)g(link\045s,)h(and)f ! (is)f(\045d)h(byte\045s)g(in)g(length.\\n",)i(arg,)782 ! 2391 y(finfo.st_nlink,)782 2478 y(\(finfo.st_nlink)h(==)d(1\))f(?)h("") ! f(:)h("s",)782 2565 y(finfo.st_size,)782 2653 y(\(finfo.st_size)j(==)c ! (1\))h(?)g("")f(:)h("s"\);)468 2740 y(printf)h(\("Inode)g(Last)f ! (Change)h(at:)f(\045s",)g(ctime)g(\(&finfo.st_ctime\)\);)468 ! 2827 y(printf)h(\(")236 b(Last)40 b(access)h(at:)f(\045s",)g(ctime)g ! (\(&finfo.st_atime\)\);)468 2914 y(printf)h(\(")157 b(Last)41 ! b(modified)g(at:)f(\045s",)g(ctime)g(\(&finfo.st_mtime\)\);)468 ! 3001 y(return)h(\(0\);)390 3088 y(})390 3263 y(com_delete)g(\(arg\))586 ! 3350 y(char)f(*arg;)390 3437 y({)468 3524 y(too_dangerous)j ! (\("delete"\);)468 3611 y(return)e(\(1\);)390 3699 y(})390 ! 3873 y(/*)f(Print)g(out)g(help)g(for)g(ARG,)g(or)g(for)g(all)g(of)f ! (the)h(commands)h(if)f(ARG)g(is)508 3960 y(not)g(present.)h(*/)390 ! 4047 y(com_help)g(\(arg\))586 4134 y(char)f(*arg;)390 ! 4222 y({)468 4309 y(register)h(int)f(i;)468 4396 y(int)g(printed)h(=)f ! (0;)468 4570 y(for)g(\(i)g(=)f(0;)h(commands[i].name;)j(i++\))547 ! 4658 y({)625 4745 y(if)d(\(!*arg)h(||)e(\(strcmp)i(\(arg,)g ! (commands[i].name\))i(==)c(0\)\))704 4832 y({)782 4919 ! y(printf)i(\("\045s\\t\\t\045s.\\n",)i(commands[i].name,)g ! (commands[i].doc\);)782 5006 y(printed++;)704 5093 y(})547 ! 5181 y(})p eop ! %%Page: 54 58 ! 54 57 bop 150 -116 a Ft(54)2600 b(GNU)31 b(Readline)e(Library)468 ! 299 y Fd(if)40 b(\(!printed\))547 386 y({)625 473 y(printf)h(\("No)f ! (commands)h(match)g(`\045s'.)79 b(Possibilties)42 b(are:\\n",)f(arg\);) ! 625 648 y(for)f(\(i)g(=)f(0;)h(commands[i].name;)j(i++\))704 ! 735 y({)782 822 y(/*)d(Print)g(in)g(six)g(columns.)h(*/)782 ! 909 y(if)f(\(printed)h(==)f(6\))861 996 y({)939 1083 ! y(printed)h(=)e(0;)939 1171 y(printf)i(\("\\n"\);)861 ! 1258 y(})782 1432 y(printf)g(\("\045s\\t",)g(commands[i].name\);)782 ! 1519 y(printed++;)704 1606 y(})625 1781 y(if)f(\(printed\))704 ! 1868 y(printf)g(\("\\n"\);)547 1955 y(})468 2042 y(return)h(\(0\);)390 ! 2130 y(})390 2304 y(/*)f(Change)g(to)g(the)g(directory)h(ARG.)f(*/)390 ! 2391 y(com_cd)h(\(arg\))586 2478 y(char)f(*arg;)390 2565 ! y({)468 2653 y(if)g(\(chdir)h(\(arg\))f(==)g(-1\))547 ! 2740 y({)625 2827 y(perror)h(\(arg\);)625 2914 y(return)g(1;)547 ! 3001 y(})468 3176 y(com_pwd)g(\(""\);)468 3263 y(return)g(\(0\);)390 ! 3350 y(})390 3524 y(/*)f(Print)g(out)g(the)g(current)h(working)g ! (directory.)g(*/)390 3611 y(com_pwd)g(\(ignore\))586 ! 3699 y(char)f(*ignore;)390 3786 y({)468 3873 y(char)h(dir[1024],)g(*s;) ! 468 4047 y(s)f(=)f(getcwd)i(\(dir,)f(sizeof\(dir\))i(-)e(1\);)468 ! 4134 y(if)g(\(s)g(==)f(0\))547 4222 y({)625 4309 y(printf)i(\("Error)g ! (getting)g(pwd:)f(\045s\\n",)g(dir\);)625 4396 y(return)h(1;)547 ! 4483 y(})468 4658 y(printf)g(\("Current)g(directory)h(is)d(\045s\\n",)i ! (dir\);)468 4745 y(return)g(0;)390 4832 y(})390 5006 ! y(/*)f(The)g(user)g(wishes)g(to)g(quit)g(using)h(this)f(program.)80 ! b(Just)40 b(set)g(DONE)508 5093 y(non-zero.)h(*/)390 ! 5181 y(com_quit)g(\(arg\))586 5268 y(char)f(*arg;)p eop ! %%Page: 55 59 ! 55 58 bop 150 -116 a Ft(Chapter)30 b(2:)41 b(Programming)29 ! b(with)g(GNU)i(Readline)1681 b(55)390 299 y Fd({)468 ! 386 y(done)41 b(=)e(1;)468 473 y(return)i(\(0\);)390 ! 560 y(})390 735 y(/*)f(Function)h(which)f(tells)g(you)g(that)h(you)e ! (can't)i(do)e(this.)i(*/)390 822 y(too_dangerous)h(\(caller\))586 ! 909 y(char)e(*caller;)390 996 y({)468 1083 y(fprintf)h(\(stderr,)821 ! 1171 y("\045s:)g(Too)f(dangerous)h(for)f(me)f(to)h(distribute.\\n")821 ! 1258 y(caller\);)468 1345 y(fprintf)h(\(stderr,)g("Write)g(it)f ! (yourself.\\n"\);)390 1432 y(})390 1606 y(/*)g(Return)g(non-zero)h(if)f ! (ARG)g(is)g(a)f(valid)h(argument)h(for)f(CALLER,)508 ! 1694 y(else)g(print)g(an)g(error)g(message)h(and)f(return)h(zero.)f(*/) ! 390 1781 y(int)390 1868 y(valid_argument)i(\(caller,)f(arg\))586 ! 1955 y(char)f(*caller,)h(*arg;)390 2042 y({)468 2130 ! y(if)f(\(!arg)g(||)g(!*arg\))547 2217 y({)625 2304 y(fprintf)h ! (\(stderr,)g("\045s:)f(Argument)h(required.\\n",)i(caller\);)625 ! 2391 y(return)e(\(0\);)547 2478 y(})468 2653 y(return)g(\(1\);)390 ! 2740 y(})p eop ! %%Page: 56 60 ! 56 59 bop 150 -116 a Ft(56)2600 b(GNU)31 b(Readline)e(Library)p eop ! %%Page: 57 61 ! 57 60 bop 150 -116 a Ft(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m ! (ual)2104 b(57)150 299 y Fp(App)t(endix)53 b(A)40 b(Cop)l(ying)52 ! b(This)j(Man)l(ual)150 690 y Fr(A.1)67 b(GNU)45 b(F)-11 ! b(ree)45 b(Do)t(cumen)l(tation)h(License)1396 909 y Ft(V)-8 ! b(ersion)30 b(1.2,)i(No)m(v)m(em)m(b)s(er)g(2002)390 ! 1052 y(Cop)m(yrigh)m(t)842 1049 y(c)817 1052 y Fq(\015)e ! Ft(2000,2001,2002)36 b(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8 ! b(oundation,)31 b(Inc.)390 1161 y(59)g(T)-8 b(emple)30 ! b(Place,)h(Suite)e(330,)j(Boston,)g(MA)61 b(02111-1307,)35 ! b(USA)390 1380 y(Ev)m(ery)m(one)c(is)f(p)s(ermitted)f(to)i(cop)m(y)g ! (and)f(distribute)e(v)m(erbatim)i(copies)390 1490 y(of)h(this)e ! (license)g(do)s(cumen)m(t,)i(but)e(c)m(hanging)i(it)f(is)f(not)i(allo)m ! (w)m(ed.)199 1632 y(0.)61 b(PREAMBLE)330 1770 y(The)37 ! b(purp)s(ose)e(of)i(this)f(License)h(is)f(to)i(mak)m(e)g(a)g(man)m ! (ual,)g(textb)s(o)s(ok,)i(or)d(other)g(functional)f(and)330 ! 1880 y(useful)28 b(do)s(cumen)m(t)i Fi(free)36 b Ft(in)28 ! b(the)j(sense)f(of)g(freedom:)41 b(to)31 b(assure)e(ev)m(ery)m(one)j ! (the)e(e\013ectiv)m(e)i(freedom)330 1990 y(to)g(cop)m(y)g(and)f ! (redistribute)e(it,)i(with)g(or)g(without)f(mo)s(difying)f(it,)j ! (either)f(commercially)f(or)h(non-)330 2099 y(commercially)-8 ! b(.)53 b(Secondarily)-8 b(,)34 b(this)g(License)g(preserv)m(es)h(for)f ! (the)h(author)f(and)g(publisher)d(a)k(w)m(a)m(y)330 2209 ! y(to)i(get)g(credit)f(for)g(their)f(w)m(ork,)j(while)c(not)i(b)s(eing)f ! (considered)g(resp)s(onsible)e(for)j(mo)s(di\014cations)330 ! 2318 y(made)30 b(b)m(y)h(others.)330 2457 y(This)21 b(License)i(is)f(a) ! i(kind)d(of)j(\\cop)m(yleft",)i(whic)m(h)c(means)h(that)h(deriv)-5 ! b(ativ)m(e)22 b(w)m(orks)h(of)h(the)f(do)s(cumen)m(t)330 ! 2566 y(m)m(ust)34 b(themselv)m(es)g(b)s(e)f(free)h(in)f(the)h(same)g ! (sense.)51 b(It)34 b(complemen)m(ts)g(the)g(GNU)g(General)g(Public)330 ! 2676 y(License,)c(whic)m(h)f(is)h(a)g(cop)m(yleft)h(license)f(designed) ! f(for)h(free)h(soft)m(w)m(are.)330 2814 y(W)-8 b(e)31 ! b(ha)m(v)m(e)f(designed)f(this)f(License)h(in)f(order)h(to)i(use)e(it)g ! (for)g(man)m(uals)g(for)g(free)h(soft)m(w)m(are,)h(b)s(ecause)330 ! 2924 y(free)42 b(soft)m(w)m(are)i(needs)e(free)g(do)s(cumen)m(tation:) ! 64 b(a)42 b(free)h(program)f(should)e(come)j(with)e(man)m(uals)330 ! 3033 y(pro)m(viding)27 b(the)i(same)g(freedoms)f(that)i(the)f(soft)m(w) ! m(are)h(do)s(es.)40 b(But)29 b(this)e(License)i(is)f(not)h(limited)d ! (to)330 3143 y(soft)m(w)m(are)32 b(man)m(uals;)e(it)g(can)h(b)s(e)f ! (used)g(for)g(an)m(y)h(textual)g(w)m(ork,)g(regardless)f(of)h(sub)5 ! b(ject)30 b(matter)i(or)330 3252 y(whether)f(it)g(is)f(published)e(as)k ! (a)f(prin)m(ted)f(b)s(o)s(ok.)44 b(W)-8 b(e)32 b(recommend)f(this)g ! (License)g(principally)c(for)330 3362 y(w)m(orks)j(whose)h(purp)s(ose)d ! (is)i(instruction)e(or)i(reference.)199 3500 y(1.)61 ! b(APPLICABILITY)29 b(AND)j(DEFINITIONS)330 3639 y(This)38 ! b(License)i(applies)e(to)i(an)m(y)h(man)m(ual)e(or)h(other)g(w)m(ork,)i ! (in)d(an)m(y)h(medium,)h(that)f(con)m(tains)h(a)330 3748 ! y(notice)h(placed)f(b)m(y)g(the)h(cop)m(yrigh)m(t)g(holder)e(sa)m(ying) ! h(it)g(can)h(b)s(e)f(distributed)d(under)i(the)i(terms)330 ! 3858 y(of)c(this)e(License.)61 b(Suc)m(h)37 b(a)h(notice)g(gran)m(ts)g ! (a)g(w)m(orld-wide,)f(ro)m(y)m(alt)m(y-free)j(license,)e(unlimited)c ! (in)330 3967 y(duration,)48 b(to)e(use)f(that)g(w)m(ork)h(under)d(the)j ! (conditions)d(stated)j(herein.)84 b(The)45 b(\\Do)s(cumen)m(t",)330 ! 4077 y(b)s(elo)m(w,)28 b(refers)g(to)h(an)m(y)g(suc)m(h)f(man)m(ual)g ! (or)g(w)m(ork.)40 b(An)m(y)29 b(mem)m(b)s(er)e(of)i(the)f(public)e(is)h ! (a)i(licensee,)g(and)330 4187 y(is)24 b(addressed)g(as)h(\\y)m(ou".)40 ! b(Y)-8 b(ou)26 b(accept)g(the)f(license)f(if)g(y)m(ou)i(cop)m(y)-8 ! b(,)27 b(mo)s(dify)c(or)i(distribute)e(the)i(w)m(ork)330 ! 4296 y(in)k(a)i(w)m(a)m(y)g(requiring)d(p)s(ermission)f(under)i(cop)m ! (yrigh)m(t)i(la)m(w.)330 4435 y(A)j(\\Mo)s(di\014ed)e(V)-8 ! b(ersion")34 b(of)g(the)g(Do)s(cumen)m(t)g(means)g(an)m(y)g(w)m(ork)f ! (con)m(taining)h(the)g(Do)s(cumen)m(t)g(or)330 4544 y(a)k(p)s(ortion)e ! (of)i(it,)h(either)e(copied)g(v)m(erbatim,)i(or)e(with)g(mo)s ! (di\014cations)e(and/or)j(translated)f(in)m(to)330 4654 ! y(another)31 b(language.)330 4792 y(A)26 b(\\Secondary)g(Section")g(is) ! f(a)i(named)e(app)s(endix)e(or)j(a)h(fron)m(t-matter)g(section)f(of)g ! (the)g(Do)s(cumen)m(t)330 4902 y(that)c(deals)f(exclusiv)m(ely)f(with)g ! (the)h(relationship)e(of)i(the)h(publishers)17 b(or)k(authors)g(of)h ! (the)f(Do)s(cumen)m(t)330 5011 y(to)38 b(the)f(Do)s(cumen)m(t's)i(o)m ! (v)m(erall)e(sub)5 b(ject)37 b(\(or)h(to)g(related)f(matters\))h(and)f ! (con)m(tains)g(nothing)f(that)330 5121 y(could)j(fall)g(directly)g ! (within)f(that)j(o)m(v)m(erall)g(sub)5 b(ject.)70 b(\(Th)m(us,)42 ! b(if)d(the)i(Do)s(cumen)m(t)g(is)e(in)g(part)i(a)330 ! 5230 y(textb)s(o)s(ok)24 b(of)g(mathematics,)i(a)e(Secondary)f(Section) ! g(ma)m(y)h(not)g(explain)e(an)m(y)i(mathematics.\))39 ! b(The)330 5340 y(relationship)25 b(could)h(b)s(e)h(a)g(matter)i(of)e ! (historical)f(connection)h(with)f(the)i(sub)5 b(ject)27 ! b(or)g(with)f(related)p eop ! %%Page: 58 62 ! 58 61 bop 150 -116 a Ft(58)2600 b(GNU)31 b(Readline)e(Library)330 ! 299 y(matters,)38 b(or)d(of)h(legal,)g(commercial,)h(philosophical,)d ! (ethical)h(or)g(p)s(olitical)e(p)s(osition)h(regarding)330 ! 408 y(them.)330 549 y(The)25 b(\\In)m(v)-5 b(arian)m(t)26 ! b(Sections")g(are)g(certain)f(Secondary)h(Sections)f(whose)g(titles)g ! (are)h(designated,)h(as)330 659 y(b)s(eing)e(those)i(of)g(In)m(v)-5 ! b(arian)m(t)26 b(Sections,)i(in)d(the)i(notice)g(that)g(sa)m(ys)g(that) ! g(the)g(Do)s(cumen)m(t)g(is)f(released)330 769 y(under)g(this)h ! (License.)39 b(If)27 b(a)h(section)g(do)s(es)g(not)f(\014t)h(the)g(ab)s ! (o)m(v)m(e)h(de\014nition)c(of)j(Secondary)f(then)h(it)f(is)330 ! 878 y(not)32 b(allo)m(w)m(ed)g(to)g(b)s(e)g(designated)f(as)h(In)m(v)-5 ! b(arian)m(t.)45 b(The)31 b(Do)s(cumen)m(t)i(ma)m(y)f(con)m(tain)h(zero) ! f(In)m(v)-5 b(arian)m(t)330 988 y(Sections.)38 b(If)25 ! b(the)f(Do)s(cumen)m(t)i(do)s(es)e(not)h(iden)m(tify)e(an)m(y)i(In)m(v) ! -5 b(arian)m(t)24 b(Sections)h(then)f(there)h(are)g(none.)330 ! 1129 y(The)36 b(\\Co)m(v)m(er)i(T)-8 b(exts")38 b(are)f(certain)f ! (short)h(passages)g(of)g(text)g(that)h(are)f(listed,)g(as)f(F)-8 ! b(ron)m(t-Co)m(v)m(er)330 1238 y(T)g(exts)26 b(or)f(Bac)m(k-Co)m(v)m ! (er)j(T)-8 b(exts,)27 b(in)c(the)i(notice)h(that)f(sa)m(ys)h(that)g ! (the)f(Do)s(cumen)m(t)h(is)e(released)g(under)330 1348 ! y(this)h(License.)39 b(A)25 b(F)-8 b(ron)m(t-Co)m(v)m(er)29 ! b(T)-8 b(ext)26 b(ma)m(y)h(b)s(e)e(at)i(most)f(5)g(w)m(ords,)g(and)g(a) ! g(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext)26 b(ma)m(y)330 1457 ! y(b)s(e)k(at)h(most)g(25)g(w)m(ords.)330 1598 y(A)36 ! b(\\T)-8 b(ransparen)m(t")36 b(cop)m(y)g(of)g(the)f(Do)s(cumen)m(t)h ! (means)g(a)g(mac)m(hine-readable)f(cop)m(y)-8 b(,)38 ! b(represen)m(ted)330 1708 y(in)c(a)i(format)g(whose)g(sp)s ! (eci\014cation)e(is)h(a)m(v)-5 b(ailable)35 b(to)i(the)f(general)f ! (public,)g(that)h(is)f(suitable)f(for)330 1817 y(revising)c(the)i(do)s ! (cumen)m(t)f(straigh)m(tforw)m(ardly)g(with)f(generic)i(text)h(editors) ! e(or)g(\(for)h(images)g(com-)330 1927 y(p)s(osed)23 b(of)h(pixels\))e ! (generic)i(pain)m(t)f(programs)h(or)f(\(for)h(dra)m(wings\))f(some)h ! (widely)e(a)m(v)-5 b(ailable)23 b(dra)m(wing)330 2037 ! y(editor,)29 b(and)g(that)g(is)f(suitable)g(for)h(input)e(to)j(text)g ! (formatters)f(or)g(for)g(automatic)h(translation)e(to)330 ! 2146 y(a)f(v)-5 b(ariet)m(y)27 b(of)g(formats)g(suitable)f(for)g(input) ! f(to)j(text)g(formatters.)40 b(A)27 b(cop)m(y)g(made)g(in)f(an)h ! (otherwise)330 2256 y(T)-8 b(ransparen)m(t)37 b(\014le)g(format)h ! (whose)f(markup,)i(or)e(absence)h(of)g(markup,)g(has)g(b)s(een)f ! (arranged)g(to)330 2365 y(th)m(w)m(art)27 b(or)g(discourage)f ! (subsequen)m(t)g(mo)s(di\014cation)f(b)m(y)i(readers)f(is)f(not)i(T)-8 ! b(ransparen)m(t.)39 b(An)27 b(image)330 2475 y(format)35 ! b(is)e(not)i(T)-8 b(ransparen)m(t)34 b(if)f(used)h(for)g(an)m(y)g ! (substan)m(tial)f(amoun)m(t)i(of)g(text.)53 b(A)35 b(cop)m(y)g(that)g ! (is)330 2585 y(not)c(\\T)-8 b(ransparen)m(t")31 b(is)e(called)h ! (\\Opaque".)330 2725 y(Examples)52 b(of)h(suitable)f(formats)h(for)g(T) ! -8 b(ransparen)m(t)53 b(copies)g(include)e(plain)g Fm(asci)r(i)i ! Ft(without)330 2835 y(markup,)41 b(T)-8 b(exinfo)39 b(input)f(format,)k ! (LaT)1775 2855 y(E)1826 2835 y(X)d(input)f(format,)43 ! b Fm(sgml)c Ft(or)g Fm(xml)g Ft(using)f(a)i(publicly)330 ! 2945 y(a)m(v)-5 b(ailable)31 b Fm(dtd)p Ft(,)g(and)g ! (standard-conforming)f(simple)g Fm(html)p Ft(,)h(P)m(ostScript)g(or)g ! Fm(pdf)g Ft(designed)f(for)330 3054 y(h)m(uman)37 b(mo)s(di\014cation.) ! 63 b(Examples)37 b(of)h(transparen)m(t)g(image)h(formats)f(include)e ! Fm(png)p Ft(,)k Fm(x)n(cf)e Ft(and)330 3164 y Fm(jpg)p ! Ft(.)63 b(Opaque)38 b(formats)g(include)e(proprietary)h(formats)h(that) ! h(can)f(b)s(e)g(read)g(and)f(edited)h(only)330 3273 y(b)m(y)h ! (proprietary)f(w)m(ord)h(pro)s(cessors,)j Fm(sgml)c Ft(or)i ! Fm(xml)e Ft(for)i(whic)m(h)e(the)h Fm(dtd)g Ft(and/or)g(pro)s(cessing) ! 330 3383 y(to)s(ols)31 b(are)g(not)g(generally)f(a)m(v)-5 ! b(ailable,)31 b(and)f(the)h(mac)m(hine-generated)h Fm(html)p ! Ft(,)e(P)m(ostScript)h(or)g Fm(pdf)330 3493 y Ft(pro)s(duced)e(b)m(y)h ! (some)h(w)m(ord)f(pro)s(cessors)g(for)g(output)g(purp)s(oses)e(only)-8 ! b(.)330 3634 y(The)34 b(\\Title)f(P)m(age")k(means,)e(for)f(a)h(prin)m ! (ted)e(b)s(o)s(ok,)i(the)f(title)g(page)h(itself,)f(plus)f(suc)m(h)g ! (follo)m(wing)330 3743 y(pages)28 b(as)g(are)g(needed)g(to)g(hold,)f ! (legibly)-8 b(,)27 b(the)h(material)f(this)g(License)g(requires)f(to)i ! (app)s(ear)f(in)g(the)330 3853 y(title)f(page.)40 b(F)-8 ! b(or)28 b(w)m(orks)e(in)f(formats)i(whic)m(h)f(do)g(not)h(ha)m(v)m(e)h ! (an)m(y)e(title)h(page)g(as)g(suc)m(h,)g(\\Title)f(P)m(age")330 ! 3962 y(means)31 b(the)f(text)i(near)e(the)h(most)g(prominen)m(t)f(app)s ! (earance)g(of)h(the)g(w)m(ork's)g(title,)f(preceding)g(the)330 ! 4072 y(b)s(eginning)e(of)i(the)h(b)s(o)s(dy)e(of)h(the)h(text.)330 ! 4213 y(A)f(section)g(\\En)m(titled)f(XYZ")h(means)f(a)h(named)g ! (subunit)d(of)i(the)h(Do)s(cumen)m(t)h(whose)e(title)g(either)330 ! 4322 y(is)e(precisely)f(XYZ)i(or)f(con)m(tains)h(XYZ)g(in)e(paren)m ! (theses)j(follo)m(wing)d(text)j(that)f(translates)g(XYZ)f(in)330 ! 4432 y(another)e(language.)39 b(\(Here)26 b(XYZ)f(stands)f(for)h(a)g ! (sp)s(eci\014c)f(section)h(name)g(men)m(tioned)g(b)s(elo)m(w,)g(suc)m ! (h)330 4542 y(as)j(\\Ac)m(kno)m(wledgemen)m(ts",)k(\\Dedications",)d ! (\\Endorsemen)m(ts",)g(or)f(\\History".\))41 b(T)-8 b(o)29 ! b(\\Preserv)m(e)330 4651 y(the)34 b(Title")f(of)g(suc)m(h)h(a)g ! (section)f(when)g(y)m(ou)h(mo)s(dify)d(the)j(Do)s(cumen)m(t)h(means)e ! (that)h(it)f(remains)g(a)330 4761 y(section)e(\\En)m(titled)e(XYZ")i ! (according)f(to)h(this)f(de\014nition.)330 4902 y(The)d(Do)s(cumen)m(t) ! i(ma)m(y)f(include)d(W)-8 b(arran)m(t)m(y)30 b(Disclaimers)c(next)i(to) ! g(the)g(notice)g(whic)m(h)e(states)j(that)330 5011 y(this)k(License)g ! (applies)f(to)j(the)f(Do)s(cumen)m(t.)52 b(These)33 b(W)-8 ! b(arran)m(t)m(y)36 b(Disclaimers)c(are)j(considered)d(to)330 ! 5121 y(b)s(e)37 b(included)e(b)m(y)i(reference)h(in)f(this)f(License,)j ! (but)e(only)g(as)h(regards)f(disclaiming)e(w)m(arran)m(ties:)330 ! 5230 y(an)m(y)i(other)g(implication)e(that)i(these)g(W)-8 ! b(arran)m(t)m(y)39 b(Disclaimers)c(ma)m(y)j(ha)m(v)m(e)g(is)e(v)m(oid)g ! (and)g(has)h(no)330 5340 y(e\013ect)32 b(on)e(the)h(meaning)e(of)i ! (this)e(License.)p eop ! %%Page: 59 63 ! 59 62 bop 150 -116 a Ft(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m ! (ual)2104 b(59)199 299 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)330 ! 445 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)f(the)i(Do)s ! (cumen)m(t)h(in)e(an)m(y)h(medium,)g(either)g(commercially)f(or)330 ! 555 y(noncommercially)-8 b(,)45 b(pro)m(vided)c(that)i(this)e(License,) ! 46 b(the)c(cop)m(yrigh)m(t)h(notices,)j(and)c(the)h(license)330 ! 664 y(notice)36 b(sa)m(ying)g(this)e(License)i(applies)d(to)k(the)f(Do) ! s(cumen)m(t)g(are)g(repro)s(duced)e(in)h(all)f(copies,)k(and)330 ! 774 y(that)27 b(y)m(ou)g(add)f(no)h(other)f(conditions)f(whatso)s(ev)m ! (er)j(to)f(those)g(of)g(this)e(License.)39 b(Y)-8 b(ou)27 ! b(ma)m(y)g(not)g(use)330 883 y(tec)m(hnical)33 b(measures)f(to)i ! (obstruct)f(or)g(con)m(trol)g(the)g(reading)f(or)h(further)e(cop)m ! (ying)i(of)g(the)g(copies)330 993 y(y)m(ou)25 b(mak)m(e)g(or)g ! (distribute.)36 b(Ho)m(w)m(ev)m(er,)28 b(y)m(ou)d(ma)m(y)g(accept)h ! (comp)s(ensation)e(in)f(exc)m(hange)k(for)d(copies.)330 ! 1103 y(If)32 b(y)m(ou)g(distribute)e(a)j(large)f(enough)g(n)m(um)m(b)s ! (er)f(of)h(copies)g(y)m(ou)g(m)m(ust)h(also)f(follo)m(w)f(the)h ! (conditions)330 1212 y(in)d(section)i(3.)330 1358 y(Y)-8 ! b(ou)21 b(ma)m(y)h(also)e(lend)g(copies,)i(under)e(the)h(same)g ! (conditions)e(stated)j(ab)s(o)m(v)m(e,)i(and)c(y)m(ou)h(ma)m(y)g ! (publicly)330 1468 y(displa)m(y)29 b(copies.)199 1614 ! y(3.)61 b(COPYING)30 b(IN)g(QUANTITY)330 1760 y(If)25 ! b(y)m(ou)g(publish)d(prin)m(ted)h(copies)i(\(or)h(copies)f(in)f(media)g ! (that)i(commonly)f(ha)m(v)m(e)h(prin)m(ted)e(co)m(v)m(ers\))j(of)330 ! 1870 y(the)32 b(Do)s(cumen)m(t,)h(n)m(um)m(b)s(ering)d(more)i(than)f ! (100,)j(and)d(the)h(Do)s(cumen)m(t's)h(license)d(notice)i(requires)330 ! 1979 y(Co)m(v)m(er)j(T)-8 b(exts,)36 b(y)m(ou)f(m)m(ust)f(enclose)h ! (the)f(copies)g(in)f(co)m(v)m(ers)j(that)f(carry)-8 b(,)36 ! b(clearly)d(and)h(legibly)-8 b(,)34 b(all)330 2089 y(these)40 ! b(Co)m(v)m(er)g(T)-8 b(exts:)59 b(F)-8 b(ron)m(t-Co)m(v)m(er)41 ! b(T)-8 b(exts)40 b(on)f(the)g(fron)m(t)g(co)m(v)m(er,)44 ! b(and)38 b(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts)40 b(on)330 ! 2198 y(the)29 b(bac)m(k)h(co)m(v)m(er.)42 b(Both)30 b(co)m(v)m(ers)h(m) ! m(ust)e(also)g(clearly)f(and)h(legibly)e(iden)m(tify)g(y)m(ou)j(as)f ! (the)h(publisher)330 2308 y(of)k(these)h(copies.)52 b(The)34 ! b(fron)m(t)h(co)m(v)m(er)h(m)m(ust)e(presen)m(t)g(the)h(full)d(title)i ! (with)e(all)i(w)m(ords)f(of)i(the)f(title)330 2418 y(equally)c ! (prominen)m(t)f(and)h(visible.)40 b(Y)-8 b(ou)31 b(ma)m(y)g(add)g ! (other)g(material)f(on)h(the)g(co)m(v)m(ers)h(in)d(addition.)330 ! 2527 y(Cop)m(ying)35 b(with)g(c)m(hanges)i(limited)d(to)j(the)g(co)m(v) ! m(ers,)i(as)d(long)g(as)h(they)f(preserv)m(e)g(the)h(title)e(of)i(the) ! 330 2637 y(Do)s(cumen)m(t)h(and)e(satisfy)h(these)g(conditions,)h(can)f ! (b)s(e)g(treated)h(as)f(v)m(erbatim)g(cop)m(ying)g(in)f(other)330 ! 2746 y(resp)s(ects.)330 2892 y(If)c(the)h(required)e(texts)j(for)e ! (either)g(co)m(v)m(er)j(are)e(to)s(o)g(v)m(oluminous)e(to)i(\014t)g ! (legibly)-8 b(,)32 b(y)m(ou)h(should)e(put)330 3002 y(the)i(\014rst)f ! (ones)h(listed)e(\(as)j(man)m(y)f(as)g(\014t)g(reasonably\))f(on)h(the) ! g(actual)g(co)m(v)m(er,)i(and)e(con)m(tin)m(ue)g(the)330 ! 3112 y(rest)e(on)m(to)g(adjacen)m(t)h(pages.)330 3258 ! y(If)27 b(y)m(ou)g(publish)c(or)k(distribute)e(Opaque)h(copies)h(of)g ! (the)h(Do)s(cumen)m(t)f(n)m(um)m(b)s(ering)e(more)j(than)e(100,)330 ! 3367 y(y)m(ou)i(m)m(ust)g(either)g(include)d(a)k(mac)m(hine-readable)e ! (T)-8 b(ransparen)m(t)28 b(cop)m(y)h(along)f(with)e(eac)m(h)j(Opaque) ! 330 3477 y(cop)m(y)-8 b(,)38 b(or)d(state)h(in)e(or)h(with)f(eac)m(h)i ! (Opaque)e(cop)m(y)i(a)g(computer-net)m(w)m(ork)g(lo)s(cation)f(from)f ! (whic)m(h)330 3587 y(the)24 b(general)h(net)m(w)m(ork-using)f(public)d ! (has)j(access)i(to)f(do)m(wnload)e(using)g(public-standard)e(net)m(w)m ! (ork)330 3696 y(proto)s(cols)39 b(a)g(complete)g(T)-8 ! b(ransparen)m(t)39 b(cop)m(y)g(of)g(the)h(Do)s(cumen)m(t,)i(free)d(of)g ! (added)f(material.)65 b(If)330 3806 y(y)m(ou)39 b(use)g(the)g(latter)g ! (option,)h(y)m(ou)g(m)m(ust)e(tak)m(e)j(reasonably)d(pruden)m(t)f ! (steps,)k(when)d(y)m(ou)h(b)s(egin)330 3915 y(distribution)c(of)j ! (Opaque)g(copies)g(in)e(quan)m(tit)m(y)-8 b(,)42 b(to)c(ensure)g(that)h ! (this)e(T)-8 b(ransparen)m(t)38 b(cop)m(y)h(will)330 ! 4025 y(remain)29 b(th)m(us)h(accessible)g(at)h(the)f(stated)h(lo)s ! (cation)f(un)m(til)e(at)j(least)g(one)f(y)m(ear)h(after)g(the)f(last)g ! (time)330 4134 y(y)m(ou)37 b(distribute)d(an)j(Opaque)f(cop)m(y)i ! (\(directly)e(or)g(through)g(y)m(our)h(agen)m(ts)h(or)f(retailers\))f ! (of)h(that)330 4244 y(edition)29 b(to)i(the)g(public.)330 ! 4390 y(It)k(is)e(requested,)j(but)e(not)h(required,)f(that)h(y)m(ou)g ! (con)m(tact)h(the)f(authors)f(of)h(the)g(Do)s(cumen)m(t)g(w)m(ell)330 ! 4500 y(b)s(efore)28 b(redistributing)d(an)m(y)k(large)g(n)m(um)m(b)s ! (er)e(of)i(copies,)g(to)g(giv)m(e)g(them)g(a)g(c)m(hance)h(to)f(pro)m ! (vide)f(y)m(ou)330 4609 y(with)h(an)h(up)s(dated)f(v)m(ersion)h(of)h ! (the)f(Do)s(cumen)m(t.)199 4755 y(4.)61 b(MODIFICA)-8 ! b(TIONS)330 4902 y(Y)g(ou)26 b(ma)m(y)g(cop)m(y)g(and)f(distribute)e(a) ! j(Mo)s(di\014ed)e(V)-8 b(ersion)25 b(of)h(the)g(Do)s(cumen)m(t)g(under) ! e(the)h(conditions)330 5011 y(of)c(sections)g(2)h(and)e(3)h(ab)s(o)m(v) ! m(e,)k(pro)m(vided)19 b(that)j(y)m(ou)f(release)h(the)f(Mo)s(di\014ed)e ! (V)-8 b(ersion)21 b(under)e(precisely)330 5121 y(this)28 ! b(License,)h(with)f(the)h(Mo)s(di\014ed)e(V)-8 b(ersion)29 ! b(\014lling)d(the)j(role)g(of)g(the)g(Do)s(cumen)m(t,)h(th)m(us)f ! (licensing)330 5230 y(distribution)h(and)k(mo)s(di\014cation)e(of)j ! (the)f(Mo)s(di\014ed)e(V)-8 b(ersion)34 b(to)h(who)s(ev)m(er)f(p)s ! (ossesses)f(a)i(cop)m(y)g(of)330 5340 y(it.)40 b(In)30 ! b(addition,)f(y)m(ou)h(m)m(ust)h(do)f(these)h(things)e(in)g(the)i(Mo)s ! (di\014ed)d(V)-8 b(ersion:)p eop ! %%Page: 60 64 ! 60 63 bop 150 -116 a Ft(60)2600 b(GNU)31 b(Readline)e(Library)357 ! 299 y(A.)60 b(Use)33 b(in)e(the)i(Title)f(P)m(age)i(\(and)f(on)f(the)h ! (co)m(v)m(ers,)i(if)d(an)m(y\))h(a)g(title)f(distinct)f(from)i(that)g ! (of)g(the)510 408 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f ! (previous)e(v)m(ersions)h(\(whic)m(h)g(should,)g(if)g(there)h(w)m(ere)g ! (an)m(y)-8 b(,)510 518 y(b)s(e)31 b(listed)f(in)g(the)h(History)g ! (section)g(of)h(the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 ! b(ma)m(y)g(use)f(the)g(same)h(title)f(as)510 628 y(a)g(previous)e(v)m ! (ersion)g(if)h(the)g(original)f(publisher)e(of)j(that)h(v)m(ersion)f ! (giv)m(es)h(p)s(ermission.)360 758 y(B.)61 b(List)30 ! b(on)g(the)h(Title)e(P)m(age,)k(as)d(authors,)h(one)g(or)f(more)h(p)s ! (ersons)e(or)h(en)m(tities)h(resp)s(onsible)c(for)510 ! 867 y(authorship)d(of)i(the)h(mo)s(di\014cations)d(in)h(the)h(Mo)s ! (di\014ed)e(V)-8 b(ersion,)27 b(together)h(with)c(at)j(least)g(\014v)m ! (e)510 977 y(of)d(the)g(principal)d(authors)i(of)i(the)f(Do)s(cumen)m ! (t)g(\(all)f(of)i(its)e(principal)e(authors,)k(if)e(it)g(has)h(few)m ! (er)510 1087 y(than)30 b(\014v)m(e\),)h(unless)e(they)i(release)f(y)m ! (ou)h(from)f(this)f(requiremen)m(t.)359 1217 y(C.)60 ! b(State)32 b(on)e(the)h(Title)f(page)h(the)g(name)g(of)g(the)g ! (publisher)c(of)k(the)g(Mo)s(di\014ed)e(V)-8 b(ersion,)31 ! b(as)g(the)510 1326 y(publisher.)355 1456 y(D.)61 b(Preserv)m(e)31 ! b(all)e(the)i(cop)m(yrigh)m(t)g(notices)f(of)h(the)f(Do)s(cumen)m(t.) ! 363 1587 y(E.)60 b(Add)30 b(an)i(appropriate)e(cop)m(yrigh)m(t)i ! (notice)f(for)h(y)m(our)f(mo)s(di\014cations)e(adjacen)m(t)k(to)f(the)g ! (other)510 1696 y(cop)m(yrigh)m(t)f(notices.)365 1826 ! y(F.)61 b(Include,)27 b(immediately)f(after)i(the)h(cop)m(yrigh)m(t)f ! (notices,)h(a)f(license)f(notice)h(giving)f(the)h(public)510 ! 1936 y(p)s(ermission)21 b(to)26 b(use)e(the)g(Mo)s(di\014ed)f(V)-8 ! b(ersion)24 b(under)f(the)i(terms)f(of)h(this)e(License,)j(in)d(the)h ! (form)510 2045 y(sho)m(wn)30 b(in)f(the)h(Addendum)f(b)s(elo)m(w.)353 ! 2176 y(G.)61 b(Preserv)m(e)23 b(in)f(that)h(license)f(notice)h(the)g ! (full)e(lists)g(of)i(In)m(v)-5 b(arian)m(t)22 b(Sections)h(and)f ! (required)f(Co)m(v)m(er)510 2285 y(T)-8 b(exts)31 b(giv)m(en)f(in)f ! (the)i(Do)s(cumen)m(t's)g(license)f(notice.)357 2415 ! y(H.)60 b(Include)29 b(an)h(unaltered)f(cop)m(y)i(of)g(this)e(License.) ! 392 2545 y(I.)60 b(Preserv)m(e)33 b(the)f(section)g(En)m(titled)f ! (\\History",)i(Preserv)m(e)g(its)e(Title,)h(and)f(add)h(to)h(it)e(an)h ! (item)510 2655 y(stating)c(at)h(least)f(the)h(title,)f(y)m(ear,)i(new)d ! (authors,)i(and)e(publisher)d(of)29 b(the)f(Mo)s(di\014ed)e(V)-8 ! b(ersion)510 2765 y(as)32 b(giv)m(en)f(on)g(the)h(Title)e(P)m(age.)45 ! b(If)31 b(there)h(is)e(no)h(section)h(En)m(titled)e(\\History")i(in)e ! (the)h(Do)s(cu-)510 2874 y(men)m(t,)37 b(create)f(one)f(stating)g(the)g ! (title,)g(y)m(ear,)i(authors,)f(and)e(publisher)d(of)k(the)g(Do)s ! (cumen)m(t)510 2984 y(as)h(giv)m(en)g(on)g(its)g(Title)f(P)m(age,)k ! (then)d(add)g(an)g(item)f(describing)f(the)i(Mo)s(di\014ed)f(V)-8 ! b(ersion)36 b(as)510 3093 y(stated)31 b(in)e(the)i(previous)e(sen)m ! (tence.)378 3224 y(J.)60 b(Preserv)m(e)33 b(the)g(net)m(w)m(ork)g(lo)s ! (cation,)g(if)e(an)m(y)-8 b(,)34 b(giv)m(en)e(in)g(the)g(Do)s(cumen)m ! (t)h(for)g(public)c(access)34 b(to)510 3333 y(a)e(T)-8 ! b(ransparen)m(t)30 b(cop)m(y)i(of)g(the)f(Do)s(cumen)m(t,)h(and)f(lik)m ! (ewise)e(the)j(net)m(w)m(ork)g(lo)s(cations)e(giv)m(en)h(in)510 ! 3443 y(the)h(Do)s(cumen)m(t)g(for)g(previous)e(v)m(ersions)h(it)g(w)m ! (as)h(based)f(on.)45 b(These)31 b(ma)m(y)h(b)s(e)f(placed)g(in)g(the) ! 510 3552 y(\\History")26 b(section.)39 b(Y)-8 b(ou)25 ! b(ma)m(y)h(omit)f(a)g(net)m(w)m(ork)h(lo)s(cation)e(for)h(a)h(w)m(ork)f ! (that)g(w)m(as)h(published)510 3662 y(at)36 b(least)g(four)f(y)m(ears)i ! (b)s(efore)e(the)h(Do)s(cumen)m(t)h(itself,)f(or)f(if)g(the)h(original) ! e(publisher)e(of)k(the)510 3771 y(v)m(ersion)30 b(it)g(refers)g(to)h ! (giv)m(es)g(p)s(ermission.)354 3902 y(K.)60 b(F)-8 b(or)24 ! b(an)m(y)h(section)e(En)m(titled)g(\\Ac)m(kno)m(wledgemen)m(ts")j(or)e ! (\\Dedications",)i(Preserv)m(e)e(the)g(Title)510 4011 ! y(of)j(the)f(section,)i(and)e(preserv)m(e)h(in)e(the)i(section)f(all)g ! (the)g(substance)h(and)f(tone)h(of)f(eac)m(h)i(of)f(the)510 ! 4121 y(con)m(tributor)j(ac)m(kno)m(wledgemen)m(ts)i(and/or)e ! (dedications)f(giv)m(en)i(therein.)368 4251 y(L.)60 b(Preserv)m(e)36 ! b(all)e(the)i(In)m(v)-5 b(arian)m(t)35 b(Sections)g(of)g(the)h(Do)s ! (cumen)m(t,)h(unaltered)e(in)f(their)g(text)j(and)510 ! 4361 y(in)e(their)g(titles.)56 b(Section)36 b(n)m(um)m(b)s(ers)e(or)i ! (the)g(equiv)-5 b(alen)m(t)36 b(are)g(not)g(considered)f(part)h(of)g ! (the)510 4470 y(section)31 b(titles.)341 4600 y(M.)61 ! b(Delete)32 b(an)m(y)f(section)g(En)m(titled)e(\\Endorsemen)m(ts".)42 ! b(Suc)m(h)30 b(a)i(section)e(ma)m(y)i(not)f(b)s(e)f(included)510 ! 4710 y(in)f(the)i(Mo)s(di\014ed)d(V)-8 b(ersion.)357 ! 4840 y(N.)60 b(Do)29 b(not)g(retitle)f(an)m(y)g(existing)g(section)g ! (to)h(b)s(e)f(En)m(titled)f(\\Endorsemen)m(ts")i(or)f(to)h(con\015ict)f ! (in)510 4950 y(title)i(with)f(an)m(y)i(In)m(v)-5 b(arian)m(t)30 ! b(Section.)354 5080 y(O.)60 b(Preserv)m(e)31 b(an)m(y)g(W)-8 ! b(arran)m(t)m(y)32 b(Disclaimers.)330 5230 y(If)h(the)g(Mo)s(di\014ed)f ! (V)-8 b(ersion)33 b(includes)e(new)i(fron)m(t-matter)i(sections)e(or)g ! (app)s(endices)f(that)i(qualify)330 5340 y(as)28 b(Secondary)g ! (Sections)f(and)g(con)m(tain)i(no)e(material)h(copied)f(from)g(the)h ! (Do)s(cumen)m(t,)i(y)m(ou)e(ma)m(y)g(at)p eop ! %%Page: 61 65 ! 61 64 bop 150 -116 a Ft(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m ! (ual)2104 b(61)330 299 y(y)m(our)32 b(option)g(designate)h(some)f(or)h ! (all)e(of)h(these)h(sections)g(as)f(in)m(v)-5 b(arian)m(t.)46 ! b(T)-8 b(o)33 b(do)f(this,)g(add)g(their)330 408 y(titles)j(to)h(the)f ! (list)f(of)i(In)m(v)-5 b(arian)m(t)35 b(Sections)g(in)f(the)i(Mo)s ! (di\014ed)e(V)-8 b(ersion's)35 b(license)f(notice.)56 ! b(These)330 518 y(titles)30 b(m)m(ust)g(b)s(e)g(distinct)f(from)g(an)m ! (y)i(other)g(section)f(titles.)330 650 y(Y)-8 b(ou)43 ! b(ma)m(y)g(add)f(a)g(section)h(En)m(titled)e(\\Endorsemen)m(ts",)46 ! b(pro)m(vided)41 b(it)h(con)m(tains)g(nothing)g(but)330 ! 759 y(endorsemen)m(ts)30 b(of)g(y)m(our)f(Mo)s(di\014ed)f(V)-8 ! b(ersion)30 b(b)m(y)f(v)-5 b(arious)29 b(parties|for)g(example,)g ! (statemen)m(ts)j(of)330 869 y(p)s(eer)27 b(review)f(or)h(that)h(the)f ! (text)i(has)d(b)s(een)h(appro)m(v)m(ed)g(b)m(y)g(an)h(organization)f ! (as)g(the)h(authoritativ)m(e)330 978 y(de\014nition)g(of)j(a)f ! (standard.)330 1110 y(Y)-8 b(ou)29 b(ma)m(y)g(add)e(a)i(passage)g(of)g ! (up)e(to)i(\014v)m(e)g(w)m(ords)e(as)i(a)g(F)-8 b(ron)m(t-Co)m(v)m(er) ! 30 b(T)-8 b(ext,)30 b(and)e(a)g(passage)i(of)e(up)330 ! 1219 y(to)g(25)g(w)m(ords)e(as)i(a)f(Bac)m(k-Co)m(v)m(er)j(T)-8 ! b(ext,)29 b(to)f(the)f(end)f(of)i(the)f(list)f(of)h(Co)m(v)m(er)h(T)-8 ! b(exts)27 b(in)f(the)i(Mo)s(di\014ed)330 1329 y(V)-8 ! b(ersion.)57 b(Only)34 b(one)i(passage)h(of)f(F)-8 b(ron)m(t-Co)m(v)m ! (er)38 b(T)-8 b(ext)36 b(and)g(one)g(of)g(Bac)m(k-Co)m(v)m(er)j(T)-8 ! b(ext)36 b(ma)m(y)h(b)s(e)330 1439 y(added)27 b(b)m(y)g(\(or)h(through) ! f(arrangemen)m(ts)h(made)g(b)m(y\))g(an)m(y)g(one)f(en)m(tit)m(y)-8 ! b(.)41 b(If)27 b(the)h(Do)s(cumen)m(t)g(already)330 1548 ! y(includes)k(a)i(co)m(v)m(er)h(text)g(for)f(the)g(same)h(co)m(v)m(er,)h ! (previously)c(added)h(b)m(y)h(y)m(ou)g(or)g(b)m(y)g(arrangemen)m(t)330 ! 1658 y(made)h(b)m(y)g(the)h(same)f(en)m(tit)m(y)h(y)m(ou)g(are)f ! (acting)h(on)f(b)s(ehalf)e(of,)k(y)m(ou)f(ma)m(y)g(not)f(add)g ! (another;)j(but)330 1767 y(y)m(ou)c(ma)m(y)h(replace)f(the)g(old)f ! (one,)j(on)e(explicit)e(p)s(ermission)f(from)i(the)i(previous)d ! (publisher)e(that)330 1877 y(added)g(the)g(old)g(one.)330 ! 2008 y(The)25 b(author\(s\))h(and)f(publisher\(s\))d(of)k(the)f(Do)s ! (cumen)m(t)h(do)g(not)f(b)m(y)h(this)e(License)h(giv)m(e)h(p)s ! (ermission)330 2118 y(to)31 b(use)f(their)f(names)i(for)f(publicit)m(y) ! d(for)k(or)f(to)h(assert)g(or)f(imply)e(endorsemen)m(t)i(of)h(an)m(y)g ! (Mo)s(di\014ed)330 2228 y(V)-8 b(ersion.)199 2359 y(5.)61 ! b(COMBINING)31 b(DOCUMENTS)330 2491 y(Y)-8 b(ou)39 b(ma)m(y)g(com)m ! (bine)g(the)g(Do)s(cumen)m(t)g(with)f(other)g(do)s(cumen)m(ts)h ! (released)f(under)g(this)f(License,)330 2600 y(under)g(the)h(terms)g ! (de\014ned)f(in)g(section)h(4)h(ab)s(o)m(v)m(e)g(for)f(mo)s(di\014ed)e ! (v)m(ersions,)k(pro)m(vided)d(that)i(y)m(ou)330 2710 ! y(include)23 b(in)h(the)h(com)m(bination)g(all)f(of)i(the)f(In)m(v)-5 ! b(arian)m(t)25 b(Sections)g(of)h(all)e(of)h(the)h(original)d(do)s ! (cumen)m(ts,)330 2819 y(unmo)s(di\014ed,)i(and)h(list)f(them)i(all)e ! (as)i(In)m(v)-5 b(arian)m(t)27 b(Sections)f(of)h(y)m(our)g(com)m(bined) ! f(w)m(ork)g(in)g(its)g(license)330 2929 y(notice,)31 ! b(and)f(that)h(y)m(ou)f(preserv)m(e)h(all)e(their)h(W)-8 ! b(arran)m(t)m(y)32 b(Disclaimers.)330 3061 y(The)e(com)m(bined)f(w)m ! (ork)i(need)e(only)h(con)m(tain)g(one)h(cop)m(y)g(of)f(this)f(License,) ! i(and)e(m)m(ultiple)f(iden)m(tical)330 3170 y(In)m(v)-5 ! b(arian)m(t)32 b(Sections)g(ma)m(y)h(b)s(e)f(replaced)g(with)f(a)i ! (single)e(cop)m(y)-8 b(.)48 b(If)32 b(there)h(are)g(m)m(ultiple)d(In)m ! (v)-5 b(arian)m(t)330 3280 y(Sections)26 b(with)g(the)h(same)g(name)g ! (but)f(di\013eren)m(t)g(con)m(ten)m(ts,)j(mak)m(e)f(the)f(title)f(of)h ! (eac)m(h)h(suc)m(h)f(section)330 3389 y(unique)32 b(b)m(y)i(adding)e ! (at)j(the)f(end)g(of)g(it,)g(in)f(paren)m(theses,)j(the)e(name)g(of)g ! (the)g(original)e(author)i(or)330 3499 y(publisher)21 ! b(of)k(that)h(section)f(if)f(kno)m(wn,)i(or)f(else)g(a)g(unique)e(n)m ! (um)m(b)s(er.)38 b(Mak)m(e)26 b(the)g(same)f(adjustmen)m(t)330 ! 3608 y(to)g(the)g(section)f(titles)g(in)f(the)i(list)e(of)h(In)m(v)-5 ! b(arian)m(t)25 b(Sections)f(in)f(the)h(license)g(notice)h(of)f(the)h ! (com)m(bined)330 3718 y(w)m(ork.)330 3850 y(In)41 b(the)g(com)m ! (bination,)j(y)m(ou)d(m)m(ust)g(com)m(bine)g(an)m(y)h(sections)f(En)m ! (titled)f(\\History")i(in)e(the)h(v)-5 b(ari-)330 3959 ! y(ous)32 b(original)e(do)s(cumen)m(ts,)j(forming)e(one)h(section)g(En)m ! (titled)f(\\History";)j(lik)m(ewise)d(com)m(bine)h(an)m(y)330 ! 4069 y(sections)g(En)m(titled)e(\\Ac)m(kno)m(wledgemen)m(ts",)35 ! b(and)c(an)m(y)h(sections)g(En)m(titled)f(\\Dedications".)45 ! b(Y)-8 b(ou)330 4178 y(m)m(ust)30 b(delete)h(all)e(sections)i(En)m ! (titled)e(\\Endorsemen)m(ts.")199 4310 y(6.)61 b(COLLECTIONS)28 ! b(OF)i(DOCUMENTS)330 4441 y(Y)-8 b(ou)32 b(ma)m(y)h(mak)m(e)g(a)f ! (collection)f(consisting)g(of)h(the)g(Do)s(cumen)m(t)g(and)g(other)g ! (do)s(cumen)m(ts)f(released)330 4551 y(under)41 b(this)g(License,)k ! (and)d(replace)g(the)h(individual)38 b(copies)k(of)g(this)f(License)h ! (in)f(the)i(v)-5 b(arious)330 4661 y(do)s(cumen)m(ts)42 ! b(with)f(a)i(single)e(cop)m(y)j(that)f(is)e(included)f(in)h(the)i ! (collection,)i(pro)m(vided)c(that)j(y)m(ou)330 4770 y(follo)m(w)36 ! b(the)i(rules)d(of)i(this)f(License)h(for)g(v)m(erbatim)g(cop)m(ying)g ! (of)g(eac)m(h)h(of)f(the)h(do)s(cumen)m(ts)e(in)g(all)330 ! 4880 y(other)31 b(resp)s(ects.)330 5011 y(Y)-8 b(ou)32 ! b(ma)m(y)g(extract)h(a)f(single)e(do)s(cumen)m(t)h(from)g(suc)m(h)g(a)h ! (collection,)f(and)g(distribute)e(it)i(individu-)330 ! 5121 y(ally)j(under)f(this)h(License,)i(pro)m(vided)e(y)m(ou)h(insert)f ! (a)h(cop)m(y)h(of)f(this)f(License)g(in)m(to)h(the)h(extracted)330 ! 5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)g(this)f(License)h(in)g(all)f ! (other)i(resp)s(ects)f(regarding)g(v)m(erbatim)g(cop)m(ying)h(of)330 ! 5340 y(that)e(do)s(cumen)m(t.)p eop ! %%Page: 62 66 ! 62 65 bop 150 -116 a Ft(62)2600 b(GNU)31 b(Readline)e(Library)199 ! 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS) ! 330 428 y(A)d(compilation)f(of)h(the)g(Do)s(cumen)m(t)h(or)f(its)f ! (deriv)-5 b(ativ)m(es)28 b(with)e(other)j(separate)g(and)e(indep)s ! (enden)m(t)330 538 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)e(or)i ! (on)f(a)g(v)m(olume)g(of)h(a)f(storage)i(or)e(distribution)d(medium,)i ! (is)h(called)330 648 y(an)d(\\aggregate")k(if)29 b(the)h(cop)m(yrigh)m ! (t)h(resulting)d(from)h(the)i(compilation)d(is)h(not)i(used)e(to)i ! (limit)d(the)330 757 y(legal)e(righ)m(ts)g(of)h(the)g(compilation's)e ! (users)h(b)s(ey)m(ond)g(what)g(the)h(individual)22 b(w)m(orks)k(p)s ! (ermit.)38 b(When)330 867 y(the)28 b(Do)s(cumen)m(t)g(is)f(included)e ! (an)i(aggregate,)32 b(this)26 b(License)h(do)s(es)h(not)g(apply)e(to)i ! (the)g(other)g(w)m(orks)330 976 y(in)h(the)i(aggregate)i(whic)m(h)c ! (are)i(not)f(themselv)m(es)h(deriv)-5 b(ativ)m(e)30 b(w)m(orks)g(of)h ! (the)f(Do)s(cumen)m(t.)330 1106 y(If)22 b(the)h(Co)m(v)m(er)h(T)-8 ! b(ext)23 b(requiremen)m(t)f(of)h(section)g(3)g(is)f(applicable)f(to)i ! (these)h(copies)e(of)h(the)g(Do)s(cumen)m(t,)330 1215 ! y(then)f(if)f(the)i(Do)s(cumen)m(t)g(is)f(less)f(than)h(one)h(half)e ! (of)i(the)g(en)m(tire)f(aggregate,)27 b(the)c(Do)s(cumen)m(t's)g(Co)m ! (v)m(er)330 1325 y(T)-8 b(exts)27 b(ma)m(y)g(b)s(e)f(placed)g(on)h(co)m ! (v)m(ers)h(that)f(brac)m(k)m(et)h(the)f(Do)s(cumen)m(t)g(within)d(the)j ! (aggregate,)j(or)d(the)330 1435 y(electronic)35 b(equiv)-5 ! b(alen)m(t)34 b(of)i(co)m(v)m(ers)g(if)e(the)h(Do)s(cumen)m(t)h(is)e ! (in)g(electronic)h(form.)54 b(Otherwise)34 b(they)330 ! 1544 y(m)m(ust)c(app)s(ear)g(on)g(prin)m(ted)f(co)m(v)m(ers)j(that)f ! (brac)m(k)m(et)h(the)f(whole)e(aggregate.)199 1674 y(8.)61 ! b(TRANSLA)-8 b(TION)330 1803 y(T)g(ranslation)39 b(is)g(considered)f(a) ! j(kind)d(of)i(mo)s(di\014cation,)h(so)f(y)m(ou)g(ma)m(y)h(distribute)c ! (translations)330 1913 y(of)45 b(the)f(Do)s(cumen)m(t)h(under)e(the)h ! (terms)h(of)f(section)h(4.)83 b(Replacing)43 b(In)m(v)-5 ! b(arian)m(t)44 b(Sections)g(with)330 2022 y(translations)g(requires)g ! (sp)s(ecial)g(p)s(ermission)f(from)i(their)f(cop)m(yrigh)m(t)i ! (holders,)i(but)d(y)m(ou)g(ma)m(y)330 2132 y(include)22 ! b(translations)i(of)g(some)h(or)g(all)e(In)m(v)-5 b(arian)m(t)24 ! b(Sections)g(in)f(addition)g(to)i(the)g(original)e(v)m(ersions)330 ! 2242 y(of)32 b(these)f(In)m(v)-5 b(arian)m(t)32 b(Sections.)43 ! b(Y)-8 b(ou)32 b(ma)m(y)g(include)d(a)j(translation)e(of)i(this)e ! (License,)i(and)e(all)h(the)330 2351 y(license)40 b(notices)h(in)f(the) ! i(Do)s(cumen)m(t,)j(and)40 b(an)m(y)i(W)-8 b(arran)m(t)m(y)42 ! b(Disclaimers,)h(pro)m(vided)d(that)i(y)m(ou)330 2461 ! y(also)e(include)e(the)i(original)e(English)g(v)m(ersion)h(of)h(this)f ! (License)h(and)f(the)h(original)e(v)m(ersions)i(of)330 ! 2570 y(those)35 b(notices)f(and)f(disclaimers.)50 b(In)33 ! b(case)i(of)g(a)f(disagreemen)m(t)g(b)s(et)m(w)m(een)h(the)f ! (translation)g(and)330 2680 y(the)h(original)f(v)m(ersion)g(of)i(this)e ! (License)h(or)g(a)g(notice)h(or)f(disclaimer,)f(the)i(original)d(v)m ! (ersion)i(will)330 2790 y(prev)-5 b(ail.)330 2919 y(If)28 ! b(a)h(section)g(in)e(the)i(Do)s(cumen)m(t)h(is)d(En)m(titled)h(\\Ac)m ! (kno)m(wledgemen)m(ts",)j(\\Dedications",)f(or)f(\\His-)330 ! 3029 y(tory",)f(the)f(requiremen)m(t)e(\(section)i(4\))g(to)g(Preserv)m ! (e)g(its)e(Title)h(\(section)g(1\))h(will)d(t)m(ypically)h(require)330 ! 3138 y(c)m(hanging)30 b(the)h(actual)g(title.)199 3268 ! y(9.)61 b(TERMINA)-8 b(TION)330 3397 y(Y)g(ou)30 b(ma)m(y)h(not)f(cop)m ! (y)-8 b(,)31 b(mo)s(dify)-8 b(,)29 b(sublicense,)f(or)i(distribute)d ! (the)j(Do)s(cumen)m(t)g(except)h(as)f(expressly)330 3507 ! y(pro)m(vided)40 b(for)i(under)e(this)h(License.)74 b(An)m(y)42 ! b(other)g(attempt)h(to)g(cop)m(y)-8 b(,)46 b(mo)s(dify)-8 ! b(,)43 b(sublicense)d(or)330 3616 y(distribute)34 b(the)j(Do)s(cumen)m ! (t)g(is)f(v)m(oid,)i(and)e(will)e(automatically)i(terminate)h(y)m(our)f ! (righ)m(ts)g(under)330 3726 y(this)27 b(License.)39 b(Ho)m(w)m(ev)m ! (er,)31 b(parties)c(who)g(ha)m(v)m(e)i(receiv)m(ed)f(copies,)h(or)e ! (righ)m(ts,)h(from)g(y)m(ou)g(under)e(this)330 3836 y(License)36 ! b(will)e(not)j(ha)m(v)m(e)h(their)e(licenses)f(terminated)i(so)g(long)f ! (as)h(suc)m(h)f(parties)g(remain)g(in)f(full)330 3945 ! y(compliance.)154 4075 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e ! (LICENSE)330 4204 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8 ! b(oundation)42 b(ma)m(y)g(publish)c(new,)44 b(revised)c(v)m(ersions)h ! (of)h(the)g(GNU)g(F)-8 b(ree)330 4314 y(Do)s(cumen)m(tation)33 ! b(License)e(from)h(time)g(to)h(time.)45 b(Suc)m(h)31 ! b(new)h(v)m(ersions)f(will)f(b)s(e)h(similar)e(in)i(spirit)330 ! 4423 y(to)k(the)g(presen)m(t)f(v)m(ersion,)h(but)f(ma)m(y)h(di\013er)e ! (in)g(detail)g(to)i(address)f(new)g(problems)e(or)j(concerns.)330 ! 4533 y(See)c Fs(http://www.gnu.org/copy)o(left)o(/)p ! Ft(.)330 4663 y(Eac)m(h)f(v)m(ersion)f(of)h(the)f(License)g(is)g(giv)m ! (en)g(a)h(distinguishing)25 b(v)m(ersion)k(n)m(um)m(b)s(er.)39 ! b(If)29 b(the)g(Do)s(cumen)m(t)330 4772 y(sp)s(eci\014es)44 ! b(that)i(a)g(particular)d(n)m(um)m(b)s(ered)h(v)m(ersion)h(of)g(this)f ! (License)h(\\or)h(an)m(y)g(later)f(v)m(ersion")330 4882 ! y(applies)31 b(to)i(it,)g(y)m(ou)f(ha)m(v)m(e)i(the)f(option)f(of)g ! (follo)m(wing)f(the)i(terms)f(and)g(conditions)f(either)h(of)g(that)330 ! 4991 y(sp)s(eci\014ed)k(v)m(ersion)i(or)f(of)h(an)m(y)h(later)f(v)m ! (ersion)f(that)h(has)g(b)s(een)f(published)d(\(not)39 ! b(as)f(a)g(draft\))g(b)m(y)330 5101 y(the)33 b(F)-8 b(ree)34 ! b(Soft)m(w)m(are)f(F)-8 b(oundation.)48 b(If)32 b(the)h(Do)s(cumen)m(t) ! g(do)s(es)g(not)g(sp)s(ecify)e(a)i(v)m(ersion)f(n)m(um)m(b)s(er)g(of) ! 330 5210 y(this)h(License,)j(y)m(ou)e(ma)m(y)i(c)m(ho)s(ose)f(an)m(y)g ! (v)m(ersion)f(ev)m(er)h(published)c(\(not)k(as)g(a)f(draft\))h(b)m(y)f ! (the)h(F)-8 b(ree)330 5320 y(Soft)m(w)m(are)31 b(F)-8 ! b(oundation.)p eop ! %%Page: 63 67 ! 63 66 bop 150 -116 a Ft(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m ! (ual)2104 b(63)150 299 y Fh(A.1.1)62 b(ADDENDUM:)41 b(Ho)m(w)g(to)g ! (use)g(this)g(License)g(for)g(y)m(our)g(do)s(cumen)m(ts)275 ! 543 y Ft(T)-8 b(o)27 b(use)g(this)f(License)h(in)f(a)i(do)s(cumen)m(t)f ! (y)m(ou)h(ha)m(v)m(e)g(written,)f(include)e(a)j(cop)m(y)g(of)f(the)h ! (License)f(in)f(the)150 653 y(do)s(cumen)m(t)k(and)g(put)g(the)g(follo) ! m(wing)f(cop)m(yrigh)m(t)i(and)f(license)f(notices)h(just)g(after)h ! (the)g(title)f(page:)468 765 y Fd(Copyright)42 b(\(C\))79 ! b Fc(year)88 b(your)40 b(name)p Fd(.)468 852 y(Permission)i(is)e ! (granted)g(to)g(copy,)h(distribute)g(and/or)g(modify)f(this)g(document) ! 468 939 y(under)h(the)f(terms)g(of)g(the)g(GNU)g(Free)g(Documentation)i ! (License,)f(Version)g(1.2)468 1026 y(or)f(any)g(later)g(version)h ! (published)h(by)d(the)h(Free)g(Software)h(Foundation;)468 ! 1113 y(with)g(no)e(Invariant)j(Sections,)f(no)f(Front-Cover)h(Texts,)g ! (and)f(no)f(Back-Cover)j(Texts.)468 1200 y(A)e(copy)g(of)g(the)g ! (license)g(is)g(included)h(in)f(the)g(section)h(entitled)g(``GNU)468 ! 1288 y(Free)g(Documentation)h(License''.)275 1410 y Ft(If)d(y)m(ou)h ! (ha)m(v)m(e)h(In)m(v)-5 b(arian)m(t)40 b(Sections,)i(F)-8 ! b(ron)m(t-Co)m(v)m(er)42 b(T)-8 b(exts)41 b(and)e(Bac)m(k-Co)m(v)m(er)k ! (T)-8 b(exts,)43 b(replace)d(the)150 1520 y(\\with...T)-8 ! b(exts.")42 b(line)28 b(with)i(this:)547 1632 y Fd(with)40 ! b(the)g(Invariant)h(Sections)g(being)g Fc(list)f(their)g(titles)p ! Fd(,)h(with)547 1719 y(the)f(Front-Cover)i(Texts)e(being)g ! Fc(list)p Fd(,)h(and)f(with)g(the)g(Back-Cover)h(Texts)547 ! 1806 y(being)f Fc(list)p Fd(.)275 1929 y Ft(If)34 b(y)m(ou)i(ha)m(v)m ! (e)g(In)m(v)-5 b(arian)m(t)35 b(Sections)g(without)f(Co)m(v)m(er)i(T)-8 ! b(exts,)38 b(or)d(some)g(other)h(com)m(bination)e(of)i(the)150 ! 2038 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g(alternativ)m(es)g(to)g ! (suit)e(the)i(situation.)275 2173 y(If)23 b(y)m(our)h(do)s(cumen)m(t)f ! (con)m(tains)h(non)m(trivial)e(examples)i(of)g(program)f(co)s(de,)j(w)m ! (e)e(recommend)g(releasing)150 2283 y(these)44 b(examples)e(in)g ! (parallel)f(under)h(y)m(our)h(c)m(hoice)h(of)f(free)g(soft)m(w)m(are)h ! (license,)i(suc)m(h)d(as)g(the)g(GNU)150 2392 y(General)30 ! b(Public)e(License,)j(to)g(p)s(ermit)d(their)i(use)g(in)f(free)h(soft)m ! (w)m(are.)p eop ! %%Page: 64 68 ! 64 67 bop 150 -116 a Ft(64)2600 b(GNU)31 b(Readline)e(Library)p eop ! %%Page: 65 69 ! 65 68 bop 150 -116 a Ft(Concept)31 b(Index)2927 b(65)150 ! 299 y Fp(Concept)52 b(Index)150 638 y Fr(A)150 759 y ! Fb(application-sp)r(eci\014c)27 b(completion)e(functions)9 ! b Fa(.)14 b(.)e(.)g(.)h(.)f(.)g(.)35 b Fb(41)150 1022 ! y Fr(C)150 1143 y Fb(command)24 b(editing)c Fa(.)12 b(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! g(.)h(.)f(.)g(.)h(.)f(.)46 b Fb(1)150 1406 y Fr(E)150 ! 1527 y Fb(editing)26 b(command)e(lines)g Fa(.)12 b(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! 49 b Fb(1)150 1789 y Fr(F)150 1910 y Fb(FDL,)26 b(GNU)f(F)-6 ! b(ree)25 b(Do)r(cumen)n(tation)g(License)11 b Fa(.)j(.)e(.)g(.)h(.)f(.) ! g(.)37 b Fb(57)150 2173 y Fr(I)150 2294 y Fb(initialization)28 ! b(\014le,)e(readline)8 b Fa(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(4)150 ! 2384 y(in)n(teraction,)27 b(readline)10 b Fa(.)j(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)36 b Fb(1)2025 638 y Fr(K)2025 759 y Fb(kill)26 ! b(ring)15 b Fa(.)e(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)g(.)h(.)f(.)g(.)42 b Fb(3)2025 849 y(killing)26 ! b(text)18 b Fa(.)12 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)44 b Fb(2)2025 1111 y Fr(N)2025 1233 ! y Fb(notation,)26 b(readline)13 b Fa(.)h(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)40 b Fb(1)2025 1495 y Fr(R)2025 1616 y Fb(readline,)26 ! b(function)15 b Fa(.)e(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)41 ! b Fb(21)2025 1879 y Fr(V)2025 2000 y Fb(v)l(ariables,)27 ! b(readline)8 b Fa(.)k(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)34 ! b Fb(5)2025 2263 y Fr(Y)2025 2384 y Fb(y)n(anking)25 ! b(text)8 b Fa(.)j(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)34 b Fb(2)p eop ! %%Page: 66 70 ! 66 69 bop 150 -116 a Ft(66)2600 b(GNU)31 b(Readline)e(Library)p eop ! %%Page: 67 71 ! 67 70 bop 150 -116 a Ft(F)-8 b(unction)30 b(and)g(V)-8 ! b(ariable)30 b(Index)2370 b(67)150 299 y Fp(F)-13 b(unction)53 ! b(and)g(V)-13 b(ariable)55 b(Index)p 159 610 41 6 v 150 ! 732 a Fd(_rl_digit_p)23 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)46 b Fb(36)150 822 y Fd(_rl_digit_value)15 ! b Fa(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)40 b Fb(36)150 ! 912 y Fd(_rl_lowercase_p)15 b Fa(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h ! (.)40 b Fb(36)150 1002 y Fd(_rl_to_lower)22 b Fa(.)12 ! b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 ! b Fb(36)150 1092 y Fd(_rl_to_upper)22 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fb(36)150 1182 y Fd(_rl_uppercase_p)15 ! b Fa(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)40 b Fb(36)150 ! 1448 y Fr(A)150 1570 y Fd(abort)27 b(\(C-g\))9 b Fa(.)k(.)g(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(18)150 ! 1660 y Fd(accept-line)28 b(\(Newline)g(or)e(Return\))12 ! b Fa(.)h(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 ! b Fb(13)150 1927 y Fr(B)150 2048 y Fd(backward-char)29 ! b(\(C-b\))16 b Fa(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)41 b Fb(13)150 ! 2138 y Fd(backward-delete-char)30 b(\(Rubout\))21 b Fa(.)13 ! b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b ! Fb(15)150 2228 y Fd(backward-kill-line)30 b(\(C-x)c(Rubout\))f ! Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49 b ! Fb(16)150 2318 y Fd(backward-kill-word)30 b(\(M-)999 ! 2315 y Fk(h)p 1024 2262 146 4 v 1024 2318 a Fj(DEL)p ! 1024 2334 V 1165 2315 a Fk(i)1195 2318 y Fd(\))21 b Fa(.)13 ! b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46 ! b Fb(16)150 2408 y Fd(backward-word)29 b(\(M-b\))16 b ! Fa(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)g(.)h(.)41 b Fb(13)150 2498 y Fd ! (beginning-of-history)30 b(\(M-<\))25 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)49 b Fb(14)150 ! 2588 y Fd(beginning-of-line)29 b(\(C-a\))10 b Fa(.)k(.)e(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 ! b Fb(13)150 2678 y(b)r(ell-st)n(yle)14 b Fa(.)f(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)40 b ! Fb(5)150 2943 y Fr(C)150 3064 y Fd(call-last-kbd-macro)30 ! b(\(C-x)c(e\))11 b Fa(.)i(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)36 b Fb(18)150 3154 y Fd(capitalize-word)29 ! b(\(M-c\))13 b Fa(.)g(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(15)150 3244 ! y Fd(character-search)29 b(\(C-]\))11 b Fa(.)j(.)e(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 ! b Fb(18)150 3334 y Fd(character-search-backward)31 b(\(M-C-]\))14 ! b Fa(.)g(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(19)150 ! 3424 y Fd(clear-screen)28 b(\(C-l\))17 b Fa(.)d(.)e(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! 43 b Fb(13)150 3514 y(commen)n(t-b)r(egin)18 b Fa(.)10 ! b(.)i(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 ! b Fb(5)150 3605 y Fd(complete)27 b(\()528 3602 y Fk(h)p ! 553 3548 148 4 v 553 3605 a Fj(T)-6 b(AB)p 553 3620 V ! 697 3602 a Fk(i)726 3605 y Fd(\))20 b Fa(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)45 b Fb(17)150 3695 y(completion-query-items)8 ! b Fa(.)i(.)i(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)34 b Fb(5)150 3785 y(con)n(v)n(ert-meta)17 ! b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 ! b Fb(5)150 3875 y Fd(copy-backward-word)30 b(\(\))13 ! b Fa(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)38 b Fb(16)150 3965 y Fd(copy-forward-word)29 ! b(\(\))14 b Fa(.)f(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(16)150 4055 ! y Fd(copy-region-as-kill)30 b(\(\))11 b Fa(.)i(.)f(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 ! b Fb(16)150 4321 y Fr(D)150 4443 y Fd(delete-char)28 ! b(\(C-d\))20 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 ! b Fb(15)150 4533 y Fd(delete-char-or-list)30 b(\(\))11 ! b Fa(.)i(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)37 b Fb(17)150 4623 y Fd(delete-horizontal-space)31 ! b(\(\))24 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)g(.)h(.)49 b Fb(16)150 4713 y Fd(digit-argument)29 ! b(\()p Fc(M-0)p Fd(,)e Fc(M-1)p Fd(,)f(...)g Fc(M--)p ! Fd(\))14 b Fa(.)g(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b ! Fb(17)150 4803 y(disable-completion)16 b Fa(.)d(.)f(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)42 b Fb(5)150 4893 y Fd(do-uppercase-version)30 ! b(\(M-a,)d(M-b,)f(M-)p Fc(x)p Fd(,)h(...)q(\))318 4980 ! y Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(18)150 5070 y Fd(downcase-word)29 ! b(\(M-l\))16 b Fa(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)41 b Fb(15)150 ! 5160 y Fd(dump-functions)29 b(\(\))19 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)44 b Fb(19)150 5250 y Fd(dump-macros)28 b(\(\))c ! Fa(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 ! b Fb(19)150 5340 y Fd(dump-variables)29 b(\(\))19 b Fa(.)12 ! b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fb(19)2025 610 y ! Fr(E)2025 727 y Fb(editing-mo)r(de)18 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45 b Fb(5)2025 815 ! y Fd(emacs-editing-mode)29 b(\(C-e\))8 b Fa(.)14 b(.)f(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)34 ! b Fb(19)2025 902 y(enable-k)n(eypad)18 b Fa(.)10 b(.)j(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)44 b Fb(5)2025 990 y ! Fd(end-kbd-macro)28 b(\(C-x)f(\)\))20 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f ! (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45 ! b Fb(18)2025 1077 y Fd(end-of-history)29 b(\(M->\))14 ! b Fa(.)f(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)40 b Fb(14)2025 1165 y Fd(end-of-line)28 ! b(\(C-e\))20 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)44 ! b Fb(13)2025 1253 y Fd(exchange-point-and-mark)31 b(\(C-x)26 ! b(C-x\))21 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 ! b Fb(18)2025 1340 y(expand-tilde)11 b Fa(.)g(.)i(.)f(.)g(.)h(.)f(.)g(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fb(5)2025 1592 ! y Fr(F)2025 1709 y Fd(forward-backward-delete-char)32 ! b(\(\))16 b Fa(.)d(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)42 ! b Fb(15)2025 1796 y Fd(forward-char)28 b(\(C-f\))17 b ! Fa(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)43 b Fb(13)2025 1884 y ! Fd(forward-search-history)30 b(\(C-s\))22 b Fa(.)13 b(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)47 b Fb(14)2025 1972 ! y Fd(forward-word)28 b(\(M-f\))17 b Fa(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)43 ! b Fb(13)2025 2215 y Fr(H)2025 2332 y Fb(history-preserv)n(e-p)r(oin)n ! (t)16 b Fa(.)11 b(.)i(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(5)2025 ! 2419 y Fd(history-search-backward)31 b(\(\))24 b Fa(.)12 ! b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 ! b Fb(14)2025 2507 y Fd(history-search-forward)30 b(\(\))7 ! b Fa(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)33 b Fb(14)2025 2595 y(horizon)n(tal-scroll-mo)r(de)11 ! b Fa(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fb(6)2025 2830 y ! Fr(I)2025 2946 y Fb(input-meta)15 b Fa(.)c(.)h(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b Fb(6)2025 3034 ! y Fd(insert-comment)29 b(\(M-#\))14 b Fa(.)f(.)g(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)40 ! b Fb(19)2025 3122 y Fd(insert-completions)29 b(\(M-*\))8 ! b Fa(.)14 b(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)34 b Fb(17)2025 3209 y(isearc)n(h-terminators)6 ! b Fa(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)33 b Fb(6)2025 ! 3444 y Fr(K)2025 3561 y Fb(k)n(eymap)17 b Fa(.)11 b(.)h(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 ! b Fb(6)2025 3649 y Fd(kill-line)27 b(\(C-k\))c Fa(.)12 ! b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)47 b Fb(16)2025 ! 3736 y Fd(kill-region)28 b(\(\))23 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)49 b Fb(16)2025 3824 y Fd(kill-whole-line)29 ! b(\(\))17 b Fa(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)43 b Fb(16)2025 ! 3911 y Fd(kill-word)27 b(\(M-d\))c Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f ! (.)g(.)h(.)47 b Fb(16)2025 4155 y Fr(M)2025 4272 y Fb(mark-mo)r ! (di\014ed-lines)15 b Fa(.)10 b(.)j(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 ! b Fb(6)2025 4359 y(mark-symlink)n(ed-directories)18 b ! Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)47 b Fb(6)2025 4447 y(matc)n(h-hidden-\014les)19 ! b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(6)2025 ! 4534 y Fd(menu-complete)28 b(\(\))21 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)46 b Fb(17)2025 4622 y(meta-\015ag)9 b Fa(.)i(.)i(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)35 ! b Fb(6)2025 4874 y Fr(N)2025 4990 y Fd(next-history)28 ! b(\(C-n\))17 b Fa(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)43 b Fb(14)2025 ! 5078 y Fd(non-incremental-forward-search)q(-hist)q(ory)32 ! b(\(M-n\))2193 5165 y Fa(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)40 b Fb(14)2025 ! 5253 y Fd(non-incremental-reverse-search)q(-hist)q(ory)32 ! b(\(M-p\))2193 5340 y Fa(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)40 b Fb(14)p eop ! %%Page: 68 72 ! 68 71 bop 150 -116 a Ft(68)2600 b(GNU)31 b(Readline)e(Library)150 ! 299 y Fr(O)150 417 y Fb(output-meta)10 b Fa(.)h(.)h(.)g(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(7)150 506 ! y Fd(overwrite-mode)29 b(\(\))19 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)44 b Fb(15)150 754 y Fr(P)150 872 y Fb(page-completions)22 ! b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 ! b Fb(7)150 961 y Fd(possible-completions)30 b(\(M-?\))25 ! b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) ! 49 b Fb(17)150 1049 y Fd(prefix-meta)28 b(\()646 1046 ! y Fk(h)p 671 993 139 4 v 671 1049 a Fj(ESC)p 671 1064 ! V 804 1046 a Fk(i)834 1049 y Fd(\))20 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! 45 b Fb(18)150 1137 y Fd(previous-history)29 b(\(C-p\))11 ! b Fa(.)j(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)37 b Fb(14)150 1396 y Fr(Q)150 1514 y ! Fd(quoted-insert)29 b(\(C-q)d(or)g(C-v\))20 b Fa(.)13 ! b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 ! b Fb(15)150 1772 y Fr(R)150 1891 y Fd(re-read-init-file)29 ! b(\(C-x)e(C-r\))11 b Fa(.)i(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)36 b Fb(18)150 1979 y Fd(readline)7 b ! Fa(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! g(.)h(.)32 b Fb(21)150 2068 y Fd(redraw-current-line)e(\(\))11 ! b Fa(.)i(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)37 b Fb(13)150 2156 y Fd(reverse-search-history)31 ! b(\(C-r\))22 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)46 b Fb(14)150 2245 y Fd(revert-line)28 b(\(M-r\))20 ! b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fb(18)150 ! 2333 y Fd(rl_add_defun)22 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! g(.)h(.)f(.)g(.)45 b Fb(28)150 2421 y Fd(rl_add_funmap_entry)9 ! b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(31)150 2510 ! y Fd(rl_add_undo)23 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)46 b Fb(32)150 2598 y Fd(rl_alphabetic)18 ! b Fa(.)d(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43 ! b Fb(36)150 2687 y Fd(rl_already_prompted)9 b Fa(.)17 ! b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(25)150 2775 y Fd ! (rl_attempted_completion_funct)q(ion)9 b Fa(.)18 b(.)12 ! b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fb(43)150 2864 y ! Fd(rl_attempted_completion_over)15 b Fa(.)j(.)12 b(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fb(46)150 2952 y Fd ! (rl_basic_quote_characters)18 b Fa(.)g(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b Fb(44)150 3041 ! y Fd(rl_basic_word_break_character)q(s)11 b Fa(.)18 b(.)13 ! b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 b Fb(44)150 ! 3129 y Fd(rl_begin_undo_group)9 b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 ! b Fb(32)150 3217 y Fd(rl_bind_key)23 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fb(29)150 3306 y ! Fd(rl_bind_key_if_unbound)28 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fb(29)150 ! 3394 y Fd(rl_bind_key_if_unbound_in_map)14 b Fa(.)j(.)c(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fb(29)150 3483 y Fd(rl_bind_key_in_map) ! 10 b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fb(29)150 ! 3571 y Fd(rl_bind_keyseq)16 b Fa(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)42 b Fb(30)150 3660 y Fd(rl_bind_keyseq_if_unbound)18 ! b Fa(.)g(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)44 b Fb(30)150 3748 y Fd(rl_bind_keyseq_if_unbound_in_)q(map)9 ! b Fa(.)18 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b ! Fb(30)150 3836 y Fd(rl_bind_keyseq_in_map)29 b Fa(.)12 ! b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)50 b Fb(30)150 3925 y Fd(rl_binding_keymap)12 ! b Fa(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fb(26)150 4013 ! y Fd(rl_callback_handler_install)16 b Fa(.)i(.)12 b(.)h(.)f(.)g(.)h(.)f ! (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)41 b Fb(37)150 4102 y ! Fd(rl_callback_handler_remove)17 b Fa(.)h(.)12 b(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b Fb(37)150 4190 y ! Fd(rl_callback_read_char)29 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50 b Fb(37)150 ! 4279 y Fd(rl_catch_signals)13 b Fa(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! 39 b Fb(40)150 4367 y Fd(rl_catch_sigwinch)12 b Fa(.)k(.)c(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)37 b Fb(40)150 4456 y Fd(rl_char_is_quoted_p)9 ! b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(44)150 4544 ! y Fd(rl_cleanup_after_signal)26 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fb(40)150 ! 4632 y Fd(rl_clear_message)13 b Fa(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! 39 b Fb(33)150 4721 y Fd(rl_clear_pending_input)28 b ! Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)48 b Fb(35)150 4809 y Fd(rl_clear_signals)13 ! b Fa(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 b Fb(41)150 ! 4898 y Fd(rl_complete)23 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)46 b Fb(42)150 4986 y Fd(rl_complete_internal)7 ! b Fa(.)17 b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fb(42)150 5075 y Fd ! (rl_completer_quote_characters)14 b Fa(.)j(.)c(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)38 b Fb(45)150 5163 y Fd ! (rl_completer_word_break_chara)q(cter)q(s)29 b Fa(.)12 ! b(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(45)150 5252 y Fd ! (rl_completion_append_characte)q(r)11 b Fa(.)18 b(.)13 ! b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 b Fb(45)150 ! 5340 y Fd(rl_completion_display_matches)q(_hoo)q(k)29 ! b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(44)2025 299 ! y Fd(rl_completion_entry_function)7 b Fa(.)18 b(.)12 ! b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)32 b Fb(42,)27 b(43)2025 ! 387 y Fd(rl_completion_found_quote)18 b Fa(.)g(.)12 b(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fb(46)2025 ! 476 y Fd(rl_completion_mark_symlink_dir)q(s)10 b Fa(.)18 ! b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fb(46)2025 ! 564 y Fd(rl_completion_matches)29 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)50 ! b Fb(42)2025 653 y Fd(rl_completion_mode)10 b Fa(.)17 ! b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(42)2025 741 y Fd ! (rl_completion_query_items)18 b Fa(.)g(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 b Fb(45)2025 830 ! y Fd(rl_completion_quote_character)13 b Fa(.)18 b(.)13 ! b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(45)2025 ! 918 y Fd(rl_completion_suppress_append)13 b Fa(.)18 b(.)13 ! b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 b Fb(45)2025 ! 1006 y Fd(rl_completion_suppress_quote)15 b Fa(.)i(.)c(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(46)2025 1095 y ! Fd(rl_completion_type)10 b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 ! b Fb(46)2025 1183 y Fd(rl_completion_word_break_hook)13 ! b Fa(.)18 b(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 ! b Fb(45)2025 1272 y Fd(rl_copy_keymap)16 b Fa(.)f(.)e(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)g(.)h(.)f(.)42 b Fb(28)2025 1360 y Fd(rl_copy_text)22 ! b Fa(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 ! b Fb(34)2025 1449 y Fd(rl_crlf)8 b Fa(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(33)2025 ! 1537 y Fd(rl_delete_text)16 b Fa(.)f(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h ! (.)f(.)42 b Fb(34)2025 1625 y Fd(rl_deprep_term_function)26 ! b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)47 b Fb(26)2025 1714 y Fd(rl_deprep_terminal)10 ! b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(35)2025 ! 1802 y Fd(rl_ding)8 b Fa(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(36)2025 1891 ! y Fd(rl_directory_completion_hook)15 b Fa(.)i(.)c(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fb(44)2025 1979 y Fd(rl_discard_keymap) ! 12 b Fa(.)k(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)38 b Fb(29)2025 ! 2068 y Fd(rl_dispatching)16 b Fa(.)f(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h ! (.)f(.)42 b Fb(24)2025 2156 y Fd(rl_display_match_list)29 ! b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)g(.)h(.)f(.)50 b Fb(36)2025 2245 y Fd(rl_do_undo)24 ! b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 ! b Fb(32)2025 2333 y Fd(rl_done)8 b Fa(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)34 b Fb(24)2025 ! 2421 y Fd(rl_editing_mode)15 b Fa(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)40 b Fb(28)2025 2510 y Fd(rl_end)10 b Fa(.)j(.)f(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 ! b Fb(24)2025 2598 y Fd(rl_end_undo_group)12 b Fa(.)k(.)c(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)g(.)38 b Fb(32)2025 2687 y Fd(rl_erase_empty_line)9 ! b Fa(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(24)2025 2775 y ! Fd(rl_event_hook)18 b Fa(.)d(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)43 b Fb(26)2025 2864 y Fd(rl_execute_next)15 b Fa(.)g(.)e(.)f(.)g(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)40 b Fb(35)2025 2952 y Fd(rl_executing_keymap)9 ! b Fa(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fb(26)2025 3041 y ! Fd(rl_executing_macro)10 b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 ! b Fb(26)2025 3129 y Fd(rl_expand_prompt)13 b Fa(.)j(.)c(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)39 b Fb(33)2025 3217 y Fd(rl_explicit_arg)15 ! b Fa(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)40 b Fb(27)2025 ! 3306 y Fd(rl_extend_line_buffer)29 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)50 ! b Fb(35)2025 3394 y Fd(rl_filename_completion_desired)12 ! b Fa(.)18 b(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 ! b Fb(46)2025 3483 y Fd(rl_filename_completion_functio)q(n)10 ! b Fa(.)18 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 ! b Fb(43)2025 3571 y Fd(rl_filename_dequoting_function)12 ! b Fa(.)18 b(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 ! b Fb(43)2025 3660 y Fd(rl_filename_quote_characters)15 ! b Fa(.)i(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 ! b Fb(45)2025 3748 y Fd(rl_filename_quoting_desired)16 ! b Fa(.)i(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 ! b Fb(46)2025 3836 y Fd(rl_filename_quoting_function)15 ! b Fa(.)i(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 ! b Fb(43)2025 3925 y Fd(rl_forced_update_display)25 b ! Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)g(.)46 b Fb(33)2025 4013 y Fd(rl_free_line_state)10 ! b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(40)2025 ! 4102 y Fd(rl_free_undo_list)12 b Fa(.)k(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)38 ! b Fb(32)2025 4190 y Fd(rl_function_dumper)10 b Fa(.)17 ! b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(31)2025 4279 y Fd ! (rl_function_of_keyseq)29 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)50 b Fb(31)2025 ! 4367 y Fd(rl_funmap_names)15 b Fa(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)40 b Fb(31)2025 4456 y Fd(rl_generic_bind)15 b Fa(.)g(.)e(.)f(.)g ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)40 b Fb(30)2025 4544 y Fd(rl_get_keymap)18 ! b Fa(.)d(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 ! b Fb(29)2025 4632 y Fd(rl_get_keymap_by_name)29 b Fa(.)12 ! b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g ! (.)h(.)f(.)50 b Fb(29)2025 4721 y Fd(rl_get_keymap_name)10 ! b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(29)2025 ! 4809 y Fd(rl_get_screen_size)10 b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! 36 b Fb(40)2025 4898 y Fd(rl_get_termcap)16 b Fa(.)f(.)e(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)g(.)h(.)f(.)42 b Fb(37)2025 4986 y Fd(rl_getc)8 ! b Fa(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! g(.)h(.)f(.)34 b Fb(34)2025 5075 y Fd(rl_getc_function)13 ! b Fa(.)j(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(26)2025 ! 5163 y Fd(rl_gnu_readline_p)12 b Fa(.)k(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)38 ! b Fb(25)2025 5252 y Fd(rl_ignore_completion_duplicate)q(s)10 ! b Fa(.)18 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 ! b Fb(46)2025 5340 y Fd(rl_ignore_some_completions_fun)q(ction)29 ! b Fa(.)12 b(.)g(.)h(.)f(.)g(.)48 b Fb(44)p eop ! %%Page: 69 73 ! 69 72 bop 150 -116 a Ft(F)-8 b(unction)30 b(and)g(V)-8 ! b(ariable)30 b(Index)2370 b(69)150 299 y Fd(rl_inhibit_completion)29 ! b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)50 b Fb(47)150 386 y Fd(rl_initialize)18 ! b Fa(.)d(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43 ! b Fb(36)150 473 y Fd(rl_insert_completions)29 b Fa(.)12 ! b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)50 b Fb(42)150 561 y Fd(rl_insert_text)16 ! b Fa(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b ! Fb(34)150 648 y Fd(rl_instream)23 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fb(25)150 735 y Fd ! (rl_invoking_keyseqs)9 b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 ! b Fb(31)150 823 y Fd(rl_invoking_keyseqs_in_map)17 b ! Fa(.)h(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 ! b Fb(31)150 910 y Fd(rl_kill_text)22 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fb(34)150 997 y Fd(rl_last_func)22 ! b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 ! b Fb(25)150 1084 y Fd(rl_library_version)10 b Fa(.)17 ! b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fb(25)150 1172 y Fd(rl_line_buffer)16 ! b Fa(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b ! Fb(24)150 1259 y Fd(rl_list_funmap_names)7 b Fa(.)17 ! b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h ! (.)f(.)g(.)h(.)f(.)33 b Fb(31)150 1346 y Fd(rl_macro_bind)18 ! b Fa(.)d(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43 ! b Fb(36)150 1433 y Fd(rl_macro_dumper)15 b Fa(.)g(.)e(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)g(.)h(.)40 b Fb(36)150 1521 y Fd(rl_make_bare_keymap)9 ! b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(28)150 1608 ! y Fd(rl_make_keymap)16 b Fa(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! 42 b Fb(28)150 1695 y Fd(rl_mark)8 b Fa(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b ! Fb(24)150 1783 y Fd(rl_message)24 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fb(33)150 1870 y ! Fd(rl_modifying)22 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) ! f(.)g(.)45 b Fb(32)150 1957 y Fd(rl_named_function)12 ! b Fa(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fb(31)150 2044 ! y Fd(rl_num_chars_to_read)7 b Fa(.)17 b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)33 ! b Fb(24)150 2132 y Fd(rl_numeric_arg)16 b Fa(.)g(.)c(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)42 b Fb(28)150 2219 y Fd(rl_on_new_line)16 ! b Fa(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b ! Fb(33)150 2306 y Fd(rl_on_new_line_with_prompt)17 b Fa(.)h(.)12 ! b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 ! b Fb(33)150 2393 y Fd(rl_outstream)22 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fb(25)150 2481 y Fd(rl_parse_and_bind) ! 12 b Fa(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fb(30)150 ! 2568 y Fd(rl_pending_input)13 b Fa(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! 39 b Fb(24)150 2655 y Fd(rl_point)7 b Fa(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)32 b Fb(24)150 ! 2743 y Fd(rl_possible_completions)26 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b ! Fb(42)150 2830 y Fd(rl_pre_input_hook)12 b Fa(.)k(.)c(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)37 b Fb(25)150 2917 y Fd(rl_prep_term_function)29 ! b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)50 b Fb(26)150 3004 y Fd(rl_prep_terminal)13 ! b Fa(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 b Fb(35)150 ! 3092 y Fd(rl_prompt)25 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! g(.)h(.)f(.)g(.)h(.)f(.)49 b Fb(25)150 3179 y Fd(rl_push_macro_input)9 ! b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(34)150 3266 ! y Fd(rl_read_init_file)12 b Fa(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 ! b Fb(31)150 3353 y Fd(rl_read_key)23 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fb(34)150 3441 y ! Fd(rl_readline_name)13 b Fa(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 ! b Fb(25)150 3528 y Fd(rl_readline_state)12 b Fa(.)k(.)c(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)37 b Fb(26)150 3615 y Fd(rl_readline_version)9 ! b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(25)150 3703 ! y Fd(rl_redisplay)22 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h ! (.)f(.)g(.)45 b Fb(32)150 3790 y Fd(rl_redisplay_function)29 ! b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)50 b Fb(26)150 3877 y Fd(rl_replace_line)15 ! b Fa(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)40 b Fb(35)150 ! 3964 y Fd(rl_reset_after_signal)29 b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50 ! b Fb(40)150 4052 y Fd(rl_reset_line_state)9 b Fa(.)17 ! b(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)34 b Fb(33)150 4139 y Fd(rl_reset_terminal)12 ! b Fa(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fb(35)150 4226 ! y Fd(rl_resize_terminal)10 b Fa(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 ! b Fb(40)150 4314 y Fd(rl_restore_prompt)12 b Fa(.)k(.)c(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)37 b Fb(33)150 4401 y Fd(rl_save_prompt)16 b ! Fa(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b Fb(33)150 ! 4488 y Fd(rl_set_key)24 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)47 b Fb(30)150 4575 y Fd ! (rl_set_keyboard_input_timeout)14 b Fa(.)j(.)c(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)38 b Fb(35)150 4663 y Fd(rl_set_keymap)18 ! b Fa(.)d(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43 ! b Fb(29)150 4750 y Fd(rl_set_paren_blink_timeout)17 b ! Fa(.)h(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 ! b Fb(37)150 4837 y Fd(rl_set_prompt)18 b Fa(.)d(.)d(.)h(.)f(.)g(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)43 b Fb(34)2025 299 y Fd(rl_set_screen_size)10 ! b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(40)2025 ! 386 y Fd(rl_set_signals)16 b Fa(.)f(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) ! f(.)42 b Fb(41)2025 474 y Fd(rl_show_char)22 b Fa(.)12 ! b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 ! b Fb(33)2025 562 y Fd(rl_special_prefixes)9 b Fa(.)16 ! b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)35 b Fb(45)2025 649 y Fd(rl_startup_hook)15 ! b Fa(.)g(.)e(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)40 b Fb(25)2025 ! 737 y Fd(rl_stuff_char)18 b Fa(.)d(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)43 b Fb(34)2025 824 y Fd(rl_terminal_name)13 ! b Fa(.)j(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) ! f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(25)2025 ! 912 y Fd(rl_tty_set_default_bindings)16 b Fa(.)i(.)12 ! b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 ! b Fb(35)2025 1000 y Fd(rl_tty_unset_default_bindings)13 ! b Fa(.)18 b(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 ! b Fb(35)2025 1087 y Fd(rl_unbind_command_in_map)25 b ! Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)g(.)46 b Fb(30)2025 1175 y Fd(rl_unbind_function_in_map)18 ! b Fa(.)g(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)44 b Fb(30)2025 1262 y Fd(rl_unbind_key)18 b Fa(.)d(.)d(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fb(30)2025 1350 y Fd ! (rl_unbind_key_in_map)7 b Fa(.)17 b(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 ! b Fb(30)2025 1438 y Fd(rl_username_completion_functio)q(n)10 ! b Fa(.)18 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 ! b Fb(43)2025 1525 y Fd(rl_variable_bind)13 b Fa(.)j(.)c(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)39 b Fb(37)2025 1613 y Fd(rl_variable_dumper)10 ! b Fa(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fb(37)2025 ! 1866 y Fr(S)2025 1983 y Fd(self-insert)28 b(\(a,)e(b,)g(A,)g(1,)g(!,)g ! (...)q(\))13 b Fa(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 ! b Fb(15)2025 2071 y Fd(set-mark)27 b(\(C-@\))d Fa(.)13 ! b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49 b Fb(18)2025 ! 2158 y(sho)n(w-all-if-am)n(biguous)21 b Fa(.)13 b(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) ! f(.)47 b Fb(7)2025 2246 y(sho)n(w-all-if-unmo)r(di\014ed)12 ! b Fa(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 b Fb(7)2025 2333 y ! Fd(start-kbd-macro)29 b(\(C-x)d(\(\))17 b Fa(.)c(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 ! b Fb(18)2025 2577 y Fr(T)2025 2694 y Fd(tab-insert)28 ! b(\(M-)2560 2691 y Fk(h)p 2585 2637 148 4 v 2585 2694 ! a Fj(T)-6 b(AB)p 2585 2709 V 2728 2691 a Fk(i)2758 2694 ! y Fd(\))13 b Fa(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fb(15)2025 2781 ! y Fd(tilde-expand)28 b(\(M-~\))17 b Fa(.)d(.)e(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)43 ! b Fb(18)2025 2869 y Fd(transpose-chars)29 b(\(C-t\))13 ! b Fa(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)g(.)39 b Fb(15)2025 2956 y Fd(transpose-words)29 ! b(\(M-t\))13 b Fa(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)39 b Fb(15)2025 3210 ! y Fr(U)2025 3327 y Fd(undo)26 b(\(C-_)h(or)f(C-x)g(C-u\))15 ! b Fa(.)e(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)h(.)f(.)g(.)41 b Fb(18)2025 3414 y Fd(universal-argument)29 ! b(\(\))13 b Fa(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)39 b Fb(17)2025 3502 y ! Fd(unix-filename-rubout)30 b(\(\))10 b Fa(.)j(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 ! b Fb(16)2025 3589 y Fd(unix-line-discard)29 b(\(C-u\))10 ! b Fa(.)k(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)36 b Fb(16)2025 3677 y Fd(unix-word-rubout)29 ! b(\(C-w\))11 b Fa(.)j(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h ! (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)37 b Fb(16)2025 3765 y ! Fd(upcase-word)28 b(\(M-u\))20 b Fa(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! 44 b Fb(15)2025 4018 y Fr(V)2025 4135 y Fd(vi-editing-mode)29 ! b(\(M-C-j\))10 b Fa(.)k(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fb(19)2025 4223 y(visible-stats)22 ! b Fa(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f ! (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) ! 47 b Fb(7)2025 4458 y Fr(Y)2025 4574 y Fd(yank)26 b(\(C-y\))11 ! b Fa(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) ! h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)36 ! b Fb(17)2025 4662 y Fd(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))20 ! b Fa(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f ! (.)45 b Fb(14)2025 4750 y Fd(yank-nth-arg)28 b(\(M-C-y\))14 ! b Fa(.)g(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) ! g(.)h(.)f(.)g(.)h(.)f(.)40 b Fb(14)2025 4837 y Fd(yank-pop)27 ! b(\(M-y\))d Fa(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g ! (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49 ! b Fb(17)p eop ! %%Page: 70 74 ! 70 73 bop 150 -116 a Ft(70)2600 b(GNU)31 b(Readline)e(Library)p eop %%Trailer end diff -aNrc2 readline-4.3-patched/doc/readline_3.ps readline-5.0/doc/readline_3.ps *** readline-4.3-patched/doc/readline_3.ps Thu Jun 27 13:54:44 2002 --- readline-5.0/doc/readline_3.ps Tue Jun 29 11:02:46 2004 *************** *** 1,16 **** %!PS-Adobe-3.0 ! %%Creator: groff version 1.17.2 ! %%CreationDate: Thu Jun 27 13:54:44 2002 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic %%+ font Courier ! %%DocumentSuppliedResources: procset grops 1.17 2 %%Pages: 14 %%PageOrder: Ascend %%Orientation: Portrait %%EndComments %%BeginProlog ! %%BeginResource: procset grops 1.17 2 /setpacking where{ pop --- 1,20 ---- %!PS-Adobe-3.0 ! %%Creator: groff version 1.19 ! %%CreationDate: Tue Jun 29 11:02:47 2004 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic %%+ font Courier ! %%DocumentSuppliedResources: procset grops 1.19 0 %%Pages: 14 %%PageOrder: Ascend + %%DocumentMedia: Default 612 792 0 () () %%Orientation: Portrait %%EndComments + %%BeginDefaults + %%PageMedia: Default + %%EndDefaults %%BeginProlog ! %%BeginResource: procset grops 1.19 0 /setpacking where{ pop *************** *** 110,118 **** /MT/moveto load def /CL/closepath load def ! /FL{ ! currentgray exch setgray fill setgray }bind def ! /BL/fill load def /LW/setlinewidth load def /RE{ findfont --- 114,137 ---- /MT/moveto load def /CL/closepath load def ! /Fr{ ! setrgbcolor fill }bind def ! /setcmykcolor where{ ! pop ! /Fk{ ! setcmykcolor fill ! }bind def ! }if ! /Fg{ ! setgray fill ! }bind def ! /FL/fill load def /LW/setlinewidth load def + /Cr/setrgbcolor load def + /setcmykcolor where{ + pop + /Ck/setcmykcolor load def + }if + /Cg/setgray load def /RE{ findfont *************** *** 156,159 **** --- 175,179 ---- userdict begin /showpage{}def + /setpagedevice{}def }bind def /PEND{ *************** *** 168,171 **** --- 188,194 ---- }if %%EndResource + %%BeginFeature: *PageSize Default + << /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice + %%EndFeature %%IncludeResource: font Times-Roman %%IncludeResource: font Times-Bold *************** *** 174,178 **** grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron ! /scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef --- 197,201 ---- grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron ! /scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef *************** *** 216,220 **** (\()2.5 E F3(const c)A(har *pr)-.15 E(ompt)-.45 E F0(\);)A F1(COPYRIGHT) 72 194.4 Q F0(Readline is Cop)108 206.4 Q ! (yright \251 1989\2552002 by the Free Softw)-.1 E(are F)-.1 E (oundation, Inc.)-.15 E F1(DESCRIPTION)72 223.2 Q F2 -.18(re)108 235.2 S (adline).18 E F0 .088 --- 239,243 ---- (\()2.5 E F3(const c)A(har *pr)-.15 E(ompt)-.45 E F0(\);)A F1(COPYRIGHT) 72 194.4 Q F0(Readline is Cop)108 206.4 Q ! (yright \251 1989\2552004 by the Free Softw)-.1 E(are F)-.1 E (oundation, Inc.)-.15 E F1(DESCRIPTION)72 223.2 Q F2 -.18(re)108 235.2 S (adline).18 E F0 .088 *************** *** 250,272 **** (strok).15 E 2.681(es. Control)-.1 F -.1(ke)2.681 G .18 (ys are denoted by C\255)-.05 F F3 -.1(ke)C(y)-.2 E F0 2.68(,e)C .18 ! (.g., C\255n means)-2.68 F 2.625(Control\255N. Similarly)108 410.4 R(,) ! -.65 E F3(meta)2.625 E F0 -.1(ke)2.625 G .125(ys are denoted by M\255) ! -.05 F F3 -.1(ke)C(y)-.2 E F0 2.625(,s)C 2.625(oM)-2.625 G .125 ! (\255x means Meta\255X.)-2.625 F .126(\(On k)5.126 F -.15(ey)-.1 G .126 ! (boards without a).15 F F3(meta)108 422.4 Q F0 -.1(ke)3.309 G 2.109 -.65 ! (y, M)-.05 H.65 E F3(x)A F0 .809(means ESC)3.309 F F3(x)3.309 E F0 ! 3.309(,i)C .809(.e., press the Escape k)-3.309 F 1.108 -.15(ey t)-.1 H ! .808(hen the).15 F F3(x)3.308 E F0 -.1(ke)3.308 G 4.608 -.65(y. T)-.05 H ! .808(his mak).65 F .808(es ESC the)-.1 F F3 .808(meta pr)3.308 F(e\214x) ! -.37 E F0(.)A .48(The combination M\255C\255)108 434.4 R F3(x)A F0 .48 (means ESC\255Control\255)2.98 F F3(x)A F0 2.98(,o)C 2.98(rp)-2.98 G .48 (ress the Escape k)-2.98 F .78 -.15(ey t)-.1 H .48 (hen hold the Control k).15 F .78 -.15(ey w)-.1 H(hile).15 E ! (pressing the)108 446.4 Q F3(x)2.5 E F0 -.1(ke)2.5 G -.65(y.)-.05 G(\)) ! .65 E .62(Readline commands may be gi)108 463.2 R -.15(ve)-.25 G 3.119 ! (nn).15 G(umeric)-3.119 E F3(ar)3.119 E(guments)-.37 E F0 3.119(,w).27 G ! .619(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.619 E ! (ho)108 475.2 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H 3.118(ti) ! .4 G 3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619 (gument that is signi\214cant.)-.18 F -.15(Pa)5.619 G .619(ssing a ne) .15 F -.05(ga)-.15 G(ti).05 E .919 -.15(ve a)-.25 H -.18(rg).15 G .619 --- 273,295 ---- (strok).15 E 2.681(es. Control)-.1 F -.1(ke)2.681 G .18 (ys are denoted by C\255)-.05 F F3 -.1(ke)C(y)-.2 E F0 2.68(,e)C .18 ! (.g., C\255n means)-2.68 F 2.582(Control\255N. Similarly)108 410.4 R(,) ! -.65 E F3(meta)2.962 E F0 -.1(ke)2.842 G .082(ys are denoted by M\255) ! -.05 F F3 -.1(ke)C(y)-.2 E F0 2.583(,s)C 2.583(oM)-2.583 G .083 ! (\255x means Meta\255X.)-2.583 F .083(\(On k)5.083 F -.15(ey)-.1 G .083 ! (boards without a).15 F F3(meta)108 422.4 Q F0 -.1(ke)3.491 G 2.031 -.65 ! (y, M)-.05 H.65 E F3(x)A F0 .731(means ESC)3.231 F F3(x)3.231 E F0 ! 3.231(,i)C .731(.e., press the Escape k)-3.231 F 1.03 -.15(ey t)-.1 H ! .73(hen the).15 F F3(x)4 E F0 -.1(ke)3.76 G 4.53 -.65(y. T)-.05 H .73 ! (his mak).65 F .73(es ESC the)-.1 F F3 .73(meta pr)3.23 F(e\214x)-.37 E ! F0(.)A .48(The combination M\255C\255)108 434.4 R F3(x)A F0 .48 (means ESC\255Control\255)2.98 F F3(x)A F0 2.98(,o)C 2.98(rp)-2.98 G .48 (ress the Escape k)-2.98 F .78 -.15(ey t)-.1 H .48 (hen hold the Control k).15 F .78 -.15(ey w)-.1 H(hile).15 E ! (pressing the)108 446.4 Q F3(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G ! (\)).65 E .62(Readline commands may be gi)108 463.2 R -.15(ve)-.25 G ! 3.119(nn).15 G(umeric)-3.119 E F3(ar)3.119 E(guments)-.37 E F0 3.119(,w) ! .27 G .619(hich normally act as a repeat count.)-3.119 F(Sometimes,) ! 5.619 E(ho)108 475.2 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H ! 3.118(ti).4 G 3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619 (gument that is signi\214cant.)-.18 F -.15(Pa)5.619 G .619(ssing a ne) .15 F -.05(ga)-.15 G(ti).05 E .919 -.15(ve a)-.25 H -.18(rg).15 G .619 *************** *** 309,314 **** (xample, placing)-2.65 E(M\255Control\255u: uni)144 686.4 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(or)108 698.4 Q(C\255Meta\255u: uni)144 ! 710.4 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(GNU Readline 4.3) ! 72 768 Q(2002 January 22)126.24 E(1)195.95 E EP %%Page: 2 2 %%BeginPageSetup --- 332,337 ---- (xample, placing)-2.65 E(M\255Control\255u: uni)144 686.4 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(or)108 698.4 Q(C\255Meta\255u: uni)144 ! 710.4 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(GNU Readline 5.0) ! 72 768 Q(2004 January 28)126.24 E(1)195.95 E 0 Cg EP %%Page: 2 2 %%BeginPageSetup *************** *** 316,321 **** %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R ! (into the)108 84 Q/F1 10/Times-Italic@0 SF(inputr)2.5 E(c)-.37 E F0 -.1 ! (wo)2.5 G(uld mak).1 E 2.5(eM)-.1 G(\255C\255u e)-2.5 E -.15(xe)-.15 G (cute the readline command).15 E F1(univer)2.5 E(sal\255ar)-.1 E(gument) -.37 E F0(.).68 E 2.795(The follo)108 100.8 R 2.795 --- 339,344 ---- %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R ! (into the)108 84 Q/F1 10/Times-Italic@0 SF(inputr)2.51 E(c)-.37 E F0 -.1 ! (wo)2.81 G(uld mak).1 E 2.5(eM)-.1 G(\255C\255u e)-2.5 E -.15(xe)-.15 G (cute the readline command).15 E F1(univer)2.5 E(sal\255ar)-.1 E(gument) -.37 E F0(.).68 E 2.795(The follo)108 100.8 R 2.795 *************** *** 332,339 **** -.1 H(s).15 E(pressed \(a)108 141.6 Q F1(macr)2.5 E(o)-.45 E F0(\).)A/F2 10/Times-Bold@0 SF -.25(Ke)87 163.2 S 2.5(yB).25 G(indings)-2.5 E F0 ! .382(The syntax for controlling k)108 175.2 R .682 -.15(ey b)-.1 H .382 ! (indings in the).15 F F1(inputr)2.882 E(c)-.37 E F0 .382 ! (\214le is simple.)2.882 F .382(All that is required is the name of the) ! 5.382 F .382(command or the te)108 187.2 R .383(xt of a macro and a k) -.15 F .683 -.15(ey s)-.1 H .383 (equence to which it should be bound. The name may be speci-).15 F .853 --- 355,362 ---- -.1 H(s).15 E(pressed \(a)108 141.6 Q F1(macr)2.5 E(o)-.45 E F0(\).)A/F2 10/Times-Bold@0 SF -.25(Ke)87 163.2 S 2.5(yB).25 G(indings)-2.5 E F0 ! .366(The syntax for controlling k)108 175.2 R .666 -.15(ey b)-.1 H .366 ! (indings in the).15 F F1(inputr)2.876 E(c)-.37 E F0 .366 ! (\214le is simple.)3.176 F .366(All that is required is the name of the) ! 5.366 F .382(command or the te)108 187.2 R .383(xt of a macro and a k) -.15 F .683 -.15(ey s)-.1 H .383 (equence to which it should be bound. The name may be speci-).15 F .853 *************** *** 342,359 **** (ame, possibly with).15 F F1(Meta\255)3.353 E F0(or)3.353 E F1(Contr) 3.353 E(ol\255)-.45 E F0(pre\214x)3.353 E .853(es, or as a k)-.15 F -.15 ! (ey)-.1 G(sequence.)108 211.2 Q 1.766(When using the form)108 228 R F2 ! -.1(ke)4.266 G(yname).1 E F0(:)A F1(function-name).833 E F0(or)4.266 E ! F1(macr)4.267 E(o)-.45 E F0(,)A F1 -.1(ke)4.267 G(yname)-.2 E F0 1.767 ! (is the name of a k)4.267 F 2.067 -.15(ey s)-.1 H 1.767(pelled out in) .15 F 2.5(English. F)108 240 R(or e)-.15 E(xample:)-.15 E (Control\255u: uni)144 264 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(Meta\255Rubout: backw)144 276 Q(ard\255kill\255w)-.1 E(ord)-.1 E ! (Control\255o: "> output")144 288 Q .229(In the abo)108 304.8 R .529 ! -.15(ve ex)-.15 H(ample,).15 E F1(C\255u)2.729 E F0 .229 ! (is bound to the function)2.729 F F2(uni)2.729 E -.1(ve)-.1 G ! (rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M-DEL)2.729 E F0 .228 ! (is bound to the function)2.729 F F2(backward\255kill\255w)108 316.8 Q ! (ord)-.1 E F0 3.837(,a)C(nd)-3.837 E F1(C\255o)3.837 E F0 1.337 ! (is bound to run the macro e)3.837 F 1.337 (xpressed on the right hand side \(that is, to)-.15 F(insert the te)108 328.8 Q(xt)-.15 E/F3 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0 --- 365,382 ---- (ame, possibly with).15 F F1(Meta\255)3.353 E F0(or)3.353 E F1(Contr) 3.353 E(ol\255)-.45 E F0(pre\214x)3.353 E .853(es, or as a k)-.15 F -.15 ! (ey)-.1 G(sequence.)108 211.2 Q 1.755(When using the form)108 228 R F2 ! -.1(ke)4.255 G(yname).1 E F0(:)A F1(function-name).833 E F0(or)4.255 E ! F1(macr)4.255 E(o)-.45 E F0(,)A F1 -.1(ke)4.255 G(yname)-.2 E F0 1.756 ! (is the name of a k)4.435 F 2.056 -.15(ey s)-.1 H 1.756(pelled out in) .15 F 2.5(English. F)108 240 R(or e)-.15 E(xample:)-.15 E (Control\255u: uni)144 264 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(Meta\255Rubout: backw)144 276 Q(ard\255kill\255w)-.1 E(ord)-.1 E ! (Control\255o: "> output")144 288 Q .148(In the abo)108 304.8 R .448 ! -.15(ve ex)-.15 H(ample,).15 E F1(C\255u)2.488 E F0 .148 ! (is bound to the function)2.898 F F2(uni)2.647 E -.1(ve)-.1 G ! (rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M-DEL)3.327 E F0 .147 ! (is bound to the function)3.177 F F2(backward\255kill\255w)108 316.8 Q ! (ord)-.1 E F0 3.835(,a)C(nd)-3.835 E F1(C\255o)3.675 E F0 1.336 ! (is bound to run the macro e)4.016 F 1.336 (xpressed on the right hand side \(that is, to)-.15 F(insert the te)108 328.8 Q(xt)-.15 E/F3 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0 *************** *** 371,385 **** -.25 G(rsal\255ar).15 E(gument)-.18 E ("\\C\255x\\C\255r": re\255read\255init\255\214le)144 417.6 Q ! ("\\e[11~": "Function K)144 429.6 Q .3 -.15(ey 1)-.25 H(").15 E .237 ! (In this e)108 446.4 R(xample,)-.15 E F1(C-u)2.737 E F0 .237(is ag)2.737 ! F .238(ain bound to the function)-.05 F F2(uni)2.738 E -.1(ve)-.1 G ! (rsal\255ar).1 E(gument)-.1 E F0(.)A F1 .238(C-x C-r)5.238 F F0 .238 ! (is bound to the function)2.738 F F2 -.18(re)108 458.4 S.18 E ! (ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F1(ESC [ 1 1 ~)2.5 E ! F0(is bound to insert the te)2.5 E(xt)-.15 E F3(Function Key 1)2.5 E F0 ! (.)A(The full set of GNU Emacs style escape sequences a)108 475.2 Q -.25 ! (va)-.2 G(ilable when specifying k).25 E .3 -.15(ey s)-.1 H(equences is) ! .15 E F2<5c43ad>144 487.2 Q F0(control pre\214x)20.3 E F2<5c4dad>144 ! 499.2 Q F0(meta pre\214x)18.08 E F2(\\e)144 511.2 Q F0 (an escape character)28.78 E F2(\\\\)144 523.2 Q F0(backslash)30.44 E F2 (\\")144 535.2 Q F0(literal ", a double quote)27.67 E F2(\\')144 547.2 Q --- 394,408 ---- -.25 G(rsal\255ar).15 E(gument)-.18 E ("\\C\255x\\C\255r": re\255read\255init\255\214le)144 417.6 Q ! ("\\e[11~": "Function K)144 429.6 Q .3 -.15(ey 1)-.25 H(").15 E .198 ! (In this e)108 446.4 R(xample,)-.15 E F1(C-u)2.538 E F0 .199(is ag)2.949 ! F .199(ain bound to the function)-.05 F F2(uni)2.699 E -.1(ve)-.1 G ! (rsal\255ar).1 E(gument)-.1 E F0(.)A F1 .199(C-x C-r)5.039 F F0 .199 ! (is bound to the function)3.429 F F2 -.18(re)108 458.4 S.18 E ! (ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F1(ESC [ 1 1 ~)3.01 ! E F0(is bound to insert the te)3.94 E(xt)-.15 E F3(Function Key 1)2.5 E ! F0(.)A(The full set of GNU Emacs style escape sequences a)108 475.2 Q ! -.25(va)-.2 G(ilable when specifying k).25 E .3 -.15(ey s)-.1 H ! (equences is).15 E F2<5c43ad>144 487.2 Q F0(control pre\214x)20.3 E F2 ! <5c4dad>144 499.2 Q F0(meta pre\214x)18.08 E F2(\\e)144 511.2 Q F0 (an escape character)28.78 E F2(\\\\)144 523.2 Q F0(backslash)30.44 E F2 (\\")144 535.2 Q F0(literal ", a double quote)27.67 E F2(\\')144 547.2 Q *************** *** 403,408 **** -.15(ve)-.15 G(are e)108 724.8 Q 2.5(xpanded. Backslash)-.15 F (will quote an)2.5 E 2.5(yo)-.15 G(ther character in the macro te)-2.5 E ! (xt, including " and '.)-.15 E(GNU Readline 4.3)72 768 Q ! (2002 January 22)126.24 E(2)195.95 E EP %%Page: 3 3 %%BeginPageSetup --- 426,431 ---- -.15(ve)-.15 G(are e)108 724.8 Q 2.5(xpanded. Backslash)-.15 F (will quote an)2.5 E 2.5(yo)-.15 G(ther character in the macro te)-2.5 E ! (xt, including " and '.)-.15 E(GNU Readline 5.0)72 768 Q ! (2004 January 28)126.24 E(2)195.95 E 0 Cg EP %%Page: 3 3 %%BeginPageSetup *************** *** 417,431 **** (ve u)-.25 H 1.095(se by using the).15 F F13.595 E F0 1.095 (option to the)3.595 F F1(set)3.595 E F0 -.2(bu)3.595 G 1.095 ! (iltin com-).2 F 3.097(mand. Other)108 108 R .597 ! (programs using this library pro)3.097 F .597(vide similar mechanisms.) ! -.15 F(The)5.597 E/F2 10/Times-Italic@0 SF(inputr)3.097 E(c)-.37 E F0 ! .596(\214le may be edited and)3.096 F(re-read if a program does not pro) 108 120 Q(vide an)-.15 E 2.5(yo)-.15 G(ther means to incorporate ne)-2.5 E 2.5(wb)-.25 G(indings.)-2.5 E F1 -.92(Va)87 136.8 S(riables).92 E F0 ! .043(Readline has v)108 148.8 R .044 (ariables that can be used to further customize its beha)-.25 F(vior)-.2 ! E 5.044(.A)-.55 G -.25(va)-2.5 G .044(riable may be set in the).25 F F2 ! (inpu-)2.544 E(tr)108 160.8 Q(c)-.37 E F0 ! (\214le with a statement of the form)2.5 E F1(set)144 177.6 Q F2 (variable\255name value)2.5 E F0 .807(Except where noted, readline v)108 194.4 R .807(ariables can tak)-.25 F 3.307(et)-.1 G .807(he v)-3.307 F --- 440,454 ---- (ve u)-.25 H 1.095(se by using the).15 F F13.595 E F0 1.095 (option to the)3.595 F F1(set)3.595 E F0 -.2(bu)3.595 G 1.095 ! (iltin com-).2 F 3.076(mand. Other)108 108 R .576 ! (programs using this library pro)3.076 F .575(vide similar mechanisms.) ! -.15 F(The)5.575 E/F2 10/Times-Italic@0 SF(inputr)3.085 E(c)-.37 E F0 ! .575(\214le may be edited and)3.385 F(re-read if a program does not pro) 108 120 Q(vide an)-.15 E 2.5(yo)-.15 G(ther means to incorporate ne)-2.5 E 2.5(wb)-.25 G(indings.)-2.5 E F1 -.92(Va)87 136.8 S(riables).92 E F0 ! .043(Readline has v)108 148.8 R .043 (ariables that can be used to further customize its beha)-.25 F(vior)-.2 ! E 5.043(.A)-.55 G -.25(va)-2.5 G .043(riable may be set in the).25 F F2 ! (inpu-)2.554 E(tr)108 160.8 Q(c)-.37 E F0 ! (\214le with a statement of the form)2.81 E F1(set)144 177.6 Q F2 (variable\255name value)2.5 E F0 .807(Except where noted, readline v)108 194.4 R .807(ariables can tak)-.25 F 3.307(et)-.1 G .807(he v)-3.307 F *************** *** 501,506 **** (rdless of what the terminal claims it can support.).05 F .957(The name) 5.956 F F1(meta\255\215ag)3.457 E F0 .957(is a)3.457 F(synon)144 703.2 Q ! (ym for this v)-.15 E(ariable.)-.25 E(GNU Readline 4.3)72 768 Q ! (2002 January 22)126.24 E(3)195.95 E EP %%Page: 4 4 %%BeginPageSetup --- 524,529 ---- (rdless of what the terminal claims it can support.).05 F .957(The name) 5.956 F F1(meta\255\215ag)3.457 E F0 .957(is a)3.457 F(synon)144 703.2 Q ! (ym for this v)-.15 E(ariable.)-.25 E(GNU Readline 5.0)72 768 Q ! (2004 January 28)126.24 E(3)195.95 E 0 Cg EP %%Page: 4 4 %%BeginPageSetup *************** *** 565,606 **** (ore).15 E 1.264(than one possible completion cause the matches to be l\ isted immediately instead of ringing the)144 456 R(bell.)144 468 Q F1 ! (visible\255stats \(Off\))108 480 Q F0 .846(If set to)144 492 R F1(On) 3.346 E F0 3.346(,ac)C .846(haracter denoting a \214le')-3.346 F 3.346 (st)-.55 G .846(ype as reported by)-3.346 F F2(stat)3.346 E F0 .846 (\(2\) is appended to the \214lename)B ! (when listing possible completions.)144 504 Q F1(Conditional Constructs) ! 87 520.8 Q F0 .05(Readline implements a f)108 532.8 R .05(acility simil\ ar in spirit to the conditional compilation features of the C preproces\ ! sor)-.1 F .096(which allo)108 544.8 R .096(ws k)-.25 F .396 -.15(ey b) -.1 H .096(indings and v).15 F .096 ! (ariable settings to be performed as the result of tests.)-.25 F .097 ! (There are four parser)5.096 F(directi)108 556.8 Q -.15(ve)-.25 G 2.5 ! (su).15 G(sed.)-2.5 E F1($if)108 573.6 Q F0(The)24.89 E F1($if)2.963 E ! F0 .463(construct allo)2.963 F .462(ws bindings to be made based on the\ ! editing mode, the terminal being used,)-.25 F .477 ! (or the application using readline.)144 585.6 R .477(The te)5.477 F .477 (xt of the test e)-.15 F .477 (xtends to the end of the line; no characters)-.15 F ! (are required to isolate it.)144 597.6 Q F1(mode)144 614.4 Q F0(The) ! 12.67 E F1(mode=)3.712 E F0 1.212(form of the)3.712 F F1($if)3.711 E F0 (directi)3.711 E 1.511 -.15(ve i)-.25 H 3.711(su).15 G 1.211 (sed to test whether readline is in emacs or vi)-3.711 F 3.065 ! (mode. This)180 626.4 R .565(may be used in conjunction with the)3.065 F F1 .565(set k)3.065 F(eymap)-.1 E F0 .565(command, for instance, to) ! 3.065 F .03(set bindings in the)180 638.4 R F2(emacs-standar)2.529 E(d) -.37 E F0(and)2.529 E F2(emacs-ctlx)2.529 E F0 -.1(ke)2.529 G .029 ! (ymaps only if readline is starting out)-.05 F(in emacs mode.)180 650.4 ! Q F1(term)144 667.2 Q F0(The)15.46 E F1(term=)3.196 E F0 .696 ! (form may be used to include terminal-speci\214c k)3.196 F .996 -.15 ! (ey b)-.1 H .697(indings, perhaps to bind).15 F .654(the k)180 679.2 R ! .954 -.15(ey s)-.1 H .654(equences output by the terminal').15 F 3.154 ! (sf)-.55 G .654(unction k)-3.154 F -.15(ey)-.1 G 3.154(s. The).15 F -.1 ! (wo)3.154 G .654(rd on the right side of).1 F(the)180 691.2 Q F1(=)3.003 ! E F0 .503(is tested ag)3.003 F .504(ainst the full name of the terminal\ ! and the portion of the terminal name)-.05 F(before the \214rst)180 ! 703.2 Q F12.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.5 E F0 ! (to match both)2.5 E F2(sun)2.5 E F0(and)2.5 E F2(sun\255cmd)2.5 E F0 ! 2.5(,f).77 G(or instance.)-2.5 E(GNU Readline 4.3)72 768 Q ! (2002 January 22)126.24 E(4)195.95 E EP %%Page: 5 5 %%BeginPageSetup --- 588,629 ---- (ore).15 E 1.264(than one possible completion cause the matches to be l\ isted immediately instead of ringing the)144 456 R(bell.)144 468 Q F1 ! (sho)108 480 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.345 ! (This alters the def)144 492 R 5.345(ault beha)-.1 F 5.345 ! (vior of the completion functions in a f)-.2 F 5.346(ashion similar to) ! -.1 F F1(sho)144 504 Q(w\255all\255if\255ambiguous)-.1 E F0 6.923(.I)C ! 4.423(fs)-6.923 G 1.923(et to)-4.423 F F1(on)4.423 E F0 4.423(,w)C 1.923 ! (ords which ha)-4.523 F 2.222 -.15(ve m)-.2 H 1.922 ! (ore than one possible completion).15 F 1.039(without an)144 516 R 3.539 ! (yp)-.15 G 1.039 ! (ossible partial completion \(the possible completions don')-3.539 F ! 3.539(ts)-.18 G 1.04(hare a common pre\214x\))-3.539 F(cause the matche\ ! s to be listed immediately instead of ringing the bell.)144 528 Q F1 ! (visible\255stats \(Off\))108 540 Q F0 .847(If set to)144 552 R F1(On) 3.346 E F0 3.346(,ac)C .846(haracter denoting a \214le')-3.346 F 3.346 (st)-.55 G .846(ype as reported by)-3.346 F F2(stat)3.346 E F0 .846 (\(2\) is appended to the \214lename)B ! (when listing possible completions.)144 564 Q F1(Conditional Constructs) ! 87 580.8 Q F0 .05(Readline implements a f)108 592.8 R .05(acility simil\ ar in spirit to the conditional compilation features of the C preproces\ ! sor)-.1 F .097(which allo)108 604.8 R .097(ws k)-.25 F .396 -.15(ey b) -.1 H .096(indings and v).15 F .096 ! (ariable settings to be performed as the result of tests.)-.25 F .096 ! (There are four parser)5.096 F(directi)108 616.8 Q -.15(ve)-.25 G 2.5 ! (su).15 G(sed.)-2.5 E F1($if)108 633.6 Q F0(The)24.89 E F1($if)2.962 E ! F0 .462(construct allo)2.962 F .463(ws bindings to be made based on the\ ! editing mode, the terminal being used,)-.25 F .478 ! (or the application using readline.)144 645.6 R .477(The te)5.477 F .477 (xt of the test e)-.15 F .477 (xtends to the end of the line; no characters)-.15 F ! (are required to isolate it.)144 657.6 Q F1(mode)144 674.4 Q F0(The) ! 12.67 E F1(mode=)3.711 E F0 1.211(form of the)3.711 F F1($if)3.711 E F0 (directi)3.711 E 1.511 -.15(ve i)-.25 H 3.711(su).15 G 1.211 (sed to test whether readline is in emacs or vi)-3.711 F 3.065 ! (mode. This)180 686.4 R .565(may be used in conjunction with the)3.065 F F1 .565(set k)3.065 F(eymap)-.1 E F0 .565(command, for instance, to) ! 3.065 F .029(set bindings in the)180 698.4 R F2(emacs-standar)2.529 E(d) -.37 E F0(and)2.529 E F2(emacs-ctlx)2.529 E F0 -.1(ke)2.529 G .029 ! (ymaps only if readline is starting out)-.05 F(in emacs mode.)180 710.4 ! Q(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E(4)195.95 E 0 Cg EP %%Page: 5 5 %%BeginPageSetup *************** *** 608,703 **** %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10 ! /Times-Bold@0 SF(application)144 84 Q F0(The)180 96 Q F1(application) ! 3.003 E F0 .503 (construct is used to include application-speci\214c settings.)3.003 F .503(Each program)5.503 F .114(using the readline library sets the)180 ! 108 R/F2 10/Times-Italic@0 SF .114(application name)2.614 F F0 2.614(,a) ! C .114(nd an initialization \214le can test for a)-2.614 F .501 ! (particular v)180 120 R 3.001(alue. This)-.25 F .501 ! (could be used to bind k)3.001 F .801 -.15(ey s)-.1 H .5 ! (equences to functions useful for a spe-).15 F .396(ci\214c program.)180 ! 132 R -.15(Fo)5.396 G 2.896(ri).15 G .396(nstance, the follo)-2.896 F ! .396(wing command adds a k)-.25 F .696 -.15(ey s)-.1 H .397 ! (equence that quotes the).15 F(current or pre)180 144 Q(vious w)-.25 E ! (ord in Bash:)-.1 E F1($if)180 168 Q F0(Bash)2.5 E 2.5(#Q)180 180 S ! (uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E ! ("\\C-xq": "\\eb\\"\\ef\\"")180 192 Q F1($endif)180 204 Q($endif)108 ! 220.8 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E (xample, terminates an)-.15 E F1($if)2.5 E F0(command.)2.5 E F1($else) ! 108 237.6 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 E F0 (directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)-.15 G ! (cuted if the test f).15 E(ails.)-.1 E F1($include)108 254.4 Q F0 .357 ! (This directi)144 266.4 R .657 -.15(ve t)-.25 H(ak).15 E .357 ! (es a single \214lename as an ar)-.1 F .356 (gument and reads commands and bindings from that)-.18 F 2.5(\214le. F) ! 144 278.4 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3 -.15(ve w)-.25 H(ould read).05 E F2(/etc/inputr)2.5 E(c)-.37 E F0(:)A F1 ! ($include)144 302.4 Q F2(/etc/inputr)5.833 E(c)-.37 E/F3 10.95 ! /Times-Bold@0 SF(SEARCHING)72 319.2 Q F0 1.003(Readline pro)108 331.2 R 1.003(vides commands for searching through the command history for line\ ! s containing a speci\214ed)-.15 F 2.5(string. There)108 343.2 R(are tw) ! 2.5 E 2.5(os)-.1 G(earch modes:)-2.5 E F2(incr)2.5 E(emental)-.37 E F0 ! (and)2.5 E F2(non-incr)2.5 E(emental)-.37 E F0(.).51 E .698 ! (Incremental searches be)108 360 R .698 (gin before the user has \214nished typing the search string.)-.15 F ! .697(As each character of the)5.697 F .112 ! (search string is typed, readline displays the ne)108 372 R .112 (xt entry from the history matching the string typed so f)-.15 F(ar)-.1 ! E 5.113(.A)-.55 G(n)-5.113 E .545 ! (incremental search requires only as man)108 384 R 3.045(yc)-.15 G .544 ! (haracters as needed to \214nd the desired history entry)-3.045 F 5.544 ! (.T)-.65 G 3.044(os)-6.344 G(earch)-3.044 E(backw)108 396 Q .18 (ard in the history for a particular string, type)-.1 F F1(C\255r)2.681 ! E F0 5.181(.T)C(yping)-5.981 E F1(C\255s)2.681 E F0 .181(searches forw) ! 2.681 F .181(ard through the history)-.1 F(.)-.65 E .354 ! (The characters present in the v)108 408 R .354(alue of the)-.25 F F1 (isear)2.854 E(ch-terminators)-.18 E F0 -.25(va)2.854 G .354 ! (riable are used to terminate an incremen-).25 F .6(tal search.)108 420 ! R .6(If that v)5.6 F .6(ariable has not been assigned a v)-.25 F .6 ! (alue the)-.25 F F2(Escape)3.1 E F0(and)3.1 E F1(C\255J)3.1 E F0 .6 ! (characters will terminate an)3.1 F .123(incremental search.)108 432 R ! F1(C\255G)5.123 E F0 .123 ! (will abort an incremental search and restore the original line.)2.623 F ! .122(When the search is)5.122 F(terminated, the history entry containin\ ! g the search string becomes the current line.)108 444 Q 2.406 -.8 ! (To \214)108 460.8 T .806 (nd other matching entries in the history list, type).8 F F1(C\255s) 3.306 E F0(or)3.306 E F1(C\255r)3.306 E F0 .806(as appropriate.)3.306 F ! .807(This will search back-)5.806 F -.1(wa)108 472.8 S 1.309(rd or forw) .1 F 1.309(ard in the history for the ne)-.1 F 1.309 (xt line matching the search string typed so f)-.15 F(ar)-.1 E 6.309(.A) ! -.55 G 1.609 -.15(ny o)-6.309 H 1.308(ther k).15 F -.15(ey)-.1 G .317 (sequence bound to a readline command will terminate the search and e) ! 108 484.8 R -.15(xe)-.15 G .318(cute that command.).15 F -.15(Fo)5.318 G ! 2.818(ri).15 G(nstance,)-2.818 E 3.481(an)108 496.8 S -.25(ew)-3.481 G ! .981(line will terminate the search and accept the line, thereby e).25 F ! -.15(xe)-.15 G .98(cuting the command from the history).15 F 3.061 ! (list. A)108 508.8 R(mo)3.061 E -.15(ve)-.15 G .562 (ment command will terminate the search, mak).15 F 3.062(et)-.1 G .562 (he last line found the current line, and be)-3.062 F(gin)-.15 E ! (editing.)108 520.8 Q .567(Non-incremental searches read the entire sea\ rch string before starting to search for matching history lines.)108 ! 537.6 R(The search string may be typed by the user or be part of the co\ ! ntents of the current line.)108 549.6 Q F3(EDITING COMMANDS)72 566.4 Q ! F0 1.391(The follo)108 578.4 R 1.391 (wing is a list of the names of the commands and the def)-.25 F 1.391 (ault k)-.1 F 1.691 -.15(ey s)-.1 H 1.391(equences to which the).15 F ! 3.892(ya)-.15 G(re)-3.892 E 2.5(bound. Command)108 590.4 R (names without an accompan)2.5 E(ying k)-.15 E .3 -.15(ey s)-.1 H ! (equence are unbound by def).15 E(ault.)-.1 E .055(In the follo)108 ! 607.2 R .055(wing descriptions,)-.25 F F2(point)2.555 E F0 .055 ! (refers to the current cursor position, and)2.555 F F2(mark)2.555 E F0 ! .054(refers to a cursor position)2.554 F(sa)108 619.2 Q -.15(ve)-.2 G ! 2.5(db).15 G 2.5(yt)-2.5 G(he)-2.5 E F1(set\255mark)2.5 E F0 2.5 (command. The)2.5 F(te)2.5 E (xt between the point and mark is referred to as the)-.15 E F2 -.37(re) ! 2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 636 Q(or Mo)-.25 E(ving)-.1 E ! (beginning\255of\255line \(C\255a\))108 648 Q F0(Mo)144 660 Q .3 -.15 ! (ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1 ! (end\255of\255line \(C\255e\))108 672 Q F0(Mo)144 684 Q .3 -.15(ve t) ! -.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108 696 S ! (rward\255char \(C\255f\)).25 E F0(Mo)144 708 Q .3 -.15(ve f)-.15 H(orw) ! .15 E(ard a character)-.1 E(.)-.55 E(GNU Readline 4.3)72 768 Q ! (2002 January 22)126.24 E(5)195.95 E EP %%Page: 6 6 %%BeginPageSetup --- 631,731 ---- %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10 ! /Times-Bold@0 SF(term)144 84 Q F0(The)15.46 E F1(term=)3.197 E F0 .696 ! (form may be used to include terminal-speci\214c k)3.197 F .996 -.15 ! (ey b)-.1 H .696(indings, perhaps to bind).15 F .654(the k)180 96 R .954 ! -.15(ey s)-.1 H .654(equences output by the terminal').15 F 3.154(sf) ! -.55 G .654(unction k)-3.154 F -.15(ey)-.1 G 3.154(s. The).15 F -.1(wo) ! 3.154 G .654(rd on the right side of).1 F(the)180 108 Q F1(=)3.004 E F0 ! .504(is tested ag)3.004 F .503(ainst the full name of the terminal and \ ! the portion of the terminal name)-.05 F(before the \214rst)180 120 Q F1 ! 2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E/F2 10/Times-Italic@0 SF(sun) ! 2.84 E F0(to match both)2.74 E F2(sun)2.84 E F0(and)2.74 E F2 ! (sun\255cmd)2.5 E F0 2.5(,f).77 G(or instance.)-2.5 E F1(application)144 ! 136.8 Q F0(The)180 148.8 Q F1(application)3.003 E F0 .503 (construct is used to include application-speci\214c settings.)3.003 F .503(Each program)5.503 F .114(using the readline library sets the)180 ! 160.8 R F2 .114(application name)2.614 F F0 2.614(,a)C .114 ! (nd an initialization \214le can test for a)-2.614 F .5(particular v)180 ! 172.8 R 3(alue. This)-.25 F .501(could be used to bind k)3 F .801 -.15 ! (ey s)-.1 H .501(equences to functions useful for a spe-).15 F .397 ! (ci\214c program.)180 184.8 R -.15(Fo)5.397 G 2.896(ri).15 G .396 ! (nstance, the follo)-2.896 F .396(wing command adds a k)-.25 F .696 -.15 ! (ey s)-.1 H .396(equence that quotes the).15 F(current or pre)180 196.8 ! Q(vious w)-.25 E(ord in Bash:)-.1 E F1($if)180 220.8 Q F0(Bash)2.5 E 2.5 ! (#Q)180 232.8 S(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E ! ("\\C-xq": "\\eb\\"\\ef\\"")180 244.8 Q F1($endif)180 256.8 Q($endif)108 ! 273.6 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E (xample, terminates an)-.15 E F1($if)2.5 E F0(command.)2.5 E F1($else) ! 108 290.4 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 E F0 (directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)-.15 G ! (cuted if the test f).15 E(ails.)-.1 E F1($include)108 307.2 Q F0 .356 ! (This directi)144 319.2 R .656 -.15(ve t)-.25 H(ak).15 E .356 ! (es a single \214lename as an ar)-.1 F .357 (gument and reads commands and bindings from that)-.18 F 2.5(\214le. F) ! 144 331.2 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3 -.15(ve w)-.25 H(ould read).05 E F2(/etc/inputr)2.5 E(c)-.37 E F0(:)A F1 ! ($include)144 355.2 Q F2(/etc/inputr)5.833 E(c)-.37 E/F3 10.95 ! /Times-Bold@0 SF(SEARCHING)72 372 Q F0 1.004(Readline pro)108 384 R 1.003(vides commands for searching through the command history for line\ ! s containing a speci\214ed)-.15 F 2.5(string. There)108 396 R(are tw)2.5 ! E 2.5(os)-.1 G(earch modes:)-2.5 E F2(incr)2.51 E(emental)-.37 E F0(and) ! 3.01 E F2(non-incr)2.5 E(emental)-.37 E F0(.).51 E .697 ! (Incremental searches be)108 412.8 R .697 (gin before the user has \214nished typing the search string.)-.15 F ! .698(As each character of the)5.698 F .113 ! (search string is typed, readline displays the ne)108 424.8 R .112 (xt entry from the history matching the string typed so f)-.15 F(ar)-.1 ! E 5.112(.A)-.55 G(n)-5.112 E .544 ! (incremental search requires only as man)108 436.8 R 3.044(yc)-.15 G ! .544(haracters as needed to \214nd the desired history entry)-3.044 F ! 5.545(.T)-.65 G 3.045(os)-6.345 G(earch)-3.045 E(backw)108 448.8 Q .181 (ard in the history for a particular string, type)-.1 F F1(C\255r)2.681 ! E F0 5.181(.T)C(yping)-5.981 E F1(C\255s)2.68 E F0 .18(searches forw) ! 2.68 F .18(ard through the history)-.1 F(.)-.65 E .354 ! (The characters present in the v)108 460.8 R .354(alue of the)-.25 F F1 (isear)2.854 E(ch-terminators)-.18 E F0 -.25(va)2.854 G .354 ! (riable are used to terminate an incremen-).25 F .6(tal search.)108 ! 472.8 R .6(If that v)5.6 F .6(ariable has not been assigned a v)-.25 F ! .6(alue the)-.25 F F2(Escape)3.1 E F0(and)3.1 E F1(C\255J)3.1 E F0 .6 ! (characters will terminate an)3.1 F .122(incremental search.)108 484.8 R ! F1(C\255G)5.122 E F0 .122 ! (will abort an incremental search and restore the original line.)2.622 F ! .123(When the search is)5.123 F(terminated, the history entry containin\ ! g the search string becomes the current line.)108 496.8 Q 2.407 -.8 ! (To \214)108 513.6 T .806 (nd other matching entries in the history list, type).8 F F1(C\255s) 3.306 E F0(or)3.306 E F1(C\255r)3.306 E F0 .806(as appropriate.)3.306 F ! .806(This will search back-)5.806 F -.1(wa)108 525.6 S 1.308(rd or forw) .1 F 1.309(ard in the history for the ne)-.1 F 1.309 (xt line matching the search string typed so f)-.15 F(ar)-.1 E 6.309(.A) ! -.55 G 1.609 -.15(ny o)-6.309 H 1.309(ther k).15 F -.15(ey)-.1 G .317 (sequence bound to a readline command will terminate the search and e) ! 108 537.6 R -.15(xe)-.15 G .317(cute that command.).15 F -.15(Fo)5.317 G ! 2.817(ri).15 G(nstance,)-2.817 E 3.48(an)108 549.6 S -.25(ew)-3.48 G .98 ! (line will terminate the search and accept the line, thereby e).25 F ! -.15(xe)-.15 G .981(cuting the command from the history).15 F 3.062 ! (list. A)108 561.6 R(mo)3.062 E -.15(ve)-.15 G .562 (ment command will terminate the search, mak).15 F 3.062(et)-.1 G .562 (he last line found the current line, and be)-3.062 F(gin)-.15 E ! (editing.)108 573.6 Q .567(Non-incremental searches read the entire sea\ rch string before starting to search for matching history lines.)108 ! 590.4 R(The search string may be typed by the user or be part of the co\ ! ntents of the current line.)108 602.4 Q F3(EDITING COMMANDS)72 619.2 Q ! F0 1.392(The follo)108 631.2 R 1.391 (wing is a list of the names of the commands and the def)-.25 F 1.391 (ault k)-.1 F 1.691 -.15(ey s)-.1 H 1.391(equences to which the).15 F ! 3.891(ya)-.15 G(re)-3.891 E 2.5(bound. Command)108 643.2 R (names without an accompan)2.5 E(ying k)-.15 E .3 -.15(ey s)-.1 H ! (equence are unbound by def).15 E(ault.)-.1 E .054(In the follo)108 660 ! R .054(wing descriptions,)-.25 F F2(point)2.554 E F0 .055 ! (refers to the current cursor position, and)2.554 F F2(mark)2.555 E F0 ! .055(refers to a cursor position)2.555 F(sa)108 672 Q -.15(ve)-.2 G 2.5 ! (db).15 G 2.5(yt)-2.5 G(he)-2.5 E F1(set\255mark)2.5 E F0 2.5 (command. The)2.5 F(te)2.5 E (xt between the point and mark is referred to as the)-.15 E F2 -.37(re) ! 2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 688.8 Q(or Mo)-.25 E(ving)-.1 ! E(beginning\255of\255line \(C\255a\))108 700.8 Q F0(Mo)144 712.8 Q .3 ! -.15(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E ! (GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E(5)195.95 E 0 Cg EP %%Page: 6 6 %%BeginPageSetup *************** *** 705,792 **** %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10 ! /Times-Bold@0 SF(backward\255char \(C\255b\))108 84 Q F0(Mo)144 96 Q .3 ! -.15(ve b)-.15 H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 108 S ! (rward\255w).25 E(ord \(M\255f\))-.1 E F0(Mo)144 120 Q .822 -.15(ve f) ! -.15 H(orw).15 E .522(ard to the end of the ne)-.1 F .523(xt w)-.15 F ! 3.023(ord. W)-.1 F .523 ! (ords are composed of alphanumeric characters \(let-)-.8 F ! (ters and digits\).)144 132 Q F1(backward\255w)108 144 Q(ord \(M\255b\)) ! -.1 E F0(Mo)144 156 Q 1.71 -.15(ve b)-.15 H 1.41 (ack to the start of the current or pre).15 F 1.41(vious w)-.25 F 3.91 (ord. W)-.1 F 1.41(ords are composed of alphanumeric)-.8 F ! (characters \(letters and digits\).)144 168 Q F1(clear\255scr)108 180 Q ! (een \(C\255l\))-.18 E F0 .993(Clear the screen lea)144 192 R .993 (ving the current line at the top of the screen.)-.2 F -.4(Wi)5.993 G .993(th an ar).4 F .993(gument, refresh the)-.18 F ! (current line without clearing the screen.)144 204 Q F1 -.18(re)108 216 S(draw\255curr).18 E(ent\255line)-.18 E F0(Refresh the current line.)144 ! 228 Q F1(Commands f)87 244.8 Q(or Manipulating the History)-.25 E ! (accept\255line \(Newline, Retur)108 256.8 Q(n\))-.15 E F0 .365 ! (Accept the line re)144 268.8 R -.05(ga)-.15 G .364 (rdless of where the cursor is.).05 F .364(If this line is non-empty) ! 5.364 F 2.864(,i)-.65 G 2.864(tm)-2.864 G .364(ay be added to the)-2.864 ! F .74(history list for future recall with)144 280.8 R F1 ! (add_history\(\))3.24 E F0 5.741(.I)C 3.241(ft)-5.741 G .741 (he line is a modi\214ed history line, the history)-3.241 F ! (line is restored to its original state.)144 292.8 Q F1(pr)108 304.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0(Fetch the pre)144 ! 316.8 Q(vious command from the history list, mo)-.25 E ! (ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 328.8 Q ! F0(Fetch the ne)144 340.8 Q(xt command from the history list, mo)-.15 E (ving forw)-.15 E(ard in the list.)-.1 E F1 ! (beginning\255of\255history \(M\255<\))108 352.8 Q F0(Mo)144 364.8 Q .3 -.15(ve t)-.15 H 2.5(ot).15 G(he \214rst line in the history)-2.5 E(.) ! -.65 E F1(end\255of\255history \(M\255>\))108 376.8 Q F0(Mo)144 388.8 Q .3 -.15(ve t)-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5 (,i)-.65 G(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18 ! (re v)108 400.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0 ! 1.471(Search backw)144 412.8 R 1.471 ! (ard starting at the current line and mo)-.1 F 1.47 (ving `up' through the history as necessary)-.15 F(.)-.65 E ! (This is an incremental search.)144 424.8 Q F1 -.25(fo)108 436.8 S ! (rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.131 ! (Search forw)144 448.8 R 1.131(ard starting at the current line and mo) ! -.1 F 1.132(ving `do)-.15 F 1.132(wn' through the history as necessary) ! -.25 F(.)-.65 E(This is an incremental search.)144 460.8 Q F1 ! (non\255incr)108 472.8 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H ! (rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F0 .165(Search backw) ! 144 484.8 R .164(ard through the history starting at the current line u\ ! sing a non-incremental search for)-.1 F 2.5(as)144 496.8 S ! (tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 508.8 Q (emental\255f)-.18 E(orward\255sear)-.25 E(ch\255history \(M\255n\))-.18 ! E F0 1.353(Search forw)144 520.8 R 1.354(ard through the history using \ a non-incremental search for a string supplied by the)-.1 F(user)144 ! 532.8 Q(.)-.55 E F1(history\255sear)108 544.8 Q(ch\255f)-.18 E(orward) ! -.25 E F0 .249(Search forw)144 556.8 R .249(ard through the history for\ the string of characters between the start of the current line)-.1 F ! (and the current cursor position \(the)144 568.8 Q/F2 10/Times-Italic@0 SF(point)2.5 E F0 2.5(\). This)B(is a non-incremental search.)2.5 E F1 ! (history\255sear)108 580.8 Q(ch\255backward)-.18 E F0 .95(Search backw) ! 144 592.8 R .951(ard through the history for the string of characters b\ ! etween the start of the current)-.1 F(line and the point.)144 604.8 Q ! (This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 616.8 Q 2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144 ! 628.8 R .622(gument to the pre)-.18 F .622 (vious command \(usually the second w)-.25 F .622(ord on the pre)-.1 F ! .622(vious line\))-.25 F .794(at point.)144 640.8 R -.4(Wi)5.794 G .794 (th an ar).4 F(gument)-.18 E F2(n)3.294 E F0 3.294(,i).24 G .794 (nsert the)-3.294 F F2(n)3.294 E F0 .794(th w)B .794(ord from the pre) ! -.1 F .794(vious command \(the w)-.25 F .795(ords in the)-.1 F(pre)144 ! 652.8 Q .292(vious command be)-.25 F .292(gin with w)-.15 F .291 (ord 0\).)-.1 F 2.791(An)5.291 G -2.25 -.15(eg a)-2.791 H(ti).15 E .591 -.15(ve a)-.25 H -.18(rg).15 G .291(ument inserts the).18 F F2(n)2.791 E ! F0 .291(th w)B .291(ord from the end of)-.1 F(the pre)144 664.8 Q ! (vious command.)-.25 E F1(yank\255last\255ar)108 676.8 Q 2.5(g\()-.1 G ! -1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.307 ! (Insert the last ar)144 688.8 R 1.307(gument to the pre)-.18 F 1.307 ! (vious command \(the last w)-.25 F 1.308(ord of the pre)-.1 F 1.308 ! (vious history entry\).)-.25 F -.4(Wi)144 700.8 S .736(th an ar).4 F ! .736(gument, beha)-.18 F 1.036 -.15(ve ex)-.2 H .736(actly lik).15 F(e) ! -.1 E F1(yank\255nth\255ar)3.235 E(g)-.1 E F0 5.735(.S)C(uccessi)-5.735 ! E 1.035 -.15(ve c)-.25 H .735(alls to).15 F F1(yank\255last\255ar)3.235 ! E(g)-.1 E F0(mo)3.235 E -.15(ve)-.15 G ! (back through the history list, inserting the last ar)144 712.8 Q ! (gument of each line in turn.)-.18 E(GNU Readline 4.3)72 768 Q ! (2002 January 22)126.24 E(6)195.95 E EP %%Page: 7 7 %%BeginPageSetup --- 733,813 ---- %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10 ! /Times-Bold@0 SF(end\255of\255line \(C\255e\))108 84 Q F0(Mo)144 96 Q .3 ! -.15(ve t)-.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108 ! 108 S(rward\255char \(C\255f\)).25 E F0(Mo)144 120 Q .3 -.15(ve f)-.15 H ! (orw).15 E(ard a character)-.1 E(.)-.55 E F1 ! (backward\255char \(C\255b\))108 132 Q F0(Mo)144 144 Q .3 -.15(ve b)-.15 ! H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 156 S(rward\255w).25 E ! (ord \(M\255f\))-.1 E F0(Mo)144 168 Q .823 -.15(ve f)-.15 H(orw).15 E ! .523(ard to the end of the ne)-.1 F .523(xt w)-.15 F 3.023(ord. W)-.1 F ! .522(ords are composed of alphanumeric characters \(let-)-.8 F ! (ters and digits\).)144 180 Q F1(backward\255w)108 192 Q(ord \(M\255b\)) ! -.1 E F0(Mo)144 204 Q 1.71 -.15(ve b)-.15 H 1.41 (ack to the start of the current or pre).15 F 1.41(vious w)-.25 F 3.91 (ord. W)-.1 F 1.41(ords are composed of alphanumeric)-.8 F ! (characters \(letters and digits\).)144 216 Q F1(clear\255scr)108 228 Q ! (een \(C\255l\))-.18 E F0 .993(Clear the screen lea)144 240 R .993 (ving the current line at the top of the screen.)-.2 F -.4(Wi)5.993 G .993(th an ar).4 F .993(gument, refresh the)-.18 F ! (current line without clearing the screen.)144 252 Q F1 -.18(re)108 264 S(draw\255curr).18 E(ent\255line)-.18 E F0(Refresh the current line.)144 ! 276 Q F1(Commands f)87 292.8 Q(or Manipulating the History)-.25 E ! (accept\255line \(Newline, Retur)108 304.8 Q(n\))-.15 E F0 .364 ! (Accept the line re)144 316.8 R -.05(ga)-.15 G .364 (rdless of where the cursor is.).05 F .364(If this line is non-empty) ! 5.364 F 2.864(,i)-.65 G 2.864(tm)-2.864 G .365(ay be added to the)-2.864 ! F .741(history list for future recall with)144 328.8 R F1 ! (add_history\(\))3.241 E F0 5.741(.I)C 3.241(ft)-5.741 G .74 (he line is a modi\214ed history line, the history)-3.241 F ! (line is restored to its original state.)144 340.8 Q F1(pr)108 352.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0(Fetch the pre)144 ! 364.8 Q(vious command from the history list, mo)-.25 E ! (ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 376.8 Q ! F0(Fetch the ne)144 388.8 Q(xt command from the history list, mo)-.15 E (ving forw)-.15 E(ard in the list.)-.1 E F1 ! (beginning\255of\255history \(M\255<\))108 400.8 Q F0(Mo)144 412.8 Q .3 -.15(ve t)-.15 H 2.5(ot).15 G(he \214rst line in the history)-2.5 E(.) ! -.65 E F1(end\255of\255history \(M\255>\))108 424.8 Q F0(Mo)144 436.8 Q .3 -.15(ve t)-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5 (,i)-.65 G(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18 ! (re v)108 448.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0 ! 1.47(Search backw)144 460.8 R 1.471 ! (ard starting at the current line and mo)-.1 F 1.471 (ving `up' through the history as necessary)-.15 F(.)-.65 E ! (This is an incremental search.)144 472.8 Q F1 -.25(fo)108 484.8 S ! (rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.132 ! (Search forw)144 496.8 R 1.132(ard starting at the current line and mo) ! -.1 F 1.131(ving `do)-.15 F 1.131(wn' through the history as necessary) ! -.25 F(.)-.65 E(This is an incremental search.)144 508.8 Q F1 ! (non\255incr)108 520.8 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H ! (rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F0 .164(Search backw) ! 144 532.8 R .164(ard through the history starting at the current line u\ ! sing a non-incremental search for)-.1 F 2.5(as)144 544.8 S ! (tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 556.8 Q (emental\255f)-.18 E(orward\255sear)-.25 E(ch\255history \(M\255n\))-.18 ! E F0 1.354(Search forw)144 568.8 R 1.354(ard through the history using \ a non-incremental search for a string supplied by the)-.1 F(user)144 ! 580.8 Q(.)-.55 E F1(history\255sear)108 592.8 Q(ch\255f)-.18 E(orward) ! -.25 E F0 .248(Search forw)144 604.8 R .249(ard through the history for\ the string of characters between the start of the current line)-.1 F ! (and the current cursor position \(the)144 616.8 Q/F2 10/Times-Italic@0 SF(point)2.5 E F0 2.5(\). This)B(is a non-incremental search.)2.5 E F1 ! (history\255sear)108 628.8 Q(ch\255backward)-.18 E F0 .951(Search backw) ! 144 640.8 R .951(ard through the history for the string of characters b\ ! etween the start of the current)-.1 F(line and the point.)144 652.8 Q ! (This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 664.8 Q 2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144 ! 676.8 R .622(gument to the pre)-.18 F .622 (vious command \(usually the second w)-.25 F .622(ord on the pre)-.1 F ! .622(vious line\))-.25 F .795(at point.)144 688.8 R -.4(Wi)5.795 G .794 (th an ar).4 F(gument)-.18 E F2(n)3.294 E F0 3.294(,i).24 G .794 (nsert the)-3.294 F F2(n)3.294 E F0 .794(th w)B .794(ord from the pre) ! -.1 F .794(vious command \(the w)-.25 F .794(ords in the)-.1 F(pre)144 ! 700.8 Q .291(vious command be)-.25 F .291(gin with w)-.15 F .291 (ord 0\).)-.1 F 2.791(An)5.291 G -2.25 -.15(eg a)-2.791 H(ti).15 E .591 -.15(ve a)-.25 H -.18(rg).15 G .291(ument inserts the).18 F F2(n)2.791 E ! F0 .291(th w)B .292(ord from the end of)-.1 F(the pre)144 712.8 Q ! (vious command.)-.25 E(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 ! E(6)195.95 E 0 Cg EP %%Page: 7 7 %%BeginPageSetup *************** *** 794,885 **** %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10 ! /Times-Bold@0 SF(Commands f)87 84 Q(or Changing T)-.25 E(ext)-.92 E ! (delete\255char \(C\255d\))108 96 Q F0 .357 ! (Delete the character at point.)144 108 R .358(If point is at the be) ! 5.358 F .358(ginning of the line, there are no characters in the)-.15 F ! (line, and the last character typed w)144 120 Q(as not bound to)-.1 E F1 ! (delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E/F2 9/Times-Bold@0 SF ! (EOF)2.5 E/F3 9/Times-Roman@0 SF(.)A F1 ! (backward\255delete\255char \(Rubout\))108 132 Q F0 .553 ! (Delete the character behind the cursor)144 144 R 5.553(.W)-.55 G .553 (hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553(umeric ar)-3.053 F ! .552(gument, sa)-.18 F .852 -.15(ve t)-.2 H .552(he deleted te).15 F ! .552(xt on)-.15 F(the kill ring.)144 156 Q F1 -.25(fo)108 168 S ! (rward\255backward\255delete\255char).25 E F0 .473 ! (Delete the character under the cursor)144 180 R 2.973(,u)-.4 G .474 ! (nless the cursor is at the end of the line, in which case the)-2.973 F ! (character behind the cursor is deleted.)144 192 Q F1 ! (quoted\255insert \(C\255q, C\255v\))108 204 Q F0 1.229(Add the ne)144 ! 216 R 1.228(xt character that you type to the line v)-.15 F 3.728 ! (erbatim. This)-.15 F 1.228(is ho)3.728 F 3.728(wt)-.25 G 3.728(oi) ! -3.728 G 1.228(nsert characters lik)-3.728 F(e)-.1 E F1(C\255q)144 228 Q ! F0 2.5(,f)C(or e)-2.5 E(xample.)-.15 E F1(tab\255insert \(M-T)108 240 Q ! (AB\))-.9 E F0(Insert a tab character)144 252 Q(.)-.55 E F1 ! (self\255insert \(a, b, A, 1, !, ...\))108 264 Q F0 ! (Insert the character typed.)144 276 Q F1(transpose\255chars \(C\255t\)) ! 108 288 Q F0 .321(Drag the character before point forw)144 300 R .321 ! (ard o)-.1 F -.15(ve)-.15 G 2.821(rt).15 G .321 ! (he character at point, mo)-2.821 F .322(ving point forw)-.15 F .322 ! (ard as well.)-.1 F 1.182 ! (If point is at the end of the line, then this transposes the tw)144 312 ! R 3.682(oc)-.1 G 1.182(haracters before point.)-3.682 F(Ne)6.182 E -.05 ! (ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 324 Q(guments ha)-.18 E .3 ! -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E F1 ! (transpose\255w)108 336 Q(ords \(M\255t\))-.1 E F0 .023(Drag the w)144 ! 348 R .023(ord before point past the w)-.1 F .023(ord after point, mo) ! -.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.524(rt).15 G .024(hat w) ! -2.524 F .024(ord as well.)-.1 F .024(If point)5.024 F ! (is at the end of the line, this transposes the last tw)144 360 Q 2.5 ! (ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 372 Q ! (ord \(M\255u\))-.1 E F0 1.699(Uppercase the current \(or follo)144 384 ! R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F -.05(ga) ! -.15 G(ti).05 E 1.998 -.15(ve a)-.25 H -.18(rg).15 G 1.698 ! (ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 396 S(rd, b).1 E ! (ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 408 Q ! (wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 420 Q 1.647 ! (wercase the current \(or follo)-.25 F 1.647(wing\) w)-.25 F 4.147 ! (ord. W)-.1 F 1.648(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.948 -.15 ! (ve a)-.25 H -.18(rg).15 G 1.648(ument, lo).18 F 1.648(wercase the pre) ! -.25 F(vious)-.25 E -.1(wo)144 432 S(rd, b).1 E(ut do not mo)-.2 E .3 ! -.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 444 Q ! (ord \(M\255c\))-.1 E F0 1.975(Capitalize the current \(or follo)144 456 ! R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F -.05(ga) ! -.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.974 ! (ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 468 S(rd, b).1 ! E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108 480 ! S(rwrite\255mode).1 E F0 -.8(To)144 492 S .437(ggle o).8 F -.15(ve)-.15 ! G .437(rwrite mode.).15 F -.4(Wi)5.437 G .437(th an e).4 F .437 ! (xplicit positi)-.15 F .738 -.15(ve n)-.25 H .438(umeric ar).15 F .438 ! (gument, switches to o)-.18 F -.15(ve)-.15 G .438(rwrite mode.).15 F -.4 ! (Wi)144 504 S .781(th an e).4 F .781(xplicit non-positi)-.15 F 1.081 -.15(ve n)-.25 H .781(umeric ar).15 F .781 ! (gument, switches to insert mode.)-.18 F .78(This command af)5.781 F ! (fects)-.25 E(only)144 516 Q F1(emacs)4.394 E F0(mode;)4.394 E F1(vi) ! 4.394 E F0 1.894(mode does o)4.394 F -.15(ve)-.15 G 1.894(rwrite dif).15 F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F/F4 10 ! /Times-Italic@0 SF -.37(re)4.395 G(adline\(\)).37 E F0 1.895 ! (starts in insert)4.395 F 3.969(mode. In)144 528 R -.15(ove)3.969 G ! 1.469(rwrite mode, characters bound to).15 F F1(self\255insert)3.969 E ! F0 1.468(replace the te)3.969 F 1.468(xt at point rather than)-.15 F ! .957(pushing the te)144 540 R .957(xt to the right.)-.15 F .958 ! (Characters bound to)5.957 F F1(backward\255delete\255char)3.458 E F0 ! .958(replace the character)3.458 F(before point with a space.)144 552 Q ! (By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87 ! 568.8 Q(anking)-.85 E(kill\255line \(C\255k\))108 580.8 Q F0 ! (Kill the te)144 592.8 Q(xt from point to the end of the line.)-.15 E F1 ! (backward\255kill\255line \(C\255x Rubout\))108 604.8 Q F0(Kill backw) ! 144 616.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1 ! (unix\255line\255discard \(C\255u\))108 628.8 Q F0(Kill backw)144 640.8 Q(ard from point to the be)-.1 E(ginning of the line.)-.15 E (The killed te)5 E(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt) ! -2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 652.8 Q F0 (Kill all characters on the current line, no matter where point is.)144 ! 664.8 Q F1(kill\255w)108 676.8 Q(ord \(M\255d\))-.1 E F0 1.308 ! (Kill from point the end of the current w)144 688.8 R 1.308 ! (ord, or if between w)-.1 F 1.308(ords, to the end of the ne)-.1 F 1.307 ! (xt w)-.15 F(ord.)-.1 E -.8(Wo)144 700.8 S ! (rd boundaries are the same as those used by).8 E F1 -.25(fo)2.5 G ! (rward\255w).25 E(ord)-.1 E F0(.)A(GNU Readline 4.3)72 768 Q ! (2002 January 22)126.24 E(7)195.95 E EP %%Page: 8 8 %%BeginPageSetup --- 815,911 ---- %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10 ! /Times-Bold@0 SF(yank\255last\255ar)108 84 Q 2.5(g\()-.1 G -1.667 ! (M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.308(Insert the last ar)144 ! 96 R 1.308(gument to the pre)-.18 F 1.307(vious command \(the last w) ! -.25 F 1.307(ord of the pre)-.1 F 1.307(vious history entry\).)-.25 F ! -.4(Wi)144 108 S .735(th an ar).4 F .735(gument, beha)-.18 F 1.035 -.15 ! (ve ex)-.2 H .735(actly lik).15 F(e)-.1 E F1(yank\255nth\255ar)3.235 E ! (g)-.1 E F0 5.736(.S)C(uccessi)-5.736 E 1.036 -.15(ve c)-.25 H .736 ! (alls to).15 F F1(yank\255last\255ar)3.236 E(g)-.1 E F0(mo)3.236 E -.15 ! (ve)-.15 G(back through the history list, inserting the last ar)144 120 ! Q(gument of each line in turn.)-.18 E F1(Commands f)87 136.8 Q ! (or Changing T)-.25 E(ext)-.92 E(delete\255char \(C\255d\))108 148.8 Q ! F0 .358(Delete the character at point.)144 160.8 R .358 ! (If point is at the be)5.358 F .358 ! (ginning of the line, there are no characters in the)-.15 F ! (line, and the last character typed w)144 172.8 Q(as not bound to)-.1 E ! F1(delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E/F2 9/Times-Bold@0 ! SF(EOF)2.5 E/F3 9/Times-Roman@0 SF(.)A F1 ! (backward\255delete\255char \(Rubout\))108 184.8 Q F0 .552 ! (Delete the character behind the cursor)144 196.8 R 5.553(.W)-.55 G .553 (hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553(umeric ar)-3.053 F ! .553(gument, sa)-.18 F .853 -.15(ve t)-.2 H .553(he deleted te).15 F ! .553(xt on)-.15 F(the kill ring.)144 208.8 Q F1 -.25(fo)108 220.8 S ! (rward\255backward\255delete\255char).25 E F0 .474 ! (Delete the character under the cursor)144 232.8 R 2.974(,u)-.4 G .474 ! (nless the cursor is at the end of the line, in which case the)-2.974 F ! (character behind the cursor is deleted.)144 244.8 Q F1 ! (quoted\255insert \(C\255q, C\255v\))108 256.8 Q F0 1.228(Add the ne)144 ! 268.8 R 1.228(xt character that you type to the line v)-.15 F 3.728 ! (erbatim. This)-.15 F 1.228(is ho)3.728 F 3.729(wt)-.25 G 3.729(oi) ! -3.729 G 1.229(nsert characters lik)-3.729 F(e)-.1 E F1(C\255q)144 280.8 ! Q F0 2.5(,f)C(or e)-2.5 E(xample.)-.15 E F1(tab\255insert \(M-T)108 ! 292.8 Q(AB\))-.9 E F0(Insert a tab character)144 304.8 Q(.)-.55 E F1 ! (self\255insert \(a, b, A, 1, !, ...\))108 316.8 Q F0 ! (Insert the character typed.)144 328.8 Q F1 ! (transpose\255chars \(C\255t\))108 340.8 Q F0 .322 ! (Drag the character before point forw)144 352.8 R .321(ard o)-.1 F -.15 ! (ve)-.15 G 2.821(rt).15 G .321(he character at point, mo)-2.821 F .321 ! (ving point forw)-.15 F .321(ard as well.)-.1 F 1.182 ! (If point is at the end of the line, then this transposes the tw)144 ! 364.8 R 3.683(oc)-.1 G 1.183(haracters before point.)-3.683 F(Ne)6.183 E ! -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 376.8 Q(guments ha)-.18 E ! .3 -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E F1 ! (transpose\255w)108 388.8 Q(ords \(M\255t\))-.1 E F0 .024(Drag the w)144 ! 400.8 R .024(ord before point past the w)-.1 F .023(ord after point, mo) ! -.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.523(rt).15 G .023(hat w) ! -2.523 F .023(ord as well.)-.1 F .023(If point)5.023 F ! (is at the end of the line, this transposes the last tw)144 412.8 Q 2.5 ! (ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 424.8 Q ! (ord \(M\255u\))-.1 E F0 1.698(Uppercase the current \(or follo)144 ! 436.8 R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F ! -.05(ga)-.15 G(ti).05 E 1.999 -.15(ve a)-.25 H -.18(rg).15 G 1.699 ! (ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 448.8 S(rd, b).1 ! E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 460.8 Q ! (wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 472.8 Q 1.648 ! (wercase the current \(or follo)-.25 F 1.648(wing\) w)-.25 F 4.148 ! (ord. W)-.1 F 1.647(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.947 -.15 ! (ve a)-.25 H -.18(rg).15 G 1.647(ument, lo).18 F 1.647(wercase the pre) ! -.25 F(vious)-.25 E -.1(wo)144 484.8 S(rd, b).1 E(ut do not mo)-.2 E .3 ! -.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 496.8 Q ! (ord \(M\255c\))-.1 E F0 1.974(Capitalize the current \(or follo)144 ! 508.8 R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F ! -.05(ga)-.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.975 ! (ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 520.8 S(rd, b) ! .1 E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108 ! 532.8 S(rwrite\255mode).1 E F0 -.8(To)144 544.8 S .438(ggle o).8 F -.15 ! (ve)-.15 G .438(rwrite mode.).15 F -.4(Wi)5.438 G .438(th an e).4 F .438 ! (xplicit positi)-.15 F .737 -.15(ve n)-.25 H .437(umeric ar).15 F .437 ! (gument, switches to o)-.18 F -.15(ve)-.15 G .437(rwrite mode.).15 F -.4 ! (Wi)144 556.8 S .78(th an e).4 F .781(xplicit non-positi)-.15 F 1.081 -.15(ve n)-.25 H .781(umeric ar).15 F .781 ! (gument, switches to insert mode.)-.18 F .781(This command af)5.781 F ! (fects)-.25 E(only)144 568.8 Q F1(emacs)4.395 E F0(mode;)4.395 E F1(vi) ! 4.395 E F0 1.894(mode does o)4.395 F -.15(ve)-.15 G 1.894(rwrite dif).15 F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F/F4 10 ! /Times-Italic@0 SF -.37(re)4.394 G(adline\(\)).37 E F0 1.894 ! (starts in insert)4.394 F 3.968(mode. In)144 580.8 R -.15(ove)3.968 G ! 1.468(rwrite mode, characters bound to).15 F F1(self\255insert)3.969 E ! F0 1.469(replace the te)3.969 F 1.469(xt at point rather than)-.15 F ! .958(pushing the te)144 592.8 R .958(xt to the right.)-.15 F .957 ! (Characters bound to)5.958 F F1(backward\255delete\255char)3.457 E F0 ! .957(replace the character)3.457 F(before point with a space.)144 604.8 ! Q(By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87 ! 621.6 Q(anking)-.85 E(kill\255line \(C\255k\))108 633.6 Q F0 ! (Kill the te)144 645.6 Q(xt from point to the end of the line.)-.15 E F1 ! (backward\255kill\255line \(C\255x Rubout\))108 657.6 Q F0(Kill backw) ! 144 669.6 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1 ! (unix\255line\255discard \(C\255u\))108 681.6 Q F0(Kill backw)144 693.6 Q(ard from point to the be)-.1 E(ginning of the line.)-.15 E (The killed te)5 E(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt) ! -2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 705.6 Q F0 (Kill all characters on the current line, no matter where point is.)144 ! 717.6 Q(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E(7)195.95 E 0 ! Cg EP %%Page: 8 8 %%BeginPageSetup *************** *** 887,987 **** %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10 ! /Times-Bold@0 SF(backward\255kill\255w)108 84 Q(ord \(M\255Rubout\))-.1 ! E F0(Kill the w)144 96 Q(ord behind point.)-.1 E -.8(Wo)5 G ! (rd boundaries are the same as those used by).8 E F1(backward\255w)2.5 E ! (ord)-.1 E F0(.)A F1(unix\255w)108 108 Q(ord\255rubout \(C\255w\))-.1 E ! F0 .364(Kill the w)144 120 R .364 ! (ord behind point, using white space as a w)-.1 F .365(ord boundary)-.1 ! F 5.365(.T)-.65 G .365(he killed te)-5.365 F .365(xt is sa)-.15 F -.15 ! (ve)-.2 G 2.865(do).15 G 2.865(nt)-2.865 G(he)-2.865 E(kill-ring.)144 ! 132 Q F1(delete\255horizontal\255space \(M\255\\\))108 144 Q F0 ! (Delete all spaces and tabs around point.)144 156 Q F1(kill\255r)108 168 ! Q(egion)-.18 E F0 1.13(Kill the te)144 180 R 1.13 (xt between the point and)-.15 F/F2 10/Times-Italic@0 SF(mark)3.63 E F0 (\(sa)3.63 E -.15(ve)-.2 G 3.63(dc).15 G 1.13(ursor position\).)-3.63 F 1.13(This te)6.13 F 1.13(xt is referred to as the)-.15 F F2 -.37(re)144 ! 192 S(gion)-.03 E F0(.)A F1(copy\255r)108 204 Q(egion\255as\255kill)-.18 ! E F0(Cop)144 216 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E (gion to the kill b)-.15 E(uf)-.2 E(fer)-.25 E(.)-.55 E F1 ! (copy\255backward\255w)108 228 Q(ord)-.1 E F0(Cop)144 240 Q 4.8(yt)-.1 G 2.3(he w)-4.8 F 2.3(ord before point to the kill b)-.1 F(uf)-.2 E(fer) -.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.301 ! (ord boundaries are the same as)-.1 F F1(back-)4.801 E(ward\255w)144 252 ! Q(ord)-.1 E F0(.)A F1(copy\255f)108 264 Q(orward\255w)-.25 E(ord)-.1 E ! F0(Cop)144 276 Q 4.508(yt)-.1 G 2.008(he w)-4.508 F 2.008(ord follo)-.1 F 2.008(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25 E 7.007(.T) -.55 G 2.007(he w)-7.007 F 2.007(ord boundaries are the same as)-.1 F F1 ! -.25(fo)4.507 G -.37(r-).25 G(ward\255w)144 288 Q(ord)-.1 E F0(.)A F1 ! (yank \(C\255y\))108 300 Q F0 -1(Ya)144 312 S (nk the top of the kill ring into the b)1 E(uf)-.2 E(fer at point.)-.25 ! E F1(yank\255pop \(M\255y\))108 324 Q F0 ! (Rotate the kill ring, and yank the ne)144 336 Q 2.5(wt)-.25 G 2.5 (op. Only)-2.5 F -.1(wo)2.5 G(rks follo).1 E(wing)-.25 E F1(yank)2.5 E ! F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 352.8 Q ! (guments)-.1 E(digit\255ar)108 364.8 Q (gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .641 ! (Add this digit to the ar)144 376.8 R .641 (gument already accumulating, or start a ne)-.18 F 3.141(wa)-.25 G -.18 (rg)-3.141 G 3.142(ument. M\255\255).18 F .642(starts a ne)3.142 F(g-) ! -.15 E(ati)144 388.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1 ! (uni)108 400.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .779 ! (This is another w)144 412.8 R .779(ay to specify an ar)-.1 F 3.279 (gument. If)-.18 F .779(this command is follo)3.279 F .778 (wed by one or more digits,)-.25 F 1.376 (optionally with a leading minus sign, those digits de\214ne the ar)144 ! 424.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144 ! 436.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni) 3.67 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(ag)3.67 E 1.17 (ain ends the numeric ar)-.05 F 1.17(gument, b)-.18 F 1.17(ut is other) ! -.2 F(-)-.2 E .898(wise ignored.)144 448.8 R .898 (As a special case, if this command is immediately follo)5.898 F .898 (wed by a character that is)-.25 F .243 ! (neither a digit or minus sign, the ar)144 460.8 R .243 (gument count for the ne)-.18 F .243(xt command is multiplied by four) ! -.15 F 5.242(.T)-.55 G(he)-5.242 E(ar)144 472.8 Q .378 (gument count is initially one, so e)-.18 F -.15(xe)-.15 G .378 (cuting this function the \214rst time mak).15 F .378(es the ar)-.1 F ! .378(gument count)-.18 F(four)144 484.8 Q 2.5(,as)-.4 G(econd time mak) -2.5 E(es the ar)-.1 E(gument count sixteen, and so on.)-.18 E F1 ! (Completing)87 501.6 Q(complete \(T)108 513.6 Q(AB\))-.9 E F0 1.909 ! (Attempt to perform completion on the te)144 525.6 R 1.908 (xt before point.)-.15 F 1.908(The actual completion performed is)6.908 ! F(application-speci\214c.)144 537.6 Q F1(Bash)5.517 E F0 3.017(,f)C .518 (or instance, attempts completion treating the te)-3.017 F .518 ! (xt as a v)-.15 F .518(ariable \(if the)-.25 F(te)144 549.6 Q .657 (xt be)-.15 F .657(gins with)-.15 F F1($)3.156 E F0 .656 (\), username \(if the te)B .656(xt be)-.15 F .656(gins with)-.15 F F1 (~)3.156 E F0 .656(\), hostname \(if the te)B .656(xt be)-.15 F .656 (gins with)-.15 F F1(@)3.156 E F0 .656(\), or)B .929 ! (command \(including aliases and functions\) in turn.)144 561.6 R .93 (If none of these produces a match, \214lename)5.929 F 1.274 ! (completion is attempted.)144 573.6 R F1(Gdb)6.273 E F0 3.773(,o)C 3.773 (nt)-3.773 G 1.273(he other hand, allo)-3.773 F 1.273 ! (ws completion of program functions and)-.25 F -.25(va)144 585.6 S(riab\ les, and only attempts \214lename completion under certain circumstance\ ! s.).25 E F1(possible\255completions \(M\255?\))108 597.6 Q F0 ! (List the possible completions of the te)144 609.6 Q(xt before point.) ! -.15 E F1(insert\255completions \(M\255*\))108 621.6 Q F0 .783 ! (Insert all completions of the te)144 633.6 R .783 (xt before point that w)-.15 F .783(ould ha)-.1 F 1.083 -.15(ve b)-.2 H .783(een generated by).15 F F1(possible\255com-)3.283 E(pletions)144 ! 645.6 Q F0(.)A F1(menu\255complete)108 657.6 Q F0 .929(Similar to)144 ! 669.6 R F1(complete)3.429 E F0 3.429(,b)C .929(ut replaces the w)-3.629 ! F .929(ord to be completed with a single match from the list of)-.1 F ! 1.193(possible completions.)144 681.6 R 1.193(Repeated e)6.193 F -.15 ! (xe)-.15 G 1.193(cution of).15 F F1(menu\255complete)3.694 E F0 1.194 ! (steps through the list of possible)3.694 F .829 ! (completions, inserting each match in turn.)144 693.6 R .828 ! (At the end of the list of completions, the bell is rung)5.828 F .965 ! (\(subject to the setting of)144 705.6 R F1 .965 ! (0and the original text is r)3.465 F(estor)-.18 E 3.465(ed. An)-.18 F ! (ar)3.465 E .966(gument of)-.1 F F2(n)3.466 E F1(mo)3.466 E -.1(ve)-.1 G ! (s).1 E F2(n)3.466 E F1(posi-)3.466 E 1.249(tions f)144 717.6 R 1.249 ! (orward in the list of matches; a negati)-.25 F 1.449 -.1(ve a)-.1 H -.1 ! (rg).1 G 1.248(ument may be used to mo).1 F 1.448 -.1(ve b)-.1 H ! (ackward).1 E(thr)144 729.6 Q(ough the list.)-.18 E ! (This command is intended to be bound to T)5 E(AB, b)-.9 E ! (ut is unbound by default.)-.2 E F0(GNU Readline 4.3)72 768 Q ! (2002 January 22)126.24 E(8)195.95 E EP %%Page: 9 9 %%BeginPageSetup --- 913,1007 ---- %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10 ! /Times-Bold@0 SF(kill\255w)108 84 Q(ord \(M\255d\))-.1 E F0 1.308 ! (Kill from point the end of the current w)144 96 R 1.308 ! (ord, or if between w)-.1 F 1.308(ords, to the end of the ne)-.1 F 1.308 ! (xt w)-.15 F(ord.)-.1 E -.8(Wo)144 108 S ! (rd boundaries are the same as those used by).8 E F1 -.25(fo)2.5 G ! (rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 120 Q ! (ord \(M\255Rubout\))-.1 E F0(Kill the w)144 132 Q(ord behind point.)-.1 ! E -.8(Wo)5 G(rd boundaries are the same as those used by).8 E F1 ! (backward\255w)2.5 E(ord)-.1 E F0(.)A F1(unix\255w)108 144 Q ! (ord\255rubout \(C\255w\))-.1 E F0 .365(Kill the w)144 156 R .365 ! (ord behind point, using white space as a w)-.1 F .364(ord boundary)-.1 ! F 5.364(.T)-.65 G .364(he killed te)-5.364 F .364(xt is sa)-.15 F -.15 ! (ve)-.2 G 2.864(do).15 G 2.864(nt)-2.864 G(he)-2.864 E(kill-ring.)144 ! 168 Q F1(unix\255\214lename\255rubout)108 180 Q F0 .166(Kill the w)144 ! 192 R .166 ! (ord behind point, using white space and the slash character as the w) ! -.1 F .167(ord boundaries.)-.1 F(The)5.167 E(killed te)144 204 Q ! (xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)-2.5 G(he kill-ring.) ! -2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 216 Q F0 ! (Delete all spaces and tabs around point.)144 228 Q F1(kill\255r)108 240 ! Q(egion)-.18 E F0 1.13(Kill the te)144 252 R 1.13 (xt between the point and)-.15 F/F2 10/Times-Italic@0 SF(mark)3.63 E F0 (\(sa)3.63 E -.15(ve)-.2 G 3.63(dc).15 G 1.13(ursor position\).)-3.63 F 1.13(This te)6.13 F 1.13(xt is referred to as the)-.15 F F2 -.37(re)144 ! 264 S(gion)-.03 E F0(.)A F1(copy\255r)108 276 Q(egion\255as\255kill)-.18 ! E F0(Cop)144 288 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E (gion to the kill b)-.15 E(uf)-.2 E(fer)-.25 E(.)-.55 E F1 ! (copy\255backward\255w)108 300 Q(ord)-.1 E F0(Cop)144 312 Q 4.8(yt)-.1 G 2.3(he w)-4.8 F 2.3(ord before point to the kill b)-.1 F(uf)-.2 E(fer) -.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.301 ! (ord boundaries are the same as)-.1 F F1(back-)4.801 E(ward\255w)144 324 ! Q(ord)-.1 E F0(.)A F1(copy\255f)108 336 Q(orward\255w)-.25 E(ord)-.1 E ! F0(Cop)144 348 Q 4.508(yt)-.1 G 2.008(he w)-4.508 F 2.008(ord follo)-.1 F 2.008(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25 E 7.007(.T) -.55 G 2.007(he w)-7.007 F 2.007(ord boundaries are the same as)-.1 F F1 ! -.25(fo)4.507 G -.37(r-).25 G(ward\255w)144 360 Q(ord)-.1 E F0(.)A F1 ! (yank \(C\255y\))108 372 Q F0 -1(Ya)144 384 S (nk the top of the kill ring into the b)1 E(uf)-.2 E(fer at point.)-.25 ! E F1(yank\255pop \(M\255y\))108 396 Q F0 ! (Rotate the kill ring, and yank the ne)144 408 Q 2.5(wt)-.25 G 2.5 (op. Only)-2.5 F -.1(wo)2.5 G(rks follo).1 E(wing)-.25 E F1(yank)2.5 E ! F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 424.8 Q ! (guments)-.1 E(digit\255ar)108 436.8 Q (gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .641 ! (Add this digit to the ar)144 448.8 R .641 (gument already accumulating, or start a ne)-.18 F 3.141(wa)-.25 G -.18 (rg)-3.141 G 3.142(ument. M\255\255).18 F .642(starts a ne)3.142 F(g-) ! -.15 E(ati)144 460.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1 ! (uni)108 472.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .779 ! (This is another w)144 484.8 R .779(ay to specify an ar)-.1 F 3.279 (gument. If)-.18 F .779(this command is follo)3.279 F .778 (wed by one or more digits,)-.25 F 1.376 (optionally with a leading minus sign, those digits de\214ne the ar)144 ! 496.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144 ! 508.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni) 3.67 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(ag)3.67 E 1.17 (ain ends the numeric ar)-.05 F 1.17(gument, b)-.18 F 1.17(ut is other) ! -.2 F(-)-.2 E .898(wise ignored.)144 520.8 R .898 (As a special case, if this command is immediately follo)5.898 F .898 (wed by a character that is)-.25 F .243 ! (neither a digit or minus sign, the ar)144 532.8 R .243 (gument count for the ne)-.18 F .243(xt command is multiplied by four) ! -.15 F 5.242(.T)-.55 G(he)-5.242 E(ar)144 544.8 Q .378 (gument count is initially one, so e)-.18 F -.15(xe)-.15 G .378 (cuting this function the \214rst time mak).15 F .378(es the ar)-.1 F ! .378(gument count)-.18 F(four)144 556.8 Q 2.5(,as)-.4 G(econd time mak) -2.5 E(es the ar)-.1 E(gument count sixteen, and so on.)-.18 E F1 ! (Completing)87 573.6 Q(complete \(T)108 585.6 Q(AB\))-.9 E F0 1.909 ! (Attempt to perform completion on the te)144 597.6 R 1.908 (xt before point.)-.15 F 1.908(The actual completion performed is)6.908 ! F(application-speci\214c.)144 609.6 Q F1(Bash)5.517 E F0 3.017(,f)C .518 (or instance, attempts completion treating the te)-3.017 F .518 ! (xt as a v)-.15 F .518(ariable \(if the)-.25 F(te)144 621.6 Q .657 (xt be)-.15 F .657(gins with)-.15 F F1($)3.156 E F0 .656 (\), username \(if the te)B .656(xt be)-.15 F .656(gins with)-.15 F F1 (~)3.156 E F0 .656(\), hostname \(if the te)B .656(xt be)-.15 F .656 (gins with)-.15 F F1(@)3.156 E F0 .656(\), or)B .929 ! (command \(including aliases and functions\) in turn.)144 633.6 R .93 (If none of these produces a match, \214lename)5.929 F 1.274 ! (completion is attempted.)144 645.6 R F1(Gdb)6.273 E F0 3.773(,o)C 3.773 (nt)-3.773 G 1.273(he other hand, allo)-3.773 F 1.273 ! (ws completion of program functions and)-.25 F -.25(va)144 657.6 S(riab\ les, and only attempts \214lename completion under certain circumstance\ ! s.).25 E F1(possible\255completions \(M\255?\))108 669.6 Q F0 ! (List the possible completions of the te)144 681.6 Q(xt before point.) ! -.15 E F1(insert\255completions \(M\255*\))108 693.6 Q F0 .783 ! (Insert all completions of the te)144 705.6 R .783 (xt before point that w)-.15 F .783(ould ha)-.1 F 1.083 -.15(ve b)-.2 H .783(een generated by).15 F F1(possible\255com-)3.283 E(pletions)144 ! 717.6 Q F0(.)A(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E(8) ! 195.95 E 0 Cg EP %%Page: 9 9 %%BeginPageSetup *************** *** 989,1080 **** %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10 ! /Times-Bold@0 SF(delete\255char\255or\255list)108 84 Q F0 .373 ! (Deletes the character under the cursor if not at the be)144 96 R .374 (ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete-char)2.874 E ! F0(\).)A(If at the end of the line, beha)144 108 Q -.15(ve)-.2 G 2.5(si) .15 G(dentically to)-2.5 E F1(possible-completions)2.5 E F0(.)A F1 -.25 ! (Ke)87 124.8 S(yboard Macr).25 E(os)-.18 E(start\255kbd\255macr)108 ! 136.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\)).833 E F0(Be)144 148.8 Q (gin sa)-.15 E(ving the characters typed into the current k)-.2 E -.15 ! (ey)-.1 G(board macro.).15 E F1(end\255kbd\255macr)108 160.8 Q 2.5(o\() ! -.18 G(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 172.8 Q (ving the characters typed into the current k)-.2 E -.15(ey)-.1 G (board macro and store the de\214nition.).15 E F1 ! (call\255last\255kbd\255macr)108 184.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5 ! E F0(Re-e)144 196.8 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1 G .999(board macro de\214ned, by making the characters in the macro app\ ! ear as if).15 F(typed at the k)144 208.8 Q -.15(ey)-.1 G(board.).15 E F1 ! (Miscellaneous)87 225.6 Q -.18(re)108 237.6 S.18 E (ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.776 ! (Read in the contents of the)144 249.6 R/F2 10/Times-Italic@0 SF(inputr) ! 4.276 E(c)-.37 E F0 1.777(\214le, and incorporate an)4.276 F 4.277(yb) ! -.15 G 1.777(indings or v)-4.277 F 1.777(ariable assignments)-.25 F ! (found there.)144 261.6 Q F1(abort \(C\255g\))108 273.6 Q F0 3.249 ! (Abort the current editing command and ring the terminal')144 285.6 R 5.748(sb)-.55 G 3.248(ell \(subject to the setting of)-5.748 F F1 ! (bell\255style)144 297.6 Q F0(\).)A F1(do\255upper)108 309.6 Q (case\255v)-.18 E(ersion \(M\255a, M\255b, M\255)-.1 E F2(x)A F1 2.5(,.) ! C(..\))-2.5 E F0 1.755(If the meta\214ed character)144 321.6 R F2(x) 4.255 E F0 1.755(is lo)4.255 F 1.756 (wercase, run the command that is bound to the corresponding)-.25 F ! (uppercase character)144 333.6 Q(.)-.55 E F1(pr)108 345.6 Q ! (e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 357.6 Q (xt character typed.)-.15 E/F3 9/Times-Bold@0 SF(ESC)5 E F1(f)2.25 E F0 (is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1(Meta\255f)2.5 E F0(.)A F1 ! (undo \(C\255_, C\255x C\255u\))108 369.6 Q F0 ! (Incremental undo, separately remembered for each line.)144 381.6 Q F1 ! -2.29 -.18(re v)108 393.6 T(ert\255line \(M\255r\)).08 E F0 1.095 ! (Undo all changes made to this line.)144 405.6 R 1.095(This is lik)6.095 F 3.595(ee)-.1 G -.15(xe)-3.745 G 1.095(cuting the).15 F F1(undo)3.595 E F0 1.095(command enough times to)3.595 F ! (return the line to its initial state.)144 417.6 Q F1 ! (tilde\255expand \(M\255&\))108 429.6 Q F0(Perform tilde e)144 441.6 Q (xpansion on the current w)-.15 E(ord.)-.1 E F1 ! (set\255mark \(C\255@, M\255\))108 453.6 Q F0 ! (Set the mark to the point.)144 465.6 Q(If a numeric ar)5 E (gument is supplied, the mark is set to that position.)-.18 E F1 ! (exchange\255point\255and\255mark \(C\255x C\255x\))108 477.6 Q F0(Sw) ! 144 489.6 Q .282(ap the point with the mark.)-.1 F .283 (The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G 2.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa) ! 144 501.6 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1 ! (character\255sear)108 513.6 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144 ! 525.6 S .536(haracter is read and point is mo)-3.036 F -.15(ve)-.15 G 3.035(dt).15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535 (xt occurrence of that character)-.15 F 5.535(.A)-.55 G(ne)-2.5 E -.05 (ga)-.15 G(ti).05 E .835 -.15(ve c)-.25 H(ount).15 E(searches for pre) ! 144 537.6 Q(vious occurrences.)-.25 E F1(character\255sear)108 549.6 Q ! (ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 561.6 S 1.043 (haracter is read and point is mo)-3.543 F -.15(ve)-.15 G 3.544(dt).15 G 3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044 (vious occurrence of that character)-.25 F 6.044(.A)-.55 G(ne)-2.5 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G ! (count searches for subsequent occurrences.)144 573.6 Q F1 ! (insert\255comment \(M\255#\))108 585.6 Q F0 -.4(Wi)144 597.6 S .481 (thout a numeric ar).4 F .481(gument, the v)-.18 F .481 (alue of the readline)-.25 F F1(comment\255begin)2.981 E F0 -.25(va) ! 2.981 G .48(riable is inserted at the).25 F(be)144 609.6 Q .097 (ginning of the current line.)-.15 F .098(If a numeric ar)5.097 F .098 (gument is supplied, this command acts as a toggle:)-.18 F(if)5.098 E ! .322(the characters at the be)144 621.6 R .321 (ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1 (comment\255begin)2.821 E F0 2.821(,t)C .321(he v)-2.821 F .321(alue is) ! -.25 F 1.013(inserted, otherwise the characters in)144 633.6 R F1 (comment-begin)3.514 E F0 1.014(are deleted from the be)3.514 F 1.014 ! (ginning of the line.)-.15 F 1.469 ! (In either case, the line is accepted as if a ne)144 645.6 R 1.468 ! (wline had been typed.)-.25 F 1.468(The def)6.468 F 1.468(ault v)-.1 F ! 1.468(alue of)-.25 F F1(com-)3.968 E(ment\255begin)144 657.6 Q F0(mak) ! 2.982 E .483(es the current line a shell comment.)-.1 F .483 ! (If a numeric ar)5.483 F .483(gument causes the comment)-.18 F ! (character to be remo)144 669.6 Q -.15(ve)-.15 G(d, the line will be e) ! .15 E -.15(xe)-.15 G(cuted by the shell.).15 E F1(dump\255functions)108 ! 681.6 Q F0 .627(Print all of the functions and their k)144 693.6 R .927 ! -.15(ey b)-.1 H .626(indings to the readline output stream.).15 F .626 ! (If a numeric ar)5.626 F(gu-)-.18 E ! (ment is supplied, the output is formatted in such a w)144 705.6 Q ! (ay that it can be made part of an)-.1 E F2(inputr)2.5 E(c)-.37 E F0 ! (\214le.)2.5 E(GNU Readline 4.3)72 768 Q(2002 January 22)126.24 E(9) ! 195.95 E EP %%Page: 10 10 %%BeginPageSetup --- 1009,1107 ---- %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10 ! /Times-Bold@0 SF(menu\255complete)108 84 Q F0 .929(Similar to)144 96 R ! F1(complete)3.429 E F0 3.429(,b)C .929(ut replaces the w)-3.629 F .929 ! (ord to be completed with a single match from the list of)-.1 F 1.193 ! (possible completions.)144 108 R 1.193(Repeated e)6.193 F -.15(xe)-.15 G ! 1.193(cution of).15 F F1(menu\255complete)3.694 E F0 1.194 ! (steps through the list of possible)3.694 F .829 ! (completions, inserting each match in turn.)144 120 R .828 ! (At the end of the list of completions, the bell is rung)5.828 F .727 ! (\(subject to the setting of)144 132 R F1(bell\255style)3.227 E F0 3.227 ! (\)a)C .727(nd the original te)-3.227 F .727(xt is restored.)-.15 F .727 ! (An ar)5.727 F .727(gument of)-.18 F/F2 10/Times-Italic@0 SF(n)3.227 E ! F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F2(n)3.228 E F0 1.73 ! (positions forw)144 144 R 1.73(ard in the list of matches; a ne)-.1 F ! -.05(ga)-.15 G(ti).05 E 2.03 -.15(ve a)-.25 H -.18(rg).15 G 1.73 ! (ument may be used to mo).18 F 2.03 -.15(ve b)-.15 H(ackw).15 E(ard)-.1 ! E(through the list.)144 156 Q(This command is intended to be bound to)5 ! E F1 -.9(TA)2.5 G(B).9 E F0 2.5(,b)C(ut is unbound by def)-2.7 E(ault.) ! -.1 E F1(delete\255char\255or\255list)108 168 Q F0 .373 ! (Deletes the character under the cursor if not at the be)144 180 R .374 (ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete-char)2.874 E ! F0(\).)A(If at the end of the line, beha)144 192 Q -.15(ve)-.2 G 2.5(si) .15 G(dentically to)-2.5 E F1(possible-completions)2.5 E F0(.)A F1 -.25 ! (Ke)87 208.8 S(yboard Macr).25 E(os)-.18 E(start\255kbd\255macr)108 ! 220.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\)).833 E F0(Be)144 232.8 Q (gin sa)-.15 E(ving the characters typed into the current k)-.2 E -.15 ! (ey)-.1 G(board macro.).15 E F1(end\255kbd\255macr)108 244.8 Q 2.5(o\() ! -.18 G(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 256.8 Q (ving the characters typed into the current k)-.2 E -.15(ey)-.1 G (board macro and store the de\214nition.).15 E F1 ! (call\255last\255kbd\255macr)108 268.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5 ! E F0(Re-e)144 280.8 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1 G .999(board macro de\214ned, by making the characters in the macro app\ ! ear as if).15 F(typed at the k)144 292.8 Q -.15(ey)-.1 G(board.).15 E F1 ! (Miscellaneous)87 309.6 Q -.18(re)108 321.6 S.18 E (ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.776 ! (Read in the contents of the)144 333.6 R F2(inputr)4.276 E(c)-.37 E F0 ! 1.777(\214le, and incorporate an)4.276 F 4.277(yb)-.15 G 1.777 ! (indings or v)-4.277 F 1.777(ariable assignments)-.25 F(found there.)144 ! 345.6 Q F1(abort \(C\255g\))108 357.6 Q F0 3.249 ! (Abort the current editing command and ring the terminal')144 369.6 R 5.748(sb)-.55 G 3.248(ell \(subject to the setting of)-5.748 F F1 ! (bell\255style)144 381.6 Q F0(\).)A F1(do\255upper)108 393.6 Q (case\255v)-.18 E(ersion \(M\255a, M\255b, M\255)-.1 E F2(x)A F1 2.5(,.) ! C(..\))-2.5 E F0 1.755(If the meta\214ed character)144 405.6 R F2(x) 4.255 E F0 1.755(is lo)4.255 F 1.756 (wercase, run the command that is bound to the corresponding)-.25 F ! (uppercase character)144 417.6 Q(.)-.55 E F1(pr)108 429.6 Q ! (e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 441.6 Q (xt character typed.)-.15 E/F3 9/Times-Bold@0 SF(ESC)5 E F1(f)2.25 E F0 (is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1(Meta\255f)2.5 E F0(.)A F1 ! (undo \(C\255_, C\255x C\255u\))108 453.6 Q F0 ! (Incremental undo, separately remembered for each line.)144 465.6 Q F1 ! -2.29 -.18(re v)108 477.6 T(ert\255line \(M\255r\)).08 E F0 1.095 ! (Undo all changes made to this line.)144 489.6 R 1.095(This is lik)6.095 F 3.595(ee)-.1 G -.15(xe)-3.745 G 1.095(cuting the).15 F F1(undo)3.595 E F0 1.095(command enough times to)3.595 F ! (return the line to its initial state.)144 501.6 Q F1 ! (tilde\255expand \(M\255&\))108 513.6 Q F0(Perform tilde e)144 525.6 Q (xpansion on the current w)-.15 E(ord.)-.1 E F1 ! (set\255mark \(C\255@, M\255\))108 537.6 Q F0 ! (Set the mark to the point.)144 549.6 Q(If a numeric ar)5 E (gument is supplied, the mark is set to that position.)-.18 E F1 ! (exchange\255point\255and\255mark \(C\255x C\255x\))108 561.6 Q F0(Sw) ! 144 573.6 Q .282(ap the point with the mark.)-.1 F .283 (The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G 2.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa) ! 144 585.6 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1 ! (character\255sear)108 597.6 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144 ! 609.6 S .536(haracter is read and point is mo)-3.036 F -.15(ve)-.15 G 3.035(dt).15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535 (xt occurrence of that character)-.15 F 5.535(.A)-.55 G(ne)-2.5 E -.05 (ga)-.15 G(ti).05 E .835 -.15(ve c)-.25 H(ount).15 E(searches for pre) ! 144 621.6 Q(vious occurrences.)-.25 E F1(character\255sear)108 633.6 Q ! (ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 645.6 S 1.043 (haracter is read and point is mo)-3.543 F -.15(ve)-.15 G 3.544(dt).15 G 3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044 (vious occurrence of that character)-.25 F 6.044(.A)-.55 G(ne)-2.5 E -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G ! (count searches for subsequent occurrences.)144 657.6 Q F1 ! (insert\255comment \(M\255#\))108 669.6 Q F0 -.4(Wi)144 681.6 S .481 (thout a numeric ar).4 F .481(gument, the v)-.18 F .481 (alue of the readline)-.25 F F1(comment\255begin)2.981 E F0 -.25(va) ! 2.981 G .48(riable is inserted at the).25 F(be)144 693.6 Q .097 (ginning of the current line.)-.15 F .098(If a numeric ar)5.097 F .098 (gument is supplied, this command acts as a toggle:)-.18 F(if)5.098 E ! .322(the characters at the be)144 705.6 R .321 (ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1 (comment\255begin)2.821 E F0 2.821(,t)C .321(he v)-2.821 F .321(alue is) ! -.25 F 1.013(inserted, otherwise the characters in)144 717.6 R F1 (comment-begin)3.514 E F0 1.014(are deleted from the be)3.514 F 1.014 ! (ginning of the line.)-.15 F 2.943 ! (In either case, the line is accepted as if a ne)144 729.6 R 2.943 ! (wline had been typed.)-.25 F 2.943(The def)7.943 F 2.943(ault v)-.1 F ! 2.942(alue of)-.25 F(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E ! (9)195.95 E 0 Cg EP %%Page: 10 10 %%BeginPageSetup *************** *** 1082,1144 **** %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10 ! /Times-Bold@0 SF(dump\255v)108 84 Q(ariables)-.1 E F0 .283 ! (Print all of the settable v)144 96 R .283(ariables and their v)-.25 F ! .283(alues to the readline output stream.)-.25 F .283(If a numeric ar) ! 5.283 F(gu-)-.18 E ! (ment is supplied, the output is formatted in such a w)144 108 Q (ay that it can be made part of an)-.1 E/F2 10/Times-Italic@0 SF(inputr) ! 2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255macr)108 120 Q(os)-.18 E F0 ! .756(Print all of the readline k)144 132 R 1.056 -.15(ey s)-.1 H .756 ! (equences bound to macros and the strings the).15 F 3.256(yo)-.15 G ! 3.256(uput. If)-3.256 F 3.255(an)3.255 G(umeric)-3.255 E(ar)144 144 Q .528(gument is supplied, the output is formatted in such a w)-.18 F .528 (ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0 ! (\214le.)144 156 Q F1(emacs\255editing\255mode \(C\255e\))108 168 Q F0 ! (When in)144 180 Q F1(vi)2.5 E F0(command mode, this causes a switch to) 2.5 E F1(emacs)2.5 E F0(editing mode.)2.5 E F1 ! (vi\255editing\255mode \(M\255C\255j\))108 192 Q F0(When in)144 204 Q F1 (emacs)2.5 E F0(editing mode, this causes a switch to)2.5 E F1(vi)2.5 E ! F0(editing mode.)2.5 E/F3 10.95/Times-Bold@0 SF(DEF)72 220.8 Q -.548(AU) -.986 G 2.014 -1.007(LT K).548 H(EY BINDINGS)1.007 E F0 .065(The follo) ! 108 232.8 R .065(wing is a list of the def)-.25 F .065 (ault emacs and vi bindings.)-.1 F .064 ! (Characters with the eighth bit set are written as)5.064 F .615 ! (M\255, and are referred to as)108 244.8 R F2(meta\214ed) ! 3.115 E F0 3.115(characters. The)3.115 F .616 ! (printable ASCII characters not mentioned)3.116 F 1.116 ! (in the list of emacs standard bindings are bound to the)108 256.8 R F1 (self\255insert)3.615 E F0 1.115(function, which just inserts the gi) 3.615 F -.15(ve)-.25 G(n).15 E .945(character into the input line.)108 ! 268.8 R .945(In vi insertion mode, all characters not speci\214cally me\ ! ntioned are bound to)5.945 F F1(self\255insert)108 280.8 Q F0 5.359(.C)C .359(haracters assigned to signal generation by)-5.359 F F2(stty)2.859 E F0 .359(\(1\) or the terminal dri).32 F -.15(ve)-.25 G 1.159 -.4(r, s) ! .15 H .358(uch as C-Z or C-C,).4 F .187(retain that function.)108 292.8 R .187(Upper and lo)5.187 F .188(wer case meta\214ed characters are bou\ ! nd to the same function in the emacs)-.25 F .305(mode meta k)108 304.8 R -.15(ey)-.1 G 2.805(map. The).15 F .305(remaining characters are unboun\ d, which causes readline to ring the bell \(subject)2.805 F ! (to the setting of the)108 316.8 Q F1(bell\255style)2.5 E F0 -.25(va)2.5 ! G(riable\).).25 E F1(Emacs Mode)87 333.6 Q F0(Emacs Standard bindings) ! 151.2 345.6 Q 2.5("C-@" set-mark)151.2 369.6 R 2.5("C-A" be)151.2 381.6 ! R(ginning-of-line)-.15 E 2.5("C-B" backw)151.2 393.6 R(ard-char)-.1 E ! 2.5("C-D" delete-char)151.2 405.6 R 2.5("C-E" end-of-line)151.2 417.6 R ! 2.5("C-F" forw)151.2 429.6 R(ard-char)-.1 E 2.5("C-G" abort)151.2 441.6 ! R 2.5("C-H" backw)151.2 453.6 R(ard-delete-char)-.1 E 2.5 ! ("C-I" complete)151.2 465.6 R 2.5("C-J" accept-line)151.2 477.6 R 2.5 ! ("C-K" kill-line)151.2 489.6 R 2.5("C-L" clear)151.2 501.6 R(-screen)-.2 ! E 2.5("C-M" accept-line)151.2 513.6 R 2.5("C-N" ne)151.2 525.6 R ! (xt-history)-.15 E 2.5("C-P" pre)151.2 537.6 R(vious-history)-.25 E 2.5 ! ("C-Q" quoted-insert)151.2 549.6 R 2.5("C-R" re)151.2 561.6 R -.15(ve) ! -.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 573.6 R ! (ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 585.6 R 2.5 ! ("C-U" unix-line-discard)151.2 597.6 R 2.5("C-V" quoted-insert)151.2 ! 609.6 R 2.5("C-W" unix-w)151.2 621.6 R(ord-rubout)-.1 E 2.5("C-Y" yank) ! 151.2 633.6 R 2.5("C-]" character)151.2 645.6 R(-search)-.2 E 2.5 ! ("C-_" undo)151.2 657.6 R 3.333("")151.2 669.6 S(to "/")-.833 E ! (self-insert)5 E 2.5("0" to)151.2 681.6 R 2.5("9" self-insert)2.5 F 2.5 ! (":" to)151.2 693.6 R 2.5("~" self-insert)2.5 F 2.5("C-?" backw)151.2 ! 705.6 R(ard-delete-char)-.1 E(Emacs Meta bindings)151.2 722.4 Q ! (GNU Readline 4.3)72 768 Q(2002 January 22)126.24 E(10)190.95 E EP %%Page: 11 11 %%BeginPageSetup --- 1109,1179 ---- %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10 ! /Times-Bold@0 SF(comment\255begin)144 84 Q F0(mak)2.904 E .404 ! (es the current line a shell comment.)-.1 F .404(If a numeric ar)5.404 F ! .405(gument causes the com-)-.18 F(ment character to be remo)144 96 Q ! -.15(ve)-.15 G(d, the line will be e).15 E -.15(xe)-.15 G ! (cuted by the shell.).15 E F1(dump\255functions)108 108 Q F0 .627 ! (Print all of the functions and their k)144 120 R .927 -.15(ey b)-.1 H ! .626(indings to the readline output stream.).15 F .626(If a numeric ar) ! 5.626 F(gu-)-.18 E ! (ment is supplied, the output is formatted in such a w)144 132 Q (ay that it can be made part of an)-.1 E/F2 10/Times-Italic@0 SF(inputr) ! 2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 144 Q(ariables)-.1 E F0 ! .283(Print all of the settable v)144 156 R .283(ariables and their v) ! -.25 F .283(alues to the readline output stream.)-.25 F .283 ! (If a numeric ar)5.283 F(gu-)-.18 E ! (ment is supplied, the output is formatted in such a w)144 168 Q ! (ay that it can be made part of an)-.1 E F2(inputr)2.5 E(c)-.37 E F0 ! (\214le.)2.5 E F1(dump\255macr)108 180 Q(os)-.18 E F0 .593 ! (Print all of the readline k)144 192 R .893 -.15(ey s)-.1 H .592 ! (equences bound to macros and the strings the).15 F 3.092(yo)-.15 G ! 3.092(utput. If)-3.092 F 3.092(an)3.092 G(umeric)-3.092 E(ar)144 204 Q .528(gument is supplied, the output is formatted in such a w)-.18 F .528 (ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0 ! (\214le.)144 216 Q F1(emacs\255editing\255mode \(C\255e\))108 228 Q F0 ! (When in)144 240 Q F1(vi)2.5 E F0(command mode, this causes a switch to) 2.5 E F1(emacs)2.5 E F0(editing mode.)2.5 E F1 ! (vi\255editing\255mode \(M\255C\255j\))108 252 Q F0(When in)144 264 Q F1 (emacs)2.5 E F0(editing mode, this causes a switch to)2.5 E F1(vi)2.5 E ! F0(editing mode.)2.5 E/F3 10.95/Times-Bold@0 SF(DEF)72 280.8 Q -.548(AU) -.986 G 2.014 -1.007(LT K).548 H(EY BINDINGS)1.007 E F0 .065(The follo) ! 108 292.8 R .065(wing is a list of the def)-.25 F .065 (ault emacs and vi bindings.)-.1 F .064 ! (Characters with the eighth bit set are written as)5.064 F .527 ! (M\255, and are referred to as)108 304.8 R F2(meta\214ed) ! 3.407 E F0 3.027(characters. The)3.797 F .527 ! (printable ASCII characters not mentioned)3.027 F 1.116 ! (in the list of emacs standard bindings are bound to the)108 316.8 R F1 (self\255insert)3.615 E F0 1.115(function, which just inserts the gi) 3.615 F -.15(ve)-.25 G(n).15 E .945(character into the input line.)108 ! 328.8 R .945(In vi insertion mode, all characters not speci\214cally me\ ! ntioned are bound to)5.945 F F1(self\255insert)108 340.8 Q F0 5.359(.C)C .359(haracters assigned to signal generation by)-5.359 F F2(stty)2.859 E F0 .359(\(1\) or the terminal dri).32 F -.15(ve)-.25 G 1.159 -.4(r, s) ! .15 H .358(uch as C-Z or C-C,).4 F .187(retain that function.)108 352.8 R .187(Upper and lo)5.187 F .188(wer case meta\214ed characters are bou\ ! nd to the same function in the emacs)-.25 F .305(mode meta k)108 364.8 R -.15(ey)-.1 G 2.805(map. The).15 F .305(remaining characters are unboun\ d, which causes readline to ring the bell \(subject)2.805 F ! (to the setting of the)108 376.8 Q F1(bell\255style)2.5 E F0 -.25(va)2.5 ! G(riable\).).25 E F1(Emacs Mode)87 393.6 Q F0(Emacs Standard bindings) ! 151.2 405.6 Q 2.5("C-@" set-mark)151.2 429.6 R 2.5("C-A" be)151.2 441.6 ! R(ginning-of-line)-.15 E 2.5("C-B" backw)151.2 453.6 R(ard-char)-.1 E ! 2.5("C-D" delete-char)151.2 465.6 R 2.5("C-E" end-of-line)151.2 477.6 R ! 2.5("C-F" forw)151.2 489.6 R(ard-char)-.1 E 2.5("C-G" abort)151.2 501.6 ! R 2.5("C-H" backw)151.2 513.6 R(ard-delete-char)-.1 E 2.5 ! ("C-I" complete)151.2 525.6 R 2.5("C-J" accept-line)151.2 537.6 R 2.5 ! ("C-K" kill-line)151.2 549.6 R 2.5("C-L" clear)151.2 561.6 R(-screen)-.2 ! E 2.5("C-M" accept-line)151.2 573.6 R 2.5("C-N" ne)151.2 585.6 R ! (xt-history)-.15 E 2.5("C-P" pre)151.2 597.6 R(vious-history)-.25 E 2.5 ! ("C-Q" quoted-insert)151.2 609.6 R 2.5("C-R" re)151.2 621.6 R -.15(ve) ! -.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 633.6 R ! (ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 645.6 R 2.5 ! ("C-U" unix-line-discard)151.2 657.6 R 2.5("C-V" quoted-insert)151.2 ! 669.6 R 2.5("C-W" unix-w)151.2 681.6 R(ord-rubout)-.1 E 2.5("C-Y" yank) ! 151.2 693.6 R 2.5("C-]" character)151.2 705.6 R(-search)-.2 E 2.5 ! ("C-_" undo)151.2 717.6 R 3.333("")151.2 729.6 S(to "/")-.833 E ! (self-insert)5 E(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E(10) ! 190.95 E 0 Cg EP %%Page: 11 11 %%BeginPageSetup *************** *** 1146,1224 **** %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5 ! ("M-C-G" abort)151.2 84 R 2.5("M-C-H" backw)151.2 96 R(ard-kill-w)-.1 E ! (ord)-.1 E 2.5("M-C-I" tab-insert)151.2 108 R 2.5 ! ("M-C-J" vi-editing-mode)151.2 120 R 2.5("M-C-M" vi-editing-mode)151.2 ! 132 R 2.5("M-C-R" re)151.2 144 R -.15(ve)-.25 G(rt-line).15 E 2.5 ! ("M-C-Y" yank-nth-ar)151.2 156 R(g)-.18 E 2.5("M-C-[" complete)151.2 168 ! R 2.5("M-C-]" character)151.2 180 R(-search-backw)-.2 E(ard)-.1 E 2.5 ! ("M-space" set-mark)151.2 192 R 2.5("M-#" insert-comment)151.2 204 R 2.5 ! ("M-&" tilde-e)151.2 216 R(xpand)-.15 E 2.5("M-*" insert-completions) ! 151.2 228 R 2.5("M--" digit-ar)151.2 240 R(gument)-.18 E 2.5 ! ("M-." yank-last-ar)151.2 252 R(g)-.18 E 2.5("M-0" digit-ar)151.2 264 R ! (gument)-.18 E 2.5("M-1" digit-ar)151.2 276 R(gument)-.18 E 2.5 ! ("M-2" digit-ar)151.2 288 R(gument)-.18 E 2.5("M-3" digit-ar)151.2 300 R ! (gument)-.18 E 2.5("M-4" digit-ar)151.2 312 R(gument)-.18 E 2.5 ! ("M-5" digit-ar)151.2 324 R(gument)-.18 E 2.5("M-6" digit-ar)151.2 336 R ! (gument)-.18 E 2.5("M-7" digit-ar)151.2 348 R(gument)-.18 E 2.5 ! ("M-8" digit-ar)151.2 360 R(gument)-.18 E 2.5("M-9" digit-ar)151.2 372 R ! (gument)-.18 E 2.5("M-<" be)151.2 384 R(ginning-of-history)-.15 E 2.5 ! ("M-=" possible-completions)151.2 396 R 2.5("M->" end-of-history)151.2 ! 408 R 2.5("M-?" possible-completions)151.2 420 R 2.5("M-B" backw)151.2 ! 432 R(ard-w)-.1 E(ord)-.1 E 2.5("M-C" capitalize-w)151.2 444 R(ord)-.1 E ! 2.5("M-D" kill-w)151.2 456 R(ord)-.1 E 2.5("M-F" forw)151.2 468 R(ard-w) ! -.1 E(ord)-.1 E 2.5("M-L" do)151.2 480 R(wncase-w)-.25 E(ord)-.1 E 2.5 ! ("M-N" non-incremental-forw)151.2 492 R(ard-search-history)-.1 E 2.5 ! ("M-P" non-incremental-re)151.2 504 R -.15(ve)-.25 G(rse-search-history) ! .15 E 2.5("M-R" re)151.2 516 R -.15(ve)-.25 G(rt-line).15 E 2.5 ! ("M-T" transpose-w)151.2 528 R(ords)-.1 E 2.5("M-U" upcase-w)151.2 540 R ! (ord)-.1 E 2.5("M-Y" yank-pop)151.2 552 R 2.5 ! ("M-\\" delete-horizontal-space)151.2 564 R 2.5("M-~" tilde-e)151.2 576 ! R(xpand)-.15 E 2.5("M-C-?" backw)151.2 588 R(ard-kill-w)-.1 E(ord)-.1 E ! 2.5("M-_" yank-last-ar)151.2 600 R(g)-.18 E(Emacs Control-X bindings) ! 151.2 616.8 Q 2.5("C-XC-G" abort)151.2 640.8 R 2.5 ! ("C-XC-R" re-read-init-\214le)151.2 652.8 R 2.5("C-XC-U" undo)151.2 ! 664.8 R 2.5("C-XC-X" e)151.2 676.8 R(xchange-point-and-mark)-.15 E 2.5 ! ("C-X\(" start-kbd-macro)151.2 688.8 R 2.5("C-X\)" end-kbd-macro)151.2 ! 700.8 R 2.5("C-XE" call-last-kbd-macro)151.2 712.8 R 2.5("C-XC-?" backw) ! 151.2 724.8 R(ard-kill-line)-.1 E(GNU Readline 4.3)72 768 Q ! (2002 January 22)126.24 E(11)190.95 E EP %%Page: 12 12 %%BeginPageSetup BP %%EndPageSetup ! /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10 ! /Times-Bold@0 SF(VI Mode bindings)87 84 Q F0(VI Insert Mode functions) ! 151.2 96 Q 2.5("C-D" vi-eof-maybe)151.2 120 R 2.5("C-H" backw)151.2 132 ! R(ard-delete-char)-.1 E 2.5("C-I" complete)151.2 144 R 2.5 ! ("C-J" accept-line)151.2 156 R 2.5("C-M" accept-line)151.2 168 R 2.5 ! ("C-R" re)151.2 180 R -.15(ve)-.25 G(rse-search-history).15 E 2.5 ! ("C-S" forw)151.2 192 R(ard-search-history)-.1 E 2.5 ! ("C-T" transpose-chars)151.2 204 R 2.5("C-U" unix-line-discard)151.2 216 ! R 2.5("C-V" quoted-insert)151.2 228 R 2.5("C-W" unix-w)151.2 240 R ! (ord-rubout)-.1 E 2.5("C-Y" yank)151.2 252 R 2.5("C-[" vi-mo)151.2 264 R ! -.15(ve)-.15 G(ment-mode).15 E 2.5("C-_" undo)151.2 276 R 3.333("")151.2 ! 288 S(to "~")-.833 E(self-insert)5 E 2.5("C-?" backw)151.2 300 R ! (ard-delete-char)-.1 E(VI Command Mode functions)151.2 316.8 Q 2.5 ! ("C-D" vi-eof-maybe)151.2 340.8 R 2.5("C-E" emacs-editing-mode)151.2 ! 352.8 R 2.5("C-G" abort)151.2 364.8 R 2.5("C-H" backw)151.2 376.8 R ! (ard-char)-.1 E 2.5("C-J" accept-line)151.2 388.8 R 2.5("C-K" kill-line) ! 151.2 400.8 R 2.5("C-L" clear)151.2 412.8 R(-screen)-.2 E 2.5 ! ("C-M" accept-line)151.2 424.8 R 2.5("C-N" ne)151.2 436.8 R(xt-history) ! -.15 E 2.5("C-P" pre)151.2 448.8 R(vious-history)-.25 E 2.5 ! ("C-Q" quoted-insert)151.2 460.8 R 2.5("C-R" re)151.2 472.8 R -.15(ve) ! -.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 484.8 R ! (ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 496.8 R 2.5 ! ("C-U" unix-line-discard)151.2 508.8 R 2.5("C-V" quoted-insert)151.2 ! 520.8 R 2.5("C-W" unix-w)151.2 532.8 R(ord-rubout)-.1 E 2.5("C-Y" yank) ! 151.2 544.8 R 2.5("C-_" vi-undo)151.2 556.8 R -4.166 3.333("" f)151.2 ! 568.8 T(orw)-3.333 E(ard-char)-.1 E 2.5("#" insert-comment)151.2 580.8 R ! 2.5("$" end-of-line)151.2 592.8 R 2.5("%" vi-match)151.2 604.8 R 2.5 ! ("&" vi-tilde-e)151.2 616.8 R(xpand)-.15 E 2.5("*" vi-complete)151.2 ! 628.8 R 2.5("+" ne)151.2 640.8 R(xt-history)-.15 E 2.5("," vi-char)151.2 ! 652.8 R(-search)-.2 E 2.5("-" pre)151.2 664.8 R(vious-history)-.25 E 2.5 ! ("." vi-redo)151.2 676.8 R 2.5("/" vi-search)151.2 688.8 R 2.5("0" be) ! 151.2 700.8 R(ginning-of-line)-.15 E("1" to "9")151.2 712.8 Q(vi-ar)5 E ! (g-digit)-.18 E 2.5(";" vi-char)151.2 724.8 R(-search)-.2 E ! (GNU Readline 4.3)72 768 Q(2002 January 22)126.24 E(12)190.95 E EP %%Page: 13 13 %%BeginPageSetup --- 1181,1260 ---- %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5 ! ("0" to)151.2 84 R 2.5("9" self-insert)2.5 F 2.5(":" to)151.2 96 R 2.5 ! ("~" self-insert)2.5 F 2.5("C-?" backw)151.2 108 R(ard-delete-char)-.1 E ! (Emacs Meta bindings)151.2 124.8 Q 2.5("M-C-G" abort)151.2 148.8 R 2.5 ! ("M-C-H" backw)151.2 160.8 R(ard-kill-w)-.1 E(ord)-.1 E 2.5 ! ("M-C-I" tab-insert)151.2 172.8 R 2.5("M-C-J" vi-editing-mode)151.2 ! 184.8 R 2.5("M-C-M" vi-editing-mode)151.2 196.8 R 2.5("M-C-R" re)151.2 ! 208.8 R -.15(ve)-.25 G(rt-line).15 E 2.5("M-C-Y" yank-nth-ar)151.2 220.8 ! R(g)-.18 E 2.5("M-C-[" complete)151.2 232.8 R 2.5("M-C-]" character) ! 151.2 244.8 R(-search-backw)-.2 E(ard)-.1 E 2.5("M-space" set-mark)151.2 ! 256.8 R 2.5("M-#" insert-comment)151.2 268.8 R 2.5("M-&" tilde-e)151.2 ! 280.8 R(xpand)-.15 E 2.5("M-*" insert-completions)151.2 292.8 R 2.5 ! ("M--" digit-ar)151.2 304.8 R(gument)-.18 E 2.5("M-." yank-last-ar)151.2 ! 316.8 R(g)-.18 E 2.5("M-0" digit-ar)151.2 328.8 R(gument)-.18 E 2.5 ! ("M-1" digit-ar)151.2 340.8 R(gument)-.18 E 2.5("M-2" digit-ar)151.2 ! 352.8 R(gument)-.18 E 2.5("M-3" digit-ar)151.2 364.8 R(gument)-.18 E 2.5 ! ("M-4" digit-ar)151.2 376.8 R(gument)-.18 E 2.5("M-5" digit-ar)151.2 ! 388.8 R(gument)-.18 E 2.5("M-6" digit-ar)151.2 400.8 R(gument)-.18 E 2.5 ! ("M-7" digit-ar)151.2 412.8 R(gument)-.18 E 2.5("M-8" digit-ar)151.2 ! 424.8 R(gument)-.18 E 2.5("M-9" digit-ar)151.2 436.8 R(gument)-.18 E 2.5 ! ("M-<" be)151.2 448.8 R(ginning-of-history)-.15 E 2.5 ! ("M-=" possible-completions)151.2 460.8 R 2.5("M->" end-of-history)151.2 ! 472.8 R 2.5("M-?" possible-completions)151.2 484.8 R 2.5("M-B" backw) ! 151.2 496.8 R(ard-w)-.1 E(ord)-.1 E 2.5("M-C" capitalize-w)151.2 508.8 R ! (ord)-.1 E 2.5("M-D" kill-w)151.2 520.8 R(ord)-.1 E 2.5("M-F" forw)151.2 ! 532.8 R(ard-w)-.1 E(ord)-.1 E 2.5("M-L" do)151.2 544.8 R(wncase-w)-.25 E ! (ord)-.1 E 2.5("M-N" non-incremental-forw)151.2 556.8 R ! (ard-search-history)-.1 E 2.5("M-P" non-incremental-re)151.2 568.8 R ! -.15(ve)-.25 G(rse-search-history).15 E 2.5("M-R" re)151.2 580.8 R -.15 ! (ve)-.25 G(rt-line).15 E 2.5("M-T" transpose-w)151.2 592.8 R(ords)-.1 E ! 2.5("M-U" upcase-w)151.2 604.8 R(ord)-.1 E 2.5("M-Y" yank-pop)151.2 ! 616.8 R 2.5("M-\\" delete-horizontal-space)151.2 628.8 R 2.5 ! ("M-~" tilde-e)151.2 640.8 R(xpand)-.15 E 2.5("M-C-?" backw)151.2 652.8 ! R(ard-kill-w)-.1 E(ord)-.1 E 2.5("M-_" yank-last-ar)151.2 664.8 R(g)-.18 ! E(Emacs Control-X bindings)151.2 681.6 Q 2.5("C-XC-G" abort)151.2 705.6 ! R 2.5("C-XC-R" re-read-init-\214le)151.2 717.6 R 2.5("C-XC-U" undo)151.2 ! 729.6 R(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E(11)190.95 E 0 ! Cg EP %%Page: 12 12 %%BeginPageSetup BP %%EndPageSetup ! /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5 ! ("C-XC-X" e)151.2 84 R(xchange-point-and-mark)-.15 E 2.5 ! ("C-X\(" start-kbd-macro)151.2 96 R 2.5("C-X\)" end-kbd-macro)151.2 108 ! R 2.5("C-XE" call-last-kbd-macro)151.2 120 R 2.5("C-XC-?" backw)151.2 ! 132 R(ard-kill-line)-.1 E/F1 10/Times-Bold@0 SF(VI Mode bindings)87 ! 160.8 Q F0(VI Insert Mode functions)151.2 172.8 Q 2.5 ! ("C-D" vi-eof-maybe)151.2 196.8 R 2.5("C-H" backw)151.2 208.8 R ! (ard-delete-char)-.1 E 2.5("C-I" complete)151.2 220.8 R 2.5 ! ("C-J" accept-line)151.2 232.8 R 2.5("C-M" accept-line)151.2 244.8 R 2.5 ! ("C-R" re)151.2 256.8 R -.15(ve)-.25 G(rse-search-history).15 E 2.5 ! ("C-S" forw)151.2 268.8 R(ard-search-history)-.1 E 2.5 ! ("C-T" transpose-chars)151.2 280.8 R 2.5("C-U" unix-line-discard)151.2 ! 292.8 R 2.5("C-V" quoted-insert)151.2 304.8 R 2.5("C-W" unix-w)151.2 ! 316.8 R(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 328.8 R 2.5("C-[" vi-mo) ! 151.2 340.8 R -.15(ve)-.15 G(ment-mode).15 E 2.5("C-_" undo)151.2 352.8 ! R 3.333("")151.2 364.8 S(to "~")-.833 E(self-insert)5 E 2.5("C-?" backw) ! 151.2 376.8 R(ard-delete-char)-.1 E(VI Command Mode functions)151.2 ! 393.6 Q 2.5("C-D" vi-eof-maybe)151.2 417.6 R 2.5 ! ("C-E" emacs-editing-mode)151.2 429.6 R 2.5("C-G" abort)151.2 441.6 R ! 2.5("C-H" backw)151.2 453.6 R(ard-char)-.1 E 2.5("C-J" accept-line)151.2 ! 465.6 R 2.5("C-K" kill-line)151.2 477.6 R 2.5("C-L" clear)151.2 489.6 R ! (-screen)-.2 E 2.5("C-M" accept-line)151.2 501.6 R 2.5("C-N" ne)151.2 ! 513.6 R(xt-history)-.15 E 2.5("C-P" pre)151.2 525.6 R(vious-history)-.25 ! E 2.5("C-Q" quoted-insert)151.2 537.6 R 2.5("C-R" re)151.2 549.6 R -.15 ! (ve)-.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 561.6 R ! (ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 573.6 R 2.5 ! ("C-U" unix-line-discard)151.2 585.6 R 2.5("C-V" quoted-insert)151.2 ! 597.6 R 2.5("C-W" unix-w)151.2 609.6 R(ord-rubout)-.1 E 2.5("C-Y" yank) ! 151.2 621.6 R 2.5("C-_" vi-undo)151.2 633.6 R -4.166 3.333("" f)151.2 ! 645.6 T(orw)-3.333 E(ard-char)-.1 E 2.5("#" insert-comment)151.2 657.6 R ! 2.5("$" end-of-line)151.2 669.6 R 2.5("%" vi-match)151.2 681.6 R 2.5 ! ("&" vi-tilde-e)151.2 693.6 R(xpand)-.15 E 2.5("*" vi-complete)151.2 ! 705.6 R 2.5("+" ne)151.2 717.6 R(xt-history)-.15 E 2.5("," vi-char)151.2 ! 729.6 R(-search)-.2 E(GNU Readline 5.0)72 768 Q(2004 January 28)126.24 E ! (12)190.95 E 0 Cg EP %%Page: 13 13 %%BeginPageSetup *************** *** 1226,1262 **** %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5 ! ("=" vi-complete)151.2 84 R 2.5("?" vi-search)151.2 96 R 2.5 ! ("A" vi-append-eol)151.2 108 R 2.5("B" vi-pre)151.2 120 R(v-w)-.25 E ! (ord)-.1 E 2.5("C" vi-change-to)151.2 132 R 2.5("D" vi-delete-to)151.2 ! 144 R 2.5("E" vi-end-w)151.2 156 R(ord)-.1 E 2.5("F" vi-char)151.2 168 R ! (-search)-.2 E 2.5("G" vi-fetch-history)151.2 180 R 2.5 ! ("I" vi-insert-be)151.2 192 R(g)-.15 E 2.5("N" vi-search-ag)151.2 204 R ! (ain)-.05 E 2.5("P" vi-put)151.2 216 R 2.5("R" vi-replace)151.2 228 R ! 2.5("S" vi-subst)151.2 240 R 2.5("T" vi-char)151.2 252 R(-search)-.2 E ! 2.5("U" re)151.2 264 R -.15(ve)-.25 G(rt-line).15 E 2.5("W" vi-ne)151.2 ! 276 R(xt-w)-.15 E(ord)-.1 E 2.5("X" backw)151.2 288 R(ard-delete-char) ! -.1 E 2.5("Y" vi-yank-to)151.2 300 R 2.5("\\" vi-complete)151.2 312 R ! 2.5("^" vi-\214rst-print)151.2 324 R 2.5("_" vi-yank-ar)151.2 336 R(g) ! -.18 E 2.5("`" vi-goto-mark)151.2 348 R 2.5("a" vi-append-mode)151.2 360 ! R 2.5("b" vi-pre)151.2 372 R(v-w)-.25 E(ord)-.1 E 2.5("c" vi-change-to) ! 151.2 384 R 2.5("d" vi-delete-to)151.2 396 R 2.5("e" vi-end-w)151.2 408 ! R(ord)-.1 E 2.5("f" vi-char)151.2 420 R(-search)-.2 E 2.5("h" backw) ! 151.2 432 R(ard-char)-.1 E 2.5("i" vi-insertion-mode)151.2 444 R 2.5 ! ("j" ne)151.2 456 R(xt-history)-.15 E 2.5("k" pre)151.2 468 R(v-history) ! -.25 E 2.5("l" forw)151.2 480 R(ard-char)-.1 E 2.5("m" vi-set-mark)151.2 ! 492 R 2.5("n" vi-search-ag)151.2 504 R(ain)-.05 E 2.5("p" vi-put)151.2 ! 516 R 2.5("r" vi-change-char)151.2 528 R 2.5("s" vi-subst)151.2 540 R ! 2.5("t" vi-char)151.2 552 R(-search)-.2 E 2.5("u" vi-undo)151.2 564 R ! 2.5("w" vi-ne)151.2 576 R(xt-w)-.15 E(ord)-.1 E 2.5("x" vi-delete)151.2 ! 588 R 2.5("y" vi-yank-to)151.2 600 R 2.5("|" vi-column)151.2 612 R 2.5 ! ("~" vi-change-case)151.2 624 R/F1 10.95/Times-Bold@0 SF(SEE ALSO)72 ! 640.8 Q/F2 10/Times-Italic@0 SF(The Gnu Readline Libr)108 652.8 Q(ary) ! -.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2 ! (The Gnu History Libr)108 664.8 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E ! (ox and Chet Rame)-.15 E(y)-.15 E F2(bash)108 676.8 Q F0(\(1\))A F1 ! (FILES)72 693.6 Q F2(~/.inputr)109.666 705.6 Q(c)-.37 E F0(Indi)144 ! 717.6 Q(vidual)-.25 E/F3 10/Times-Bold@0 SF -.18(re)2.5 G(adline).18 E ! F0(initialization \214le)2.5 E(GNU Readline 4.3)72 768 Q ! (2002 January 22)126.24 E(13)190.95 E EP %%Page: 14 14 %%BeginPageSetup --- 1262,1295 ---- %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5 ! ("-" pre)151.2 84 R(vious-history)-.25 E 2.5("." vi-redo)151.2 96 R 2.5 ! ("/" vi-search)151.2 108 R 2.5("0" be)151.2 120 R(ginning-of-line)-.15 E ! ("1" to "9")151.2 132 Q(vi-ar)5 E(g-digit)-.18 E 2.5(";" vi-char)151.2 ! 144 R(-search)-.2 E 2.5("=" vi-complete)151.2 156 R 2.5("?" vi-search) ! 151.2 168 R 2.5("A" vi-append-eol)151.2 180 R 2.5("B" vi-pre)151.2 192 R ! (v-w)-.25 E(ord)-.1 E 2.5("C" vi-change-to)151.2 204 R 2.5 ! ("D" vi-delete-to)151.2 216 R 2.5("E" vi-end-w)151.2 228 R(ord)-.1 E 2.5 ! ("F" vi-char)151.2 240 R(-search)-.2 E 2.5("G" vi-fetch-history)151.2 ! 252 R 2.5("I" vi-insert-be)151.2 264 R(g)-.15 E 2.5("N" vi-search-ag) ! 151.2 276 R(ain)-.05 E 2.5("P" vi-put)151.2 288 R 2.5("R" vi-replace) ! 151.2 300 R 2.5("S" vi-subst)151.2 312 R 2.5("T" vi-char)151.2 324 R ! (-search)-.2 E 2.5("U" re)151.2 336 R -.15(ve)-.25 G(rt-line).15 E 2.5 ! ("W" vi-ne)151.2 348 R(xt-w)-.15 E(ord)-.1 E 2.5("X" backw)151.2 360 R ! (ard-delete-char)-.1 E 2.5("Y" vi-yank-to)151.2 372 R 2.5 ! ("\\" vi-complete)151.2 384 R 2.5("^" vi-\214rst-print)151.2 396 R 2.5 ! ("_" vi-yank-ar)151.2 408 R(g)-.18 E 2.5("`" vi-goto-mark)151.2 420 R ! 2.5("a" vi-append-mode)151.2 432 R 2.5("b" vi-pre)151.2 444 R(v-w)-.25 E ! (ord)-.1 E 2.5("c" vi-change-to)151.2 456 R 2.5("d" vi-delete-to)151.2 ! 468 R 2.5("e" vi-end-w)151.2 480 R(ord)-.1 E 2.5("f" vi-char)151.2 492 R ! (-search)-.2 E 2.5("h" backw)151.2 504 R(ard-char)-.1 E 2.5 ! ("i" vi-insertion-mode)151.2 516 R 2.5("j" ne)151.2 528 R(xt-history) ! -.15 E 2.5("k" pre)151.2 540 R(v-history)-.25 E 2.5("l" forw)151.2 552 R ! (ard-char)-.1 E 2.5("m" vi-set-mark)151.2 564 R 2.5("n" vi-search-ag) ! 151.2 576 R(ain)-.05 E 2.5("p" vi-put)151.2 588 R 2.5 ! ("r" vi-change-char)151.2 600 R 2.5("s" vi-subst)151.2 612 R 2.5 ! ("t" vi-char)151.2 624 R(-search)-.2 E 2.5("u" vi-undo)151.2 636 R 2.5 ! ("w" vi-ne)151.2 648 R(xt-w)-.15 E(ord)-.1 E 2.5("x" vi-delete)151.2 660 ! R 2.5("y" vi-yank-to)151.2 672 R 2.5("|" vi-column)151.2 684 R 2.5 ! ("~" vi-change-case)151.2 696 R(GNU Readline 5.0)72 768 Q ! (2004 January 28)126.24 E(13)190.95 E 0 Cg EP %%Page: 14 14 %%BeginPageSetup *************** *** 1264,1293 **** %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 ! 10.95/Times-Bold@0 SF -.548(AU)72 84 S(THORS).548 E F0(Brian F)108 96 Q ! (ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108 108 ! Q(g)-.18 E(Chet Rame)108 124.8 Q 1.3 -.65(y, C)-.15 H(ase W).65 E ! (estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E ! (chet@ins.CWR)108 136.8 Q(U.Edu)-.4 E F1 -.11(BU)72 153.6 S 2.738(GR).11 ! G(EPOR)-2.738 E(TS)-.438 E F0 .69(If you \214nd a b)108 165.6 R .69 ! (ug in)-.2 F/F2 10/Times-Bold@0 SF -.18(re)3.19 G(adline,).18 E F0 .69 ! (you should report it.)3.19 F .691(But \214rst, you should mak)5.69 F ! 3.191(es)-.1 G .691(ure that it really is a b)-3.191 F(ug,)-.2 E ! (and that it appears in the latest v)108 177.6 Q(ersion of the)-.15 E F2 -.18(re)2.5 G(adline).18 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.) ! .15 E .705(Once you ha)108 194.4 R 1.005 -.15(ve d)-.2 H .705 (etermined that a b).15 F .704(ug actually e)-.2 F .704(xists, mail a b) ! -.15 F .704(ug report to)-.2 F/F3 10/Times-Italic@0 SF -.2(bu)3.204 G ! (g\255r).2 E(eadline)-.37 E F0(@)A F3(gnu.or)A(g)-.37 E F0 5.704(.I)C ! 3.204(fy)-5.704 G(ou)-3.204 E(ha)108 206.4 Q 1.809 -.15(ve a \214)-.2 H ! 1.509(x, you are welcome to mail that as well!).15 F 1.51 (Suggestions and `philosophical' b)6.51 F 1.51(ug reports may be)-.2 F ! (mailed to)108 218.4 Q F3 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F3 ! (gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F2 ! (gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 235.2 Q ! (ug reports concerning this manual page should be directed to)-.2 E F3 -.15(ch)2.5 G(et@ins.CWR).15 E -.25(U.)-.4 G(Edu).25 E F0(.).25 E F1 ! -.11(BU)72 252 S(GS).11 E F0(It')108 264 Q 2.5(st)-.55 G ! (oo big and too slo)-2.5 E -.65(w.)-.25 G(GNU Readline 4.3)72 768 Q ! (2002 January 22)126.24 E(14)190.95 E EP %%Trailer end --- 1297,1333 ---- %%EndPageSetup /F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 ! 10.95/Times-Bold@0 SF(SEE ALSO)72 84 Q/F2 10/Times-Italic@0 SF ! (The Gnu Readline Libr)108 96 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E ! (ox and Chet Rame)-.15 E(y)-.15 E F2(The Gnu History Libr)108 108 Q(ary) ! -.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2 ! (bash)108 120 Q F0(\(1\))A F1(FILES)72 136.8 Q F2(~/.inputr)109.666 ! 148.8 Q(c)-.37 E F0(Indi)144 160.8 Q(vidual)-.25 E/F3 10/Times-Bold@0 SF ! -.18(re)2.5 G(adline).18 E F0(initialization \214le)2.5 E F1 -.548(AU)72 ! 177.6 S(THORS).548 E F0(Brian F)108 189.6 Q(ox, Free Softw)-.15 E(are F) ! -.1 E(oundation)-.15 E(bfox@gnu.or)108 201.6 Q(g)-.18 E(Chet Rame)108 ! 218.4 Q 1.3 -.65(y, C)-.15 H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 ! G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E(chet@ins.CWR)108 230.4 Q(U.Edu) ! -.4 E F1 -.11(BU)72 247.2 S 2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 ! .69(If you \214nd a b)108 259.2 R .69(ug in)-.2 F F3 -.18(re)3.19 G ! (adline,).18 E F0 .69(you should report it.)3.19 F .691 ! (But \214rst, you should mak)5.69 F 3.191(es)-.1 G .691 ! (ure that it really is a b)-3.191 F(ug,)-.2 E ! (and that it appears in the latest v)108 271.2 Q(ersion of the)-.15 E F3 -.18(re)2.5 G(adline).18 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.) ! .15 E .705(Once you ha)108 288 R 1.005 -.15(ve d)-.2 H .705 (etermined that a b).15 F .704(ug actually e)-.2 F .704(xists, mail a b) ! -.15 F .704(ug report to)-.2 F F2 -.2(bu)3.204 G(g\255r).2 E(eadline) ! -.37 E F0(@)A F2(gnu.or)A(g)-.37 E F0 5.704(.I)C 3.204(fy)-5.704 G(ou) ! -3.204 E(ha)108 300 Q 1.809 -.15(ve a \214)-.2 H 1.509 ! (x, you are welcome to mail that as well!).15 F 1.51 (Suggestions and `philosophical' b)6.51 F 1.51(ug reports may be)-.2 F ! (mailed to)108 312 Q F2 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F2 ! (gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F3 ! (gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 328.8 Q ! (ug reports concerning this manual page should be directed to)-.2 E F2 -.15(ch)2.5 G(et@ins.CWR).15 E -.25(U.)-.4 G(Edu).25 E F0(.).25 E F1 ! -.11(BU)72 345.6 S(GS).11 E F0(It')108 357.6 Q 2.5(st)-.55 G ! (oo big and too slo)-2.5 E -.65(w.)-.25 G(GNU Readline 5.0)72 768 Q ! (2004 January 28)126.24 E(14)190.95 E 0 Cg EP %%Trailer end diff -aNrc2 readline-4.3-patched/doc/rlman.texi readline-5.0/doc/rlman.texi *** readline-4.3-patched/doc/rlman.texi Wed Dec 31 19:00:00 1969 --- readline-5.0/doc/rlman.texi Tue Jul 27 09:29:11 2004 *************** *** 0 **** --- 1,101 ---- + \input texinfo @c -*-texinfo-*- + @comment %**start of header (This is for running Texinfo on a region.) + @setfilename readline.info + @settitle GNU Readline Library + @comment %**end of header (This is for running Texinfo on a region.) + @synindex vr fn + @setchapternewpage odd + + @include version.texi + + @copying + This manual describes the GNU Readline Library + (version @value{VERSION}, @value{UPDATED}), a library which aids in the + consistency of user interface across discrete programs which provide + a command line interface. + + Copyright @copyright{} 1988-2004 Free Software Foundation, Inc. + + Permission is granted to make and distribute verbatim copies of + this manual provided the copyright notice and this permission notice + are preserved on all copies. + + @quotation + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.1 or + any later version published by the Free Software Foundation; with no + Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' + and with the Back-Cover Texts as in (a) below. A copy of the license is + included in the section entitled ``GNU Free Documentation License.'' + + (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify + this GNU Manual, like GNU software. Copies published by the Free + Software Foundation raise funds for GNU development.'' + @end quotation + @end copying + + @dircategory Libraries + @direntry + * Readline: (readline). The GNU readline library API. + @end direntry + + @titlepage + @title GNU Readline Library + @subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}. + @subtitle @value{UPDATED-MONTH} + @author Chet Ramey, Case Western Reserve University + @author Brian Fox, Free Software Foundation + + @page + @vskip 0pt plus 1filll + @insertcopying + + @sp 1 + Published by the Free Software Foundation @* + 59 Temple Place, Suite 330, @* + Boston, MA 02111-1307 @* + USA @* + + @end titlepage + + @contents + + @ifnottex + @node Top + @top GNU Readline Library + + This document describes the GNU Readline Library, a utility which aids + in the consistency of user interface across discrete programs which + provide a command line interface. + + @menu + * Command Line Editing:: GNU Readline User's Manual. + * Programming with GNU Readline:: GNU Readline Programmer's Manual. + * Copying This Manual:: Copying this manual. + * Concept Index:: Index of concepts described in this manual. + * Function and Variable Index:: Index of externally visible functions + and variables. + @end menu + @end ifnottex + + @include rluser.texi + @include rltech.texi + + @node Copying This Manual + @appendix Copying This Manual + + @menu + * GNU Free Documentation License:: License for copying this manual. + @end menu + + @include fdl.texi + + @node Concept Index + @unnumbered Concept Index + @printindex cp + + @node Function and Variable Index + @unnumbered Function and Variable Index + @printindex fn + + @bye diff -aNrc2 readline-4.3-patched/doc/rlman.texinfo readline-5.0/doc/rlman.texinfo *** readline-4.3-patched/doc/rlman.texinfo Tue Apr 16 17:10:04 2002 --- readline-5.0/doc/rlman.texinfo Wed Dec 31 19:00:00 1969 *************** *** 1,108 **** - \input texinfo @c -*-texinfo-*- - @comment %**start of header (This is for running Texinfo on a region.) - @setfilename readline.info - @settitle GNU Readline Library - @comment %**end of header (This is for running Texinfo on a region.) - @synindex vr fn - @setchapternewpage odd - - @include manvers.texinfo - - @ifinfo - @dircategory Libraries - @direntry - * Readline: (readline). The GNU readline library API - @end direntry - - This document describes the GNU Readline Library, a utility which aids - in the consistency of user interface across discrete programs that need - to provide a command line interface. - - Copyright (C) 1988-2002 Free Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of - this manual provided the copyright notice and this permission notice - pare preserved on all copies. - - @ignore - Permission is granted to process this file through TeX and print the - results, provided the printed document carries copying permission - notice identical to this one except for the removal of this paragraph - (this paragraph not being relevant to the printed manual). - @end ignore - - Permission is granted to copy and distribute modified versions of this - manual under the conditions for verbatim copying, provided that the entire - resulting derived work is distributed under the terms of a permission - notice identical to this one. - - Permission is granted to copy and distribute translations of this manual - into another language, under the above conditions for modified versions, - except that this permission notice may be stated in a translation approved - by the Free Software Foundation. - @end ifinfo - - @titlepage - @title GNU Readline Library - @subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}. - @subtitle @value{UPDATE-MONTH} - @author Brian Fox, Free Software Foundation - @author Chet Ramey, Case Western Reserve University - - @page - This document describes the GNU Readline Library, a utility which aids - in the consistency of user interface across discrete programs that need - to provide a command line interface. - - Published by the Free Software Foundation @* - 59 Temple Place, Suite 330, @* - Boston, MA 02111 USA - - Permission is granted to make and distribute verbatim copies of - this manual provided the copyright notice and this permission notice - are preserved on all copies. - - Permission is granted to copy and distribute modified versions of this - manual under the conditions for verbatim copying, provided that the entire - resulting derived work is distributed under the terms of a permission - notice identical to this one. - - Permission is granted to copy and distribute translations of this manual - into another language, under the above conditions for modified versions, - except that this permission notice may be stated in a translation approved - by the Free Software Foundation. - - @vskip 0pt plus 1filll - Copyright @copyright{} 1988-2002 Free Software Foundation, Inc. - @end titlepage - - @ifinfo - @node Top - @top GNU Readline Library - - This document describes the GNU Readline Library, a utility which aids - in the consistency of user interface across discrete programs that need - to provide a command line interface. - - @menu - * Command Line Editing:: GNU Readline User's Manual. - * Programming with GNU Readline:: GNU Readline Programmer's Manual. - * Concept Index:: Index of concepts described in this manual. - * Function and Variable Index:: Index of externally visible functions - and variables. - @end menu - @end ifinfo - - @include rluser.texinfo - @include rltech.texinfo - - @node Concept Index - @unnumbered Concept Index - @printindex cp - - @node Function and Variable Index - @unnumbered Function and Variable Index - @printindex fn - - @contents - @bye --- 0 ---- diff -aNrc2 readline-4.3-patched/doc/rltech.texi readline-5.0/doc/rltech.texi *** readline-4.3-patched/doc/rltech.texi Wed Dec 31 19:00:00 1969 --- readline-5.0/doc/rltech.texi Wed Jan 28 15:46:37 2004 *************** *** 0 **** --- 1,2259 ---- + @comment %**start of header (This is for running Texinfo on a region.) + @setfilename rltech.info + @comment %**end of header (This is for running Texinfo on a region.) + @setchapternewpage odd + + @ifinfo + This document describes the GNU Readline Library, a utility for aiding + in the consitency of user interface across discrete programs that need + to provide a command line interface. + + Copyright (C) 1988-2004 Free Software Foundation, Inc. + + Permission is granted to make and distribute verbatim copies of + this manual provided the copyright notice and this permission notice + pare preserved on all copies. + + @ignore + Permission is granted to process this file through TeX and print the + results, provided the printed document carries copying permission + notice identical to this one except for the removal of this paragraph + (this paragraph not being relevant to the printed manual). + @end ignore + + Permission is granted to copy and distribute modified versions of this + manual under the conditions for verbatim copying, provided that the entire + resulting derived work is distributed under the terms of a permission + notice identical to this one. + + Permission is granted to copy and distribute translations of this manual + into another language, under the above conditions for modified versions, + except that this permission notice may be stated in a translation approved + by the Foundation. + @end ifinfo + + @node Programming with GNU Readline + @chapter Programming with GNU Readline + + This chapter describes the interface between the @sc{gnu} Readline Library and + other programs. If you are a programmer, and you wish to include the + features found in @sc{gnu} Readline + such as completion, line editing, and interactive history manipulation + in your own programs, this section is for you. + + @menu + * Basic Behavior:: Using the default behavior of Readline. + * Custom Functions:: Adding your own functions to Readline. + * Readline Variables:: Variables accessible to custom + functions. + * Readline Convenience Functions:: Functions which Readline supplies to + aid in writing your own custom + functions. + * Readline Signal Handling:: How Readline behaves when it receives signals. + * Custom Completers:: Supplanting or supplementing Readline's + completion functions. + @end menu + + @node Basic Behavior + @section Basic Behavior + + Many programs provide a command line interface, such as @code{mail}, + @code{ftp}, and @code{sh}. For such programs, the default behaviour of + Readline is sufficient. This section describes how to use Readline in + the simplest way possible, perhaps to replace calls in your code to + @code{gets()} or @code{fgets()}. + + @findex readline + @cindex readline, function + + The function @code{readline()} prints a prompt @var{prompt} + and then reads and returns a single line of text from the user. + If @var{prompt} is @code{NULL} or the empty string, no prompt is displayed. + The line @code{readline} returns is allocated with @code{malloc()}; + the caller should @code{free()} the line when it has finished with it. + The declaration for @code{readline} in ANSI C is + + @example + @code{char *readline (const char *@var{prompt});} + @end example + + @noindent + So, one might say + @example + @code{char *line = readline ("Enter a line: ");} + @end example + @noindent + in order to read a line of text from the user. + The line returned has the final newline removed, so only the + text remains. + + If @code{readline} encounters an @code{EOF} while reading the line, and the + line is empty at that point, then @code{(char *)NULL} is returned. + Otherwise, the line is ended just as if a newline had been typed. + + If you want the user to be able to get at the line later, (with + @key{C-p} for example), you must call @code{add_history()} to save the + line away in a @dfn{history} list of such lines. + + @example + @code{add_history (line)}; + @end example + + @noindent + For full details on the GNU History Library, see the associated manual. + + It is preferable to avoid saving empty lines on the history list, since + users rarely have a burning need to reuse a blank line. Here is + a function which usefully replaces the standard @code{gets()} library + function, and has the advantage of no static buffer to overflow: + + @example + /* A static variable for holding the line. */ + static char *line_read = (char *)NULL; + + /* Read a string, and return a pointer to it. + Returns NULL on EOF. */ + char * + rl_gets () + @{ + /* If the buffer has already been allocated, + return the memory to the free pool. */ + if (line_read) + @{ + free (line_read); + line_read = (char *)NULL; + @} + + /* Get a line from the user. */ + line_read = readline (""); + + /* If the line has any text in it, + save it on the history. */ + if (line_read && *line_read) + add_history (line_read); + + return (line_read); + @} + @end example + + This function gives the user the default behaviour of @key{TAB} + completion: completion on file names. If you do not want Readline to + complete on filenames, you can change the binding of the @key{TAB} key + with @code{rl_bind_key()}. + + @example + @code{int rl_bind_key (int @var{key}, rl_command_func_t *@var{function});} + @end example + + @code{rl_bind_key()} takes two arguments: @var{key} is the character that + you want to bind, and @var{function} is the address of the function to + call when @var{key} is pressed. Binding @key{TAB} to @code{rl_insert()} + makes @key{TAB} insert itself. + @code{rl_bind_key()} returns non-zero if @var{key} is not a valid + ASCII character code (between 0 and 255). + + Thus, to disable the default @key{TAB} behavior, the following suffices: + @example + @code{rl_bind_key ('\t', rl_insert);} + @end example + + This code should be executed once at the start of your program; you + might write a function called @code{initialize_readline()} which + performs this and other desired initializations, such as installing + custom completers (@pxref{Custom Completers}). + + @node Custom Functions + @section Custom Functions + + Readline provides many functions for manipulating the text of + the line, but it isn't possible to anticipate the needs of all + programs. This section describes the various functions and variables + defined within the Readline library which allow a user program to add + customized functionality to Readline. + + Before declaring any functions that customize Readline's behavior, or + using any functionality Readline provides in other code, an + application writer should include the file @code{} + in any file that uses Readline's features. Since some of the definitions + in @code{readline.h} use the @code{stdio} library, the file + @code{} should be included before @code{readline.h}. + + @code{readline.h} defines a C preprocessor variable that should + be treated as an integer, @code{RL_READLINE_VERSION}, which may + be used to conditionally compile application code depending on + the installed Readline version. The value is a hexadecimal + encoding of the major and minor version numbers of the library, + of the form 0x@var{MMmm}. @var{MM} is the two-digit major + version number; @var{mm} is the two-digit minor version number. + For Readline 4.2, for example, the value of + @code{RL_READLINE_VERSION} would be @code{0x0402}. + + @menu + * Readline Typedefs:: C declarations to make code readable. + * Function Writing:: Variables and calling conventions. + @end menu + + @node Readline Typedefs + @subsection Readline Typedefs + + For readabilty, we declare a number of new object types, all pointers + to functions. + + The reason for declaring these new types is to make it easier to write + code describing pointers to C functions with appropriately prototyped + arguments and return values. + + For instance, say we want to declare a variable @var{func} as a pointer + to a function which takes two @code{int} arguments and returns an + @code{int} (this is the type of all of the Readline bindable functions). + Instead of the classic C declaration + + @code{int (*func)();} + + @noindent + or the ANSI-C style declaration + + @code{int (*func)(int, int);} + + @noindent + we may write + + @code{rl_command_func_t *func;} + + The full list of function pointer types available is + + @table @code + @item typedef int rl_command_func_t (int, int); + + @item typedef char *rl_compentry_func_t (const char *, int); + + @item typedef char **rl_completion_func_t (const char *, int, int); + + @item typedef char *rl_quote_func_t (char *, int, char *); + + @item typedef char *rl_dequote_func_t (char *, int); + + @item typedef int rl_compignore_func_t (char **); + + @item typedef void rl_compdisp_func_t (char **, int, int); + + @item typedef int rl_hook_func_t (void); + + @item typedef int rl_getc_func_t (FILE *); + + @item typedef int rl_linebuf_func_t (char *, int); + + @item typedef int rl_intfunc_t (int); + @item #define rl_ivoidfunc_t rl_hook_func_t + @item typedef int rl_icpfunc_t (char *); + @item typedef int rl_icppfunc_t (char **); + + @item typedef void rl_voidfunc_t (void); + @item typedef void rl_vintfunc_t (int); + @item typedef void rl_vcpfunc_t (char *); + @item typedef void rl_vcppfunc_t (char **); + + @end table + + @node Function Writing + @subsection Writing a New Function + + In order to write new functions for Readline, you need to know the + calling conventions for keyboard-invoked functions, and the names of the + variables that describe the current state of the line read so far. + + The calling sequence for a command @code{foo} looks like + + @example + @code{int foo (int count, int key)} + @end example + + @noindent + where @var{count} is the numeric argument (or 1 if defaulted) and + @var{key} is the key that invoked this function. + + It is completely up to the function as to what should be done with the + numeric argument. Some functions use it as a repeat count, some + as a flag, and others to choose alternate behavior (refreshing the current + line as opposed to refreshing the screen, for example). Some choose to + ignore it. In general, if a + function uses the numeric argument as a repeat count, it should be able + to do something useful with both negative and positive arguments. + At the very least, it should be aware that it can be passed a + negative argument. + + A command function should return 0 if its action completes successfully, + and a non-zero value if some error occurs. + + @node Readline Variables + @section Readline Variables + + These variables are available to function writers. + + @deftypevar {char *} rl_line_buffer + This is the line gathered so far. You are welcome to modify the + contents of the line, but see @ref{Allowing Undoing}. The + function @code{rl_extend_line_buffer} is available to increase + the memory allocated to @code{rl_line_buffer}. + @end deftypevar + + @deftypevar int rl_point + The offset of the current cursor position in @code{rl_line_buffer} + (the @emph{point}). + @end deftypevar + + @deftypevar int rl_end + The number of characters present in @code{rl_line_buffer}. When + @code{rl_point} is at the end of the line, @code{rl_point} and + @code{rl_end} are equal. + @end deftypevar + + @deftypevar int rl_mark + The @var{mark} (saved position) in the current line. If set, the mark + and point define a @emph{region}. + @end deftypevar + + @deftypevar int rl_done + Setting this to a non-zero value causes Readline to return the current + line immediately. + @end deftypevar + + @deftypevar int rl_num_chars_to_read + Setting this to a positive value before calling @code{readline()} causes + Readline to return after accepting that many characters, rather + than reading up to a character bound to @code{accept-line}. + @end deftypevar + + @deftypevar int rl_pending_input + Setting this to a value makes it the next keystroke read. This is a + way to stuff a single character into the input stream. + @end deftypevar + + @deftypevar int rl_dispatching + Set to a non-zero value if a function is being called from a key binding; + zero otherwise. Application functions can test this to discover whether + they were called directly or by Readline's dispatching mechanism. + @end deftypevar + + @deftypevar int rl_erase_empty_line + Setting this to a non-zero value causes Readline to completely erase + the current line, including any prompt, any time a newline is typed as + the only character on an otherwise-empty line. The cursor is moved to + the beginning of the newly-blank line. + @end deftypevar + + @deftypevar {char *} rl_prompt + The prompt Readline uses. This is set from the argument to + @code{readline()}, and should not be assigned to directly. + The @code{rl_set_prompt()} function (@pxref{Redisplay}) may + be used to modify the prompt string after calling @code{readline()}. + @end deftypevar + + @deftypevar int rl_already_prompted + If an application wishes to display the prompt itself, rather than have + Readline do it the first time @code{readline()} is called, it should set + this variable to a non-zero value after displaying the prompt. + The prompt must also be passed as the argument to @code{readline()} so + the redisplay functions can update the display properly. + The calling application is responsible for managing the value; Readline + never sets it. + @end deftypevar + + @deftypevar {const char *} rl_library_version + The version number of this revision of the library. + @end deftypevar + + @deftypevar int rl_readline_version + An integer encoding the current version of the library. The encoding is + of the form 0x@var{MMmm}, where @var{MM} is the two-digit major version + number, and @var{mm} is the two-digit minor version number. + For example, for Readline-4.2, @code{rl_readline_version} would have the + value 0x0402. + @end deftypevar + + @deftypevar {int} rl_gnu_readline_p + Always set to 1, denoting that this is @sc{gnu} readline rather than some + emulation. + @end deftypevar + + @deftypevar {const char *} rl_terminal_name + The terminal type, used for initialization. If not set by the application, + Readline sets this to the value of the @env{TERM} environment variable + the first time it is called. + @end deftypevar + + @deftypevar {const char *} rl_readline_name + This variable is set to a unique name by each application using Readline. + The value allows conditional parsing of the inputrc file + (@pxref{Conditional Init Constructs}). + @end deftypevar + + @deftypevar {FILE *} rl_instream + The stdio stream from which Readline reads input. + If @code{NULL}, Readline defaults to @var{stdin}. + @end deftypevar + + @deftypevar {FILE *} rl_outstream + The stdio stream to which Readline performs output. + If @code{NULL}, Readline defaults to @var{stdout}. + @end deftypevar + + @deftypevar {rl_command_func_t *} rl_last_func + The address of the last command function Readline executed. May be used to + test whether or not a function is being executed twice in succession, for + example. + @end deftypevar + + @deftypevar {rl_hook_func_t *} rl_startup_hook + If non-zero, this is the address of a function to call just + before @code{readline} prints the first prompt. + @end deftypevar + + @deftypevar {rl_hook_func_t *} rl_pre_input_hook + If non-zero, this is the address of a function to call after + the first prompt has been printed and just before @code{readline} + starts reading input characters. + @end deftypevar + + @deftypevar {rl_hook_func_t *} rl_event_hook + If non-zero, this is the address of a function to call periodically + when Readline is waiting for terminal input. + By default, this will be called at most ten times a second if there + is no keyboard input. + @end deftypevar + + @deftypevar {rl_getc_func_t *} rl_getc_function + If non-zero, Readline will call indirectly through this pointer + to get a character from the input stream. By default, it is set to + @code{rl_getc}, the default Readline character input function + (@pxref{Character Input}). + @end deftypevar + + @deftypevar {rl_voidfunc_t *} rl_redisplay_function + If non-zero, Readline will call indirectly through this pointer + to update the display with the current contents of the editing buffer. + By default, it is set to @code{rl_redisplay}, the default Readline + redisplay function (@pxref{Redisplay}). + @end deftypevar + + @deftypevar {rl_vintfunc_t *} rl_prep_term_function + If non-zero, Readline will call indirectly through this pointer + to initialize the terminal. The function takes a single argument, an + @code{int} flag that says whether or not to use eight-bit characters. + By default, this is set to @code{rl_prep_terminal} + (@pxref{Terminal Management}). + @end deftypevar + + @deftypevar {rl_voidfunc_t *} rl_deprep_term_function + If non-zero, Readline will call indirectly through this pointer + to reset the terminal. This function should undo the effects of + @code{rl_prep_term_function}. + By default, this is set to @code{rl_deprep_terminal} + (@pxref{Terminal Management}). + @end deftypevar + + @deftypevar {Keymap} rl_executing_keymap + This variable is set to the keymap (@pxref{Keymaps}) in which the + currently executing readline function was found. + @end deftypevar + + @deftypevar {Keymap} rl_binding_keymap + This variable is set to the keymap (@pxref{Keymaps}) in which the + last key binding occurred. + @end deftypevar + + @deftypevar {char *} rl_executing_macro + This variable is set to the text of any currently-executing macro. + @end deftypevar + + @deftypevar {int} rl_readline_state + A variable with bit values that encapsulate the current Readline state. + A bit is set with the @code{RL_SETSTATE} macro, and unset with the + @code{RL_UNSETSTATE} macro. Use the @code{RL_ISSTATE} macro to test + whether a particular state bit is set. Current state bits include: + + @table @code + @item RL_STATE_NONE + Readline has not yet been called, nor has it begun to intialize. + @item RL_STATE_INITIALIZING + Readline is initializing its internal data structures. + @item RL_STATE_INITIALIZED + Readline has completed its initialization. + @item RL_STATE_TERMPREPPED + Readline has modified the terminal modes to do its own input and redisplay. + @item RL_STATE_READCMD + Readline is reading a command from the keyboard. + @item RL_STATE_METANEXT + Readline is reading more input after reading the meta-prefix character. + @item RL_STATE_DISPATCHING + Readline is dispatching to a command. + @item RL_STATE_MOREINPUT + Readline is reading more input while executing an editing command. + @item RL_STATE_ISEARCH + Readline is performing an incremental history search. + @item RL_STATE_NSEARCH + Readline is performing a non-incremental history search. + @item RL_STATE_SEARCH + Readline is searching backward or forward through the history for a string. + @item RL_STATE_NUMERICARG + Readline is reading a numeric argument. + @item RL_STATE_MACROINPUT + Readline is currently getting its input from a previously-defined keyboard + macro. + @item RL_STATE_MACRODEF + Readline is currently reading characters defining a keyboard macro. + @item RL_STATE_OVERWRITE + Readline is in overwrite mode. + @item RL_STATE_COMPLETING + Readline is performing word completion. + @item RL_STATE_SIGHANDLER + Readline is currently executing the readline signal handler. + @item RL_STATE_UNDOING + Readline is performing an undo. + @item RL_STATE_DONE + Readline has read a key sequence bound to @code{accept-line} + and is about to return the line to the caller. + @end table + + @end deftypevar + + @deftypevar {int} rl_explicit_arg + Set to a non-zero value if an explicit numeric argument was specified by + the user. Only valid in a bindable command function. + @end deftypevar + + @deftypevar {int} rl_numeric_arg + Set to the value of any numeric argument explicitly specified by the user + before executing the current Readline function. Only valid in a bindable + command function. + @end deftypevar + + @deftypevar {int} rl_editing_mode + Set to a value denoting Readline's current editing mode. A value of + @var{1} means Readline is currently in emacs mode; @var{0} + means that vi mode is active. + @end deftypevar + + + @node Readline Convenience Functions + @section Readline Convenience Functions + + @menu + * Function Naming:: How to give a function you write a name. + * Keymaps:: Making keymaps. + * Binding Keys:: Changing Keymaps. + * Associating Function Names and Bindings:: Translate function names to + key sequences. + * Allowing Undoing:: How to make your functions undoable. + * Redisplay:: Functions to control line display. + * Modifying Text:: Functions to modify @code{rl_line_buffer}. + * Character Input:: Functions to read keyboard input. + * Terminal Management:: Functions to manage terminal settings. + * Utility Functions:: Generally useful functions and hooks. + * Miscellaneous Functions:: Functions that don't fall into any category. + * Alternate Interface:: Using Readline in a `callback' fashion. + * A Readline Example:: An example Readline function. + @end menu + + @node Function Naming + @subsection Naming a Function + + The user can dynamically change the bindings of keys while using + Readline. This is done by representing the function with a descriptive + name. The user is able to type the descriptive name when referring to + the function. Thus, in an init file, one might find + + @example + Meta-Rubout: backward-kill-word + @end example + + This binds the keystroke @key{Meta-Rubout} to the function + @emph{descriptively} named @code{backward-kill-word}. You, as the + programmer, should bind the functions you write to descriptive names as + well. Readline provides a function for doing that: + + @deftypefun int rl_add_defun (const char *name, rl_command_func_t *function, int key) + Add @var{name} to the list of named functions. Make @var{function} be + the function that gets called. If @var{key} is not -1, then bind it to + @var{function} using @code{rl_bind_key()}. + @end deftypefun + + Using this function alone is sufficient for most applications. + It is the recommended way to add a few functions to the default + functions that Readline has built in. + If you need to do something other than adding a function to Readline, + you may need to use the underlying functions described below. + + @node Keymaps + @subsection Selecting a Keymap + + Key bindings take place on a @dfn{keymap}. The keymap is the + association between the keys that the user types and the functions that + get run. You can make your own keymaps, copy existing keymaps, and tell + Readline which keymap to use. + + @deftypefun Keymap rl_make_bare_keymap (void) + Returns a new, empty keymap. The space for the keymap is allocated with + @code{malloc()}; the caller should free it by calling + @code{rl_discard_keymap()} when done. + @end deftypefun + + @deftypefun Keymap rl_copy_keymap (Keymap map) + Return a new keymap which is a copy of @var{map}. + @end deftypefun + + @deftypefun Keymap rl_make_keymap (void) + Return a new keymap with the printing characters bound to rl_insert, + the lowercase Meta characters bound to run their equivalents, and + the Meta digits bound to produce numeric arguments. + @end deftypefun + + @deftypefun void rl_discard_keymap (Keymap keymap) + Free the storage associated with @var{keymap}. + @end deftypefun + + Readline has several internal keymaps. These functions allow you to + change which keymap is active. + + @deftypefun Keymap rl_get_keymap (void) + Returns the currently active keymap. + @end deftypefun + + @deftypefun void rl_set_keymap (Keymap keymap) + Makes @var{keymap} the currently active keymap. + @end deftypefun + + @deftypefun Keymap rl_get_keymap_by_name (const char *name) + Return the keymap matching @var{name}. @var{name} is one which would + be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}). + @end deftypefun + + @deftypefun {char *} rl_get_keymap_name (Keymap keymap) + Return the name matching @var{keymap}. @var{name} is one which would + be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}). + @end deftypefun + + @node Binding Keys + @subsection Binding Keys + + Key sequences are associate with functions through the keymap. + Readline has several internal keymaps: @code{emacs_standard_keymap}, + @code{emacs_meta_keymap}, @code{emacs_ctlx_keymap}, + @code{vi_movement_keymap}, and @code{vi_insertion_keymap}. + @code{emacs_standard_keymap} is the default, and the examples in + this manual assume that. + + Since @code{readline()} installs a set of default key bindings the first + time it is called, there is always the danger that a custom binding + installed before the first call to @code{readline()} will be overridden. + An alternate mechanism is to install custom key bindings in an + initialization function assigned to the @code{rl_startup_hook} variable + (@pxref{Readline Variables}). + + These functions manage key bindings. + + @deftypefun int rl_bind_key (int key, rl_command_func_t *function) + Binds @var{key} to @var{function} in the currently active keymap. + Returns non-zero in the case of an invalid @var{key}. + @end deftypefun + + @deftypefun int rl_bind_key_in_map (int key, rl_command_func_t *function, Keymap map) + Bind @var{key} to @var{function} in @var{map}. + Returns non-zero in the case of an invalid @var{key}. + @end deftypefun + + @deftypefun int rl_bind_key_if_unbound (int key, rl_command_func_t *function) + Binds @var{key} to @var{function} if it is not already bound in the + currently active keymap. + Returns non-zero in the case of an invalid @var{key} or if @var{key} is + already bound. + @end deftypefun + + @deftypefun int rl_bind_key_if_unbound_in_map (int key, rl_command_func_t *function, Keymap map) + Binds @var{key} to @var{function} if it is not already bound in @var{map}. + Returns non-zero in the case of an invalid @var{key} or if @var{key} is + already bound. + @end deftypefun + + @deftypefun int rl_unbind_key (int key) + Bind @var{key} to the null function in the currently active keymap. + Returns non-zero in case of error. + @end deftypefun + + @deftypefun int rl_unbind_key_in_map (int key, Keymap map) + Bind @var{key} to the null function in @var{map}. + Returns non-zero in case of error. + @end deftypefun + + @deftypefun int rl_unbind_function_in_map (rl_command_func_t *function, Keymap map) + Unbind all keys that execute @var{function} in @var{map}. + @end deftypefun + + @deftypefun int rl_unbind_command_in_map (const char *command, Keymap map) + Unbind all keys that are bound to @var{command} in @var{map}. + @end deftypefun + + @deftypefun int rl_bind_keyseq (const char *keyseq, rl_command_func_t *function) + Bind the key sequence represented by the string @var{keyseq} to the function + @var{function}, beginning in the current keymap. + This makes new keymaps as necessary. + The return value is non-zero if @var{keyseq} is invalid. + @end deftypefun + + @deftypefun int rl_bind_keyseq_in_map (const char *keyseq, rl_command_func_t *function, Keymap map) + Bind the key sequence represented by the string @var{keyseq} to the function + @var{function}. This makes new keymaps as necessary. + Initial bindings are performed in @var{map}. + The return value is non-zero if @var{keyseq} is invalid. + @end deftypefun + + @deftypefun int rl_set_key (const char *keyseq, rl_command_func_t *function, Keymap map) + Equivalent to @code{rl_bind_keyseq_in_map}. + @end deftypefun + + @deftypefun int rl_bind_keyseq_if_unbound (const char *keyseq, rl_command_func_t *function) + Binds @var{keyseq} to @var{function} if it is not already bound in the + currently active keymap. + Returns non-zero in the case of an invalid @var{keyseq} or if @var{keyseq} is + already bound. + @end deftypefun + + @deftypefun int rl_bind_keyseq_if_unbound_in_map (const char *keyseq, rl_command_func_t *function, Keymap map) + Binds @var{keyseq} to @var{function} if it is not already bound in @var{map}. + Returns non-zero in the case of an invalid @var{keyseq} or if @var{keyseq} is + already bound. + @end deftypefun + + @deftypefun int rl_generic_bind (int type, const char *keyseq, char *data, Keymap map) + Bind the key sequence represented by the string @var{keyseq} to the arbitrary + pointer @var{data}. @var{type} says what kind of data is pointed to by + @var{data}; this can be a function (@code{ISFUNC}), a macro + (@code{ISMACR}), or a keymap (@code{ISKMAP}). This makes new keymaps as + necessary. The initial keymap in which to do bindings is @var{map}. + @end deftypefun + + @deftypefun int rl_parse_and_bind (char *line) + Parse @var{line} as if it had been read from the @code{inputrc} file and + perform any key bindings and variable assignments found + (@pxref{Readline Init File}). + @end deftypefun + + @deftypefun int rl_read_init_file (const char *filename) + Read keybindings and variable assignments from @var{filename} + (@pxref{Readline Init File}). + @end deftypefun + + @node Associating Function Names and Bindings + @subsection Associating Function Names and Bindings + + These functions allow you to find out what keys invoke named functions + and the functions invoked by a particular key sequence. You may also + associate a new function name with an arbitrary function. + + @deftypefun {rl_command_func_t *} rl_named_function (const char *name) + Return the function with name @var{name}. + @end deftypefun + + @deftypefun {rl_command_func_t *} rl_function_of_keyseq (const char *keyseq, Keymap map, int *type) + Return the function invoked by @var{keyseq} in keymap @var{map}. + If @var{map} is @code{NULL}, the current keymap is used. If @var{type} is + not @code{NULL}, the type of the object is returned in the @code{int} variable + it points to (one of @code{ISFUNC}, @code{ISKMAP}, or @code{ISMACR}). + @end deftypefun + + @deftypefun {char **} rl_invoking_keyseqs (rl_command_func_t *function) + Return an array of strings representing the key sequences used to + invoke @var{function} in the current keymap. + @end deftypefun + + @deftypefun {char **} rl_invoking_keyseqs_in_map (rl_command_func_t *function, Keymap map) + Return an array of strings representing the key sequences used to + invoke @var{function} in the keymap @var{map}. + @end deftypefun + + @deftypefun void rl_function_dumper (int readable) + Print the readline function names and the key sequences currently + bound to them to @code{rl_outstream}. If @var{readable} is non-zero, + the list is formatted in such a way that it can be made part of an + @code{inputrc} file and re-read. + @end deftypefun + + @deftypefun void rl_list_funmap_names (void) + Print the names of all bindable Readline functions to @code{rl_outstream}. + @end deftypefun + + @deftypefun {const char **} rl_funmap_names (void) + Return a NULL terminated array of known function names. The array is + sorted. The array itself is allocated, but not the strings inside. You + should @code{free()} the array when you are done, but not the pointers. + @end deftypefun + + @deftypefun int rl_add_funmap_entry (const char *name, rl_command_func_t *function) + Add @var{name} to the list of bindable Readline command names, and make + @var{function} the function to be called when @var{name} is invoked. + @end deftypefun + + @node Allowing Undoing + @subsection Allowing Undoing + + Supporting the undo command is a painless thing, and makes your + functions much more useful. It is certainly easy to try + something if you know you can undo it. + + If your function simply inserts text once, or deletes text once, and + uses @code{rl_insert_text()} or @code{rl_delete_text()} to do it, then + undoing is already done for you automatically. + + If you do multiple insertions or multiple deletions, or any combination + of these operations, you should group them together into one operation. + This is done with @code{rl_begin_undo_group()} and + @code{rl_end_undo_group()}. + + The types of events that can be undone are: + + @smallexample + enum undo_code @{ UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END @}; + @end smallexample + + Notice that @code{UNDO_DELETE} means to insert some text, and + @code{UNDO_INSERT} means to delete some text. That is, the undo code + tells what to undo, not how to undo it. @code{UNDO_BEGIN} and + @code{UNDO_END} are tags added by @code{rl_begin_undo_group()} and + @code{rl_end_undo_group()}. + + @deftypefun int rl_begin_undo_group (void) + Begins saving undo information in a group construct. The undo + information usually comes from calls to @code{rl_insert_text()} and + @code{rl_delete_text()}, but could be the result of calls to + @code{rl_add_undo()}. + @end deftypefun + + @deftypefun int rl_end_undo_group (void) + Closes the current undo group started with @code{rl_begin_undo_group + ()}. There should be one call to @code{rl_end_undo_group()} + for each call to @code{rl_begin_undo_group()}. + @end deftypefun + + @deftypefun void rl_add_undo (enum undo_code what, int start, int end, char *text) + Remember how to undo an event (according to @var{what}). The affected + text runs from @var{start} to @var{end}, and encompasses @var{text}. + @end deftypefun + + @deftypefun void rl_free_undo_list (void) + Free the existing undo list. + @end deftypefun + + @deftypefun int rl_do_undo (void) + Undo the first thing on the undo list. Returns @code{0} if there was + nothing to undo, non-zero if something was undone. + @end deftypefun + + Finally, if you neither insert nor delete text, but directly modify the + existing text (e.g., change its case), call @code{rl_modifying()} + once, just before you modify the text. You must supply the indices of + the text range that you are going to modify. + + @deftypefun int rl_modifying (int start, int end) + Tell Readline to save the text between @var{start} and @var{end} as a + single undo unit. It is assumed that you will subsequently modify + that text. + @end deftypefun + + @node Redisplay + @subsection Redisplay + + @deftypefun void rl_redisplay (void) + Change what's displayed on the screen to reflect the current contents + of @code{rl_line_buffer}. + @end deftypefun + + @deftypefun int rl_forced_update_display (void) + Force the line to be updated and redisplayed, whether or not + Readline thinks the screen display is correct. + @end deftypefun + + @deftypefun int rl_on_new_line (void) + Tell the update functions that we have moved onto a new (empty) line, + usually after ouputting a newline. + @end deftypefun + + @deftypefun int rl_on_new_line_with_prompt (void) + Tell the update functions that we have moved onto a new line, with + @var{rl_prompt} already displayed. + This could be used by applications that want to output the prompt string + themselves, but still need Readline to know the prompt string length for + redisplay. + It should be used after setting @var{rl_already_prompted}. + @end deftypefun + + @deftypefun int rl_reset_line_state (void) + Reset the display state to a clean state and redisplay the current line + starting on a new line. + @end deftypefun + + @deftypefun int rl_crlf (void) + Move the cursor to the start of the next screen line. + @end deftypefun + + @deftypefun int rl_show_char (int c) + Display character @var{c} on @code{rl_outstream}. + If Readline has not been set to display meta characters directly, this + will convert meta characters to a meta-prefixed key sequence. + This is intended for use by applications which wish to do their own + redisplay. + @end deftypefun + + @deftypefun int rl_message (const char *, @dots{}) + The arguments are a format string as would be supplied to @code{printf}, + possibly containing conversion specifications such as @samp{%d}, and + any additional arguments necessary to satisfy the conversion specifications. + The resulting string is displayed in the @dfn{echo area}. The echo area + is also used to display numeric arguments and search strings. + @end deftypefun + + @deftypefun int rl_clear_message (void) + Clear the message in the echo area. + @end deftypefun + + @deftypefun void rl_save_prompt (void) + Save the local Readline prompt display state in preparation for + displaying a new message in the message area with @code{rl_message()}. + @end deftypefun + + @deftypefun void rl_restore_prompt (void) + Restore the local Readline prompt display state saved by the most + recent call to @code{rl_save_prompt}. + @end deftypefun + + @deftypefun int rl_expand_prompt (char *prompt) + Expand any special character sequences in @var{prompt} and set up the + local Readline prompt redisplay variables. + This function is called by @code{readline()}. It may also be called to + expand the primary prompt if the @code{rl_on_new_line_with_prompt()} + function or @code{rl_already_prompted} variable is used. + It returns the number of visible characters on the last line of the + (possibly multi-line) prompt. + Applications may indicate that the prompt contains characters that take + up no physical screen space when displayed by bracketing a sequence of + such characters with the special markers @code{RL_PROMPT_START_IGNORE} + and @code{RL_PROMPT_END_IGNORE} (declared in @file{readline.h}. This may + be used to embed terminal-specific escape sequences in prompts. + @end deftypefun + + @deftypefun int rl_set_prompt (const char *prompt) + Make Readline use @var{prompt} for subsequent redisplay. This calls + @code{rl_expand_prompt()} to expand the prompt and sets @code{rl_prompt} + to the result. + @end deftypefun + + @node Modifying Text + @subsection Modifying Text + + @deftypefun int rl_insert_text (const char *text) + Insert @var{text} into the line at the current cursor position. + Returns the number of characters inserted. + @end deftypefun + + @deftypefun int rl_delete_text (int start, int end) + Delete the text between @var{start} and @var{end} in the current line. + Returns the number of characters deleted. + @end deftypefun + + @deftypefun {char *} rl_copy_text (int start, int end) + Return a copy of the text between @var{start} and @var{end} in + the current line. + @end deftypefun + + @deftypefun int rl_kill_text (int start, int end) + Copy the text between @var{start} and @var{end} in the current line + to the kill ring, appending or prepending to the last kill if the + last command was a kill command. The text is deleted. + If @var{start} is less than @var{end}, + the text is appended, otherwise prepended. If the last command was + not a kill, a new kill ring slot is used. + @end deftypefun + + @deftypefun int rl_push_macro_input (char *macro) + Cause @var{macro} to be inserted into the line, as if it had been invoked + by a key bound to a macro. Not especially useful; use + @code{rl_insert_text()} instead. + @end deftypefun + + @node Character Input + @subsection Character Input + + @deftypefun int rl_read_key (void) + Return the next character available from Readline's current input stream. + This handles input inserted into + the input stream via @var{rl_pending_input} (@pxref{Readline Variables}) + and @code{rl_stuff_char()}, macros, and characters read from the keyboard. + While waiting for input, this function will call any function assigned to + the @code{rl_event_hook} variable. + @end deftypefun + + @deftypefun int rl_getc (FILE *stream) + Return the next character available from @var{stream}, which is assumed to + be the keyboard. + @end deftypefun + + @deftypefun int rl_stuff_char (int c) + Insert @var{c} into the Readline input stream. It will be "read" + before Readline attempts to read characters from the terminal with + @code{rl_read_key()}. Up to 512 characters may be pushed back. + @code{rl_stuff_char} returns 1 if the character was successfully inserted; + 0 otherwise. + @end deftypefun + + @deftypefun int rl_execute_next (int c) + Make @var{c} be the next command to be executed when @code{rl_read_key()} + is called. This sets @var{rl_pending_input}. + @end deftypefun + + @deftypefun int rl_clear_pending_input (void) + Unset @var{rl_pending_input}, effectively negating the effect of any + previous call to @code{rl_execute_next()}. This works only if the + pending input has not already been read with @code{rl_read_key()}. + @end deftypefun + + @deftypefun int rl_set_keyboard_input_timeout (int u) + While waiting for keyboard input in @code{rl_read_key()}, Readline will + wait for @var{u} microseconds for input before calling any function + assigned to @code{rl_event_hook}. The default waiting period is + one-tenth of a second. Returns the old timeout value. + @end deftypefun + + @node Terminal Management + @subsection Terminal Management + + @deftypefun void rl_prep_terminal (int meta_flag) + Modify the terminal settings for Readline's use, so @code{readline()} + can read a single character at a time from the keyboard. + The @var{meta_flag} argument should be non-zero if Readline should + read eight-bit input. + @end deftypefun + + @deftypefun void rl_deprep_terminal (void) + Undo the effects of @code{rl_prep_terminal()}, leaving the terminal in + the state in which it was before the most recent call to + @code{rl_prep_terminal()}. + @end deftypefun + + @deftypefun void rl_tty_set_default_bindings (Keymap kmap) + Read the operating system's terminal editing characters (as would be + displayed by @code{stty}) to their Readline equivalents. + The bindings are performed in @var{kmap}. + @end deftypefun + + @deftypefun void rl_tty_unset_default_bindings (Keymap kmap) + Reset the bindings manipulated by @code{rl_tty_set_default_bindings} so + that the terminal editing characters are bound to @code{rl_insert}. + The bindings are performed in @var{kmap}. + @end deftypefun + + @deftypefun int rl_reset_terminal (const char *terminal_name) + Reinitialize Readline's idea of the terminal settings using + @var{terminal_name} as the terminal type (e.g., @code{vt100}). + If @var{terminal_name} is @code{NULL}, the value of the @code{TERM} + environment variable is used. + @end deftypefun + + @node Utility Functions + @subsection Utility Functions + + @deftypefun void rl_replace_line (const char *text, int clear_undo) + Replace the contents of @code{rl_line_buffer} with @var{text}. + The point and mark are preserved, if possible. + If @var{clear_undo} is non-zero, the undo list associated with the + current line is cleared. + @end deftypefun + + @deftypefun int rl_extend_line_buffer (int len) + Ensure that @code{rl_line_buffer} has enough space to hold @var{len} + characters, possibly reallocating it if necessary. + @end deftypefun + + @deftypefun int rl_initialize (void) + Initialize or re-initialize Readline's internal state. + It's not strictly necessary to call this; @code{readline()} calls it before + reading any input. + @end deftypefun + + @deftypefun int rl_ding (void) + Ring the terminal bell, obeying the setting of @code{bell-style}. + @end deftypefun + + @deftypefun int rl_alphabetic (int c) + Return 1 if @var{c} is an alphabetic character. + @end deftypefun + + @deftypefun void rl_display_match_list (char **matches, int len, int max) + A convenience function for displaying a list of strings in + columnar format on Readline's output stream. @code{matches} is the list + of strings, in argv format, such as a list of completion matches. + @code{len} is the number of strings in @code{matches}, and @code{max} + is the length of the longest string in @code{matches}. This function uses + the setting of @code{print-completions-horizontally} to select how the + matches are displayed (@pxref{Readline Init File Syntax}). + @end deftypefun + + The following are implemented as macros, defined in @code{chardefs.h}. + Applications should refrain from using them. + + @deftypefun int _rl_uppercase_p (int c) + Return 1 if @var{c} is an uppercase alphabetic character. + @end deftypefun + + @deftypefun int _rl_lowercase_p (int c) + Return 1 if @var{c} is a lowercase alphabetic character. + @end deftypefun + + @deftypefun int _rl_digit_p (int c) + Return 1 if @var{c} is a numeric character. + @end deftypefun + + @deftypefun int _rl_to_upper (int c) + If @var{c} is a lowercase alphabetic character, return the corresponding + uppercase character. + @end deftypefun + + @deftypefun int _rl_to_lower (int c) + If @var{c} is an uppercase alphabetic character, return the corresponding + lowercase character. + @end deftypefun + + @deftypefun int _rl_digit_value (int c) + If @var{c} is a number, return the value it represents. + @end deftypefun + + @node Miscellaneous Functions + @subsection Miscellaneous Functions + + @deftypefun int rl_macro_bind (const char *keyseq, const char *macro, Keymap map) + Bind the key sequence @var{keyseq} to invoke the macro @var{macro}. + The binding is performed in @var{map}. When @var{keyseq} is invoked, the + @var{macro} will be inserted into the line. This function is deprecated; + use @code{rl_generic_bind()} instead. + @end deftypefun + + @deftypefun void rl_macro_dumper (int readable) + Print the key sequences bound to macros and their values, using + the current keymap, to @code{rl_outstream}. + If @var{readable} is non-zero, the list is formatted in such a way + that it can be made part of an @code{inputrc} file and re-read. + @end deftypefun + + @deftypefun int rl_variable_bind (const char *variable, const char *value) + Make the Readline variable @var{variable} have @var{value}. + This behaves as if the readline command + @samp{set @var{variable} @var{value}} had been executed in an @code{inputrc} + file (@pxref{Readline Init File Syntax}). + @end deftypefun + + @deftypefun void rl_variable_dumper (int readable) + Print the readline variable names and their current values + to @code{rl_outstream}. + If @var{readable} is non-zero, the list is formatted in such a way + that it can be made part of an @code{inputrc} file and re-read. + @end deftypefun + + @deftypefun int rl_set_paren_blink_timeout (int u) + Set the time interval (in microseconds) that Readline waits when showing + a balancing character when @code{blink-matching-paren} has been enabled. + @end deftypefun + + @deftypefun {char *} rl_get_termcap (const char *cap) + Retrieve the string value of the termcap capability @var{cap}. + Readline fetches the termcap entry for the current terminal name and + uses those capabilities to move around the screen line and perform other + terminal-specific operations, like erasing a line. Readline does not + use all of a terminal's capabilities, and this function will return + values for only those capabilities Readline uses. + @end deftypefun + + @node Alternate Interface + @subsection Alternate Interface + + An alternate interface is available to plain @code{readline()}. Some + applications need to interleave keyboard I/O with file, device, or + window system I/O, typically by using a main loop to @code{select()} + on various file descriptors. To accomodate this need, readline can + also be invoked as a `callback' function from an event loop. There + are functions available to make this easy. + + @deftypefun void rl_callback_handler_install (const char *prompt, rl_vcpfunc_t *lhandler) + Set up the terminal for readline I/O and display the initial + expanded value of @var{prompt}. Save the value of @var{lhandler} to + use as a function to call when a complete line of input has been entered. + The function takes the text of the line as an argument. + @end deftypefun + + @deftypefun void rl_callback_read_char (void) + Whenever an application determines that keyboard input is available, it + should call @code{rl_callback_read_char()}, which will read the next + character from the current input source. + If that character completes the line, @code{rl_callback_read_char} will + invoke the @var{lhandler} function saved by @code{rl_callback_handler_install} + to process the line. + Before calling the @var{lhandler} function, the terminal settings are + reset to the values they had before calling + @code{rl_callback_handler_install}. + If the @var{lhandler} function returns, + the terminal settings are modified for Readline's use again. + @code{EOF} is indicated by calling @var{lhandler} with a + @code{NULL} line. + @end deftypefun + + @deftypefun void rl_callback_handler_remove (void) + Restore the terminal to its initial state and remove the line handler. + This may be called from within a callback as well as independently. + If the @var{lhandler} installed by @code{rl_callback_handler_install} + does not exit the program, either this function or the function referred + to by the value of @code{rl_deprep_term_function} should be called before + the program exits to reset the terminal settings. + @end deftypefun + + @node A Readline Example + @subsection A Readline Example + + Here is a function which changes lowercase characters to their uppercase + equivalents, and uppercase characters to lowercase. If + this function was bound to @samp{M-c}, then typing @samp{M-c} would + change the case of the character under point. Typing @samp{M-1 0 M-c} + would change the case of the following 10 characters, leaving the cursor on + the last character changed. + + @example + /* Invert the case of the COUNT following characters. */ + int + invert_case_line (count, key) + int count, key; + @{ + register int start, end, i; + + start = rl_point; + + if (rl_point >= rl_end) + return (0); + + if (count < 0) + @{ + direction = -1; + count = -count; + @} + else + direction = 1; + + /* Find the end of the range to modify. */ + end = start + (count * direction); + + /* Force it to be within range. */ + if (end > rl_end) + end = rl_end; + else if (end < 0) + end = 0; + + if (start == end) + return (0); + + if (start > end) + @{ + int temp = start; + start = end; + end = temp; + @} + + /* Tell readline that we are modifying the line, + so it will save the undo information. */ + rl_modifying (start, end); + + for (i = start; i != end; i++) + @{ + if (_rl_uppercase_p (rl_line_buffer[i])) + rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]); + else if (_rl_lowercase_p (rl_line_buffer[i])) + rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]); + @} + /* Move point to on top of the last character changed. */ + rl_point = (direction == 1) ? end - 1 : start; + return (0); + @} + @end example + + @node Readline Signal Handling + @section Readline Signal Handling + + Signals are asynchronous events sent to a process by the Unix kernel, + sometimes on behalf of another process. They are intended to indicate + exceptional events, like a user pressing the interrupt key on his terminal, + or a network connection being broken. There is a class of signals that can + be sent to the process currently reading input from the keyboard. Since + Readline changes the terminal attributes when it is called, it needs to + perform special processing when such a signal is received in order to + restore the terminal to a sane state, or provide application writers with + functions to do so manually. + + Readline contains an internal signal handler that is installed for a + number of signals (@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM}, + @code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}). + When one of these signals is received, the signal handler + will reset the terminal attributes to those that were in effect before + @code{readline()} was called, reset the signal handling to what it was + before @code{readline()} was called, and resend the signal to the calling + application. + If and when the calling application's signal handler returns, Readline + will reinitialize the terminal and continue to accept input. + When a @code{SIGINT} is received, the Readline signal handler performs + some additional work, which will cause any partially-entered line to be + aborted (see the description of @code{rl_free_line_state()} below). + + There is an additional Readline signal handler, for @code{SIGWINCH}, which + the kernel sends to a process whenever the terminal's size changes (for + example, if a user resizes an @code{xterm}). The Readline @code{SIGWINCH} + handler updates Readline's internal screen size information, and then calls + any @code{SIGWINCH} signal handler the calling application has installed. + Readline calls the application's @code{SIGWINCH} signal handler without + resetting the terminal to its original state. If the application's signal + handler does more than update its idea of the terminal size and return (for + example, a @code{longjmp} back to a main processing loop), it @emph{must} + call @code{rl_cleanup_after_signal()} (described below), to restore the + terminal state. + + Readline provides two variables that allow application writers to + control whether or not it will catch certain signals and act on them + when they are received. It is important that applications change the + values of these variables only when calling @code{readline()}, not in + a signal handler, so Readline's internal signal state is not corrupted. + + @deftypevar int rl_catch_signals + If this variable is non-zero, Readline will install signal handlers for + @code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM}, @code{SIGALRM}, + @code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}. + + The default value of @code{rl_catch_signals} is 1. + @end deftypevar + + @deftypevar int rl_catch_sigwinch + If this variable is non-zero, Readline will install a signal handler for + @code{SIGWINCH}. + + The default value of @code{rl_catch_sigwinch} is 1. + @end deftypevar + + If an application does not wish to have Readline catch any signals, or + to handle signals other than those Readline catches (@code{SIGHUP}, + for example), + Readline provides convenience functions to do the necessary terminal + and internal state cleanup upon receipt of a signal. + + @deftypefun void rl_cleanup_after_signal (void) + This function will reset the state of the terminal to what it was before + @code{readline()} was called, and remove the Readline signal handlers for + all signals, depending on the values of @code{rl_catch_signals} and + @code{rl_catch_sigwinch}. + @end deftypefun + + @deftypefun void rl_free_line_state (void) + This will free any partial state associated with the current input line + (undo information, any partial history entry, any partially-entered + keyboard macro, and any partially-entered numeric argument). This + should be called before @code{rl_cleanup_after_signal()}. The + Readline signal handler for @code{SIGINT} calls this to abort the + current input line. + @end deftypefun + + @deftypefun void rl_reset_after_signal (void) + This will reinitialize the terminal and reinstall any Readline signal + handlers, depending on the values of @code{rl_catch_signals} and + @code{rl_catch_sigwinch}. + @end deftypefun + + If an application does not wish Readline to catch @code{SIGWINCH}, it may + call @code{rl_resize_terminal()} or @code{rl_set_screen_size()} to force + Readline to update its idea of the terminal size when a @code{SIGWINCH} + is received. + + @deftypefun void rl_resize_terminal (void) + Update Readline's internal screen size by reading values from the kernel. + @end deftypefun + + @deftypefun void rl_set_screen_size (int rows, int cols) + Set Readline's idea of the terminal size to @var{rows} rows and + @var{cols} columns. + @end deftypefun + + If an application does not want to install a @code{SIGWINCH} handler, but + is still interested in the screen dimensions, Readline's idea of the screen + size may be queried. + + @deftypefun void rl_get_screen_size (int *rows, int *cols) + Return Readline's idea of the terminal's size in the + variables pointed to by the arguments. + @end deftypefun + + The following functions install and remove Readline's signal handlers. + + @deftypefun int rl_set_signals (void) + Install Readline's signal handler for @code{SIGINT}, @code{SIGQUIT}, + @code{SIGTERM}, @code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN}, + @code{SIGTTOU}, and @code{SIGWINCH}, depending on the values of + @code{rl_catch_signals} and @code{rl_catch_sigwinch}. + @end deftypefun + + @deftypefun int rl_clear_signals (void) + Remove all of the Readline signal handlers installed by + @code{rl_set_signals()}. + @end deftypefun + + @node Custom Completers + @section Custom Completers + @cindex application-specific completion functions + + Typically, a program that reads commands from the user has a way of + disambiguating commands and data. If your program is one of these, then + it can provide completion for commands, data, or both. + The following sections describe how your program and Readline + cooperate to provide this service. + + @menu + * How Completing Works:: The logic used to do completion. + * Completion Functions:: Functions provided by Readline. + * Completion Variables:: Variables which control completion. + * A Short Completion Example:: An example of writing completer subroutines. + @end menu + + @node How Completing Works + @subsection How Completing Works + + In order to complete some text, the full list of possible completions + must be available. That is, it is not possible to accurately + expand a partial word without knowing all of the possible words + which make sense in that context. The Readline library provides + the user interface to completion, and two of the most common + completion functions: filename and username. For completing other types + of text, you must write your own completion function. This section + describes exactly what such functions must do, and provides an example. + + There are three major functions used to perform completion: + + @enumerate + @item + The user-interface function @code{rl_complete()}. This function is + called with the same arguments as other bindable Readline functions: + @var{count} and @var{invoking_key}. + It isolates the word to be completed and calls + @code{rl_completion_matches()} to generate a list of possible completions. + It then either lists the possible completions, inserts the possible + completions, or actually performs the + completion, depending on which behavior is desired. + + @item + The internal function @code{rl_completion_matches()} uses an + application-supplied @dfn{generator} function to generate the list of + possible matches, and then returns the array of these matches. + The caller should place the address of its generator function in + @code{rl_completion_entry_function}. + + @item + The generator function is called repeatedly from + @code{rl_completion_matches()}, returning a string each time. The + arguments to the generator function are @var{text} and @var{state}. + @var{text} is the partial word to be completed. @var{state} is zero the + first time the function is called, allowing the generator to perform + any necessary initialization, and a positive non-zero integer for + each subsequent call. The generator function returns + @code{(char *)NULL} to inform @code{rl_completion_matches()} that there are + no more possibilities left. Usually the generator function computes the + list of possible completions when @var{state} is zero, and returns them + one at a time on subsequent calls. Each string the generator function + returns as a match must be allocated with @code{malloc()}; Readline + frees the strings when it has finished with them. + Such a generator function is referred to as an + @dfn{application-specific completion function}. + + @end enumerate + + @deftypefun int rl_complete (int ignore, int invoking_key) + Complete the word at or before point. You have supplied the function + that does the initial simple matching selection algorithm (see + @code{rl_completion_matches()}). The default is to do filename completion. + @end deftypefun + + @deftypevar {rl_compentry_func_t *} rl_completion_entry_function + This is a pointer to the generator function for + @code{rl_completion_matches()}. + If the value of @code{rl_completion_entry_function} is + @code{NULL} then the default filename generator + function, @code{rl_filename_completion_function()}, is used. + An @dfn{application-specific completion function} is a function whose + address is assigned to @code{rl_completion_entry_function} and whose + return values are used to generate possible completions. + @end deftypevar + + @node Completion Functions + @subsection Completion Functions + + Here is the complete list of callable completion functions present in + Readline. + + @deftypefun int rl_complete_internal (int what_to_do) + Complete the word at or before point. @var{what_to_do} says what to do + with the completion. A value of @samp{?} means list the possible + completions. @samp{TAB} means do standard completion. @samp{*} means + insert all of the possible completions. @samp{!} means to display + all of the possible completions, if there is more than one, as well as + performing partial completion. @samp{@@} is similar to @samp{!}, but + possible completions are not listed if the possible completions share + a common prefix. + @end deftypefun + + @deftypefun int rl_complete (int ignore, int invoking_key) + Complete the word at or before point. You have supplied the function + that does the initial simple matching selection algorithm (see + @code{rl_completion_matches()} and @code{rl_completion_entry_function}). + The default is to do filename + completion. This calls @code{rl_complete_internal()} with an + argument depending on @var{invoking_key}. + @end deftypefun + + @deftypefun int rl_possible_completions (int count, int invoking_key) + List the possible completions. See description of @code{rl_complete + ()}. This calls @code{rl_complete_internal()} with an argument of + @samp{?}. + @end deftypefun + + @deftypefun int rl_insert_completions (int count, int invoking_key) + Insert the list of possible completions into the line, deleting the + partially-completed word. See description of @code{rl_complete()}. + This calls @code{rl_complete_internal()} with an argument of @samp{*}. + @end deftypefun + + @deftypefun int rl_completion_mode (rl_command_func_t *cfunc) + Returns the apppriate value to pass to @code{rl_complete_internal()} + depending on whether @var{cfunc} was called twice in succession and + the values of the @code{show-all-if-ambiguous} and + @code{show-all-if-unmodified} variables. + Application-specific completion functions may use this function to present + the same interface as @code{rl_complete()}. + @end deftypefun + + @deftypefun {char **} rl_completion_matches (const char *text, rl_compentry_func_t *entry_func) + Returns an array of strings which is a list of completions for + @var{text}. If there are no completions, returns @code{NULL}. + The first entry in the returned array is the substitution for @var{text}. + The remaining entries are the possible completions. The array is + terminated with a @code{NULL} pointer. + + @var{entry_func} is a function of two args, and returns a + @code{char *}. The first argument is @var{text}. The second is a + state argument; it is zero on the first call, and non-zero on subsequent + calls. @var{entry_func} returns a @code{NULL} pointer to the caller + when there are no more matches. + @end deftypefun + + @deftypefun {char *} rl_filename_completion_function (const char *text, int state) + A generator function for filename completion in the general case. + @var{text} is a partial filename. + The Bash source is a useful reference for writing application-specific + completion functions (the Bash completion functions call this and other + Readline functions). + @end deftypefun + + @deftypefun {char *} rl_username_completion_function (const char *text, int state) + A completion generator for usernames. @var{text} contains a partial + username preceded by a random character (usually @samp{~}). As with all + completion generators, @var{state} is zero on the first call and non-zero + for subsequent calls. + @end deftypefun + + @node Completion Variables + @subsection Completion Variables + + @deftypevar {rl_compentry_func_t *} rl_completion_entry_function + A pointer to the generator function for @code{rl_completion_matches()}. + @code{NULL} means to use @code{rl_filename_completion_function()}, + the default filename completer. + @end deftypevar + + @deftypevar {rl_completion_func_t *} rl_attempted_completion_function + A pointer to an alternative function to create matches. + The function is called with @var{text}, @var{start}, and @var{end}. + @var{start} and @var{end} are indices in @code{rl_line_buffer} defining + the boundaries of @var{text}, which is a character string. + If this function exists and returns @code{NULL}, or if this variable is + set to @code{NULL}, then @code{rl_complete()} will call the value of + @code{rl_completion_entry_function} to generate matches, otherwise the + array of strings returned will be used. + If this function sets the @code{rl_attempted_completion_over} + variable to a non-zero value, Readline will not perform its default + completion even if this function returns no matches. + @end deftypevar + + @deftypevar {rl_quote_func_t *} rl_filename_quoting_function + A pointer to a function that will quote a filename in an + application-specific fashion. This is called if filename completion is being + attempted and one of the characters in @code{rl_filename_quote_characters} + appears in a completed filename. The function is called with + @var{text}, @var{match_type}, and @var{quote_pointer}. The @var{text} + is the filename to be quoted. The @var{match_type} is either + @code{SINGLE_MATCH}, if there is only one completion match, or + @code{MULT_MATCH}. Some functions use this to decide whether or not to + insert a closing quote character. The @var{quote_pointer} is a pointer + to any opening quote character the user typed. Some functions choose + to reset this character. + @end deftypevar + + @deftypevar {rl_dequote_func_t *} rl_filename_dequoting_function + A pointer to a function that will remove application-specific quoting + characters from a filename before completion is attempted, so those + characters do not interfere with matching the text against names in + the filesystem. It is called with @var{text}, the text of the word + to be dequoted, and @var{quote_char}, which is the quoting character + that delimits the filename (usually @samp{'} or @samp{"}). If + @var{quote_char} is zero, the filename was not in an embedded string. + @end deftypevar + + @deftypevar {rl_linebuf_func_t *} rl_char_is_quoted_p + A pointer to a function to call that determines whether or not a specific + character in the line buffer is quoted, according to whatever quoting + mechanism the program calling Readline uses. The function is called with + two arguments: @var{text}, the text of the line, and @var{index}, the + index of the character in the line. It is used to decide whether a + character found in @code{rl_completer_word_break_characters} should be + used to break words for the completer. + @end deftypevar + + @deftypevar {rl_compignore_func_t *} rl_ignore_some_completions_function + This function, if defined, is called by the completer when real filename + completion is done, after all the matching names have been generated. + It is passed a @code{NULL} terminated array of matches. + The first element (@code{matches[0]}) is the + maximal substring common to all matches. This function can + re-arrange the list of matches as required, but each element deleted + from the array must be freed. + @end deftypevar + + @deftypevar {rl_icppfunc_t *} rl_directory_completion_hook + This function, if defined, is allowed to modify the directory portion + of filenames Readline completes. It is called with the address of a + string (the current directory name) as an argument, and may modify that string. + If the string is replaced with a new string, the old value should be freed. + Any modified directory name should have a trailing slash. + The modified value will be displayed as part of the completion, replacing + the directory portion of the pathname the user typed. + It returns an integer that should be non-zero if the function modifies + its directory argument. + It could be used to expand symbolic links or shell variables in pathnames. + @end deftypevar + + @deftypevar {rl_compdisp_func_t *} rl_completion_display_matches_hook + If non-zero, then this is the address of a function to call when + completing a word would normally display the list of possible matches. + This function is called in lieu of Readline displaying the list. + It takes three arguments: + (@code{char **}@var{matches}, @code{int} @var{num_matches}, @code{int} @var{max_length}) + where @var{matches} is the array of matching strings, + @var{num_matches} is the number of strings in that array, and + @var{max_length} is the length of the longest string in that array. + Readline provides a convenience function, @code{rl_display_match_list}, + that takes care of doing the display to Readline's output stream. That + function may be called from this hook. + @end deftypevar + + @deftypevar {const char *} rl_basic_word_break_characters + The basic list of characters that signal a break between words for the + completer routine. The default value of this variable is the characters + which break words for completion in Bash: + @code{" \t\n\"\\'`@@$><=;|&@{("}. + @end deftypevar + + @deftypevar {const char *} rl_basic_quote_characters + A list of quote characters which can cause a word break. + @end deftypevar + + @deftypevar {const char *} rl_completer_word_break_characters + The list of characters that signal a break between words for + @code{rl_complete_internal()}. The default list is the value of + @code{rl_basic_word_break_characters}. + @end deftypevar + + @deftypevar {rl_cpvfunc_t *} rl_completion_word_break_hook + If non-zero, this is the address of a function to call when Readline is + deciding where to separate words for word completion. It should return + a character string like @code{rl_completer_word_break_characters} to be + used to perform the current completion. The function may choose to set + @code{rl_completer_word_break_characters} itself. If the function + returns @code{NULL}, @code{rl_completer_word_break_characters} is used. + @end deftypevar + + @deftypevar {const char *} rl_completer_quote_characters + A list of characters which can be used to quote a substring of the line. + Completion occurs on the entire substring, and within the substring + @code{rl_completer_word_break_characters} are treated as any other character, + unless they also appear within this list. + @end deftypevar + + @deftypevar {const char *} rl_filename_quote_characters + A list of characters that cause a filename to be quoted by the completer + when they appear in a completed filename. The default is the null string. + @end deftypevar + + @deftypevar {const char *} rl_special_prefixes + The list of characters that are word break characters, but should be + left in @var{text} when it is passed to the completion function. + Programs can use this to help determine what kind of completing to do. + For instance, Bash sets this variable to "$@@" so that it can complete + shell variables and hostnames. + @end deftypevar + + @deftypevar int rl_completion_query_items + Up to this many items will be displayed in response to a + possible-completions call. After that, we ask the user if she is sure + she wants to see them all. The default value is 100. + @end deftypevar + + @deftypevar {int} rl_completion_append_character + When a single completion alternative matches at the end of the command + line, this character is appended to the inserted completion text. The + default is a space character (@samp{ }). Setting this to the null + character (@samp{\0}) prevents anything being appended automatically. + This can be changed in application-specific completion functions to + provide the ``most sensible word separator character'' according to + an application-specific command line syntax specification. + @end deftypevar + + @deftypevar int rl_completion_suppress_append + If non-zero, @var{rl_completion_append_character} is not appended to + matches at the end of the command line, as described above. + It is set to 0 before any application-specific completion function + is called, and may only be changed within such a function. + @end deftypevar + + @deftypevar int rl_completion_quote_character + When Readline is completing quoted text, as delimited by one of the + characters in @var{rl_completer_quote_characters}, it sets this variable + to the quoting character found. + This is set before any application-specific completion function is called. + @end deftypevar + + @deftypevar int rl_completion_suppress_quote + If non-zero, Readline does not append a matching quote character when + performing completion on a quoted string. + It is set to 0 before any application-specific completion function + is called, and may only be changed within such a function. + @end deftypevar + + @deftypevar int rl_completion_found_quote + When Readline is completing quoted text, it sets this variable + to a non-zero value if the word being completed contains or is delimited + by any quoting characters, including backslashes. + This is set before any application-specific completion function is called. + @end deftypevar + + @deftypevar int rl_completion_mark_symlink_dirs + If non-zero, a slash will be appended to completed filenames that are + symbolic links to directory names, subject to the value of the + user-settable @var{mark-directories} variable. + This variable exists so that application-specific completion functions + can override the user's global preference (set via the + @var{mark-symlinked-directories} Readline variable) if appropriate. + This variable is set to the user's preference before any + application-specific completion function is called, so unless that + function modifies the value, the user's preferences are honored. + @end deftypevar + + @deftypevar int rl_ignore_completion_duplicates + If non-zero, then duplicates in the matches are removed. + The default is 1. + @end deftypevar + + @deftypevar int rl_filename_completion_desired + Non-zero means that the results of the matches are to be treated as + filenames. This is @emph{always} zero when completion is attempted, + and can only be changed + within an application-specific completion function. If it is set to a + non-zero value by such a function, directory names have a slash appended + and Readline attempts to quote completed filenames if they contain any + characters in @code{rl_filename_quote_characters} and + @code{rl_filename_quoting_desired} is set to a non-zero value. + @end deftypevar + + @deftypevar int rl_filename_quoting_desired + Non-zero means that the results of the matches are to be quoted using + double quotes (or an application-specific quoting mechanism) if the + completed filename contains any characters in + @code{rl_filename_quote_chars}. This is @emph{always} non-zero + when completion is attempted, and can only be changed within an + application-specific completion function. + The quoting is effected via a call to the function pointed to + by @code{rl_filename_quoting_function}. + @end deftypevar + + @deftypevar int rl_attempted_completion_over + If an application-specific completion function assigned to + @code{rl_attempted_completion_function} sets this variable to a non-zero + value, Readline will not perform its default filename completion even + if the application's completion function returns no matches. + It should be set only by an application's completion function. + @end deftypevar + + @deftypevar int rl_completion_type + Set to a character describing the type of completion Readline is currently + attempting; see the description of @code{rl_complete_internal()} + (@pxref{Completion Functions}) for the list of characters. + This is set to the appropriate value before any application-specific + completion function is called, allowing such functions to present + the same interface as @code{rl_complete()}. + @end deftypevar + + @deftypevar int rl_inhibit_completion + If this variable is non-zero, completion is inhibited. The completion + character will be inserted as any other bound to @code{self-insert}. + @end deftypevar + + @node A Short Completion Example + @subsection A Short Completion Example + + Here is a small application demonstrating the use of the GNU Readline + library. It is called @code{fileman}, and the source code resides in + @file{examples/fileman.c}. This sample application provides + completion of command names, line editing features, and access to the + history list. + + @page + @smallexample + /* fileman.c -- A tiny application which demonstrates how to use the + GNU Readline library. This application interactively allows users + to manipulate files and their modes. */ + + #include + #include + #include + #include + #include + + #include + #include + + extern char *xmalloc (); + + /* The names of functions that actually do the manipulation. */ + int com_list __P((char *)); + int com_view __P((char *)); + int com_rename __P((char *)); + int com_stat __P((char *)); + int com_pwd __P((char *)); + int com_delete __P((char *)); + int com_help __P((char *)); + int com_cd __P((char *)); + int com_quit __P((char *)); + + /* A structure which contains information on the commands this program + can understand. */ + + typedef struct @{ + char *name; /* User printable name of the function. */ + rl_icpfunc_t *func; /* Function to call to do the job. */ + char *doc; /* Documentation for this function. */ + @} COMMAND; + + COMMAND commands[] = @{ + @{ "cd", com_cd, "Change to directory DIR" @}, + @{ "delete", com_delete, "Delete FILE" @}, + @{ "help", com_help, "Display this text" @}, + @{ "?", com_help, "Synonym for `help'" @}, + @{ "list", com_list, "List files in DIR" @}, + @{ "ls", com_list, "Synonym for `list'" @}, + @{ "pwd", com_pwd, "Print the current working directory" @}, + @{ "quit", com_quit, "Quit using Fileman" @}, + @{ "rename", com_rename, "Rename FILE to NEWNAME" @}, + @{ "stat", com_stat, "Print out statistics on FILE" @}, + @{ "view", com_view, "View the contents of FILE" @}, + @{ (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL @} + @}; + + /* Forward declarations. */ + char *stripwhite (); + COMMAND *find_command (); + + /* The name of this program, as taken from argv[0]. */ + char *progname; + + /* When non-zero, this means the user is done using this program. */ + int done; + + char * + dupstr (s) + int s; + @{ + char *r; + + r = xmalloc (strlen (s) + 1); + strcpy (r, s); + return (r); + @} + + main (argc, argv) + int argc; + char **argv; + @{ + char *line, *s; + + progname = argv[0]; + + initialize_readline (); /* Bind our completer. */ + + /* Loop reading and executing lines until the user quits. */ + for ( ; done == 0; ) + @{ + line = readline ("FileMan: "); + + if (!line) + break; + + /* Remove leading and trailing whitespace from the line. + Then, if there is anything left, add it to the history list + and execute it. */ + s = stripwhite (line); + + if (*s) + @{ + add_history (s); + execute_line (s); + @} + + free (line); + @} + exit (0); + @} + + /* Execute a command line. */ + int + execute_line (line) + char *line; + @{ + register int i; + COMMAND *command; + char *word; + + /* Isolate the command word. */ + i = 0; + while (line[i] && whitespace (line[i])) + i++; + word = line + i; + + while (line[i] && !whitespace (line[i])) + i++; + + if (line[i]) + line[i++] = '\0'; + + command = find_command (word); + + if (!command) + @{ + fprintf (stderr, "%s: No such command for FileMan.\n", word); + return (-1); + @} + + /* Get argument to command, if any. */ + while (whitespace (line[i])) + i++; + + word = line + i; + + /* Call the function. */ + return ((*(command->func)) (word)); + @} + + /* Look up NAME as the name of a command, and return a pointer to that + command. Return a NULL pointer if NAME isn't a command name. */ + COMMAND * + find_command (name) + char *name; + @{ + register int i; + + for (i = 0; commands[i].name; i++) + if (strcmp (name, commands[i].name) == 0) + return (&commands[i]); + + return ((COMMAND *)NULL); + @} + + /* Strip whitespace from the start and end of STRING. Return a pointer + into STRING. */ + char * + stripwhite (string) + char *string; + @{ + register char *s, *t; + + for (s = string; whitespace (*s); s++) + ; + + if (*s == 0) + return (s); + + t = s + strlen (s) - 1; + while (t > s && whitespace (*t)) + t--; + *++t = '\0'; + + return s; + @} + + /* **************************************************************** */ + /* */ + /* Interface to Readline Completion */ + /* */ + /* **************************************************************** */ + + char *command_generator __P((const char *, int)); + char **fileman_completion __P((const char *, int, int)); + + /* Tell the GNU Readline library how to complete. We want to try to + complete on command names if this is the first word in the line, or + on filenames if not. */ + initialize_readline () + @{ + /* Allow conditional parsing of the ~/.inputrc file. */ + rl_readline_name = "FileMan"; + + /* Tell the completer that we want a crack first. */ + rl_attempted_completion_function = fileman_completion; + @} + + /* Attempt to complete on the contents of TEXT. START and END + bound the region of rl_line_buffer that contains the word to + complete. TEXT is the word to complete. We can use the entire + contents of rl_line_buffer in case we want to do some simple + parsing. Returnthe array of matches, or NULL if there aren't any. */ + char ** + fileman_completion (text, start, end) + const char *text; + int start, end; + @{ + char **matches; + + matches = (char **)NULL; + + /* If this word is at the start of the line, then it is a command + to complete. Otherwise it is the name of a file in the current + directory. */ + if (start == 0) + matches = rl_completion_matches (text, command_generator); + + return (matches); + @} + + /* Generator function for command completion. STATE lets us + know whether to start from scratch; without any state + (i.e. STATE == 0), then we start at the top of the list. */ + char * + command_generator (text, state) + const char *text; + int state; + @{ + static int list_index, len; + char *name; + + /* If this is a new word to complete, initialize now. This + includes saving the length of TEXT for efficiency, and + initializing the index variable to 0. */ + if (!state) + @{ + list_index = 0; + len = strlen (text); + @} + + /* Return the next name which partially matches from the + command list. */ + while (name = commands[list_index].name) + @{ + list_index++; + + if (strncmp (name, text, len) == 0) + return (dupstr(name)); + @} + + /* If no names matched, then return NULL. */ + return ((char *)NULL); + @} + + /* **************************************************************** */ + /* */ + /* FileMan Commands */ + /* */ + /* **************************************************************** */ + + /* String to pass to system (). This is for the LIST, VIEW and RENAME + commands. */ + static char syscom[1024]; + + /* List the file(s) named in arg. */ + com_list (arg) + char *arg; + @{ + if (!arg) + arg = ""; + + sprintf (syscom, "ls -FClg %s", arg); + return (system (syscom)); + @} + + com_view (arg) + char *arg; + @{ + if (!valid_argument ("view", arg)) + return 1; + + sprintf (syscom, "more %s", arg); + return (system (syscom)); + @} + + com_rename (arg) + char *arg; + @{ + too_dangerous ("rename"); + return (1); + @} + + com_stat (arg) + char *arg; + @{ + struct stat finfo; + + if (!valid_argument ("stat", arg)) + return (1); + + if (stat (arg, &finfo) == -1) + @{ + perror (arg); + return (1); + @} + + printf ("Statistics for `%s':\n", arg); + + printf ("%s has %d link%s, and is %d byte%s in length.\n", arg, + finfo.st_nlink, + (finfo.st_nlink == 1) ? "" : "s", + finfo.st_size, + (finfo.st_size == 1) ? "" : "s"); + printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime)); + printf (" Last access at: %s", ctime (&finfo.st_atime)); + printf (" Last modified at: %s", ctime (&finfo.st_mtime)); + return (0); + @} + + com_delete (arg) + char *arg; + @{ + too_dangerous ("delete"); + return (1); + @} + + /* Print out help for ARG, or for all of the commands if ARG is + not present. */ + com_help (arg) + char *arg; + @{ + register int i; + int printed = 0; + + for (i = 0; commands[i].name; i++) + @{ + if (!*arg || (strcmp (arg, commands[i].name) == 0)) + @{ + printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc); + printed++; + @} + @} + + if (!printed) + @{ + printf ("No commands match `%s'. Possibilties are:\n", arg); + + for (i = 0; commands[i].name; i++) + @{ + /* Print in six columns. */ + if (printed == 6) + @{ + printed = 0; + printf ("\n"); + @} + + printf ("%s\t", commands[i].name); + printed++; + @} + + if (printed) + printf ("\n"); + @} + return (0); + @} + + /* Change to the directory ARG. */ + com_cd (arg) + char *arg; + @{ + if (chdir (arg) == -1) + @{ + perror (arg); + return 1; + @} + + com_pwd (""); + return (0); + @} + + /* Print out the current working directory. */ + com_pwd (ignore) + char *ignore; + @{ + char dir[1024], *s; + + s = getcwd (dir, sizeof(dir) - 1); + if (s == 0) + @{ + printf ("Error getting pwd: %s\n", dir); + return 1; + @} + + printf ("Current directory is %s\n", dir); + return 0; + @} + + /* The user wishes to quit using this program. Just set DONE + non-zero. */ + com_quit (arg) + char *arg; + @{ + done = 1; + return (0); + @} + + /* Function which tells you that you can't do this. */ + too_dangerous (caller) + char *caller; + @{ + fprintf (stderr, + "%s: Too dangerous for me to distribute.\n" + caller); + fprintf (stderr, "Write it yourself.\n"); + @} + + /* Return non-zero if ARG is a valid argument for CALLER, + else print an error message and return zero. */ + int + valid_argument (caller, arg) + char *caller, *arg; + @{ + if (!arg || !*arg) + @{ + fprintf (stderr, "%s: Argument required.\n", caller); + return (0); + @} + + return (1); + @} + @end smallexample diff -aNrc2 readline-4.3-patched/doc/rltech.texinfo readline-5.0/doc/rltech.texinfo *** readline-4.3-patched/doc/rltech.texinfo Tue Apr 16 17:11:49 2002 --- readline-5.0/doc/rltech.texinfo Wed Dec 31 19:00:00 1969 *************** *** 1,2165 **** - @comment %**start of header (This is for running Texinfo on a region.) - @setfilename rltech.info - @comment %**end of header (This is for running Texinfo on a region.) - @setchapternewpage odd - - @ifinfo - This document describes the GNU Readline Library, a utility for aiding - in the consitency of user interface across discrete programs that need - to provide a command line interface. - - Copyright (C) 1988-2002 Free Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of - this manual provided the copyright notice and this permission notice - pare preserved on all copies. - - @ignore - Permission is granted to process this file through TeX and print the - results, provided the printed document carries copying permission - notice identical to this one except for the removal of this paragraph - (this paragraph not being relevant to the printed manual). - @end ignore - - Permission is granted to copy and distribute modified versions of this - manual under the conditions for verbatim copying, provided that the entire - resulting derived work is distributed under the terms of a permission - notice identical to this one. - - Permission is granted to copy and distribute translations of this manual - into another language, under the above conditions for modified versions, - except that this permission notice may be stated in a translation approved - by the Foundation. - @end ifinfo - - @node Programming with GNU Readline - @chapter Programming with GNU Readline - - This chapter describes the interface between the @sc{gnu} Readline Library and - other programs. If you are a programmer, and you wish to include the - features found in @sc{gnu} Readline - such as completion, line editing, and interactive history manipulation - in your own programs, this section is for you. - - @menu - * Basic Behavior:: Using the default behavior of Readline. - * Custom Functions:: Adding your own functions to Readline. - * Readline Variables:: Variables accessible to custom - functions. - * Readline Convenience Functions:: Functions which Readline supplies to - aid in writing your own custom - functions. - * Readline Signal Handling:: How Readline behaves when it receives signals. - * Custom Completers:: Supplanting or supplementing Readline's - completion functions. - @end menu - - @node Basic Behavior - @section Basic Behavior - - Many programs provide a command line interface, such as @code{mail}, - @code{ftp}, and @code{sh}. For such programs, the default behaviour of - Readline is sufficient. This section describes how to use Readline in - the simplest way possible, perhaps to replace calls in your code to - @code{gets()} or @code{fgets()}. - - @findex readline - @cindex readline, function - - The function @code{readline()} prints a prompt @var{prompt} - and then reads and returns a single line of text from the user. - If @var{prompt} is @code{NULL} or the empty string, no prompt is displayed. - The line @code{readline} returns is allocated with @code{malloc()}; - the caller should @code{free()} the line when it has finished with it. - The declaration for @code{readline} in ANSI C is - - @example - @code{char *readline (const char *@var{prompt});} - @end example - - @noindent - So, one might say - @example - @code{char *line = readline ("Enter a line: ");} - @end example - @noindent - in order to read a line of text from the user. - The line returned has the final newline removed, so only the - text remains. - - If @code{readline} encounters an @code{EOF} while reading the line, and the - line is empty at that point, then @code{(char *)NULL} is returned. - Otherwise, the line is ended just as if a newline had been typed. - - If you want the user to be able to get at the line later, (with - @key{C-p} for example), you must call @code{add_history()} to save the - line away in a @dfn{history} list of such lines. - - @example - @code{add_history (line)}; - @end example - - @noindent - For full details on the GNU History Library, see the associated manual. - - It is preferable to avoid saving empty lines on the history list, since - users rarely have a burning need to reuse a blank line. Here is - a function which usefully replaces the standard @code{gets()} library - function, and has the advantage of no static buffer to overflow: - - @example - /* A static variable for holding the line. */ - static char *line_read = (char *)NULL; - - /* Read a string, and return a pointer to it. - Returns NULL on EOF. */ - char * - rl_gets () - @{ - /* If the buffer has already been allocated, - return the memory to the free pool. */ - if (line_read) - @{ - free (line_read); - line_read = (char *)NULL; - @} - - /* Get a line from the user. */ - line_read = readline (""); - - /* If the line has any text in it, - save it on the history. */ - if (line_read && *line_read) - add_history (line_read); - - return (line_read); - @} - @end example - - This function gives the user the default behaviour of @key{TAB} - completion: completion on file names. If you do not want Readline to - complete on filenames, you can change the binding of the @key{TAB} key - with @code{rl_bind_key()}. - - @example - @code{int rl_bind_key (int @var{key}, rl_command_func_t *@var{function});} - @end example - - @code{rl_bind_key()} takes two arguments: @var{key} is the character that - you want to bind, and @var{function} is the address of the function to - call when @var{key} is pressed. Binding @key{TAB} to @code{rl_insert()} - makes @key{TAB} insert itself. - @code{rl_bind_key()} returns non-zero if @var{key} is not a valid - ASCII character code (between 0 and 255). - - Thus, to disable the default @key{TAB} behavior, the following suffices: - @example - @code{rl_bind_key ('\t', rl_insert);} - @end example - - This code should be executed once at the start of your program; you - might write a function called @code{initialize_readline()} which - performs this and other desired initializations, such as installing - custom completers (@pxref{Custom Completers}). - - @node Custom Functions - @section Custom Functions - - Readline provides many functions for manipulating the text of - the line, but it isn't possible to anticipate the needs of all - programs. This section describes the various functions and variables - defined within the Readline library which allow a user program to add - customized functionality to Readline. - - Before declaring any functions that customize Readline's behavior, or - using any functionality Readline provides in other code, an - application writer should include the file @code{} - in any file that uses Readline's features. Since some of the definitions - in @code{readline.h} use the @code{stdio} library, the file - @code{} should be included before @code{readline.h}. - - @code{readline.h} defines a C preprocessor variable that should - be treated as an integer, @code{RL_READLINE_VERSION}, which may - be used to conditionally compile application code depending on - the installed Readline version. The value is a hexadecimal - encoding of the major and minor version numbers of the library, - of the form 0x@var{MMmm}. @var{MM} is the two-digit major - version number; @var{mm} is the two-digit minor version number. - For Readline 4.2, for example, the value of - @code{RL_READLINE_VERSION} would be @code{0x0402}. - - @menu - * Readline Typedefs:: C declarations to make code readable. - * Function Writing:: Variables and calling conventions. - @end menu - - @node Readline Typedefs - @subsection Readline Typedefs - - For readabilty, we declare a number of new object types, all pointers - to functions. - - The reason for declaring these new types is to make it easier to write - code describing pointers to C functions with appropriately prototyped - arguments and return values. - - For instance, say we want to declare a variable @var{func} as a pointer - to a function which takes two @code{int} arguments and returns an - @code{int} (this is the type of all of the Readline bindable functions). - Instead of the classic C declaration - - @code{int (*func)();} - - @noindent - or the ANSI-C style declaration - - @code{int (*func)(int, int);} - - @noindent - we may write - - @code{rl_command_func_t *func;} - - The full list of function pointer types available is - - @table @code - @item typedef int rl_command_func_t (int, int); - - @item typedef char *rl_compentry_func_t (const char *, int); - - @item typedef char **rl_completion_func_t (const char *, int, int); - - @item typedef char *rl_quote_func_t (char *, int, char *); - - @item typedef char *rl_dequote_func_t (char *, int); - - @item typedef int rl_compignore_func_t (char **); - - @item typedef void rl_compdisp_func_t (char **, int, int); - - @item typedef int rl_hook_func_t (void); - - @item typedef int rl_getc_func_t (FILE *); - - @item typedef int rl_linebuf_func_t (char *, int); - - @item typedef int rl_intfunc_t (int); - @item #define rl_ivoidfunc_t rl_hook_func_t - @item typedef int rl_icpfunc_t (char *); - @item typedef int rl_icppfunc_t (char **); - - @item typedef void rl_voidfunc_t (void); - @item typedef void rl_vintfunc_t (int); - @item typedef void rl_vcpfunc_t (char *); - @item typedef void rl_vcppfunc_t (char **); - - @end table - - @node Function Writing - @subsection Writing a New Function - - In order to write new functions for Readline, you need to know the - calling conventions for keyboard-invoked functions, and the names of the - variables that describe the current state of the line read so far. - - The calling sequence for a command @code{foo} looks like - - @example - @code{int foo (int count, int key)} - @end example - - @noindent - where @var{count} is the numeric argument (or 1 if defaulted) and - @var{key} is the key that invoked this function. - - It is completely up to the function as to what should be done with the - numeric argument. Some functions use it as a repeat count, some - as a flag, and others to choose alternate behavior (refreshing the current - line as opposed to refreshing the screen, for example). Some choose to - ignore it. In general, if a - function uses the numeric argument as a repeat count, it should be able - to do something useful with both negative and positive arguments. - At the very least, it should be aware that it can be passed a - negative argument. - - A command function should return 0 if its action completes successfully, - and a non-zero value if some error occurs. - - @node Readline Variables - @section Readline Variables - - These variables are available to function writers. - - @deftypevar {char *} rl_line_buffer - This is the line gathered so far. You are welcome to modify the - contents of the line, but see @ref{Allowing Undoing}. The - function @code{rl_extend_line_buffer} is available to increase - the memory allocated to @code{rl_line_buffer}. - @end deftypevar - - @deftypevar int rl_point - The offset of the current cursor position in @code{rl_line_buffer} - (the @emph{point}). - @end deftypevar - - @deftypevar int rl_end - The number of characters present in @code{rl_line_buffer}. When - @code{rl_point} is at the end of the line, @code{rl_point} and - @code{rl_end} are equal. - @end deftypevar - - @deftypevar int rl_mark - The @var{mark} (saved position) in the current line. If set, the mark - and point define a @emph{region}. - @end deftypevar - - @deftypevar int rl_done - Setting this to a non-zero value causes Readline to return the current - line immediately. - @end deftypevar - - @deftypevar int rl_num_chars_to_read - Setting this to a positive value before calling @code{readline()} causes - Readline to return after accepting that many characters, rather - than reading up to a character bound to @code{accept-line}. - @end deftypevar - - @deftypevar int rl_pending_input - Setting this to a value makes it the next keystroke read. This is a - way to stuff a single character into the input stream. - @end deftypevar - - @deftypevar int rl_dispatching - Set to a non-zero value if a function is being called from a key binding; - zero otherwise. Application functions can test this to discover whether - they were called directly or by Readline's dispatching mechanism. - @end deftypevar - - @deftypevar int rl_erase_empty_line - Setting this to a non-zero value causes Readline to completely erase - the current line, including any prompt, any time a newline is typed as - the only character on an otherwise-empty line. The cursor is moved to - the beginning of the newly-blank line. - @end deftypevar - - @deftypevar {char *} rl_prompt - The prompt Readline uses. This is set from the argument to - @code{readline()}, and should not be assigned to directly. - The @code{rl_set_prompt()} function (@pxref{Redisplay}) may - be used to modify the prompt string after calling @code{readline()}. - @end deftypevar - - @deftypevar int rl_already_prompted - If an application wishes to display the prompt itself, rather than have - Readline do it the first time @code{readline()} is called, it should set - this variable to a non-zero value after displaying the prompt. - The prompt must also be passed as the argument to @code{readline()} so - the redisplay functions can update the display properly. - The calling application is responsible for managing the value; Readline - never sets it. - @end deftypevar - - @deftypevar {const char *} rl_library_version - The version number of this revision of the library. - @end deftypevar - - @deftypevar int rl_readline_version - An integer encoding the current version of the library. The encoding is - of the form 0x@var{MMmm}, where @var{MM} is the two-digit major version - number, and @var{mm} is the two-digit minor version number. - For example, for Readline-4.2, @code{rl_readline_version} would have the - value 0x0402. - @end deftypevar - - @deftypevar {int} rl_gnu_readline_p - Always set to 1, denoting that this is @sc{gnu} readline rather than some - emulation. - @end deftypevar - - @deftypevar {const char *} rl_terminal_name - The terminal type, used for initialization. If not set by the application, - Readline sets this to the value of the @env{TERM} environment variable - the first time it is called. - @end deftypevar - - @deftypevar {const char *} rl_readline_name - This variable is set to a unique name by each application using Readline. - The value allows conditional parsing of the inputrc file - (@pxref{Conditional Init Constructs}). - @end deftypevar - - @deftypevar {FILE *} rl_instream - The stdio stream from which Readline reads input. - If @code{NULL}, Readline defaults to @var{stdin}. - @end deftypevar - - @deftypevar {FILE *} rl_outstream - The stdio stream to which Readline performs output. - If @code{NULL}, Readline defaults to @var{stdout}. - @end deftypevar - - @deftypevar {rl_command_func_t *} rl_last_func - The address of the last command function Readline executed. May be used to - test whether or not a function is being executed twice in succession, for - example. - @end deftypevar - - @deftypevar {rl_hook_func_t *} rl_startup_hook - If non-zero, this is the address of a function to call just - before @code{readline} prints the first prompt. - @end deftypevar - - @deftypevar {rl_hook_func_t *} rl_pre_input_hook - If non-zero, this is the address of a function to call after - the first prompt has been printed and just before @code{readline} - starts reading input characters. - @end deftypevar - - @deftypevar {rl_hook_func_t *} rl_event_hook - If non-zero, this is the address of a function to call periodically - when Readline is waiting for terminal input. - By default, this will be called at most ten times a second if there - is no keyboard input. - @end deftypevar - - @deftypevar {rl_getc_func_t *} rl_getc_function - If non-zero, Readline will call indirectly through this pointer - to get a character from the input stream. By default, it is set to - @code{rl_getc}, the default Readline character input function - (@pxref{Character Input}). - @end deftypevar - - @deftypevar {rl_voidfunc_t *} rl_redisplay_function - If non-zero, Readline will call indirectly through this pointer - to update the display with the current contents of the editing buffer. - By default, it is set to @code{rl_redisplay}, the default Readline - redisplay function (@pxref{Redisplay}). - @end deftypevar - - @deftypevar {rl_vintfunc_t *} rl_prep_term_function - If non-zero, Readline will call indirectly through this pointer - to initialize the terminal. The function takes a single argument, an - @code{int} flag that says whether or not to use eight-bit characters. - By default, this is set to @code{rl_prep_terminal} - (@pxref{Terminal Management}). - @end deftypevar - - @deftypevar {rl_voidfunc_t *} rl_deprep_term_function - If non-zero, Readline will call indirectly through this pointer - to reset the terminal. This function should undo the effects of - @code{rl_prep_term_function}. - By default, this is set to @code{rl_deprep_terminal} - (@pxref{Terminal Management}). - @end deftypevar - - @deftypevar {Keymap} rl_executing_keymap - This variable is set to the keymap (@pxref{Keymaps}) in which the - currently executing readline function was found. - @end deftypevar - - @deftypevar {Keymap} rl_binding_keymap - This variable is set to the keymap (@pxref{Keymaps}) in which the - last key binding occurred. - @end deftypevar - - @deftypevar {char *} rl_executing_macro - This variable is set to the text of any currently-executing macro. - @end deftypevar - - @deftypevar {int} rl_readline_state - A variable with bit values that encapsulate the current Readline state. - A bit is set with the @code{RL_SETSTATE} macro, and unset with the - @code{RL_UNSETSTATE} macro. Use the @code{RL_ISSTATE} macro to test - whether a particular state bit is set. Current state bits include: - - @table @code - @item RL_STATE_NONE - Readline has not yet been called, nor has it begun to intialize. - @item RL_STATE_INITIALIZING - Readline is initializing its internal data structures. - @item RL_STATE_INITIALIZED - Readline has completed its initialization. - @item RL_STATE_TERMPREPPED - Readline has modified the terminal modes to do its own input and redisplay. - @item RL_STATE_READCMD - Readline is reading a command from the keyboard. - @item RL_STATE_METANEXT - Readline is reading more input after reading the meta-prefix character. - @item RL_STATE_DISPATCHING - Readline is dispatching to a command. - @item RL_STATE_MOREINPUT - Readline is reading more input while executing an editing command. - @item RL_STATE_ISEARCH - Readline is performing an incremental history search. - @item RL_STATE_NSEARCH - Readline is performing a non-incremental history search. - @item RL_STATE_SEARCH - Readline is searching backward or forward through the history for a string. - @item RL_STATE_NUMERICARG - Readline is reading a numeric argument. - @item RL_STATE_MACROINPUT - Readline is currently getting its input from a previously-defined keyboard - macro. - @item RL_STATE_MACRODEF - Readline is currently reading characters defining a keyboard macro. - @item RL_STATE_OVERWRITE - Readline is in overwrite mode. - @item RL_STATE_COMPLETING - Readline is performing word completion. - @item RL_STATE_SIGHANDLER - Readline is currently executing the readline signal handler. - @item RL_STATE_UNDOING - Readline is performing an undo. - @item RL_STATE_DONE - Readline has read a key sequence bound to @code{accept-line} - and is about to return the line to the caller. - @end table - - @end deftypevar - - @deftypevar {int} rl_explicit_arg - Set to a non-zero value if an explicit numeric argument was specified by - the user. Only valid in a bindable command function. - @end deftypevar - - @deftypevar {int} rl_numeric_arg - Set to the value of any numeric argument explicitly specified by the user - before executing the current Readline function. Only valid in a bindable - command function. - @end deftypevar - - @deftypevar {int} rl_editing_mode - Set to a value denoting Readline's current editing mode. A value of - @var{1} means Readline is currently in emacs mode; @var{0} - means that vi mode is active. - @end deftypevar - - - @node Readline Convenience Functions - @section Readline Convenience Functions - - @menu - * Function Naming:: How to give a function you write a name. - * Keymaps:: Making keymaps. - * Binding Keys:: Changing Keymaps. - * Associating Function Names and Bindings:: Translate function names to - key sequences. - * Allowing Undoing:: How to make your functions undoable. - * Redisplay:: Functions to control line display. - * Modifying Text:: Functions to modify @code{rl_line_buffer}. - * Character Input:: Functions to read keyboard input. - * Terminal Management:: Functions to manage terminal settings. - * Utility Functions:: Generally useful functions and hooks. - * Miscellaneous Functions:: Functions that don't fall into any category. - * Alternate Interface:: Using Readline in a `callback' fashion. - * A Readline Example:: An example Readline function. - @end menu - - @node Function Naming - @subsection Naming a Function - - The user can dynamically change the bindings of keys while using - Readline. This is done by representing the function with a descriptive - name. The user is able to type the descriptive name when referring to - the function. Thus, in an init file, one might find - - @example - Meta-Rubout: backward-kill-word - @end example - - This binds the keystroke @key{Meta-Rubout} to the function - @emph{descriptively} named @code{backward-kill-word}. You, as the - programmer, should bind the functions you write to descriptive names as - well. Readline provides a function for doing that: - - @deftypefun int rl_add_defun (const char *name, rl_command_func_t *function, int key) - Add @var{name} to the list of named functions. Make @var{function} be - the function that gets called. If @var{key} is not -1, then bind it to - @var{function} using @code{rl_bind_key()}. - @end deftypefun - - Using this function alone is sufficient for most applications. It is - the recommended way to add a few functions to the default functions that - Readline has built in. If you need to do something other - than adding a function to Readline, you may need to use the - underlying functions described below. - - @node Keymaps - @subsection Selecting a Keymap - - Key bindings take place on a @dfn{keymap}. The keymap is the - association between the keys that the user types and the functions that - get run. You can make your own keymaps, copy existing keymaps, and tell - Readline which keymap to use. - - @deftypefun Keymap rl_make_bare_keymap (void) - Returns a new, empty keymap. The space for the keymap is allocated with - @code{malloc()}; the caller should free it by calling - @code{rl_discard_keymap()} when done. - @end deftypefun - - @deftypefun Keymap rl_copy_keymap (Keymap map) - Return a new keymap which is a copy of @var{map}. - @end deftypefun - - @deftypefun Keymap rl_make_keymap (void) - Return a new keymap with the printing characters bound to rl_insert, - the lowercase Meta characters bound to run their equivalents, and - the Meta digits bound to produce numeric arguments. - @end deftypefun - - @deftypefun void rl_discard_keymap (Keymap keymap) - Free the storage associated with @var{keymap}. - @end deftypefun - - Readline has several internal keymaps. These functions allow you to - change which keymap is active. - - @deftypefun Keymap rl_get_keymap (void) - Returns the currently active keymap. - @end deftypefun - - @deftypefun void rl_set_keymap (Keymap keymap) - Makes @var{keymap} the currently active keymap. - @end deftypefun - - @deftypefun Keymap rl_get_keymap_by_name (const char *name) - Return the keymap matching @var{name}. @var{name} is one which would - be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}). - @end deftypefun - - @deftypefun {char *} rl_get_keymap_name (Keymap keymap) - Return the name matching @var{keymap}. @var{name} is one which would - be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}). - @end deftypefun - - @node Binding Keys - @subsection Binding Keys - - Key sequences are associate with functions through the keymap. - Readline has several internal keymaps: @code{emacs_standard_keymap}, - @code{emacs_meta_keymap}, @code{emacs_ctlx_keymap}, - @code{vi_movement_keymap}, and @code{vi_insertion_keymap}. - @code{emacs_standard_keymap} is the default, and the examples in - this manual assume that. - - Since @code{readline()} installs a set of default key bindings the first - time it is called, there is always the danger that a custom binding - installed before the first call to @code{readline()} will be overridden. - An alternate mechanism is to install custom key bindings in an - initialization function assigned to the @code{rl_startup_hook} variable - (@pxref{Readline Variables}). - - These functions manage key bindings. - - @deftypefun int rl_bind_key (int key, rl_command_func_t *function) - Binds @var{key} to @var{function} in the currently active keymap. - Returns non-zero in the case of an invalid @var{key}. - @end deftypefun - - @deftypefun int rl_bind_key_in_map (int key, rl_command_func_t *function, Keymap map) - Bind @var{key} to @var{function} in @var{map}. Returns non-zero in the case - of an invalid @var{key}. - @end deftypefun - - @deftypefun int rl_unbind_key (int key) - Bind @var{key} to the null function in the currently active keymap. - Returns non-zero in case of error. - @end deftypefun - - @deftypefun int rl_unbind_key_in_map (int key, Keymap map) - Bind @var{key} to the null function in @var{map}. - Returns non-zero in case of error. - @end deftypefun - - @deftypefun int rl_unbind_function_in_map (rl_command_func_t *function, Keymap map) - Unbind all keys that execute @var{function} in @var{map}. - @end deftypefun - - @deftypefun int rl_unbind_command_in_map (const char *command, Keymap map) - Unbind all keys that are bound to @var{command} in @var{map}. - @end deftypefun - - @deftypefun int rl_set_key (const char *keyseq, rl_command_func_t *function, Keymap map) - Bind the key sequence represented by the string @var{keyseq} to the function - @var{function}. This makes new keymaps as - necessary. The initial keymap in which to do bindings is @var{map}. - @end deftypefun - - @deftypefun int rl_generic_bind (int type, const char *keyseq, char *data, Keymap map) - Bind the key sequence represented by the string @var{keyseq} to the arbitrary - pointer @var{data}. @var{type} says what kind of data is pointed to by - @var{data}; this can be a function (@code{ISFUNC}), a macro - (@code{ISMACR}), or a keymap (@code{ISKMAP}). This makes new keymaps as - necessary. The initial keymap in which to do bindings is @var{map}. - @end deftypefun - - @deftypefun int rl_parse_and_bind (char *line) - Parse @var{line} as if it had been read from the @code{inputrc} file and - perform any key bindings and variable assignments found - (@pxref{Readline Init File}). - @end deftypefun - - @deftypefun int rl_read_init_file (const char *filename) - Read keybindings and variable assignments from @var{filename} - (@pxref{Readline Init File}). - @end deftypefun - - @node Associating Function Names and Bindings - @subsection Associating Function Names and Bindings - - These functions allow you to find out what keys invoke named functions - and the functions invoked by a particular key sequence. You may also - associate a new function name with an arbitrary function. - - @deftypefun {rl_command_func_t *} rl_named_function (const char *name) - Return the function with name @var{name}. - @end deftypefun - - @deftypefun {rl_command_func_t *} rl_function_of_keyseq (const char *keyseq, Keymap map, int *type) - Return the function invoked by @var{keyseq} in keymap @var{map}. - If @var{map} is @code{NULL}, the current keymap is used. If @var{type} is - not @code{NULL}, the type of the object is returned in the @code{int} variable - it points to (one of @code{ISFUNC}, @code{ISKMAP}, or @code{ISMACR}). - @end deftypefun - - @deftypefun {char **} rl_invoking_keyseqs (rl_command_func_t *function) - Return an array of strings representing the key sequences used to - invoke @var{function} in the current keymap. - @end deftypefun - - @deftypefun {char **} rl_invoking_keyseqs_in_map (rl_command_func_t *function, Keymap map) - Return an array of strings representing the key sequences used to - invoke @var{function} in the keymap @var{map}. - @end deftypefun - - @deftypefun void rl_function_dumper (int readable) - Print the readline function names and the key sequences currently - bound to them to @code{rl_outstream}. If @var{readable} is non-zero, - the list is formatted in such a way that it can be made part of an - @code{inputrc} file and re-read. - @end deftypefun - - @deftypefun void rl_list_funmap_names (void) - Print the names of all bindable Readline functions to @code{rl_outstream}. - @end deftypefun - - @deftypefun {const char **} rl_funmap_names (void) - Return a NULL terminated array of known function names. The array is - sorted. The array itself is allocated, but not the strings inside. You - should @code{free()} the array when you are done, but not the pointers. - @end deftypefun - - @deftypefun int rl_add_funmap_entry (const char *name, rl_command_func_t *function) - Add @var{name} to the list of bindable Readline command names, and make - @var{function} the function to be called when @var{name} is invoked. - @end deftypefun - - @node Allowing Undoing - @subsection Allowing Undoing - - Supporting the undo command is a painless thing, and makes your - functions much more useful. It is certainly easy to try - something if you know you can undo it. - - If your function simply inserts text once, or deletes text once, and - uses @code{rl_insert_text()} or @code{rl_delete_text()} to do it, then - undoing is already done for you automatically. - - If you do multiple insertions or multiple deletions, or any combination - of these operations, you should group them together into one operation. - This is done with @code{rl_begin_undo_group()} and - @code{rl_end_undo_group()}. - - The types of events that can be undone are: - - @smallexample - enum undo_code @{ UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END @}; - @end smallexample - - Notice that @code{UNDO_DELETE} means to insert some text, and - @code{UNDO_INSERT} means to delete some text. That is, the undo code - tells what to undo, not how to undo it. @code{UNDO_BEGIN} and - @code{UNDO_END} are tags added by @code{rl_begin_undo_group()} and - @code{rl_end_undo_group()}. - - @deftypefun int rl_begin_undo_group (void) - Begins saving undo information in a group construct. The undo - information usually comes from calls to @code{rl_insert_text()} and - @code{rl_delete_text()}, but could be the result of calls to - @code{rl_add_undo()}. - @end deftypefun - - @deftypefun int rl_end_undo_group (void) - Closes the current undo group started with @code{rl_begin_undo_group - ()}. There should be one call to @code{rl_end_undo_group()} - for each call to @code{rl_begin_undo_group()}. - @end deftypefun - - @deftypefun void rl_add_undo (enum undo_code what, int start, int end, char *text) - Remember how to undo an event (according to @var{what}). The affected - text runs from @var{start} to @var{end}, and encompasses @var{text}. - @end deftypefun - - @deftypefun void rl_free_undo_list (void) - Free the existing undo list. - @end deftypefun - - @deftypefun int rl_do_undo (void) - Undo the first thing on the undo list. Returns @code{0} if there was - nothing to undo, non-zero if something was undone. - @end deftypefun - - Finally, if you neither insert nor delete text, but directly modify the - existing text (e.g., change its case), call @code{rl_modifying()} - once, just before you modify the text. You must supply the indices of - the text range that you are going to modify. - - @deftypefun int rl_modifying (int start, int end) - Tell Readline to save the text between @var{start} and @var{end} as a - single undo unit. It is assumed that you will subsequently modify - that text. - @end deftypefun - - @node Redisplay - @subsection Redisplay - - @deftypefun void rl_redisplay (void) - Change what's displayed on the screen to reflect the current contents - of @code{rl_line_buffer}. - @end deftypefun - - @deftypefun int rl_forced_update_display (void) - Force the line to be updated and redisplayed, whether or not - Readline thinks the screen display is correct. - @end deftypefun - - @deftypefun int rl_on_new_line (void) - Tell the update functions that we have moved onto a new (empty) line, - usually after ouputting a newline. - @end deftypefun - - @deftypefun int rl_on_new_line_with_prompt (void) - Tell the update functions that we have moved onto a new line, with - @var{rl_prompt} already displayed. - This could be used by applications that want to output the prompt string - themselves, but still need Readline to know the prompt string length for - redisplay. - It should be used after setting @var{rl_already_prompted}. - @end deftypefun - - @deftypefun int rl_reset_line_state (void) - Reset the display state to a clean state and redisplay the current line - starting on a new line. - @end deftypefun - - @deftypefun int rl_crlf (void) - Move the cursor to the start of the next screen line. - @end deftypefun - - @deftypefun int rl_show_char (int c) - Display character @var{c} on @code{rl_outstream}. - If Readline has not been set to display meta characters directly, this - will convert meta characters to a meta-prefixed key sequence. - This is intended for use by applications which wish to do their own - redisplay. - @end deftypefun - - @deftypefun int rl_message (const char *, @dots{}) - The arguments are a format string as would be supplied to @code{printf}, - possibly containing conversion specifications such as @samp{%d}, and - any additional arguments necessary to satisfy the conversion specifications. - The resulting string is displayed in the @dfn{echo area}. The echo area - is also used to display numeric arguments and search strings. - @end deftypefun - - @deftypefun int rl_clear_message (void) - Clear the message in the echo area. - @end deftypefun - - @deftypefun void rl_save_prompt (void) - Save the local Readline prompt display state in preparation for - displaying a new message in the message area with @code{rl_message()}. - @end deftypefun - - @deftypefun void rl_restore_prompt (void) - Restore the local Readline prompt display state saved by the most - recent call to @code{rl_save_prompt}. - @end deftypefun - - @deftypefun int rl_expand_prompt (char *prompt) - Expand any special character sequences in @var{prompt} and set up the - local Readline prompt redisplay variables. - This function is called by @code{readline()}. It may also be called to - expand the primary prompt if the @code{rl_on_new_line_with_prompt()} - function or @code{rl_already_prompted} variable is used. - It returns the number of visible characters on the last line of the - (possibly multi-line) prompt. - @end deftypefun - - @deftypefun int rl_set_prompt (const char *prompt) - Make Readline use @var{prompt} for subsequent redisplay. This calls - @code{rl_expand_prompt()} to expand the prompt and sets @code{rl_prompt} - to the result. - @end deftypefun - - @node Modifying Text - @subsection Modifying Text - - @deftypefun int rl_insert_text (const char *text) - Insert @var{text} into the line at the current cursor position. - Returns the number of characters inserted. - @end deftypefun - - @deftypefun int rl_delete_text (int start, int end) - Delete the text between @var{start} and @var{end} in the current line. - Returns the number of characters deleted. - @end deftypefun - - @deftypefun {char *} rl_copy_text (int start, int end) - Return a copy of the text between @var{start} and @var{end} in - the current line. - @end deftypefun - - @deftypefun int rl_kill_text (int start, int end) - Copy the text between @var{start} and @var{end} in the current line - to the kill ring, appending or prepending to the last kill if the - last command was a kill command. The text is deleted. - If @var{start} is less than @var{end}, - the text is appended, otherwise prepended. If the last command was - not a kill, a new kill ring slot is used. - @end deftypefun - - @deftypefun int rl_push_macro_input (char *macro) - Cause @var{macro} to be inserted into the line, as if it had been invoked - by a key bound to a macro. Not especially useful; use - @code{rl_insert_text()} instead. - @end deftypefun - - @node Character Input - @subsection Character Input - - @deftypefun int rl_read_key (void) - Return the next character available from Readline's current input stream. - This handles input inserted into - the input stream via @var{rl_pending_input} (@pxref{Readline Variables}) - and @code{rl_stuff_char()}, macros, and characters read from the keyboard. - While waiting for input, this function will call any function assigned to - the @code{rl_event_hook} variable. - @end deftypefun - - @deftypefun int rl_getc (FILE *stream) - Return the next character available from @var{stream}, which is assumed to - be the keyboard. - @end deftypefun - - @deftypefun int rl_stuff_char (int c) - Insert @var{c} into the Readline input stream. It will be "read" - before Readline attempts to read characters from the terminal with - @code{rl_read_key()}. Up to 512 characters may be pushed back. - @code{rl_stuff_char} returns 1 if the character was successfully inserted; - 0 otherwise. - @end deftypefun - - @deftypefun int rl_execute_next (int c) - Make @var{c} be the next command to be executed when @code{rl_read_key()} - is called. This sets @var{rl_pending_input}. - @end deftypefun - - @deftypefun int rl_clear_pending_input (void) - Unset @var{rl_pending_input}, effectively negating the effect of any - previous call to @code{rl_execute_next()}. This works only if the - pending input has not already been read with @code{rl_read_key()}. - @end deftypefun - - @deftypefun int rl_set_keyboard_input_timeout (int u) - While waiting for keyboard input in @code{rl_read_key()}, Readline will - wait for @var{u} microseconds for input before calling any function - assigned to @code{rl_event_hook}. The default waiting period is - one-tenth of a second. Returns the old timeout value. - @end deftypefun - - @node Terminal Management - @subsection Terminal Management - - @deftypefun void rl_prep_terminal (int meta_flag) - Modify the terminal settings for Readline's use, so @code{readline()} - can read a single character at a time from the keyboard. - The @var{meta_flag} argument should be non-zero if Readline should - read eight-bit input. - @end deftypefun - - @deftypefun void rl_deprep_terminal (void) - Undo the effects of @code{rl_prep_terminal()}, leaving the terminal in - the state in which it was before the most recent call to - @code{rl_prep_terminal()}. - @end deftypefun - - @deftypefun void rl_tty_set_default_bindings (Keymap kmap) - Read the operating system's terminal editing characters (as would be displayed - by @code{stty}) to their Readline equivalents. The bindings are performed - in @var{kmap}. - @end deftypefun - - @deftypefun int rl_reset_terminal (const char *terminal_name) - Reinitialize Readline's idea of the terminal settings using - @var{terminal_name} as the terminal type (e.g., @code{vt100}). - If @var{terminal_name} is @code{NULL}, the value of the @code{TERM} - environment variable is used. - @end deftypefun - - @node Utility Functions - @subsection Utility Functions - - @deftypefun void rl_replace_line (const char *text, int clear_undo) - Replace the contents of @code{rl_line_buffer} with @var{text}. - The point and mark are preserved, if possible. - If @var{clear_undo} is non-zero, the undo list associated with the - current line is cleared. - @end deftypefun - - @deftypefun int rl_extend_line_buffer (int len) - Ensure that @code{rl_line_buffer} has enough space to hold @var{len} - characters, possibly reallocating it if necessary. - @end deftypefun - - @deftypefun int rl_initialize (void) - Initialize or re-initialize Readline's internal state. - It's not strictly necessary to call this; @code{readline()} calls it before - reading any input. - @end deftypefun - - @deftypefun int rl_ding (void) - Ring the terminal bell, obeying the setting of @code{bell-style}. - @end deftypefun - - @deftypefun int rl_alphabetic (int c) - Return 1 if @var{c} is an alphabetic character. - @end deftypefun - - @deftypefun void rl_display_match_list (char **matches, int len, int max) - A convenience function for displaying a list of strings in - columnar format on Readline's output stream. @code{matches} is the list - of strings, in argv format, such as a list of completion matches. - @code{len} is the number of strings in @code{matches}, and @code{max} - is the length of the longest string in @code{matches}. This function uses - the setting of @code{print-completions-horizontally} to select how the - matches are displayed (@pxref{Readline Init File Syntax}). - @end deftypefun - - The following are implemented as macros, defined in @code{chardefs.h}. - Applications should refrain from using them. - - @deftypefun int _rl_uppercase_p (int c) - Return 1 if @var{c} is an uppercase alphabetic character. - @end deftypefun - - @deftypefun int _rl_lowercase_p (int c) - Return 1 if @var{c} is a lowercase alphabetic character. - @end deftypefun - - @deftypefun int _rl_digit_p (int c) - Return 1 if @var{c} is a numeric character. - @end deftypefun - - @deftypefun int _rl_to_upper (int c) - If @var{c} is a lowercase alphabetic character, return the corresponding - uppercase character. - @end deftypefun - - @deftypefun int _rl_to_lower (int c) - If @var{c} is an uppercase alphabetic character, return the corresponding - lowercase character. - @end deftypefun - - @deftypefun int _rl_digit_value (int c) - If @var{c} is a number, return the value it represents. - @end deftypefun - - @node Miscellaneous Functions - @subsection Miscellaneous Functions - - @deftypefun int rl_macro_bind (const char *keyseq, const char *macro, Keymap map) - Bind the key sequence @var{keyseq} to invoke the macro @var{macro}. - The binding is performed in @var{map}. When @var{keyseq} is invoked, the - @var{macro} will be inserted into the line. This function is deprecated; - use @code{rl_generic_bind()} instead. - @end deftypefun - - @deftypefun void rl_macro_dumper (int readable) - Print the key sequences bound to macros and their values, using - the current keymap, to @code{rl_outstream}. - If @var{readable} is non-zero, the list is formatted in such a way - that it can be made part of an @code{inputrc} file and re-read. - @end deftypefun - - @deftypefun int rl_variable_bind (const char *variable, const char *value) - Make the Readline variable @var{variable} have @var{value}. - This behaves as if the readline command - @samp{set @var{variable} @var{value}} had been executed in an @code{inputrc} - file (@pxref{Readline Init File Syntax}). - @end deftypefun - - @deftypefun void rl_variable_dumper (int readable) - Print the readline variable names and their current values - to @code{rl_outstream}. - If @var{readable} is non-zero, the list is formatted in such a way - that it can be made part of an @code{inputrc} file and re-read. - @end deftypefun - - @deftypefun int rl_set_paren_blink_timeout (int u) - Set the time interval (in microseconds) that Readline waits when showing - a balancing character when @code{blink-matching-paren} has been enabled. - @end deftypefun - - @deftypefun {char *} rl_get_termcap (const char *cap) - Retrieve the string value of the termcap capability @var{cap}. - Readline fetches the termcap entry for the current terminal name and - uses those capabilities to move around the screen line and perform other - terminal-specific operations, like erasing a line. Readline does not - use all of a terminal's capabilities, and this function will return - values for only those capabilities Readline uses. - @end deftypefun - - @node Alternate Interface - @subsection Alternate Interface - - An alternate interface is available to plain @code{readline()}. Some - applications need to interleave keyboard I/O with file, device, or - window system I/O, typically by using a main loop to @code{select()} - on various file descriptors. To accomodate this need, readline can - also be invoked as a `callback' function from an event loop. There - are functions available to make this easy. - - @deftypefun void rl_callback_handler_install (const char *prompt, rl_vcpfunc_t *lhandler) - Set up the terminal for readline I/O and display the initial - expanded value of @var{prompt}. Save the value of @var{lhandler} to - use as a function to call when a complete line of input has been entered. - The function takes the text of the line as an argument. - @end deftypefun - - @deftypefun void rl_callback_read_char (void) - Whenever an application determines that keyboard input is available, it - should call @code{rl_callback_read_char()}, which will read the next - character from the current input source. - If that character completes the line, @code{rl_callback_read_char} will - invoke the @var{lhandler} function saved by @code{rl_callback_handler_install} - to process the line. - Before calling the @var{lhandler} function, the terminal settings are - reset to the values they had before calling - @code{rl_callback_handler_install}. - If the @var{lhandler} function returns, - the terminal settings are modified for Readline's use again. - @code{EOF} is indicated by calling @var{lhandler} with a - @code{NULL} line. - @end deftypefun - - @deftypefun void rl_callback_handler_remove (void) - Restore the terminal to its initial state and remove the line handler. - This may be called from within a callback as well as independently. - If the @var{lhandler} installed by @code{rl_callback_handler_install} - does not exit the program, either this function or the function referred - to by the value of @code{rl_deprep_term_function} should be called before - the program exits to reset the terminal settings. - @end deftypefun - - @node A Readline Example - @subsection A Readline Example - - Here is a function which changes lowercase characters to their uppercase - equivalents, and uppercase characters to lowercase. If - this function was bound to @samp{M-c}, then typing @samp{M-c} would - change the case of the character under point. Typing @samp{M-1 0 M-c} - would change the case of the following 10 characters, leaving the cursor on - the last character changed. - - @example - /* Invert the case of the COUNT following characters. */ - int - invert_case_line (count, key) - int count, key; - @{ - register int start, end, i; - - start = rl_point; - - if (rl_point >= rl_end) - return (0); - - if (count < 0) - @{ - direction = -1; - count = -count; - @} - else - direction = 1; - - /* Find the end of the range to modify. */ - end = start + (count * direction); - - /* Force it to be within range. */ - if (end > rl_end) - end = rl_end; - else if (end < 0) - end = 0; - - if (start == end) - return (0); - - if (start > end) - @{ - int temp = start; - start = end; - end = temp; - @} - - /* Tell readline that we are modifying the line, - so it will save the undo information. */ - rl_modifying (start, end); - - for (i = start; i != end; i++) - @{ - if (_rl_uppercase_p (rl_line_buffer[i])) - rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]); - else if (_rl_lowercase_p (rl_line_buffer[i])) - rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]); - @} - /* Move point to on top of the last character changed. */ - rl_point = (direction == 1) ? end - 1 : start; - return (0); - @} - @end example - - @node Readline Signal Handling - @section Readline Signal Handling - - Signals are asynchronous events sent to a process by the Unix kernel, - sometimes on behalf of another process. They are intended to indicate - exceptional events, like a user pressing the interrupt key on his terminal, - or a network connection being broken. There is a class of signals that can - be sent to the process currently reading input from the keyboard. Since - Readline changes the terminal attributes when it is called, it needs to - perform special processing when such a signal is received in order to - restore the terminal to a sane state, or provide application writers with - functions to do so manually. - - Readline contains an internal signal handler that is installed for a - number of signals (@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM}, - @code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}). - When one of these signals is received, the signal handler - will reset the terminal attributes to those that were in effect before - @code{readline()} was called, reset the signal handling to what it was - before @code{readline()} was called, and resend the signal to the calling - application. - If and when the calling application's signal handler returns, Readline - will reinitialize the terminal and continue to accept input. - When a @code{SIGINT} is received, the Readline signal handler performs - some additional work, which will cause any partially-entered line to be - aborted (see the description of @code{rl_free_line_state()} below). - - There is an additional Readline signal handler, for @code{SIGWINCH}, which - the kernel sends to a process whenever the terminal's size changes (for - example, if a user resizes an @code{xterm}). The Readline @code{SIGWINCH} - handler updates Readline's internal screen size information, and then calls - any @code{SIGWINCH} signal handler the calling application has installed. - Readline calls the application's @code{SIGWINCH} signal handler without - resetting the terminal to its original state. If the application's signal - handler does more than update its idea of the terminal size and return (for - example, a @code{longjmp} back to a main processing loop), it @emph{must} - call @code{rl_cleanup_after_signal()} (described below), to restore the - terminal state. - - Readline provides two variables that allow application writers to - control whether or not it will catch certain signals and act on them - when they are received. It is important that applications change the - values of these variables only when calling @code{readline()}, not in - a signal handler, so Readline's internal signal state is not corrupted. - - @deftypevar int rl_catch_signals - If this variable is non-zero, Readline will install signal handlers for - @code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM}, @code{SIGALRM}, - @code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}. - - The default value of @code{rl_catch_signals} is 1. - @end deftypevar - - @deftypevar int rl_catch_sigwinch - If this variable is non-zero, Readline will install a signal handler for - @code{SIGWINCH}. - - The default value of @code{rl_catch_sigwinch} is 1. - @end deftypevar - - If an application does not wish to have Readline catch any signals, or - to handle signals other than those Readline catches (@code{SIGHUP}, - for example), - Readline provides convenience functions to do the necessary terminal - and internal state cleanup upon receipt of a signal. - - @deftypefun void rl_cleanup_after_signal (void) - This function will reset the state of the terminal to what it was before - @code{readline()} was called, and remove the Readline signal handlers for - all signals, depending on the values of @code{rl_catch_signals} and - @code{rl_catch_sigwinch}. - @end deftypefun - - @deftypefun void rl_free_line_state (void) - This will free any partial state associated with the current input line - (undo information, any partial history entry, any partially-entered - keyboard macro, and any partially-entered numeric argument). This - should be called before @code{rl_cleanup_after_signal()}. The - Readline signal handler for @code{SIGINT} calls this to abort the - current input line. - @end deftypefun - - @deftypefun void rl_reset_after_signal (void) - This will reinitialize the terminal and reinstall any Readline signal - handlers, depending on the values of @code{rl_catch_signals} and - @code{rl_catch_sigwinch}. - @end deftypefun - - If an application does not wish Readline to catch @code{SIGWINCH}, it may - call @code{rl_resize_terminal()} or @code{rl_set_screen_size()} to force - Readline to update its idea of the terminal size when a @code{SIGWINCH} - is received. - - @deftypefun void rl_resize_terminal (void) - Update Readline's internal screen size by reading values from the kernel. - @end deftypefun - - @deftypefun void rl_set_screen_size (int rows, int cols) - Set Readline's idea of the terminal size to @var{rows} rows and - @var{cols} columns. - @end deftypefun - - If an application does not want to install a @code{SIGWINCH} handler, but - is still interested in the screen dimensions, Readline's idea of the screen - size may be queried. - - @deftypefun void rl_get_screen_size (int *rows, int *cols) - Return Readline's idea of the terminal's size in the - variables pointed to by the arguments. - @end deftypefun - - The following functions install and remove Readline's signal handlers. - - @deftypefun int rl_set_signals (void) - Install Readline's signal handler for @code{SIGINT}, @code{SIGQUIT}, - @code{SIGTERM}, @code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN}, - @code{SIGTTOU}, and @code{SIGWINCH}, depending on the values of - @code{rl_catch_signals} and @code{rl_catch_sigwinch}. - @end deftypefun - - @deftypefun int rl_clear_signals (void) - Remove all of the Readline signal handlers installed by - @code{rl_set_signals()}. - @end deftypefun - - @node Custom Completers - @section Custom Completers - - Typically, a program that reads commands from the user has a way of - disambiguating commands and data. If your program is one of these, then - it can provide completion for commands, data, or both. - The following sections describe how your program and Readline - cooperate to provide this service. - - @menu - * How Completing Works:: The logic used to do completion. - * Completion Functions:: Functions provided by Readline. - * Completion Variables:: Variables which control completion. - * A Short Completion Example:: An example of writing completer subroutines. - @end menu - - @node How Completing Works - @subsection How Completing Works - - In order to complete some text, the full list of possible completions - must be available. That is, it is not possible to accurately - expand a partial word without knowing all of the possible words - which make sense in that context. The Readline library provides - the user interface to completion, and two of the most common - completion functions: filename and username. For completing other types - of text, you must write your own completion function. This section - describes exactly what such functions must do, and provides an example. - - There are three major functions used to perform completion: - - @enumerate - @item - The user-interface function @code{rl_complete()}. This function is - called with the same arguments as other bindable Readline functions: - @var{count} and @var{invoking_key}. - It isolates the word to be completed and calls - @code{rl_completion_matches()} to generate a list of possible completions. - It then either lists the possible completions, inserts the possible - completions, or actually performs the - completion, depending on which behavior is desired. - - @item - The internal function @code{rl_completion_matches()} uses an - application-supplied @dfn{generator} function to generate the list of - possible matches, and then returns the array of these matches. - The caller should place the address of its generator function in - @code{rl_completion_entry_function}. - - @item - The generator function is called repeatedly from - @code{rl_completion_matches()}, returning a string each time. The - arguments to the generator function are @var{text} and @var{state}. - @var{text} is the partial word to be completed. @var{state} is zero the - first time the function is called, allowing the generator to perform - any necessary initialization, and a positive non-zero integer for - each subsequent call. The generator function returns - @code{(char *)NULL} to inform @code{rl_completion_matches()} that there are - no more possibilities left. Usually the generator function computes the - list of possible completions when @var{state} is zero, and returns them - one at a time on subsequent calls. Each string the generator function - returns as a match must be allocated with @code{malloc()}; Readline - frees the strings when it has finished with them. - - @end enumerate - - @deftypefun int rl_complete (int ignore, int invoking_key) - Complete the word at or before point. You have supplied the function - that does the initial simple matching selection algorithm (see - @code{rl_completion_matches()}). The default is to do filename completion. - @end deftypefun - - @deftypevar {rl_compentry_func_t *} rl_completion_entry_function - This is a pointer to the generator function for - @code{rl_completion_matches()}. - If the value of @code{rl_completion_entry_function} is - @code{NULL} then the default filename generator - function, @code{rl_filename_completion_function()}, is used. - @end deftypevar - - @node Completion Functions - @subsection Completion Functions - - Here is the complete list of callable completion functions present in - Readline. - - @deftypefun int rl_complete_internal (int what_to_do) - Complete the word at or before point. @var{what_to_do} says what to do - with the completion. A value of @samp{?} means list the possible - completions. @samp{TAB} means do standard completion. @samp{*} means - insert all of the possible completions. @samp{!} means to display - all of the possible completions, if there is more than one, as well as - performing partial completion. - @end deftypefun - - @deftypefun int rl_complete (int ignore, int invoking_key) - Complete the word at or before point. You have supplied the function - that does the initial simple matching selection algorithm (see - @code{rl_completion_matches()} and @code{rl_completion_entry_function}). - The default is to do filename - completion. This calls @code{rl_complete_internal()} with an - argument depending on @var{invoking_key}. - @end deftypefun - - @deftypefun int rl_possible_completions (int count, int invoking_key) - List the possible completions. See description of @code{rl_complete - ()}. This calls @code{rl_complete_internal()} with an argument of - @samp{?}. - @end deftypefun - - @deftypefun int rl_insert_completions (int count, int invoking_key) - Insert the list of possible completions into the line, deleting the - partially-completed word. See description of @code{rl_complete()}. - This calls @code{rl_complete_internal()} with an argument of @samp{*}. - @end deftypefun - - @deftypefun int rl_completion_mode (rl_command_func_t *cfunc) - Returns the apppriate value to pass to @code{rl_complete_internal()} - depending on whether @var{cfunc} was called twice in succession and - the value of the @code{show-all-if-ambiguous} variable. - Application-specific completion functions may use this function to present - the same interface as @code{rl_complete()}. - @end deftypefun - - @deftypefun {char **} rl_completion_matches (const char *text, rl_compentry_func_t *entry_func) - Returns an array of strings which is a list of completions for - @var{text}. If there are no completions, returns @code{NULL}. - The first entry in the returned array is the substitution for @var{text}. - The remaining entries are the possible completions. The array is - terminated with a @code{NULL} pointer. - - @var{entry_func} is a function of two args, and returns a - @code{char *}. The first argument is @var{text}. The second is a - state argument; it is zero on the first call, and non-zero on subsequent - calls. @var{entry_func} returns a @code{NULL} pointer to the caller - when there are no more matches. - @end deftypefun - - @deftypefun {char *} rl_filename_completion_function (const char *text, int state) - A generator function for filename completion in the general case. - @var{text} is a partial filename. - The Bash source is a useful reference for writing custom - completion functions (the Bash completion functions call this and other - Readline functions). - @end deftypefun - - @deftypefun {char *} rl_username_completion_function (const char *text, int state) - A completion generator for usernames. @var{text} contains a partial - username preceded by a random character (usually @samp{~}). As with all - completion generators, @var{state} is zero on the first call and non-zero - for subsequent calls. - @end deftypefun - - @node Completion Variables - @subsection Completion Variables - - @deftypevar {rl_compentry_func_t *} rl_completion_entry_function - A pointer to the generator function for @code{rl_completion_matches()}. - @code{NULL} means to use @code{rl_filename_completion_function()}, the default - filename completer. - @end deftypevar - - @deftypevar {rl_completion_func_t *} rl_attempted_completion_function - A pointer to an alternative function to create matches. - The function is called with @var{text}, @var{start}, and @var{end}. - @var{start} and @var{end} are indices in @code{rl_line_buffer} defining - the boundaries of @var{text}, which is a character string. - If this function exists and returns @code{NULL}, or if this variable is - set to @code{NULL}, then @code{rl_complete()} will call the value of - @code{rl_completion_entry_function} to generate matches, otherwise the - array of strings returned will be used. - If this function sets the @code{rl_attempted_completion_over} - variable to a non-zero value, Readline will not perform its default - completion even if this function returns no matches. - @end deftypevar - - @deftypevar {rl_quote_func_t *} rl_filename_quoting_function - A pointer to a function that will quote a filename in an - application-specific fashion. This is called if filename completion is being - attempted and one of the characters in @code{rl_filename_quote_characters} - appears in a completed filename. The function is called with - @var{text}, @var{match_type}, and @var{quote_pointer}. The @var{text} - is the filename to be quoted. The @var{match_type} is either - @code{SINGLE_MATCH}, if there is only one completion match, or - @code{MULT_MATCH}. Some functions use this to decide whether or not to - insert a closing quote character. The @var{quote_pointer} is a pointer - to any opening quote character the user typed. Some functions choose - to reset this character. - @end deftypevar - - @deftypevar {rl_dequote_func_t *} rl_filename_dequoting_function - A pointer to a function that will remove application-specific quoting - characters from a filename before completion is attempted, so those - characters do not interfere with matching the text against names in - the filesystem. It is called with @var{text}, the text of the word - to be dequoted, and @var{quote_char}, which is the quoting character - that delimits the filename (usually @samp{'} or @samp{"}). If - @var{quote_char} is zero, the filename was not in an embedded string. - @end deftypevar - - @deftypevar {rl_linebuf_func_t *} rl_char_is_quoted_p - A pointer to a function to call that determines whether or not a specific - character in the line buffer is quoted, according to whatever quoting - mechanism the program calling Readline uses. The function is called with - two arguments: @var{text}, the text of the line, and @var{index}, the - index of the character in the line. It is used to decide whether a - character found in @code{rl_completer_word_break_characters} should be - used to break words for the completer. - @end deftypevar - - @deftypevar {rl_compignore_func_t *} rl_ignore_some_completions_function - This function, if defined, is called by the completer when real filename - completion is done, after all the matching names have been generated. - It is passed a @code{NULL} terminated array of matches. - The first element (@code{matches[0]}) is the - maximal substring common to all matches. This function can - re-arrange the list of matches as required, but each element deleted - from the array must be freed. - @end deftypevar - - @deftypevar {rl_icppfunc_t *} rl_directory_completion_hook - This function, if defined, is allowed to modify the directory portion - of filenames Readline completes. It is called with the address of a - string (the current directory name) as an argument, and may modify that string. - If the string is replaced with a new string, the old value should be freed. - Any modified directory name should have a trailing slash. - The modified value will be displayed as part of the completion, replacing - the directory portion of the pathname the user typed. - It returns an integer that should be non-zero if the function modifies - its directory argument. - It could be used to expand symbolic links or shell variables in pathnames. - @end deftypevar - - @deftypevar {rl_compdisp_func_t *} rl_completion_display_matches_hook - If non-zero, then this is the address of a function to call when - completing a word would normally display the list of possible matches. - This function is called in lieu of Readline displaying the list. - It takes three arguments: - (@code{char **}@var{matches}, @code{int} @var{num_matches}, @code{int} @var{max_length}) - where @var{matches} is the array of matching strings, - @var{num_matches} is the number of strings in that array, and - @var{max_length} is the length of the longest string in that array. - Readline provides a convenience function, @code{rl_display_match_list}, - that takes care of doing the display to Readline's output stream. That - function may be called from this hook. - @end deftypevar - - @deftypevar {const char *} rl_basic_word_break_characters - The basic list of characters that signal a break between words for the - completer routine. The default value of this variable is the characters - which break words for completion in Bash: - @code{" \t\n\"\\'`@@$><=;|&@{("}. - @end deftypevar - - @deftypevar {const char *} rl_basic_quote_characters - A list of quote characters which can cause a word break. - @end deftypevar - - @deftypevar {const char *} rl_completer_word_break_characters - The list of characters that signal a break between words for - @code{rl_complete_internal()}. The default list is the value of - @code{rl_basic_word_break_characters}. - @end deftypevar - - @deftypevar {const char *} rl_completer_quote_characters - A list of characters which can be used to quote a substring of the line. - Completion occurs on the entire substring, and within the substring - @code{rl_completer_word_break_characters} are treated as any other character, - unless they also appear within this list. - @end deftypevar - - @deftypevar {const char *} rl_filename_quote_characters - A list of characters that cause a filename to be quoted by the completer - when they appear in a completed filename. The default is the null string. - @end deftypevar - - @deftypevar {const char *} rl_special_prefixes - The list of characters that are word break characters, but should be - left in @var{text} when it is passed to the completion function. - Programs can use this to help determine what kind of completing to do. - For instance, Bash sets this variable to "$@@" so that it can complete - shell variables and hostnames. - @end deftypevar - - @deftypevar int rl_completion_query_items - Up to this many items will be displayed in response to a - possible-completions call. After that, we ask the user if she is sure - she wants to see them all. The default value is 100. - @end deftypevar - - @deftypevar {int} rl_completion_append_character - When a single completion alternative matches at the end of the command - line, this character is appended to the inserted completion text. The - default is a space character (@samp{ }). Setting this to the null - character (@samp{\0}) prevents anything being appended automatically. - This can be changed in custom completion functions to - provide the ``most sensible word separator character'' according to - an application-specific command line syntax specification. - @end deftypevar - - @deftypevar int rl_completion_suppress_append - If non-zero, @var{rl_completion_append_character} is not appended to - matches at the end of the command line, as described above. It is - set to 0 before any application-specific completion function is called. - @end deftypevar - - @deftypevar int rl_completion_mark_symlink_dirs - If non-zero, a slash will be appended to completed filenames that are - symbolic links to directory names, subject to the value of the - user-settable @var{mark-directories} variable. - This variable exists so that application completion functions can - override the user's global preference (set via the - @var{mark-symlinked-directories} Readline variable) if appropriate. - This variable is set to the user's preference before any - application completion function is called, so unless that function - modifies the value, the user's preferences are honored. - @end deftypevar - - @deftypevar int rl_ignore_completion_duplicates - If non-zero, then duplicates in the matches are removed. - The default is 1. - @end deftypevar - - @deftypevar int rl_filename_completion_desired - Non-zero means that the results of the matches are to be treated as - filenames. This is @emph{always} zero on entry, and can only be changed - within a completion entry generator function. If it is set to a non-zero - value, directory names have a slash appended and Readline attempts to - quote completed filenames if they contain any characters in - @code{rl_filename_quote_characters} and @code{rl_filename_quoting_desired} - is set to a non-zero value. - @end deftypevar - - @deftypevar int rl_filename_quoting_desired - Non-zero means that the results of the matches are to be quoted using - double quotes (or an application-specific quoting mechanism) if the - completed filename contains any characters in - @code{rl_filename_quote_chars}. This is @emph{always} non-zero - on entry, and can only be changed within a completion entry generator - function. The quoting is effected via a call to the function pointed to - by @code{rl_filename_quoting_function}. - @end deftypevar - - @deftypevar int rl_attempted_completion_over - If an application-specific completion function assigned to - @code{rl_attempted_completion_function} sets this variable to a non-zero - value, Readline will not perform its default filename completion even - if the application's completion function returns no matches. - It should be set only by an application's completion function. - @end deftypevar - - @deftypevar int rl_completion_type - Set to a character describing the type of completion Readline is currently - attempting; see the description of @code{rl_complete_internal()} - (@pxref{Completion Functions}) for the list of characters. - @end deftypevar - - @deftypevar int rl_inhibit_completion - If this variable is non-zero, completion is inhibited. The completion - character will be inserted as any other bound to @code{self-insert}. - @end deftypevar - - @node A Short Completion Example - @subsection A Short Completion Example - - Here is a small application demonstrating the use of the GNU Readline - library. It is called @code{fileman}, and the source code resides in - @file{examples/fileman.c}. This sample application provides - completion of command names, line editing features, and access to the - history list. - - @page - @smallexample - /* fileman.c -- A tiny application which demonstrates how to use the - GNU Readline library. This application interactively allows users - to manipulate files and their modes. */ - - #include - #include - #include - #include - #include - - #include - #include - - extern char *xmalloc (); - - /* The names of functions that actually do the manipulation. */ - int com_list __P((char *)); - int com_view __P((char *)); - int com_rename __P((char *)); - int com_stat __P((char *)); - int com_pwd __P((char *)); - int com_delete __P((char *)); - int com_help __P((char *)); - int com_cd __P((char *)); - int com_quit __P((char *)); - - /* A structure which contains information on the commands this program - can understand. */ - - typedef struct @{ - char *name; /* User printable name of the function. */ - rl_icpfunc_t *func; /* Function to call to do the job. */ - char *doc; /* Documentation for this function. */ - @} COMMAND; - - COMMAND commands[] = @{ - @{ "cd", com_cd, "Change to directory DIR" @}, - @{ "delete", com_delete, "Delete FILE" @}, - @{ "help", com_help, "Display this text" @}, - @{ "?", com_help, "Synonym for `help'" @}, - @{ "list", com_list, "List files in DIR" @}, - @{ "ls", com_list, "Synonym for `list'" @}, - @{ "pwd", com_pwd, "Print the current working directory" @}, - @{ "quit", com_quit, "Quit using Fileman" @}, - @{ "rename", com_rename, "Rename FILE to NEWNAME" @}, - @{ "stat", com_stat, "Print out statistics on FILE" @}, - @{ "view", com_view, "View the contents of FILE" @}, - @{ (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL @} - @}; - - /* Forward declarations. */ - char *stripwhite (); - COMMAND *find_command (); - - /* The name of this program, as taken from argv[0]. */ - char *progname; - - /* When non-zero, this means the user is done using this program. */ - int done; - - char * - dupstr (s) - int s; - @{ - char *r; - - r = xmalloc (strlen (s) + 1); - strcpy (r, s); - return (r); - @} - - main (argc, argv) - int argc; - char **argv; - @{ - char *line, *s; - - progname = argv[0]; - - initialize_readline (); /* Bind our completer. */ - - /* Loop reading and executing lines until the user quits. */ - for ( ; done == 0; ) - @{ - line = readline ("FileMan: "); - - if (!line) - break; - - /* Remove leading and trailing whitespace from the line. - Then, if there is anything left, add it to the history list - and execute it. */ - s = stripwhite (line); - - if (*s) - @{ - add_history (s); - execute_line (s); - @} - - free (line); - @} - exit (0); - @} - - /* Execute a command line. */ - int - execute_line (line) - char *line; - @{ - register int i; - COMMAND *command; - char *word; - - /* Isolate the command word. */ - i = 0; - while (line[i] && whitespace (line[i])) - i++; - word = line + i; - - while (line[i] && !whitespace (line[i])) - i++; - - if (line[i]) - line[i++] = '\0'; - - command = find_command (word); - - if (!command) - @{ - fprintf (stderr, "%s: No such command for FileMan.\n", word); - return (-1); - @} - - /* Get argument to command, if any. */ - while (whitespace (line[i])) - i++; - - word = line + i; - - /* Call the function. */ - return ((*(command->func)) (word)); - @} - - /* Look up NAME as the name of a command, and return a pointer to that - command. Return a NULL pointer if NAME isn't a command name. */ - COMMAND * - find_command (name) - char *name; - @{ - register int i; - - for (i = 0; commands[i].name; i++) - if (strcmp (name, commands[i].name) == 0) - return (&commands[i]); - - return ((COMMAND *)NULL); - @} - - /* Strip whitespace from the start and end of STRING. Return a pointer - into STRING. */ - char * - stripwhite (string) - char *string; - @{ - register char *s, *t; - - for (s = string; whitespace (*s); s++) - ; - - if (*s == 0) - return (s); - - t = s + strlen (s) - 1; - while (t > s && whitespace (*t)) - t--; - *++t = '\0'; - - return s; - @} - - /* **************************************************************** */ - /* */ - /* Interface to Readline Completion */ - /* */ - /* **************************************************************** */ - - char *command_generator __P((const char *, int)); - char **fileman_completion __P((const char *, int, int)); - - /* Tell the GNU Readline library how to complete. We want to try to - complete on command names if this is the first word in the line, or - on filenames if not. */ - initialize_readline () - @{ - /* Allow conditional parsing of the ~/.inputrc file. */ - rl_readline_name = "FileMan"; - - /* Tell the completer that we want a crack first. */ - rl_attempted_completion_function = fileman_completion; - @} - - /* Attempt to complete on the contents of TEXT. START and END - bound the region of rl_line_buffer that contains the word to - complete. TEXT is the word to complete. We can use the entire - contents of rl_line_buffer in case we want to do some simple - parsing. Returnthe array of matches, or NULL if there aren't any. */ - char ** - fileman_completion (text, start, end) - const char *text; - int start, end; - @{ - char **matches; - - matches = (char **)NULL; - - /* If this word is at the start of the line, then it is a command - to complete. Otherwise it is the name of a file in the current - directory. */ - if (start == 0) - matches = rl_completion_matches (text, command_generator); - - return (matches); - @} - - /* Generator function for command completion. STATE lets us - know whether to start from scratch; without any state - (i.e. STATE == 0), then we start at the top of the list. */ - char * - command_generator (text, state) - const char *text; - int state; - @{ - static int list_index, len; - char *name; - - /* If this is a new word to complete, initialize now. This - includes saving the length of TEXT for efficiency, and - initializing the index variable to 0. */ - if (!state) - @{ - list_index = 0; - len = strlen (text); - @} - - /* Return the next name which partially matches from the - command list. */ - while (name = commands[list_index].name) - @{ - list_index++; - - if (strncmp (name, text, len) == 0) - return (dupstr(name)); - @} - - /* If no names matched, then return NULL. */ - return ((char *)NULL); - @} - - /* **************************************************************** */ - /* */ - /* FileMan Commands */ - /* */ - /* **************************************************************** */ - - /* String to pass to system (). This is for the LIST, VIEW and RENAME - commands. */ - static char syscom[1024]; - - /* List the file(s) named in arg. */ - com_list (arg) - char *arg; - @{ - if (!arg) - arg = ""; - - sprintf (syscom, "ls -FClg %s", arg); - return (system (syscom)); - @} - - com_view (arg) - char *arg; - @{ - if (!valid_argument ("view", arg)) - return 1; - - sprintf (syscom, "more %s", arg); - return (system (syscom)); - @} - - com_rename (arg) - char *arg; - @{ - too_dangerous ("rename"); - return (1); - @} - - com_stat (arg) - char *arg; - @{ - struct stat finfo; - - if (!valid_argument ("stat", arg)) - return (1); - - if (stat (arg, &finfo) == -1) - @{ - perror (arg); - return (1); - @} - - printf ("Statistics for `%s':\n", arg); - - printf ("%s has %d link%s, and is %d byte%s in length.\n", arg, - finfo.st_nlink, - (finfo.st_nlink == 1) ? "" : "s", - finfo.st_size, - (finfo.st_size == 1) ? "" : "s"); - printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime)); - printf (" Last access at: %s", ctime (&finfo.st_atime)); - printf (" Last modified at: %s", ctime (&finfo.st_mtime)); - return (0); - @} - - com_delete (arg) - char *arg; - @{ - too_dangerous ("delete"); - return (1); - @} - - /* Print out help for ARG, or for all of the commands if ARG is - not present. */ - com_help (arg) - char *arg; - @{ - register int i; - int printed = 0; - - for (i = 0; commands[i].name; i++) - @{ - if (!*arg || (strcmp (arg, commands[i].name) == 0)) - @{ - printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc); - printed++; - @} - @} - - if (!printed) - @{ - printf ("No commands match `%s'. Possibilties are:\n", arg); - - for (i = 0; commands[i].name; i++) - @{ - /* Print in six columns. */ - if (printed == 6) - @{ - printed = 0; - printf ("\n"); - @} - - printf ("%s\t", commands[i].name); - printed++; - @} - - if (printed) - printf ("\n"); - @} - return (0); - @} - - /* Change to the directory ARG. */ - com_cd (arg) - char *arg; - @{ - if (chdir (arg) == -1) - @{ - perror (arg); - return 1; - @} - - com_pwd (""); - return (0); - @} - - /* Print out the current working directory. */ - com_pwd (ignore) - char *ignore; - @{ - char dir[1024], *s; - - s = getcwd (dir, sizeof(dir) - 1); - if (s == 0) - @{ - printf ("Error getting pwd: %s\n", dir); - return 1; - @} - - printf ("Current directory is %s\n", dir); - return 0; - @} - - /* The user wishes to quit using this program. Just set DONE - non-zero. */ - com_quit (arg) - char *arg; - @{ - done = 1; - return (0); - @} - - /* Function which tells you that you can't do this. */ - too_dangerous (caller) - char *caller; - @{ - fprintf (stderr, - "%s: Too dangerous for me to distribute.\n" - caller); - fprintf (stderr, "Write it yourself.\n"); - @} - - /* Return non-zero if ARG is a valid argument for CALLER, - else print an error message and return zero. */ - int - valid_argument (caller, arg) - char *caller, *arg; - @{ - if (!arg || !*arg) - @{ - fprintf (stderr, "%s: Argument required.\n", caller); - return (0); - @} - - return (1); - @} - @end smallexample --- 0 ---- diff -aNrc2 readline-4.3-patched/doc/rluser.texi readline-5.0/doc/rluser.texi *** readline-4.3-patched/doc/rluser.texi Wed Dec 31 19:00:00 1969 --- readline-5.0/doc/rluser.texi Sat Apr 24 14:46:33 2004 *************** *** 0 **** --- 1,1824 ---- + @comment %**start of header (This is for running Texinfo on a region.) + @setfilename rluser.info + @comment %**end of header (This is for running Texinfo on a region.) + @setchapternewpage odd + + @ignore + This file documents the end user interface to the GNU command line + editing features. It is to be an appendix to manuals for programs which + use these features. There is a document entitled "readline.texinfo" + which contains both end-user and programmer documentation for the + GNU Readline Library. + + Copyright (C) 1988-2004 Free Software Foundation, Inc. + + Authored by Brian Fox and Chet Ramey. + + Permission is granted to process this file through Tex and print the + results, provided the printed document carries copying permission notice + identical to this one except for the removal of this paragraph (this + paragraph not being relevant to the printed manual). + + Permission is granted to make and distribute verbatim copies of this manual + provided the copyright notice and this permission notice are preserved on + all copies. + + Permission is granted to copy and distribute modified versions of this + manual under the conditions for verbatim copying, provided also that the + GNU Copyright statement is available to the distributee, and provided that + the entire resulting derived work is distributed under the terms of a + permission notice identical to this one. + + Permission is granted to copy and distribute translations of this manual + into another language, under the above conditions for modified versions. + @end ignore + + @comment If you are including this manual as an appendix, then set the + @comment variable readline-appendix. + + @ifclear BashFeatures + @defcodeindex bt + @end ifclear + + @node Command Line Editing + @chapter Command Line Editing + + This chapter describes the basic features of the @sc{gnu} + command line editing interface. + @ifset BashFeatures + Command line editing is provided by the Readline library, which is + used by several different programs, including Bash. + @end ifset + + @menu + * Introduction and Notation:: Notation used in this text. + * Readline Interaction:: The minimum set of commands for editing a line. + * Readline Init File:: Customizing Readline from a user's view. + * Bindable Readline Commands:: A description of most of the Readline commands + available for binding + * Readline vi Mode:: A short description of how to make Readline + behave like the vi editor. + @ifset BashFeatures + * Programmable Completion:: How to specify the possible completions for + a specific command. + * Programmable Completion Builtins:: Builtin commands to specify how to + complete arguments for a particular command. + @end ifset + @end menu + + @node Introduction and Notation + @section Introduction to Line Editing + + The following paragraphs describe the notation used to represent + keystrokes. + + The text @kbd{C-k} is read as `Control-K' and describes the character + produced when the @key{k} key is pressed while the Control key + is depressed. + + The text @kbd{M-k} is read as `Meta-K' and describes the character + produced when the Meta key (if you have one) is depressed, and the @key{k} + key is pressed. + The Meta key is labeled @key{ALT} on many keyboards. + On keyboards with two keys labeled @key{ALT} (usually to either side of + the space bar), the @key{ALT} on the left side is generally set to + work as a Meta key. + The @key{ALT} key on the right may also be configured to work as a + Meta key or may be configured as some other modifier, such as a + Compose key for typing accented characters. + + If you do not have a Meta or @key{ALT} key, or another key working as + a Meta key, the identical keystroke can be generated by typing @key{ESC} + @emph{first}, and then typing @key{k}. + Either process is known as @dfn{metafying} the @key{k} key. + + The text @kbd{M-C-k} is read as `Meta-Control-k' and describes the + character produced by @dfn{metafying} @kbd{C-k}. + + In addition, several keys have their own names. Specifically, + @key{DEL}, @key{ESC}, @key{LFD}, @key{SPC}, @key{RET}, and @key{TAB} all + stand for themselves when seen in this text, or in an init file + (@pxref{Readline Init File}). + If your keyboard lacks a @key{LFD} key, typing @key{C-j} will + produce the desired character. + The @key{RET} key may be labeled @key{Return} or @key{Enter} on + some keyboards. + + @node Readline Interaction + @section Readline Interaction + @cindex interaction, readline + + Often during an interactive session you type in a long line of text, + only to notice that the first word on the line is misspelled. The + Readline library gives you a set of commands for manipulating the text + as you type it in, allowing you to just fix your typo, and not forcing + you to retype the majority of the line. Using these editing commands, + you move the cursor to the place that needs correction, and delete or + insert the text of the corrections. Then, when you are satisfied with + the line, you simply press @key{RET}. You do not have to be at the + end of the line to press @key{RET}; the entire line is accepted + regardless of the location of the cursor within the line. + + @menu + * Readline Bare Essentials:: The least you need to know about Readline. + * Readline Movement Commands:: Moving about the input line. + * Readline Killing Commands:: How to delete text, and how to get it back! + * Readline Arguments:: Giving numeric arguments to commands. + * Searching:: Searching through previous lines. + @end menu + + @node Readline Bare Essentials + @subsection Readline Bare Essentials + @cindex notation, readline + @cindex command editing + @cindex editing command lines + + In order to enter characters into the line, simply type them. The typed + character appears where the cursor was, and then the cursor moves one + space to the right. If you mistype a character, you can use your + erase character to back up and delete the mistyped character. + + Sometimes you may mistype a character, and + not notice the error until you have typed several other characters. In + that case, you can type @kbd{C-b} to move the cursor to the left, and then + correct your mistake. Afterwards, you can move the cursor to the right + with @kbd{C-f}. + + When you add text in the middle of a line, you will notice that characters + to the right of the cursor are `pushed over' to make room for the text + that you have inserted. Likewise, when you delete text behind the cursor, + characters to the right of the cursor are `pulled back' to fill in the + blank space created by the removal of the text. A list of the bare + essentials for editing the text of an input line follows. + + @table @asis + @item @kbd{C-b} + Move back one character. + @item @kbd{C-f} + Move forward one character. + @item @key{DEL} or @key{Backspace} + Delete the character to the left of the cursor. + @item @kbd{C-d} + Delete the character underneath the cursor. + @item @w{Printing characters} + Insert the character into the line at the cursor. + @item @kbd{C-_} or @kbd{C-x C-u} + Undo the last editing command. You can undo all the way back to an + empty line. + @end table + + @noindent + (Depending on your configuration, the @key{Backspace} key be set to + delete the character to the left of the cursor and the @key{DEL} key set + to delete the character underneath the cursor, like @kbd{C-d}, rather + than the character to the left of the cursor.) + + @node Readline Movement Commands + @subsection Readline Movement Commands + + + The above table describes the most basic keystrokes that you need + in order to do editing of the input line. For your convenience, many + other commands have been added in addition to @kbd{C-b}, @kbd{C-f}, + @kbd{C-d}, and @key{DEL}. Here are some commands for moving more rapidly + about the line. + + @table @kbd + @item C-a + Move to the start of the line. + @item C-e + Move to the end of the line. + @item M-f + Move forward a word, where a word is composed of letters and digits. + @item M-b + Move backward a word. + @item C-l + Clear the screen, reprinting the current line at the top. + @end table + + Notice how @kbd{C-f} moves forward a character, while @kbd{M-f} moves + forward a word. It is a loose convention that control keystrokes + operate on characters while meta keystrokes operate on words. + + @node Readline Killing Commands + @subsection Readline Killing Commands + + @cindex killing text + @cindex yanking text + + @dfn{Killing} text means to delete the text from the line, but to save + it away for later use, usually by @dfn{yanking} (re-inserting) + it back into the line. + (`Cut' and `paste' are more recent jargon for `kill' and `yank'.) + + If the description for a command says that it `kills' text, then you can + be sure that you can get the text back in a different (or the same) + place later. + + When you use a kill command, the text is saved in a @dfn{kill-ring}. + Any number of consecutive kills save all of the killed text together, so + that when you yank it back, you get it all. The kill + ring is not line specific; the text that you killed on a previously + typed line is available to be yanked back later, when you are typing + another line. + @cindex kill ring + + Here is the list of commands for killing text. + + @table @kbd + @item C-k + Kill the text from the current cursor position to the end of the line. + + @item M-d + Kill from the cursor to the end of the current word, or, if between + words, to the end of the next word. + Word boundaries are the same as those used by @kbd{M-f}. + + @item M-@key{DEL} + Kill from the cursor the start of the current word, or, if between + words, to the start of the previous word. + Word boundaries are the same as those used by @kbd{M-b}. + + @item C-w + Kill from the cursor to the previous whitespace. This is different than + @kbd{M-@key{DEL}} because the word boundaries differ. + + @end table + + Here is how to @dfn{yank} the text back into the line. Yanking + means to copy the most-recently-killed text from the kill buffer. + + @table @kbd + @item C-y + Yank the most recently killed text back into the buffer at the cursor. + + @item M-y + Rotate the kill-ring, and yank the new top. You can only do this if + the prior command is @kbd{C-y} or @kbd{M-y}. + @end table + + @node Readline Arguments + @subsection Readline Arguments + + You can pass numeric arguments to Readline commands. Sometimes the + argument acts as a repeat count, other times it is the @i{sign} of the + argument that is significant. If you pass a negative argument to a + command which normally acts in a forward direction, that command will + act in a backward direction. For example, to kill text back to the + start of the line, you might type @samp{M-- C-k}. + + The general way to pass numeric arguments to a command is to type meta + digits before the command. If the first `digit' typed is a minus + sign (@samp{-}), then the sign of the argument will be negative. Once + you have typed one meta digit to get the argument started, you can type + the remainder of the digits, and then the command. For example, to give + the @kbd{C-d} command an argument of 10, you could type @samp{M-1 0 C-d}, + which will delete the next ten characters on the input line. + + @node Searching + @subsection Searching for Commands in the History + + Readline provides commands for searching through the command history + @ifset BashFeatures + (@pxref{Bash History Facilities}) + @end ifset + for lines containing a specified string. + There are two search modes: @dfn{incremental} and @dfn{non-incremental}. + + Incremental searches begin before the user has finished typing the + search string. + As each character of the search string is typed, Readline displays + the next entry from the history matching the string typed so far. + An incremental search requires only as many characters as needed to + find the desired history entry. + To search backward in the history for a particular string, type + @kbd{C-r}. Typing @kbd{C-s} searches forward through the history. + The characters present in the value of the @code{isearch-terminators} variable + are used to terminate an incremental search. + If that variable has not been assigned a value, the @key{ESC} and + @kbd{C-J} characters will terminate an incremental search. + @kbd{C-g} will abort an incremental search and restore the original line. + When the search is terminated, the history entry containing the + search string becomes the current line. + + To find other matching entries in the history list, type @kbd{C-r} or + @kbd{C-s} as appropriate. + This will search backward or forward in the history for the next + entry matching the search string typed so far. + Any other key sequence bound to a Readline command will terminate + the search and execute that command. + For instance, a @key{RET} will terminate the search and accept + the line, thereby executing the command from the history list. + A movement command will terminate the search, make the last line found + the current line, and begin editing. + + Readline remembers the last incremental search string. If two + @kbd{C-r}s are typed without any intervening characters defining a new + search string, any remembered search string is used. + + Non-incremental searches read the entire search string before starting + to search for matching history lines. The search string may be + typed by the user or be part of the contents of the current line. + + @node Readline Init File + @section Readline Init File + @cindex initialization file, readline + + Although the Readline library comes with a set of Emacs-like + keybindings installed by default, it is possible to use a different set + of keybindings. + Any user can customize programs that use Readline by putting + commands in an @dfn{inputrc} file, conventionally in his home directory. + The name of this + @ifset BashFeatures + file is taken from the value of the shell variable @env{INPUTRC}. If + @end ifset + @ifclear BashFeatures + file is taken from the value of the environment variable @env{INPUTRC}. If + @end ifclear + that variable is unset, the default is @file{~/.inputrc}. + + When a program which uses the Readline library starts up, the + init file is read, and the key bindings are set. + + In addition, the @code{C-x C-r} command re-reads this init file, thus + incorporating any changes that you might have made to it. + + @menu + * Readline Init File Syntax:: Syntax for the commands in the inputrc file. + + * Conditional Init Constructs:: Conditional key bindings in the inputrc file. + + * Sample Init File:: An example inputrc file. + @end menu + + @node Readline Init File Syntax + @subsection Readline Init File Syntax + + There are only a few basic constructs allowed in the + Readline init file. Blank lines are ignored. + Lines beginning with a @samp{#} are comments. + Lines beginning with a @samp{$} indicate conditional + constructs (@pxref{Conditional Init Constructs}). Other lines + denote variable settings and key bindings. + + @table @asis + @item Variable Settings + You can modify the run-time behavior of Readline by + altering the values of variables in Readline + using the @code{set} command within the init file. + The syntax is simple: + + @example + set @var{variable} @var{value} + @end example + + @noindent + Here, for example, is how to + change from the default Emacs-like key binding to use + @code{vi} line editing commands: + + @example + set editing-mode vi + @end example + + Variable names and values, where appropriate, are recognized without regard + to case. + + @ifset BashFeatures + The @w{@code{bind -V}} command lists the current Readline variable names + and values. @xref{Bash Builtins}. + @end ifset + + A great deal of run-time behavior is changeable with the following + variables. + + @cindex variables, readline + @table @code + + @item bell-style + @vindex bell-style + Controls what happens when Readline wants to ring the terminal bell. + If set to @samp{none}, Readline never rings the bell. If set to + @samp{visible}, Readline uses a visible bell if one is available. + If set to @samp{audible} (the default), Readline attempts to ring + the terminal's bell. + + @item comment-begin + @vindex comment-begin + The string to insert at the beginning of the line when the + @code{insert-comment} command is executed. The default value + is @code{"#"}. + + @item completion-ignore-case + If set to @samp{on}, Readline performs filename matching and completion + in a case-insensitive fashion. + The default value is @samp{off}. + + @item completion-query-items + @vindex completion-query-items + The number of possible completions that determines when the user is + asked whether the list of possibilities should be displayed. + If the number of possible completions is greater than this value, + Readline will ask the user whether or not he wishes to view + them; otherwise, they are simply listed. + This variable must be set to an integer value greater than or equal to 0. + The default limit is @code{100}. + + @item convert-meta + @vindex convert-meta + If set to @samp{on}, Readline will convert characters with the + eighth bit set to an @sc{ascii} key sequence by stripping the eighth + bit and prefixing an @key{ESC} character, converting them to a + meta-prefixed key sequence. The default value is @samp{on}. + + @item disable-completion + @vindex disable-completion + If set to @samp{On}, Readline will inhibit word completion. + Completion characters will be inserted into the line as if they had + been mapped to @code{self-insert}. The default is @samp{off}. + + @item editing-mode + @vindex editing-mode + The @code{editing-mode} variable controls which default set of + key bindings is used. By default, Readline starts up in Emacs editing + mode, where the keystrokes are most similar to Emacs. This variable can be + set to either @samp{emacs} or @samp{vi}. + + @item enable-keypad + @vindex enable-keypad + When set to @samp{on}, Readline will try to enable the application + keypad when it is called. Some systems need this to enable the + arrow keys. The default is @samp{off}. + + @item expand-tilde + @vindex expand-tilde + If set to @samp{on}, tilde expansion is performed when Readline + attempts word completion. The default is @samp{off}. + + @vindex history-preserve-point + If set to @samp{on}, the history code attempts to place point at the + same location on each history line retrieved with @code{previous-history} + or @code{next-history}. + + @item horizontal-scroll-mode + @vindex horizontal-scroll-mode + This variable can be set to either @samp{on} or @samp{off}. Setting it + to @samp{on} means that the text of the lines being edited will scroll + horizontally on a single screen line when they are longer than the width + of the screen, instead of wrapping onto a new screen line. By default, + this variable is set to @samp{off}. + + @item input-meta + @vindex input-meta + @vindex meta-flag + If set to @samp{on}, Readline will enable eight-bit input (it + will not clear the eighth bit in the characters it reads), + regardless of what the terminal claims it can support. The + default value is @samp{off}. The name @code{meta-flag} is a + synonym for this variable. + + @item isearch-terminators + @vindex isearch-terminators + The string of characters that should terminate an incremental search without + subsequently executing the character as a command (@pxref{Searching}). + If this variable has not been given a value, the characters @key{ESC} and + @kbd{C-J} will terminate an incremental search. + + @item keymap + @vindex keymap + Sets Readline's idea of the current keymap for key binding commands. + Acceptable @code{keymap} names are + @code{emacs}, + @code{emacs-standard}, + @code{emacs-meta}, + @code{emacs-ctlx}, + @code{vi}, + @code{vi-move}, + @code{vi-command}, and + @code{vi-insert}. + @code{vi} is equivalent to @code{vi-command}; @code{emacs} is + equivalent to @code{emacs-standard}. The default value is @code{emacs}. + The value of the @code{editing-mode} variable also affects the + default keymap. + + @item mark-directories + If set to @samp{on}, completed directory names have a slash + appended. The default is @samp{on}. + + @item mark-modified-lines + @vindex mark-modified-lines + This variable, when set to @samp{on}, causes Readline to display an + asterisk (@samp{*}) at the start of history lines which have been modified. + This variable is @samp{off} by default. + + @item mark-symlinked-directories + @vindex mark-symlinked-directories + If set to @samp{on}, completed names which are symbolic links + to directories have a slash appended (subject to the value of + @code{mark-directories}). + The default is @samp{off}. + + @item match-hidden-files + @vindex match-hidden-files + This variable, when set to @samp{on}, causes Readline to match files whose + names begin with a @samp{.} (hidden files) when performing filename + completion, unless the leading @samp{.} is + supplied by the user in the filename to be completed. + This variable is @samp{on} by default. + + @item output-meta + @vindex output-meta + If set to @samp{on}, Readline will display characters with the + eighth bit set directly rather than as a meta-prefixed escape + sequence. The default is @samp{off}. + + @item page-completions + @vindex page-completions + If set to @samp{on}, Readline uses an internal @code{more}-like pager + to display a screenful of possible completions at a time. + This variable is @samp{on} by default. + + @item print-completions-horizontally + If set to @samp{on}, Readline will display completions with matches + sorted horizontally in alphabetical order, rather than down the screen. + The default is @samp{off}. + + @item show-all-if-ambiguous + @vindex show-all-if-ambiguous + This alters the default behavior of the completion functions. If + set to @samp{on}, + words which have more than one possible completion cause the + matches to be listed immediately instead of ringing the bell. + The default value is @samp{off}. + + @item show-all-if-unmodified + @vindex show-all-if-unmodified + This alters the default behavior of the completion functions in + a fashion similar to @var{show-all-if-ambiguous}. + If set to @samp{on}, + words which have more than one possible completion without any + possible partial completion (the possible completions don't share + a common prefix) cause the matches to be listed immediately instead + of ringing the bell. + The default value is @samp{off}. + + @item visible-stats + @vindex visible-stats + If set to @samp{on}, a character denoting a file's type + is appended to the filename when listing possible + completions. The default is @samp{off}. + + @end table + + @item Key Bindings + The syntax for controlling key bindings in the init file is + simple. First you need to find the name of the command that you + want to change. The following sections contain tables of the command + name, the default keybinding, if any, and a short description of what + the command does. + + Once you know the name of the command, simply place on a line + in the init file the name of the key + you wish to bind the command to, a colon, and then the name of the + command. The name of the key + can be expressed in different ways, depending on what you find most + comfortable. + + In addition to command names, readline allows keys to be bound + to a string that is inserted when the key is pressed (a @var{macro}). + + @ifset BashFeatures + The @w{@code{bind -p}} command displays Readline function names and + bindings in a format that can put directly into an initialization file. + @xref{Bash Builtins}. + @end ifset + + @table @asis + @item @w{@var{keyname}: @var{function-name} or @var{macro}} + @var{keyname} is the name of a key spelled out in English. For example: + @example + Control-u: universal-argument + Meta-Rubout: backward-kill-word + Control-o: "> output" + @end example + + In the above example, @kbd{C-u} is bound to the function + @code{universal-argument}, + @kbd{M-DEL} is bound to the function @code{backward-kill-word}, and + @kbd{C-o} is bound to run the macro + expressed on the right hand side (that is, to insert the text + @samp{> output} into the line). + + A number of symbolic character names are recognized while + processing this key binding syntax: + @var{DEL}, + @var{ESC}, + @var{ESCAPE}, + @var{LFD}, + @var{NEWLINE}, + @var{RET}, + @var{RETURN}, + @var{RUBOUT}, + @var{SPACE}, + @var{SPC}, + and + @var{TAB}. + + @item @w{"@var{keyseq}": @var{function-name} or @var{macro}} + @var{keyseq} differs from @var{keyname} above in that strings + denoting an entire key sequence can be specified, by placing + the key sequence in double quotes. Some @sc{gnu} Emacs style key + escapes can be used, as in the following example, but the + special character names are not recognized. + + @example + "\C-u": universal-argument + "\C-x\C-r": re-read-init-file + "\e[11~": "Function Key 1" + @end example + + In the above example, @kbd{C-u} is again bound to the function + @code{universal-argument} (just as it was in the first example), + @samp{@kbd{C-x} @kbd{C-r}} is bound to the function @code{re-read-init-file}, + and @samp{@key{ESC} @key{[} @key{1} @key{1} @key{~}} is bound to insert + the text @samp{Function Key 1}. + + @end table + + The following @sc{gnu} Emacs style escape sequences are available when + specifying key sequences: + + @table @code + @item @kbd{\C-} + control prefix + @item @kbd{\M-} + meta prefix + @item @kbd{\e} + an escape character + @item @kbd{\\} + backslash + @item @kbd{\"} + @key{"}, a double quotation mark + @item @kbd{\'} + @key{'}, a single quote or apostrophe + @end table + + In addition to the @sc{gnu} Emacs style escape sequences, a second + set of backslash escapes is available: + + @table @code + @item \a + alert (bell) + @item \b + backspace + @item \d + delete + @item \f + form feed + @item \n + newline + @item \r + carriage return + @item \t + horizontal tab + @item \v + vertical tab + @item \@var{nnn} + the eight-bit character whose value is the octal value @var{nnn} + (one to three digits) + @item \x@var{HH} + the eight-bit character whose value is the hexadecimal value @var{HH} + (one or two hex digits) + @end table + + When entering the text of a macro, single or double quotes must + be used to indicate a macro definition. + Unquoted text is assumed to be a function name. + In the macro body, the backslash escapes described above are expanded. + Backslash will quote any other character in the macro text, + including @samp{"} and @samp{'}. + For example, the following binding will make @samp{@kbd{C-x} \} + insert a single @samp{\} into the line: + @example + "\C-x\\": "\\" + @end example + + @end table + + @node Conditional Init Constructs + @subsection Conditional Init Constructs + + Readline implements a facility similar in spirit to the conditional + compilation features of the C preprocessor which allows key + bindings and variable settings to be performed as the result + of tests. There are four parser directives used. + + @table @code + @item $if + The @code{$if} construct allows bindings to be made based on the + editing mode, the terminal being used, or the application using + Readline. The text of the test extends to the end of the line; + no characters are required to isolate it. + + @table @code + @item mode + The @code{mode=} form of the @code{$if} directive is used to test + whether Readline is in @code{emacs} or @code{vi} mode. + This may be used in conjunction + with the @samp{set keymap} command, for instance, to set bindings in + the @code{emacs-standard} and @code{emacs-ctlx} keymaps only if + Readline is starting out in @code{emacs} mode. + + @item term + The @code{term=} form may be used to include terminal-specific + key bindings, perhaps to bind the key sequences output by the + terminal's function keys. The word on the right side of the + @samp{=} is tested against both the full name of the terminal and + the portion of the terminal name before the first @samp{-}. This + allows @code{sun} to match both @code{sun} and @code{sun-cmd}, + for instance. + + @item application + The @var{application} construct is used to include + application-specific settings. Each program using the Readline + library sets the @var{application name}, and you can test for + a particular value. + This could be used to bind key sequences to functions useful for + a specific program. For instance, the following command adds a + key sequence that quotes the current or previous word in Bash: + @example + $if Bash + # Quote the current or previous word + "\C-xq": "\eb\"\ef\"" + $endif + @end example + @end table + + @item $endif + This command, as seen in the previous example, terminates an + @code{$if} command. + + @item $else + Commands in this branch of the @code{$if} directive are executed if + the test fails. + + @item $include + This directive takes a single filename as an argument and reads commands + and bindings from that file. + For example, the following directive reads from @file{/etc/inputrc}: + @example + $include /etc/inputrc + @end example + @end table + + @node Sample Init File + @subsection Sample Init File + + Here is an example of an @var{inputrc} file. This illustrates key + binding, variable assignment, and conditional syntax. + + @example + @page + # This file controls the behaviour of line input editing for + # programs that use the GNU Readline library. Existing + # programs include FTP, Bash, and GDB. + # + # You can re-read the inputrc file with C-x C-r. + # Lines beginning with '#' are comments. + # + # First, include any systemwide bindings and variable + # assignments from /etc/Inputrc + $include /etc/Inputrc + + # + # Set various bindings for emacs mode. + + set editing-mode emacs + + $if mode=emacs + + Meta-Control-h: backward-kill-word Text after the function name is ignored + + # + # Arrow keys in keypad mode + # + #"\M-OD": backward-char + #"\M-OC": forward-char + #"\M-OA": previous-history + #"\M-OB": next-history + # + # Arrow keys in ANSI mode + # + "\M-[D": backward-char + "\M-[C": forward-char + "\M-[A": previous-history + "\M-[B": next-history + # + # Arrow keys in 8 bit keypad mode + # + #"\M-\C-OD": backward-char + #"\M-\C-OC": forward-char + #"\M-\C-OA": previous-history + #"\M-\C-OB": next-history + # + # Arrow keys in 8 bit ANSI mode + # + #"\M-\C-[D": backward-char + #"\M-\C-[C": forward-char + #"\M-\C-[A": previous-history + #"\M-\C-[B": next-history + + C-q: quoted-insert + + $endif + + # An old-style binding. This happens to be the default. + TAB: complete + + # Macros that are convenient for shell interaction + $if Bash + # edit the path + "\C-xp": "PATH=$@{PATH@}\e\C-e\C-a\ef\C-f" + # prepare to type a quoted word -- + # insert open and close double quotes + # and move to just after the open quote + "\C-x\"": "\"\"\C-b" + # insert a backslash (testing backslash escapes + # in sequences and macros) + "\C-x\\": "\\" + # Quote the current or previous word + "\C-xq": "\eb\"\ef\"" + # Add a binding to refresh the line, which is unbound + "\C-xr": redraw-current-line + # Edit variable on current line. + "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y=" + $endif + + # use a visible bell if one is available + set bell-style visible + + # don't strip characters to 7 bits when reading + set input-meta on + + # allow iso-latin1 characters to be inserted rather + # than converted to prefix-meta sequences + set convert-meta off + + # display characters with the eighth bit set directly + # rather than as meta-prefixed characters + set output-meta on + + # if there are more than 150 possible completions for + # a word, ask the user if he wants to see all of them + set completion-query-items 150 + + # For FTP + $if Ftp + "\C-xg": "get \M-?" + "\C-xt": "put \M-?" + "\M-.": yank-last-arg + $endif + @end example + + @node Bindable Readline Commands + @section Bindable Readline Commands + + @menu + * Commands For Moving:: Moving about the line. + * Commands For History:: Getting at previous lines. + * Commands For Text:: Commands for changing text. + * Commands For Killing:: Commands for killing and yanking. + * Numeric Arguments:: Specifying numeric arguments, repeat counts. + * Commands For Completion:: Getting Readline to do the typing for you. + * Keyboard Macros:: Saving and re-executing typed characters + * Miscellaneous Commands:: Other miscellaneous commands. + @end menu + + This section describes Readline commands that may be bound to key + sequences. + @ifset BashFeatures + You can list your key bindings by executing + @w{@code{bind -P}} or, for a more terse format, suitable for an + @var{inputrc} file, @w{@code{bind -p}}. (@xref{Bash Builtins}.) + @end ifset + Command names without an accompanying key sequence are unbound by default. + + In the following descriptions, @dfn{point} refers to the current cursor + position, and @dfn{mark} refers to a cursor position saved by the + @code{set-mark} command. + The text between the point and mark is referred to as the @dfn{region}. + + @node Commands For Moving + @subsection Commands For Moving + @ftable @code + @item beginning-of-line (C-a) + Move to the start of the current line. + + @item end-of-line (C-e) + Move to the end of the line. + + @item forward-char (C-f) + Move forward a character. + + @item backward-char (C-b) + Move back a character. + + @item forward-word (M-f) + Move forward to the end of the next word. Words are composed of + letters and digits. + + @item backward-word (M-b) + Move back to the start of the current or previous word. Words are + composed of letters and digits. + + @item clear-screen (C-l) + Clear the screen and redraw the current line, + leaving the current line at the top of the screen. + + @item redraw-current-line () + Refresh the current line. By default, this is unbound. + + @end ftable + + @node Commands For History + @subsection Commands For Manipulating The History + + @ftable @code + @item accept-line (Newline or Return) + @ifset BashFeatures + Accept the line regardless of where the cursor is. + If this line is + non-empty, add it to the history list according to the setting of + the @env{HISTCONTROL} and @env{HISTIGNORE} variables. + If this line is a modified history line, then restore the history line + to its original state. + @end ifset + @ifclear BashFeatures + Accept the line regardless of where the cursor is. + If this line is + non-empty, it may be added to the history list for future recall with + @code{add_history()}. + If this line is a modified history line, the history line is restored + to its original state. + @end ifclear + + @item previous-history (C-p) + Move `back' through the history list, fetching the previous command. + + @item next-history (C-n) + Move `forward' through the history list, fetching the next command. + + @item beginning-of-history (M-<) + Move to the first line in the history. + + @item end-of-history (M->) + Move to the end of the input history, i.e., the line currently + being entered. + + @item reverse-search-history (C-r) + Search backward starting at the current line and moving `up' through + the history as necessary. This is an incremental search. + + @item forward-search-history (C-s) + Search forward starting at the current line and moving `down' through + the the history as necessary. This is an incremental search. + + @item non-incremental-reverse-search-history (M-p) + Search backward starting at the current line and moving `up' + through the history as necessary using a non-incremental search + for a string supplied by the user. + + @item non-incremental-forward-search-history (M-n) + Search forward starting at the current line and moving `down' + through the the history as necessary using a non-incremental search + for a string supplied by the user. + + @item history-search-forward () + Search forward through the history for the string of characters + between the start of the current line and the point. + This is a non-incremental search. + By default, this command is unbound. + + @item history-search-backward () + Search backward through the history for the string of characters + between the start of the current line and the point. This + is a non-incremental search. By default, this command is unbound. + + @item yank-nth-arg (M-C-y) + Insert the first argument to the previous command (usually + the second word on the previous line) at point. + With an argument @var{n}, + insert the @var{n}th word from the previous command (the words + in the previous command begin with word 0). A negative argument + inserts the @var{n}th word from the end of the previous command. + + @item yank-last-arg (M-. or M-_) + Insert last argument to the previous command (the last word of the + previous history entry). With an + argument, behave exactly like @code{yank-nth-arg}. + Successive calls to @code{yank-last-arg} move back through the history + list, inserting the last argument of each line in turn. + + @end ftable + + @node Commands For Text + @subsection Commands For Changing Text + + @ftable @code + @item delete-char (C-d) + Delete the character at point. If point is at the + beginning of the line, there are no characters in the line, and + the last character typed was not bound to @code{delete-char}, then + return @sc{eof}. + + @item backward-delete-char (Rubout) + Delete the character behind the cursor. A numeric argument means + to kill the characters instead of deleting them. + + @item forward-backward-delete-char () + Delete the character under the cursor, unless the cursor is at the + end of the line, in which case the character behind the cursor is + deleted. By default, this is not bound to a key. + + @item quoted-insert (C-q or C-v) + Add the next character typed to the line verbatim. This is + how to insert key sequences like @kbd{C-q}, for example. + + @ifclear BashFeatures + @item tab-insert (M-@key{TAB}) + Insert a tab character. + @end ifclear + + @item self-insert (a, b, A, 1, !, @dots{}) + Insert yourself. + + @item transpose-chars (C-t) + Drag the character before the cursor forward over + the character at the cursor, moving the + cursor forward as well. If the insertion point + is at the end of the line, then this + transposes the last two characters of the line. + Negative arguments have no effect. + + @item transpose-words (M-t) + Drag the word before point past the word after point, + moving point past that word as well. + If the insertion point is at the end of the line, this transposes + the last two words on the line. + + @item upcase-word (M-u) + Uppercase the current (or following) word. With a negative argument, + uppercase the previous word, but do not move the cursor. + + @item downcase-word (M-l) + Lowercase the current (or following) word. With a negative argument, + lowercase the previous word, but do not move the cursor. + + @item capitalize-word (M-c) + Capitalize the current (or following) word. With a negative argument, + capitalize the previous word, but do not move the cursor. + + @item overwrite-mode () + Toggle overwrite mode. With an explicit positive numeric argument, + switches to overwrite mode. With an explicit non-positive numeric + argument, switches to insert mode. This command affects only + @code{emacs} mode; @code{vi} mode does overwrite differently. + Each call to @code{readline()} starts in insert mode. + + In overwrite mode, characters bound to @code{self-insert} replace + the text at point rather than pushing the text to the right. + Characters bound to @code{backward-delete-char} replace the character + before point with a space. + + By default, this command is unbound. + + @end ftable + + @node Commands For Killing + @subsection Killing And Yanking + + @ftable @code + + @item kill-line (C-k) + Kill the text from point to the end of the line. + + @item backward-kill-line (C-x Rubout) + Kill backward to the beginning of the line. + + @item unix-line-discard (C-u) + Kill backward from the cursor to the beginning of the current line. + + @item kill-whole-line () + Kill all characters on the current line, no matter where point is. + By default, this is unbound. + + @item kill-word (M-d) + Kill from point to the end of the current word, or if between + words, to the end of the next word. + Word boundaries are the same as @code{forward-word}. + + @item backward-kill-word (M-@key{DEL}) + Kill the word behind point. + Word boundaries are the same as @code{backward-word}. + + @item unix-word-rubout (C-w) + Kill the word behind point, using white space as a word boundary. + The killed text is saved on the kill-ring. + + @item unix-filename-rubout () + Kill the word behind point, using white space and the slash character + as the word boundaries. + The killed text is saved on the kill-ring. + + @item delete-horizontal-space () + Delete all spaces and tabs around point. By default, this is unbound. + + @item kill-region () + Kill the text in the current region. + By default, this command is unbound. + + @item copy-region-as-kill () + Copy the text in the region to the kill buffer, so it can be yanked + right away. By default, this command is unbound. + + @item copy-backward-word () + Copy the word before point to the kill buffer. + The word boundaries are the same as @code{backward-word}. + By default, this command is unbound. + + @item copy-forward-word () + Copy the word following point to the kill buffer. + The word boundaries are the same as @code{forward-word}. + By default, this command is unbound. + + @item yank (C-y) + Yank the top of the kill ring into the buffer at point. + + @item yank-pop (M-y) + Rotate the kill-ring, and yank the new top. You can only do this if + the prior command is @code{yank} or @code{yank-pop}. + @end ftable + + @node Numeric Arguments + @subsection Specifying Numeric Arguments + @ftable @code + + @item digit-argument (@kbd{M-0}, @kbd{M-1}, @dots{} @kbd{M--}) + Add this digit to the argument already accumulating, or start a new + argument. @kbd{M--} starts a negative argument. + + @item universal-argument () + This is another way to specify an argument. + If this command is followed by one or more digits, optionally with a + leading minus sign, those digits define the argument. + If the command is followed by digits, executing @code{universal-argument} + again ends the numeric argument, but is otherwise ignored. + As a special case, if this command is immediately followed by a + character that is neither a digit or minus sign, the argument count + for the next command is multiplied by four. + The argument count is initially one, so executing this function the + first time makes the argument count four, a second time makes the + argument count sixteen, and so on. + By default, this is not bound to a key. + @end ftable + + @node Commands For Completion + @subsection Letting Readline Type For You + + @ftable @code + @item complete (@key{TAB}) + Attempt to perform completion on the text before point. + The actual completion performed is application-specific. + @ifset BashFeatures + Bash attempts completion treating the text as a variable (if the + text begins with @samp{$}), username (if the text begins with + @samp{~}), hostname (if the text begins with @samp{@@}), or + command (including aliases and functions) in turn. If none + of these produces a match, filename completion is attempted. + @end ifset + @ifclear BashFeatures + The default is filename completion. + @end ifclear + + @item possible-completions (M-?) + List the possible completions of the text before point. + + @item insert-completions (M-*) + Insert all completions of the text before point that would have + been generated by @code{possible-completions}. + + @item menu-complete () + Similar to @code{complete}, but replaces the word to be completed + with a single match from the list of possible completions. + Repeated execution of @code{menu-complete} steps through the list + of possible completions, inserting each match in turn. + At the end of the list of completions, the bell is rung + (subject to the setting of @code{bell-style}) + and the original text is restored. + An argument of @var{n} moves @var{n} positions forward in the list + of matches; a negative argument may be used to move backward + through the list. + This command is intended to be bound to @key{TAB}, but is unbound + by default. + + @item delete-char-or-list () + Deletes the character under the cursor if not at the beginning or + end of the line (like @code{delete-char}). + If at the end of the line, behaves identically to + @code{possible-completions}. + This command is unbound by default. + + @ifset BashFeatures + @item complete-filename (M-/) + Attempt filename completion on the text before point. + + @item possible-filename-completions (C-x /) + List the possible completions of the text before point, + treating it as a filename. + + @item complete-username (M-~) + Attempt completion on the text before point, treating + it as a username. + + @item possible-username-completions (C-x ~) + List the possible completions of the text before point, + treating it as a username. + + @item complete-variable (M-$) + Attempt completion on the text before point, treating + it as a shell variable. + + @item possible-variable-completions (C-x $) + List the possible completions of the text before point, + treating it as a shell variable. + + @item complete-hostname (M-@@) + Attempt completion on the text before point, treating + it as a hostname. + + @item possible-hostname-completions (C-x @@) + List the possible completions of the text before point, + treating it as a hostname. + + @item complete-command (M-!) + Attempt completion on the text before point, treating + it as a command name. Command completion attempts to + match the text against aliases, reserved words, shell + functions, shell builtins, and finally executable filenames, + in that order. + + @item possible-command-completions (C-x !) + List the possible completions of the text before point, + treating it as a command name. + + @item dynamic-complete-history (M-@key{TAB}) + Attempt completion on the text before point, comparing + the text against lines from the history list for possible + completion matches. + + @item complete-into-braces (M-@{) + Perform filename completion and insert the list of possible completions + enclosed within braces so the list is available to the shell + (@pxref{Brace Expansion}). + + @end ifset + @end ftable + + @node Keyboard Macros + @subsection Keyboard Macros + @ftable @code + + @item start-kbd-macro (C-x () + Begin saving the characters typed into the current keyboard macro. + + @item end-kbd-macro (C-x )) + Stop saving the characters typed into the current keyboard macro + and save the definition. + + @item call-last-kbd-macro (C-x e) + Re-execute the last keyboard macro defined, by making the characters + in the macro appear as if typed at the keyboard. + + @end ftable + + @node Miscellaneous Commands + @subsection Some Miscellaneous Commands + @ftable @code + + @item re-read-init-file (C-x C-r) + Read in the contents of the @var{inputrc} file, and incorporate + any bindings or variable assignments found there. + + @item abort (C-g) + Abort the current editing command and + ring the terminal's bell (subject to the setting of + @code{bell-style}). + + @item do-uppercase-version (M-a, M-b, M-@var{x}, @dots{}) + If the metafied character @var{x} is lowercase, run the command + that is bound to the corresponding uppercase character. + + @item prefix-meta (@key{ESC}) + Metafy the next character typed. This is for keyboards + without a meta key. Typing @samp{@key{ESC} f} is equivalent to typing + @kbd{M-f}. + + @item undo (C-_ or C-x C-u) + Incremental undo, separately remembered for each line. + + @item revert-line (M-r) + Undo all changes made to this line. This is like executing the @code{undo} + command enough times to get back to the beginning. + + @ifset BashFeatures + @item tilde-expand (M-&) + @end ifset + @ifclear BashFeatures + @item tilde-expand (M-~) + @end ifclear + Perform tilde expansion on the current word. + + @item set-mark (C-@@) + Set the mark to the point. If a + numeric argument is supplied, the mark is set to that position. + + @item exchange-point-and-mark (C-x C-x) + Swap the point with the mark. The current cursor position is set to + the saved position, and the old cursor position is saved as the mark. + + @item character-search (C-]) + A character is read and point is moved to the next occurrence of that + character. A negative count searches for previous occurrences. + + @item character-search-backward (M-C-]) + A character is read and point is moved to the previous occurrence + of that character. A negative count searches for subsequent + occurrences. + + @item insert-comment (M-#) + Without a numeric argument, the value of the @code{comment-begin} + variable is inserted at the beginning of the current line. + If a numeric argument is supplied, this command acts as a toggle: if + the characters at the beginning of the line do not match the value + of @code{comment-begin}, the value is inserted, otherwise + the characters in @code{comment-begin} are deleted from the beginning of + the line. + In either case, the line is accepted as if a newline had been typed. + @ifset BashFeatures + The default value of @code{comment-begin} causes this command + to make the current line a shell comment. + If a numeric argument causes the comment character to be removed, the line + will be executed by the shell. + @end ifset + + @item dump-functions () + Print all of the functions and their key bindings to the + Readline output stream. If a numeric argument is supplied, + the output is formatted in such a way that it can be made part + of an @var{inputrc} file. This command is unbound by default. + + @item dump-variables () + Print all of the settable variables and their values to the + Readline output stream. If a numeric argument is supplied, + the output is formatted in such a way that it can be made part + of an @var{inputrc} file. This command is unbound by default. + + @item dump-macros () + Print all of the Readline key sequences bound to macros and the + strings they output. If a numeric argument is supplied, + the output is formatted in such a way that it can be made part + of an @var{inputrc} file. This command is unbound by default. + + @ifset BashFeatures + @item glob-complete-word (M-g) + The word before point is treated as a pattern for pathname expansion, + with an asterisk implicitly appended. This pattern is used to + generate a list of matching file names for possible completions. + + @item glob-expand-word (C-x *) + The word before point is treated as a pattern for pathname expansion, + and the list of matching file names is inserted, replacing the word. + If a numeric argument is supplied, a @samp{*} is appended before + pathname expansion. + + @item glob-list-expansions (C-x g) + The list of expansions that would have been generated by + @code{glob-expand-word} is displayed, and the line is redrawn. + If a numeric argument is supplied, a @samp{*} is appended before + pathname expansion. + + @item display-shell-version (C-x C-v) + Display version information about the current instance of Bash. + + @item shell-expand-line (M-C-e) + Expand the line as the shell does. + This performs alias and history expansion as well as all of the shell + word expansions (@pxref{Shell Expansions}). + + @item history-expand-line (M-^) + Perform history expansion on the current line. + + @item magic-space () + Perform history expansion on the current line and insert a space + (@pxref{History Interaction}). + + @item alias-expand-line () + Perform alias expansion on the current line (@pxref{Aliases}). + + @item history-and-alias-expand-line () + Perform history and alias expansion on the current line. + + @item insert-last-argument (M-. or M-_) + A synonym for @code{yank-last-arg}. + + @item operate-and-get-next (C-o) + Accept the current line for execution and fetch the next line + relative to the current line from the history for editing. Any + argument is ignored. + + @item edit-and-execute-command (C-xC-e) + Invoke an editor on the current command line, and execute the result as shell + commands. + Bash attempts to invoke + @code{$VISUAL}, @code{$EDITOR}, and @code{emacs} + as the editor, in that order. + + @end ifset + + @ifclear BashFeatures + @item emacs-editing-mode (C-e) + When in @code{vi} command mode, this causes a switch to @code{emacs} + editing mode. + + @item vi-editing-mode (M-C-j) + When in @code{emacs} editing mode, this causes a switch to @code{vi} + editing mode. + + @end ifclear + + @end ftable + + @node Readline vi Mode + @section Readline vi Mode + + While the Readline library does not have a full set of @code{vi} + editing functions, it does contain enough to allow simple editing + of the line. The Readline @code{vi} mode behaves as specified in + the @sc{posix} 1003.2 standard. + + @ifset BashFeatures + In order to switch interactively between @code{emacs} and @code{vi} + editing modes, use the @samp{set -o emacs} and @samp{set -o vi} + commands (@pxref{The Set Builtin}). + @end ifset + @ifclear BashFeatures + In order to switch interactively between @code{emacs} and @code{vi} + editing modes, use the command @kbd{M-C-j} (bound to emacs-editing-mode + when in @code{vi} mode and to vi-editing-mode in @code{emacs} mode). + @end ifclear + The Readline default is @code{emacs} mode. + + When you enter a line in @code{vi} mode, you are already placed in + `insertion' mode, as if you had typed an @samp{i}. Pressing @key{ESC} + switches you into `command' mode, where you can edit the text of the + line with the standard @code{vi} movement keys, move to previous + history lines with @samp{k} and subsequent lines with @samp{j}, and + so forth. + + @ifset BashFeatures + @node Programmable Completion + @section Programmable Completion + @cindex programmable completion + + When word completion is attempted for an argument to a command for + which a completion specification (a @var{compspec}) has been defined + using the @code{complete} builtin (@pxref{Programmable Completion Builtins}), + the programmable completion facilities are invoked. + + First, the command name is identified. + If a compspec has been defined for that command, the + compspec is used to generate the list of possible completions for the word. + If the command word is a full pathname, a compspec for the full + pathname is searched for first. + If no compspec is found for the full pathname, an attempt is made to + find a compspec for the portion following the final slash. + + Once a compspec has been found, it is used to generate the list of + matching words. + If a compspec is not found, the default Bash completion + described above (@pxref{Commands For Completion}) is performed. + + First, the actions specified by the compspec are used. + Only matches which are prefixed by the word being completed are + returned. + When the @option{-f} or @option{-d} option is used for filename or + directory name completion, the shell variable @env{FIGNORE} is + used to filter the matches. + @xref{Bash Variables}, for a description of @env{FIGNORE}. + + Any completions specified by a filename expansion pattern to the + @option{-G} option are generated next. + The words generated by the pattern need not match the word being completed. + The @env{GLOBIGNORE} shell variable is not used to filter the matches, + but the @env{FIGNORE} shell variable is used. + + Next, the string specified as the argument to the @option{-W} option + is considered. + The string is first split using the characters in the @env{IFS} + special variable as delimiters. + Shell quoting is honored. + Each word is then expanded using + brace expansion, tilde expansion, parameter and variable expansion, + command substitution, arithmetic expansion, and pathname expansion, + as described above (@pxref{Shell Expansions}). + The results are split using the rules described above + (@pxref{Word Splitting}). + The results of the expansion are prefix-matched against the word being + completed, and the matching words become the possible completions. + + After these matches have been generated, any shell function or command + specified with the @option{-F} and @option{-C} options is invoked. + When the command or function is invoked, the @env{COMP_LINE} and + @env{COMP_POINT} variables are assigned values as described above + (@pxref{Bash Variables}). + If a shell function is being invoked, the @env{COMP_WORDS} and + @env{COMP_CWORD} variables are also set. + When the function or command is invoked, the first argument is the + name of the command whose arguments are being completed, the + second argument is the word being completed, and the third argument + is the word preceding the word being completed on the current command line. + No filtering of the generated completions against the word being completed + is performed; the function or command has complete freedom in generating + the matches. + + Any function specified with @option{-F} is invoked first. + The function may use any of the shell facilities, including the + @code{compgen} builtin described below + (@pxref{Programmable Completion Builtins}), to generate the matches. + It must put the possible completions in the @env{COMPREPLY} array + variable. + + Next, any command specified with the @option{-C} option is invoked + in an environment equivalent to command substitution. + It should print a list of completions, one per line, to + the standard output. + Backslash may be used to escape a newline, if necessary. + + After all of the possible completions are generated, any filter + specified with the @option{-X} option is applied to the list. + The filter is a pattern as used for pathname expansion; a @samp{&} + in the pattern is replaced with the text of the word being completed. + A literal @samp{&} may be escaped with a backslash; the backslash + is removed before attempting a match. + Any completion that matches the pattern will be removed from the list. + A leading @samp{!} negates the pattern; in this case any completion + not matching the pattern will be removed. + + Finally, any prefix and suffix specified with the @option{-P} and @option{-S} + options are added to each member of the completion list, and the result is + returned to the Readline completion code as the list of possible + completions. + + If the previously-applied actions do not generate any matches, and the + @option{-o dirnames} option was supplied to @code{complete} when the + compspec was defined, directory name completion is attempted. + + If the @option{-o plusdirs} option was supplied to @code{complete} when + the compspec was defined, directory name completion is attempted and any + matches are added to the results of the other actions. + + By default, if a compspec is found, whatever it generates is returned to + the completion code as the full set of possible completions. + The default Bash completions are not attempted, and the Readline default + of filename completion is disabled. + If the @option{-o bashdefault} option was supplied to @code{complete} when + the compspec was defined, the default Bash completions are attempted + if the compspec generates no matches. + If the @option{-o default} option was supplied to @code{complete} when the + compspec was defined, Readline's default completion will be performed + if the compspec (and, if attempted, the default Bash completions) + generate no matches. + + When a compspec indicates that directory name completion is desired, + the programmable completion functions force Readline to append a slash + to completed names which are symbolic links to directories, subject to + the value of the @var{mark-directories} Readline variable, regardless + of the setting of the @var{mark-symlinked-directories} Readline variable. + + @node Programmable Completion Builtins + @section Programmable Completion Builtins + @cindex completion builtins + + Two builtin commands are available to manipulate the programmable completion + facilities. + + @table @code + @item compgen + @btindex compgen + @example + @code{compgen [@var{option}] [@var{word}]} + @end example + + Generate possible completion matches for @var{word} according to + the @var{option}s, which may be any option accepted by the + @code{complete} + builtin with the exception of @option{-p} and @option{-r}, and write + the matches to the standard output. + When using the @option{-F} or @option{-C} options, the various shell variables + set by the programmable completion facilities, while available, will not + have useful values. + + The matches will be generated in the same way as if the programmable + completion code had generated them directly from a completion specification + with the same flags. + If @var{word} is specified, only those completions matching @var{word} + will be displayed. + + The return value is true unless an invalid option is supplied, or no + matches were generated. + + @item complete + @btindex complete + @example + @code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}] + [-P @var{prefix}] [-S @var{suffix}] [-X @var{filterpat}] [-F @var{function}] + [-C @var{command}] @var{name} [@var{name} @dots{}]} + @code{complete -pr [@var{name} @dots{}]} + @end example + + Specify how arguments to each @var{name} should be completed. + If the @option{-p} option is supplied, or if no options are supplied, existing + completion specifications are printed in a way that allows them to be + reused as input. + The @option{-r} option removes a completion specification for + each @var{name}, or, if no @var{name}s are supplied, all + completion specifications. + + The process of applying these completion specifications when word completion + is attempted is described above (@pxref{Programmable Completion}). + + Other options, if specified, have the following meanings. + The arguments to the @option{-G}, @option{-W}, and @option{-X} options + (and, if necessary, the @option{-P} and @option{-S} options) + should be quoted to protect them from expansion before the + @code{complete} builtin is invoked. + + + @table @code + @item -o @var{comp-option} + The @var{comp-option} controls several aspects of the compspec's behavior + beyond the simple generation of completions. + @var{comp-option} may be one of: + + @table @code + + @item bashdefault + Perform the rest of the default Bash completions if the compspec + generates no matches. + + @item default + Use Readline's default filename completion if the compspec generates + no matches. + + @item dirnames + Perform directory name completion if the compspec generates no matches. + + @item filenames + Tell Readline that the compspec generates filenames, so it can perform any + filename-specific processing (like adding a slash to directory names or + suppressing trailing spaces). This option is intended to be used with + shell functions specified with @option{-F}. + + @item nospace + Tell Readline not to append a space (the default) to words completed at + the end of the line. + @end table + + @item -A @var{action} + The @var{action} may be one of the following to generate a list of possible + completions: + + @table @code + @item alias + Alias names. May also be specified as @option{-a}. + + @item arrayvar + Array variable names. + + @item binding + Readline key binding names (@pxref{Bindable Readline Commands}). + + @item builtin + Names of shell builtin commands. May also be specified as @option{-b}. + + @item command + Command names. May also be specified as @option{-c}. + + @item directory + Directory names. May also be specified as @option{-d}. + + @item disabled + Names of disabled shell builtins. + + @item enabled + Names of enabled shell builtins. + + @item export + Names of exported shell variables. May also be specified as @option{-e}. + + @item file + File names. May also be specified as @option{-f}. + + @item function + Names of shell functions. + + @item group + Group names. May also be specified as @option{-g}. + + @item helptopic + Help topics as accepted by the @code{help} builtin (@pxref{Bash Builtins}). + + @item hostname + Hostnames, as taken from the file specified by the + @env{HOSTFILE} shell variable (@pxref{Bash Variables}). + + @item job + Job names, if job control is active. May also be specified as @option{-j}. + + @item keyword + Shell reserved words. May also be specified as @option{-k}. + + @item running + Names of running jobs, if job control is active. + + @item service + Service names. May also be specified as @option{-s}. + + @item setopt + Valid arguments for the @option{-o} option to the @code{set} builtin + (@pxref{The Set Builtin}). + + @item shopt + Shell option names as accepted by the @code{shopt} builtin + (@pxref{Bash Builtins}). + + @item signal + Signal names. + + @item stopped + Names of stopped jobs, if job control is active. + + @item user + User names. May also be specified as @option{-u}. + + @item variable + Names of all shell variables. May also be specified as @option{-v}. + @end table + + @item -G @var{globpat} + The filename expansion pattern @var{globpat} is expanded to generate + the possible completions. + + @item -W @var{wordlist} + The @var{wordlist} is split using the characters in the + @env{IFS} special variable as delimiters, and each resultant word + is expanded. + The possible completions are the members of the resultant list which + match the word being completed. + + @item -C @var{command} + @var{command} is executed in a subshell environment, and its output is + used as the possible completions. + + @item -F @var{function} + The shell function @var{function} is executed in the current shell + environment. + When it finishes, the possible completions are retrieved from the value + of the @env{COMPREPLY} array variable. + + @item -X @var{filterpat} + @var{filterpat} is a pattern as used for filename expansion. + It is applied to the list of possible completions generated by the + preceding options and arguments, and each completion matching + @var{filterpat} is removed from the list. + A leading @samp{!} in @var{filterpat} negates the pattern; in this + case, any completion not matching @var{filterpat} is removed. + + @item -P @var{prefix} + @var{prefix} is added at the beginning of each possible completion + after all other options have been applied. + + @item -S @var{suffix} + @var{suffix} is appended to each possible completion + after all other options have been applied. + @end table + + The return value is true unless an invalid option is supplied, an option + other than @option{-p} or @option{-r} is supplied without a @var{name} + argument, an attempt is made to remove a completion specification for + a @var{name} for which no specification exists, or + an error occurs adding a completion specification. + + @end table + @end ifset diff -aNrc2 readline-4.3-patched/doc/rluser.texinfo readline-5.0/doc/rluser.texinfo *** readline-4.3-patched/doc/rluser.texinfo Tue Mar 5 13:20:44 2002 --- readline-5.0/doc/rluser.texinfo Wed Dec 31 19:00:00 1969 *************** *** 1,1796 **** - @comment %**start of header (This is for running Texinfo on a region.) - @setfilename rluser.info - @comment %**end of header (This is for running Texinfo on a region.) - @setchapternewpage odd - - @ignore - This file documents the end user interface to the GNU command line - editing features. It is to be an appendix to manuals for programs which - use these features. There is a document entitled "readline.texinfo" - which contains both end-user and programmer documentation for the - GNU Readline Library. - - Copyright (C) 1988-2002 Free Software Foundation, Inc. - - Authored by Brian Fox and Chet Ramey. - - Permission is granted to process this file through Tex and print the - results, provided the printed document carries copying permission notice - identical to this one except for the removal of this paragraph (this - paragraph not being relevant to the printed manual). - - Permission is granted to make and distribute verbatim copies of this manual - provided the copyright notice and this permission notice are preserved on - all copies. - - Permission is granted to copy and distribute modified versions of this - manual under the conditions for verbatim copying, provided also that the - GNU Copyright statement is available to the distributee, and provided that - the entire resulting derived work is distributed under the terms of a - permission notice identical to this one. - - Permission is granted to copy and distribute translations of this manual - into another language, under the above conditions for modified versions. - @end ignore - - @comment If you are including this manual as an appendix, then set the - @comment variable readline-appendix. - - @ifclear BashFeatures - @defcodeindex bt - @end ifclear - - @node Command Line Editing - @chapter Command Line Editing - - This chapter describes the basic features of the @sc{gnu} - command line editing interface. - @ifset BashFeatures - Command line editing is provided by the Readline library, which is - used by several different programs, including Bash. - @end ifset - - @menu - * Introduction and Notation:: Notation used in this text. - * Readline Interaction:: The minimum set of commands for editing a line. - * Readline Init File:: Customizing Readline from a user's view. - * Bindable Readline Commands:: A description of most of the Readline commands - available for binding - * Readline vi Mode:: A short description of how to make Readline - behave like the vi editor. - @ifset BashFeatures - * Programmable Completion:: How to specify the possible completions for - a specific command. - * Programmable Completion Builtins:: Builtin commands to specify how to - complete arguments for a particular command. - @end ifset - @end menu - - @node Introduction and Notation - @section Introduction to Line Editing - - The following paragraphs describe the notation used to represent - keystrokes. - - The text @kbd{C-k} is read as `Control-K' and describes the character - produced when the @key{k} key is pressed while the Control key - is depressed. - - The text @kbd{M-k} is read as `Meta-K' and describes the character - produced when the Meta key (if you have one) is depressed, and the @key{k} - key is pressed. - The Meta key is labeled @key{ALT} on many keyboards. - On keyboards with two keys labeled @key{ALT} (usually to either side of - the space bar), the @key{ALT} on the left side is generally set to - work as a Meta key. - The @key{ALT} key on the right may also be configured to work as a - Meta key or may be configured as some other modifier, such as a - Compose key for typing accented characters. - - If you do not have a Meta or @key{ALT} key, or another key working as - a Meta key, the identical keystroke can be generated by typing @key{ESC} - @emph{first}, and then typing @key{k}. - Either process is known as @dfn{metafying} the @key{k} key. - - The text @kbd{M-C-k} is read as `Meta-Control-k' and describes the - character produced by @dfn{metafying} @kbd{C-k}. - - In addition, several keys have their own names. Specifically, - @key{DEL}, @key{ESC}, @key{LFD}, @key{SPC}, @key{RET}, and @key{TAB} all - stand for themselves when seen in this text, or in an init file - (@pxref{Readline Init File}). - If your keyboard lacks a @key{LFD} key, typing @key{C-j} will - produce the desired character. - The @key{RET} key may be labeled @key{Return} or @key{Enter} on - some keyboards. - - @node Readline Interaction - @section Readline Interaction - @cindex interaction, readline - - Often during an interactive session you type in a long line of text, - only to notice that the first word on the line is misspelled. The - Readline library gives you a set of commands for manipulating the text - as you type it in, allowing you to just fix your typo, and not forcing - you to retype the majority of the line. Using these editing commands, - you move the cursor to the place that needs correction, and delete or - insert the text of the corrections. Then, when you are satisfied with - the line, you simply press @key{RET}. You do not have to be at the - end of the line to press @key{RET}; the entire line is accepted - regardless of the location of the cursor within the line. - - @menu - * Readline Bare Essentials:: The least you need to know about Readline. - * Readline Movement Commands:: Moving about the input line. - * Readline Killing Commands:: How to delete text, and how to get it back! - * Readline Arguments:: Giving numeric arguments to commands. - * Searching:: Searching through previous lines. - @end menu - - @node Readline Bare Essentials - @subsection Readline Bare Essentials - @cindex notation, readline - @cindex command editing - @cindex editing command lines - - In order to enter characters into the line, simply type them. The typed - character appears where the cursor was, and then the cursor moves one - space to the right. If you mistype a character, you can use your - erase character to back up and delete the mistyped character. - - Sometimes you may mistype a character, and - not notice the error until you have typed several other characters. In - that case, you can type @kbd{C-b} to move the cursor to the left, and then - correct your mistake. Afterwards, you can move the cursor to the right - with @kbd{C-f}. - - When you add text in the middle of a line, you will notice that characters - to the right of the cursor are `pushed over' to make room for the text - that you have inserted. Likewise, when you delete text behind the cursor, - characters to the right of the cursor are `pulled back' to fill in the - blank space created by the removal of the text. A list of the bare - essentials for editing the text of an input line follows. - - @table @asis - @item @kbd{C-b} - Move back one character. - @item @kbd{C-f} - Move forward one character. - @item @key{DEL} or @key{Backspace} - Delete the character to the left of the cursor. - @item @kbd{C-d} - Delete the character underneath the cursor. - @item @w{Printing characters} - Insert the character into the line at the cursor. - @item @kbd{C-_} or @kbd{C-x C-u} - Undo the last editing command. You can undo all the way back to an - empty line. - @end table - - @noindent - (Depending on your configuration, the @key{Backspace} key be set to - delete the character to the left of the cursor and the @key{DEL} key set - to delete the character underneath the cursor, like @kbd{C-d}, rather - than the character to the left of the cursor.) - - @node Readline Movement Commands - @subsection Readline Movement Commands - - - The above table describes the most basic keystrokes that you need - in order to do editing of the input line. For your convenience, many - other commands have been added in addition to @kbd{C-b}, @kbd{C-f}, - @kbd{C-d}, and @key{DEL}. Here are some commands for moving more rapidly - about the line. - - @table @kbd - @item C-a - Move to the start of the line. - @item C-e - Move to the end of the line. - @item M-f - Move forward a word, where a word is composed of letters and digits. - @item M-b - Move backward a word. - @item C-l - Clear the screen, reprinting the current line at the top. - @end table - - Notice how @kbd{C-f} moves forward a character, while @kbd{M-f} moves - forward a word. It is a loose convention that control keystrokes - operate on characters while meta keystrokes operate on words. - - @node Readline Killing Commands - @subsection Readline Killing Commands - - @cindex killing text - @cindex yanking text - - @dfn{Killing} text means to delete the text from the line, but to save - it away for later use, usually by @dfn{yanking} (re-inserting) - it back into the line. - (`Cut' and `paste' are more recent jargon for `kill' and `yank'.) - - If the description for a command says that it `kills' text, then you can - be sure that you can get the text back in a different (or the same) - place later. - - When you use a kill command, the text is saved in a @dfn{kill-ring}. - Any number of consecutive kills save all of the killed text together, so - that when you yank it back, you get it all. The kill - ring is not line specific; the text that you killed on a previously - typed line is available to be yanked back later, when you are typing - another line. - @cindex kill ring - - Here is the list of commands for killing text. - - @table @kbd - @item C-k - Kill the text from the current cursor position to the end of the line. - - @item M-d - Kill from the cursor to the end of the current word, or, if between - words, to the end of the next word. - Word boundaries are the same as those used by @kbd{M-f}. - - @item M-@key{DEL} - Kill from the cursor the start of the current word, or, if between - words, to the start of the previous word. - Word boundaries are the same as those used by @kbd{M-b}. - - @item C-w - Kill from the cursor to the previous whitespace. This is different than - @kbd{M-@key{DEL}} because the word boundaries differ. - - @end table - - Here is how to @dfn{yank} the text back into the line. Yanking - means to copy the most-recently-killed text from the kill buffer. - - @table @kbd - @item C-y - Yank the most recently killed text back into the buffer at the cursor. - - @item M-y - Rotate the kill-ring, and yank the new top. You can only do this if - the prior command is @kbd{C-y} or @kbd{M-y}. - @end table - - @node Readline Arguments - @subsection Readline Arguments - - You can pass numeric arguments to Readline commands. Sometimes the - argument acts as a repeat count, other times it is the @i{sign} of the - argument that is significant. If you pass a negative argument to a - command which normally acts in a forward direction, that command will - act in a backward direction. For example, to kill text back to the - start of the line, you might type @samp{M-- C-k}. - - The general way to pass numeric arguments to a command is to type meta - digits before the command. If the first `digit' typed is a minus - sign (@samp{-}), then the sign of the argument will be negative. Once - you have typed one meta digit to get the argument started, you can type - the remainder of the digits, and then the command. For example, to give - the @kbd{C-d} command an argument of 10, you could type @samp{M-1 0 C-d}, - which will delete the next ten characters on the input line. - - @node Searching - @subsection Searching for Commands in the History - - Readline provides commands for searching through the command history - @ifset BashFeatures - (@pxref{Bash History Facilities}) - @end ifset - for lines containing a specified string. - There are two search modes: @dfn{incremental} and @dfn{non-incremental}. - - Incremental searches begin before the user has finished typing the - search string. - As each character of the search string is typed, Readline displays - the next entry from the history matching the string typed so far. - An incremental search requires only as many characters as needed to - find the desired history entry. - To search backward in the history for a particular string, type - @kbd{C-r}. Typing @kbd{C-s} searches forward through the history. - The characters present in the value of the @code{isearch-terminators} variable - are used to terminate an incremental search. - If that variable has not been assigned a value, the @key{ESC} and - @kbd{C-J} characters will terminate an incremental search. - @kbd{C-g} will abort an incremental search and restore the original line. - When the search is terminated, the history entry containing the - search string becomes the current line. - - To find other matching entries in the history list, type @kbd{C-r} or - @kbd{C-s} as appropriate. - This will search backward or forward in the history for the next - entry matching the search string typed so far. - Any other key sequence bound to a Readline command will terminate - the search and execute that command. - For instance, a @key{RET} will terminate the search and accept - the line, thereby executing the command from the history list. - A movement command will terminate the search, make the last line found - the current line, and begin editing. - - Readline remembers the last incremental search string. If two - @kbd{C-r}s are typed without any intervening characters defining a new - search string, any remembered search string is used. - - Non-incremental searches read the entire search string before starting - to search for matching history lines. The search string may be - typed by the user or be part of the contents of the current line. - - @node Readline Init File - @section Readline Init File - @cindex initialization file, readline - - Although the Readline library comes with a set of Emacs-like - keybindings installed by default, it is possible to use a different set - of keybindings. - Any user can customize programs that use Readline by putting - commands in an @dfn{inputrc} file, conventionally in his home directory. - The name of this - @ifset BashFeatures - file is taken from the value of the shell variable @env{INPUTRC}. If - @end ifset - @ifclear BashFeatures - file is taken from the value of the environment variable @env{INPUTRC}. If - @end ifclear - that variable is unset, the default is @file{~/.inputrc}. - - When a program which uses the Readline library starts up, the - init file is read, and the key bindings are set. - - In addition, the @code{C-x C-r} command re-reads this init file, thus - incorporating any changes that you might have made to it. - - @menu - * Readline Init File Syntax:: Syntax for the commands in the inputrc file. - - * Conditional Init Constructs:: Conditional key bindings in the inputrc file. - - * Sample Init File:: An example inputrc file. - @end menu - - @node Readline Init File Syntax - @subsection Readline Init File Syntax - - There are only a few basic constructs allowed in the - Readline init file. Blank lines are ignored. - Lines beginning with a @samp{#} are comments. - Lines beginning with a @samp{$} indicate conditional - constructs (@pxref{Conditional Init Constructs}). Other lines - denote variable settings and key bindings. - - @table @asis - @item Variable Settings - You can modify the run-time behavior of Readline by - altering the values of variables in Readline - using the @code{set} command within the init file. - The syntax is simple: - - @example - set @var{variable} @var{value} - @end example - - @noindent - Here, for example, is how to - change from the default Emacs-like key binding to use - @code{vi} line editing commands: - - @example - set editing-mode vi - @end example - - Variable names and values, where appropriate, are recognized without regard - to case. - - @ifset BashFeatures - The @w{@code{bind -V}} command lists the current Readline variable names - and values. @xref{Bash Builtins}. - @end ifset - - A great deal of run-time behavior is changeable with the following - variables. - - @cindex variables, readline - @table @code - - @item bell-style - @vindex bell-style - Controls what happens when Readline wants to ring the terminal bell. - If set to @samp{none}, Readline never rings the bell. If set to - @samp{visible}, Readline uses a visible bell if one is available. - If set to @samp{audible} (the default), Readline attempts to ring - the terminal's bell. - - @item comment-begin - @vindex comment-begin - The string to insert at the beginning of the line when the - @code{insert-comment} command is executed. The default value - is @code{"#"}. - - @item completion-ignore-case - If set to @samp{on}, Readline performs filename matching and completion - in a case-insensitive fashion. - The default value is @samp{off}. - - @item completion-query-items - @vindex completion-query-items - The number of possible completions that determines when the user is - asked whether he wants to see the list of possibilities. If the - number of possible completions is greater than this value, - Readline will ask the user whether or not he wishes to view - them; otherwise, they are simply listed. - This variable must be set to an integer value greater than or equal to 0. - The default limit is @code{100}. - - @item convert-meta - @vindex convert-meta - If set to @samp{on}, Readline will convert characters with the - eighth bit set to an @sc{ascii} key sequence by stripping the eighth - bit and prefixing an @key{ESC} character, converting them to a - meta-prefixed key sequence. The default value is @samp{on}. - - @item disable-completion - @vindex disable-completion - If set to @samp{On}, Readline will inhibit word completion. - Completion characters will be inserted into the line as if they had - been mapped to @code{self-insert}. The default is @samp{off}. - - @item editing-mode - @vindex editing-mode - The @code{editing-mode} variable controls which default set of - key bindings is used. By default, Readline starts up in Emacs editing - mode, where the keystrokes are most similar to Emacs. This variable can be - set to either @samp{emacs} or @samp{vi}. - - @item enable-keypad - @vindex enable-keypad - When set to @samp{on}, Readline will try to enable the application - keypad when it is called. Some systems need this to enable the - arrow keys. The default is @samp{off}. - - @item expand-tilde - @vindex expand-tilde - If set to @samp{on}, tilde expansion is performed when Readline - attempts word completion. The default is @samp{off}. - - @vindex history-preserve-point - If set to @samp{on}, the history code attempts to place point at the - same location on each history line retrived with @code{previous-history} - or @code{next-history}. - - @item horizontal-scroll-mode - @vindex horizontal-scroll-mode - This variable can be set to either @samp{on} or @samp{off}. Setting it - to @samp{on} means that the text of the lines being edited will scroll - horizontally on a single screen line when they are longer than the width - of the screen, instead of wrapping onto a new screen line. By default, - this variable is set to @samp{off}. - - @item input-meta - @vindex input-meta - @vindex meta-flag - If set to @samp{on}, Readline will enable eight-bit input (it - will not clear the eighth bit in the characters it reads), - regardless of what the terminal claims it can support. The - default value is @samp{off}. The name @code{meta-flag} is a - synonym for this variable. - - @item isearch-terminators - @vindex isearch-terminators - The string of characters that should terminate an incremental search without - subsequently executing the character as a command (@pxref{Searching}). - If this variable has not been given a value, the characters @key{ESC} and - @kbd{C-J} will terminate an incremental search. - - @item keymap - @vindex keymap - Sets Readline's idea of the current keymap for key binding commands. - Acceptable @code{keymap} names are - @code{emacs}, - @code{emacs-standard}, - @code{emacs-meta}, - @code{emacs-ctlx}, - @code{vi}, - @code{vi-move}, - @code{vi-command}, and - @code{vi-insert}. - @code{vi} is equivalent to @code{vi-command}; @code{emacs} is - equivalent to @code{emacs-standard}. The default value is @code{emacs}. - The value of the @code{editing-mode} variable also affects the - default keymap. - - @item mark-directories - If set to @samp{on}, completed directory names have a slash - appended. The default is @samp{on}. - - @item mark-modified-lines - @vindex mark-modified-lines - This variable, when set to @samp{on}, causes Readline to display an - asterisk (@samp{*}) at the start of history lines which have been modified. - This variable is @samp{off} by default. - - @item mark-symlinked-directories - @vindex mark-symlinked-directories - If set to @samp{on}, completed names which are symbolic links - to directories have a slash appended (subject to the value of - @code{mark-directories}). - The default is @samp{off}. - - @item match-hidden-files - @vindex match-hidden-files - This variable, when set to @samp{on}, causes Readline to match files whose - names begin with a @samp{.} (hidden files) when performing filename - completion, unless the leading @samp{.} is - supplied by the user in the filename to be completed. - This variable is @samp{on} by default. - - @item output-meta - @vindex output-meta - If set to @samp{on}, Readline will display characters with the - eighth bit set directly rather than as a meta-prefixed escape - sequence. The default is @samp{off}. - - @item page-completions - @vindex page-completions - If set to @samp{on}, Readline uses an internal @code{more}-like pager - to display a screenful of possible completions at a time. - This variable is @samp{on} by default. - - @item print-completions-horizontally - If set to @samp{on}, Readline will display completions with matches - sorted horizontally in alphabetical order, rather than down the screen. - The default is @samp{off}. - - @item show-all-if-ambiguous - @vindex show-all-if-ambiguous - This alters the default behavior of the completion functions. If - set to @samp{on}, - words which have more than one possible completion cause the - matches to be listed immediately instead of ringing the bell. - The default value is @samp{off}. - - @item visible-stats - @vindex visible-stats - If set to @samp{on}, a character denoting a file's type - is appended to the filename when listing possible - completions. The default is @samp{off}. - - @end table - - @item Key Bindings - The syntax for controlling key bindings in the init file is - simple. First you need to find the name of the command that you - want to change. The following sections contain tables of the command - name, the default keybinding, if any, and a short description of what - the command does. - - Once you know the name of the command, simply place on a line - in the init file the name of the key - you wish to bind the command to, a colon, and then the name of the - command. The name of the key - can be expressed in different ways, depending on what you find most - comfortable. - - In addition to command names, readline allows keys to be bound - to a string that is inserted when the key is pressed (a @var{macro}). - - @ifset BashFeatures - The @w{@code{bind -p}} command displays Readline function names and - bindings in a format that can put directly into an initialization file. - @xref{Bash Builtins}. - @end ifset - - @table @asis - @item @w{@var{keyname}: @var{function-name} or @var{macro}} - @var{keyname} is the name of a key spelled out in English. For example: - @example - Control-u: universal-argument - Meta-Rubout: backward-kill-word - Control-o: "> output" - @end example - - In the above example, @kbd{C-u} is bound to the function - @code{universal-argument}, - @kbd{M-DEL} is bound to the function @code{backward-kill-word}, and - @kbd{C-o} is bound to run the macro - expressed on the right hand side (that is, to insert the text - @samp{> output} into the line). - - A number of symbolic character names are recognized while - processing this key binding syntax: - @var{DEL}, - @var{ESC}, - @var{ESCAPE}, - @var{LFD}, - @var{NEWLINE}, - @var{RET}, - @var{RETURN}, - @var{RUBOUT}, - @var{SPACE}, - @var{SPC}, - and - @var{TAB}. - - @item @w{"@var{keyseq}": @var{function-name} or @var{macro}} - @var{keyseq} differs from @var{keyname} above in that strings - denoting an entire key sequence can be specified, by placing - the key sequence in double quotes. Some @sc{gnu} Emacs style key - escapes can be used, as in the following example, but the - special character names are not recognized. - - @example - "\C-u": universal-argument - "\C-x\C-r": re-read-init-file - "\e[11~": "Function Key 1" - @end example - - In the above example, @kbd{C-u} is again bound to the function - @code{universal-argument} (just as it was in the first example), - @samp{@kbd{C-x} @kbd{C-r}} is bound to the function @code{re-read-init-file}, - and @samp{@key{ESC} @key{[} @key{1} @key{1} @key{~}} is bound to insert - the text @samp{Function Key 1}. - - @end table - - The following @sc{gnu} Emacs style escape sequences are available when - specifying key sequences: - - @table @code - @item @kbd{\C-} - control prefix - @item @kbd{\M-} - meta prefix - @item @kbd{\e} - an escape character - @item @kbd{\\} - backslash - @item @kbd{\"} - @key{"}, a double quotation mark - @item @kbd{\'} - @key{'}, a single quote or apostrophe - @end table - - In addition to the @sc{gnu} Emacs style escape sequences, a second - set of backslash escapes is available: - - @table @code - @item \a - alert (bell) - @item \b - backspace - @item \d - delete - @item \f - form feed - @item \n - newline - @item \r - carriage return - @item \t - horizontal tab - @item \v - vertical tab - @item \@var{nnn} - the eight-bit character whose value is the octal value @var{nnn} - (one to three digits) - @item \x@var{HH} - the eight-bit character whose value is the hexadecimal value @var{HH} - (one or two hex digits) - @end table - - When entering the text of a macro, single or double quotes must - be used to indicate a macro definition. - Unquoted text is assumed to be a function name. - In the macro body, the backslash escapes described above are expanded. - Backslash will quote any other character in the macro text, - including @samp{"} and @samp{'}. - For example, the following binding will make @samp{@kbd{C-x} \} - insert a single @samp{\} into the line: - @example - "\C-x\\": "\\" - @end example - - @end table - - @node Conditional Init Constructs - @subsection Conditional Init Constructs - - Readline implements a facility similar in spirit to the conditional - compilation features of the C preprocessor which allows key - bindings and variable settings to be performed as the result - of tests. There are four parser directives used. - - @table @code - @item $if - The @code{$if} construct allows bindings to be made based on the - editing mode, the terminal being used, or the application using - Readline. The text of the test extends to the end of the line; - no characters are required to isolate it. - - @table @code - @item mode - The @code{mode=} form of the @code{$if} directive is used to test - whether Readline is in @code{emacs} or @code{vi} mode. - This may be used in conjunction - with the @samp{set keymap} command, for instance, to set bindings in - the @code{emacs-standard} and @code{emacs-ctlx} keymaps only if - Readline is starting out in @code{emacs} mode. - - @item term - The @code{term=} form may be used to include terminal-specific - key bindings, perhaps to bind the key sequences output by the - terminal's function keys. The word on the right side of the - @samp{=} is tested against both the full name of the terminal and - the portion of the terminal name before the first @samp{-}. This - allows @code{sun} to match both @code{sun} and @code{sun-cmd}, - for instance. - - @item application - The @var{application} construct is used to include - application-specific settings. Each program using the Readline - library sets the @var{application name}, and you can test for - a particular value. - This could be used to bind key sequences to functions useful for - a specific program. For instance, the following command adds a - key sequence that quotes the current or previous word in Bash: - @example - $if Bash - # Quote the current or previous word - "\C-xq": "\eb\"\ef\"" - $endif - @end example - @end table - - @item $endif - This command, as seen in the previous example, terminates an - @code{$if} command. - - @item $else - Commands in this branch of the @code{$if} directive are executed if - the test fails. - - @item $include - This directive takes a single filename as an argument and reads commands - and bindings from that file. - For example, the following directive reads from @file{/etc/inputrc}: - @example - $include /etc/inputrc - @end example - @end table - - @node Sample Init File - @subsection Sample Init File - - Here is an example of an @var{inputrc} file. This illustrates key - binding, variable assignment, and conditional syntax. - - @example - @page - # This file controls the behaviour of line input editing for - # programs that use the GNU Readline library. Existing - # programs include FTP, Bash, and GDB. - # - # You can re-read the inputrc file with C-x C-r. - # Lines beginning with '#' are comments. - # - # First, include any systemwide bindings and variable - # assignments from /etc/Inputrc - $include /etc/Inputrc - - # - # Set various bindings for emacs mode. - - set editing-mode emacs - - $if mode=emacs - - Meta-Control-h: backward-kill-word Text after the function name is ignored - - # - # Arrow keys in keypad mode - # - #"\M-OD": backward-char - #"\M-OC": forward-char - #"\M-OA": previous-history - #"\M-OB": next-history - # - # Arrow keys in ANSI mode - # - "\M-[D": backward-char - "\M-[C": forward-char - "\M-[A": previous-history - "\M-[B": next-history - # - # Arrow keys in 8 bit keypad mode - # - #"\M-\C-OD": backward-char - #"\M-\C-OC": forward-char - #"\M-\C-OA": previous-history - #"\M-\C-OB": next-history - # - # Arrow keys in 8 bit ANSI mode - # - #"\M-\C-[D": backward-char - #"\M-\C-[C": forward-char - #"\M-\C-[A": previous-history - #"\M-\C-[B": next-history - - C-q: quoted-insert - - $endif - - # An old-style binding. This happens to be the default. - TAB: complete - - # Macros that are convenient for shell interaction - $if Bash - # edit the path - "\C-xp": "PATH=$@{PATH@}\e\C-e\C-a\ef\C-f" - # prepare to type a quoted word -- - # insert open and close double quotes - # and move to just after the open quote - "\C-x\"": "\"\"\C-b" - # insert a backslash (testing backslash escapes - # in sequences and macros) - "\C-x\\": "\\" - # Quote the current or previous word - "\C-xq": "\eb\"\ef\"" - # Add a binding to refresh the line, which is unbound - "\C-xr": redraw-current-line - # Edit variable on current line. - "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y=" - $endif - - # use a visible bell if one is available - set bell-style visible - - # don't strip characters to 7 bits when reading - set input-meta on - - # allow iso-latin1 characters to be inserted rather - # than converted to prefix-meta sequences - set convert-meta off - - # display characters with the eighth bit set directly - # rather than as meta-prefixed characters - set output-meta on - - # if there are more than 150 possible completions for - # a word, ask the user if he wants to see all of them - set completion-query-items 150 - - # For FTP - $if Ftp - "\C-xg": "get \M-?" - "\C-xt": "put \M-?" - "\M-.": yank-last-arg - $endif - @end example - - @node Bindable Readline Commands - @section Bindable Readline Commands - - @menu - * Commands For Moving:: Moving about the line. - * Commands For History:: Getting at previous lines. - * Commands For Text:: Commands for changing text. - * Commands For Killing:: Commands for killing and yanking. - * Numeric Arguments:: Specifying numeric arguments, repeat counts. - * Commands For Completion:: Getting Readline to do the typing for you. - * Keyboard Macros:: Saving and re-executing typed characters - * Miscellaneous Commands:: Other miscellaneous commands. - @end menu - - This section describes Readline commands that may be bound to key - sequences. - @ifset BashFeatures - You can list your key bindings by executing - @w{@code{bind -P}} or, for a more terse format, suitable for an - @var{inputrc} file, @w{@code{bind -p}}. (@xref{Bash Builtins}.) - @end ifset - Command names without an accompanying key sequence are unbound by default. - - In the following descriptions, @dfn{point} refers to the current cursor - position, and @dfn{mark} refers to a cursor position saved by the - @code{set-mark} command. - The text between the point and mark is referred to as the @dfn{region}. - - @node Commands For Moving - @subsection Commands For Moving - @ftable @code - @item beginning-of-line (C-a) - Move to the start of the current line. - - @item end-of-line (C-e) - Move to the end of the line. - - @item forward-char (C-f) - Move forward a character. - - @item backward-char (C-b) - Move back a character. - - @item forward-word (M-f) - Move forward to the end of the next word. Words are composed of - letters and digits. - - @item backward-word (M-b) - Move back to the start of the current or previous word. Words are - composed of letters and digits. - - @item clear-screen (C-l) - Clear the screen and redraw the current line, - leaving the current line at the top of the screen. - - @item redraw-current-line () - Refresh the current line. By default, this is unbound. - - @end ftable - - @node Commands For History - @subsection Commands For Manipulating The History - - @ftable @code - @item accept-line (Newline or Return) - @ifset BashFeatures - Accept the line regardless of where the cursor is. - If this line is - non-empty, add it to the history list according to the setting of - the @env{HISTCONTROL} and @env{HISTIGNORE} variables. - If this line is a modified history line, then restore the history line - to its original state. - @end ifset - @ifclear BashFeatures - Accept the line regardless of where the cursor is. - If this line is - non-empty, it may be added to the history list for future recall with - @code{add_history()}. - If this line is a modified history line, the history line is restored - to its original state. - @end ifclear - - @item previous-history (C-p) - Move `back' through the history list, fetching the previous command. - - @item next-history (C-n) - Move `forward' through the history list, fetching the next command. - - @item beginning-of-history (M-<) - Move to the first line in the history. - - @item end-of-history (M->) - Move to the end of the input history, i.e., the line currently - being entered. - - @item reverse-search-history (C-r) - Search backward starting at the current line and moving `up' through - the history as necessary. This is an incremental search. - - @item forward-search-history (C-s) - Search forward starting at the current line and moving `down' through - the the history as necessary. This is an incremental search. - - @item non-incremental-reverse-search-history (M-p) - Search backward starting at the current line and moving `up' - through the history as necessary using a non-incremental search - for a string supplied by the user. - - @item non-incremental-forward-search-history (M-n) - Search forward starting at the current line and moving `down' - through the the history as necessary using a non-incremental search - for a string supplied by the user. - - @item history-search-forward () - Search forward through the history for the string of characters - between the start of the current line and the point. - This is a non-incremental search. - By default, this command is unbound. - - @item history-search-backward () - Search backward through the history for the string of characters - between the start of the current line and the point. This - is a non-incremental search. By default, this command is unbound. - - @item yank-nth-arg (M-C-y) - Insert the first argument to the previous command (usually - the second word on the previous line) at point. - With an argument @var{n}, - insert the @var{n}th word from the previous command (the words - in the previous command begin with word 0). A negative argument - inserts the @var{n}th word from the end of the previous command. - - @item yank-last-arg (M-. or M-_) - Insert last argument to the previous command (the last word of the - previous history entry). With an - argument, behave exactly like @code{yank-nth-arg}. - Successive calls to @code{yank-last-arg} move back through the history - list, inserting the last argument of each line in turn. - - @end ftable - - @node Commands For Text - @subsection Commands For Changing Text - - @ftable @code - @item delete-char (C-d) - Delete the character at point. If point is at the - beginning of the line, there are no characters in the line, and - the last character typed was not bound to @code{delete-char}, then - return @sc{eof}. - - @item backward-delete-char (Rubout) - Delete the character behind the cursor. A numeric argument means - to kill the characters instead of deleting them. - - @item forward-backward-delete-char () - Delete the character under the cursor, unless the cursor is at the - end of the line, in which case the character behind the cursor is - deleted. By default, this is not bound to a key. - - @item quoted-insert (C-q or C-v) - Add the next character typed to the line verbatim. This is - how to insert key sequences like @kbd{C-q}, for example. - - @ifclear BashFeatures - @item tab-insert (M-@key{TAB}) - Insert a tab character. - @end ifclear - - @item self-insert (a, b, A, 1, !, @dots{}) - Insert yourself. - - @item transpose-chars (C-t) - Drag the character before the cursor forward over - the character at the cursor, moving the - cursor forward as well. If the insertion point - is at the end of the line, then this - transposes the last two characters of the line. - Negative arguments have no effect. - - @item transpose-words (M-t) - Drag the word before point past the word after point, - moving point past that word as well. - If the insertion point is at the end of the line, this transposes - the last two words on the line. - - @item upcase-word (M-u) - Uppercase the current (or following) word. With a negative argument, - uppercase the previous word, but do not move the cursor. - - @item downcase-word (M-l) - Lowercase the current (or following) word. With a negative argument, - lowercase the previous word, but do not move the cursor. - - @item capitalize-word (M-c) - Capitalize the current (or following) word. With a negative argument, - capitalize the previous word, but do not move the cursor. - - @item overwrite-mode () - Toggle overwrite mode. With an explicit positive numeric argument, - switches to overwrite mode. With an explicit non-positive numeric - argument, switches to insert mode. This command affects only - @code{emacs} mode; @code{vi} mode does overwrite differently. - Each call to @code{readline()} starts in insert mode. - - In overwrite mode, characters bound to @code{self-insert} replace - the text at point rather than pushing the text to the right. - Characters bound to @code{backward-delete-char} replace the character - before point with a space. - - By default, this command is unbound. - - @end ftable - - @node Commands For Killing - @subsection Killing And Yanking - - @ftable @code - - @item kill-line (C-k) - Kill the text from point to the end of the line. - - @item backward-kill-line (C-x Rubout) - Kill backward to the beginning of the line. - - @item unix-line-discard (C-u) - Kill backward from the cursor to the beginning of the current line. - - @item kill-whole-line () - Kill all characters on the current line, no matter where point is. - By default, this is unbound. - - @item kill-word (M-d) - Kill from point to the end of the current word, or if between - words, to the end of the next word. - Word boundaries are the same as @code{forward-word}. - - @item backward-kill-word (M-@key{DEL}) - Kill the word behind point. - Word boundaries are the same as @code{backward-word}. - - @item unix-word-rubout (C-w) - Kill the word behind point, using white space as a word boundary. - The killed text is saved on the kill-ring. - - @item delete-horizontal-space () - Delete all spaces and tabs around point. By default, this is unbound. - - @item kill-region () - Kill the text in the current region. - By default, this command is unbound. - - @item copy-region-as-kill () - Copy the text in the region to the kill buffer, so it can be yanked - right away. By default, this command is unbound. - - @item copy-backward-word () - Copy the word before point to the kill buffer. - The word boundaries are the same as @code{backward-word}. - By default, this command is unbound. - - @item copy-forward-word () - Copy the word following point to the kill buffer. - The word boundaries are the same as @code{forward-word}. - By default, this command is unbound. - - @item yank (C-y) - Yank the top of the kill ring into the buffer at point. - - @item yank-pop (M-y) - Rotate the kill-ring, and yank the new top. You can only do this if - the prior command is @code{yank} or @code{yank-pop}. - @end ftable - - @node Numeric Arguments - @subsection Specifying Numeric Arguments - @ftable @code - - @item digit-argument (@kbd{M-0}, @kbd{M-1}, @dots{} @kbd{M--}) - Add this digit to the argument already accumulating, or start a new - argument. @kbd{M--} starts a negative argument. - - @item universal-argument () - This is another way to specify an argument. - If this command is followed by one or more digits, optionally with a - leading minus sign, those digits define the argument. - If the command is followed by digits, executing @code{universal-argument} - again ends the numeric argument, but is otherwise ignored. - As a special case, if this command is immediately followed by a - character that is neither a digit or minus sign, the argument count - for the next command is multiplied by four. - The argument count is initially one, so executing this function the - first time makes the argument count four, a second time makes the - argument count sixteen, and so on. - By default, this is not bound to a key. - @end ftable - - @node Commands For Completion - @subsection Letting Readline Type For You - - @ftable @code - @item complete (@key{TAB}) - Attempt to perform completion on the text before point. - The actual completion performed is application-specific. - @ifset BashFeatures - Bash attempts completion treating the text as a variable (if the - text begins with @samp{$}), username (if the text begins with - @samp{~}), hostname (if the text begins with @samp{@@}), or - command (including aliases and functions) in turn. If none - of these produces a match, filename completion is attempted. - @end ifset - @ifclear BashFeatures - The default is filename completion. - @end ifclear - - @item possible-completions (M-?) - List the possible completions of the text before point. - - @item insert-completions (M-*) - Insert all completions of the text before point that would have - been generated by @code{possible-completions}. - - @item menu-complete () - Similar to @code{complete}, but replaces the word to be completed - with a single match from the list of possible completions. - Repeated execution of @code{menu-complete} steps through the list - of possible completions, inserting each match in turn. - At the end of the list of completions, the bell is rung - (subject to the setting of @code{bell-style}) - and the original text is restored. - An argument of @var{n} moves @var{n} positions forward in the list - of matches; a negative argument may be used to move backward - through the list. - This command is intended to be bound to @key{TAB}, but is unbound - by default. - - @item delete-char-or-list () - Deletes the character under the cursor if not at the beginning or - end of the line (like @code{delete-char}). - If at the end of the line, behaves identically to - @code{possible-completions}. - This command is unbound by default. - - @ifset BashFeatures - @item complete-filename (M-/) - Attempt filename completion on the text before point. - - @item possible-filename-completions (C-x /) - List the possible completions of the text before point, - treating it as a filename. - - @item complete-username (M-~) - Attempt completion on the text before point, treating - it as a username. - - @item possible-username-completions (C-x ~) - List the possible completions of the text before point, - treating it as a username. - - @item complete-variable (M-$) - Attempt completion on the text before point, treating - it as a shell variable. - - @item possible-variable-completions (C-x $) - List the possible completions of the text before point, - treating it as a shell variable. - - @item complete-hostname (M-@@) - Attempt completion on the text before point, treating - it as a hostname. - - @item possible-hostname-completions (C-x @@) - List the possible completions of the text before point, - treating it as a hostname. - - @item complete-command (M-!) - Attempt completion on the text before point, treating - it as a command name. Command completion attempts to - match the text against aliases, reserved words, shell - functions, shell builtins, and finally executable filenames, - in that order. - - @item possible-command-completions (C-x !) - List the possible completions of the text before point, - treating it as a command name. - - @item dynamic-complete-history (M-@key{TAB}) - Attempt completion on the text before point, comparing - the text against lines from the history list for possible - completion matches. - - @item complete-into-braces (M-@{) - Perform filename completion and insert the list of possible completions - enclosed within braces so the list is available to the shell - (@pxref{Brace Expansion}). - - @end ifset - @end ftable - - @node Keyboard Macros - @subsection Keyboard Macros - @ftable @code - - @item start-kbd-macro (C-x () - Begin saving the characters typed into the current keyboard macro. - - @item end-kbd-macro (C-x )) - Stop saving the characters typed into the current keyboard macro - and save the definition. - - @item call-last-kbd-macro (C-x e) - Re-execute the last keyboard macro defined, by making the characters - in the macro appear as if typed at the keyboard. - - @end ftable - - @node Miscellaneous Commands - @subsection Some Miscellaneous Commands - @ftable @code - - @item re-read-init-file (C-x C-r) - Read in the contents of the @var{inputrc} file, and incorporate - any bindings or variable assignments found there. - - @item abort (C-g) - Abort the current editing command and - ring the terminal's bell (subject to the setting of - @code{bell-style}). - - @item do-uppercase-version (M-a, M-b, M-@var{x}, @dots{}) - If the metafied character @var{x} is lowercase, run the command - that is bound to the corresponding uppercase character. - - @item prefix-meta (@key{ESC}) - Metafy the next character typed. This is for keyboards - without a meta key. Typing @samp{@key{ESC} f} is equivalent to typing - @kbd{M-f}. - - @item undo (C-_ or C-x C-u) - Incremental undo, separately remembered for each line. - - @item revert-line (M-r) - Undo all changes made to this line. This is like executing the @code{undo} - command enough times to get back to the beginning. - - @ifset BashFeatures - @item tilde-expand (M-&) - @end ifset - @ifclear BashFeatures - @item tilde-expand (M-~) - @end ifclear - Perform tilde expansion on the current word. - - @item set-mark (C-@@) - Set the mark to the point. If a - numeric argument is supplied, the mark is set to that position. - - @item exchange-point-and-mark (C-x C-x) - Swap the point with the mark. The current cursor position is set to - the saved position, and the old cursor position is saved as the mark. - - @item character-search (C-]) - A character is read and point is moved to the next occurrence of that - character. A negative count searches for previous occurrences. - - @item character-search-backward (M-C-]) - A character is read and point is moved to the previous occurrence - of that character. A negative count searches for subsequent - occurrences. - - @item insert-comment (M-#) - Without a numeric argument, the value of the @code{comment-begin} - variable is inserted at the beginning of the current line. - If a numeric argument is supplied, this command acts as a toggle: if - the characters at the beginning of the line do not match the value - of @code{comment-begin}, the value is inserted, otherwise - the characters in @code{comment-begin} are deleted from the beginning of - the line. - In either case, the line is accepted as if a newline had been typed. - @ifset BashFeatures - The default value of @code{comment-begin} causes this command - to make the current line a shell comment. - If a numeric argument causes the comment character to be removed, the line - will be executed by the shell. - @end ifset - - @item dump-functions () - Print all of the functions and their key bindings to the - Readline output stream. If a numeric argument is supplied, - the output is formatted in such a way that it can be made part - of an @var{inputrc} file. This command is unbound by default. - - @item dump-variables () - Print all of the settable variables and their values to the - Readline output stream. If a numeric argument is supplied, - the output is formatted in such a way that it can be made part - of an @var{inputrc} file. This command is unbound by default. - - @item dump-macros () - Print all of the Readline key sequences bound to macros and the - strings they output. If a numeric argument is supplied, - the output is formatted in such a way that it can be made part - of an @var{inputrc} file. This command is unbound by default. - - @ifset BashFeatures - @item glob-complete-word (M-g) - The word before point is treated as a pattern for pathname expansion, - with an asterisk implicitly appended. This pattern is used to - generate a list of matching file names for possible completions. - - @item glob-expand-word (C-x *) - The word before point is treated as a pattern for pathname expansion, - and the list of matching file names is inserted, replacing the word. - If a numeric argument is supplied, a @samp{*} is appended before - pathname expansion. - - @item glob-list-expansions (C-x g) - The list of expansions that would have been generated by - @code{glob-expand-word} is displayed, and the line is redrawn. - If a numeric argument is supplied, a @samp{*} is appended before - pathname expansion. - - @item display-shell-version (C-x C-v) - Display version information about the current instance of Bash. - - @item shell-expand-line (M-C-e) - Expand the line as the shell does. - This performs alias and history expansion as well as all of the shell - word expansions (@pxref{Shell Expansions}). - - @item history-expand-line (M-^) - Perform history expansion on the current line. - - @item magic-space () - Perform history expansion on the current line and insert a space - (@pxref{History Interaction}). - - @item alias-expand-line () - Perform alias expansion on the current line (@pxref{Aliases}). - - @item history-and-alias-expand-line () - Perform history and alias expansion on the current line. - - @item insert-last-argument (M-. or M-_) - A synonym for @code{yank-last-arg}. - - @item operate-and-get-next (C-o) - Accept the current line for execution and fetch the next line - relative to the current line from the history for editing. Any - argument is ignored. - - @item edit-and-execute-command (C-xC-e) - Invoke an editor on the current command line, and execute the result as shell - commands. - Bash attempts to invoke - @code{$FCEDIT}, @code{$EDITOR}, and @code{emacs} - as the editor, in that order. - - @end ifset - - @ifclear BashFeatures - @item emacs-editing-mode (C-e) - When in @code{vi} command mode, this causes a switch to @code{emacs} - editing mode. - - @item vi-editing-mode (M-C-j) - When in @code{emacs} editing mode, this causes a switch to @code{vi} - editing mode. - - @end ifclear - - @end ftable - - @node Readline vi Mode - @section Readline vi Mode - - While the Readline library does not have a full set of @code{vi} - editing functions, it does contain enough to allow simple editing - of the line. The Readline @code{vi} mode behaves as specified in - the @sc{posix} 1003.2 standard. - - @ifset BashFeatures - In order to switch interactively between @code{emacs} and @code{vi} - editing modes, use the @samp{set -o emacs} and @samp{set -o vi} - commands (@pxref{The Set Builtin}). - @end ifset - @ifclear BashFeatures - In order to switch interactively between @code{emacs} and @code{vi} - editing modes, use the command @kbd{M-C-j} (bound to emacs-editing-mode - when in @code{vi} mode and to vi-editing-mode in @code{emacs} mode). - @end ifclear - The Readline default is @code{emacs} mode. - - When you enter a line in @code{vi} mode, you are already placed in - `insertion' mode, as if you had typed an @samp{i}. Pressing @key{ESC} - switches you into `command' mode, where you can edit the text of the - line with the standard @code{vi} movement keys, move to previous - history lines with @samp{k} and subsequent lines with @samp{j}, and - so forth. - - @ifset BashFeatures - @node Programmable Completion - @section Programmable Completion - @cindex programmable completion - - When word completion is attempted for an argument to a command for - which a completion specification (a @var{compspec}) has been defined - using the @code{complete} builtin (@pxref{Programmable Completion Builtins}), - the programmable completion facilities are invoked. - - First, the command name is identified. - If a compspec has been defined for that command, the - compspec is used to generate the list of possible completions for the word. - If the command word is a full pathname, a compspec for the full - pathname is searched for first. - If no compspec is found for the full pathname, an attempt is made to - find a compspec for the portion following the final slash. - - Once a compspec has been found, it is used to generate the list of - matching words. - If a compspec is not found, the default Bash completion - described above (@pxref{Commands For Completion}) is performed. - - First, the actions specified by the compspec are used. - Only matches which are prefixed by the word being completed are - returned. - When the @option{-f} or @option{-d} option is used for filename or - directory name completion, the shell variable @env{FIGNORE} is - used to filter the matches. - @xref{Bash Variables}, for a description of @env{FIGNORE}. - - Any completions specified by a filename expansion pattern to the - @option{-G} option are generated next. - The words generated by the pattern need not match the word being completed. - The @env{GLOBIGNORE} shell variable is not used to filter the matches, - but the @env{FIGNORE} shell variable is used. - - Next, the string specified as the argument to the @option{-W} option - is considered. - The string is first split using the characters in the @env{IFS} - special variable as delimiters. - Shell quoting is honored. - Each word is then expanded using - brace expansion, tilde expansion, parameter and variable expansion, - command substitution, arithmetic expansion, and pathname expansion, - as described above (@pxref{Shell Expansions}). - The results are split using the rules described above - (@pxref{Word Splitting}). - The results of the expansion are prefix-matched against the word being - completed, and the matching words become the possible completions. - - After these matches have been generated, any shell function or command - specified with the @option{-F} and @option{-C} options is invoked. - When the command or function is invoked, the @env{COMP_LINE} and - @env{COMP_POINT} variables are assigned values as described above - (@pxref{Bash Variables}). - If a shell function is being invoked, the @env{COMP_WORDS} and - @env{COMP_CWORD} variables are also set. - When the function or command is invoked, the first argument is the - name of the command whose arguments are being completed, the - second argument is the word being completed, and the third argument - is the word preceding the word being completed on the current command line. - No filtering of the generated completions against the word being completed - is performed; the function or command has complete freedom in generating - the matches. - - Any function specified with @option{-F} is invoked first. - The function may use any of the shell facilities, including the - @code{compgen} builtin described below - (@pxref{Programmable Completion Builtins}), to generate the matches. - It must put the possible completions in the @env{COMPREPLY} array - variable. - - Next, any command specified with the @option{-C} option is invoked - in an environment equivalent to command substitution. - It should print a list of completions, one per line, to - the standard output. - Backslash may be used to escape a newline, if necessary. - - After all of the possible completions are generated, any filter - specified with the @option{-X} option is applied to the list. - The filter is a pattern as used for pathname expansion; a @samp{&} - in the pattern is replaced with the text of the word being completed. - A literal @samp{&} may be escaped with a backslash; the backslash - is removed before attempting a match. - Any completion that matches the pattern will be removed from the list. - A leading @samp{!} negates the pattern; in this case any completion - not matching the pattern will be removed. - - Finally, any prefix and suffix specified with the @option{-P} and @option{-S} - options are added to each member of the completion list, and the result is - returned to the Readline completion code as the list of possible - completions. - - If the previously-applied actions do not generate any matches, and the - @option{-o dirnames} option was supplied to @code{complete} when the - compspec was defined, directory name completion is attempted. - - By default, if a compspec is found, whatever it generates is returned to - the completion code as the full set of possible completions. - The default Bash completions are not attempted, and the Readline default - of filename completion is disabled. - If the @option{-o default} option was supplied to @code{complete} when the - compspec was defined, Readline's default completion will be performed - if the compspec generates no matches. - - When a compspec indicates that directory name completion is desired, - the programmable completion functions force Readline to append a slash - to completed names which are symbolic links to directories, subject to - the value of the @var{mark-directories} Readline variable, regardless - of the setting of the @var{mark-symlinked-directories} Readline variable. - - @node Programmable Completion Builtins - @section Programmable Completion Builtins - @cindex completion builtins - - Two builtin commands are available to manipulate the programmable completion - facilities. - - @table @code - @item compgen - @btindex compgen - @example - @code{compgen [@var{option}] [@var{word}]} - @end example - - Generate possible completion matches for @var{word} according to - the @var{option}s, which may be any option accepted by the - @code{complete} - builtin with the exception of @option{-p} and @option{-r}, and write - the matches to the standard output. - When using the @option{-F} or @option{-C} options, the various shell variables - set by the programmable completion facilities, while available, will not - have useful values. - - The matches will be generated in the same way as if the programmable - completion code had generated them directly from a completion specification - with the same flags. - If @var{word} is specified, only those completions matching @var{word} - will be displayed. - - The return value is true unless an invalid option is supplied, or no - matches were generated. - - @item complete - @btindex complete - @example - @code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}] - [-P @var{prefix}] [-S @var{suffix}] [-X @var{filterpat}] [-F @var{function}] - [-C @var{command}] @var{name} [@var{name} @dots{}]} - @code{complete -pr [@var{name} @dots{}]} - @end example - - Specify how arguments to each @var{name} should be completed. - If the @option{-p} option is supplied, or if no options are supplied, existing - completion specifications are printed in a way that allows them to be - reused as input. - The @option{-r} option removes a completion specification for - each @var{name}, or, if no @var{name}s are supplied, all - completion specifications. - - The process of applying these completion specifications when word completion - is attempted is described above (@pxref{Programmable Completion}). - - Other options, if specified, have the following meanings. - The arguments to the @option{-G}, @option{-W}, and @option{-X} options - (and, if necessary, the @option{-P} and @option{-S} options) - should be quoted to protect them from expansion before the - @code{complete} builtin is invoked. - - - @table @code - @item -o @var{comp-option} - The @var{comp-option} controls several aspects of the compspec's behavior - beyond the simple generation of completions. - @var{comp-option} may be one of: - - @table @code - - @item default - Use Readline's default filename completion if the compspec generates - no matches. - - @item dirnames - Perform directory name completion if the compspec generates no matches. - - @item filenames - Tell Readline that the compspec generates filenames, so it can perform any - filename\-specific processing (like adding a slash to directory names or - suppressing trailing spaces). This option is intended to be used with - shell functions specified with @option{-F}. - - @item nospace - Tell Readline not to append a space (the default) to words completed at - the end of the line. - @end table - - @item -A @var{action} - The @var{action} may be one of the following to generate a list of possible - completions: - - @table @code - @item alias - Alias names. May also be specified as @option{-a}. - - @item arrayvar - Array variable names. - - @item binding - Readline key binding names (@pxref{Bindable Readline Commands}). - - @item builtin - Names of shell builtin commands. May also be specified as @option{-b}. - - @item command - Command names. May also be specified as @option{-c}. - - @item directory - Directory names. May also be specified as @option{-d}. - - @item disabled - Names of disabled shell builtins. - - @item enabled - Names of enabled shell builtins. - - @item export - Names of exported shell variables. May also be specified as @option{-e}. - - @item file - File names. May also be specified as @option{-f}. - - @item function - Names of shell functions. - - @item group - Group names. May also be specified as @option{-g}. - - @item helptopic - Help topics as accepted by the @code{help} builtin (@pxref{Bash Builtins}). - - @item hostname - Hostnames, as taken from the file specified by the - @env{HOSTFILE} shell variable (@pxref{Bash Variables}). - - @item job - Job names, if job control is active. May also be specified as @option{-j}. - - @item keyword - Shell reserved words. May also be specified as @option{-k}. - - @item running - Names of running jobs, if job control is active. - - @item service - Service names. May also be specified as @option{-s}. - - @item setopt - Valid arguments for the @option{-o} option to the @code{set} builtin - (@pxref{The Set Builtin}). - - @item shopt - Shell option names as accepted by the @code{shopt} builtin - (@pxref{Bash Builtins}). - - @item signal - Signal names. - - @item stopped - Names of stopped jobs, if job control is active. - - @item user - User names. May also be specified as @option{-u}. - - @item variable - Names of all shell variables. May also be specified as @option{-v}. - @end table - - @item -G @var{globpat} - The filename expansion pattern @var{globpat} is expanded to generate - the possible completions. - - @item -W @var{wordlist} - The @var{wordlist} is split using the characters in the - @env{IFS} special variable as delimiters, and each resultant word - is expanded. - The possible completions are the members of the resultant list which - match the word being completed. - - @item -C @var{command} - @var{command} is executed in a subshell environment, and its output is - used as the possible completions. - - @item -F @var{function} - The shell function @var{function} is executed in the current shell - environment. - When it finishes, the possible completions are retrieved from the value - of the @env{COMPREPLY} array variable. - - @item -X @var{filterpat} - @var{filterpat} is a pattern as used for filename expansion. - It is applied to the list of possible completions generated by the - preceding options and arguments, and each completion matching - @var{filterpat} is removed from the list. - A leading @samp{!} in @var{filterpat} negates the pattern; in this - case, any completion not matching @var{filterpat} is removed. - - @item -P @var{prefix} - @var{prefix} is added at the beginning of each possible completion - after all other options have been applied. - - @item -S @var{suffix} - @var{suffix} is appended to each possible completion - after all other options have been applied. - @end table - - The return value is true unless an invalid option is supplied, an option - other than @option{-p} or @option{-r} is supplied without a @var{name} - argument, an attempt is made to remove a completion specification for - a @var{name} for which no specification exists, or - an error occurs adding a completion specification. - - @end table - @end ifset --- 0 ---- diff -aNrc2 readline-4.3-patched/doc/rluserman.dvi readline-5.0/doc/rluserman.dvi *** readline-4.3-patched/doc/rluserman.dvi Thu Jun 27 13:54:38 2002 --- readline-5.0/doc/rluserman.dvi Tue Jul 27 09:31:33 2004 *************** *** 1,34 **** ! ÷ƒ’À;è TeX output 2002.06.27:1354‹ÿÿÿÿŸòŽ ƒ3* þšé‘GóBÂÖN ¼j cmbx12ëBGNU–ƧReadline“Library“User“In‘ÿZterfaceŽ‘GŸ 0‰±ž¸Ÿ šª’Ï€Úó2Kñ`y ó3 ! cmr10ÝEdition–¦f4.3,“for“ó3ßêÝ,›9and‘8©ž™š¸hŽ‘#uŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘#uŸÙš‰ffÐlŽ‘qSž™š¸iŽŽ‘"BÞÝall–8©stand“for“themselv²!es“when“seen“in“this“text,˜or“in“an“init“ le“(seeŽ¦‘GSection–¦ý1.3“[Readline“Init“File],‘ç"page“4).‘ß¡If“yš²!our“k˜eybMÞoard“lac˜ks“a“ž™š¸hŽ‘‘ÉŸù@‰ffWˆŸÀ­LFDŽŽ‘‘ÉŸÙš‰ffWˆŽ‘fÞ™š¸iŽŽ‘ ¦¢Ýk˜ey‘ÿe,‘ç"t˜yping“ž™š¸hŽ‘‘ÉŸù@‰ff ‘ÒŸÀ­C-jŽŽ‘‘ÉŸÙš‰ff ‘ÒŽ‘¡ ž™š¸iŽŽŽ¦‘GÝwill–‹OproMÞduce“the“desired“cš²!haracter.‘ÔÕThe“ž™š¸hŽ‘vŸù@‰ff,(ŸÀ­RETŽŽ‘vŸÙš‰ff,(Ž‘µž™š¸iŽŽ‘CæÝk˜ey“ma˜y“bšMÞe“lab˜eled“ž™š¸hŽ‘vŸù@‰ffëŸÀ­ReturnŽŽ‘vŸÙš‰ff뎑 xž™š¸iŽŽ‘'/©Ýor“ž™š¸hŽ‘vŸù@‰ff©­ŸÀ­EnÃŽterŽŽ‘vŸÙš‰ff©­Ž‘:ž™š¸iŽŽ‘!ÁkÝon“someŽ¦‘Gk²!eybMÞoards.ŽŸ×”‘GëT1.2‘™Readline‘f@InŒÌteractionŽŽ¤‰n‘!GÝOften–kduring“an“in•²!teractiv“e–ksession“yš²!ou“t˜ypMÞe“in“a“long“line“of“text,‘&jonly“to“notice“that“theŽ¦‘G rst–ãÒwš²!ord“on“the“line“is“misspMÞelled.‘–"The“Readline“library“giv˜es“y˜ou“a“set“of“commands“forŽ¦‘Gmanipulating–“¡the“text“as“yš²!ou“t˜ypMÞe“it“in,‘—ballo˜wing“y˜ou“to“just“ x“y˜our“t˜ypMÞo,‘—band“not“forcingŽ¦‘Gyš²!ou–`ùto“ret˜ypMÞe“the“ma‘›»jorit˜y“of“the“line.‘ƹUsing“these“editing“commands,‘nÛy˜ou“mo˜v˜e“the“cursorŽ¦‘Gto–the“place“that“needs“correction,‘;Zand“delete“or“insert“the“text“of“the“corrections.‘CZThen,Ž¦‘Gwhen–½#yš²!ou“are“satis ed“with“the“line,‘ÂÒy˜ou“simply“press“ž™š¸hŽ‘§ïŸù@‰ff,(ŸÀ­RETŽŽ‘§ïŸÙš‰ff,(Ž‘Q‰ž™š¸iŽŽ‘êkÝ.‘"Y‘ÿeou“do“not“ha˜v˜e“to“bMÞe“at“theŽ¦‘Gend–N4of“the“line“to“press“ž™š¸hŽ‘9Ÿù@‰ff,(ŸÀ­RETŽŽ‘9ŸÙš‰ff,(Ž‘âšž™š¸iŽŽ‘{|Ý;‘¢the“en²!tire“line“is“accepted“regardless“of“the“loMÞcation“of“theŽ¦‘Gcursor–¦fwithin“the“line.ŽŸ¬v‘Gó]ÂÖN  #× cmbx12ë]1.2.1‘d(Readline–íMBare“Essen–átialsŽŽ¡‘!GÝIn–Äiorder“to“enš²!ter“c˜haracters“in˜to“the“line,‘ñ›simply“t˜ypMÞe“them.‘’‰The“t˜ypMÞed“c˜haracter“appMÞearsŽ¦‘Gwhere–æNthe“cursor“wš²!as,‘öHand“then“the“cursor“mo˜v˜es“one“space“to“the“righ˜t.‘–If“y˜ou“mist˜ypMÞe“aŽ¦‘Gc•²!haracter,›¦fy“ou˜can˜use˜y“our˜erase˜c“haracter˜to˜bac“k˜up˜and˜delete˜the˜mist“ypMÞed˜c“haracter.ŽŸ‰n‘!GSometimes–³lyš²!ou“ma˜y“mist˜ypMÞe“a“c˜haracter,‘¶®and“not“notice“the“error“un˜til“y˜ou“ha˜v˜e“t˜ypMÞedŽ¦‘Gsevš²!eral–wøother“c˜haracters.‘ÎcIn“that“case,‘Ay˜ou“can“t˜ypMÞe“äC-b“Ýto“mo˜v˜e“the“cursor“to“the“left,‘AandŽ¦‘Gthen–¦fcorrect“yš²!our“mistak˜e.‘ÝÝAfterw˜ards,“y˜ou“can“mo˜v˜e“the“cursor“to“the“righ˜t“with“äC-fÝ.ŽŽŒ‹Ÿò‘GÝ2’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘!GWhen–é"yš²!ou“add“text“in“the“middle“of“a“line,‘ùÑy˜ou“will“notice“that“c˜haracters“to“the“righ˜tŽ¤ 33‘Gof–q”the“cursor“are“`pushed“o•²!v“er'–q”to“makš²!e“roMÞom“for“the“text“that“y˜ou“ha˜v˜e“inserted.‘ÌBLik˜ewise,Ž¡‘Gwhen–‚ùyš²!ou“delete“text“bMÞehind“the“cursor,‘ºc˜haracters“to“the“righ˜t“of“the“cursor“are“`pulledŽ¡‘Gbacš²!k'–¹Õto“ ll“in“the“blank“space“created“b˜y“the“remo˜v‘ÿdDal“of“the“text.‘A‘¹™list“of“the“bare“essen˜tialsŽ¡‘Gfor–¦fediting“the“text“of“an“input“line“follo²!ws.ŽŸn‹‘GäC-b‘(‘õÝMo•²!v“e›¦fbac“k˜one˜c“haracter.Ž¤ZÑGäC-f‘(‘õÝMo•²!v“e›¦fforw“ard˜one˜c“haracter.Ž¡‘Gž™š¸hŽ‘üŸù@‰ff“úŸÀ­DELŽŽ‘üŸÙš‰ff“úŽ‘& ž™š¸iŽŽ‘-LÇÝor‘¦fž™š¸hŽ‘‘2Ÿù@‰ff&,ñŸÀ­BacÃŽkspaceŽŽ‘‘2ŸÙš‰ff&,ñŽ‘,;•ž™š¸iŽŽŽ© 33‘Kâ:ÝDelete–¦fthe“c²!haracter“to“the“left“of“the“cursor.Ž¡‘GäC-d‘(‘õÝDelete–¦fthe“c²!haracter“underneath“the“cursor.Ž¡‘GPrin•²!ting‘¦fc“haractersŽŽ¦‘Kâ:Insert–¦fthe“cš²!haracter“in˜to“the“line“at“the“cursor.Ž¡‘GäC-_–¦fÝor“äC-x“C-uŽ¦‘Kâ:ÝUndo–jthe“last“editing“command.‘÷éY‘ÿeou“can“undo“all“the“w•²!a“y›jbac“k˜to˜an˜empt“yŽ¦‘Kâ:line.Ž¤n‹‘G(DepMÞending– on“yš²!our“con guration,‘0¶the“ž™š¸hŽ‘ÿØŸù@‰ff&,ñŸÀ­BacÃŽkspaceŽŽ‘ÿØŸÙš‰ff&,ñŽ‘,ª;ž™š¸iŽŽ‘4X)Ýk˜ey“bMÞe“set“to“delete“the“c˜haracter“to“theŽ¦‘Gleft–ö¿of“the“cursor“and“the“ž™š¸hŽ‘á‹Ÿù@‰ff“úŸÀ­DELŽŽ‘á‹ŸÙš‰ff“úŽ‘ò÷ž™š¸iŽŽ‘‚˜Ýkš²!ey“set“to“delete“the“c˜haracter“underneath“the“cursor,‘ ! Õlik˜eŽ¦‘GäC-dÝ,–¦frather“than“the“c²!haracter“to“the“left“of“the“cursor.)ŽŸO ‘Gë]1.2.2‘d(Readline›íMMo•–áv“emen“t˜CommandsŽŽŸZÑ!GÝThe›"úabMÞo•²!v“e˜table˜describMÞes˜the˜most˜basic˜k“eystrok“es˜that˜y“ou˜need˜in˜order˜to˜do˜editingŽ¦‘Gof–Ìthe“input“line.‘«ªF‘ÿeor“yš²!our“con˜v˜enience,‘-ëman˜y“other“commands“ha˜v˜e“bMÞeen“added“in“additionŽ¦‘Gto›ÖõäC-bÝ,–ãäC-fÝ,“äC-dÝ,“and˜ž™š¸hŽ‘ÁÁŸù@‰ff“úŸÀ­DELŽŽ‘ÁÁŸÙš‰ff“úŽ‘Ó-ž™š¸iŽŽ‘lÝ.‘o‹Here˜are˜some˜commands˜for˜mo²!ving˜more˜rapidly˜abMÞout˜theŽ¦‘Gline.Ž¡‘GäC-a‘(‘õÝMo•²!v“e–¦fto“the“start“of“the“line.Ž¤ZÑGäC-e‘(‘õÝMo•²!v“e–¦fto“the“end“of“the“line.Ž¡‘GäM-f‘(‘õÝMo•²!v“e›¦fforw“ard˜a˜w“ord,˜where˜a˜w“ord˜is˜compMÞosed˜of˜letters˜and˜digits.Ž¡‘GäM-b‘(‘õÝMo•²!v“e›¦fbac“kw“ard˜a˜w“ord.Ž¡‘GäC-l‘(‘õÝClear–¦fthe“screen,“reprinš²!ting“the“curren˜t“line“at“the“top.ŽŸn‹‘!GNotice–ôKhoš²!w“äC-f“Ýmo˜v˜es“forw˜ard“a“c˜haracter,‘êwhile“äM-f“Ýmo˜v˜es“forw˜ard“a“w˜ord.‘¢It“is“a“loMÞoseŽ¦‘Gcon•²!v“en“tion–—†that“conš²!trol“k˜eystrok˜es“opMÞerate“on“c˜haracters“while“meta“k˜eystrok˜es“opMÞerate“onŽ¦‘Gw²!ords.ŽŸO ‘Gë]1.2.3‘d(Readline–íMKilling“CommandsŽŽŸZÑ!GáKilling‘lÝtext–{émeans“to“delete“the“text“from“the“line,‘±Jbut“to“sa•²!v“e–{éit“a•²!w“a“y–{éfor“later“use,Ž¦‘Gusually–Zbš²!y“áy˜anking‘rÝ(re-inserting)“it“bac˜k“in˜to“the“line.‘3¹(`Cut'“and“`paste'“are“more“recen˜tŽ¦‘Gjargon–¦ffor“`kill'“and“`y²!ank'.)ŽŸZÑ!GIf–¡°the“description“for“a“command“saš²!ys“that“it“`kills'“text,‘¢¡then“y˜ou“can“bMÞe“sure“that“y˜ouŽ¦‘Gcan–¦fget“the“text“bacš²!k“in“a“di eren˜t“(or“the“same)“place“later.ŽŽŒ‹FŸò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’MH3ŽŽŽ ƒ3* ý ÌÖ‘!GWhen–Ê›yš²!ou“use“a“kill“command,‘ö‘the“text“is“sa˜v˜ed“in“a“ákill-ringÝ.‘”šAn˜y“n˜um˜bMÞer“of“consecutiv˜eŽ¤ 33‘Gkills›¸$sa•²!v“e˜all˜of˜the˜killed˜text˜together,‘¼“so˜that˜when˜y“ou˜y“ank˜it˜bac“k,‘¼“y“ou˜get˜it˜all.‘TheŽ¡‘Gkill–âèring“is“not“line“spMÞeci c;‘(the“text“that“yš²!ou“killed“on“a“previously“t˜ypMÞed“line“is“a˜v‘ÿdDailableŽ¡‘Gto–¦fbMÞe“y•²!ank“ed›¦fbac“k˜later,˜when˜y“ou˜are˜t“yping˜another˜line.ŽŸó¶‘!GHere–¦fis“the“list“of“commands“for“killing“text.Ž¤´9‘GäC-k‘(‘õÝKill–¦fthe“text“from“the“curren²!t“cursor“pMÞosition“to“the“end“of“the“line.Ž¡‘GäM-d‘(‘õÝKill–)šfrom“the“cursor“to“the“end“of“the“currenš²!t“w˜ord,–Bor,“if–)šbMÞet˜w˜een“w˜ords,‘Bto“theŽ© 33‘Kâ:end–¦fof“the“next“wš²!ord.‘ÝÝW‘ÿeord“bMÞoundaries“are“the“same“as“those“used“b˜y“äM-fÝ.Ž¡‘GäM-ž™š¸hŽ‘êÌŸù@‰ff“úŸÀ­DELŽŽ‘êÌŸÙš‰ff“úŽ‘ü8ž™š¸iŽŽ‘.QŸÝKill–«ofrom“the“cursor“the“start“of“the“currenš²!t“w˜ord,–¬±or,“if–«obMÞet˜w˜een“w˜ords,‘¬±to“theŽ¦‘Kâ:start–of“the“previous“wš²!ord.‘ÁâW‘ÿeord“bMÞoundaries“are“the“same“as“those“used“b˜yŽ¦‘Kâ:äM-bÝ.Ž¡‘GäC-w‘(‘õÝKill–Àxfrom“the“cursor“to“the“previous“whitespace.‘,This“is“di eren²!t“than“äM-ž™š¸hŽ‘êÌŸù@‰ff“úŸÀ­DELŽŽ‘êÌŸÙš‰ff“úŽ‘ü8ž™š¸iŽŽŽ¦‘Kâ:ÝbšMÞecause–¦fthe“w²!ord“b˜oundaries“di er.Ž¡‘!GHere–ýáis“hoš²!w“to“áy˜ank‘§åÝthe“text“bac˜k“in˜to“the“line.‘äNY‘ÿeanking“means“to“cop˜y“the“most-Ž¦‘Grecen²!tly-killed–¦ftext“from“the“kill“bu er.Ž¡‘GäC-y‘(‘õÝY‘ÿeank–¦fthe“most“recenš²!tly“killed“text“bac˜k“in˜to“the“bu er“at“the“cursor.Ž¡‘GäM-y‘(‘õÝRotate–'!the“kill-ring,‘GPand“y²!ank“the“new“top.‘`Y‘ÿeou“can“only“do“this“if“the“priorŽ¦‘Kâ:command–¦fis“äC-y“Ýor“äM-yÝ.Ž¤A‰‘Gë]1.2.4‘d(Readline‘íMArgumen–átsŽŽŸó¶‘!GÝY‘ÿeou–‚Ücan“pass“nš²!umeric“argumen˜ts“to“Readline“commands.‘ÒSometimes“the“argumen˜t“actsŽ¦‘Gas–Ѥa“repMÞeat“counš²!t,‘sother“times“it“is“the“àsign‘¨¯Ýof“the“argumen˜t“that“is“signi can˜t.‘_–If“y˜ouŽ¦‘Gpass–a“negativš²!e“argumen˜t“to“a“command“whic˜h“normally“acts“in“a“forw˜ard“direction,‘ìthatŽ¦‘Gcommand–=Üwill“act“in“a“bac•²!kw“ard–=Üdirection.‘¤?F‘ÿeor“example,‘c¹to“kill“text“bac²!k“to“the“start“ofŽ¦‘Gthe–¦fline,“yš²!ou“migh˜t“t˜ypMÞe“`ÞM--“C-kÝ'.ŽŸó¶‘!GThe–bOgeneral“w•²!a“y–bOto“pass“nš²!umeric“argumen˜ts“to“a“command“is“to“t˜ypšMÞe“meta“digits“b˜eforeŽ¦‘Gthe–´command.‘RIf“the“ rst“`digit'“tš²!ypMÞed“is“a“min˜us“sign“(`Þ-Ý'),‘¸then“the“sign“of“the“argumen˜tŽ¦‘Gwill––ŠbMÞe“negativš²!e.‘®HOnce“y˜ou“ha˜v˜e“t˜ypMÞed“one“meta“digit“to“get“the“argumen˜t“started,‘Ò’y˜ouŽ¦‘Gcan–vòt²!ypMÞe“the“remainder“of“the“digits,›€oand“then“the“command.‘Î F‘ÿeor“example,˜to“giv²!e“the“äC-dŽ¦‘GÝcommand–~Gan“argumenš²!t“of“10,‘´?y˜ou“could“t˜ypMÞe“`ÞM-1–¦f0“C-dÝ',‘´?whic˜h–~Gwill“delete“the“next“tenŽ¦‘Gc²!haracters–¦fon“the“input“line.Ž¡‘Gë]1.2.5‘d(Searc–áhing–íMfor“Commands“in“the“HistoryŽŽŸó¶‘!GÝReadline–àTproš²!vides“commands“for“searc˜hing“through“the“command“history“for“lines“con-Ž¦‘Gtaining–¦fa“spMÞeci ed“string.‘ÝÝThere“are“t•²!w“o›¦fsearc“h˜moMÞdes:‘ÝÝáincremen“tal‘¸Ýand˜ánon-incremen“talÝ.ŽŸó¶‘!GIncremen•²!tal›¸searc“hes˜b•MÞegin˜b“efore˜the˜user˜has˜ nished˜t•²!yping˜the˜searc“h˜string.‘­£As˜eac“hŽ¦‘Gcš²!haracter–@|of“the“searc˜h“string“is“t˜ypMÞed,‘gReadline“displa˜ys“the“next“en˜try“from“the“historyŽ¦‘Gmatcš²!hing–â+the“string“t˜ypMÞed“so“far.‘œtAn“incremen˜tal“searc˜h“requires“only“as“man˜y“c˜haracters“asŽ¦‘Gneeded–tõto“ nd“the“desired“history“enš²!try–ÿe.‘ÍbT“o–tõsearc˜h“bac˜kw˜ard“in“the“history“for“a“particularŽ¦‘Gstring,‘0t•²!ypMÞe›‰cäC-rÝ.‘Ô1T“yping˜äC-s˜Ýsearc“hes˜forw“ard˜through˜the˜history‘ÿe.‘Ô1The˜c“haracters˜presen“tŽ¦‘Gin–^the“v›ÿdDalue“of“the“Þisearch-terminators“Ýv˜ariable“are“used“to“terminate“an“incremen²!talŽ¦‘Gsearc²!h.‘ƒ–If–ˆNthat“v›ÿdDariable“has“not“bMÞeen“assigned“a“v˜alue,‘ÀÈthe“ž™š¸hŽ‘sŸù@‰ff¤TŸÀ­ESCŽŽ‘sŸÙš‰ff¤TŽ‘”àž™š¸iŽŽ‘¶Ýand“äC-J“Ýc²!haracters“willŽŽŒ‹* Ÿò‘GÝ4’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Gterminate–Can“incremenš²!tal“searc˜h.‘ 3täC-g“Ýwill“abMÞort“an“incremen˜tal“searc˜h“and“restore“theŽ¤ 33‘Goriginal–xÓline.‘άWhen“the“searcš²!h“is“terminated,‘ðthe“history“en˜try“con˜taining“the“searc˜h“stringŽ¡‘GbMÞecomes–¦fthe“curren²!t“line.Ž©Ù™‘!GT‘ÿeo–¹¾ nd“other“matcš²!hing“en˜tries“in“the“history“list,‘¾”t˜ypMÞe“äC-r“Ýor“äC-s“Ýas“appropriate.‘äThisŽ¡‘Gwill–#“searcš²!h“bac˜kw˜ard“or“forw˜ard“in“the“history“for“the“next“en˜try“matc˜hing“the“searc˜h“stringŽ¡‘Gtš²!ypMÞed–ˆ5so“far.‘ƒIAn˜y“other“k˜ey“sequence“bMÞound“to“a“Readline“command“will“terminate“theŽ¡‘Gsearcš²!h–‡„and“execute“that“command.‘~=F‘ÿeor“instance,‘Àäa“ž™š¸hŽ‘rPŸù@‰ff,(ŸÀ­RETŽŽ‘rPŸÙš‰ff,(Ž‘êž™š¸iŽŽ‘Ki“Ýkš²!ey“sequence“b˜y“stripping“the“eigh˜th“bit“and“pre xing“anŽ¡’…³-ž™š¸hŽ’ˆùŸù@‰ff¤TŸÀ­ESCŽŽ’ˆùŸÙš‰ff¤TŽ’˜¿¿ž™š¸iŽŽ’ jzÝc•²!haracter,‘,µcon“v“erting–Ùthem“to“a“meta-pre xed“k²!ey“sequence.Ž¡’…³-The–¦fdefault“v‘ÿdDalue“is“`ÞonÝ'.Ž¦‘Kâ:Þdisable-completionŽ¡’…³-ÝIf–gset“to“`ÞOnÝ',‘—@Readline“will“inhibit“w²!ord“completion.‘èCompletionŽ¡’…³-cš²!haracters–!Ÿwill“bMÞe“inserted“in˜to“the“line“as“if“they“had“bšMÞeen“mapp˜edŽ¡’…³-to–¦fÞself-insertÝ.‘ÝÝThe“default“is“`ÞoffÝ'.Ž¦‘Kâ:Þediting-modeŽ¡’…³-ÝThe–rÖÞediting-mode“Ýv‘ÿdDariable“conš²!trols“whic˜h“default“set“of“k˜ey“bind-Ž¡’…³-ings–?is“used.‘§%By“default,‘#Readline“starts“up“in“Emacs“editing“moMÞde,Ž¡’…³-where–~«the“k•²!eystrok“es–~«are“most“similar“to“Emacs.‘ПThis“v‘ÿdDariable“canŽ¡’…³-bMÞe–¦fset“to“either“`ÞemacsÝ'“or“`ÞviÝ'.Ž¦‘Kâ:Þenable-keypadŽ¡’…³-ÝWhen–Ìïset“to“`ÞonÝ',‘ømReadline“will“try“to“enable“the“application“k²!eypadŽ¡’…³-when–1Ûit“is“called.‘·Some“systems“need“this“to“enable“the“arroš²!w“k˜eys.Ž¡’…³-The–¦fdefault“is“`ÞoffÝ'.Ž¦‘Kâ:Þexpand-tildeŽ¡’…³-ÝIf–Pset“to“`ÞonÝ',‘a[tilde“expansion“is“pMÞerformed“when“Readline“attemptsŽ¡’…³-w²!ord–¦fcompletion.‘ÝÝThe“default“is“`ÞoffÝ'.ŽŸNN’…³-If–’Žset“to“`ÞonÝ',‘–†the“history“cošMÞde“attempts“to“place“p˜oin²!t“at“the“sameŽ¡’…³-loMÞcation–žon“eacš²!h“history“line“retriv˜ed“with“Þprevious-history“ÝorŽ¡’…³-Þnext-historyÝ.ŽŽŒ‹H’Ÿò‘GÝ6’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Kâ:Þhorizontal-scroll-modeŽ¤ 33’…³-ÝThis–NËv‘ÿdDariable“can“bMÞe“set“to“either“`ÞonÝ'“or“`ÞoffÝ'.‘× Setting“it“to“`ÞonÝ'Ž¡’…³-means–$jthat“the“text“of“the“lines“bMÞeing“edited“will“scroll“horizon²!tallyŽ¡’…³-on–ÎÁa“single“screen“line“when“they“are“longer“than“the“width“of“theŽ¡’…³-screen,›:Åinstead–Ýof“wrapping“on²!to“a“new“screen“line.‘±By“default,˜thisŽ¡’…³-v‘ÿdDariable–¦fis“set“to“`ÞoffÝ'.Ž©ÌÍ‘Kâ:Þinput-metaŽ¡’…³-ÝIf–¾Ìset“to“`ÞonÝ',‘ÄåReadline“will“enable“eigh²!t-bit“input“(it“will“not“clearŽ¡’…³-the–Ã"eighš²!th“bit“in“the“c˜haracters“it“reads),‘ ! Pregardless“of“what“theŽ¡’…³-terminal–ÌÖclaims“it“can“suppMÞort.›Q-The“default“v‘ÿdDalue“is“`ÞoffÝ'.˜TheŽ¡’…³-name–¦fÞmeta-flag“Ýis“a“synon²!ym“for“this“v‘ÿdDariable.Ž¦‘Kâ:Þisearch-terminatorsŽ¡’…³-ÝThe–5Ñstring“of“cš²!haracters“that“should“terminate“an“incremen˜talŽ¡’…³-searcš²!h–ú|without“subsequen˜tly“executing“the“c˜haracter“as“a“commandŽ¡’…³-(see–Z±Section“1.2.5“[Searc²!hing],‘ÇÃpage“3).‘ ú¾If“this“v‘ÿdDariable“has“notŽ¡’…³-bMÞeen–Ç„givš²!en“a“v‘ÿdDalue,‘ÏÌthe“c˜haracters“ž™š¸hŽ‘²PŸù@‰ff¤TŸÀ­ESCŽŽ‘²PŸÙš‰ff¤TŽ‘Ôž™š¸iŽŽ‘4|Ýand“äC-J“Ýwill“terminate“anŽ¡’…³-incremen•²!tal‘¦fsearc“h.Ž¦‘Kâ:Þkeymap‘R÷ÝSets–©5Readline's“idea“of“the“currenš²!t“k˜eymap“for“k˜ey“binding“com-Ž¡’…³-mands.‘ ä™Acceptable–SOÞkeymap“Ýnames“are“ÞemacsÝ,‘¾‰Þemacs-standardÝ,Ž¡’…³-Þemacs-metaÝ,– 0Þemacs-ctlxÝ,“ÞviÝ,“Þvi-moveÝ,“Þvi-commandÝ,“andŽ¡’…³-Þvi-insertÝ.‘öÚÞvi–®ºÝis“equiv›ÿdDalen²!t“to“Þvi-commandÝ;‘2äÞemacs“Ýis“equiv˜alen²!tŽ¡’…³-to–Ó¯Þemacs-standardÝ.›e¸The“default“v‘ÿdDalue“is“ÞemacsÝ.˜The“v‘ÿdDalue“of“theŽ¡’…³-Þediting-mode–¦fÝv‘ÿdDariable“also“a ects“the“default“k²!eymap.Ž¦‘Kâ:Þmark-directoriesŽ¡’…³-ÝIf––¿set“to“`ÞonÝ',‘ÒÕcompleted“directory“names“ha•²!v“e––¿a“slash“appMÞended.Ž¡’…³-The–¦fdefault“is“`ÞonÝ'.Ž¦‘Kâ:Þmark-modified-linesŽ¡’…³-ÝThis–N”v‘ÿdDariable,›xŸwhen“set“to“`ÞonÝ',˜causes“Readline“to“displa²!y“an“as-Ž¡’…³-terisk– š(`Þ*Ý')“at“the“start“of“history“lines“whicš²!h“ha˜v˜e“bšMÞeen“mo˜di ed.Ž¡’…³-This–¦fv‘ÿdDariable“is“`ÞoffÝ'“b²!y“default.Ž¦‘Kâ:Þmark-symlinked-directoriesŽ¡’…³-ÝIf–_set“to“`ÞonÝ',‘ÍÙcompleted“names“whicš²!h“are“sym˜bMÞolic“links“to“di-Ž¡’…³-rectories›|ha•²!v“e˜a˜slash˜appMÞended˜(sub‘›»ject˜to˜the˜v‘ÿdDalue˜of˜Þmark-Ž¡’…³-directoriesÝ).‘ÝÝThe–¦fdefault“is“`ÞoffÝ'.Ž¦‘Kâ:Þmatch-hidden-filesŽ¡’…³-ÝThis–«sv‘ÿdDariable,›Ý£when“set“to“`ÞonÝ',˜causes“Readline“to“matc²!h“ les“whoseŽ¡’…³-names–MÍbšMÞegin“with“a“`Þ.Ý'“(hidden“ les)“when“p˜erforming“ lenameŽ¡’…³-completion,‘R unless–ü•the“leading“`Þ.Ý'“is“supplied“b²!y“the“user“in“theŽ¡’…³- lename–¦fto“bMÞe“completed.‘ÝÝThis“v‘ÿdDariable“is“`ÞonÝ'“b²!y“default.Ž¦‘Kâ:Þoutput-metaŽ¡’…³-ÝIf–Aset“to“`ÞonÝ',‘gªReadline“will“displaš²!y“c˜haracters“with“the“eigh˜th“bitŽ¡’…³-set–`!directly“rather“than“as“a“meta-pre xed“escapMÞe“sequence.‘ TheŽ¡’…³-default–¦fis“`ÞoffÝ'.ŽŽŒ‹TdŸò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’MH7ŽŽŽ ƒ3* ý ÌÖ‘Kâ:Þpage-completionsŽ¤ 33’…³-ÝIf–ôset“to“`ÞonÝ',‘,×Readline“uses“an“inš²!ternal“ÞmoreÝ-lik˜e“pager“to“displa˜yŽ¡’…³-a–ã¹screenful“of“pMÞossible“completions“at“a“time.‘•ÖThis“v‘ÿdDariable“is“`ÞonÝ'Ž¡’…³-b²!y‘¦fdefault.Ž©¨©‘Kâ:Þprint-completions-horizontallyŽ¡’…³-ÝIf–àset“to“`ÞonÝ',‘»Readline“will“displaš²!y“completions“with“matc˜hes“sortedŽ¡’…³-horizonš²!tally–8Ôin“alphabMÞetical“order,‘orather“than“do˜wn“the“screen.Ž¡’…³-The–¦fdefault“is“`ÞoffÝ'.Ž¦‘Kâ:Þshow-all-if-ambiguousŽ¡’…³-ÝThis–™]alters“the“default“bMÞeha²!vior“of“the“completion“functions.‘Ù…If“setŽ¡’…³-to–L`ÞonÝ',‘^.wš²!ords“whic˜h“ha˜v˜e“more“than“one“pMÞossible“completion“causeŽ¡’…³-the–­matc²!hes“to“bšMÞe“listed“immediately“instead“of“ringing“the“b˜ell.Ž¡’…³-The–¦fdefault“v‘ÿdDalue“is“`ÞoffÝ'.Ž¦‘Kâ:Þvisible-statsŽ¡’…³-ÝIf–Ôvset“to“`ÞonÝ',‘ßúa“cš²!haracter“denoting“a“ le's“t˜ypšMÞe“is“app˜ended“to“theŽ¡’…³- lename–¦fwhen“listing“pMÞossible“completions.‘ÝÝThe“default“is“`ÞoffÝ'.Ž¦‘GKey‘¦fBindingsŽ¡‘Kâ:The– synš²!tax“for“con˜trolling“k˜ey“bindings“in“the“init“ le“is“simple.‘ First“y˜ouŽ¡‘Kâ:need–QÓto“ nd“the“name“of“the“command“that“yš²!ou“w˜an˜t“to“c˜hange.‘Á¬The“follo˜wingŽ¡‘Kâ:sections–Oconš²!tain“tables“of“the“command“name,‘yLthe“default“k˜eybinding,‘yLif“an˜y‘ÿe,Ž¡‘Kâ:and–¦fa“short“description“of“what“the“command“doMÞes.Ž©mî‘Kâ:Once–P…yš²!ou“kno˜w“the“name“of“the“command,‘{ simply“place“on“a“line“in“the“initŽ¡‘Kâ: le– the“name“of“the“kš²!ey“y˜ou“wish“to“bind“the“command“to,›$'a“colon,˜and“thenŽ¡‘Kâ:the–Ö«name“of“the“command.‘n«The“name“of“the“kš²!ey“can“bMÞe“expressed“in“di eren˜tŽ¡‘Kâ:w•²!a“ys,–¦fdepMÞending“on“what“y²!ou“ nd“most“comfortable.Ž¦‘Kâ:In–SÞaddition“to“command“names,‘“output"Ž¦’…³-ÝIn–¥3the“abšMÞo•²!v“e–¥3example,‘äåäC-u“Ýis“b˜ound“to“the“function“Þuniversal-Ž¤ 33’…³-argumentÝ,‘ÄôäM-DEL–‹¥Ýis“bMÞound“to“the“function“Þbackward-kill-wordÝ,Ž¡’…³-and–®¿äC-o“Ýis“bMÞound“to“run“the“macro“expressed“on“the“righ²!t“handŽ¡’…³-side–¦f(that“is,“to“insert“the“text“`Þ>“outputÝ'“in²!to“the“line).Ž¦’…³-A‘qn•²!um“bšMÞer–q4of“sym²!b˜olic“c²!haracter“names“are“recognized“while“pro-Ž¡’…³-cessing–Ôöthis“kš²!ey“binding“syn˜tax:‘u%áDELÝ,“áESCÝ,“áESCAPEÝ,“áLFDÝ,“áNEW-Ž¡’…³-LINEÝ,–¦fáRETÝ,“áRETURNÝ,“áRš²!UBOUTÝ,“áSP‘ÿeA˜CEÝ,“áSPCÝ,“and“áT‘ÿeABÝ.ŽŸ¨©‘Kâ:Þ"ák²!eyseq@æÞ"Ý:‘ÝÝáfunction-name‘CmÝor‘¦fámacroŽŽ¡’…³-kš²!eyseq‘ú«Ýdi ers–¹Åfrom“ák˜eyname‘VÌÝabMÞo˜v˜e“in“that“strings“denoting“an“en-Ž¡’…³-tire– hk²!ey“sequence“can“bšMÞe“sp˜eci ed,‘%èbš²!y“placing“the“k˜ey“sequence“inŽ¡’…³-double–‰ôquotes.‘ÔbSome“ãgnu“ÝEmacs“stš²!yle“k˜ey“escapšMÞes“can“b˜e“used,‘¤asŽŽŒ‹`zŸò‘GÝ8’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ’…³-in–Ãthe“folloš²!wing“example,‘(Ùbut“the“spMÞecial“c˜haracter“names“are“notŽ© 33’…³-recognized.ŽŸÃû’¢›‚Þ"\C-u":‘¿ªuniversal-argumentŽ¤ €’¢›‚"\C-x\C-r":‘¿ªre-read-init-fileŽ¡’¢›‚"\e[11~":–¿ª"Function“Key“1"ŽŸw.’…³-ÝIn–Â×the“abšMÞo•²!v“e–Â×example,‘ÉòäC-u“Ýis“again“b˜ound“to“the“functionŽ¦’…³-Þuniversal-argument–?ßÝ(just“as“it“w²!as“in“the“ rst“example),‘¦=`äC-xŽ¦’…³-C-rÝ'–ópis“bMÞound“to“the“function“Þre-read-init-fileÝ,‘F²and“`ž™š¸hŽ‘êÌŸù@‰ff¤TŸÀ­ESCŽŽ‘êÌŸÙš‰ff¤TŽ‘ ’ž™š¸iŽŽ‘KÚž™šhŽ‘6¦Ÿù@‰ff\tŸÀ­[ŽŽ‘6¦Ÿ‰ff\tŽ‘Œž™š¸iŽŽŽ¦’…³-ž™šhŽ’ˆùŸù@‰ff@ŸÀ­1ŽŽ’ˆùŸÙš‰ff@Ž’Œ[ož™š¸iŽŽ’“š·ž™šhŽ’–…ƒŸù@‰ff@ŸÀ­1ŽŽ’–…ƒŸÙš‰ff@Ž’šBùž™š¸iŽŽ’¡‚Až™šhŽ’¤m Ÿù@‰ff¿ªŸÀÞ~ŽŽ’¤m ŸÙš‰ff¿ªŽ’©ª)ž™š¸iŽŽ’­C Ý'–¦fis“bMÞound“to“insert“the“text“`ÞFunction“Key“1Ý'.Ž¤»)‘Kâ:The–’Äfolloš²!wing“ãgnu“ÝEmacs“st˜yle“escapMÞe“sequences“are“a˜v‘ÿdDailable“when“spMÞecifyingŽ¦‘Kâ:k²!ey‘¦fsequences:Ž¡‘Kâ:ä\C-‘(‘õÝcon²!trol‘¦fpre xŽ¡‘Kâ:ä\M-‘(‘õÝmeta‘¦fpre xŽ¡‘Kâ:ä\e‘.QŸÝan–¦fescapMÞe“c²!haracterŽ¡‘Kâ:ä\\‘.QŸÝbac²!kslashŽ¡‘Kâ:ä\Þ"‘.QŸž™š¸hŽ‘1)Ž¡‘Kâ:ÝMo•²!v“e–¦fto“the“end“of“the“input“history‘ÿe,“i.e.,“the“line“currenš²!tly“bMÞeing“en˜tered.Ž¦‘GÞreverse-search-history‘¦f(C-r)Ž¡‘Kâ:ÝSearc•²!h›½:bac“kw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`up'˜through˜the˜his-Ž¡‘Kâ:tory–¦fas“necessary‘ÿe.‘ÝÝThis“is“an“incremenš²!tal“searc˜h.Ž¦‘GÞforward-search-history‘¦f(C-s)Ž¡‘Kâ:ÝSearc•²!h›‰÷forw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`do“wn'˜through˜the˜theŽ¡‘Kâ:history–¦fas“necessary‘ÿe.‘ÝÝThis“is“an“incremenš²!tal“searc˜h.Ž¦‘GÞnon-incremental-reverse-search-history‘¦f(M-p)Ž¡‘Kâ:ÝSearc•²!h›½:bac“kw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`up'˜through˜the˜his-Ž¡‘Kâ:tory–Ryas“necessary“using“a“non-incremenš²!tal“searc˜h“for“a“string“supplied“b˜y“theŽ¡‘Kâ:user.Ž¦‘GÞnon-incremental-forward-search-history‘¦f(M-n)Ž¡‘Kâ:ÝSearc•²!h›‰÷forw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`do“wn'˜through˜the˜theŽ¡‘Kâ:history–3ªas“necessary“using“a“non-incremenš²!tal“searc˜h“for“a“string“supplied“b˜y“theŽ¡‘Kâ:user.Ž¦‘GÞhistory-search-forward‘¦f()Ž¡‘Kâ:ÝSearc•²!h›úOforw“ard˜through˜the˜history˜for˜the˜string˜of˜c“haracters˜bMÞet“w“een˜theŽ¡‘Kâ:start–7®of“the“currenš²!t“line“and“the“pMÞoin˜t.‘‘¶This“is“a“non-incremen˜tal“searc˜h.‘‘¶ByŽ¡‘Kâ:default,–¦fthis“command“is“un²!bMÞound.Ž¦‘GÞhistory-search-backward‘¦f()Ž¡‘Kâ:ÝSearc•²!h›-»bac“kw“ard˜through˜the˜history˜for˜the˜string˜of˜c“haracters˜bMÞet“w“een˜theŽ¡‘Kâ:start–7®of“the“currenš²!t“line“and“the“pMÞoin˜t.‘‘¶This“is“a“non-incremen˜tal“searc˜h.‘‘¶ByŽ¡‘Kâ:default,–¦fthis“command“is“un²!bMÞound.Ž¦‘GÞyank-nth-arg‘¦f(M-C-y)Ž¡‘Kâ:ÝInsert–@the“ rst“argumenš²!t“to“the“previous“command“(usually“the“second“w˜ord“onŽ¡‘Kâ:the–˜Gprevious“line)“at“pMÞoinš²!t.‘Ù(With“an“argumen˜t“ánÝ,‘›insert“the“ánÝth“w˜ord“from“theŽ¡‘Kâ:previous–<command“(the“wš²!ords“in“the“previous“command“bMÞegin“with“w˜ord“0).‘ºhAŽ¡‘Kâ:negativ•²!e›Þargumen“t˜inserts˜the˜ánÝth˜w“ord˜from˜the˜end˜of˜the˜previous˜command.Ž¦‘GÞyank-last-arg–¦f(M-.“or“M-_)Ž¡‘Kâ:ÝInsert–5Elast“argumenš²!t“to“the“previous“command“(the“last“w˜ord“of“the“previousŽ¡‘Kâ:history–¬fenš²!try).‘ïÜWith“an“argumen˜t,‘­æbMÞeha˜v˜e“exactly“lik˜e“Þyank-nth-argÝ.‘ïÜSucces-Ž¡‘Kâ:sivš²!e–&—calls“to“Þyank-last-arg“Ýmo˜v˜e“bac˜k“through“the“history“list,‘F£inserting“theŽ¡‘Kâ:last–¦fargumenš²!t“of“eac˜h“line“in“turn.ŽŽŒ‹—êŸò‘GÝ14’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Gë]1.4.3‘d(Commands–íMF›þÄ£or“Changing“T˜extŽŽŸ ê‘GÞdelete-char‘¦f(C-d)Ž¤ 33‘Kâ:ÝDelete–«¤the“cš²!haracter“at“pMÞoin˜t.‘í–If“pMÞoin˜t“is“at“the“bMÞeginning“of“the“line,‘ìóthereŽ¡‘Kâ:are–rÝno“cš²!haracters“in“the“line,‘¥ûand“the“last“c˜haracter“t˜ypMÞed“w˜as“not“bMÞound“toŽ¡‘Kâ:Þdelete-charÝ,–¦fthen“return“ãeofÝ.Ž©m·‘GÞbackward-delete-char‘¦f(Rubout)Ž¡‘Kâ:ÝDelete–Ÿ§the“cš²!haracter“bMÞehind“the“cursor.‘ÛA‘Ÿ¥n˜umeric“argumen˜t“means“to“kill“theŽ¡‘Kâ:c²!haracters–¦finstead“of“deleting“them.Ž¦‘GÞforward-backward-delete-char‘¦f()Ž¡‘Kâ:ÝDelete–˜‘the“c²!haracter“under“the“cursor,‘Õunless“the“cursor“is“at“the“end“of“theŽ¡‘Kâ:line,‘×~in–Í­whicš²!h“case“the“c˜haracter“bMÞehind“the“cursor“is“deleted.‘S±By“default,‘×~thisŽ¡‘Kâ:is–¦fnot“bMÞound“to“a“k²!ey‘ÿe.Ž¦‘GÞquoted-insert–¦f(C-q“or“C-v)Ž¡‘Kâ:ÝAdd–¸the“next“cš²!haracter“t˜ypMÞed“to“the“line“v˜erbatim.‘CÔThis“is“ho˜w“to“insert“k˜eyŽ¡‘Kâ:sequences–¦flik²!e“äC-qÝ,“for“example.Ž¦‘GÞtab-insert‘¦f(M-ž™š¸hŽ‘êÌŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘êÌŸÙš‰ffÐlŽ‘8ªž™š¸iŽŽ‘ÑŒÞ)Ž¡‘Kâ:ÝInsert–¦fa“tab“c²!haracter.Ž¦‘GÞself-insert–¦f(a,“b,“A,“1,“!,“...Ž‘åe)Ž¡‘Kâ:ÝInsert‘¦fy²!ourself.Ž¦‘GÞtranspose-chars‘¦f(C-t)Ž¡‘Kâ:ÝDrag–Õãthe“cš²!haracter“bMÞefore“the“cursor“forw˜ard“o˜v˜er“the“c˜haracter“at“the“cursor,Ž¡‘Kâ:moš²!ving–C"the“cursor“forw˜ard“as“w˜ell.‘´If“the“insertion“pMÞoin˜t“is“at“the“end“of“theŽ¡‘Kâ:line,‘ÕÍthen–¡¦this“transpMÞoses“the“last“t•²!w“o›¡¦c“haracters˜of˜the˜line.‘†óNegativ“e˜argumen“tsŽ¡‘Kâ:ha•²!v“e–¦fno“e ect.Ž¦‘GÞtranspose-words‘¦f(M-t)Ž¡‘Kâ:ÝDrag–áÜthe“w²!ord“bšMÞefore“p˜oinš²!t“past“the“w˜ord“after“pMÞoin˜t,‘ðºmo˜ving“pMÞoin˜t“past“thatŽ¡‘Kâ:wš²!ord–g¸as“w˜ell.‘ÈøIf“the“insertion“pMÞoin˜t“is“at“the“end“of“the“line,‘tAthis“transpMÞoses“theŽ¡‘Kâ:last›¦ft•²!w“o˜w“ords˜on˜the˜line.Ž¦‘GÞupcase-word‘¦f(M-u)Ž¡‘Kâ:ÝUppMÞercase–ÖÓthe“currenš²!t“(or“follo˜wing)“w˜ord.‘o#With“a“negativ˜e“argumen˜t,‘âîuppMÞer-Ž¡‘Kâ:case–¦fthe“previous“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.Ž¦‘GÞdowncase-word‘¦f(M-l)Ž¡‘Kâ:ÝLo•²!w“ercase–”ãthe“currenš²!t“(or“follo˜wing)“w˜ord.‘‚²With“a“negativ˜e“argumen˜t,‘Ë–lo˜w˜ercaseŽ¡‘Kâ:the–¦fprevious“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.Ž¦‘GÞcapitalize-word‘¦f(M-c)Ž¡‘Kâ:ÝCapitalize–6the“currenš²!t“(or“follo˜wing)“w˜ord.‘€#With“a“negativ˜e“argumen˜t,‘ÅrcapitalizeŽ¡‘Kâ:the–¦fprevious“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.ŽŽŒ‹¢¤Ÿò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®15ŽŽŽ ƒ3* ý ÌÖ‘GÞoverwrite-mode‘¦f()Ž¤ 33‘Kâ:ÝT‘ÿeoggle›öo•²!v“erwrite˜mo•MÞde.‘Í With˜an˜explicit˜p“ositiv•²!e˜n“umeric˜argumen“t,‘ ! switc“hesŽ¡‘Kâ:to›™ÿo•²!v“erwrite˜mo•MÞde.‘„fWith˜an˜explicit˜non-p“ositiv•²!e˜n“umeric˜argumen“t,‘Ï®switc“hes˜toŽ¡‘Kâ:insert–¬ÛmošMÞde.‘ñ=This“command“a ects“only“Þemacs“Ýmo˜de;‘°Þvi“Ýmo˜de“do˜es“o•²!v“erwriteŽ¡‘Kâ:di eren•²!tly‘ÿe.‘ÝÝEac“h–¦fcall“to“Þreadline()“Ýstarts“in“insert“moMÞde.Ž©Yé‘Kâ:In›Ço•²!v“erwrite˜moMÞde,‘‰c“haracters˜b•MÞound˜to˜Þself-insert˜Ýreplace˜the˜text˜at˜p“oin²!tŽ¡‘Kâ:rather–þîthan“pushing“the“text“to“the“righ²!t.‘çtCharacters“bMÞound“to“Þbackward-Ž¡‘Kâ:delete-char–¦fÝreplace“the“c²!haracter“bšMÞefore“p˜oin²!t“with“a“space.Ž¦‘Kâ:By–¦fdefault,“this“command“is“un²!bMÞound.ŽŸšÙ‘Gë]1.4.4‘d(Killing–íMAnd“Y‘þÄ£ankingŽŽŸôÑGÞkill-line‘¦f(C-k)Ž¡‘Kâ:ÝKill–¦fthe“text“from“pMÞoin²!t“to“the“end“of“the“line.Ž©§U‘GÞbackward-kill-line–¦f(C-x“Rubout)Ž¡‘Kâ:ÝKill›¦fbac•²!kw“ard˜to˜the˜bMÞeginning˜of˜the˜line.Ž¦‘GÞunix-line-discard‘¦f(C-u)Ž¡‘Kâ:ÝKill›¦fbac•²!kw“ard˜from˜the˜cursor˜to˜the˜bMÞeginning˜of˜the˜curren“t˜line.Ž¦‘GÞkill-whole-line‘¦f()Ž¡‘Kâ:ÝKill–cjall“cš²!haracters“on“the“curren˜t“line,‘’ªno“matter“where“pMÞoin˜t“is.‘èBy“default,Ž¡‘Kâ:this–¦fis“un²!bMÞound.Ž¦‘GÞkill-word‘¦f(M-d)Ž¡‘Kâ:ÝKill–‡ from“pMÞoinš²!t“to“the“end“of“the“curren˜t“w˜ord,‘Qor“if“bMÞet˜w˜een“w˜ords,‘Qto“the“endŽ¡‘Kâ:of–¦fthe“next“w²!ord.‘ÝÝW‘ÿeord“bMÞoundaries“are“the“same“as“Þforward-wordÝ.Ž¦‘GÞbackward-kill-word‘¦f(M-ž™š¸hŽ‘êÌŸù@‰ff“úŸÀ­DELŽŽ‘êÌŸÙš‰ff“úŽ‘ü8ž™š¸iŽŽ‘•Þ)Ž¡‘Kâ:ÝKill–wÖthe“w²!ord“bšMÞehind“p˜oin²!t.‘ÎXW‘ÿeord“b˜oundaries“are“the“same“as“Þbackward-wordÝ.Ž¦‘GÞunix-word-rubout‘¦f(C-w)Ž¡‘Kâ:ÝKill–ÍLthe“w²!ord“bšMÞehind“p˜oinš²!t,‘×using“white“space“as“a“w˜ord“bMÞoundary‘ÿe.‘RThe“killedŽ¡‘Kâ:text–¦fis“sa•²!v“ed–¦fon“the“kill-ring.Ž¦‘GÞdelete-horizontal-space‘¦f()Ž¡‘Kâ:ÝDelete–¦fall“spaces“and“tabs“around“pMÞoinš²!t.‘ÝÝBy“default,“this“is“un˜bMÞound.Ž¦‘GÞkill-region‘¦f()Ž¡‘Kâ:ÝKill–¦fthe“text“in“the“currenš²!t“region.‘ÝÝBy“default,“this“command“is“un˜bMÞound.Ž¦‘GÞcopy-region-as-kill‘¦f()Ž¡‘Kâ:ÝCopš²!y–³the“text“in“the“region“to“the“kill“bu er,‘0Eso“it“can“bMÞe“y˜ank˜ed“righ˜t“a˜w˜a˜y‘ÿe.Ž¡‘Kâ:By–¦fdefault,“this“command“is“un²!bMÞound.Ž¦‘GÞcopy-backward-word‘¦f()Ž¡‘Kâ:ÝCopš²!y–žthe“w˜ord“bšMÞefore“p˜oinš²!t“to“the“kill“bu er.‘ÄÿThe“w˜ord“bMÞoundaries“are“theŽ¡‘Kâ:same–¦fas“Þbackward-wordÝ.‘ÝÝBy“default,“this“command“is“un²!bMÞound.ŽŽŒ‹¬ºŸò‘GÝ16’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘GÞcopy-forward-word‘¦f()Ž¤ 33‘Kâ:ÝCopš²!y–º8the“w˜ord“follo˜wing“pMÞoin˜t“to“the“kill“bu er.‘SThe“w˜ord“bMÞoundaries“are“theŽ¡‘Kâ:same–¦fas“Þforward-wordÝ.‘ÝÝBy“default,“this“command“is“un²!bMÞound.Ž©{‘GÞyank‘¦f(C-y)Ž¡‘Kâ:ÝY‘ÿeank–¦fthe“top“of“the“kill“ring“inš²!to“the“bu er“at“pMÞoin˜t.Ž¦‘GÞyank-pop‘¦f(M-y)Ž¡‘Kâ:ÝRotate–'!the“kill-ring,‘GPand“y²!ank“the“new“top.‘`Y‘ÿeou“can“only“do“this“if“the“priorŽ¡‘Kâ:command–¦fis“Þyank“Ýor“Þyank-popÝ.ŽŸáG‘Gë]1.4.5‘d(Spiecifying–íMNumeric“Argumen–átsŽŽŸ{‘GÞdigit-argument–¦f(äM-0Þ,“äM-1Þ,“...Ž‘‹ËäM--Þ)Ž¡‘Kâ:ÝAdd–:Lthis“digit“to“the“argumenš²!t“already“accum˜ulating,‘Oëor“start“a“new“argumen˜t.Ž¡‘Kâ:äM--–¦fÝstarts“a“negativš²!e“argumen˜t.Ž¦‘GÞuniversal-argument‘¦f()Ž¡‘Kâ:ÝThis–kis“another“w•²!a“y–kto“spMÞecify“an“argumenš²!t.‘«ßIf“this“command“is“follo˜w˜ed“b˜y“oneŽ¡‘Kâ:or–more“digits,›“³optionally“with“a“leading“min²!us“sign,˜those“digits“de ne“the“ar-Ž¡‘Kâ:gumenš²!t.‘ÐÚIf–\the“command“is“follo˜w˜ed“b˜y“digits,‘‡+executing“Þuniversal-argumentŽ¡‘Kâ:Ýagain–Ñ«ends“the“nš²!umeric“argumen˜t,‘Ü|but“is“otherwise“ignored.‘_«As“a“spMÞecial“case,Ž¡‘Kâ:if–ñúthis“command“is“immediately“follo•²!w“ed›ñúb“y˜a˜c“haracter˜that˜is˜neither˜a˜digitŽ¡‘Kâ:or–Zwminš²!us“sign,‘i§the“argumen˜t“coun˜t“for“the“next“command“is“m˜ultiplied“b˜y“four.Ž¡‘Kâ:The–{targumenš²!t“coun˜t“is“initially“one,‘°¸so“executing“this“function“the“ rst“timeŽ¡‘Kâ:makš²!es–Ï2the“argumen˜t“coun˜t“four,‘Ùea“second“time“mak˜es“the“argumen˜t“coun˜t“six-Ž¡‘Kâ:teen,–¦fand“so“on.‘ÝÝBy“default,“this“is“not“bMÞound“to“a“k²!ey‘ÿe.ŽŸáG‘Gë]1.4.6‘d(Letting–íMReadline“T–áypie“F›þÄ£or“Y˜ouŽŽŸ{‘GÞcomplete‘¦f(ž™š¸hŽ‘êÌŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘êÌŸÙš‰ffÐlŽ‘8ªž™š¸iŽŽ‘ÑŒÞ)Ž¡‘Kâ:ÝA²!ttempt–¶èto“pšMÞerform“completion“on“the“text“b˜efore“p˜oin²!t.‘ŽThe“actual“completionŽ¡‘Kâ:pšMÞerformed–¦fis“application-sp˜eci c.‘ÝÝThe“default“is“ lename“completion.Ž¦‘GÞpossible-completions‘¦f(M-?)Ž¡‘Kâ:ÝList–¦fthe“pšMÞossible“completions“of“the“text“b˜efore“p˜oin²!t.Ž¦‘GÞinsert-completions‘¦f(M-*)Ž¡‘Kâ:ÝInsert–«µall“completions“of“the“text“bšMÞefore“p˜oinš²!t“that“w˜ould“ha˜v˜e“bMÞeen“generatedŽ¡‘Kâ:b²!y‘¦fÞpossible-completionsÝ.Ž¦‘GÞmenu-complete‘¦f()Ž¡‘Kâ:ÝSimilar–ÛVto“ÞcompleteÝ,‘óbut“replaces“the“wš²!ord“to“bMÞe“completed“with“a“single“matc˜hŽ¡‘Kâ:from–‹æthe“list“of“pšMÞossible“completions.‘Ž^Rep˜eated“execution“of“Þmenu-completeŽ¡‘Kâ:Ýsteps–Õ¯through“the“list“of“pMÞossible“completions,‘!inserting“eacš²!h“matc˜h“in“turn.Ž¡‘Kâ:A²!t–jthe“end“of“the“list“of“completions,‘›šthe“bMÞell“is“rung“(sub‘›»ject“to“the“settingŽ¡‘Kâ:of–ThÞbell-styleÝ)“and“the“original“text“is“restored.‘çãAn“argumenš²!t“of“án“Ýmo˜v˜es“ánŽ¡‘Kâ:ÝpMÞositions–,Rforwš²!ard“in“the“list“of“matc˜hes;‘oGa“negativ˜e“argumen˜t“ma˜y“bMÞe“used“toŽ¡‘Kâ:mo•²!v“e›™Žbac“kw“ard˜through˜the˜list.‘·UThis˜command˜is˜in“tended˜to˜b•MÞe˜b“ound˜toŽ¡‘Kâ:ž™š¸hŽ‘NÍŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘NÍŸÙš‰ffÐlŽ‘`äž™š¸iŽŽ‘c³ÆÝ,–¦fbut“is“unš²!bMÞound“b˜y“default.ŽŽŒ‹·HŸò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®17ŽŽŽ ƒ3* ý ÌÖ‘GÞdelete-char-or-list‘¦f()Ž¤ 33‘Kâ:ÝDeletes–9{the“c²!haracter“under“the“cursor“if“not“at“the“bMÞeginning“or“end“of“the“lineŽ¡‘Kâ:(likš²!e–~±Þdelete-charÝ).‘СIf“at“the“end“of“the“line,‘†¢bMÞeha˜v˜es“iden˜tically“to“Þpossible-Ž¡‘Kâ:completionsÝ.‘ÝÝThis–¦fcommand“is“unš²!bMÞound“b˜y“default.ŽŸh­‘Gë]1.4.7‘d(Keybioard‘íMMacrosŽŽŸ¶ ! ‘GÞstart-kbd-macro–¦f(C-x“()Ž¡‘Kâ:ÝBegin–¦fsaš²!ving“the“c˜haracters“t˜ypMÞed“in˜to“the“curren˜t“k˜eybMÞoard“macro.Ž©´‘GÞend-kbd-macro–¦f(C-x“))Ž¡‘Kâ:ÝStop–G!saš²!ving“the“c˜haracters“t˜ypMÞed“in˜to“the“curren˜t“k˜eybMÞoard“macro“and“sa˜v˜e“theŽ¡‘Kâ:de nition.Ž¦‘GÞcall-last-kbd-macro–¦f(C-x“e)Ž¡‘Kâ:ÝRe-execute–9Bthe“last“kš²!eybMÞoard“macro“de ned,‘]ùb˜y“making“the“c˜haracters“in“theŽ¡‘Kâ:macro–¦fappšMÞear“as“if“t²!yp˜ed“at“the“k²!eyb˜oard.ŽŸh­‘Gë]1.4.8‘d(Some–íMMiscellaneous“CommandsŽŽŸ¶ ! ‘GÞre-read-init-file–¦f(C-x“C-r)Ž¡‘Kâ:ÝRead– kin“the“con•²!ten“ts– kof“the“áinputrc‘JoÝ le,‘ÔÐand“incorpMÞorate“an²!y“bindings“or“v‘ÿdDariableŽ¡‘Kâ:assignmen²!ts–¦ffound“there.Ž¦‘GÞabort‘¦f(C-g)Ž¡‘Kâ:ÝAbšMÞort–/the“curren²!t“editing“command“and“ring“the“terminal's“b˜ell“(sub‘›»ject“to“theŽ¡‘Kâ:setting–¦fof“Þbell-styleÝ).Ž¦‘GÞdo-uppercase-version–¦f(M-a,“M-b,“M-áxÞ,“...Ž‘åe)Ž¡‘Kâ:ÝIf–Qõthe“meta ed“cš²!haracter“áx‘TÝis“lo˜w˜ercase,‘bØrun“the“command“that“is“bMÞound“to“theŽ¡‘Kâ:corresp•MÞonding›¦fupp“ercase˜c²!haracter.Ž¦‘GÞprefix-meta‘¦f(ž™š¸hŽ‘êÌŸù@‰ff¤TŸÀ­ESCŽŽ‘êÌŸÙš‰ff¤TŽ‘ ’ž™š¸iŽŽ‘¥tÞ)Ž¡‘Kâ:ÝMetafy–‚2the“next“cš²!haracter“t˜ypMÞed.‘q@This“is“for“k˜eybMÞoards“without“a“meta“k˜ey‘ÿe.Ž¡‘Kâ:Tš²!yping–¦f`ž™š¸hŽ‘êÌŸù@‰ff¤TŸÀ­ESCŽŽ‘êÌŸÙš‰ff¤TŽ‘ ’ž™š¸iŽŽ‘KÚÞfÝ'“is“equiv‘ÿdDalen˜t“to“t˜yping“äM-fÝ.Ž¦‘GÞundo–¦f(C-_“or“C-x“C-u)Ž¡‘Kâ:ÝIncremenš²!tal–¦fundo,“separately“remem˜bMÞered“for“eac˜h“line.Ž¦‘GÞrevert-line‘¦f(M-r)Ž¡‘Kâ:ÝUndo–úall“cš²!hanges“made“to“this“line.‘ØäThis“is“lik˜e“executing“the“Þundo“ÝcommandŽ¡‘Kâ:enough–¦ftimes“to“get“bac²!k“to“the“bMÞeginning.Ž¦‘GÞtilde-expand‘¦f(M-~)Ž¡‘Kâ:ÝPš²!erform–¦ftilde“expansion“on“the“curren˜t“w˜ord.Ž¦‘GÞset-mark‘¦f(C-@)Ž¡‘Kâ:ÝSet–ðthe“mark“to“the“pMÞoinš²!t.‘ºØIf“a“n˜umeric“argumen˜t“is“supplied,‘ythe“mark“is“setŽ¡‘Kâ:to–¦fthat“pMÞosition.ŽŽŒ‹Ãߟò‘GÝ18’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘GÞexchange-point-and-mark–¦f(C-x“C-x)Ž¤ 33‘Kâ:ÝSwš²!ap–¾Òthe“pMÞoin˜t“with“the“mark.‘'!The“curren˜t“cursor“pMÞosition“is“set“to“the“sa˜v˜edŽ¡‘Kâ:pšMÞosition,–¦fand“the“old“cursor“p˜osition“is“sa•²!v“ed–¦fas“the“mark.Ž©Æ‘GÞcharacter-search‘¦f(C-])Ž¡‘Kâ:ÝA‘ü&cš²!haracter–üQis“read“and“pMÞoin˜t“is“mo˜v˜ed“to“the“next“oMÞccurrence“of“that“c˜haracter.Ž¡‘Kâ:A–¦fnegativš²!e“coun˜t“searc˜hes“for“previous“oMÞccurrences.Ž¦‘GÞcharacter-search-backward‘¦f(M-C-])Ž¡‘Kâ:ÝA‘c"cš²!haracter–c•is“read“and“pMÞoin˜t“is“mo˜v˜ed“to“the“previous“oMÞccurrence“of“thatŽ¡‘Kâ:c•²!haracter.‘ÝÝA›¦fnegativ“e˜coun“t˜searc“hes˜for˜subsequen“t˜oMÞccurrences.Ž¦‘GÞinsert-comment‘¦f(M-#)Ž¡‘Kâ:ÝWithout–GÑa“nš²!umeric“argumen˜t,‘p+the“v›ÿdDalue“of“the“Þcomment-begin“Ýv˜ariable“is“in-Ž¡‘Kâ:serted–Ìèat“the“bMÞeginning“of“the“currenš²!t“line.‘QdIf“a“n˜umeric“argumen˜t“is“supplied,Ž¡‘Kâ:this–cøcommand“acts“as“a“toggle:‘Yif“the“c²!haracters“at“the“bMÞeginning“of“the“lineŽ¡‘Kâ:do–¬Ânot“matc²!h“the“v›ÿdDalue“of“Þcomment-beginÝ,‘®Ythe“v˜alue“is“inserted,‘®Yotherwise“theŽ¡‘Kâ:c²!haracters–Ó6in“Þcomment-begin“Ýare“deleted“from“the“bMÞeginning“of“the“line.‘dMInŽ¡‘Kâ:either–¦fcase,“the“line“is“accepted“as“if“a“newline“had“bšMÞeen“t²!yp˜ed.Ž¦‘GÞdump-functions‘¦f()Ž¡‘Kâ:ÝPrinš²!t–,Qall“of“the“functions“and“their“k˜ey“bindings“to“the“Readline“output“stream.Ž¡‘Kâ:If–Îïa“nš²!umeric“argumen˜t“is“supplied,‘Ùthe“output“is“formatted“in“suc˜h“a“w˜a˜y“thatŽ¡‘Kâ:it–¦fcan“bšMÞe“made“part“of“an“áinputrc‘PjÝ le.‘ÝÝThis“command“is“un²!b˜ound“b²!y“default.Ž¦‘GÞdump-variables‘¦f()Ž¡‘Kâ:ÝPrin²!t–ŽÉall“of“the“settable“v›ÿdDariables“and“their“v˜alues“to“the“Readline“output“stream.Ž¡‘Kâ:If–Îïa“nš²!umeric“argumen˜t“is“supplied,‘Ùthe“output“is“formatted“in“suc˜h“a“w˜a˜y“thatŽ¡‘Kâ:it–¦fcan“bšMÞe“made“part“of“an“áinputrc‘PjÝ le.‘ÝÝThis“command“is“un²!b˜ound“b²!y“default.Ž¦‘GÞdump-macros‘¦f()Ž¡‘Kâ:ÝPrinš²!t– ˆall“of“the“Readline“k˜ey“sequences“bMÞound“to“macros“and“the“strings“theyŽ¡‘Kâ:output.‘rŠIf–-Ja“nš²!umeric“argumen˜t“is“supplied,‘Othe“output“is“formatted“in“suc˜h“aŽ¡‘Kâ:w•²!a“y–šthat“it“can“bšMÞe“made“part“of“an“áinputrc‘DÝ le.‘ÙÃThis“command“is“un²!b˜ound“b²!yŽ¡‘Kâ:default.Ž¦‘GÞemacs-editing-mode‘¦f(C-e)Ž¡‘Kâ:ÝWhen–¦fin“Þvi“Ýcommand“mošMÞde,“this“causes“a“switc²!h“to“Þemacs“Ýediting“mo˜de.Ž¦‘GÞvi-editing-mode‘¦f(M-C-j)Ž¡‘Kâ:ÝWhen–¦fin“Þemacs“Ýediting“mošMÞde,“this“causes“a“switc²!h“to“Þvi“Ýediting“mo˜de.ŽŸ씑GëT1.5‘™Readline–f@vi“Mos3deŽŽŸ×d‘!GÝWhile–×Uthe“Readline“library“došMÞes“not“ha•²!v“e–×Ua“full“set“of“Þvi“Ýediting“functions,‘¿it“do˜es“con²!tainŽ¡‘Genough–to“allo²!w“simple“editing“of“the“line.‘.ƒThe“Readline“Þvi“ÝmošMÞde“b˜eha•²!v“es–as“sp˜eci ed“inŽ¡‘Gthe–¦fãposix“Ý1003.2“standard.ŽŸ×d‘!GIn–|Uorder“to“switcš²!h“in˜teractiv˜ely“bMÞet˜w˜een“Þemacs“Ýand“Þvi“Ýediting“moMÞdes,‘„¿use“the“commandŽ¡‘GäM-C-j–iÝ(bšMÞound“to“emacs-editing-mo˜de“when“in“Þvi“Ýmo˜de“and“to“vi-editing-mo˜de“in“ÞemacsŽ¡‘GÝmošMÞde).‘ÝÝThe–¦fReadline“default“is“Þemacs“Ýmo˜de.ŽŽŒ‹ÍeŸò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®19ŽŽŽ ƒ3* ý ÌÖ‘!GWhen–›‰yš²!ou“en˜ter“a“line“in“Þvi“ÝmoMÞde,‘µy˜ou“are“already“placed“in“`insertion'“moMÞde,‘µas“if“y˜ouŽ¤ 33‘Ghad–&Gtš²!ypMÞed“an“`ÞiÝ'.‘³(Pressing“ž™š¸hŽ‘Ÿù@‰ff¤TŸÀ­ESCŽŽ‘ŸÙš‰ff¤TŽ‘2Ùž™š¸iŽŽ‘òÝswitc˜hes“y˜ou“in˜to“`command'“moMÞde,‘?çwhere“y˜ou“can“edit“theŽ¡‘Gtext–of“the“line“with“the“standard“Þvi“Ýmo•²!v“emen“t›k“eys,‘)Ý17Ž¡‘ZG1.4.8‘ ! ó5Some–¦fMiscellaneous“Commands‘œ1‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ qaÝ17Ž¡‘6G1.5‘ ! ó5Readline–¦fvi“MoMÞde‘9»‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ìÝ18ŽŽŒ‹ÿÿÿþܶŸò‘GÝii’=æNGNU–¦fReadline“LibraryŽŽŽ ƒ3*ŒøòÃ’À;è…ïöïÿó]ÂÖN  #× cmbx12óUF C–ff ! cmbxti10óTÂÖN ff cmbx12óKÂÖN G® cmbx12óBÂÖN ¼j cmbx12ó;!",š ó3 cmsy10ó9ßêÝ17Ž¡‘ZG1.4.8‘ ! ó5Some–¦fMiscellaneous“Commands‘œ1‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ qaÝ18Ž¡‘6G1.5‘ ! ó5Readline–¦fvi“MoMÞde‘9»‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ ìÝ19ŽŸ33‘GëXApps3endix‘ffAŽ‘tärCopšŒÌying–ffThis“Man˜ual‘J¥‘32ëY.Ž–…‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž“‘32.Ž‘6ëX21Ž¦‘6GÝA.1‘ ! ó5GNU–¦fF‘ÿeree“DoMÞcumen²!tation“License‘=‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ BÝ21Ž¡‘ZGA.1.1‘ ! ó5ADDENDUM:–¦fHoš²!w“to“use“this“License“for“y˜ourŽ¡‘o÷±doMÞcumen²!ts‘^|‘é˜à.Ž–.Ô‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž“‘é˜.Ž‘ 3¬Ý27ŽŽŒ‹ÿÿÿþ—Ÿò‘GÝii’=æNGNU–¦fReadline“LibraryŽŽŽ ƒ3*Œ‹!úŸò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’MH1ŽŽŽ ƒ3* ý ÌÖ‘GëO1‘ ¸QCommand–z³Line“EditingŽŽŸŒ=‘!GÝThis–¦fcš²!hapter“describMÞes“the“basic“features“of“the“ó8Œ-ø ! ó3 ! cmcsc10ãgnu“Ýcommand“line“editing“in˜terface.ŽŸh ‘GëX1.1‘™InŒÌtros3duction–f@to“Line“EditingŽŽŸÞ›‘!GÝThe–¦ffolloš²!wing“paragraphs“describMÞe“the“notation“used“to“represen˜t“k˜eystrok˜es.Ž¤«h‘!GThe–Ctext“ó9ßêÝ,›9and‘8©ž™š¸hŽ‘#uŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘#uŸÙš‰ffÐlŽ‘qSž™š¸iŽŽ‘"BÞÝall–8©stand“for“themselv²!es“when“seen“in“this“text,˜or“in“an“init“ le“(seeŽ¦‘GSection–¦ý1.3“[Readline“Init“File],‘ç"page“4).‘ß¡If“yš²!our“k˜eybMÞoard“lac˜ks“a“ž™š¸hŽ‘‘ÉŸù@‰ffWˆŸÀ­LFDŽŽ‘‘ÉŸÙš‰ffWˆŽ‘fÞ™š¸iŽŽ‘ ¦¢Ýk˜ey‘ÿe,‘ç"t˜yping“ž™š¸hŽ‘‘ÉŸù@‰ff ‘ÒŸÀ­C-jŽŽ‘‘ÉŸÙš‰ff ‘ÒŽ‘¡ ž™š¸iŽŽŽ¦‘GÝwill–‹OproMÞduce“the“desired“cš²!haracter.‘ÔÕThe“ž™š¸hŽ‘vŸù@‰ff,(ŸÀ­RETŽŽ‘vŸÙš‰ff,(Ž‘µž™š¸iŽŽ‘CæÝk˜ey“ma˜y“bšMÞe“lab˜eled“ž™š¸hŽ‘vŸù@‰ffëŸÀ­ReturnŽŽ‘vŸÙš‰ff뎑 xž™š¸iŽŽ‘'/©Ýor“ž™š¸hŽ‘vŸù@‰ff©­ŸÀ­EnÃŽterŽŽ‘vŸÙš‰ff©­Ž‘:ž™š¸iŽŽ‘!ÁkÝon“someŽ¦‘Gk²!eybMÞoards.ŽŸh ‘GëX1.2‘™Readline‘f@InŒÌteractionŽŽ¤Þ›‘!GÝOften–kduring“an“in•²!teractiv“e–ksession“yš²!ou“t˜ypMÞe“in“a“long“line“of“text,‘&jonly“to“notice“that“theŽ¦‘G rst–ãÒwš²!ord“on“the“line“is“misspMÞelled.‘–"The“Readline“library“giv˜es“y˜ou“a“set“of“commands“forŽ¦‘Gmanipulating–“¡the“text“as“yš²!ou“t˜ypMÞe“it“in,‘—ballo˜wing“y˜ou“to“just“ x“y˜our“t˜ypMÞo,‘—band“not“forcingŽ¦‘Gyš²!ou–`ùto“ret˜ypMÞe“the“ma‘›»jorit˜y“of“the“line.‘ƹUsing“these“editing“commands,‘nÛy˜ou“mo˜v˜e“the“cursorŽ¦‘Gto–the“place“that“needs“correction,‘;Zand“delete“or“insert“the“text“of“the“corrections.‘CZThen,Ž¦‘Gwhen–½#yš²!ou“are“satis ed“with“the“line,‘ÂÒy˜ou“simply“press“ž™š¸hŽ‘§ïŸù@‰ff,(ŸÀ­RETŽŽ‘§ïŸÙš‰ff,(Ž‘Q‰ž™š¸iŽŽ‘êkÝ.‘"Y‘ÿeou“do“not“ha˜v˜e“to“bMÞe“at“theŽ¦‘Gend–N4of“the“line“to“press“ž™š¸hŽ‘9Ÿù@‰ff,(ŸÀ­RETŽŽ‘9ŸÙš‰ff,(Ž‘âšž™š¸iŽŽ‘{|Ý;‘¢the“en²!tire“line“is“accepted“regardless“of“the“loMÞcation“of“theŽ¦‘Gcursor–¦fwithin“the“line.ŽŸh ‘GóaÂÖN  #× cmbx12ëa1.2.1‘d(Readline–íMBare“Essen–átialsŽŽ¡‘!GÝIn–Äiorder“to“enš²!ter“c˜haracters“in˜to“the“line,‘ñ›simply“t˜ypMÞe“them.‘’‰The“t˜ypMÞed“c˜haracter“appMÞearsŽ¦‘Gwhere–æNthe“cursor“wš²!as,‘öHand“then“the“cursor“mo˜v˜es“one“space“to“the“righ˜t.‘–If“y˜ou“mist˜ypMÞe“aŽ¦‘Gc•²!haracter,›¦fy“ou˜can˜use˜y“our˜erase˜c“haracter˜to˜bac“k˜up˜and˜delete˜the˜mist“ypMÞed˜c“haracter.ŽŸ«h‘!GSometimes–³lyš²!ou“ma˜y“mist˜ypMÞe“a“c˜haracter,‘¶®and“not“notice“the“error“un˜til“y˜ou“ha˜v˜e“t˜ypMÞedŽ¦‘Gsevš²!eral–wøother“c˜haracters.‘ÎcIn“that“case,‘Ay˜ou“can“t˜ypMÞe“äC-b“Ýto“mo˜v˜e“the“cursor“to“the“left,‘AandŽ¦‘Gthen–¦fcorrect“yš²!our“mistak˜e.‘ÝÝAfterw˜ards,“y˜ou“can“mo˜v˜e“the“cursor“to“the“righ˜t“with“äC-fÝ.ŽŽŒ‹"ZŸò‘GÝ2’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘!GWhen–é"yš²!ou“add“text“in“the“middle“of“a“line,‘ùÑy˜ou“will“notice“that“c˜haracters“to“the“righ˜tŽ¤ 33‘Gof–q”the“cursor“are“`pushed“o•²!v“er'–q”to“makš²!e“roMÞom“for“the“text“that“y˜ou“ha˜v˜e“inserted.‘ÌBLik˜ewise,Ž¡‘Gwhen–‚ùyš²!ou“delete“text“bMÞehind“the“cursor,‘ºc˜haracters“to“the“righ˜t“of“the“cursor“are“`pulledŽ¡‘Gbacš²!k'–¹Õto“ ll“in“the“blank“space“created“b˜y“the“remo˜v‘ÿdDal“of“the“text.‘A‘¹™list“of“the“bare“essen˜tialsŽ¡‘Gfor–¦fediting“the“text“of“an“input“line“follo²!ws.Ž¤¯‹‘GäC-b‘(‘õÝMo•²!v“e›¦fbac“k˜one˜c“haracter.Ž¡‘GäC-f‘(‘õÝMo•²!v“e›¦fforw“ard˜one˜c“haracter.Ž¡‘Gž™š¸hŽ‘üŸù@‰ff“úŸÀ­DELŽŽ‘üŸÙš‰ff“úŽ‘& ž™š¸iŽŽ‘-LÇÝor‘¦fž™š¸hŽ‘‘2Ÿù@‰ff&,ñŸÀ­BacÃŽkspaceŽŽ‘‘2ŸÙš‰ff&,ñŽ‘,;•ž™š¸iŽŽŽ© 33‘Kâ:ÝDelete–¦fthe“c²!haracter“to“the“left“of“the“cursor.Ž¡‘GäC-d‘(‘õÝDelete–¦fthe“c²!haracter“underneath“the“cursor.Ž¡‘GPrin•²!ting‘¦fc“haractersŽŽ¦‘Kâ:Insert–¦fthe“cš²!haracter“in˜to“the“line“at“the“cursor.Ž¡‘GäC-_–¦fÝor“äC-x“C-uŽ¦‘Kâ:ÝUndo–jthe“last“editing“command.‘÷éY‘ÿeou“can“undo“all“the“w•²!a“y›jbac“k˜to˜an˜empt“yŽ¦‘Kâ:line.Ž¡‘G(DepMÞending– on“yš²!our“con guration,‘0¶the“ž™š¸hŽ‘ÿØŸù@‰ff&,ñŸÀ­BacÃŽkspaceŽŽ‘ÿØŸÙš‰ff&,ñŽ‘,ª;ž™š¸iŽŽ‘4X)Ýk˜ey“bMÞe“set“to“delete“the“c˜haracter“to“theŽ¦‘Gleft–ö¿of“the“cursor“and“the“ž™š¸hŽ‘á‹Ÿù@‰ff“úŸÀ­DELŽŽ‘á‹ŸÙš‰ff“úŽ‘ò÷ž™š¸iŽŽ‘‚˜Ýkš²!ey“set“to“delete“the“c˜haracter“underneath“the“cursor,‘ ! Õlik˜eŽ¦‘GäC-dÝ,–¦frather“than“the“c²!haracter“to“the“left“of“the“cursor.)ŽŸ:ƒ‘Gëa1.2.2‘d(Readline›íMMo•–áv“emen“t˜CommandsŽŽŸ$’‘!GÝThe›"úabMÞo•²!v“e˜table˜describMÞes˜the˜most˜basic˜k“eystrok“es˜that˜y“ou˜need˜in˜order˜to˜do˜editingŽ¦‘Gof–Ìthe“input“line.‘«ªF‘ÿeor“yš²!our“con˜v˜enience,‘-ëman˜y“other“commands“ha˜v˜e“bMÞeen“added“in“additionŽ¦‘Gto›ÖõäC-bÝ,–ãäC-fÝ,“äC-dÝ,“and˜ž™š¸hŽ‘ÁÁŸù@‰ff“úŸÀ­DELŽŽ‘ÁÁŸÙš‰ff“úŽ‘Ó-ž™š¸iŽŽ‘lÝ.‘o‹Here˜are˜some˜commands˜for˜mo²!ving˜more˜rapidly˜abMÞout˜theŽ¦‘Gline.Ž¡‘GäC-a‘(‘õÝMo•²!v“e–¦fto“the“start“of“the“line.Ž¡‘GäC-e‘(‘õÝMo•²!v“e–¦fto“the“end“of“the“line.Ž¡‘GäM-f‘(‘õÝMo•²!v“e›¦fforw“ard˜a˜w“ord,˜where˜a˜w“ord˜is˜compMÞosed˜of˜letters˜and˜digits.Ž¡‘GäM-b‘(‘õÝMo•²!v“e›¦fbac“kw“ard˜a˜w“ord.Ž¡‘GäC-l‘(‘õÝClear–¦fthe“screen,“reprinš²!ting“the“curren˜t“line“at“the“top.Ž¡‘!GNotice–ôKhoš²!w“äC-f“Ýmo˜v˜es“forw˜ard“a“c˜haracter,‘êwhile“äM-f“Ýmo˜v˜es“forw˜ard“a“w˜ord.‘¢It“is“a“loMÞoseŽ¦‘Gcon•²!v“en“tion–—†that“conš²!trol“k˜eystrok˜es“opMÞerate“on“c˜haracters“while“meta“k˜eystrok˜es“opMÞerate“onŽ¦‘Gw²!ords.ŽŸ:ƒ‘Gëa1.2.3‘d(Readline–íMKilling“CommandsŽŽŸ$’‘!GáKilling‘lÝtext–{émeans“to“delete“the“text“from“the“line,‘±Jbut“to“sa•²!v“e–{éit“a•²!w“a“y–{éfor“later“use,Ž¦‘Gusually–Zbš²!y“áy˜anking‘rÝ(re-inserting)“it“bac˜k“in˜to“the“line.‘3¹(`Cut'“and“`paste'“are“more“recen˜tŽ¦‘Gjargon–¦ffor“`kill'“and“`y²!ank'.)ŽŸñ_‘!GIf–¡°the“description“for“a“command“saš²!ys“that“it“`kills'“text,‘¢¡then“y˜ou“can“bMÞe“sure“that“y˜ouŽ¦‘Gcan–¦fget“the“text“bacš²!k“in“a“di eren˜t“(or“the“same)“place“later.ŽŽŒ‹7óŸò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’MH3ŽŽŽ ƒ3* ý ÌÖ‘!GWhen–Ê›yš²!ou“use“a“kill“command,‘ö‘the“text“is“sa˜v˜ed“in“a“ákill-ringÝ.‘”šAn˜y“n˜um˜bMÞer“of“consecutiv˜eŽ¤ 33‘Gkills›¸$sa•²!v“e˜all˜of˜the˜killed˜text˜together,‘¼“so˜that˜when˜y“ou˜y“ank˜it˜bac“k,‘¼“y“ou˜get˜it˜all.‘TheŽ¡‘Gkill–âèring“is“not“line“spMÞeci c;‘(the“text“that“yš²!ou“killed“on“a“previously“t˜ypMÞed“line“is“a˜v‘ÿdDailableŽ¡‘Gto–¦fbMÞe“y•²!ank“ed›¦fbac“k˜later,˜when˜y“ou˜are˜t“yping˜another˜line.ŽŸûç‘!GHere–¦fis“the“list“of“commands“for“killing“text.Ž¤Ä›‘GäC-k‘(‘õÝKill–¦fthe“text“from“the“curren²!t“cursor“pMÞosition“to“the“end“of“the“line.Ž¡‘GäM-d‘(‘õÝKill–)šfrom“the“cursor“to“the“end“of“the“currenš²!t“w˜ord,–Bor,“if–)šbMÞet˜w˜een“w˜ords,‘Bto“theŽ© 33‘Kâ:end–¦fof“the“next“wš²!ord.‘ÝÝW‘ÿeord“bMÞoundaries“are“the“same“as“those“used“b˜y“äM-fÝ.Ž¡‘GäM-ž™š¸hŽ‘êÌŸù@‰ff“úŸÀ­DELŽŽ‘êÌŸÙš‰ff“úŽ‘ü8ž™š¸iŽŽ‘.QŸÝKill–«ofrom“the“cursor“the“start“of“the“currenš²!t“w˜ord,–¬±or,“if–«obMÞet˜w˜een“w˜ords,‘¬±to“theŽ¦‘Kâ:start–of“the“previous“wš²!ord.‘ÁâW‘ÿeord“bMÞoundaries“are“the“same“as“those“used“b˜yŽ¦‘Kâ:äM-bÝ.Ž¡‘GäC-w‘(‘õÝKill–Àxfrom“the“cursor“to“the“previous“whitespace.‘,This“is“di eren²!t“than“äM-ž™š¸hŽ‘êÌŸù@‰ff“úŸÀ­DELŽŽ‘êÌŸÙš‰ff“úŽ‘ü8ž™š¸iŽŽŽ¦‘Kâ:ÝbšMÞecause–¦fthe“w²!ord“b˜oundaries“di er.Ž¡‘!GHere–ýáis“hoš²!w“to“áy˜ank‘§åÝthe“text“bac˜k“in˜to“the“line.‘äNY‘ÿeanking“means“to“cop˜y“the“most-Ž¦‘Grecen²!tly-killed–¦ftext“from“the“kill“bu er.Ž¡‘GäC-y‘(‘õÝY‘ÿeank–¦fthe“most“recenš²!tly“killed“text“bac˜k“in˜to“the“bu er“at“the“cursor.Ž¡‘GäM-y‘(‘õÝRotate–'!the“kill-ring,‘GPand“y²!ank“the“new“top.‘`Y‘ÿeou“can“only“do“this“if“the“priorŽ¦‘Kâ:command–¦fis“äC-y“Ýor“äM-yÝ.Ž¤Z‘Gëa1.2.4‘d(Readline‘íMArgumen–átsŽŽŸ/‘!GÝY‘ÿeou–‚Ücan“pass“nš²!umeric“argumen˜ts“to“Readline“commands.‘ÒSometimes“the“argumen˜t“actsŽ¦‘Gas–Ѥa“repMÞeat“counš²!t,‘sother“times“it“is“the“àsign‘¨¯Ýof“the“argumen˜t“that“is“signi can˜t.‘_–If“y˜ouŽ¦‘Gpass–a“negativš²!e“argumen˜t“to“a“command“whic˜h“normally“acts“in“a“forw˜ard“direction,‘ìthatŽ¦‘Gcommand–=Üwill“act“in“a“bac•²!kw“ard–=Üdirection.‘¤?F‘ÿeor“example,‘c¹to“kill“text“bac²!k“to“the“start“ofŽ¦‘Gthe–¦fline,“yš²!ou“migh˜t“t˜ypMÞe“`ÞM--“C-kÝ'.ŽŸûç‘!GThe–bOgeneral“w•²!a“y–bOto“pass“nš²!umeric“argumen˜ts“to“a“command“is“to“t˜ypšMÞe“meta“digits“b˜eforeŽ¦‘Gthe–´command.‘RIf“the“ rst“`digit'“tš²!ypMÞed“is“a“min˜us“sign“(`Þ-Ý'),‘¸then“the“sign“of“the“argumen˜tŽ¦‘Gwill––ŠbMÞe“negativš²!e.‘®HOnce“y˜ou“ha˜v˜e“t˜ypMÞed“one“meta“digit“to“get“the“argumen˜t“started,‘Ò’y˜ouŽ¦‘Gcan–vòt²!ypMÞe“the“remainder“of“the“digits,›€oand“then“the“command.‘Î F‘ÿeor“example,˜to“giv²!e“the“äC-dŽ¦‘GÝcommand–~Gan“argumenš²!t“of“10,‘´?y˜ou“could“t˜ypMÞe“`ÞM-1–¦f0“C-dÝ',‘´?whic˜h–~Gwill“delete“the“next“tenŽ¦‘Gc²!haracters–¦fon“the“input“line.Ž¡‘Gëa1.2.5‘d(Searc–áhing–íMfor“Commands“in“the“HistoryŽŽŸ/‘!GÝReadline–àTproš²!vides“commands“for“searc˜hing“through“the“command“history“for“lines“con-Ž¦‘Gtaining–¦fa“spMÞeci ed“string.‘ÝÝThere“are“t•²!w“o›¦fsearc“h˜moMÞdes:‘ÝÝáincremen“tal‘¸Ýand˜ánon-incremen“talÝ.ŽŸûç‘!GIncremen•²!tal›¸searc“hes˜b•MÞegin˜b“efore˜the˜user˜has˜ nished˜t•²!yping˜the˜searc“h˜string.‘­£As˜eac“hŽ¦‘Gcš²!haracter–@|of“the“searc˜h“string“is“t˜ypMÞed,‘gReadline“displa˜ys“the“next“en˜try“from“the“historyŽ¦‘Gmatcš²!hing–â+the“string“t˜ypMÞed“so“far.‘œtAn“incremen˜tal“searc˜h“requires“only“as“man˜y“c˜haracters“asŽ¦‘Gneeded–tõto“ nd“the“desired“history“enš²!try–ÿe.‘ÍbT“o–tõsearc˜h“bac˜kw˜ard“in“the“history“for“a“particularŽ¦‘Gstring,‘0t•²!ypMÞe›‰cäC-rÝ.‘Ô1T“yping˜äC-s˜Ýsearc“hes˜forw“ard˜through˜the˜history‘ÿe.‘Ô1The˜c“haracters˜presen“tŽ¦‘Gin–^the“v›ÿdDalue“of“the“Þisearch-terminators“Ýv˜ariable“are“used“to“terminate“an“incremen²!talŽŽŒ‹DÁŸò‘GÝ4’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Gsearc²!h.‘ƒ–If–ˆNthat“v›ÿdDariable“has“not“bMÞeen“assigned“a“v˜alue,‘ÀÈthe“ž™š¸hŽ‘sŸù@‰ff¤TŸÀ­ESCŽŽ‘sŸÙš‰ff¤TŽ‘”àž™š¸iŽŽ‘¶Ýand“äC-J“Ýc²!haracters“willŽ¤ 33‘Gterminate–Can“incremenš²!tal“searc˜h.‘ 3täC-g“Ýwill“abMÞort“an“incremen˜tal“searc˜h“and“restore“theŽ¡‘Goriginal–xÓline.‘άWhen“the“searcš²!h“is“terminated,‘ðthe“history“en˜try“con˜taining“the“searc˜h“stringŽ¡‘GbMÞecomes–¦fthe“curren²!t“line.Ž©‘!GT‘ÿeo–¹¾ nd“other“matcš²!hing“en˜tries“in“the“history“list,‘¾”t˜ypMÞe“äC-r“Ýor“äC-s“Ýas“appropriate.‘äThisŽ¡‘Gwill–#“searcš²!h“bac˜kw˜ard“or“forw˜ard“in“the“history“for“the“next“en˜try“matc˜hing“the“searc˜h“stringŽ¡‘Gtš²!ypMÞed–ˆ5so“far.‘ƒIAn˜y“other“k˜ey“sequence“bMÞound“to“a“Readline“command“will“terminate“theŽ¡‘Gsearcš²!h–‡„and“execute“that“command.‘~=F‘ÿeor“instance,‘Àäa“ž™š¸hŽ‘rPŸù@‰ff,(ŸÀ­RETŽŽ‘rPŸÙš‰ff,(Ž‘êž™š¸iŽŽ‘Ki“Ýkš²!ey“sequence“b˜y“stripping“the“eigh˜th“bit“and“pre xing“anŽ¡’…³-ž™š¸hŽ’ˆùŸù@‰ff¤TŸÀ­ESCŽŽ’ˆùŸÙš‰ff¤TŽ’˜¿¿ž™š¸iŽŽ’ jzÝc•²!haracter,‘,µcon“v“erting–Ùthem“to“a“meta-pre xed“k²!ey“sequence.Ž¡’…³-The–¦fdefault“v‘ÿdDalue“is“`ÞonÝ'.Ž¦‘Kâ:Þdisable-completionŽ¡’…³-ÝIf–gset“to“`ÞOnÝ',‘—@Readline“will“inhibit“w²!ord“completion.‘èCompletionŽ¡’…³-cš²!haracters–!Ÿwill“bMÞe“inserted“in˜to“the“line“as“if“they“had“bšMÞeen“mapp˜edŽ¡’…³-to–¦fÞself-insertÝ.‘ÝÝThe“default“is“`ÞoffÝ'.Ž¦‘Kâ:Þediting-modeŽ¡’…³-ÝThe–rÖÞediting-mode“Ýv‘ÿdDariable“conš²!trols“whic˜h“default“set“of“k˜ey“bind-Ž¡’…³-ings–?is“used.‘§%By“default,‘#Readline“starts“up“in“Emacs“editing“moMÞde,Ž¡’…³-where–~«the“k•²!eystrok“es–~«are“most“similar“to“Emacs.‘ПThis“v‘ÿdDariable“canŽ¡’…³-bMÞe–¦fset“to“either“`ÞemacsÝ'“or“`ÞviÝ'.Ž¦‘Kâ:Þenable-keypadŽ¡’…³-ÝWhen–Ìïset“to“`ÞonÝ',‘ømReadline“will“try“to“enable“the“application“k²!eypadŽ¡’…³-when–1Ûit“is“called.‘·Some“systems“need“this“to“enable“the“arroš²!w“k˜eys.Ž¡’…³-The–¦fdefault“is“`ÞoffÝ'.Ž¦‘Kâ:Þexpand-tildeŽ¡’…³-ÝIf–Pset“to“`ÞonÝ',‘a[tilde“expansion“is“pMÞerformed“when“Readline“attemptsŽ¡’…³-w²!ord–¦fcompletion.‘ÝÝThe“default“is“`ÞoffÝ'.ŽŽŒ‹bXŸò‘GÝ6’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ’…³-If–’Žset“to“`ÞonÝ',‘–†the“history“cošMÞde“attempts“to“place“p˜oin²!t“at“the“sameŽ¤ 33’…³-loMÞcation–Kon“eacš²!h“history“line“retriev˜ed“with“Þprevious-history“ÝorŽ¡’…³-Þnext-historyÝ.Ž©s3‘Kâ:Þhorizontal-scroll-modeŽ¡’…³-ÝThis–NËv‘ÿdDariable“can“bMÞe“set“to“either“`ÞonÝ'“or“`ÞoffÝ'.‘× Setting“it“to“`ÞonÝ'Ž¡’…³-means–$jthat“the“text“of“the“lines“bMÞeing“edited“will“scroll“horizon²!tallyŽ¡’…³-on–ÎÁa“single“screen“line“when“they“are“longer“than“the“width“of“theŽ¡’…³-screen,›:Åinstead–Ýof“wrapping“on²!to“a“new“screen“line.‘±By“default,˜thisŽ¡’…³-v‘ÿdDariable–¦fis“set“to“`ÞoffÝ'.Ž¦‘Kâ:Þinput-metaŽ¡’…³-ÝIf–¾Ìset“to“`ÞonÝ',‘ÄåReadline“will“enable“eigh²!t-bit“input“(it“will“not“clearŽ¡’…³-the–Ã"eighš²!th“bit“in“the“c˜haracters“it“reads),‘ ! Pregardless“of“what“theŽ¡’…³-terminal–ÌÖclaims“it“can“suppMÞort.›Q-The“default“v‘ÿdDalue“is“`ÞoffÝ'.˜TheŽ¡’…³-name–¦fÞmeta-flag“Ýis“a“synon²!ym“for“this“v‘ÿdDariable.Ž¦‘Kâ:Þisearch-terminatorsŽ¡’…³-ÝThe–5Ñstring“of“cš²!haracters“that“should“terminate“an“incremen˜talŽ¡’…³-searcš²!h–ú|without“subsequen˜tly“executing“the“c˜haracter“as“a“commandŽ¡’…³-(see–Z±Section“1.2.5“[Searc²!hing],‘ÇÃpage“3).‘ ú¾If“this“v‘ÿdDariable“has“notŽ¡’…³-bMÞeen–Ç„givš²!en“a“v‘ÿdDalue,‘ÏÌthe“c˜haracters“ž™š¸hŽ‘²PŸù@‰ff¤TŸÀ­ESCŽŽ‘²PŸÙš‰ff¤TŽ‘Ôž™š¸iŽŽ‘4|Ýand“äC-J“Ýwill“terminate“anŽ¡’…³-incremen•²!tal‘¦fsearc“h.Ž¦‘Kâ:Þkeymap‘R÷ÝSets–©5Readline's“idea“of“the“currenš²!t“k˜eymap“for“k˜ey“binding“com-Ž¡’…³-mands.‘ ä™Acceptable–SOÞkeymap“Ýnames“are“ÞemacsÝ,‘¾‰Þemacs-standardÝ,Ž¡’…³-Þemacs-metaÝ,– 0Þemacs-ctlxÝ,“ÞviÝ,“Þvi-moveÝ,“Þvi-commandÝ,“andŽ¡’…³-Þvi-insertÝ.‘öÚÞvi–®ºÝis“equiv›ÿdDalen²!t“to“Þvi-commandÝ;‘2äÞemacs“Ýis“equiv˜alen²!tŽ¡’…³-to–Ó¯Þemacs-standardÝ.›e¸The“default“v‘ÿdDalue“is“ÞemacsÝ.˜The“v‘ÿdDalue“of“theŽ¡’…³-Þediting-mode–¦fÝv‘ÿdDariable“also“a ects“the“default“k²!eymap.Ž¦‘Kâ:Þmark-directoriesŽ¡’…³-ÝIf––¿set“to“`ÞonÝ',‘ÒÕcompleted“directory“names“ha•²!v“e––¿a“slash“appMÞended.Ž¡’…³-The–¦fdefault“is“`ÞonÝ'.Ž¦‘Kâ:Þmark-modified-linesŽ¡’…³-ÝThis–N”v‘ÿdDariable,›xŸwhen“set“to“`ÞonÝ',˜causes“Readline“to“displa²!y“an“as-Ž¡’…³-terisk– š(`Þ*Ý')“at“the“start“of“history“lines“whicš²!h“ha˜v˜e“bšMÞeen“mo˜di ed.Ž¡’…³-This–¦fv‘ÿdDariable“is“`ÞoffÝ'“b²!y“default.Ž¦‘Kâ:Þmark-symlinked-directoriesŽ¡’…³-ÝIf–_set“to“`ÞonÝ',‘ÍÙcompleted“names“whicš²!h“are“sym˜bMÞolic“links“to“di-Ž¡’…³-rectories›|ha•²!v“e˜a˜slash˜appMÞended˜(sub‘›»ject˜to˜the˜v‘ÿdDalue˜of˜Þmark-Ž¡’…³-directoriesÝ).‘ÝÝThe–¦fdefault“is“`ÞoffÝ'.Ž¦‘Kâ:Þmatch-hidden-filesŽ¡’…³-ÝThis–«sv‘ÿdDariable,›Ý£when“set“to“`ÞonÝ',˜causes“Readline“to“matc²!h“ les“whoseŽ¡’…³-names–MÍbšMÞegin“with“a“`Þ.Ý'“(hidden“ les)“when“p˜erforming“ lenameŽ¡’…³-completion,‘R unless–ü•the“leading“`Þ.Ý'“is“supplied“b²!y“the“user“in“theŽ¡’…³- lename–¦fto“bMÞe“completed.‘ÝÝThis“v‘ÿdDariable“is“`ÞonÝ'“b²!y“default.ŽŽŒ‹nDŸò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’MH7ŽŽŽ ƒ3* ý ÌÖ‘Kâ:Þoutput-metaŽ¤ 33’…³-ÝIf–Aset“to“`ÞonÝ',‘gªReadline“will“displaš²!y“c˜haracters“with“the“eigh˜th“bitŽ¡’…³-set–`!directly“rather“than“as“a“meta-pre xed“escapMÞe“sequence.‘ TheŽ¡’…³-default–¦fis“`ÞoffÝ'.Ž©ii‘Kâ:Þpage-completionsŽ¡’…³-ÝIf–ôset“to“`ÞonÝ',‘,×Readline“uses“an“inš²!ternal“ÞmoreÝ-lik˜e“pager“to“displa˜yŽ¡’…³-a–ã¹screenful“of“pMÞossible“completions“at“a“time.‘•ÖThis“v‘ÿdDariable“is“`ÞonÝ'Ž¡’…³-b²!y‘¦fdefault.Ž¦‘Kâ:Þprint-completions-horizontallyŽ¡’…³-ÝIf–àset“to“`ÞonÝ',‘»Readline“will“displaš²!y“completions“with“matc˜hes“sortedŽ¡’…³-horizonš²!tally–8Ôin“alphabMÞetical“order,‘orather“than“do˜wn“the“screen.Ž¡’…³-The–¦fdefault“is“`ÞoffÝ'.Ž¦‘Kâ:Þshow-all-if-ambiguousŽ¡’…³-ÝThis–™]alters“the“default“bMÞeha²!vior“of“the“completion“functions.‘Ù…If“setŽ¡’…³-to–L`ÞonÝ',‘^.wš²!ords“whic˜h“ha˜v˜e“more“than“one“pMÞossible“completion“causeŽ¡’…³-the–­matc²!hes“to“bšMÞe“listed“immediately“instead“of“ringing“the“b˜ell.Ž¡’…³-The–¦fdefault“v‘ÿdDalue“is“`ÞoffÝ'.Ž¦‘Kâ:Þshow-all-if-unmodifiedŽ¡’…³-ÝThis–¤‰alters“the“default“bMÞeha²!vior“of“the“completion“functions“in“aŽ¡’…³-fashion–€similar“to“ásho•²!w-all-if-am“biguousÝ.‘«If–€set“to“`ÞonÝ',‘-®wš²!ords“whic˜hŽ¡’…³-ha•²!v“e–²Ömore“than“one“pšMÞossible“completion“without“an²!y“p˜ossible“par-Ž¡’…³-tial–Ãcompletion“(the“pMÞossible“completions“don't“share“a“commonŽ¡’…³-pre x)–¢cause“the“matc²!hes“to“bMÞe“listed“immediately“instead“of“ring-Ž¡’…³-ing–¦fthe“bMÞell.‘ÝÝThe“default“v‘ÿdDalue“is“`ÞoffÝ'.Ž¦‘Kâ:Þvisible-statsŽ¡’…³-ÝIf–Ôvset“to“`ÞonÝ',‘ßúa“cš²!haracter“denoting“a“ le's“t˜ypšMÞe“is“app˜ended“to“theŽ¡’…³- lename–¦fwhen“listing“pMÞossible“completions.‘ÝÝThe“default“is“`ÞoffÝ'.Ž¦‘GKey‘¦fBindingsŽ¡‘Kâ:The– synš²!tax“for“con˜trolling“k˜ey“bindings“in“the“init“ le“is“simple.‘ First“y˜ouŽ¡‘Kâ:need–QÓto“ nd“the“name“of“the“command“that“yš²!ou“w˜an˜t“to“c˜hange.‘Á¬The“follo˜wingŽ¡‘Kâ:sections–Oconš²!tain“tables“of“the“command“name,‘yLthe“default“k˜eybinding,‘yLif“an˜y‘ÿe,Ž¡‘Kâ:and–¦fa“short“description“of“what“the“command“doMÞes.Ž©NN‘Kâ:Once–P…yš²!ou“kno˜w“the“name“of“the“command,‘{ simply“place“on“a“line“in“the“initŽ¡‘Kâ: le– the“name“of“the“kš²!ey“y˜ou“wish“to“bind“the“command“to,›$'a“colon,˜and“thenŽ¡‘Kâ:the–Ö«name“of“the“command.‘n«The“name“of“the“kš²!ey“can“bMÞe“expressed“in“di eren˜tŽ¡‘Kâ:w•²!a“ys,–¦fdepMÞending“on“what“y²!ou“ nd“most“comfortable.Ž¦‘Kâ:In–SÞaddition“to“command“names,‘“output"ŽŽŒ‹zEŸò‘GÝ8’>‚ ! GNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ’…³-In–¥3the“abšMÞo•²!v“e–¥3example,‘äåäC-u“Ýis“b˜ound“to“the“function“Þuniversal-Ž¤ 33’…³-argumentÝ,‘ÄôäM-DEL–‹¥Ýis“bMÞound“to“the“function“Þbackward-kill-wordÝ,Ž¡’…³-and–®¿äC-o“Ýis“bMÞound“to“run“the“macro“expressed“on“the“righ²!t“handŽ¡’…³-side–¦f(that“is,“to“insert“the“text“`Þ>“outputÝ'“in²!to“the“line).Ž©i+’…³-A‘qn•²!um“bšMÞer–q4of“sym²!b˜olic“c²!haracter“names“are“recognized“while“pro-Ž¡’…³-cessing–Ôöthis“kš²!ey“binding“syn˜tax:‘u%áDELÝ,“áESCÝ,“áESCAPEÝ,“áLFDÝ,“áNEW-Ž¡’…³-LINEÝ,–¦fáRETÝ,“áRETURNÝ,“áRš²!UBOUTÝ,“áSP‘ÿeA˜CEÝ,“áSPCÝ,“and“áT‘ÿeABÝ.ŽŸŸ#‘Kâ:Þ"ák²!eyseq@æÞ"Ý:‘ÝÝáfunction-name‘CmÝor‘¦fámacroŽŽ¡’…³-kš²!eyseq‘ú«Ýdi ers–¹Åfrom“ák˜eyname‘VÌÝabMÞo˜v˜e“in“that“strings“denoting“an“en-Ž¡’…³-tire– hk²!ey“sequence“can“bšMÞe“sp˜eci ed,‘%èbš²!y“placing“the“k˜ey“sequence“inŽ¡’…³-double–‰ôquotes.‘ÔbSome“ãgnu“ÝEmacs“stš²!yle“k˜ey“escapšMÞes“can“b˜e“used,‘¤asŽ¡’…³-in–Ãthe“folloš²!wing“example,‘(Ùbut“the“spMÞecial“c˜haracter“names“are“notŽ¡’…³-recognized.Ž¦’¢›‚Þ"\C-u":‘¿ªuniversal-argumentŽ¡’¢›‚"\C-x\C-r":‘¿ªre-read-init-fileŽ¡’¢›‚"\e[11~":–¿ª"Function“Key“1"Ž¦’…³-ÝIn–Â×the“abšMÞo•²!v“e–Â×example,‘ÉòäC-u“Ýis“again“b˜ound“to“the“functionŽ¡’…³-Þuniversal-argument–?ßÝ(just“as“it“w²!as“in“the“ rst“example),‘¦=`äC-xŽ¡’…³-C-rÝ'–ópis“bMÞound“to“the“function“Þre-read-init-fileÝ,‘F²and“`ž™š¸hŽ‘êÌŸù@‰ff¤TŸÀ­ESCŽŽ‘êÌŸÙš‰ff¤TŽ‘ ’ž™š¸iŽŽ‘KÚž™šhŽ‘6¦Ÿù@‰ff\tŸÀ­[ŽŽ‘6¦Ÿ‰ff\tŽ‘Œž™š¸iŽŽŽ¡’…³-ž™šhŽ’ˆùŸù@‰ff@ŸÀ­1ŽŽ’ˆùŸÙš‰ff@Ž’Œ[ož™š¸iŽŽ’“š·ž™šhŽ’–…ƒŸù@‰ff@ŸÀ­1ŽŽ’–…ƒŸÙš‰ff@Ž’šBùž™š¸iŽŽ’¡‚Až™šhŽ’¤m Ÿù@‰ff¿ªŸÀÞ~ŽŽ’¤m ŸÙš‰ff¿ªŽ’©ª)ž™š¸iŽŽ’­C Ý'–¦fis“bMÞound“to“insert“the“text“`ÞFunction“Key“1Ý'.Ž©Ÿ#‘Kâ:The–’Äfolloš²!wing“ãgnu“ÝEmacs“st˜yle“escapMÞe“sequences“are“a˜v‘ÿdDailable“when“spMÞecifyingŽ¡‘Kâ:k²!ey‘¦fsequences:Ž¦‘Kâ:ä\C-‘(‘õÝcon²!trol‘¦fpre xŽ¦‘Kâ:ä\M-‘(‘õÝmeta‘¦fpre xŽ¦‘Kâ:ä\e‘.QŸÝan–¦fescapMÞe“c²!haracterŽ¦‘Kâ:ä\\‘.QŸÝbac²!kslashŽ¦‘Kâ:ä\Þ"‘.QŸž™š¸hŽ‘1)Ž¡‘Kâ:ÝMo•²!v“e–¦fto“the“end“of“the“input“history‘ÿe,“i.e.,“the“line“currenš²!tly“bMÞeing“en˜tered.Ž¦‘GÞreverse-search-history‘¦f(C-r)Ž¡‘Kâ:ÝSearc•²!h›½:bac“kw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`up'˜through˜the˜his-Ž¡‘Kâ:tory–¦fas“necessary‘ÿe.‘ÝÝThis“is“an“incremenš²!tal“searc˜h.Ž¦‘GÞforward-search-history‘¦f(C-s)Ž¡‘Kâ:ÝSearc•²!h›‰÷forw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`do“wn'˜through˜the˜theŽ¡‘Kâ:history–¦fas“necessary‘ÿe.‘ÝÝThis“is“an“incremenš²!tal“searc˜h.Ž¦‘GÞnon-incremental-reverse-search-history‘¦f(M-p)Ž¡‘Kâ:ÝSearc•²!h›½:bac“kw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`up'˜through˜the˜his-Ž¡‘Kâ:tory–Ryas“necessary“using“a“non-incremenš²!tal“searc˜h“for“a“string“supplied“b˜y“theŽ¡‘Kâ:user.Ž¦‘GÞnon-incremental-forward-search-history‘¦f(M-n)Ž¡‘Kâ:ÝSearc•²!h›‰÷forw“ard˜starting˜at˜the˜curren“t˜line˜and˜mo“ving˜`do“wn'˜through˜the˜theŽ¡‘Kâ:history–3ªas“necessary“using“a“non-incremenš²!tal“searc˜h“for“a“string“supplied“b˜y“theŽ¡‘Kâ:user.Ž¦‘GÞhistory-search-forward‘¦f()Ž¡‘Kâ:ÝSearc•²!h›úOforw“ard˜through˜the˜history˜for˜the˜string˜of˜c“haracters˜bMÞet“w“een˜theŽ¡‘Kâ:start–7®of“the“currenš²!t“line“and“the“pMÞoin˜t.‘‘¶This“is“a“non-incremen˜tal“searc˜h.‘‘¶ByŽ¡‘Kâ:default,–¦fthis“command“is“un²!bMÞound.Ž¦‘GÞhistory-search-backward‘¦f()Ž¡‘Kâ:ÝSearc•²!h›-»bac“kw“ard˜through˜the˜history˜for˜the˜string˜of˜c“haracters˜bMÞet“w“een˜theŽ¡‘Kâ:start–7®of“the“currenš²!t“line“and“the“pMÞoin˜t.‘‘¶This“is“a“non-incremen˜tal“searc˜h.‘‘¶ByŽ¡‘Kâ:default,–¦fthis“command“is“un²!bMÞound.Ž¦‘GÞyank-nth-arg‘¦f(M-C-y)Ž¡‘Kâ:ÝInsert–@the“ rst“argumenš²!t“to“the“previous“command“(usually“the“second“w˜ord“onŽ¡‘Kâ:the–˜Gprevious“line)“at“pMÞoinš²!t.‘Ù(With“an“argumen˜t“ánÝ,‘›insert“the“ánÝth“w˜ord“from“theŽ¡‘Kâ:previous–<command“(the“wš²!ords“in“the“previous“command“bMÞegin“with“w˜ord“0).‘ºhAŽ¡‘Kâ:negativ•²!e›Þargumen“t˜inserts˜the˜ánÝth˜w“ord˜from˜the˜end˜of˜the˜previous˜command.Ž¦‘GÞyank-last-arg–¦f(M-.“or“M-_)Ž¡‘Kâ:ÝInsert–5Elast“argumenš²!t“to“the“previous“command“(the“last“w˜ord“of“the“previousŽ¡‘Kâ:history–¬fenš²!try).‘ïÜWith“an“argumen˜t,‘­æbMÞeha˜v˜e“exactly“lik˜e“Þyank-nth-argÝ.‘ïÜSucces-Ž¡‘Kâ:sivš²!e–&—calls“to“Þyank-last-arg“Ýmo˜v˜e“bac˜k“through“the“history“list,‘F£inserting“theŽ¡‘Kâ:last–¦fargumenš²!t“of“eac˜h“line“in“turn.ŽŽŒ‹´ƒŸò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®15ŽŽŽ ƒ3* ý ÌÖ‘Gëa1.4.3‘d(Commands–íMF›þÄ£or“Changing“T˜extŽŽŸ×î‘GÞdelete-char‘¦f(C-d)Ž¤ 33‘Kâ:ÝDelete–«¤the“cš²!haracter“at“pMÞoin˜t.‘í–If“pMÞoin˜t“is“at“the“bMÞeginning“of“the“line,‘ìóthereŽ¡‘Kâ:are–rÝno“cš²!haracters“in“the“line,‘¥ûand“the“last“c˜haracter“t˜ypMÞed“w˜as“not“bMÞound“toŽ¡‘Kâ:Þdelete-charÝ,–¦fthen“return“ãeofÝ.Ž©C‘GÞbackward-delete-char‘¦f(Rubout)Ž¡‘Kâ:ÝDelete–Ÿ§the“cš²!haracter“bMÞehind“the“cursor.‘ÛA‘Ÿ¥n˜umeric“argumen˜t“means“to“kill“theŽ¡‘Kâ:c²!haracters–¦finstead“of“deleting“them.Ž¦‘GÞforward-backward-delete-char‘¦f()Ž¡‘Kâ:ÝDelete–˜‘the“c²!haracter“under“the“cursor,‘Õunless“the“cursor“is“at“the“end“of“theŽ¡‘Kâ:line,‘×~in–Í­whicš²!h“case“the“c˜haracter“bMÞehind“the“cursor“is“deleted.‘S±By“default,‘×~thisŽ¡‘Kâ:is–¦fnot“bMÞound“to“a“k²!ey‘ÿe.Ž¦‘GÞquoted-insert–¦f(C-q“or“C-v)Ž¡‘Kâ:ÝAdd–¸the“next“cš²!haracter“t˜ypMÞed“to“the“line“v˜erbatim.‘CÔThis“is“ho˜w“to“insert“k˜eyŽ¡‘Kâ:sequences–¦flik²!e“äC-qÝ,“for“example.Ž¦‘GÞtab-insert‘¦f(M-ž™š¸hŽ‘êÌŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘êÌŸÙš‰ffÐlŽ‘8ªž™š¸iŽŽ‘ÑŒÞ)Ž¡‘Kâ:ÝInsert–¦fa“tab“c²!haracter.Ž¦‘GÞself-insert–¦f(a,“b,“A,“1,“!,“...Ž‘åe)Ž¡‘Kâ:ÝInsert‘¦fy²!ourself.Ž¦‘GÞtranspose-chars‘¦f(C-t)Ž¡‘Kâ:ÝDrag–Õãthe“cš²!haracter“bMÞefore“the“cursor“forw˜ard“o˜v˜er“the“c˜haracter“at“the“cursor,Ž¡‘Kâ:moš²!ving–C"the“cursor“forw˜ard“as“w˜ell.‘´If“the“insertion“pMÞoin˜t“is“at“the“end“of“theŽ¡‘Kâ:line,‘ÕÍthen–¡¦this“transpMÞoses“the“last“t•²!w“o›¡¦c“haracters˜of˜the˜line.‘†óNegativ“e˜argumen“tsŽ¡‘Kâ:ha•²!v“e–¦fno“e ect.Ž¦‘GÞtranspose-words‘¦f(M-t)Ž¡‘Kâ:ÝDrag–áÜthe“w²!ord“bšMÞefore“p˜oinš²!t“past“the“w˜ord“after“pMÞoin˜t,‘ðºmo˜ving“pMÞoin˜t“past“thatŽ¡‘Kâ:wš²!ord–g¸as“w˜ell.‘ÈøIf“the“insertion“pMÞoin˜t“is“at“the“end“of“the“line,‘tAthis“transpMÞoses“theŽ¡‘Kâ:last›¦ft•²!w“o˜w“ords˜on˜the˜line.Ž¦‘GÞupcase-word‘¦f(M-u)Ž¡‘Kâ:ÝUppMÞercase–ÖÓthe“currenš²!t“(or“follo˜wing)“w˜ord.‘o#With“a“negativ˜e“argumen˜t,‘âîuppMÞer-Ž¡‘Kâ:case–¦fthe“previous“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.Ž¦‘GÞdowncase-word‘¦f(M-l)Ž¡‘Kâ:ÝLo•²!w“ercase–”ãthe“currenš²!t“(or“follo˜wing)“w˜ord.‘‚²With“a“negativ˜e“argumen˜t,‘Ë–lo˜w˜ercaseŽ¡‘Kâ:the–¦fprevious“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.Ž¦‘GÞcapitalize-word‘¦f(M-c)Ž¡‘Kâ:ÝCapitalize–6the“currenš²!t“(or“follo˜wing)“w˜ord.‘€#With“a“negativ˜e“argumen˜t,‘ÅrcapitalizeŽ¡‘Kâ:the–¦fprevious“wš²!ord,“but“do“not“mo˜v˜e“the“cursor.Ž¦‘GÞoverwrite-mode‘¦f()Ž¡‘Kâ:ÝT‘ÿeoggle›öo•²!v“erwrite˜mo•MÞde.‘Í With˜an˜explicit˜p“ositiv•²!e˜n“umeric˜argumen“t,‘ ! switc“hesŽ¡‘Kâ:to›™ÿo•²!v“erwrite˜mo•MÞde.‘„fWith˜an˜explicit˜non-p“ositiv•²!e˜n“umeric˜argumen“t,‘Ï®switc“hes˜toŽŽŒ‹¿¥Ÿò‘GÝ16’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Kâ:insert–¬ÛmošMÞde.‘ñ=This“command“a ects“only“Þemacs“Ýmo˜de;‘°Þvi“Ýmo˜de“do˜es“o•²!v“erwriteŽ¤ 33‘Kâ:di eren•²!tly‘ÿe.‘ÝÝEac“h–¦fcall“to“Þreadline()“Ýstarts“in“insert“moMÞde.Ž©®‘Kâ:In›Ço•²!v“erwrite˜moMÞde,‘‰c“haracters˜b•MÞound˜to˜Þself-insert˜Ýreplace˜the˜text˜at˜p“oin²!tŽ¡‘Kâ:rather–þîthan“pushing“the“text“to“the“righ²!t.‘çtCharacters“bMÞound“to“Þbackward-Ž¡‘Kâ:delete-char–¦fÝreplace“the“c²!haracter“bšMÞefore“p˜oin²!t“with“a“space.Ž¦‘Kâ:By–¦fdefault,“this“command“is“un²!bMÞound.ŽŸp¤‘Gëa1.4.4‘d(Killing–íMAnd“Y‘þÄ£ankingŽŽŸáG‘GÞkill-line‘¦f(C-k)Ž¡‘Kâ:ÝKill–¦fthe“text“from“pMÞoin²!t“to“the“end“of“the“line.Ž©(õ‘GÞbackward-kill-line–¦f(C-x“Rubout)Ž¡‘Kâ:ÝKill›¦fbac•²!kw“ard˜to˜the˜bMÞeginning˜of˜the˜line.Ž¦‘GÞunix-line-discard‘¦f(C-u)Ž¡‘Kâ:ÝKill›¦fbac•²!kw“ard˜from˜the˜cursor˜to˜the˜bMÞeginning˜of˜the˜curren“t˜line.Ž¦‘GÞkill-whole-line‘¦f()Ž¡‘Kâ:ÝKill–cjall“cš²!haracters“on“the“curren˜t“line,‘’ªno“matter“where“pMÞoin˜t“is.‘èBy“default,Ž¡‘Kâ:this–¦fis“un²!bMÞound.Ž¦‘GÞkill-word‘¦f(M-d)Ž¡‘Kâ:ÝKill–‡ from“pMÞoinš²!t“to“the“end“of“the“curren˜t“w˜ord,‘Qor“if“bMÞet˜w˜een“w˜ords,‘Qto“the“endŽ¡‘Kâ:of–¦fthe“next“w²!ord.‘ÝÝW‘ÿeord“bMÞoundaries“are“the“same“as“Þforward-wordÝ.Ž¦‘GÞbackward-kill-word‘¦f(M-ž™š¸hŽ‘êÌŸù@‰ff“úŸÀ­DELŽŽ‘êÌŸÙš‰ff“úŽ‘ü8ž™š¸iŽŽ‘•Þ)Ž¡‘Kâ:ÝKill–wÖthe“w²!ord“bšMÞehind“p˜oin²!t.‘ÎXW‘ÿeord“b˜oundaries“are“the“same“as“Þbackward-wordÝ.Ž¦‘GÞunix-word-rubout‘¦f(C-w)Ž¡‘Kâ:ÝKill–ÍLthe“w²!ord“bšMÞehind“p˜oinš²!t,‘×using“white“space“as“a“w˜ord“bMÞoundary‘ÿe.‘RThe“killedŽ¡‘Kâ:text–¦fis“sa•²!v“ed–¦fon“the“kill-ring.Ž¦‘GÞunix-filename-rubout‘¦f()Ž¡‘Kâ:ÝKill–]Üthe“w²!ord“bšMÞehind“p˜oinš²!t,‘‹¹using“white“space“and“the“slash“c˜haracter“as“theŽ¡‘Kâ:wš²!ord–¦fbMÞoundaries.‘ÝÝThe“killed“text“is“sa˜v˜ed“on“the“kill-ring.Ž¦‘GÞdelete-horizontal-space‘¦f()Ž¡‘Kâ:ÝDelete–¦fall“spaces“and“tabs“around“pMÞoinš²!t.‘ÝÝBy“default,“this“is“un˜bMÞound.Ž¦‘GÞkill-region‘¦f()Ž¡‘Kâ:ÝKill–¦fthe“text“in“the“currenš²!t“region.‘ÝÝBy“default,“this“command“is“un˜bMÞound.Ž¦‘GÞcopy-region-as-kill‘¦f()Ž¡‘Kâ:ÝCopš²!y–³the“text“in“the“region“to“the“kill“bu er,‘0Eso“it“can“bMÞe“y˜ank˜ed“righ˜t“a˜w˜a˜y‘ÿe.Ž¡‘Kâ:By–¦fdefault,“this“command“is“un²!bMÞound.Ž¦‘GÞcopy-backward-word‘¦f()Ž¡‘Kâ:ÝCopš²!y–žthe“w˜ord“bšMÞefore“p˜oinš²!t“to“the“kill“bu er.‘ÄÿThe“w˜ord“bMÞoundaries“are“theŽ¡‘Kâ:same–¦fas“Þbackward-wordÝ.‘ÝÝBy“default,“this“command“is“un²!bMÞound.Ž¦‘GÞcopy-forward-word‘¦f()Ž¡‘Kâ:ÝCopš²!y–º8the“w˜ord“follo˜wing“pMÞoin˜t“to“the“kill“bu er.‘SThe“w˜ord“bMÞoundaries“are“theŽ¡‘Kâ:same–¦fas“Þforward-wordÝ.‘ÝÝBy“default,“this“command“is“un²!bMÞound.ŽŽŒ‹Ê¿Ÿò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®17ŽŽŽ ƒ3* ý ÌÖ‘GÞyank‘¦f(C-y)Ž¤ 33‘Kâ:ÝY‘ÿeank–¦fthe“top“of“the“kill“ring“inš²!to“the“bu er“at“pMÞoin˜t.Ž©FÓ‘GÞyank-pop‘¦f(M-y)Ž¡‘Kâ:ÝRotate–'!the“kill-ring,‘GPand“y²!ank“the“new“top.‘`Y‘ÿeou“can“only“do“this“if“the“priorŽ¡‘Kâ:command–¦fis“Þyank“Ýor“Þyank-popÝ.ŽŸp‘Gëa1.4.5‘d(Spiecifying–íMNumeric“Argumen–átsŽŽŸp6‘GÞdigit-argument–¦f(äM-0Þ,“äM-1Þ,“...Ž‘‹ËäM--Þ)Ž¡‘Kâ:ÝAdd–:Lthis“digit“to“the“argumenš²!t“already“accum˜ulating,‘Oëor“start“a“new“argumen˜t.Ž¡‘Kâ:äM--–¦fÝstarts“a“negativš²!e“argumen˜t.Ž¦‘GÞuniversal-argument‘¦f()Ž¡‘Kâ:ÝThis–kis“another“w•²!a“y–kto“spMÞecify“an“argumenš²!t.‘«ßIf“this“command“is“follo˜w˜ed“b˜y“oneŽ¡‘Kâ:or–more“digits,›“³optionally“with“a“leading“min²!us“sign,˜those“digits“de ne“the“ar-Ž¡‘Kâ:gumenš²!t.‘ÐÚIf–\the“command“is“follo˜w˜ed“b˜y“digits,‘‡+executing“Þuniversal-argumentŽ¡‘Kâ:Ýagain–Ñ«ends“the“nš²!umeric“argumen˜t,‘Ü|but“is“otherwise“ignored.‘_«As“a“spMÞecial“case,Ž¡‘Kâ:if–ñúthis“command“is“immediately“follo•²!w“ed›ñúb“y˜a˜c“haracter˜that˜is˜neither˜a˜digitŽ¡‘Kâ:or–Zwminš²!us“sign,‘i§the“argumen˜t“coun˜t“for“the“next“command“is“m˜ultiplied“b˜y“four.Ž¡‘Kâ:The–{targumenš²!t“coun˜t“is“initially“one,‘°¸so“executing“this“function“the“ rst“timeŽ¡‘Kâ:makš²!es–Ï2the“argumen˜t“coun˜t“four,‘Ùea“second“time“mak˜es“the“argumen˜t“coun˜t“six-Ž¡‘Kâ:teen,–¦fand“so“on.‘ÝÝBy“default,“this“is“not“bMÞound“to“a“k²!ey‘ÿe.ŽŸp‘Gëa1.4.6‘d(Letting–íMReadline“T–áypie“F›þÄ£or“Y˜ouŽŽŸp6‘GÞcomplete‘¦f(ž™š¸hŽ‘êÌŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘êÌŸÙš‰ffÐlŽ‘8ªž™š¸iŽŽ‘ÑŒÞ)Ž¡‘Kâ:ÝA²!ttempt–¶èto“pšMÞerform“completion“on“the“text“b˜efore“p˜oin²!t.‘ŽThe“actual“completionŽ¡‘Kâ:pšMÞerformed–¦fis“application-sp˜eci c.‘ÝÝThe“default“is“ lename“completion.Ž¦‘GÞpossible-completions‘¦f(M-?)Ž¡‘Kâ:ÝList–¦fthe“pšMÞossible“completions“of“the“text“b˜efore“p˜oin²!t.Ž¦‘GÞinsert-completions‘¦f(M-*)Ž¡‘Kâ:ÝInsert–«µall“completions“of“the“text“bšMÞefore“p˜oinš²!t“that“w˜ould“ha˜v˜e“bMÞeen“generatedŽ¡‘Kâ:b²!y‘¦fÞpossible-completionsÝ.Ž¦‘GÞmenu-complete‘¦f()Ž¡‘Kâ:ÝSimilar–ÛVto“ÞcompleteÝ,‘óbut“replaces“the“wš²!ord“to“bMÞe“completed“with“a“single“matc˜hŽ¡‘Kâ:from–‹æthe“list“of“pšMÞossible“completions.‘Ž^Rep˜eated“execution“of“Þmenu-completeŽ¡‘Kâ:Ýsteps–Õ¯through“the“list“of“pMÞossible“completions,‘!inserting“eacš²!h“matc˜h“in“turn.Ž¡‘Kâ:A²!t–jthe“end“of“the“list“of“completions,‘›šthe“bMÞell“is“rung“(sub‘›»ject“to“the“settingŽ¡‘Kâ:of–ThÞbell-styleÝ)“and“the“original“text“is“restored.‘çãAn“argumenš²!t“of“án“Ýmo˜v˜es“ánŽ¡‘Kâ:ÝpMÞositions–,Rforwš²!ard“in“the“list“of“matc˜hes;‘oGa“negativ˜e“argumen˜t“ma˜y“bMÞe“used“toŽ¡‘Kâ:mo•²!v“e›™Žbac“kw“ard˜through˜the˜list.‘·UThis˜command˜is˜in“tended˜to˜b•MÞe˜b“ound˜toŽ¡‘Kâ:ž™š¸hŽ‘NÍŸù@‰ffÐlŸÀ­T‘ÿJªABŽŽ‘NÍŸÙš‰ffÐlŽ‘`äž™š¸iŽŽ‘c³ÆÝ,–¦fbut“is“unš²!bMÞound“b˜y“default.Ž¦‘GÞdelete-char-or-list‘¦f()Ž¡‘Kâ:ÝDeletes–9{the“c²!haracter“under“the“cursor“if“not“at“the“bMÞeginning“or“end“of“the“lineŽ¡‘Kâ:(likš²!e–~±Þdelete-charÝ).‘СIf“at“the“end“of“the“line,‘†¢bMÞeha˜v˜es“iden˜tically“to“Þpossible-Ž¡‘Kâ:completionsÝ.‘ÝÝThis–¦fcommand“is“unš²!bMÞound“b˜y“default.ŽŽŒ‹ÕõŸò‘GÝ18’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘Gëa1.4.7‘d(Keybioard‘íMMacrosŽŽŸ¢¾‘GÞstart-kbd-macro–¦f(C-x“()Ž¤ 33‘Kâ:ÝBegin–¦fsaš²!ving“the“c˜haracters“t˜ypMÞed“in˜to“the“curren˜t“k˜eybMÞoard“macro.Ž©«ã‘GÞend-kbd-macro–¦f(C-x“))Ž¡‘Kâ:ÝStop–G!saš²!ving“the“c˜haracters“t˜ypMÞed“in˜to“the“curren˜t“k˜eybMÞoard“macro“and“sa˜v˜e“theŽ¡‘Kâ:de nition.Ž¦‘GÞcall-last-kbd-macro–¦f(C-x“e)Ž¡‘Kâ:ÝRe-execute–9Bthe“last“kš²!eybMÞoard“macro“de ned,‘]ùb˜y“making“the“c˜haracters“in“theŽ¡‘Kâ:macro–¦fappšMÞear“as“if“t²!yp˜ed“at“the“k²!eyb˜oard.ŽŸñ_‘Gëa1.4.8‘d(Some–íMMiscellaneous“CommandsŽŽŸ¢¾‘GÞre-read-init-file–¦f(C-x“C-r)Ž¡‘Kâ:ÝRead– kin“the“con•²!ten“ts– kof“the“áinputrc‘JoÝ le,‘ÔÐand“incorpMÞorate“an²!y“bindings“or“v‘ÿdDariableŽ¡‘Kâ:assignmen²!ts–¦ffound“there.Ž¦‘GÞabort‘¦f(C-g)Ž¡‘Kâ:ÝAbšMÞort–/the“curren²!t“editing“command“and“ring“the“terminal's“b˜ell“(sub‘›»ject“to“theŽ¡‘Kâ:setting–¦fof“Þbell-styleÝ).Ž¦‘GÞdo-uppercase-version–¦f(M-a,“M-b,“M-äxÞ,“...Ž‘åe)Ž¡‘Kâ:ÝIf–Qõthe“meta ed“cš²!haracter“áx‘TÝis“lo˜w˜ercase,‘bØrun“the“command“that“is“bMÞound“to“theŽ¡‘Kâ:corresp•MÞonding›¦fupp“ercase˜c²!haracter.Ž¦‘GÞprefix-meta‘¦f(ž™š¸hŽ‘êÌŸù@‰ff¤TŸÀ­ESCŽŽ‘êÌŸÙš‰ff¤TŽ‘ ’ž™š¸iŽŽ‘¥tÞ)Ž¡‘Kâ:ÝMetafy–‚2the“next“cš²!haracter“t˜ypMÞed.‘q@This“is“for“k˜eybMÞoards“without“a“meta“k˜ey‘ÿe.Ž¡‘Kâ:Tš²!yping–¦f`ž™š¸hŽ‘êÌŸù@‰ff¤TŸÀ­ESCŽŽ‘êÌŸÙš‰ff¤TŽ‘ ’ž™š¸iŽŽ‘KÚÞfÝ'“is“equiv‘ÿdDalen˜t“to“t˜yping“äM-fÝ.Ž¦‘GÞundo–¦f(C-_“or“C-x“C-u)Ž¡‘Kâ:ÝIncremenš²!tal–¦fundo,“separately“remem˜bMÞered“for“eac˜h“line.Ž¦‘GÞrevert-line‘¦f(M-r)Ž¡‘Kâ:ÝUndo–úall“cš²!hanges“made“to“this“line.‘ØäThis“is“lik˜e“executing“the“Þundo“ÝcommandŽ¡‘Kâ:enough–¦ftimes“to“get“bac²!k“to“the“bMÞeginning.Ž¦‘GÞtilde-expand‘¦f(M-~)Ž¡‘Kâ:ÝPš²!erform–¦ftilde“expansion“on“the“curren˜t“w˜ord.Ž¦‘GÞset-mark‘¦f(C-@)Ž¡‘Kâ:ÝSet–ðthe“mark“to“the“pMÞoinš²!t.‘ºØIf“a“n˜umeric“argumen˜t“is“supplied,‘ythe“mark“is“setŽ¡‘Kâ:to–¦fthat“pMÞosition.Ž¦‘GÞexchange-point-and-mark–¦f(C-x“C-x)Ž¡‘Kâ:ÝSwš²!ap–¾Òthe“pMÞoin˜t“with“the“mark.‘'!The“curren˜t“cursor“pMÞosition“is“set“to“the“sa˜v˜edŽ¡‘Kâ:pšMÞosition,–¦fand“the“old“cursor“p˜osition“is“sa•²!v“ed–¦fas“the“mark.Ž¦‘GÞcharacter-search‘¦f(C-])Ž¡‘Kâ:ÝA‘ü&cš²!haracter–üQis“read“and“pMÞoin˜t“is“mo˜v˜ed“to“the“next“oMÞccurrence“of“that“c˜haracter.Ž¡‘Kâ:A–¦fnegativš²!e“coun˜t“searc˜hes“for“previous“oMÞccurrences.ŽŽŒ‹âøŸò‘GÝChapter–¦f1:‘ÝÝCommand“Line“Editing’ýÓ®19ŽŽŽ ƒ3* ý ÌÖ‘GÞcharacter-search-backward‘¦f(M-C-])Ž¤ 33‘Kâ:ÝA‘c"cš²!haracter–c•is“read“and“pMÞoin˜t“is“mo˜v˜ed“to“the“previous“oMÞccurrence“of“thatŽ¡‘Kâ:c•²!haracter.‘ÝÝA›¦fnegativ“e˜coun“t˜searc“hes˜for˜subsequen“t˜oMÞccurrences.Ž©33‘GÞinsert-comment‘¦f(M-#)Ž¡‘Kâ:ÝWithout–GÑa“nš²!umeric“argumen˜t,‘p+the“v›ÿdDalue“of“the“Þcomment-begin“Ýv˜ariable“is“in-Ž¡‘Kâ:serted–Ìèat“the“bMÞeginning“of“the“currenš²!t“line.‘QdIf“a“n˜umeric“argumen˜t“is“supplied,Ž¡‘Kâ:this–cøcommand“acts“as“a“toggle:‘Yif“the“c²!haracters“at“the“bMÞeginning“of“the“lineŽ¡‘Kâ:do–¬Ânot“matc²!h“the“v›ÿdDalue“of“Þcomment-beginÝ,‘®Ythe“v˜alue“is“inserted,‘®Yotherwise“theŽ¡‘Kâ:c²!haracters–Ó6in“Þcomment-begin“Ýare“deleted“from“the“bMÞeginning“of“the“line.‘dMInŽ¡‘Kâ:either–¦fcase,“the“line“is“accepted“as“if“a“newline“had“bšMÞeen“t²!yp˜ed.Ž¦‘GÞdump-functions‘¦f()Ž¡‘Kâ:ÝPrinš²!t–,Qall“of“the“functions“and“their“k˜ey“bindings“to“the“Readline“output“stream.Ž¡‘Kâ:If–Îïa“nš²!umeric“argumen˜t“is“supplied,‘Ùthe“output“is“formatted“in“suc˜h“a“w˜a˜y“thatŽ¡‘Kâ:it–¦fcan“bšMÞe“made“part“of“an“áinputrc‘PjÝ le.‘ÝÝThis“command“is“un²!b˜ound“b²!y“default.Ž¦‘GÞdump-variables‘¦f()Ž¡‘Kâ:ÝPrin²!t–ŽÉall“of“the“settable“v›ÿdDariables“and“their“v˜alues“to“the“Readline“output“stream.Ž¡‘Kâ:If–Îïa“nš²!umeric“argumen˜t“is“supplied,‘Ùthe“output“is“formatted“in“suc˜h“a“w˜a˜y“thatŽ¡‘Kâ:it–¦fcan“bšMÞe“made“part“of“an“áinputrc‘PjÝ le.‘ÝÝThis“command“is“un²!b˜ound“b²!y“default.Ž¦‘GÞdump-macros‘¦f()Ž¡‘Kâ:ÝPrinš²!t– ˆall“of“the“Readline“k˜ey“sequences“bMÞound“to“macros“and“the“strings“theyŽ¡‘Kâ:output.‘rŠIf–-Ja“nš²!umeric“argumen˜t“is“supplied,‘Othe“output“is“formatted“in“suc˜h“aŽ¡‘Kâ:w•²!a“y–šthat“it“can“bšMÞe“made“part“of“an“áinputrc‘DÝ le.‘ÙÃThis“command“is“un²!b˜ound“b²!yŽ¡‘Kâ:default.Ž¦‘GÞemacs-editing-mode‘¦f(C-e)Ž¡‘Kâ:ÝWhen–¦fin“Þvi“Ýcommand“mošMÞde,“this“causes“a“switc²!h“to“Þemacs“Ýediting“mo˜de.Ž¦‘GÞvi-editing-mode‘¦f(M-C-j)Ž¡‘Kâ:ÝWhen–¦fin“Þemacs“Ýediting“mošMÞde,“this“causes“a“switc²!h“to“Þvi“Ýediting“mo˜de.ŽŸ‘GëX1.5‘™Readline–f@vi“Mos3deŽŽŸff‘!GÝWhile–×Uthe“Readline“library“došMÞes“not“ha•²!v“e–×Ua“full“set“of“Þvi“Ýediting“functions,‘¿it“do˜es“con²!tainŽ¡‘Genough–to“allo²!w“simple“editing“of“the“line.‘.ƒThe“Readline“Þvi“ÝmošMÞde“b˜eha•²!v“es–as“sp˜eci ed“inŽ¡‘Gthe–¦fãposix“Ý1003.2“standard.Ž©33‘!GIn–|Uorder“to“switcš²!h“in˜teractiv˜ely“bMÞet˜w˜een“Þemacs“Ýand“Þvi“Ýediting“moMÞdes,‘„¿use“the“commandŽ¡‘GäM-C-j–iÝ(bšMÞound“to“emacs-editing-mo˜de“when“in“Þvi“Ýmo˜de“and“to“vi-editing-mo˜de“in“ÞemacsŽ¡‘GÝmošMÞde).‘ÝÝThe–¦fReadline“default“is“Þemacs“Ýmo˜de.Ž¦‘!GWhen–›‰yš²!ou“en˜ter“a“line“in“Þvi“ÝmoMÞde,‘µy˜ou“are“already“placed“in“`insertion'“moMÞde,‘µas“if“y˜ouŽ¡‘Ghad–&Gtš²!ypMÞed“an“`ÞiÝ'.‘³(Pressing“ž™š¸hŽ‘Ÿù@‰ff¤TŸÀ­ESCŽŽ‘ŸÙš‰ff¤TŽ‘2Ùž™š¸iŽŽ‘òÝswitc˜hes“y˜ou“in˜to“`command'“moMÞde,‘?çwhere“y˜ou“can“edit“theŽ¡‘Gtext–of“the“line“with“the“standard“Þvi“Ýmo•²!v“emen“t›k“eys,‘)License“applies“to“anš²!y“man˜ual“or“other“w˜ork,‘³in“an˜y“medium,‘³that“con˜tains“aŽ¦‘'¿«notice–ýplaced“bš²!y“the“cop˜yrigh˜t“holder“sa˜ying“it“can“bMÞe“distributed“under“the“termsŽ¦‘'¿«of–€†this“License.‘l=Sucš²!h“a“notice“gran˜ts“a“w˜orld-wide,‘·ro˜y˜alt˜y-free“license,‘·unlimited“inŽ¦‘'¿«duration,‘â ! to–o·use“that“wš²!ork“under“the“conditions“stated“herein.‘ ! 9ÏThe“\DoMÞcumen˜t",Ž¦‘'¿«bMÞeloš²!w,‘tkrefers–gìto“an˜y“suc˜h“man˜ual“or“w˜ork.‘É ! An˜y“mem˜bMÞer“of“the“public“is“a“licensee,‘tkandŽ¦‘'¿«is–ÿaddressed“as“\yš²!ou".‘¦@Y‘ÿeou“accept“the“license“if“y˜ou“cop˜y‘ÿe,‘ îmoMÞdify“or“distribute“the“w˜orkŽ¦‘'¿«in–¦fa“w•²!a“y–¦frequiring“pMÞermission“under“cop•²!yrigh“t‘¦fla“w.Ž¡‘'¿«A‘ ¦\MošMÞdi ed– ÀV‘ÿeersion"“of“the“Do˜cumenš²!t“means“an˜y“w˜ork“con˜taining“the“DoMÞcumen˜t“orŽ¦‘'¿«a–‚hpMÞortion“of“it,›¹heither“copied“v²!erbatim,˜or“with“moMÞdi cations“and/or“translated“in²!toŽ¦‘'¿«another‘¦flanguage.Ž¡‘'¿«A‘ž\Secondary–ÀSection"“is“a“named“appšMÞendix“or“a“fron²!t-matter“section“of“the“Do˜cumen²!tŽ¦‘'¿«that–Ž/deals“exclusivš²!ely“with“the“relationship“of“the“publishers“or“authors“of“the“DoMÞcumen˜tŽ¦‘'¿«to–z the“DoMÞcumenš²!t's“o˜v˜erall“sub‘›»ject“(or“to“related“matters)“and“con˜tains“nothing“thatŽ¦‘'¿«could–Ø®fall“directly“within“that“o•²!v“erall›Ø®sub‘›»ject.‘t¶(Th“us,‘%@if˜the˜DoMÞcumen“t˜is˜in˜part˜aŽ¦‘'¿«textb•MÞo“ok–Õ†of“mathematics,‘ÿLa“Secondary“Section“maš²!y“not“explain“an˜y“mathematics.)‘˜=TheŽ¦‘'¿«relationship–GÞcould“bMÞe“a“matter“of“historical“connection“with“the“sub‘›»ject“or“with“relatedŽŽŒ‹ú"Ÿò‘GÝ22’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘'¿«matters,›jor–B÷of“legal,˜commercial,˜philosophical,˜ethical“or“pšMÞolitical“p˜osition“regardingŽ¤ 33‘'¿«them.Ž©ø¯‘'¿«The›r\In•²!v‘ÿdDarian“t˜Sections"˜are˜certain˜Secondary˜Sections˜whose˜titles˜are˜designated,‘0ÖasŽ¡‘'¿«bšMÞeing–2Dthose“of“In•²!v‘ÿdDarian“t–2DSections,‘I~in“the“notice“that“sa²!ys“that“the“Do˜cumen²!t“is“releasedŽ¡‘'¿«under–S5this“License.‘Â"If“a“section“došMÞes“not“ t“the“ab˜o•²!v“e–S5de nition“of“Secondary“then“it“isŽ¡‘'¿«not›Óallo•²!w“ed˜to˜bMÞe˜designated˜as˜In“v‘ÿdDarian“t.‘eSThe˜DoMÞcumen“t˜ma“y˜con“tain˜zero˜In“v‘ÿdDarian“tŽ¡‘'¿«Sections.‘¢ÄIf–õthe“DošMÞcumen²!t“do˜es“not“idenš²!tify“an˜y“In˜v‘ÿdDarian˜t“Sections“then“there“are“none.Ž¦‘'¿«The›f­\Co•²!v“er˜T–ÿeexts"˜are˜certain˜short˜passages˜of˜text˜that˜are˜listed,‘–¾as˜F“ron•²!t-Co“v“erŽ¡‘'¿«T›ÿeexts–-or“Bac•²!k-Co“v“er–-T˜exts,‘"8in“the“notice“that“saš²!ys“that“the“DoMÞcumen˜t“is“released“underŽ¡‘'¿«this›’License.‘¯AA‘nF‘ÿeron•²!t-Co“v“er˜T‘ÿeext˜ma“y˜bMÞe˜at˜most˜5˜w“ords,‘6‰and˜a˜Bac“k-Co“v“er˜T‘ÿeext˜ma“yŽ¡‘'¿«bMÞe–¦fat“most“25“w²!ords.Ž¦‘'¿«A‘C¦\T‘ÿeransparen•²!t"›CÎcop“y˜of˜the˜DoMÞcumen“t˜means˜a˜mac“hine-readable˜cop“y‘ÿe,‘k(represen“tedŽ¡‘'¿«in–Jma“format“whose“spMÞeci cation“is“a²!v‘ÿdDailable“to“the“general“public,‘sothat“is“suitable“forŽ¡‘'¿«revising–Îàthe“doMÞcumenš²!t“straigh˜tforw˜ardly“with“generic“text“editors“or“(for“images“com-Ž¡‘'¿«pMÞosed–ÚÃof“pixels)“generic“painš²!t“programs“or“(for“dra˜wings)“some“widely“a˜v‘ÿdDailable“dra˜wingŽ¡‘'¿«editor,‘…úand–}ßthat“is“suitable“for“input“to“text“formatters“or“for“automatic“translation“toŽ¡‘'¿«a–9Ov‘ÿdDarietš²!y“of“formats“suitable“for“input“to“text“formatters.‘¹€A‘93cop˜y“made“in“an“otherwiseŽ¡‘'¿«T‘ÿeransparen²!t–„æ le“format“whose“markup,›¼…or“absence“of“markup,˜has“bMÞeen“arranged“toŽ¡‘'¿«th•²!w“art–0ûor“discourage“subsequenš²!t“moMÞdi cation“b˜y“readers“is“not“T‘ÿeransparen˜t.‘¶ºAn“imageŽ¡‘'¿«format– Éis“not“T‘ÿeransparenš²!t“if“used“for“an˜y“substan˜tial“amoun˜t“of“text.‘MA‘ ©cop˜y“that“isŽ¡‘'¿«not–¦f\T‘ÿeransparen²!t"“is“called“\Opaque".Ž¦‘'¿«Examples–cXof“suitable“formats“for“T‘ÿeransparen²!t“copies“include“plain“ãasci>Ki“ÝwithoutŽ¡‘'¿«markup,› 'T‘ÿeexinfo–Ä›input“format,˜LaT‘þ,³Ÿ[wEŽ‘B X‘ÄQinput“format,˜ãsgml“Ýor“ãxml“Ýusing“a“publiclyŽ¡‘'¿«a²!v‘ÿdDailable–ÉeãdtdÝ,›Ò%and“standard-conforming“simple“ãhtmlÝ,˜P²!ostScript“or“ãpdf“Ýdesigned“forŽ¡‘'¿«hš²!uman––ëmoMÞdi cation.‘¯mExamples“of“transparen˜t“image“formats“include“ãpngÝ,‘Ó ãxÁ´cf“ÝandŽ¡‘'¿«ãjpgÝ.‘©QOpaque–”âformats“include“proprietary“formats“that“can“bMÞe“read“and“edited“onlyŽ¡‘'¿«bš²!y–¼Mproprietary“w˜ord“proMÞcessors,‘Æãsgml“Ýor“ãxml“Ýfor“whic˜h“the“ãdtd“Ýand/or“proMÞcessingŽ¡‘'¿«toMÞols–¶_are“not“generally“aš²!v‘ÿdDailable,‘º]and“the“mac˜hine-generated“ãhtmlÝ,‘º]P˜ostScript“or“ãpdfŽ¡‘'¿«ÝproMÞduced–¦fbš²!y“some“w˜ord“prošMÞcessors“for“output“purp˜oses“only‘ÿe.Ž¦‘'¿«The–Ü\Title“Pš²!age"“means,‘<ùfor“a“prin˜ted“b•MÞo“ok,›<ùthe–Ütitle“page“itself,˜plus“sucš²!h“follo˜wingŽ¡‘'¿«pages–RÃas“are“needed“to“hold,–c}legibly‘ÿe,“the–RÃmaterial“this“License“requires“to“appMÞear“in“theŽ¡‘'¿«title–1.page.‘¶ÊF‘ÿeor“wš²!orks“in“formats“whic˜h“do“not“ha˜v˜e“an˜y“title“page“as“suc˜h,‘HŸ\Title“P˜age"Ž¡‘'¿«means–­Žthe“text“near“the“most“prominenš²!t“appMÞearance“of“the“w˜ork's“title,‘¯Xpreceding“theŽ¡‘'¿«bšMÞeginning–¦fof“the“b˜o˜dy“of“the“text.Ž¦‘'¿«A›ísection–ò\En²!titled“XYZ"˜means“a“named“subunit“of“the“DoMÞcumen²!t“whose“title“eitherŽ¡‘'¿«is–Uªprecisely“XYZ›U•or“con²!tains“XYZ˜in“parenš²!theses“follo˜wing“text“that“translates“XYZ‘U•inŽ¡‘'¿«another–þ¯language.‘¥ö(Here“XYZ‘þ„stands“for“a“spšMÞeci c“section“name“men²!tioned“b˜elo•²!w,‘ :suc“hŽ¡‘'¿«as›aa\Ac•²!kno“wledgemen“ts",–o/\Dedications",“\Endorsemen²!ts",“or˜\History".)‘ÆÛT‘ÿeo˜\Preserv²!eŽ¡‘'¿«the–›Title"“of“sucš²!h“a“section“when“y˜ou“mošMÞdify“the“Do˜cumen²!t“means“that“it“remains“aŽ¡‘'¿«section–¦f\En²!titled“XYZ"“according“to“this“de nition.Ž¦‘'¿«The–SuDoMÞcumenš²!t“ma˜y“include“W‘ÿearran˜t˜y“Disclaimers“next“to“the“notice“whic˜h“states“thatŽ¡‘'¿«this–¹License“applies“to“the“DoMÞcumenš²!t.‘×These“W‘ÿearran˜t˜y“Disclaimers“are“considered“toŽ¡‘'¿«bMÞe–„ýincluded“bš²!y“reference“in“this“License,‘¼£but“only“as“regards“disclaiming“w˜arran˜ties:Ž¡‘'¿«anš²!y–nother“implication“that“these“W‘ÿearran˜t˜y“Disclaimers“ma˜y“ha˜v˜e“is“v˜oid“and“has“noŽ¡‘'¿«e ect–¦fon“the“meaning“of“this“License.ŽŽŒ‹ Ÿò‘GÝAppMÞendix–¦fA:“Copš²!ying“This“Man˜ual’ý~23ŽŽŽ ƒ3* ý ÌÖ‘-2.Ž‘'¿«VERBA‘ÿeTIM‘¦fCOPYINGŽ©™™‘'¿«Y‘ÿeou–’ùmaš²!y“cop˜y“and“distribute“the“DoMÞcumen˜t“in“an˜y“medium,‘Îeither“commercially“orŽ¤ 33‘'¿«noncommercially‘ÿe,›zªpro²!vided–that“this“License,˜the“cop•²!yrigh“t–notices,˜and“the“licenseŽ¡‘'¿«notice–Ksaš²!ying“this“License“applies“to“the“DoMÞcumen˜t“are“reproMÞduced“in“all“copies,‘t7andŽ¡‘'¿«that–1'yš²!ou“add“no“other“conditions“whatsoMÞev˜er“to“those“of“this“License.‘¶ÈY‘ÿeou“ma˜y“not“useŽ¡‘'¿«tecš²!hnical–ò“measures“to“obstruct“or“con˜trol“the“reading“or“further“cop˜ying“of“the“copiesŽ¡‘'¿«y•²!ou›òÇmak“e˜or˜distribute.‘¡þHo“w“ev“er,‘´y“ou˜ma“y˜accept˜compMÞensation˜in˜exc“hange˜for˜copies.Ž¡‘'¿«If–Þyš²!ou“distribute“a“large“enough“n˜um˜bMÞer“of“copies“y˜ou“m˜ust“also“follo˜w“the“conditionsŽ¡‘'¿«in–¦fsection“3.Ž¦‘'¿«Y‘ÿeou–}ìmaš²!y“also“lend“copies,‘¹7under“the“same“conditions“stated“abMÞo˜v˜e,‘¹7and“y˜ou“ma˜y“publiclyŽ¡‘'¿«displa²!y‘¦fcopies.Ž¦‘-3.Ž‘'¿«COPYING–¦fIN“QUANTITYŽ¦‘'¿«If–Ãyš²!ou“publish“prin˜ted“copies“(or“copies“in“media“that“commonly“ha˜v˜e“prin˜ted“co˜v˜ers)“ofŽ¡‘'¿«the‘Ñ.DošMÞcumen•²!t,‘Ûàn“um“b˜ering–Ñ.more“than“100,‘Ûàand“the“Do˜cumen²!t's“license“notice“requiresŽ¡‘'¿«Co•²!v“er›ÜT‘ÿeexts,‘<ùy“ou˜m“ust˜enclose˜the˜copies˜in˜co“v“ers˜that˜carry–ÿe,‘<ùclearly˜and˜legibly“,‘<ùallŽ¡‘'¿«these›´@Co•²!v“er˜T–ÿeexts:‘ù‘F“ron•²!t-Co“v“er˜T‘ÿeexts˜on˜the˜fron“t˜co“v“er,‘÷¶and˜Bac“k-Co“v“er˜T‘ÿeexts˜onŽ¡‘'¿«the–öbacš²!k“co˜v˜er.‘Ñ Both“co˜v˜ers“m˜ust“also“clearly“and“legibly“iden˜tify“y˜ou“as“the“publisherŽ¡‘'¿«of–,these“copies.‘H.The“fronš²!t“co˜v˜er“m˜ust“presen˜t“the“full“title“with“all“w˜ords“of“the“titleŽ¡‘'¿«equally–³xprominenš²!t“and“visible.‘Y‘ÿeou“ma˜y“add“other“material“on“the“co˜v˜ers“in“addition.Ž¡‘'¿«Copš²!ying–Y4with“c˜hanges“limited“to“the“co˜v˜ers,‘…ças“long“as“they“preserv˜e“the“title“of“theŽ¡‘'¿«DošMÞcumen²!t–uand“satisfy“these“conditions,‘¨Åcan“b˜e“treated“as“vš²!erbatim“cop˜ying“in“otherŽ¡‘'¿«respMÞects.Ž¦‘'¿«If–î|the“required“texts“for“either“co•²!v“er–î|are“toMÞo“vš²!oluminous“to“ t“legibly‘ÿe,‘‚y˜ou“should“putŽ¡‘'¿«the–ò rst“ones“listed“(as“manš²!y“as“ t“reasonably)“on“the“actual“co˜v˜er,‘ùand“con˜tin˜ue“theŽ¡‘'¿«rest–¦fonš²!to“adjacen˜t“pages.Ž¦‘'¿«If–?|yš²!ou“publish“or“distribute“Opaque“copies“of“the“DoMÞcumen˜t“n˜um˜bMÞering“more“than“100,Ž¡‘'¿«y•²!ou›\3m“ust˜either˜include˜a˜mac“hine-readable˜T‘ÿeransparen“t˜cop“y˜along˜with˜eac“h˜OpaqueŽ¡‘'¿«copš²!y‘ÿe,‘[>or–7state“in“or“with“eac˜h“Opaque“cop˜y“a“computer-net˜w˜ork“loMÞcation“from“whic˜hŽ¡‘'¿«the–éSgeneral“net•²!w“ork-using–éSpublic“has“access“to“doš²!wnload“using“public-standard“net˜w˜orkŽ¡‘'¿«protoMÞcols–¬=a“complete“T‘ÿeransparenš²!t“cop˜y“of“the“DoMÞcumen˜t,‘í³free“of“added“material.‘ïcIfŽ¡‘'¿«yš²!ou–ªuse“the“latter“option,‘êùy˜ou“m˜ust“tak˜e“reasonably“pruden˜t“steps,‘êùwhen“y˜ou“bMÞeginŽ¡‘'¿«distribution–—lof“Opaque“copies“in“quan•²!tit“y›ÿe,‘Ó®to–—lensure“that“this“T˜ransparenš²!t“cop˜y“willŽ¡‘'¿«remain– Cthš²!us“accessible“at“the“stated“loMÞcation“un˜til“at“least“one“y˜ear“after“the“last“timeŽ¡‘'¿«yš²!ou–k‘distribute“an“Opaque“cop˜y“(directly“or“through“y˜our“agen˜ts“or“retailers)“of“thatŽ¡‘'¿«edition–¦fto“the“public.Ž¦‘'¿«It–&Nis“requested,›FHbut“not“required,˜that“yš²!ou“con˜tact“the“authors“of“the“DoMÞcumen˜t“w˜ellŽ¡‘'¿«bMÞefore–oÅredistributing“anš²!y“large“n˜um˜bMÞer“of“copies,‘z²to“giv˜e“them“a“c˜hance“to“pro˜vide“y˜ouŽ¡‘'¿«with–¦fan“upšMÞdated“v²!ersion“of“the“Do˜cumen²!t.Ž¦‘-4.Ž‘'¿«MODIFICA‘ÿeTIONSŽ¦‘'¿«Y‘ÿeou–*maš²!y“cop˜y“and“distribute“a“MošMÞdi ed“V‘ÿeersion“of“the“Do˜cumen²!t“under“the“conditionsŽ¡‘'¿«of–…šsections“2“and“3“abšMÞo•²!v“e,‘¿]pro“vided–…šthat“y²!ou“release“the“Mo˜di ed“V‘ÿeersion“under“preciselyŽ¡‘'¿«this–{ÞLicense,‘„`with“the“MošMÞdi ed“V‘ÿeersion“ lling“the“role“of“the“Do˜cumen•²!t,‘„`th“us‘{ÞlicensingŽ¡‘'¿«distribution–¸and“mošMÞdi cation“of“the“Mo˜di ed“V‘ÿeersion“to“who˜ev²!er“p˜ossesses“a“cop²!y“ofŽ¡‘'¿«it.‘ÝÝIn–¦faddition,“yš²!ou“m˜ust“do“these“things“in“the“MoMÞdi ed“V‘ÿeersion:ŽŽŒ‹:Ÿò‘GÝ24’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘*òÄA.Ž‘=nUse–ípin“the“Title“Pš²!age“(and“on“the“co˜v˜ers,‘ÿ2if“an˜y)“a“title“distinct“from“that“of“theŽ¤ 33‘=nDoMÞcumenš²!t,‘+and–ˆfrom“those“of“previous“v˜ersions“(whic˜h“should,‘+if“there“w˜ere“an˜y‘ÿe,Ž¡‘=nbšMÞe–Âølisted“in“the“History“section“of“the“Do˜cumenš²!t).‘3“Y‘ÿeou“ma˜y“use“the“same“title“asŽ¡‘=na–¦fprevious“vš²!ersion“if“the“original“publisher“of“that“v˜ersion“giv˜es“pMÞermission.Ž©¬Í‘+gB.Ž‘=nList–ª\on“the“Title“P²!age,›«Yas“authors,˜one“or“more“pšMÞersons“or“en²!tities“resp˜onsible“forŽ¡‘=nauthorship–"of“the“mošMÞdi cations“in“the“Mo˜di ed“V‘ÿeersion,‘<|together“with“at“least“ v²!eŽ¡‘=nof–߸the“principal“authors“of“the“DoMÞcumenš²!t“(all“of“its“principal“authors,‘tif“it“has“few˜erŽ¡‘=nthan–¦f vš²!e),“unless“they“release“y˜ou“from“this“requiremen˜t.Ž¦‘+@¢C.Ž‘=nState–±Óon“the“Title“page“the“name“of“the“publisher“of“the“MoMÞdi ed“V‘ÿeersion,‘´®as“theŽ¡‘=npublisher.Ž¦‘*ËÕD.Ž‘=nPreservš²!e–¦fall“the“cop˜yrigh˜t“notices“of“the“DoMÞcumen˜t.Ž¦‘+µoE.Ž‘=nAdd–Äean“appropriate“cop•²!yrigh“t–Äenotice“for“yš²!our“moMÞdi cations“adjacen˜t“to“the“otherŽ¡‘=ncop•²!yrigh“t‘¦fnotices.Ž¦‘,LF.Ž‘=nInclude,›hSimmediately–XÎafter“the“cop•²!yrigh“t–XÎnotices,˜a“license“notice“giving“the“publicŽ¡‘=npšMÞermission–ïËto“use“the“Mo˜di ed“V‘ÿeersion“under“the“terms“of“this“License,‘Pin“the“formŽ¡‘=nshoš²!wn–¦fin“the“Addendum“bMÞelo˜w.Ž¦‘*‘nG.Ž‘=nPreservš²!e–¼min“that“license“notice“the“full“lists“of“In˜v‘ÿdDarian˜t“Sections“and“required“Co˜v˜erŽ¡‘=nT‘ÿeexts–¦fgivš²!en“in“the“DoMÞcumen˜t's“license“notice.Ž¦‘*òÄH.Ž‘=nInclude–¦fan“unaltered“cop²!y“of“this“License.Ž¦‘/4çI.Ž‘=nPreservš²!e–Ú†the“section“En˜titled“\History",‘çŽPreserv˜e“its“Title,‘çŽand“add“to“it“an“itemŽ¡‘=nstating–_ at“least“the“title,–mQy²!ear,“new›_ authors,“and˜publisher˜of˜the˜MoMÞdi ed˜V‘ÿeersionŽ¡‘=nas–ÄXgivš²!en“on“the“Title“P˜age.‘7²If“there“is“no“section“En˜titled“\History"“in“the“DoMÞcu-Ž¡‘=nmen²!t,›O#create–-done“stating“the“title,˜y²!ear,˜authors,˜and“publisher“of“the“DoMÞcumen²!tŽ¡‘=nas–Wgivš²!en“on“its“Title“P˜age,‘ƒGthen“add“an“item“describing“the“MoMÞdi ed“V‘ÿeersion“asŽ¡‘=nstated–¦fin“the“previous“sen²!tence.Ž¦‘-ˆ¢J.Ž‘=nPreservš²!e–æthe“net˜w˜ork“loMÞcation,‘õúif“an˜y‘ÿe,‘õúgiv˜en“in“the“DoMÞcumen˜t“for“public“access“toŽ¡‘=na–½…T‘ÿeransparenš²!t“cop˜y“of“the“DoMÞcumen˜t,‘ÃMand“lik˜ewise“the“net˜w˜ork“loMÞcations“giv˜en“inŽ¡‘=nthe–Í„DoMÞcumenš²!t“for“previous“v˜ersions“it“w˜as“based“on.‘S6These“ma˜y“bMÞe“placed“in“theŽ¡‘=n\History"–8section.‘¦ÎY‘ÿeou“maš²!y“omit“a“net˜w˜ork“loMÞcation“for“a“w˜ork“that“w˜as“publishedŽ¡‘=nat–Kleast“four“y²!ears“bšMÞefore“the“Do˜cumen²!t“itself,‘t?or“if“the“original“publisher“of“theŽ¡‘=nvš²!ersion–¦fit“refers“to“giv˜es“pMÞermission.Ž¦‘*¤åK.Ž‘=nF‘ÿeor–Ùranš²!y“section“En˜titled“\Ac˜kno˜wledgemen˜ts"“or“\Dedications",‘pPreserv˜e“the“TitleŽ¡‘=nof–/Rthe“section,‘G#and“preservš²!e“in“the“section“all“the“substance“and“tone“of“eac˜h“of“theŽ¡‘=ncon•²!tributor›¦fac“kno“wledgemen“ts˜and/or˜dedications˜giv“en˜therein.Ž¦‘,Q*L.Ž‘=nPreservš²!e–?Ôall“the“In˜v‘ÿdDarian˜t“Sections“of“the“DoMÞcumen˜t,‘f/unaltered“in“their“text“andŽ¡‘=nin–PÜtheir“titles.‘Ý@Section“n•²!um“bMÞers–PÜor“the“equiv‘ÿdDalen²!t“are“not“considered“part“of“theŽ¡‘=nsection‘¦ftitles.Ž¦‘)M.Ž‘=nDelete–°5anš²!y“section“En˜titled“\Endorsemen˜ts".‘ûJSuc˜h“a“section“ma˜y“not“bMÞe“includedŽ¡‘=nin–¦fthe“MoMÞdi ed“V‘ÿeersion.Ž¦‘*òÄN.Ž‘=nDo–g!not“retitle“anš²!y“existing“section“to“bMÞe“En˜titled“\Endorsemen˜ts"“or“to“con ict“inŽ¡‘=ntitle–¦fwith“anš²!y“In˜v‘ÿdDarian˜t“Section.Ž¦‘*¤åO.Ž‘=nPreserv•²!e›¦fan“y˜W‘ÿearran“t“y˜Disclaimers.ŽŸ&g‘'¿«If–Øthe“MošMÞdi ed“V‘ÿeersion“includes“new“fron²!t-matter“sections“or“app˜endices“that“qualifyŽ¡‘'¿«as–XSecondary“Sections“and“conš²!tain“no“material“copied“from“the“DoMÞcumen˜t,‘gµy˜ou“ma˜y“atŽŽŒ‹+ÛŸò‘GÝAppMÞendix–¦fA:“Copš²!ying“This“Man˜ual’ý~25ŽŽŽ ƒ3* ý ÌÖ‘'¿«yš²!our–ãkoption“designate“some“or“all“of“these“sections“as“in˜v‘ÿdDarian˜t.‘”íT‘ÿeo“do“this,‘ò­add“theirŽ¤ 33‘'¿«titles–@«to“the“list“of“In•²!v‘ÿdDarian“t–@«Sections“in“the“MoMÞdi ed“V‘ÿeersion's“license“notice.‘¬¬TheseŽ¡‘'¿«titles–¦fmš²!ust“bMÞe“distinct“from“an˜y“other“section“titles.Ž©× ! ‘'¿«Y‘ÿeou–pmaš²!y“add“a“section“En˜titled“\Endorsemen˜ts",‘s²pro˜vided“it“con˜tains“nothing“butŽ¡‘'¿«endorsemenš²!ts–‘of“y˜our“MoMÞdi ed“V‘ÿeersion“b˜y“v‘ÿdDarious“parties|for“example,‘•Ystatemen˜ts“ofŽ¡‘'¿«pšMÞeer–D review“or“that“the“text“has“b˜een“appro•²!v“ed›D b“y˜an˜organization˜as˜the˜authoritativ“eŽ¡‘'¿«de nition–¦fof“a“standard.Ž¦‘'¿«Y‘ÿeou–f,maš²!y“add“a“passage“of“up“to“ v˜e“w˜ords“as“a“F‘ÿeron˜t-Co˜v˜er“T‘ÿeext,‘sand“a“passage“of“upŽ¡‘'¿«to–@25“wš²!ords“as“a“Bac˜k-Co˜v˜er“T‘ÿeext,‘Tìto“the“end“of“the“list“of“Co˜v˜er“T‘ÿeexts“in“the“MoMÞdi edŽ¡‘'¿«V›ÿeersion.‘Õ+Only–N+one“passage“of“F˜ron•²!t-Co“v“er–N+T˜ext“and“one“of“Bac•²!k-Co“v“er–N+T˜ext“ma²!y“bMÞeŽ¡‘'¿«added–NÁbš²!y“(or“through“arrangemen˜ts“made“b˜y)“an˜y“one“en˜tit˜y‘ÿe.‘À¦If“the“DoMÞcumen˜t“alreadyŽ¡‘'¿«includes–Éa“co•²!v“er–Étext“for“the“same“co•²!v“er,‘/!previously–Éadded“bš²!y“y˜ou“or“b˜y“arrangemen˜tŽ¡‘'¿«made–:Çbš²!y“the“same“en˜tit˜y“y˜ou“are“acting“on“bMÞehalf“of,‘_ßy˜ou“ma˜y“not“add“another;‘„÷butŽ¡‘'¿«y•²!ou›)ma“y˜replace˜the˜old˜one,‘2on˜explicit˜pMÞermission˜from˜the˜previous˜publisher˜thatŽ¡‘'¿«added–¦fthe“old“one.Ž¦‘'¿«The–^author(s)“and“publisher(s)“of“the“DoMÞcumenš²!t“do“not“b˜y“this“License“giv˜e“pMÞermissionŽ¡‘'¿«to–¤juse“their“names“for“publicitš²!y“for“or“to“assert“or“imply“endorsemen˜t“of“an˜y“MoMÞdi edŽ¡‘'¿«V‘ÿeersion.Ž¦‘-5.Ž‘'¿«COMBINING‘¦fDOCUMENTSŽ¦‘'¿«Y‘ÿeou–¦Çmaš²!y“com˜bine“the“DoMÞcumen˜t“with“other“doMÞcumen˜ts“released“under“this“License,Ž¡‘'¿«under–—sthe“terms“de ned“in“section“4“abšMÞo•²!v“e–—sfor“mo˜di ed“v•²!ersions,‘Ó¶pro“vided–—sthat“y²!ouŽ¡‘'¿«include– in“the“comš²!bination“all“of“the“In˜v‘ÿdDarian˜t“Sections“of“all“of“the“original“doMÞcumen˜ts,Ž¡‘'¿«unmoMÞdi ed,‘L3and–5¦list“them“all“as“In•²!v‘ÿdDarian“t–5¦Sections“of“yš²!our“com˜bined“w˜ork“in“its“licenseŽ¡‘'¿«notice,–¦fand“that“yš²!ou“preserv˜e“all“their“W‘ÿearran˜t˜y“Disclaimers.Ž¦‘'¿«The–¢@comš²!bined“w˜ork“need“only“con˜tain“one“cop˜y“of“this“License,‘£and“m˜ultiple“iden˜ticalŽ¡‘'¿«In•²!v‘ÿdDarian“t–æÝSections“maš²!y“bMÞe“replaced“with“a“single“cop˜y‘ÿe.‘ŸBIf“there“are“m˜ultiple“In˜v‘ÿdDarian˜tŽ¡‘'¿«Sections–6Çwith“the“same“name“but“di erenš²!t“con˜ten˜ts,‘Mmak˜e“the“title“of“eac˜h“suc˜h“sectionŽ¡‘'¿«unique–bbš²!y“adding“at“the“end“of“it,‘1!in“paren˜theses,‘1!the“name“of“the“original“author“orŽ¡‘'¿«publisher–of“that“section“if“knoš²!wn,‘!­or“else“a“unique“n˜um˜bMÞer.‘¦Mak˜e“the“same“adjustmen˜tŽ¡‘'¿«to–î‡the“section“titles“in“the“list“of“In•²!v‘ÿdDarian“t–î‡Sections“in“the“license“notice“of“the“com²!binedŽ¡‘'¿«w²!ork.Ž¦‘'¿«In–ö"the“com•²!bination,‘Jy“ou›ö"m“ust˜com“bine˜an“y˜sections˜En“titled˜\History"˜in˜the˜v‘ÿdDari-Ž¡‘'¿«ous–ÜÛoriginal“doMÞcumenš²!ts,‘êxforming“one“section“En˜titled“\History";‘ølik˜ewise“com˜bine“an˜yŽ¡‘'¿«sections–ÑEnš²!titled“\Ac˜kno˜wledgemen˜ts",‘Û¿and“an˜y“sections“En˜titled“\Dedications".‘]çY‘ÿeouŽ¡‘'¿«mš²!ust–¦fdelete“all“sections“En˜titled“\Endorsemen˜ts."Ž¦‘-6.Ž‘'¿«COLLECTIONS–¦fOF“DOCUMENTSŽ¦‘'¿«Y‘ÿeou–Ò¤maš²!y“mak˜e“a“collection“consisting“of“the“DoMÞcumen˜t“and“other“doMÞcumen˜ts“releasedŽ¡‘'¿«under–this“License,‘sÚand“replace“the“individual“copies“of“this“License“in“the“v‘ÿdDariousŽ¡‘'¿«doMÞcumenš²!ts–Dwith“a“single“cop˜y“that“is“included“in“the“collection,‘yºpro˜vided“that“y˜ouŽ¡‘'¿«folloš²!w–t”the“rules“of“this“License“for“v˜erbatim“cop˜ying“of“eac˜h“of“the“doMÞcumen˜ts“in“allŽ¡‘'¿«other‘¦frespMÞects.Ž¦‘'¿«Y‘ÿeou–Æ=maš²!y“extract“a“single“doMÞcumen˜t“from“suc˜h“a“collection,‘Î3and“distribute“it“individu-Ž¡‘'¿«ally–4under“this“License,‘Wmproš²!vided“y˜ou“insert“a“cop˜y“of“this“License“in˜to“the“extractedŽ¡‘'¿«doMÞcumen•²!t,‘ùøand›éAfollo“w˜this˜License˜in˜all˜other˜respMÞects˜regarding˜v“erbatim˜cop“ying˜ofŽ¡‘'¿«that‘¦fdoMÞcumen²!t.ŽŽŒ‹;ÏŸò‘GÝ26’9pGNU–¦fReadline“LibraryŽŽŽ ƒ3* ý ÌÖ‘-7.Ž‘'¿«Aš²!GGREGA‘ÿeTION–¦fWITH“INDEPENDENT“W˜ORKSŽ©™™‘'¿«A‘]Æcompilation–]Øof“the“DoMÞcumenš²!t“or“its“deriv‘ÿdDativ˜es“with“other“separate“and“indepMÞenden˜tŽ¤ 33‘'¿«doMÞcumenš²!ts–ÿhor“w˜orks,‘©in“or“on“a“v˜olume“of“a“storage“or“distribution“medium,‘©is“calledŽ¡‘'¿«an– \aggregate"“if“the“cop•²!yrigh“t– resulting“from“the“compilation“is“not“used“to“limit“theŽ¡‘'¿«legal–1 righš²!ts“of“the“compilation's“users“bMÞey˜ond“what“the“individual“w˜orks“pMÞermit.‘¶¾WhenŽ¡‘'¿«the–QÝDošMÞcumen²!t“is“included“an“aggregate,‘bÅthis“License“do˜es“not“apply“to“the“other“w²!orksŽ¡‘'¿«in–¦fthe“aggregate“whicš²!h“are“not“themselv˜es“deriv‘ÿdDativ˜e“w˜orks“of“the“DoMÞcumen˜t.Ž¦‘'¿«If–»Vthe“Co•²!v“er–»VT‘ÿeext“requiremenš²!t“of“section“3“is“applicable“to“these“copies“of“the“DoMÞcumen˜t,Ž¡‘'¿«then–°Dif“the“DoMÞcumenš²!t“is“less“than“one“half“of“the“en˜tire“aggregate,‘á~the“DoMÞcumen˜t's“Co˜v˜erŽ¡‘'¿«T‘ÿeexts–0maš²!y“bMÞe“placed“on“co˜v˜ers“that“brac˜k˜et“the“DoMÞcumen˜t“within“the“aggregate,‘G°or“theŽ¡‘'¿«electronic–5qequiv‘ÿdDalenš²!t“of“co˜v˜ers“if“the“DoMÞcumen˜t“is“in“electronic“form.‘ŠýOtherwise“theyŽ¡‘'¿«mš²!ust–¦fappMÞear“on“prin˜ted“co˜v˜ers“that“brac˜k˜et“the“whole“aggregate.Ž¦‘-8.Ž‘'¿«TRANSLA‘ÿeTIONŽ¦‘'¿«T‘ÿeranslation–̯is“considered“a“kind“of“moMÞdi cation,‘Aso“yš²!ou“ma˜y“distribute“translationsŽ¡‘'¿«of–Tþthe“DoMÞcumenš²!t“under“the“terms“of“section“4.‘ é¤Replacing“In˜v‘ÿdDarian˜t“Sections“withŽ¡‘'¿«translations–v²requires“spšMÞecial“p˜ermission“from“their“cop•²!yrigh“t–v²holders,‘êÅbut“yš²!ou“ma˜yŽ¡‘'¿«include–ðktranslations“of“some“or“all“In•²!v‘ÿdDarian“t–ðkSections“in“addition“to“the“original“v²!ersionsŽ¡‘'¿«of–Æthese“In•²!v‘ÿdDarian“t–ÆSections.‘=Y‘ÿeou“ma²!y“include“a“translation“of“this“License,‘Î ! and“all“theŽ¡‘'¿«license–òúnotices“in“the“DoMÞcumenš²!t,‘Fand“an˜y“W‘ÿearran˜t˜y“Disclaimers,‘Fpro˜vided“that“y˜ouŽ¡‘'¿«also–Ïinclude“the“original“English“vš²!ersion“of“this“License“and“the“original“v˜ersions“ofŽ¡‘'¿«those–notices“and“disclaimers.‘5äIn“case“of“a“disagreemenš²!t“bMÞet˜w˜een“the“translation“andŽ¡‘'¿«the–:•original“vš²!ersion“of“this“License“or“a“notice“or“disclaimer,‘_ the“original“v˜ersion“willŽ¡‘'¿«prev‘ÿdDail.Ž¦‘'¿«If–pèa“section“in“the“DoMÞcumenš²!t“is“En˜titled“\Ac˜kno˜wledgemen˜ts",–{›\Dedications",“or‘pè\His-Ž¡‘'¿«tory",‘A¿the–(•requiremenš²!t“(section“4)“to“Preserv˜e“its“Title“(section“1)“will“t˜ypically“requireŽ¡‘'¿«c²!hanging–¦fthe“actual“title.Ž¦‘-9.Ž‘'¿«TERMINA‘ÿeTIONŽ¦‘'¿«Y‘ÿeou–”maš²!y“not“cop˜y–ÿe,›—¾moMÞdify“,˜sublicense,˜or–”distribute“the“DoMÞcumen²!t“except“as“expresslyŽ¡‘'¿«proš²!vided–=for“under“this“License.‘ýbAn˜y“other“attempt“to“cop˜y–ÿe,›^2moMÞdify“,˜sublicense‘=orŽ¡‘'¿«distribute–f?the“DoMÞcumenš²!t“is“v˜oid,‘–5and“will“automatically“terminate“y˜our“righ˜ts“underŽ¡‘'¿«this›V8License.‘Ã#Ho•²!w“ev“er,‘fAparties˜who˜ha“v“e˜receiv“ed˜copies,‘fAor˜righ“ts,‘fAfrom˜y“ou˜under˜thisŽ¡‘'¿«License–i+will“not“ha•²!v“e–i+their“licenses“terminated“so“long“as“suc²!h“parties“remain“in“fullŽ¡‘'¿«compliance.Ž¦‘‡“10.Ž‘'¿«FUTURE–¦fREVISIONS“OF“THIS“LICENSEŽ¦‘'¿«The–ÿaF›ÿeree“Soft•²!w“are–ÿaF˜oundation“maš²!y“publish“new,‘U revised“v˜ersions“of“the“GNU‘ÿ F‘ÿereeŽ¡‘'¿«DoMÞcumenš²!tation–ÙâLicense“from“time“to“time.‘xRSuc˜h“new“v˜ersions“will“bMÞe“similar“in“spiritŽ¡‘'¿«to– æthe“presenš²!t“v˜ersion,‘?†but“ma˜y“di er“in“detail“to“address“new“problems“or“concerns.Ž¡‘'¿«See‘¦fÞhttp://www.gnu.org/copyleft/Ý.Ž¦‘'¿«Eac•²!h›ˆ×v“ersion˜of˜the˜License˜is˜giv“en˜a˜distinguishing˜v“ersion˜n“um“b•MÞer.‘ÔIf˜the˜Do“cumen²!tŽ¡‘'¿«spšMÞeci es–r”that“a“particular“n•²!um“b˜ered›r”v“ersion˜of˜this˜License˜\or˜an“y˜later˜v“ersion"Ž¡‘'¿«applies–æQto“it,‘öKyš²!ou“ha˜v˜e“the“option“of“follo˜wing“the“terms“and“conditions“either“of“thatŽ¡‘'¿«spMÞeci ed–Žvš²!ersion“or“of“an˜y“later“v˜ersion“that“has“bMÞeen“published“(not“as“a“draft)“b˜yŽ¡‘'¿«the–î!F›ÿeree“Soft•²!w“are–î!F˜oundation.‘µIf“the“DošMÞcumen²!t“do˜es“not“sp˜ecify“a“vš²!ersion“n˜um˜bMÞer“ofŽ¡‘'¿«this–$œLicense,‘D)yš²!ou“ma˜y“c˜hoMÞose“an˜y“v˜ersion“ev˜er“published“(not“as“a“draft)“b˜y“the“F‘ÿereeŽ¡‘'¿«Soft•²!w“are‘¦fF‘ÿeoundation.ŽŽŒ‹L·Ÿò‘GÝAppMÞendix–¦fA:“Copš²!ying“This“Man˜ual’ý~27ŽŽŽ ƒ3* ý ÌÖ‘GëaA.1.1‘d(ADDENDUM:–íMHoš–áw“to“use“this“License“for“y˜our“doicumen˜tsŽŽŸff‘!GÝT‘ÿeo–FØuse“this“License“in“a“doMÞcumenš²!t“y˜ou“ha˜v˜e“written,‘Yôinclude“a“cop˜y“of“the“License“in“theŽ¤ 33‘GdoMÞcumenš²!t–¦fand“put“the“follo˜wing“cop˜yrigh˜t“and“license“notices“just“after“the“title“page:Ž© €‘8lÈóߤN cmtt9ÉCopyright‘¹–(C)‘ s,óAßê !
    !
    beginning-of-line (C-a) !
    Move to the start of the current line.

    !

    end-of-line (C-e) !
    Move to the end of the line.

    !

    forward-char (C-f) !
    Move forward a character.

    !

    backward-char (C-b) !
    Move back a character.

    !

    forward-word (M-f) !
    Move forward to the end of the next word. Words are composed of letters and digits.

    !

    backward-word (M-b) !
    Move back to the start of the current or previous word. Words are composed of letters and digits.

    !

    clear-screen (C-l) !
    Clear the screen and redraw the current line, leaving the current line at the top of the screen.

    !

    redraw-current-line () !
    Refresh the current line. By default, this is unbound.

    --- 1175,1226 ----

    !
    beginning-of-line (C-a) !
    Move to the start of the current line.

    !

    end-of-line (C-e) !
    Move to the end of the line.

    !

    forward-char (C-f) !
    Move forward a character.

    !

    backward-char (C-b) !
    Move back a character.

    !

    forward-word (M-f) !
    Move forward to the end of the next word. Words are composed of letters and digits.

    !

    backward-word (M-b) !
    Move back to the start of the current or previous word. Words are composed of letters and digits.

    !

    clear-screen (C-l) !
    Clear the screen and redraw the current line, leaving the current line at the top of the screen.

    !

    redraw-current-line () !
    Refresh the current line. By default, this is unbound.

    *************** *** 1235,1241 ****

    !
    accept-line (Newline or Return) !
    Accept the line regardless of where the cursor is. If this line is --- 1248,1254 ----
    !
    accept-line (Newline or Return) !
    Accept the line regardless of where the cursor is. If this line is *************** *** 1246,1291 ****

    !

    previous-history (C-p) !
    Move `back' through the history list, fetching the previous command.

    !

    next-history (C-n) !
    Move `forward' through the history list, fetching the next command.

    !

    beginning-of-history (M-<) !
    Move to the first line in the history.

    !

    end-of-history (M->) !
    Move to the end of the input history, i.e., the line currently being entered.

    !

    reverse-search-history (C-r) !
    Search backward starting at the current line and moving `up' through the history as necessary. This is an incremental search.

    !

    forward-search-history (C-s) !
    Search forward starting at the current line and moving `down' through the the history as necessary. This is an incremental search.

    !

    non-incremental-reverse-search-history (M-p) !
    Search backward starting at the current line and moving `up' through the history as necessary using a non-incremental search --- 1259,1304 ----

    !

    previous-history (C-p) !
    Move `back' through the history list, fetching the previous command.

    !

    next-history (C-n) !
    Move `forward' through the history list, fetching the next command.

    !

    beginning-of-history (M-<) !
    Move to the first line in the history.

    !

    end-of-history (M->) !
    Move to the end of the input history, i.e., the line currently being entered.

    !

    reverse-search-history (C-r) !
    Search backward starting at the current line and moving `up' through the history as necessary. This is an incremental search.

    !

    forward-search-history (C-s) !
    Search forward starting at the current line and moving `down' through the the history as necessary. This is an incremental search.

    !

    non-incremental-reverse-search-history (M-p) !
    Search backward starting at the current line and moving `up' through the history as necessary using a non-incremental search *************** *** 1293,1299 ****

    !

    non-incremental-forward-search-history (M-n) !
    Search forward starting at the current line and moving `down' through the the history as necessary using a non-incremental search --- 1306,1312 ----

    !

    non-incremental-forward-search-history (M-n) !
    Search forward starting at the current line and moving `down' through the the history as necessary using a non-incremental search *************** *** 1301,1307 ****

    !

    history-search-forward () !
    Search forward through the history for the string of characters between the start of the current line and the point. --- 1314,1320 ----

    !

    history-search-forward () !
    Search forward through the history for the string of characters between the start of the current line and the point. *************** *** 1310,1316 ****

    !

    history-search-backward () !
    Search backward through the history for the string of characters between the start of the current line and the point. This --- 1323,1329 ----

    !

    history-search-backward () !
    Search backward through the history for the string of characters between the start of the current line and the point. This *************** *** 1318,1324 ****

    !

    yank-nth-arg (M-C-y) !
    Insert the first argument to the previous command (usually the second word on the previous line) at point. --- 1331,1337 ----

    !

    yank-nth-arg (M-C-y) !
    Insert the first argument to the previous command (usually the second word on the previous line) at point. *************** *** 1329,1335 ****

    !

    yank-last-arg (M-. or M-_) !
    Insert last argument to the previous command (the last word of the previous history entry). With an --- 1342,1348 ----

    !

    yank-last-arg (M-. or M-_) !
    Insert last argument to the previous command (the last word of the previous history entry). With an *************** *** 1361,1367 ****
    !
    delete-char (C-d) !
    Delete the character at point. If point is at the beginning of the line, there are no characters in the line, and --- 1374,1380 ----
    !
    delete-char (C-d) !
    Delete the character at point. If point is at the beginning of the line, there are no characters in the line, and *************** *** 1370,1383 ****

    !

    backward-delete-char (Rubout) !
    Delete the character behind the cursor. A numeric argument means to kill the characters instead of deleting them.

    !

    forward-backward-delete-char () !
    Delete the character under the cursor, unless the cursor is at the end of the line, in which case the character behind the cursor is --- 1383,1396 ----

    !

    backward-delete-char (Rubout) !
    Delete the character behind the cursor. A numeric argument means to kill the characters instead of deleting them.

    !

    forward-backward-delete-char () !
    Delete the character under the cursor, unless the cursor is at the end of the line, in which case the character behind the cursor is *************** *** 1385,1410 ****

    !

    quoted-insert (C-q or C-v) !
    Add the next character typed to the line verbatim. This is how to insert key sequences like C-q, for example.

    !

    tab-insert (M-TAB) !
    Insert a tab character.

    !

    self-insert (a, b, A, 1, !, ...) !
    Insert yourself.

    !

    transpose-chars (C-t) !
    Drag the character before the cursor forward over the character at the cursor, moving the --- 1398,1423 ----

    !

    quoted-insert (C-q or C-v) !
    Add the next character typed to the line verbatim. This is how to insert key sequences like C-q, for example.

    !

    tab-insert (M-TAB) !
    Insert a tab character.

    !

    self-insert (a, b, A, 1, !, ...) !
    Insert yourself.

    !

    transpose-chars (C-t) !
    Drag the character before the cursor forward over the character at the cursor, moving the *************** *** 1415,1421 ****

    !

    transpose-words (M-t) !
    Drag the word before point past the word after point, moving point past that word as well. --- 1428,1434 ----

    !

    transpose-words (M-t) !
    Drag the word before point past the word after point, moving point past that word as well. *************** *** 1424,1451 ****

    !

    upcase-word (M-u) !
    Uppercase the current (or following) word. With a negative argument, uppercase the previous word, but do not move the cursor.

    !

    downcase-word (M-l) !
    Lowercase the current (or following) word. With a negative argument, lowercase the previous word, but do not move the cursor.

    !

    capitalize-word (M-c) !
    Capitalize the current (or following) word. With a negative argument, capitalize the previous word, but do not move the cursor.

    !

    overwrite-mode () !
    Toggle overwrite mode. With an explicit positive numeric argument, switches to overwrite mode. With an explicit non-positive numeric --- 1437,1464 ----

    !

    upcase-word (M-u) !
    Uppercase the current (or following) word. With a negative argument, uppercase the previous word, but do not move the cursor.

    !

    downcase-word (M-l) !
    Lowercase the current (or following) word. With a negative argument, lowercase the previous word, but do not move the cursor.

    !

    capitalize-word (M-c) !
    Capitalize the current (or following) word. With a negative argument, capitalize the previous word, but do not move the cursor.

    !

    overwrite-mode () !
    Toggle overwrite mode. With an explicit positive numeric argument, switches to overwrite mode. With an explicit non-positive numeric *************** *** 1487,1518 ****
    !
    kill-line (C-k) !
    Kill the text from point to the end of the line.

    !

    backward-kill-line (C-x Rubout) !
    Kill backward to the beginning of the line.

    !

    unix-line-discard (C-u) !
    Kill backward from the cursor to the beginning of the current line.

    !

    kill-whole-line () !
    Kill all characters on the current line, no matter where point is. By default, this is unbound.

    !

    kill-word (M-d) !
    Kill from point to the end of the current word, or if between words, to the end of the next word. --- 1500,1531 ----
    !
    kill-line (C-k) !
    Kill the text from point to the end of the line.

    !

    backward-kill-line (C-x Rubout) !
    Kill backward to the beginning of the line.

    !

    unix-line-discard (C-u) !
    Kill backward from the cursor to the beginning of the current line.

    !

    kill-whole-line () !
    Kill all characters on the current line, no matter where point is. By default, this is unbound.

    !

    kill-word (M-d) !
    Kill from point to the end of the current word, or if between words, to the end of the next word. *************** *** 1520,1560 ****

    !

    backward-kill-word (M-DEL) !
    Kill the word behind point. Word boundaries are the same as backward-word.

    !

    unix-word-rubout (C-w) !
    Kill the word behind point, using white space as a word boundary. The killed text is saved on the kill-ring.

    !

    delete-horizontal-space () !
    Delete all spaces and tabs around point. By default, this is unbound.

    !

    kill-region () !
    Kill the text in the current region. By default, this command is unbound.

    !

    copy-region-as-kill () !
    Copy the text in the region to the kill buffer, so it can be yanked right away. By default, this command is unbound.

    !

    copy-backward-word () !
    Copy the word before point to the kill buffer. The word boundaries are the same as backward-word. --- 1533,1581 ----

    !

    backward-kill-word (M-DEL) !
    Kill the word behind point. Word boundaries are the same as backward-word.

    !

    unix-word-rubout (C-w) !
    Kill the word behind point, using white space as a word boundary. The killed text is saved on the kill-ring.

    ! !

    unix-filename-rubout () !
    ! Kill the word behind point, using white space and the slash character ! as the word boundaries. ! The killed text is saved on the kill-ring. !

    ! !

    delete-horizontal-space () !
    Delete all spaces and tabs around point. By default, this is unbound.

    !

    kill-region () !
    Kill the text in the current region. By default, this command is unbound.

    !

    copy-region-as-kill () !
    Copy the text in the region to the kill buffer, so it can be yanked right away. By default, this command is unbound.

    !

    copy-backward-word () !
    Copy the word before point to the kill buffer. The word boundaries are the same as backward-word. *************** *** 1562,1568 ****

    !

    copy-forward-word () !
    Copy the word following point to the kill buffer. The word boundaries are the same as forward-word. --- 1583,1589 ----

    !

    copy-forward-word () !
    Copy the word following point to the kill buffer. The word boundaries are the same as forward-word. *************** *** 1570,1582 ****

    !

    yank (C-y) !
    Yank the top of the kill ring into the buffer at point.

    !

    yank-pop (M-y) !
    Rotate the kill-ring, and yank the new top. You can only do this if the prior command is yank or yank-pop. --- 1591,1603 ----

    !

    yank (C-y) !
    Yank the top of the kill ring into the buffer at point.

    !

    yank-pop (M-y) !
    Rotate the kill-ring, and yank the new top. You can only do this if the prior command is yank or yank-pop. *************** *** 1602,1615 ****
    !
    digit-argument (M-0, M-1, ... M--) !
    Add this digit to the argument already accumulating, or start a new argument. M-- starts a negative argument.

    !

    universal-argument () !
    This is another way to specify an argument. If this command is followed by one or more digits, optionally with a --- 1623,1636 ----
    !
    digit-argument (M-0, M-1, ... M--) !
    Add this digit to the argument already accumulating, or start a new argument. M-- starts a negative argument.

    !

    universal-argument () !
    This is another way to specify an argument. If this command is followed by one or more digits, optionally with a *************** *** 1646,1652 ****
    !
    complete (TAB) !
    Attempt to perform completion on the text before point. The actual completion performed is application-specific. --- 1667,1673 ----
    !
    complete (TAB) !
    Attempt to perform completion on the text before point. The actual completion performed is application-specific. *************** *** 1654,1673 ****

    !

    possible-completions (M-?) !
    List the possible completions of the text before point.

    !

    insert-completions (M-*) !
    Insert all completions of the text before point that would have been generated by possible-completions.

    !

    menu-complete () !
    Similar to complete, but replaces the word to be completed with a single match from the list of possible completions. --- 1675,1694 ----

    !

    possible-completions (M-?) !
    List the possible completions of the text before point.

    !

    insert-completions (M-*) !
    Insert all completions of the text before point that would have been generated by possible-completions.

    !

    menu-complete () !
    Similar to complete, but replaces the word to be completed with a single match from the list of possible completions. *************** *** 1684,1690 ****

    !

    delete-char-or-list () !
    Deletes the character under the cursor if not at the beginning or end of the line (like delete-char). --- 1705,1711 ----

    !

    delete-char-or-list () !
    Deletes the character under the cursor if not at the beginning or end of the line (like delete-char). *************** *** 1715,1734 ****
    !
    start-kbd-macro (C-x () !
    Begin saving the characters typed into the current keyboard macro.

    !

    end-kbd-macro (C-x )) !
    Stop saving the characters typed into the current keyboard macro and save the definition.

    !

    call-last-kbd-macro (C-x e) !
    Re-execute the last keyboard macro defined, by making the characters in the macro appear as if typed at the keyboard. --- 1736,1755 ----
    !
    start-kbd-macro (C-x () !
    Begin saving the characters typed into the current keyboard macro.

    !

    end-kbd-macro (C-x )) !
    Stop saving the characters typed into the current keyboard macro and save the definition.

    !

    call-last-kbd-macro (C-x e) !
    Re-execute the last keyboard macro defined, by making the characters in the macro appear as if typed at the keyboard. *************** *** 1756,1769 ****
    !
    re-read-init-file (C-x C-r) !
    Read in the contents of the inputrc file, and incorporate any bindings or variable assignments found there.

    !

    abort (C-g) !
    Abort the current editing command and ring the terminal's bell (subject to the setting of --- 1777,1790 ----
    !
    re-read-init-file (C-x C-r) !
    Read in the contents of the inputrc file, and incorporate any bindings or variable assignments found there.

    !

    abort (C-g) !
    Abort the current editing command and ring the terminal's bell (subject to the setting of *************** *** 1771,1784 ****

    !

    do-uppercase-version (M-a, M-b, M-x, ...) !
    If the metafied character x is lowercase, run the command that is bound to the corresponding uppercase character.

    !

    prefix-meta (ESC) !
    Metafy the next character typed. This is for keyboards without a meta key. Typing `ESC f' is equivalent to typing --- 1792,1805 ----

    !

    do-uppercase-version (M-a, M-b, M-x, ...) !
    If the metafied character x is lowercase, run the command that is bound to the corresponding uppercase character.

    !

    prefix-meta (ESC) !
    Metafy the next character typed. This is for keyboards without a meta key. Typing `ESC f' is equivalent to typing *************** *** 1786,1832 ****

    !

    undo (C-_ or C-x C-u) !
    Incremental undo, separately remembered for each line.

    !

    revert-line (M-r) !
    Undo all changes made to this line. This is like executing the undo command enough times to get back to the beginning.

    !

    tilde-expand (M-~) !
    Perform tilde expansion on the current word.

    !

    set-mark (C-@) !
    Set the mark to the point. If a numeric argument is supplied, the mark is set to that position.

    !

    exchange-point-and-mark (C-x C-x) !
    Swap the point with the mark. The current cursor position is set to the saved position, and the old cursor position is saved as the mark.

    !

    character-search (C-]) !
    A character is read and point is moved to the next occurrence of that character. A negative count searches for previous occurrences.

    !

    character-search-backward (M-C-]) !
    A character is read and point is moved to the previous occurrence of that character. A negative count searches for subsequent --- 1807,1853 ----

    !

    undo (C-_ or C-x C-u) !
    Incremental undo, separately remembered for each line.

    !

    revert-line (M-r) !
    Undo all changes made to this line. This is like executing the undo command enough times to get back to the beginning.

    !

    tilde-expand (M-~) !
    Perform tilde expansion on the current word.

    !

    set-mark (C-@) !
    Set the mark to the point. If a numeric argument is supplied, the mark is set to that position.

    !

    exchange-point-and-mark (C-x C-x) !
    Swap the point with the mark. The current cursor position is set to the saved position, and the old cursor position is saved as the mark.

    !

    character-search (C-]) !
    A character is read and point is moved to the next occurrence of that character. A negative count searches for previous occurrences.

    !

    character-search-backward (M-C-]) !
    A character is read and point is moved to the previous occurrence of that character. A negative count searches for subsequent *************** *** 1834,1840 ****

    !

    insert-comment (M-#) !
    Without a numeric argument, the value of the comment-begin variable is inserted at the beginning of the current line. --- 1855,1861 ----

    !

    insert-comment (M-#) !
    Without a numeric argument, the value of the comment-begin variable is inserted at the beginning of the current line. *************** *** 1847,1853 ****

    !

    dump-functions () !
    Print all of the functions and their key bindings to the Readline output stream. If a numeric argument is supplied, --- 1868,1874 ----

    !

    dump-functions () !
    Print all of the functions and their key bindings to the Readline output stream. If a numeric argument is supplied, *************** *** 1856,1862 ****

    !

    dump-variables () !
    Print all of the settable variables and their values to the Readline output stream. If a numeric argument is supplied, --- 1877,1883 ----

    !

    dump-variables () !
    Print all of the settable variables and their values to the Readline output stream. If a numeric argument is supplied, *************** *** 1865,1871 ****

    !

    dump-macros () !
    Print all of the Readline key sequences bound to macros and the strings they output. If a numeric argument is supplied, --- 1886,1892 ----

    !

    dump-macros () !
    Print all of the Readline key sequences bound to macros and the strings they output. If a numeric argument is supplied, *************** *** 1874,1887 ****

    !

    emacs-editing-mode (C-e) !
    When in vi command mode, this causes a switch to emacs editing mode.

    !

    vi-editing-mode (M-C-j) !
    When in emacs editing mode, this causes a switch to vi editing mode. --- 1895,1908 ----

    !

    emacs-editing-mode (C-e) !
    When in vi command mode, this causes a switch to emacs editing mode.

    !

    vi-editing-mode (M-C-j) !
    When in emacs editing mode, this causes a switch to vi editing mode. *************** *** 1896,1903 **** ! ! --- 1917,1924 ----
    [ < ][ > ]   [ << ] [ Up ][ >> ]         [Top] [Contents]
    ! ! *************** *** 1929,1932 **** --- 1950,2514 ----

    + +


    + +
    [ < ][ > ]   [ << ] [ Up ][ >> ]         [Top] [Contents]
    + + + + + + + + + +
    [ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
    +

    A. Copying This Manual

    + +

    + +

    + +
    A.1 GNU Free Documentation License  License for copying this manual.
    +

    + + +


    + + + + + + + + + + + +
    [ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
    +

    A.1 GNU Free Documentation License

    + +

    + + +

    + Version 1.2, November 2002 +
    +

    + +
     
    Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
    + 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
    + 
    + Everyone is permitted to copy and distribute verbatim copies
    + of this license document, but changing it is not allowed.
    + 

    + +

      +
    1. + PREAMBLE +

      + + The purpose of this License is to make a manual, textbook, or other + functional and useful document free in the sense of freedom: to + assure everyone the effective freedom to copy and redistribute it, + with or without modifying it, either commercially or noncommercially. + Secondarily, this License preserves for the author and publisher a way + to get credit for their work, while not being considered responsible + for modifications made by others. +

      + + This License is a kind of "copyleft", which means that derivative + works of the document must themselves be free in the same sense. It + complements the GNU General Public License, which is a copyleft + license designed for free software. +

      + + We have designed this License in order to use it for manuals for free + software, because free software needs free documentation: a free + program should come with manuals providing the same freedoms that the + software does. But this License is not limited to software manuals; + it can be used for any textual work, regardless of subject matter or + whether it is published as a printed book. We recommend this License + principally for works whose purpose is instruction or reference. +

      + +

    2. + APPLICABILITY AND DEFINITIONS +

      + + This License applies to any manual or other work, in any medium, that + contains a notice placed by the copyright holder saying it can be + distributed under the terms of this License. Such a notice grants a + world-wide, royalty-free license, unlimited in duration, to use that + work under the conditions stated herein. The "Document", below, + refers to any such manual or work. Any member of the public is a + licensee, and is addressed as "you". You accept the license if you + copy, modify or distribute the work in a way requiring permission + under copyright law. +

      + + A "Modified Version" of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. +

      + + A "Secondary Section" is a named appendix or a front-matter section + of the Document that deals exclusively with the relationship of the + publishers or authors of the Document to the Document's overall + subject (or to related matters) and contains nothing that could fall + directly within that overall subject. (Thus, if the Document is in + part a textbook of mathematics, a Secondary Section may not explain + any mathematics.) The relationship could be a matter of historical + connection with the subject or with related matters, or of legal, + commercial, philosophical, ethical or political position regarding + them. +

      + + The "Invariant Sections" are certain Secondary Sections whose titles + are designated, as being those of Invariant Sections, in the notice + that says that the Document is released under this License. If a + section does not fit the above definition of Secondary then it is not + allowed to be designated as Invariant. The Document may contain zero + Invariant Sections. If the Document does not identify any Invariant + Sections then there are none. +

      + + The "Cover Texts" are certain short passages of text that are listed, + as Front-Cover Texts or Back-Cover Texts, in the notice that says that + the Document is released under this License. A Front-Cover Text may + be at most 5 words, and a Back-Cover Text may be at most 25 words. +

      + + A "Transparent" copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, that is suitable for revising the document + straightforwardly with generic text editors or (for images composed of + pixels) generic paint programs or (for drawings) some widely available + drawing editor, and that is suitable for input to text formatters or + for automatic translation to a variety of formats suitable for input + to text formatters. A copy made in an otherwise Transparent file + format whose markup, or absence of markup, has been arranged to thwart + or discourage subsequent modification by readers is not Transparent. + An image format is not Transparent if used for any substantial amount + of text. A copy that is not "Transparent" is called "Opaque". +

      + + Examples of suitable formats for Transparent copies include plain + ASCII without markup, Texinfo input format, LaTeX input + format, SGML or XML using a publicly available + DTD, and standard-conforming simple HTML, + PostScript or PDF designed for human modification. Examples + of transparent image formats include PNG, XCF and + JPG. Opaque formats include proprietary formats that can be + read and edited only by proprietary word processors, SGML or + XML for which the DTD and/or processing tools are + not generally available, and the machine-generated HTML, + PostScript or PDF produced by some word processors for + output purposes only. +

      + + The "Title Page" means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the material + this License requires to appear in the title page. For works in + formats which do not have any title page as such, "Title Page" means + the text near the most prominent appearance of the work's title, + preceding the beginning of the body of the text. +

      + + A section "Entitled XYZ" means a named subunit of the Document whose + title either is precisely XYZ or contains XYZ in parentheses following + text that translates XYZ in another language. (Here XYZ stands for a + specific section name mentioned below, such as "Acknowledgements", + "Dedications", "Endorsements", or "History".) To "Preserve the Title" + of such a section when you modify the Document means that it remains a + section "Entitled XYZ" according to this definition. +

      + + The Document may include Warranty Disclaimers next to the notice which + states that this License applies to the Document. These Warranty + Disclaimers are considered to be included by reference in this + License, but only as regards disclaiming warranties: any other + implication that these Warranty Disclaimers may have is void and has + no effect on the meaning of this License. +

      + +

    3. + VERBATIM COPYING +

      + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License applies + to the Document are reproduced in all copies, and that you add no other + conditions whatsoever to those of this License. You may not use + technical measures to obstruct or control the reading or further + copying of the copies you make or distribute. However, you may accept + compensation in exchange for copies. If you distribute a large enough + number of copies you must also follow the conditions in section 3. +

      + + You may also lend copies, under the same conditions stated above, and + you may publicly display copies. +

      + +

    4. + COPYING IN QUANTITY +

      + + If you publish printed copies (or copies in media that commonly have + printed covers) of the Document, numbering more than 100, and the + Document's license notice requires Cover Texts, you must enclose the + copies in covers that carry, clearly and legibly, all these Cover + Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on + the back cover. Both covers must also clearly and legibly identify + you as the publisher of these copies. The front cover must present + the full title with all words of the title equally prominent and + visible. You may add other material on the covers in addition. + Copying with changes limited to the covers, as long as they preserve + the title of the Document and satisfy these conditions, can be treated + as verbatim copying in other respects. +

      + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto adjacent + pages. +

      + + If you publish or distribute Opaque copies of the Document numbering + more than 100, you must either include a machine-readable Transparent + copy along with each Opaque copy, or state in or with each Opaque copy + a computer-network location from which the general network-using + public has access to download using public-standard network protocols + a complete Transparent copy of the Document, free of added material. + If you use the latter option, you must take reasonably prudent steps, + when you begin distribution of Opaque copies in quantity, to ensure + that this Transparent copy will remain thus accessible at the stated + location until at least one year after the last time you distribute an + Opaque copy (directly or through your agents or retailers) of that + edition to the public. +

      + + It is requested, but not required, that you contact the authors of the + Document well before redistributing any large number of copies, to give + them a chance to provide you with an updated version of the Document. +

      + +

    5. + MODIFICATIONS +

      + + You may copy and distribute a Modified Version of the Document under + the conditions of sections 2 and 3 above, provided that you release + the Modified Version under precisely this License, with the Modified + Version filling the role of the Document, thus licensing distribution + and modification of the Modified Version to whoever possesses a copy + of it. In addition, you must do these things in the Modified Version: +

      + +

        +
      1. + Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +

        + +

      2. + List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. +

        + +

      3. + State on the Title page the name of the publisher of the + Modified Version, as the publisher. +

        + +

      4. + Preserve all the copyright notices of the Document. +

        + +

      5. + Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +

        + +

      6. + Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +

        + +

      7. + Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +

        + +

      8. + Include an unaltered copy of this License. +

        + +

      9. + Preserve the section Entitled "History", Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +

        + +

      10. + Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +

        + +

      11. + For any section Entitled "Acknowledgements" or "Dedications", Preserve + the Title of the section, and preserve in the section all the + substance and tone of each of the contributor acknowledgements and/or + dedications given therein. +

        + +

      12. + Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +

        + +

      13. + Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. +

        + +

      14. + Do not retitle any existing section to be Entitled "Endorsements" or + to conflict in title with any Invariant Section. +

        + +

      15. + Preserve any Warranty Disclaimers. +
      +

      + + If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no material + copied from the Document, you may at your option designate some or all + of these sections as invariant. To do this, add their titles to the + list of Invariant Sections in the Modified Version's license notice. + These titles must be distinct from any other section titles. +

      + + You may add a section Entitled "Endorsements", provided it contains + nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text has + been approved by an organization as the authoritative definition of a + standard. +

      + + You may add a passage of up to five words as a Front-Cover Text, and a + passage of up to 25 words as a Back-Cover Text, to the end of the list + of Cover Texts in the Modified Version. Only one passage of + Front-Cover Text and one of Back-Cover Text may be added by (or + through arrangements made by) any one entity. If the Document already + includes a cover text for the same cover, previously added by you or + by arrangement made by the same entity you are acting on behalf of, + you may not add another; but you may replace the old one, on explicit + permission from the previous publisher that added the old one. +

      + + The author(s) and publisher(s) of the Document do not by this License + give permission to use their names for publicity for or to assert or + imply endorsement of any Modified Version. +

      + +

    6. + COMBINING DOCUMENTS +

      + + You may combine the Document with other documents released under this + License, under the terms defined in section 4 above for modified + versions, provided that you include in the combination all of the + Invariant Sections of all of the original documents, unmodified, and + list them all as Invariant Sections of your combined work in its + license notice, and that you preserve all their Warranty Disclaimers. +

      + + The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name but + different contents, make the title of each such section unique by + adding at the end of it, in parentheses, the name of the original + author or publisher of that section if known, or else a unique number. + Make the same adjustment to the section titles in the list of + Invariant Sections in the license notice of the combined work. +

      + + In the combination, you must combine any sections Entitled "History" + in the various original documents, forming one section Entitled + "History"; likewise combine any sections Entitled "Acknowledgements", + and any sections Entitled "Dedications". You must delete all + sections Entitled "Endorsements." +

      + +

    7. + COLLECTIONS OF DOCUMENTS +

      + + You may make a collection consisting of the Document and other documents + released under this License, and replace the individual copies of this + License in the various documents with a single copy that is included in + the collection, provided that you follow the rules of this License for + verbatim copying of each of the documents in all other respects. +

      + + You may extract a single document from such a collection, and distribute + it individually under this License, provided you insert a copy of this + License into the extracted document, and follow this License in all + other respects regarding verbatim copying of that document. +

      + +

    8. + AGGREGATION WITH INDEPENDENT WORKS +

      + + A compilation of the Document or its derivatives with other separate + and independent documents or works, in or on a volume of a storage or + distribution medium, is called an "aggregate" if the copyright + resulting from the compilation is not used to limit the legal rights + of the compilation's users beyond what the individual works permit. + When the Document is included an aggregate, this License does not + apply to the other works in the aggregate which are not themselves + derivative works of the Document. +

      + + If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one half of + the entire aggregate, the Document's Cover Texts may be placed on + covers that bracket the Document within the aggregate, or the + electronic equivalent of covers if the Document is in electronic form. + Otherwise they must appear on printed covers that bracket the whole + aggregate. +

      + +

    9. + TRANSLATION +

      + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section 4. + Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License, and all the license notices in the + Document, and any Warranty Disclaimers, provided that you also include + the original English version of this License and the original versions + of those notices and disclaimers. In case of a disagreement between + the translation and the original version of this License or a notice + or disclaimer, the original version will prevail. +

      + + If a section in the Document is Entitled "Acknowledgements", + "Dedications", or "History", the requirement (section 4) to Preserve + its Title (section 1) will typically require changing the actual + title. +

      + +

    10. + TERMINATION +

      + + You may not copy, modify, sublicense, or distribute the Document except + as expressly provided for under this License. Any other attempt to + copy, modify, sublicense or distribute the Document is void, and will + automatically terminate your rights under this License. However, + parties who have received copies, or rights, from you under this + License will not have their licenses terminated so long as such + parties remain in full compliance. +

      + +

    11. + FUTURE REVISIONS OF THIS LICENSE +

      + + The Free Software Foundation may publish new, revised versions + of the GNU Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + http://www.gnu.org/copyleft/. +

      + + Each version of the License is given a distinguishing version number. + If the Document specifies that a particular numbered version of this + License "or any later version" applies to it, you have the option of + following the terms and conditions either of that specified version or + of any later version that has been published (not as a draft) by the + Free Software Foundation. If the Document does not specify a version + number of this License, you may choose any version ever published (not + as a draft) by the Free Software Foundation. +

    +

    + +


    + + + + + + + + + + + +
    [ < ][ > ]   [ << ][ Up ][ >> ]         [Top][Contents][Index][ ? ]
    +

    A.1.1 ADDENDUM: How to use this License for your documents

    + +

    + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and + license notices just after the title page: +

    + +
     
      Copyright (C)  year  your name.
    +   Permission is granted to copy, distribute and/or modify this document
    +   under the terms of the GNU Free Documentation License, Version 1.2
    +   or any later version published by the Free Software Foundation;
    +   with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
    +   A copy of the license is included in the section entitled ``GNU
    +   Free Documentation License''.
    + 

    + + If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, + replace the "with...Texts." line with this: +

    + +
     
        with the Invariant Sections being list their titles, with
    +     the Front-Cover Texts being list, and with the Back-Cover Texts
    +     being list.
    + 

    + + If you have Invariant Sections without Cover Texts, or some other + combination of the three, merge those two alternatives to suit the + situation. +

    + + If your document contains nontrivial examples of program code, we + recommend releasing these examples in parallel under your choice of + free software license, such as the GNU General Public License, + to permit their use in free software. +

    +


    *************** *** 1991,1994 **** --- 2573,2586 ----
    + A. Copying This Manual +
    +
    *************** *** 2004,2007 **** --- 2596,2601 ---- 1. Command Line Editing
    + A. Copying This Manual +
    *************** *** 2015,2019 ****

    About this document

    ! This document was generated by Chet Ramey on June, 27 2002 using texi2html --- 2609,2613 ----

    About this document

    ! This document was generated by Chet Ramey on July, 27 2004 using texi2html *************** *** 2177,2181 **** This document was generated ! by Chet Ramey on June, 27 2002 using texi2html --- 2771,2775 ---- This document was generated ! by Chet Ramey on July, 27 2004 using texi2html diff -aNrc2 readline-4.3-patched/doc/rluserman.info readline-5.0/doc/rluserman.info *** readline-4.3-patched/doc/rluserman.info Thu Jun 27 13:54:34 2002 --- readline-5.0/doc/rluserman.info Tue Jul 27 09:31:30 2004 *************** *** 1,29 **** ! This is rluserman.info, produced by makeinfo version 4.1 from ! /usr/homes/chet/src/bash/readline-src/doc/rluserman.texinfo. ! INFO-DIR-SECTION Libraries ! START-INFO-DIR-ENTRY ! * RLuserman: (rluserman). The GNU readline library User's Manual. ! END-INFO-DIR-ENTRY ! This document describes the end user interface of the GNU Readline ! Library, a utility which aids in the consistency of user interface ! across discrete programs that need to provide a command line interface. ! ! Copyright (C) 1988-2002 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this ! manual provided the copyright notice and this permission notice pare preserved on all copies. ! Permission is granted to copy and distribute modified versions of ! this manual under the conditions for verbatim copying, provided that ! the entire resulting derived work is distributed under the terms of a ! permission notice identical to this one. ! ! Permission is granted to copy and distribute translations of this ! manual into another language, under the above conditions for modified ! versions, except that this permission notice may be stated in a ! translation approved by the Free Software Foundation.  --- 1,32 ---- ! This is rluserman.info, produced by makeinfo version 4.5 from ! /usr/homes/chet/src/bash/readline-src/doc/rluserman.texi. ! This manual describes the end user interface of the GNU Readline Library ! (version 5.0, 28 January 2004), a library which aids in the consistency ! of user interface across discrete programs which provide a command line ! interface. ! Copyright (C) 1988-2004 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this ! manual provided the copyright notice and this permission notice are preserved on all copies. ! Permission is granted to copy, distribute and/or modify this ! document under the terms of the GNU Free Documentation License, ! Version 1.1 or any later version published by the Free Software ! Foundation; with no Invariant Sections, with the Front-Cover texts ! being "A GNU Manual," and with the Back-Cover Texts as in (a) ! below. A copy of the license is included in the section entitled ! "GNU Free Documentation License." ! ! (a) The FSF's Back-Cover Text is: "You have freedom to copy and ! modify this GNU Manual, like GNU software. Copies published by ! the Free Software Foundation raise funds for GNU development." ! ! INFO-DIR-SECTION Libraries ! START-INFO-DIR-ENTRY ! * RLuserman: (rluserman). The GNU readline library User's Manual. ! END-INFO-DIR-ENTRY  *************** *** 35,46 **** This document describes the end user interface of the GNU Readline Library, a utility which aids in the consistency of user interface ! across discrete programs that need to provide a command line interface. * Menu: * Command Line Editing:: GNU Readline User's Manual.  ! File: rluserman.info, Node: Command Line Editing, Prev: Top, Up: Top Command Line Editing --- 38,50 ---- This document describes the end user interface of the GNU Readline Library, a utility which aids in the consistency of user interface ! across discrete programs which provide a command line interface. * Menu: * Command Line Editing:: GNU Readline User's Manual. + * Copying This Manual:: Copying This Manual.  ! File: rluserman.info, Node: Command Line Editing, Next: Copying This Manual, Prev: Top, Up: Top Command Line Editing *************** *** 241,244 **** --- 245,249 ---- different than `M-' because the word boundaries differ. + Here is how to "yank" the text back into the line. Yanking means to copy the most-recently-killed text from the kill buffer. *************** *** 391,400 **** `completion-query-items' The number of possible completions that determines when the ! user is asked whether he wants to see the list of ! possibilities. If the number of possible completions is ! greater than this value, Readline will ask the user whether ! or not he wishes to view them; otherwise, they are simply ! listed. This variable must be set to an integer value ! greater than or equal to 0. The default limit is `100'. `convert-meta' --- 396,405 ---- `completion-query-items' The number of possible completions that determines when the ! user is asked whether the list of possibilities should be ! displayed. If the number of possible completions is greater ! than this value, Readline will ask the user whether or not he ! wishes to view them; otherwise, they are simply listed. This ! variable must be set to an integer value greater than or ! equal to 0. The default limit is `100'. `convert-meta' *************** *** 425,429 **** If set to `on', the history code attempts to place point at ! the same location on each history line retrived with `previous-history' or `next-history'. --- 430,434 ---- If set to `on', the history code attempts to place point at ! the same location on each history line retrieved with `previous-history' or `next-history'. *************** *** 500,503 **** --- 505,517 ---- of ringing the bell. The default value is `off'. + `show-all-if-unmodified' + This alters the default behavior of the completion functions + in a fashion similar to SHOW-ALL-IF-AMBIGUOUS. If set to + `on', words which have more than one possible completion + without any possible partial completion (the possible + completions don't share a common prefix) cause the matches to + be listed immediately instead of ringing the bell. The + default value is `off'. + `visible-stats' If set to `on', a character denoting a file's type is *************** *** 505,508 **** --- 519,523 ---- The default is `off'. + Key Bindings The syntax for controlling key bindings in the init file is *************** *** 555,558 **** --- 570,574 ---- Key 1'. + The following GNU Emacs style escape sequences are available when specifying key sequences: *************** *** 620,623 **** --- 636,640 ---- "\C-x\\": "\\" +  File: rluserman.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File *************** *** 849,852 **** --- 866,870 ---- Refresh the current line. By default, this is unbound. +  File: rluserman.info, Node: Commands For History, Next: Commands For Text, Prev: Commands For Moving, Up: Bindable Readline Commands *************** *** 918,921 **** --- 936,940 ---- in turn. +  File: rluserman.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands *************** *** 985,988 **** --- 1004,1008 ---- By default, this command is unbound. +  File: rluserman.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands *************** *** 1017,1020 **** --- 1037,1045 ---- The killed text is saved on the kill-ring. + `unix-filename-rubout ()' + Kill the word behind point, using white space and the slash + character as the word boundaries. The killed text is saved on the + kill-ring. + `delete-horizontal-space ()' Delete all spaces and tabs around point. By default, this is *************** *** 1105,1108 **** --- 1130,1134 ---- unbound by default. +  File: rluserman.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands *************** *** 1122,1125 **** --- 1148,1152 ---- characters in the macro appear as if typed at the keyboard. +  File: rluserman.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands *************** *** 1209,1212 **** --- 1236,1240 ---- mode. +  File: rluserman.info, Node: Readline vi Mode, Prev: Bindable Readline Commands, Up: Command Line Editing *************** *** 1231,1260 **** `k' and subsequent lines with `j', and so forth.  Tag Table: ! Node: Top1208 ! Node: Command Line Editing1604 ! Node: Introduction and Notation2218 ! Node: Readline Interaction3837 ! Node: Readline Bare Essentials5025 ! Node: Readline Movement Commands6807 ! Node: Readline Killing Commands7765 ! Node: Readline Arguments9675 ! Node: Searching10712 ! Node: Readline Init File12856 ! Node: Readline Init File Syntax13918 ! Node: Conditional Init Constructs24802 ! Node: Sample Init File27328 ! Node: Bindable Readline Commands30513 ! Node: Commands For Moving31564 ! Node: Commands For History32414 ! Node: Commands For Text35273 ! Node: Commands For Killing37988 ! Node: Numeric Arguments39940 ! Node: Commands For Completion41069 ! Node: Keyboard Macros42602 ! Node: Miscellaneous Commands43162 ! Node: Readline vi Mode46512  End Tag Table --- 1259,1731 ---- `k' and subsequent lines with `j', and so forth. +  + File: rluserman.info, Node: Copying This Manual, Prev: Command Line Editing, Up: Top + + Copying This Manual + ******************* + + * Menu: + + * GNU Free Documentation License:: License for copying this manual. + +  + File: rluserman.info, Node: GNU Free Documentation License, Up: Copying This Manual + + GNU Free Documentation License + ============================== + + Version 1.2, November 2002 + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or other + functional and useful document "free" in the sense of freedom: to + assure everyone the effective freedom to copy and redistribute it, + with or without modifying it, either commercially or + noncommercially. Secondarily, this License preserves for the + author and publisher a way to get credit for their work, while not + being considered responsible for modifications made by others. + + This License is a kind of "copyleft", which means that derivative + works of the document must themselves be free in the same sense. + It complements the GNU General Public License, which is a copyleft + license designed for free software. + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same freedoms + that the software does. But this License is not limited to + software manuals; it can be used for any textual work, regardless + of subject matter or whether it is published as a printed book. + We recommend this License principally for works whose purpose is + instruction or reference. + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work, in any medium, + that contains a notice placed by the copyright holder saying it + can be distributed under the terms of this License. Such a notice + grants a world-wide, royalty-free license, unlimited in duration, + to use that work under the conditions stated herein. The + "Document", below, refers to any such manual or work. Any member + of the public is a licensee, and is addressed as "you". You + accept the license if you copy, modify or distribute the work in a + way requiring permission under copyright law. + + A "Modified Version" of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. + + A "Secondary Section" is a named appendix or a front-matter section + of the Document that deals exclusively with the relationship of the + publishers or authors of the Document to the Document's overall + subject (or to related matters) and contains nothing that could + fall directly within that overall subject. (Thus, if the Document + is in part a textbook of mathematics, a Secondary Section may not + explain any mathematics.) The relationship could be a matter of + historical connection with the subject or with related matters, or + of legal, commercial, philosophical, ethical or political position + regarding them. + + The "Invariant Sections" are certain Secondary Sections whose + titles are designated, as being those of Invariant Sections, in + the notice that says that the Document is released under this + License. If a section does not fit the above definition of + Secondary then it is not allowed to be designated as Invariant. + The Document may contain zero Invariant Sections. If the Document + does not identify any Invariant Sections then there are none. + + The "Cover Texts" are certain short passages of text that are + listed, as Front-Cover Texts or Back-Cover Texts, in the notice + that says that the Document is released under this License. A + Front-Cover Text may be at most 5 words, and a Back-Cover Text may + be at most 25 words. + + A "Transparent" copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, that is suitable for revising the document + straightforwardly with generic text editors or (for images + composed of pixels) generic paint programs or (for drawings) some + widely available drawing editor, and that is suitable for input to + text formatters or for automatic translation to a variety of + formats suitable for input to text formatters. A copy made in an + otherwise Transparent file format whose markup, or absence of + markup, has been arranged to thwart or discourage subsequent + modification by readers is not Transparent. An image format is + not Transparent if used for any substantial amount of text. A + copy that is not "Transparent" is called "Opaque". + + Examples of suitable formats for Transparent copies include plain + ASCII without markup, Texinfo input format, LaTeX input format, + SGML or XML using a publicly available DTD, and + standard-conforming simple HTML, PostScript or PDF designed for + human modification. Examples of transparent image formats include + PNG, XCF and JPG. Opaque formats include proprietary formats that + can be read and edited only by proprietary word processors, SGML or + XML for which the DTD and/or processing tools are not generally + available, and the machine-generated HTML, PostScript or PDF + produced by some word processors for output purposes only. + + The "Title Page" means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the + material this License requires to appear in the title page. For + works in formats which do not have any title page as such, "Title + Page" means the text near the most prominent appearance of the + work's title, preceding the beginning of the body of the text. + + A section "Entitled XYZ" means a named subunit of the Document + whose title either is precisely XYZ or contains XYZ in parentheses + following text that translates XYZ in another language. (Here XYZ + stands for a specific section name mentioned below, such as + "Acknowledgements", "Dedications", "Endorsements", or "History".) + To "Preserve the Title" of such a section when you modify the + Document means that it remains a section "Entitled XYZ" according + to this definition. + + The Document may include Warranty Disclaimers next to the notice + which states that this License applies to the Document. These + Warranty Disclaimers are considered to be included by reference in + this License, but only as regards disclaiming warranties: any other + implication that these Warranty Disclaimers may have is void and + has no effect on the meaning of this License. + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that you + add no other conditions whatsoever to those of this License. You + may not use technical measures to obstruct or control the reading + or further copying of the copies you make or distribute. However, + you may accept compensation in exchange for copies. If you + distribute a large enough number of copies you must also follow + the conditions in section 3. + + You may also lend copies, under the same conditions stated above, + and you may publicly display copies. + + 3. COPYING IN QUANTITY + + If you publish printed copies (or copies in media that commonly + have printed covers) of the Document, numbering more than 100, and + the Document's license notice requires Cover Texts, you must + enclose the copies in covers that carry, clearly and legibly, all + these Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also clearly + and legibly identify you as the publisher of these copies. The + front cover must present the full title with all words of the + title equally prominent and visible. You may add other material + on the covers in addition. Copying with changes limited to the + covers, as long as they preserve the title of the Document and + satisfy these conditions, can be treated as verbatim copying in + other respects. + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + If you publish or distribute Opaque copies of the Document + numbering more than 100, you must either include a + machine-readable Transparent copy along with each Opaque copy, or + state in or with each Opaque copy a computer-network location from + which the general network-using public has access to download + using public-standard network protocols a complete Transparent + copy of the Document, free of added material. If you use the + latter option, you must take reasonably prudent steps, when you + begin distribution of Opaque copies in quantity, to ensure that + this Transparent copy will remain thus accessible at the stated + location until at least one year after the last time you + distribute an Opaque copy (directly or through your agents or + retailers) of that edition to the public. + + It is requested, but not required, that you contact the authors of + the Document well before redistributing any large number of + copies, to give them a chance to provide you with an updated + version of the Document. + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document + under the conditions of sections 2 and 3 above, provided that you + release the Modified Version under precisely this License, with + the Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version to + whoever possesses a copy of it. In addition, you must do these + things in the Modified Version: + + A. Use in the Title Page (and on the covers, if any) a title + distinct from that of the Document, and from those of + previous versions (which should, if there were any, be listed + in the History section of the Document). You may use the + same title as a previous version if the original publisher of + that version gives permission. + + B. List on the Title Page, as authors, one or more persons or + entities responsible for authorship of the modifications in + the Modified Version, together with at least five of the + principal authors of the Document (all of its principal + authors, if it has fewer than five), unless they release you + from this requirement. + + C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. + + D. Preserve all the copyright notices of the Document. + + E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + F. Include, immediately after the copyright notices, a license + notice giving the public permission to use the Modified + Version under the terms of this License, in the form shown in + the Addendum below. + + G. Preserve in that license notice the full lists of Invariant + Sections and required Cover Texts given in the Document's + license notice. + + H. Include an unaltered copy of this License. + + I. Preserve the section Entitled "History", Preserve its Title, + and add to it an item stating at least the title, year, new + authors, and publisher of the Modified Version as given on + the Title Page. If there is no section Entitled "History" in + the Document, create one stating the title, year, authors, + and publisher of the Document as given on its Title Page, + then add an item describing the Modified Version as stated in + the previous sentence. + + J. Preserve the network location, if any, given in the Document + for public access to a Transparent copy of the Document, and + likewise the network locations given in the Document for + previous versions it was based on. These may be placed in + the "History" section. You may omit a network location for a + work that was published at least four years before the + Document itself, or if the original publisher of the version + it refers to gives permission. + + K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the + section all the substance and tone of each of the contributor + acknowledgements and/or dedications given therein. + + L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section + titles. + + M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. + + N. Do not retitle any existing section to be Entitled + "Endorsements" or to conflict in title with any Invariant + Section. + + O. Preserve any Warranty Disclaimers. + + If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no + material copied from the Document, you may at your option + designate some or all of these sections as invariant. To do this, + add their titles to the list of Invariant Sections in the Modified + Version's license notice. These titles must be distinct from any + other section titles. + + You may add a section Entitled "Endorsements", provided it contains + nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + You may add a passage of up to five words as a Front-Cover Text, + and a passage of up to 25 words as a Back-Cover Text, to the end + of the list of Cover Texts in the Modified Version. Only one + passage of Front-Cover Text and one of Back-Cover Text may be + added by (or through arrangements made by) any one entity. If the + Document already includes a cover text for the same cover, + previously added by you or by arrangement made by the same entity + you are acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + The author(s) and publisher(s) of the Document do not by this + License give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version. + + 5. COMBINING DOCUMENTS + + You may combine the Document with other documents released under + this License, under the terms defined in section 4 above for + modified versions, provided that you include in the combination + all of the Invariant Sections of all of the original documents, + unmodified, and list them all as Invariant Sections of your + combined work in its license notice, and that you preserve all + their Warranty Disclaimers. + + The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name + but different contents, make the title of each such section unique + by adding at the end of it, in parentheses, the name of the + original author or publisher of that section if known, or else a + unique number. Make the same adjustment to the section titles in + the list of Invariant Sections in the license notice of the + combined work. + + In the combination, you must combine any sections Entitled + "History" in the various original documents, forming one section + Entitled "History"; likewise combine any sections Entitled + "Acknowledgements", and any sections Entitled "Dedications". You + must delete all sections Entitled "Endorsements." + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other + documents released under this License, and replace the individual + copies of this License in the various documents with a single copy + that is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you insert + a copy of this License into the extracted document, and follow + this License in all other respects regarding verbatim copying of + that document. + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with other + separate and independent documents or works, in or on a volume of + a storage or distribution medium, is called an "aggregate" if the + copyright resulting from the compilation is not used to limit the + legal rights of the compilation's users beyond what the individual + works permit. When the Document is included an aggregate, this + License does not apply to the other works in the aggregate which + are not themselves derivative works of the Document. + + If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one half + of the entire aggregate, the Document's Cover Texts may be placed + on covers that bracket the Document within the aggregate, or the + electronic equivalent of covers if the Document is in electronic + form. Otherwise they must appear on printed covers that bracket + the whole aggregate. + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section + 4. Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License, and all the license notices in the + Document, and any Warranty Disclaimers, provided that you also + include the original English version of this License and the + original versions of those notices and disclaimers. In case of a + disagreement between the translation and the original version of + this License or a notice or disclaimer, the original version will + prevail. + + If a section in the Document is Entitled "Acknowledgements", + "Dedications", or "History", the requirement (section 4) to + Preserve its Title (section 1) will typically require changing the + actual title. + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document + except as expressly provided for under this License. Any other + attempt to copy, modify, sublicense or distribute the Document is + void, and will automatically terminate your rights under this + License. However, parties who have received copies, or rights, + from you under this License will not have their licenses + terminated so long as such parties remain in full compliance. + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software Foundation may publish new, revised versions of + the GNU Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + `http://www.gnu.org/copyleft/'. + + Each version of the License is given a distinguishing version + number. If the Document specifies that a particular numbered + version of this License "or any later version" applies to it, you + have the option of following the terms and conditions either of + that specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by the + Free Software Foundation. + + ADDENDUM: How to use this License for your documents + ---------------------------------------------------- + + To use this License in a document you have written, include a copy of + the License in the document and put the following copyright and license + notices just after the title page: + + Copyright (C) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.2 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + A copy of the license is included in the section entitled ``GNU + Free Documentation License''. + + If you have Invariant Sections, Front-Cover Texts and Back-Cover + Texts, replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with + the Front-Cover Texts being LIST, and with the Back-Cover Texts + being LIST. + + If you have Invariant Sections without Cover Texts, or some other + combination of the three, merge those two alternatives to suit the + situation. + + If your document contains nontrivial examples of program code, we + recommend releasing these examples in parallel under your choice of + free software license, such as the GNU General Public License, to + permit their use in free software. +  Tag Table: ! Node: Top1379 ! Node: Command Line Editing1814 ! Node: Introduction and Notation2456 ! Node: Readline Interaction4075 ! Node: Readline Bare Essentials5263 ! Node: Readline Movement Commands7045 ! Node: Readline Killing Commands8003 ! Node: Readline Arguments9914 ! Node: Searching10951 ! Node: Readline Init File13095 ! Node: Readline Init File Syntax14157 ! Node: Conditional Init Constructs25521 ! Node: Sample Init File28047 ! Node: Bindable Readline Commands31232 ! Node: Commands For Moving32283 ! Node: Commands For History33134 ! Node: Commands For Text35994 ! Node: Commands For Killing38710 ! Node: Numeric Arguments40842 ! Node: Commands For Completion41971 ! Node: Keyboard Macros43505 ! Node: Miscellaneous Commands44066 ! Node: Readline vi Mode47417 ! Node: Copying This Manual48333 ! Node: GNU Free Documentation License48543  End Tag Table diff -aNrc2 readline-4.3-patched/doc/rluserman.pdf readline-5.0/doc/rluserman.pdf *** readline-4.3-patched/doc/rluserman.pdf Wed Dec 31 19:00:00 1969 --- readline-5.0/doc/rluserman.pdf Tue Jul 27 10:56:43 2004 *************** *** 0 **** --- 1,2529 ---- + %PDF-1.2 + 7 0 obj + << + /Type/Encoding + /Differences[33/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi + 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis + 255/dieresis] + >> + endobj + 10 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F1 + /FontDescriptor 9 0 R + /BaseFont/HGXSFM+CMBX12 + /FirstChar 33 + /LastChar 196 + /Widths[342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 + 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 + 875 531.3 531.3 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 + 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 + 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.8 562.5 625 312.5 + 343.8 593.8 312.5 937.5 625 562.5 625 593.8 459.5 443.8 437.5 625 593.8 812.5 593.8 + 593.8 500 562.5 1125 562.5 562.5 562.5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 675.9 937.5 875 787 750 879.6 812.5 875 812.5 875 0 0 812.5 + 656.3 625 625 937.5 937.5 312.5 343.8 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 + 812.5 875 562.5 1018.5 1143.5 875 312.5 562.5] + >> + endobj + 13 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F2 + /FontDescriptor 12 0 R + /BaseFont/FCHKFW+CMR10 + /FirstChar 33 + /LastChar 196 + /Widths[277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 + 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 + 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 + 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 + 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 + 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 + 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 833.3 + 777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 0 0 722.2 583.3 555.6 555.6 833.3 833.3 + 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 + 277.8 500] + >> + endobj + 16 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F3 + /FontDescriptor 15 0 R + /BaseFont/BYBURA+CMTT10 + /FirstChar 33 + /LastChar 196 + /Widths[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 0 0 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525] + >> + endobj + 18 0 obj + << + /Filter[/FlateDecode] + /Length 359 + >> + stream + xÚMQËNÃ0¼ó{t¤vk{“8¾¶ÐŠ + qhS8 †:‰¦’›òø{ü4'{W»3³3À‘sxƒø¬`^Ï–$Dz€ºQÁT + õõ[Ýï²)©œm¬Ù´ UÁîÚgÜO*v'ëÒï¶Ëˆ³ÞºÆ¼Úì¹^ÃM „º‚¯\zàç«Kã¶Q‡ÁQ‹ CÊKå'*JD-7û¶o§"É + ä“ðËYstj¶¤Ë¶*QJàqm¤œè_yÜñiBQ YE̺Ó@F ã9S…:ˆ’¨‹8º6]&;'3¼.ÉyžÀˆ)àSòwr/i…TÆÍÅ»í“ks°?™&6IV/Ìi°ù1tíÉÚý¥à½þ &ÛÔØum*½Ú>#Áâe![rDM‘lîZ3@,æ1Œ~OFgÄí±éâW1ÎŽ·ÎÝÞĆhj=D[z2%GÑ íÕ/{uš + endstream + endobj + 20 0 obj + << + /F1 10 0 R + /F2 13 0 R + /F3 16 0 R + >> + endobj + 6 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 20 0 R + >> + endobj + 25 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F4 + /FontDescriptor 24 0 R + /BaseFont/JEFKPE+CMSY10 + /FirstChar 33 + /LastChar 196 + /Widths[1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 + 275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 + 611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 + 820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 + 666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 + 500 500 611.1 500 277.8 833.3 750 833.3 416.7 666.7 666.7 777.8 777.8 444.4 444.4 + 444.4 611.1 777.8 777.8 777.8 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 0 0 777.8 + 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 + 777.8 777.8 1000 1000 777.8 777.8 1000 777.8] + >> + endobj + 26 0 obj + << + /Filter[/FlateDecode] + /Length 1147 + >> + stream + xÚVKã6 ¾÷W{© ÄÛò+íiEÝbÑd MŽ­L„u¬Àrf:ÿ¾¤H;NföÒ‹-Q$E~üHÛ‹Â(òž<÷úèÝ­o/ŽÂeì­w^\zÌ“°H½õÃßb½×ÖÒ$‡ªó“Bœª–ö²u¯·~Båt21ì-T×ÖɪžDÚ™ªßUµ¢C³»0KÅÇß¿’äU5­îØÛozÛWý+élijŸäBõV›ERda´ðÿYòÈ)ö‚X†qæÂOJ?E)>Á£$Q”nülÊ¥¨HÖŽ×àæe¯k4ÙÓ¶Ò¥äáÞ.h\Ô¦³Úª«ÙÓÂ7å.‹åuî²(DU÷ƲËF”jP.‡s + Tcožúꀪ2á°rlá=?ëF‘S‘)Ät€z5¸‘‚€ÄÆ‘q„åã}÷æˆ._{ý´÷ÈÓ©ei˜ä›”N©FáÍczæM ÃH¢7ÖØ$yDJsr¥a–z‘Sˆ—e`(´G¿LD¯8•Ù Å >ªž¥NÇœº¦ ö þÚÕœIž…EA©P _ÐZõm‰+2,½S.JC‚ÁÐûP}sf´#a5€î§Á¤HBô½…P(Ió£V–NÐé~¼ÏµONíƒÚ³Êì¯ @®± å¼ °Î ºæºN¥æû€GhÌò"ùkB4{D¥|ÂtÔ¯ÚväæF8'eX,¯`¾¼©Ì fx_Â\fsYPV@3¿LVr¹¼„l!«ÓÓú`\>Þ½’€3Oq3¨>Ñ›.š@û9@çhÒ¬‰]`SáÒÍ¡¸8ŸÑ 0N+Qü@AðM ïxˆg8£jÕY©¤²¢Ý4¢À4c¾«'ÏË+·Õð^¬Ï,£EâxÚ¶Úݲ \Ó8‚Ź‘ÀtÖH%—|Ô™égÆ‘xÑÞŽ;¬QCk9ŠúÔ¢×1±TVªFS»x5ûÖPL2g ÜtÄɱ¦úwpÄÍÄ–ˆ«»'Úo6·äÄ%Ÿ§/ÑâI˜ÿÙtwv¾û®rsüÛÕµ³°ùKçJFa@WîÓ¸Ï Qm|ñ7¯5ȶ—вh)nél¢õl ä xi‰%ìÚ’Pwu{â1p¾p²±52ñôЂþè7IΘ‹»‡ëaæb³3sÓ¿©³9iäëšzZbõø£ë›ò{Ð’>R à$Ökû“䱄ÿÂÀ̉´ö1 I²ƒ˜sà†4tÑUj†ó¡ðN£k.!a’•sâøø“å8ÏúbÔ+„½j,1$q? øâ¢a;ubVŒ…+æŸ4ˆâM'¾‰ø‘ᮤâô•¶<§wpb©œ;7aÁåÆ¿1à­9ºC£rA¡þé’e˜”4®g¡ƒ‹-òá•nã¦ù?_ãw?]Ù’T‰ ‡c˦_ZøÿXPä«“øV)¿÷wgìÀ_|)>ß’e”Äq JQñîÓ×Õ­“ÿ²þá?óÞ: + endstream + endobj + 27 0 obj + << + /F2 13 0 R + /F4 25 0 R + >> + endobj + 22 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 27 0 R + >> + endobj + 30 0 obj + << + /Type/Encoding + /Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/sterling/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi + 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis + 255/dieresis] + >> + endobj + 33 0 obj + << + /Encoding 30 0 R + /Type/Font + /Subtype/Type1 + /Name/F5 + /FontDescriptor 32 0 R + /BaseFont/NYHKPQ+CMBXTI10 + /FirstChar 33 + /LastChar 196 + /Widths[386.1 620.6 944.4 868.5 944.4 885.5 355.6 473.3 473.3 591.1 885.5 355.6 414.4 + 355.6 591.1 591.1 591.1 591.1 591.1 591.1 591.1 591.1 591.1 591.1 591.1 355.6 355.6 + 386.1 885.5 591.1 591.1 885.5 865.5 816.7 826.7 875.5 756.7 727.2 895.3 896.1 471.7 + 610.5 895 697.8 1072.8 896.1 855 787.2 855 859.4 650 796.1 880.8 865.5 1160 865.5 + 865.5 708.9 356.1 620.6 356.1 591.1 355.6 355.6 591.1 532.2 532.2 591.1 532.2 400 + 532.2 591.1 355.6 355.6 532.2 296.7 944.4 650 591.1 591.1 532.2 501.7 486.9 385 620.6 + 532.2 767.8 560.6 561.7 490.6 591.1 1182.2 591.1 591.1 591.1 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 697.8 944.4 885.5 806.7 767.8 896.1 + 826.7 885.5 826.7 885.5 0 0 826.7 755.6 674.4 703.9 1044.7 1059.4 355.6 385 591.1 + 591.1 591.1 591.1 591.1 948.9 532.2 665 826.7 826.7 591.1 1022.8 1140.5 885.5 296.7 + 591.1] + >> + endobj + 36 0 obj + << + /Encoding 30 0 R + /Type/Font + /Subtype/Type1 + /Name/F6 + /FontDescriptor 35 0 R + /BaseFont/LABERS+CMTI10 + /FirstChar 33 + /LastChar 196 + /Widths[306.7 514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8 + 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 + 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 + 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 + 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 + 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 + 460 664.4 463.9 485.6 408.9 511.1 1022.2 511.1 511.1 511.1 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 627.2 817.8 766.7 692.2 664.4 743.3 715.6 + 766.7 715.6 766.7 0 0 715.6 613.3 562.2 587.8 881.7 894.4 306.7 332.2 511.1 511.1 + 511.1 511.1 511.1 831.3 460 536.7 715.6 715.6 511.1 882.8 985 766.7 255.6 511.1] + >> + endobj + 37 0 obj + << + /Filter[/FlateDecode] + /Length 1222 + >> + stream + xÚíYM“›8½ï¯à+èöæ‰g²“9dœCjkÄff¨Åàœÿûm!dìLœ±³•“°À‚~zÝýºe¹Èu­G«ÞYWó77ÄÂ.Øš?XŒùˆ{¦H0k>ûËŽ¿ç¼¹Á©™0Â÷aˆWÏÌAíðs90;{£g¿ÍR‡ºvÁ@ì²hVbˆ2¹|†e0riµv&\­Ât©V¹ÓH]]/ã2NÕ2^» påYnµ‚5|_ ÁÎðª“}S± ÆëoÄêvö ÅÜ‚#Vƒ$®ëÚ¿§ ì2Ïœ ŒËÍ¢ŒÙ ¥Ô.35Ö Q¶ ’ß¾û aféüX½t²"öb^c‰+Gž\)Â^+©qý…ˤŽj”£\­3‡L®,èÙoü~§äŒ;,cud¼ŠÓe]¡œ»º_C.òÈ õæ9X9LšùX×Y3§å=èt8ÛÍŒ7'¶JšDKRcÁÉøh»4áaëü8œÈaœÂ4^o’°l„ëü ° ð*òŸîÂ\äú#v°ÆzÐŽ·OaúØÚàpjGÏ¥¡ìP¾¶#óý¶ ²ÃT#ÀÆv²ØôuÕ‰s?IsÃô#Û)C.ÿÁ»ÃPIZãæá¦õõÚ™Èêt?lüî :Éã…°)Vc±¼ágS¤ÚNË.s_™•ecv7ÇHW‹·ëªƒëSõcc@ÄkUÃùó®À²;¼’–AíIÑösʼn,Ì—u#\ä™aï±Ë¼ª¥çêSò£ äµSe+ÝŠ‹E”$ae›âPÿƒû‹³IBq\ý5˜õšö%ÏXÉ~‰›˜äÒÒ¬€]ö³˜Ý¿ÄÅHWûX (&” ¢Û$™®!XQlGPœ=«ó—©3á”åÖòX§ð”2q¡ž™#om ’ëÒ!ANÌǾœ·á‰˜NYÜ@^vNY¦Í)Ë»»¸œG‘ + Ì3E¹E“µB}úBìÛx¥…Œ‚µû ­—Ñ‚äm¥Cð¾¨hé¢`:›]ßÍ>¾ÿµV±U!ð¯ÂEŸJmŠHwÑâBT)Ⱥ½7fo%²Ù&¯ÞK Çàî[—êàk1"€\cZùgKz£È‰J;×ó_þù®T[ + endstream + endobj + 38 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F5 33 0 R + /F6 36 0 R + >> + endobj + 29 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 38 0 R + >> + endobj + 41 0 obj + << + /Filter[/FlateDecode] + /Length 94 + >> + stream + xÚS0Ð30PHWSî + N!únF + †z–† + !i + † + †Æz–& + !.Ñ™™šºF–Ɔî~¡šºÆÆÆA©‰)9™y© ž‰†OfRQbQ¥flˆ—‚kŸß& + endstream + endobj + 42 0 obj + << + /F2 13 0 R + >> + endobj + 40 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 42 0 R + >> + endobj + 47 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F7 + /FontDescriptor 46 0 R + /BaseFont/XEPARG+CMCSC10 + /FirstChar 0 + /LastChar 127 + /Widths[683.3 902.8 844.4 755.5 727.8 813.9 786.1 844.4 786.1 844.4 786.1 552.8 552.8 + 319.4 319.4 523.6 302.2 424.4 552.8 552.8 552.8 552.8 552.8 813.9 494.4 915.6 735.6 + 824.4 635.6 975 1091.7 844.4 319.4 319.4 552.8 902.8 552.8 902.8 844.4 319.4 436.1 + 436.1 552.8 844.4 319.4 377.8 319.4 552.8 552.8 552.8 552.8 552.8 552.8 552.8 552.8 + 552.8 552.8 552.8 319.4 319.4 844.4 844.4 844.4 523.6 844.4 813.9 770.8 786.1 829.2 + 741.7 712.5 851.4 813.9 405.6 566.7 843 683.3 988.9 813.9 844.4 741.7 844.4 800 611.1 + 786.1 813.9 813.9 1105.5 813.9 813.9 669.4 319.4 552.8 319.4 552.8 319.4 319.4 613.3 + 580 591.1 624.4 557.8 535.6 641.1 613.3 302.2 424.4 635.6 513.3 746.7 613.3 635.6 + 557.8 635.6 602.2 457.8 591.1 613.3 613.3 835.6 613.3 613.3 502.2 552.8 1105.5 552.8 + 552.8 552.8] + >> + endobj + 50 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F8 + /FontDescriptor 49 0 R + /BaseFont/NIXYJU+CMSLTT10 + /FirstChar 0 + /LastChar 127 + /Widths[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525] + >> + endobj + 53 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F9 + /FontDescriptor 52 0 R + /BaseFont/LCTKXS+CMSY9 + /FirstChar 33 + /LastChar 196 + /Widths[1027.8 513.9 513.9 1027.8 1027.8 1027.8 799.4 1027.8 1027.8 628.1 628.1 1027.8 + 1027.8 1027.8 799.4 279.3 1027.8 685.2 685.2 913.6 913.6 0 0 571 571 685.2 513.9 + 742.3 742.3 799.4 799.4 628.1 821.1 673.6 542.6 793.8 542.4 736.3 610.9 871 562.7 + 696.6 782.2 707.9 1229.2 842.1 816.3 716.8 839.3 873.9 622.4 563.2 642.3 632.1 1017.5 + 732.4 685 742 685.2 685.2 685.2 685.2 685.2 628.1 628.1 456.8 456.8 456.8 456.8 513.9 + 513.9 399.7 399.7 285.5 513.9 513.9 628.1 513.9 285.5 856.5 770.7 856.5 428.2 685.2 + 685.2 799.4 799.4 456.8 456.8 456.8 628.1 799.4 799.4 799.4 799.4 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 799.4 285.5 799.4 513.9 799.4 513.9 + 799.4 799.4 799.4 799.4 0 0 799.4 799.4 799.4 1027.8 513.9 513.9 799.4 799.4 799.4 + 799.4 799.4 799.4 799.4 799.4 799.4 799.4 799.4 799.4 1027.8 1027.8 799.4 799.4 1027.8 + 799.4] + >> + endobj + 56 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F10 + /FontDescriptor 55 0 R + /BaseFont/LANEXG+CMR8 + /FirstChar 33 + /LastChar 196 + /Widths[295.1 531.3 885.4 531.3 885.4 826.4 295.1 413.2 413.2 531.3 826.4 295.1 354.2 + 295.1 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 531.3 295.1 295.1 + 295.1 826.4 501.7 501.7 826.4 795.8 752.1 767.4 811.1 722.6 693.1 833.5 795.8 382.6 + 545.5 825.4 663.6 972.9 795.8 826.4 722.6 826.4 781.6 590.3 767.4 795.8 795.8 1091 + 795.8 795.8 649.3 295.1 531.3 295.1 531.3 295.1 295.1 531.3 590.3 472.2 590.3 472.2 + 324.7 531.3 590.3 295.1 324.7 560.8 295.1 885.4 590.3 531.3 590.3 560.8 414.1 419.1 + 413.2 590.3 560.8 767.4 560.8 560.8 472.2 531.3 1062.5 531.3 531.3 531.3 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 663.6 885.4 826.4 736.8 + 708.3 795.8 767.4 826.4 767.4 826.4 0 0 767.4 619.8 590.3 590.3 885.4 885.4 295.1 + 324.7 531.3 531.3 531.3 531.3 531.3 795.8 472.2 531.3 767.4 826.4 531.3 958.7 1076.8 + 826.4 295.1 531.3] + >> + endobj + 59 0 obj + << + /Encoding 7 0 R + /Type/Font + /Subtype/Type1 + /Name/F11 + /FontDescriptor 58 0 R + /BaseFont/DIDKVC+CMSL10 + /FirstChar 33 + /LastChar 196 + /Widths[277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 + 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 + 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 + 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 + 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 + 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 + 500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 833.3 + 777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 0 0 722.2 583.3 555.6 555.6 833.3 833.3 + 277.8 305.6 500 500 500 500 500 808.6 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 + 277.8 500] + >> + endobj + 60 0 obj + << + /Filter[/FlateDecode] + /Length 3763 + >> + stream + xÚµZKs䶾çWÌÍT•†&$ÈädËÚÔ&ërÊ«R–«Ì¡$Z3Ã)’²¬ï~äpÈÙuR9Mô‡F¿€U'ÉêqE¿¯¾½ûú^©$.Ôêîa¥ò•2qaWwßýÝ<•Ç¾j¯ÖÆèHýõjmmÝ4û}yØb§‰>Ô‡Š[·Ûº¯Wkm²\Eêêç»|ýN­”‹5q^ÃÕjm‹8'æêjfzÄÎ¥ž´<;â2žŸÅÉ­u[žãÝSÝñ 6WÚEÃŒM´­ºM[‚)åQ%Dý“Ì÷SÙÕlÚè¡*û—ÖS4%ýÝ ×:s½Jèχ—³éi‹Bò÷Í”Žv”*þ¤>à¤aÆ妊f66–0Ó™‹ƒgë‚a‹¸÷‡+“D}Û§$Ú¾lúº90x}ógáÌc— œ‚ÏC³Û58¹×0ÙcÙ–my|êfð=×F‡¦/eBÐýÒU¢045øÞVG@¼bñ¢glWoˆÄÍŽ4×*ÇÓË2€ì÷ž¥ÉilçNпY?Ÿ¯€ç¿“Ö£¶*·Ü*©ÇE¿Ü4<­¶Ù­ÿù•|<Õ™RádxVΫ`[nX ³4:â-,aT¯OÕaH“,Vy\d8GcŠØf°;Y½Ÿ‚Û;êx]Y«ccX±Ä¬öБÁ~òï»ÕGÚÐ*Y¹¸p„‰a`©Sâù¼ÀÓd€òÀ’^=Ça‚øt‘¦Ì°>CzmaBÄÓÓÈêŠÚ‹¡Õx}ªw¢=a—Ž–"(I<`³­„+Œ(5*iMš,jM*JñýœÒ@£+ ð¥±+ ôüò}Õ—¬-ðÆÚA[k NÂÏfª-Ànª-@%ÚÃ@üIºÎUlfe'0+ÝGõ·Þ°»yá—§ß~»’m =Í¡º¿â&‰¨ô€é5¾û 3:«“µoAg5ë'™øܯ´Áþ}FgÚ8«³E‹7°¤×sÕ`?ó‚Ú%Íâ"G/ud@ j¶¶Æ‰Z$´Dp?RÑ®s±ƒ5@§ò‚Ôka»Ã¼Á0Ðù½¹]1@÷͇«<î8 €žñ€aÓ_ð|Ó£ý×¹‹Àâ¾}÷̃Ļ¢)Ûm‡€ê"úÈófóZ÷OLÑ“gB nO´ ¿]B\;X-)kaЇ¬Unâ$` ŠÞç”Õ(’w1…{ RqfGlùýpünè¿…¸¾9…uzPØ{ð²/ån÷ÆXõ #Ufh]°¯«··0È!y3c€QÄJ³%áµëŽ’ á±+µ÷Wh¬›Ûþ.¥ gÐ"e9A4È­”fãÌ3xò„‰Ìꯧ²±+Fl¥ãO$@K©»%vv@)x±ÞAcW=ôÜb ±E{¢âÇêPµŒ>TBIñ<_Q?›öß { è-ù!öZÞ½å6Â=áØÈL58‡˜:_´IŽ~€Üê MÌÈýÏ>Ð ìžõ"ìH`ó?»7¡¤–œx~âàšÃIÌ\ýø„¨õoíɹ½ñK¹ë¦¢TxÙ4‡{ºGú%$ë…ì•ü$-—ø®d"Y¦,™y jZîÄ?gþÏÿ—Î]³ç ÈÉÑ°ûÞµåì%$¨‘GÕ^sÌÓ½lðwOLSJ$TrüIÕ‘g'Õ(üÒÛ·gVG‰ðÍf#!¹ÊNb”nˆ¯Ì8¾zÖÄC”¡ Ì·áNȸã‰ðñaö”ü`\‘æ5õœÉ¢µF?ˆ»Þä±B÷¨ò óBß1£ê~}ÉMdcÆÜ1c_rH´µq¶a¨â\Ña¯ÃšÂÚ’&! åA–_ÂÊ!T^?%ÓÎiá”ÅÊÀÝxî´cŒ¹ã¾Þ”;ÞgÊYì<”lŒ—Ì‚*—è£ÁHLË/lýHiè“wö`G*6]ZGöˆüÜÜÚ.V + S}k‡1L.+BÇÜâ†!9"Lo?Þ,±…О°¥Ž™àAA–:)]ÈÊfã•…­ƒ(¸SÛ®?O·ó8÷å\•Ìr\ õç#šËa’."f´E@Ä Äc—†Äž—˜ + ^Ó¼`¯°©ó^èëTÝúX@àLRjˆ¸¹§–çóëV]˃%’ÁvžàBŠ!o@~{äám®0…êÎLœ«çCu.QÉll)Ð_i\è˜ÓVáU{Ρìˆ%wÌ¡ô+C‚Ä—ðæ¼­Ö³F(–”’pœfÏ¢–ùìÙÅ© éó\Õ,84Bm­–ÚJ(„ON Ç¥—篘–v’LK/4'?9ö†!™Æ^…$™F*±Lgê±ÆxÒŽ•h¢%ù©–˜ U&åPýQlÂ4µqâFe¬÷°ÓmÆërÍáóðéÕo´Hâ÷àµ;~;ÍÛ±¤¯[få÷õÊ=VÏÖYZD ؆⇠Ũ¹ó3*1°Kêm°|[Ö€Š9Ê‹R¨‹Ð1g[üÛÏïn?,pÌL:æÊ3ÆÐ÷LÍgŒ‹;;MW0ãZ3ËÈ; bæ:Îò‹bú!AÌ3Ÿ3x1=×E1@¹ÏŠYü·bB*`FRZŘ]RF!?¼ûnž§—1ð\’ ÷[J«ÁÒe´ì'–eô#‚Œÿu3Ï3Èèy.Ê:ûŸÖ‘ª*hÕUH¡¦5 *%­¸Fd†—¹r…ç¾<ôãíÝ,;¬¨ž¿Ìé)oW`·Xš®á:U†Œú´ò­âÅÅ„P=_±°T­X3 rÞa˜ÿÍ·ó|½°žï’¼…A¯xY^R¯ /Ø[Lä!ÕëÙ‘ANOù6À~ï»jÇV¿c:®÷â×®ò­úàék¡B_,Pzfž¨ ƒêž[hø±´Žï‘­xzŸ¸¼•œ!YF”pã§ÁWóñ¾¾g®ÚFïê]õ3z.›GÇòQ¾Ûû+pŒñoÖ¿.°ôò{–Kâûñ%ñÇõaäµÆÝ)ÆI¬Æ=\à„}5Nô$ÌôÁ&s%2ª«.¦Á”¦4ÙœKdx| sfÓISŸ!ŸÎ@“qy,°åŽ™Ô0U2 ºå€]©¹s @c(vi3däÚ¥ + xq©^‹JƒZ°1™¢²Å26aÈ›ªi œ=<ó<&óø}1E΢}Ýu"ÆnG§Š©Rþ°:OÃ?µeûÆ/U&'Êvtº›ò™0çœÈ?å:JÇo¼QÎêÎ@R_v¥\QѾЮåÊ´W›õhYŒ¦eÉxY26B°¸B_c‚ ƒ¡ñÊÅÇ,¦ÿõ¥“‘ðï2ã0Bþ” ñÜéˆ:¨äŒc@ÊxSÿhuøu’ó¯áÙVS9ð_ÁÞžˆ~mÚº÷–º â$÷t­5gÑ¿;–•ÙtÂh¸ý~eè¤ÝxAñ›Ãâ?çülÙ7üdóÒvg«ÈFÁ_bZPáãŽó‚^ã×CU‘:8<¡h[Žþp¹,qÓ‚éeóÓ±m·®j{ÏÎóeõ­6ú”Ž¸cQ"u•üp=¿,þ¾ƒN¾léÄMGèfGG![&ãSalÉI߶ºæ£¶&]½?òâ³ü³"x½7äì°lžâl÷T3ÑCÇ\Üà‡c±ù¸!Ð@6©Æl¹c&n(8É°æ¸/Ê»P³"ú†› ‡¢#|ò~Ü&7CR!γà¥òáôR sRƒ­H + ¹NWø›a…õv°»`…™_ )u²|ðc` G¤ö+.5:æÊ­2$MRôì³+1Ðd˜rl¥c¦ä + Q@š!ÅÚñ—¬Ä߸Ø'€˜HNÜjRð"\,äp(ðXîÈGrðÖVàÂwTŸGX*çþtiÄ•©$ð´ÄœðU,ØRõar‹šLœ£¸!òqƒ¿¡x9|Ë;/#vxñȺÜuŸ!°ZªSLt·t:jvØiÀÎwŸžVrŸD ¤C°Ôx¡³àÞ—£œ†óí[;8±ñ `cðõÛ™¿,x„`»¯÷|e8 äF9¾LþÁô%?NrÙkùÄSÎÅ&sƒbRlËÜaQÛ–÷j½ˆùØñOæ2±çÆE‰§:ɦàä/ÿùÛÊ]€ '§Š%¶PxNÜ‘ÖÉÈ«T–[¹ÉF›ž±hþÁYû½¡ä®‡rÃG¼×#s•²$ÛÑèH“eÇágæ´×»ät‹Š6úòŸ–RÌ»®™l€d¼pþÙhµô «ƒq–+EcE߀AMŤФЇ/8µº½ûË°Öª6 + endstream + endobj + 61 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F7 47 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + /F6 36 0 R + /F11 59 0 R + >> + endobj + 44 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 61 0 R + >> + endobj + 64 0 obj + << + /Filter[/FlateDecode] + /Length 2239 + >> + stream + xÚ­YKs㸾çWðfªjÄ%À÷1ëÙÙL²³•J¼•JÅ© $ÁcŠT‘ÔzýïÓ/EÙ3™= Ýè¾î†¼0CïÑ£Ÿ½ïï¾û =…òî<•{* + ŠØ»{ÿ/_¯ÖºóÌÿñç_Vë(Šü¿Y³«ÊÚò×Oå¦5íËêßwöT‘·Ž‹ §½ÿØÛ¨’ÌYéÌoNø‘úf·ÃAî÷ö·ž×K¡ë÷–‡r·«dÜ<ð¯á”ý†i|Îö¹¬*¦¨›¾ÜZÇшŒíJ§þÞ´fÛÛ¶ã=}3“Û–{dÚ“BkÔ(†Ÿ(Pl:‹ŠeƒJüí©íš–'M+“Ÿ§now<Û Ü_W:÷m{ƒS‹ºƒyBa– [˜E}¼øàزÄ^4EZÁÜhà»7£,ž)ëζ½Ý«uà-ø\v`CTB@±‚ )øL>‹•9ãÇÎV¶·8Ör màÀ j_Ö;YÚ ›åJÕhùljydˆ&8Û1ZžÖÑÐ yL†ÆºªÀÐ䬹*C‚ŸÀè:ÎI¢Ž ÿ^'F + Ž1îð—¤à`S™ú‰‡ÝÑlevÛZÓ£?‰™¾O·¯µ‡ç]a€W¼Š:œqGË¡'Tæÿ‘Iª²ëyí‚xCZâÈv8mSšª›¹ã’ƒlmwe_Öøá"n©DŒ(€aÉÔü]ÖÇ“,¹K·ª"už»Å}÷!áÁÙ9RE²o×&š`H’Iá…´þI,#Q ‡tž‘#9,9‹“ÁÌ”$k‘üð•’ÁNÏ8gÚÝ/¼<(Ò™lÍZïÉ?Ü+bïÙÓ ’Qâ¼(b5|WÞß dUèeA‘!C¡ã@3X¾ÿá§EŽqz‘¿Çñ„ ‰È£ g†å…i²@ktŸ@Y;WÂ)J=·>S0UA”O4,Š74tF¿G·þ߬EîN[Çýš¶Eþ¦¶k êhº$ kô^@ŒnÄ~Éï²ÖÌh*ûÐóÍàë3ÝN°ôz°ºk²{5X¿ôt§zgÛiý( âÿÚ–‚!ŒÑ–q›Û5`èGÊoJx7|Ë„2öÇ:Áœ3‰¿Êpÿ¹0\Ž\‹á\ O˜H$ËößXôíútÉ'’(v + ÿRïP‰4•“¦PpÄhà + Ûæp05fÖ$Nü®rÍy¶n ]apn8Tœ¤ÙÈ–q±é…‰ SBÅ4a[âÆZdŽ=gÂÿé™ÑÊ×Ü~quä4]ïøì¢þjÌñ)œ˜)ШÆäøxjM_65Y9{ly„Å5¤ÐapÆx©$:J2±ˆ†²%PoÅH­ƒ"™ + à‰K¸Ð1Ø×ÙïWÐ1MFtä:é…Í´¡Â̲í:Ûó€<¿®6¢9òn¦Ï«M6¯£ƒ"@eJ§i\€&Õ 4©»JéXÿàØ`½åVç¾Ñ ˜)*–<ƒpš“áÀN¥ÿÃ÷‚c†yÄÉr¢iÒ@M˜Òç¥/Tª–azÕpžõ ÇèT‰Pû†œÙkR°ñ 9/mKME·é }g/‘I%:ˆ£éÍ[ÂtNÍ{Þ1òÀ}ÚÉeÏ¥Wü{§ ûE!úÁí¤ÓYàâŠ+&èZº”žôqY‚¥RB©)@¨6á—Â<öoçºKE¹9Ò€1¿£Ò5‡˜W}ÑÕÑ9`šÙT4ÌÀgݶ-åbu<×»ý‡†ªb˜Ú˜®Üò¤Ä@×· ;aJ½Ršñtm©`Ϲ¹Äå¦Ý¡yqH½ž¢áoìó¦/š>‡r¾¬pE3Î1ö®cüR@Ë$Ò=ÑWŽÈ:vfuië-¶°:/ ¬]?»Žd¼uf§ìì&¶–Ò{ٚɡ©&}3ijxªD_lÀ I3QCÒܼØóÝiP {¾aïÛ*‰ g¸§¡2/®#,‡ïÍxZI:L,Aß°<¾}Ž&ƒ´˜²å‰ôæšc¾YF?pD>A?Œ¯"õÿdé}!QòЄ~×dj üâv¤+åÄOߎGkŽå®záiwa©„Å!E©ôˆ‹3^ö„f±ØͯvfŒxTìzÓΚÖ ±T:Ú¯l/ŽaëÝ7âÓ·w©†h`LÒÊóž#⌀pŽÙ”$ˆæÀ%`ÓÙ™28å5 ™8UwåcÙw_¦ÛÿÛûOÔóóYó_½*ú¶²¦¥JÈ9€˜.+Û#õDéÐ鳤ÚZ^ä•y+3}]iŽR~ÇšŠÈÑ>?ËS$TžþžŸT.TK2²W°zåzÃÄž˜ ^9 œ0, l£ bÊê²°Q`¶ØIøô;~Fo‚a´ÿ±çƒ•ÿ + Uոؔª8Í•MseO'SšXê`ôð¾«sGåAÅKçç釠*³¼•™å•HÍ&£åƒí1N±+ù֋Ϭ¸ Lã.Ù´h ¥YšÖlÑRÍö—²ª¤¥KfešR¯ÔinßEÚÛãÜ,¼!T(ÖÔùÑ6_ƒÃÂ=І“-¾aÓÜ^¨äÑ>ÛmNý9·ÎL1WJ¡0|a&}ræœÜpce¨^FÊ“{Ï^cžNM}êNÐ|¿p1»Zès%“*ÝLý´d"¸àÚå°{@5?°)”ßÔÝ•R6OÞ83~IÏ:@"’ê1îÿÞÿ|{êoxž‘Ÿ¦ë­›me›dqµv+7‚µ/’!]óÝù¯iyë•Gbàúp3ýÏT>ƒÞ7ÒJ¸ÀQ‰{dûøp†’Jªø£\GÎ\@ÊžcG¿t¼$7F¥@,«»Nïq5S~Í + ¿²DÃßLÒZ—ÊE€þÊX.ï·î-üÑöWßÍ'3˜YëIÚ!_Þë$µ­sÑÜûM;{óêÌÁRœÀä±¢¿¨0îÉ*Ë?übbîÑ + endstream + endobj + 65 0 obj + << + /F2 13 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + /F1 10 0 R + /F11 59 0 R + >> + endobj + 63 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 65 0 R + >> + endobj + 68 0 obj + << + /Filter[/FlateDecode] + /Length 2842 + >> + stream + xÚk£Fòûý +  # ,Ý4 ä>ímv/¹duRv¤(ºœÆfÆhmðÞ‰ÿýÕ«¡yL²_L?«ªë]å]ÅñîyGŸîþñðæƒÞ©8*Ôîái§òJ¢Âì¾ûOðîX^†ª» “DêۻИ4xמÏesÀÅ$ø©n*½?ÔCÝ<ß…:±¹ + ’»ÿ>ük§LT$»ÐQN9V œHÓàv§³ ½âÄ×¾âÕ’?ŸëÓ‰G{Fv³,†£œª?Õ=û~ÁŸêÀP놿%’òæƒRÓ+µI#xiLD!¶°CÚéœÇŒ$‹t!§"x½Êƒ· ¢¸1d_Ïw:‘Ây…Ô´OŽü¦¯öסfˆ'¡.²È¨]|Vf¤Þ‘˜xzGc‹ D^àââðZuàMæm·Ïéîqª‚¾u·J9ðBBÀK£ÆIÙ|æY-‡Ë=®¾çéìàáU:̤"›¬ ŽüXP2yi:¾Îïˆá0bâ·iœX©Pªfë¾þM§Ùþï°j­0`Tñë|ÅB$#‡P& Kþ\ºêKÝ^ûÓM \ßaIÓˆº¤-H'µAYŸÊÇ“ˆtùÌ¡e£@­A&H™%ãÒʱ—OœÊåc'%¹Ç<×AÙ ´Woæ"nûŽl« h€´4*4‘ö}å Л#ì¤[ýÀ#R5Øóëyõ©ðÈVAlH›N>™Nèç‘-Ø™„ŸW–fQê ìGV |š#H䋨»ö¼ víºŠ,pzGá…ßöà“Za£“‰0A圿ÖÛÙ7Së=écxøŠ'é<úu^ˆƒ#—ÛÙfδá + y’ŵéÙxô…¾#YàHµÜ$ý~!Ý#Ì7-Þìé†QAÆë«ôkÜJ‚F¤dFRÐ ˜$øå.×8Ug‘\›CÙÕ•èÞ¤ÎZ_žE + eï¶Ú^6!Pxó‘ÝðRFà…"¥…ýç•xT©lté+xpžÏȩŠ]–@¨ÈXðlì»Äª÷´ð²Kt”¤hoI”êÝy‡¡ÏŽóÓî\ﲨȈb¹`á>CüîýOÛ0­ŽâƒÉss"öȘAÖ+>hé—™_:ZZêD’z†å-öCÙ Î7lÍÝÐq™dÛئ3YgT™oXì; qòŠ¹…IGç)Ë\2Æ}yí«EhsÚù'ŽÓ±˜£<(ZdS_8ÌHTP(ø=¶l]0IQÆ«¤8ËQYc2¸ò9ú>Ä– 9N#\Êg,æ38«9Nµ‚“§^Ã\%Á¯wy‚x(›À½sU6B0ß³„\$çö ØàÜöCȯWZ¡óô ª«ö$O·pÊ“·R + /îSÇ«ÇÞ¹Ýrªç™ÝmÓìœéº²,GTH=£òIÒ«5½kÐÄÚXG7_)‡ÅÙÌ¿.µ¹ý©7ù¹ Y¨™ä&8+)tÖ… + ¸LÌfµE–Ëù<†ÌáE ´Pˆœð¯ä‰¯|p_6¼ß6ĸrhNr60¢2RG.] ®lö~Ý + ——<€hifo UÇQ®dŸáÏ®"ϑݾÆ+¼œÒe[0.³·S‘Ž 0ÅêàçªS + |tÝ=/‘žÁY˜¹ê€Ò½8øÔž«¡>W—åát„Ç™:®ì™ð©J¥D¡€•üé*Îä+Te\؃$H÷XhBúÊEn n#)}e.Ù›Öc„ `5K¤¯Ÿ›µÄͤï”O$¢eD Ç%·U.Ð"T®\K&Ó ¨Žxâ}W«r[@ë(Oü¶€ÈÈfT³Úìå¹{ ¼1ç­e¯‰gK>0i=¬Aè¦róÈG›¶;CÉ~“ ûA°aãÄe¤’,jðYXX¡™g–¾UíOÈs¼°sÍ QΈ`êŠaªR[îaæÙØ8Wc ÕåùrªPbÅo‡+ŸGTâ>=àkyHIš’^ -åøÜ5!t²± + ‹@õ€ïüVŽƒÂ”JWZ¤œÉ* ±á\ÖÍ’•1•öYÉî%äžòõfqÐS+Áä_ÿä_é6Àxž|°J§àâe”8“‰u—(¤ÛÎÒ($¿jÉĘB¸£bä£öš¸xÂãI@,Ü.m(²Î¦¬æc¨ØýÄÎ ­ 7Ù”ÿ#pX±VB§—¬U§j¨˜^Ñ‹XÚEDaÕxºm}Ýæ0Uv*ªNú@c#Ïùẹ\‡UÇÎ˪X­0¥JÇ”*å”êSUvû»DGndfFÚ›ÙøGÏ3 + R™ënÀàûºÚy%~æåeK©´” + °/õ2¤4ñ»«©CƒžHÃ÷K‹ŸÜµ×ç#ïKûÛxþ&G¡j Ñ÷ît®,s{;’~nÂþÐ,Zï®íÖ˜ÞSÂGMþ®ZöñÆ6£´[§×H¤&#¨FÿíÆÿ2ÖFÖeÑu³å‡H¶r³1;?‹lXCy;Ýnàõ0ä³}‡úŒLòì ðå=¹+â’ŸéO¨iNQFÚ5t5vŠ:>s,{^BŽ7u¤²ð,›2ÿ½–+wwÄK¦§¡ô™ÄÈÞ + )U)G¶£ëÌÔÆ ¾…—ùB¤lIþ¾1ÅÑ|;(#›U.9Æþr¢ sëù—4‘á°–TNH™îSsœ p9Îå°GícÛÑVÜÑ´¸t²rü§ ÷žÊ.âÖÝÛ†W&ű"sð >OpÞUÿ»BªÚ30®Xñ2 ¾ç²áN ^:89¹™x6Uu T’ÞCÐ!9,#^Õ>19Ø™˜š'ôW&ä8p3«t+Wâ + '„ ìt`Pòæ¢}½¿žÊn!)#ÍZ×)Ðf¬–Ñ4õšNïÂî/jk*­¦¿ÇV±9þÕ}ö[…¾ Ýs»N´^CZ{®Y»ÐÇá6ä¶Ø½Ð¦©ÃÚϲ=e:7O jʬ‹£˜·áŸ™§kÅëœØ)ñ¢|‘FÆý)RÓ›Ž! ‡”·*7zØÌp®•ñt5ýÛ (Ri…«Ì5¹E-qÅA¢8ɶ\ùîýÃßþ"c\Õ + endstream + endobj + 69 0 obj + << + /F2 13 0 R + /F11 59 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + /F1 10 0 R + /F6 36 0 R + /F3 16 0 R + >> + endobj + 67 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 69 0 R + >> + endobj + 72 0 obj + << + /Filter[/FlateDecode] + /Length 2580 + >> + stream + xÚYÝã¶ï_! "gÄ}ôí²ÝK/.ÅÓ¢H”kÓ¶p²´•äÛÝ>ôoï g(Ñ–7Í“É!9Îçoä(MÒ4:Dîç»èÛÍÛ÷"ÊҤʢÍ>ÊÊ(“I¥¢Í_~ŽÕj-ª´,âï>þ´ZK)ãOÖ욺µ4û¡~èMÿ²úuó}´~Y´VURº³ƒ5ýv%Šø˜¬Öy©ãûÕZe*f¤ÑוV±ékóÐX¤ÈøhZj»‘( B[ÛÝ C}híŽg›ælßÀ\â Ezû¾ŠÊ¤ÊñY¢ÊQÀ›éaG'òýÆž"™‰$+"¸)©dtŠ$ + åçMôÙi)K£"© + dçH”¹ãxÿùî6OY$:`馞ã,. é*bXÓÓ”I†Z¦˜vGÊyƒIZE©[¿[¿` ²$÷ë`šÔÝ›íhûtýT7 ÙRæ ¼ˆÖà + Ý»NukF4TÚF{äy\·ÛÞžÀ:`èÑ4HT¦¿–1Ë+|²ò°R$BóºˆîC?(â®é^º_ߺ_÷“<¨+·ÐÛaìzK,ØKà‘\™Ñcµ»·ëë<ØɬˆÑßô¬*þljxÚ ÂËp^¼Á+l^)E:Ÿ8Ö(Å MXtšæñ¶ƒ9Èfê¶nD{åª<Æ7á#(øæºì¶;Ùb•¸À`{î{K· AðûK¦Ðß×YŽ?Èf³*EÜá¶*þEè)UwÀ­§áÉŒ[dv$ya£RMWW`$ÚJ"¨,ÐP˜ Š”ààË#ɾtï\&Åä9ýÒsÒ¤ôîÝõKÏ“‰RÓñáæñ’×1 ¡læñ±ï!CÎÀ…6 ;Lj”I©C¥“»ŠòÒR¢Ìããf_ž0êL¿#*é~÷]ÿ„ËÓ* Ù8…!aRR÷t.XníóH¤ÀpŒS°qÂg®EÔ·‰c¥öfáÔ;tô»7½ËïyüÎ]ýB©„w|A²eú`ÿ}¶íÖÒ%÷îÜ2Ó±£]œ×çbƒ3ðå“ñ;93à™ 1ejŽê눸x¯L))™ÅöÙnÏx'TœpÄסٳ4~£u;Œ^+´i¯‹ $ù,­Ø]&)úPI¥A9 + é 7ÊÍtDB/ÓO÷›WØ‚[Ê,dK„eÍ…NrE\EñJÑAÕaj'½ñàU5›íÖ>ŽdÉyhJ ‚’‘K˜Î”½}`§Â J–¢<[§3“gH‘Åû¾;]­ÏéÖ1Ý Q! ½£åS‡w|E'§RRºÌ(²±˜«ã"eÉÊU)T­íɸþÂ=)€Jiï¬+‡nÎ ý´ö‰çNˆO¡Ž_\»PºË°¯² 1× ëwìî•Jþ±k× £éL×`¹FJN#v=𙺷ׇxβiFìðŽ}×óaH–ý8-cŽwÔ+{*Ù ³Bï ^uYÄT (œ ÿàd¥*¡:["^BÀbV^^?_¨rA+×.„'Ð+^fÈè6‚¢{Zîz¢|ŠøÑNßÅ—¥k‹9¼sÚa¬†§~'fƒ:Æ– + Ëž¾+É ÚÍEè´bm=Òè}ÝØe”‘$p£^î]ƒat@]Všµƒ >ìáf&ˆcðD:Æ ý v¤SüÞŸÌvX7õ| ã6¡†‡ºÝá"ºÂÛ4v÷Š§øb¡tº7ç‘¥*Ëß«4¡sü}$äÝ$õž@rà~Á¶40ô³«!ÔsÛs wz¬º7Àè™0œa§Í[×¾àà Ž|ªÿsÛ9{zsB§Ðš¡‰$F4¬ªóéõ¸ùñ¬)¥Áh²?Rb„%Í()ñ·ÓÈÔ± Ææ äpVϪ…Ï•V…*ø€Í$+³CèÕµxo*æRî Ðé wž)µßÂ=*K²éË¥xIo×ø¶f¢òê@Ú¡N|ÚÙm’⺞3ao(_8É[®y¸‰ÑO{°´ØO¨ì¼{}ÁƒÝ™án}8rÊÄéÑà"+‡wì«cÇn:ÎEMâǬ)†D‰ÈkZ’ýŽª#~iWØ­˜ç›UN†UnƒýuÅf.Ò¸k]òBöˆðpþ`pf7„¼øâ¼uÞ { ãuÊuP4ç ðK »áݲ>¯Ø`˜ñ´Œ¿mLû…ö;œ3‹wÛuëC ¸ »Ö¢ñtDéÔãè ´ªÊWfUQ©Koe‡¼H´/\&…¤ð©ãæä>¯©Ê¹)—ÌáJXý q4¡i ,Åi‘Hº%Ž¼ƒw‹­Õ›2Çã—ø‹¢Ôõ0©¼´e + á‘nié3Ô#ØItôBAôŸï.™(v7±ûC0K˜_õË*¡Ö?òç´T±•oµ™;Ûv¾Ç¼ürŽÈGc¦|;¤2Ïà$øB"RLáxÁßW® + ˜~öLq?}¡»®Jé‚])ÁêtÓhÚ]½GØ£¸ á ?·ë±>YÚÇmg…Úáhàãð” + ÿh Í £`‡i  c§™¸|˜9-†‡Ô…RÁaY^Eãy ð„=Á¼iô¡v¼õ¥}™¯‘ú¸¿’±Ey3öÁw7~}xáÂÏõ€Òdú†/ïC}zl쟗qS&E劔V—B_þ}àeþ:¹A®2˜!.º~#tmøw‚cJ•ï¯?]¡ÑüÚ[ûlP$GÎc*O%À<|ÐNx‹¹Ïn1>p¡4\¡¯K0˜0 ®_· È‹Æ/4agÝÒH/l[&¥ÿLüuù=,Óó,óaü•…›5†ÛK3¬5,Иk#4€f°>uX‘BwG÷›?ücà:ˆ + endstream + endobj + 73 0 obj + << + /F2 13 0 R + /F9 53 0 R + /F10 56 0 R + /F8 50 0 R + /F1 10 0 R + /F11 59 0 R + /F3 16 0 R + >> + endobj + 71 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 73 0 R + >> + endobj + 76 0 obj + << + /Filter[/FlateDecode] + /Length 2221 + >> + stream + xÚXKoäƾçWÎa)`Ùf7ßöÉÞ¬ƒd…ä `j¦g¦±|ŒIŽ´Ê¯O½šÃGÒÊ'6«›Åz×WÄ*Žƒ}@¿?ß~ÿ‹ t¬*Üî]:QUÜþå?á‡C}œìp%‰ õ7Qšfᇾmën‹Ä$ü»ë,¯>nÝäºýMd’¼ÔavóßÛ_ƒ¬PYDi¥Jbø¯›2 ëÁÕw ~/]ÝÚ—iÈLaq“eaÝœìøU>ì`åÐñ8ôGà0YÚ,€l vÓï;÷?+lÜtèO“ßÜ×Ö„ŠƒTÔ¬âÔ³ø›z´jÞÎTehû'Þݶžx¹µuë~‡O`}ê¢Éµb‡;°@ÚC}cŠðÞõb=7òá ’u··bØCAyw:—]ß4=} ›"‰­Â¶IÔïIÎŽC±K•³ïlÓDãô s ‹KÐ;¹ïðGÓÐ7 c + ¾{8 ²¸ÿYŸŽö º¢ã½ÚzÛû‰ŽÕ!òi3§ØÊ í¦èÎî]÷R–qdßRfŽ‹–˜˜‹Ð\7Úaâ5Õ#b#A¤‚¿tó‡Tz`o>$q`´$¨çðTSä*÷ÙÁ¿å4ŒdgaÑpí¬DFXl–Í€k\Ú¯vsšìVaÃHEu¨nâǹœ¥Täçú¸’5.1uøGßýù»• ºPÚGÍ—%&GA/}vlìäú.rû®l„eÿõIÑÇý±8.ÖW‚Œc´ÈÔ¯ãBk•æË<Ž—ÅYK½výÐŽLúl²¢±Ø)ù¯m=qá~[UÒ:aë¬!{5KU^,Uq›¿>·½ã ¡}ßcö‹Cvõx6oô!‘×V1à™we¿Û½èÊw×| -9yÆ•¿Ÿìð9¨ãë®$ELY„êzj±aa†q¹Ç Ì-|²#úQª¨)ËÅOG>3Q§Ä­­åòbe‡Ów&ÿG¨Ðòå‰CÐhÆ„õø…šÎvNcøpà=Isi>J™à + `–Rº\h…ÝЧÙòZ*¸u㱡2ÿˆºK–ÆãRRÖ}E[«JÙXUFb céÒXpÖÉ“À3ÈЂ“§ƒ?0‡Õ{ê9AVÆ{pØÑL“ù`!%dnÚ›m‰ä^ˆ]?1ÏÃ)7È{w¤Ý;û0³mDq²°GfpÄ[ [ðA.°Ôä ØAˆè?¶¸I Ia ³Â›<[28:÷gâ !dLB愺èÝ1Ž³{R5Ïé¹rèìÌWöAÚ³Üþ~ò(×äX1ü¿õuQ RP¬uÓÜVéo + •’Þ:Ž¯¦ñB%ÒRÉ+Iÿî{Wk§úõ拱mRA/¸ ÓÁóJýÖ*y¥~g‹úmò%A–’°Ú0°¾§4äÏ‚ÿ‡zæG÷§Zð?Éu.Öíä͹sÓY®ìFùEè¡NP…k‘ºXØ0¨¯®õ¸qpªõƒÝä×"ŒÚ „ƒí6( 8°åwÌ2ö%"~âÅÏYüÄ‹mž8ÛÚ×ù[/v”ªÊsÐ@?‚¦¬âTÿx ³k<À š«º[R–*΃6Ð`Ä0Bh‚O4Þê8(TUÿü'Uª*î$?}x†mˆÈ,Ù2Á³=KŠtÊ\3溶n¡rè`ø + àe`+ãEÀ`åi:)ȵ¸â¸Å'vï€Dä-Iöf×á ï:% ÐkXz™ÍÏôõôJ¶èX+“}cº\Il]Ä™‹Ä†ö„U0º2¯§w?|¯¦w~Æ!ÿx=½S]]̆>½q広£¸&2F{?lñm‰Âp<Ìb¼3¹„eÕÖ~ZÊÌW’2_ÔxaÔŽÞæ7*="X#—yWõ(wü”«C½=³‡aÀ½gú·W\¿¸ý€7ÚfÉ8óÔ¸¹A¥}‘_ÂÊ'á÷|¼•1^Mýq •GÅ#åk«¨í·öÛÐ㺹)ãÇ¡¹T$dÎ_\怲:õÉ/×0Hy8¸ †Õ_Ï&‚žDtÆ8ž_ºcÖk(Ñ®ÛÊX)É—É—¦È)%†$Yøó#oÉ¿Þ3p]488>Nõ0 ‹ÓQXuüüØÖájçû@ ·ŸÀö + dò—{Z®Wp!5 ÚKÏK2I)w}p í à + à•kêAôü$9Ø2ÌBê%ÌB~î:—á2Ä"zÆA —\~uÐ)*¥ý|gÉ«&[b˜¯:ΨëêÜ”`óWCo/¯U¥Ê‹[ ˜"±º~±Çzûz¼ÿ›§˜,èAK¥ka!¿óü ЩXÞ!"K)xø“á‘Iþo,·Ð¨ÈaþÛÔTViGÂFT ¢"}rÃ#SYÕ[Ð?Ï€Ëê¦á4¸ò©oeˆ!q®¤3¥ª[™yV$ g+â`Q_âòÕjÇßZ‹!Ê/„:-T™,¯ýzpM®y¹¦‹Kz\o¹‰2Õ·‡E‚—§$ñ%±Fò0²'‹ù(S(Þ’ðšÜ|Ájy£b΄þF¤¸¸æ¢›kj݈u.Z÷sóÎKžÑy¬âìM®èù§ÿmîš— + endstream + endobj + 77 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F7 47 0 R + /F9 53 0 R + /F10 56 0 R + >> + endobj + 75 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 77 0 R + >> + endobj + 80 0 obj + << + /Filter[/FlateDecode] + /Length 2365 + >> + stream + xÚYK“¤¸¾ûWpÊ1hH<Â'ïzfÃ<íÓöF˜.T]¸)¨ª{Ê¿Þù + (èžê9¡g*•ÊüòŠ0ô=úüâýt÷éKäÉPäÒ»Ûy2ód,råÝýí7?ÙQf©ÿË?ÿ½ â8öÿeŠ²®ýT]Ñ7¿ßýêI©…L¼@å"£ÍßÁ¢(ñ{3pchñ›úÿÁõŸ¾Äã¡J‰0ñBÚÖ6<=åI + ¥íô‡H$ó‡½aªûªZà:[8&K;W ƒ9‡~~þ±.¶vÁ‘–·U³qbSÃ&»œOHý¾8ºb µÐÒ @@’TóyÛb¨€ï Nß}M±E¢{ìé —0e­Î ]ež7pœ)yåK5ìŠ@qnEpìÌsÕžúÀ½–W®ÅEšÝ‚V‡‰Ès¾†¦Uù6¼J-ÉD*-9±¤&£DD@-Z´o»êm3uÐo»¶®ƒC[š] + M¹¸@yì?o´ò‹®*jT„žz Ó¨²ª£ô´ð5 <ÓñäRÍd’ ¾­gNp˜`ÛñwI,Rx_Kk·[KØ’%&6A)ÿ«†ªyd’ÕÀ|:Þ—G¤¹H’[Ù%AšÉìi¦hz”è÷U›[Æ6àá¹ÕPIíF”y + ²EαoÊj@uÅöKU×Üâ·æ¶U²ª¢®!©器Ì/ð›8½5 !cì´5Xñ²wcÀâÙnîì–ºméÝ]s\È—ªöÜÄ{ò*3eŠ…Å'DÔÓ~Õô ^H[ñ€uvÅñhA¶Ž7$PxlÌ ¯u÷À6Þ”@E¹ÿÓ™‡J³+Nõ`OPù !è‰!ä’‰À—U?¶ª¯©{¦E”Ý®¡KËNÀE¨©eWÍñ43ß·f‚YF¡AŒÂwþuöøWjꇀ$+!¶LcE…íêqOï<­)ÉàÙ{6ÀÙCÛÚÅüD„ñôb¤U*Ö#ý=ö•O§à¸ú^V²'(ºb;˜®çÕnq7éï7p/•„Ð{,º²6}ϳ¨wø}!ÛuDÖdUSÔ¸ÜQ]T"Ûc2Plô§£õzݙ¡wÌgæT’; Âõ‰æRR<$¸‚„I"”|¦:§3I¾Q =÷FÖßÎÉEè *`°«‹Ç¥R «œ¥Ö`Î škâŸ8ù;Âv´ ö;ð&Ss[3%EÏ ¢=Ùî+ðŸý-~Dª=pþ%ØƇÆﵪà7íØ·§º´£öLK ß¿U°s0{W@Y¶¡I”J + 8Z´Š(k==ôæ“Ý^Ÿy‰ùf¶'ö\¸ˆ}4¶(OÇ,/-zž*ìŠöp(šrÉÅ=ðš•åà·>aGŠHhnþöõÂ)ý;XˆÆè­x´ûâû (S.%a ŽðKbkA¨,6íù€lXÁ.FûÕ3žË]ÅNJñqô!4qõh¤¹—‰<á°#A EÑ÷ùŽ^¼8ŒÄ”g‹(ö^,3‘d—ÚûJ!º ½Tä)Ò»ìH0?ýù¢ãSšØw$Gq^¦8Ÿˆ”IV =NE¬½ÀÝÂ>ê§/Ù4Jql­ïçà×…(ÄÄ‚çèê©c·h,.ÄJ$3à½Öl²b«Í †+kMo´×'s>ÇWL”ƒ çc>P?ñ«ÒÜ"TŽÀcÞqê:ã’œy"õ¡Ã¨O`ƒ+ívÐc4%YÑhÁÒNÐzzTó0öÿºÝšã@*½mC)´C¾WnOÂIÄX²‡„‚¨krZ‰Ü½¤9Û%ªE¾¯ø¸ =P&Ûƒ~€{€g[Ðɱ?®ä*‹€–齃D¯ÓÂü41µêo«DôMDž«7C•ïm†¬èy™)ˆ¹²[)LÐõ ARÊh4Ø©xÑùæ3çT!ð5Ý°$ + cÕ@¾’ + b#E„°+Öä“)G„Öhœ* ®hE[EÖ+9‘Ìg‡¼)=ö—-ä„Ôº¢Ç1¦··°Ì°ñ¢Ö³xqy ˜Ôòýö äÂ?Ä:õXåÓp óœª_y€ðèf«¦Ób{ÚòN¤r^é„kI43[ÈêÖKi„¾%\My@së¾µ¡Ü=ˆ¢®±ÿ…ñQÐy¢j + "àjµ"Gd›¸„CÑ=eÕYHZM[f£dΙ 60³ÁïJf.úöÄF©½À±6”^#IÇØ™»¶¡¹/ðžÏ®†(I©4±Uýž›… õMSšRØ|&»ÒÏ»U)ºx¥*‹ðÖ"Êj!\¿èEµ«LpÝá‹E(ÄðR+È]šüf•EB !ßQ}T!fS§ÞØó'©è䜲êuÎþÌ®€UôìåAZ$r†¦«ú'X–†/9ÓÑ­þy)"‘:Óýp¿ÁbbεL Æ– À™ÎŽ‘Ú±4 ƒ¶êƒÍ—}5V0YßRŸÃbÉf13¬?ØÚkFš^ÔMÅBeÓHÛ>\¼¨ò¥»™ÕRXßšb2‘'| lU{M!ÔѶ|™ŽêØŸ Š'ÐÇ¡AÐK yÈÐ+Ð ¥n×:ϱh:0ÈÝ[%øV˜âP]Œø€d7r¼¶†E4ŒWëç –•UË$Ù,à¯è0õ€pG + þXÜ¡‘)îðÐ=¦–ÐÔþŽ1nâi'6ûÉÅ`·Ý-ËY6©àK¹*OØ~ëÝ’ àL„’HIÞ{q0Ó£ÊýHy-Š¢…+¶û`_•¥i‚]Uߎƒ‘š/°¨˜H‹ƒ8I + ).âÀ + Fœ¦Þª‘x€ÃÁhV’Þ;ïäŠ p> + endobj + 79 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 81 0 R + >> + endobj + 84 0 obj + << + /Filter[/FlateDecode] + /Length 2126 + >> + stream + xÚ¥XK㸾ï¯0ö220ÒŠ½æ°‡ ’M`Ñ·L€Ð6m-KŽ$·ÇûëSÒ’[žŽ{Y$‹dÕW_µH“4]ìôùËâ—§Ÿ>Ë…H“J,ž¶ Q.„J*½xúõ_Ñǽ9¶[ÆJÉH|XÆZgÑÇöp0Í…*ú»k,·>mÜàšÝ2–*/ET,ÿýô·Ÿ>«QsV$Y¹ˆu•”¤¼= ÇÓì`x®œÍ…“>É_·°KYF½°QECË‚ÿÌöÑy")oÑÌ4 ‘èÌ¿{7Jeô»5›š/Ï®®yëµYÊ"º  ˆÖK™G{Ó™5X¥gÙÙ {¤½×`Ýn«x ŒVnÀs,b¼VÆ×Êè| + ·êìz¨/x 4ê èê¸=ìMÃsLÏÃ]4\|ìì™_í†Çl¿6Gð‚gõö¿'Û¬m²Œs­£'8#%žbc·æTìG×ównØ,Mò^…ˆÒñмƒ¦ [ãعf˜¢)Þ·û£mS×—Ç(FæZ2WäüÞ–HªòqhÉ"Ÿ@ U2ÇànÁË9ÞXæâÖG<yçÌÀ d{žÛ·Ý‘ÏÜ¢­¦fô·'Ä’b ç÷ˆL}Ü›3ÅàÖ€g·ÝÆvïrd¡¢ð,„­M‹Ï «#ÎC1ƒ0™“ËÓÞ'ˆ;,£ïضPIZü–)ßb]$¥š²L¿oÏ1X vÛØVnwjOP Ä[{ºc1Ƀp¼tÐEd÷äÈ×b(ƒ€BQVã¢Ñ¹¬m{jÖäês«bz“apbI(C*îØLäIú9O¥à@<)x¯yã¼wkôëž»{â—@P°)µ|B‚VÛxÑkªIÅíM±o€N=HK3ˆ`CxÁ×p@¼2¬BJÃNíúò´Ýá`7Î –ð‚Eûã˜aGµ‰¦¬lo”Öõèe*¬O–ÉéÛ ©HdögP\K¿âSsh7në8ö±–ú + cl{#èñ~ØññÞ'k©¼'‹¦ÎÅþÆÜu^lævÝš~OËd(wW›7MÑÕt!ÆË”:)B6ûñŒ‘ŒèüV4 HD¥ôK<ìÄ_p ‰‚»¥Ž¦1$x¨þ&%‹rPŒy({¥œFó«SE1U†ƒ‡ ¾1» 1UR¢€¢šçƒÎ)Jå÷MÏÝ38Jun\œëè‹÷>4_i»ÝóœMÛ¼¸ÙCÁ짖Àì[õv÷PÌ~Yr|1g@SxUò–"h¤å+E 0PEé”"H(;DÑðEŠˆçœK¬¡?B˜°=‡¾ƒ)Ô]êV‰ú3L!U™1-„^y&î3,”öO«ì^Xh©õñ<ƒ6`7/'•`¯¦å#nføƒþ¯í»ž{U‚GN®¬Èù!sôÏœfCŽÎÒë¹ÿƉ³<‘7%koÌÁ»ì¼· ·0Þ×z.7'¿ëàwýèëI–2É¿ÏÑðXÙÔ³¿Ù «ÿÅ58.y—‹òìpdâÕèwD(1«)²`ö3Þ^¼_h*T;^§iøÍTªèýœÄ®k  •vC -(ÜÝ1$íùCà 7Ì751.l9üú±xʱäÁýþÙ¬ýƒÃù Ò›&ÜÒ;µÒ¯-tÝ‘.[1ª.<o¦uXÕxðÇ¿ß+.CnÔhgÖ Vy(Ô¡á-:Ôu¨HÇ0Qy9ÁWŽ ¸ßóÂ,Bo½Ò> + endobj + 83 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 85 0 R + >> + endobj + 88 0 obj + << + /Filter[/FlateDecode] + /Length 2138 + >> + stream + xÚYQsÛ6~¿_¡ñK©™%’ óp3MâtzMÓLìÌ=D7SZ‚lÖé’Tl÷¡¿ýv±4£»‹ÝowåEÄ¢hq»ÐŸo®|/xÄ + ¾¸Þ.x¾à‚ÉâúÝ× _†qå2øùã—e(„>«r³«jEoª›¶lŸ—ÿ»þÏ‚ó”ñl&Ëõæ_êe˜ÄIÐß)”7—Í2–Á·%ŒÌ¼z*÷;õ + a~|Ÿ;²€$q¾ˆ4ÜÛð@ acÎìçª#0sÆ¡Þ˜Ó›‘ÛC½î«¦&0áœ'LX¸C]}SmWîB­\§K@;ˆ“mÊöö°Wuï •¤,çÆ×I2iÏø-|wùÁÛ.à„ÔUŠ§§JÁ»V + ŸZ)Ì(%Xn¼)×÷e» ï«Ý.|lÚw:‹¤+ý" tVî)é^o<Åâ˜ÅÉpWÍä]%'—%G—%ÍeåA{¨i`nMûrÝšêé¡U]§6ôÚÔf/-…ÍÕíºXOówFXðÌ„E¹«FWmŒ#¯`{ÙÓ¸ê^á€\GOÔjÍG}Šþ¨žÌÔ¾ÑSΊÂèúoZÕú‡Ã„³&c³ò{ÜÒ˜BˆØ(ŒºÕ’‘*¼H™äð̘ wü ´ÒöfÁaÑ…Æ•jéC³ÅgtÏû¥±¼ š]µ¦éõR›ª-×½ÝQ—{ÕÑ°l-kÕº¹­«¿µñáýñ®Ú)ZóÐ6+‘kâ5ÜTUßÂi)Þ&^<„RpÇ©gš¾©êYS€|¤~ùôšŒÅ¹kXp2kØ©à'Låiì¹û!2mh]^½rQ‘»û§O—þm: 2ðáý»)áãó„ÿxù_ËKy†›‹øå£/XœÍj–±Ì~ý|yíïLˆÙÝò¸ûËç¾]$zëYè¹_ÞüþÅ—"É1¿œrõi™ ˆ€zëÛB@è¤gÙâêÓ÷|DGæÀ†.L,Ynå¹Öâ¼™ºða óX$èN1;K)È/¦¼bàTúËÃœÅvÙ…'‡ƒ1tò˜@lš ‘<³ÄÞrÓND¯8šŽø\»°Ì™®õpï.a…õÄMµŠÓ ’4ÜBÛ¶ÙO˜'gIr´dçIÙ1i[”†‘Jm"DĬO2©"áA×·@\F€ª›^ó¾•f±ªM¤rQ0^¸D_!­ + éPdyzT½6ŸÖ”+q6–| ·5Ú@ª z¢,` à<Ó’‡]¹&idd²H¦‰7{ᤪöé{ÓnàE,‚¿M¯:lš_5ÖˆÒ-€~oëÃXò¾è·ëµÔtLìØ^T·.ªf5ÙÃzRÛ^Ù †\Õ{ç%®.UíÚBò`Ûìvº}ì4”¢¡ÈÁä‡~´åh÷rgîç4qâ”Iœ8,[³\õ.9À1›úÑç,§üNÒ_¬VP_¼^†)ê;”§nzzwzÇþií¶V…-ðaUW}¸ÅÔíÉ»ÔWÎÿ±[.ÞÛÒ^ÓàW¼pŸF±ÌØȨ óÉ(wúúd$g:¼D9×$ƒKam§•·eUÓyn}©iF½X7‡Xà éZfÚæ£ê9?Ö'«àÏC‡E(f‰…xTeÞQy=)‰WðI, 0¦[½5\rµ§LyfËM×H°{:éÉT…NŽC€#øKÆócý™¤1çð<)Îá]ç©©HqðrÓ=Ln™~ÒçNd($±CJMr®Sª>Ãh[,rVd¦=ÂîŠÑÜi]/¯õÄã"á`ÿ ‘c¸‡ò:a¹&v‹+Ýïò²Z!5ñ[ Sni8[Dè ,MXØ£”¸@Bµ¢2y,1äø$u%N2 ¢‡ƒÀ__Àé }>bÒû„´ðÜöTÚ¡õã'Éy$?ö‹€`±_ð$bbxŸßîgÝ"ŸÆ‘ ù ¦y÷åÇÔ* ‚Œ“£µ3OÚ¤`EìJ›&¨Øœ¸fËŒ¸Ã + +®}YÞT –'¯ç<ƒöðĺY—>–×=³Å‘÷ŸiУ¼ôey3å#y½ÒŒ¥€aÓö²=].Ñm´×Z'ÇNw¶µ†«¶TwÌL¸Vg&Äá~aš¢ø†ä˜õì3‹S\_ëó¡<:­ ÆEØBðï9b\åd§UN66¦‚‘C-f–SဪBSU»Òc)4Þª6 ̺Ú>ya¡ŒñkjúMa8ëµ—K"×"X;øÍ‚d©5溡f½mv„üÐ*L^OnHÛNÀ›ß«¾¤«= 55¨j´4Þâ–4qZÇ#þj5{ÒM©!ï»]ÙÝè9»Ó—]Œó ”'˜b§ó eÐ$N'Væš!ÍÄoØ-"f‘ÓmN€ + ýs J¼ b½`à¢IÞȼa[jz 퇠ö£´áž@ÙÞûV&Ã]øÁ³]Òw,94ËPIi6&fZW’†ý¦A÷cá‚ÒÄTF“¨’ÆäÅYŒûŠ"°$óàn®åÌ°ié³ñýØæáŽÚ€0Ku;º$Öï"Ìͦ2– wGôSè˜syl·_ ÇáWKŽp’cfÈ1â£à„£ÂB%±Ä·Ó@@;îi€?tâÓ‹?ÐŒƒ5¹K‹ wd›±JêQÒÔòîk/> + endobj + 87 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 89 0 R + >> + endobj + 92 0 obj + << + /Filter[/FlateDecode] + /Length 2478 + >> + stream + xÚ•YI¯ÛȾçWΦ«‡ÝÜ'˜‹;3Á\&xAQ€á[OŒ%Rf“~Ïÿ>µ5S–]z¯.ÖòUUkª0Ü•]y`æ³,x>µŽÁçm’åyóµãv$ØÂ'¾<½ŸøÑzbÈ$…*Š;£"YÞm#7ô-nÜÀ5F™b³ëX¾ª³"Ϫ~ª{·ß®ä¸Aê\¥…Hòe%J­UœÈÕ¿ü²b,N•Žæ¢Œ#-¢L½(ã(üZ”¸KDƒIÌD‰+(Jl…  Nö¥¬ì¡¾ ,qÄße†*J¿ÍñN6´’…HAZmÇmü?o ©1b°/äyC†ÿ:ÙxÔa-š“íÈšã°ï¥Þ¾ôÜkØê äᥔ½EwK lˆ îVvo’¬—l…dLðφn®x + ø*iˆ87\Æe¡3²„;åšãÐ.šòbå†_›9£Éd\432 Qö³êË67ˆÎ$Æo†%ÞGw.݉Ï[w(¯ÌãMLuµpXñ\éiÃéÏ[Ïz”P¶/W/[)VÆÛÅE+îŸë3YnÎZãnÙ ‘}ÁA´À39F±ö• ÔÄKâ¹—ÍÐdÒ¶ÎCÅö+¬|Þ…Š2qŽWk`T™wæמNJ;kZ|]1î¾AÊCðkQ–†Á‡mNFŽű + õÜÁÇ/׳E^… Òc{>·ä &<¢ÕòÀˆhMŽ–ñ%gyÓk(+r•ÇÂÔ»ÝËZ:¡Êµ‡Ùýw¤ƒw׳]Ïý’™ð^‹Sk™eÙ„ãß¿@£ÞG[29C´üi è&+Tj@¦‰* «x¿‡ÝÃïDÝÄ$8M ÑaAgóTEd&U†Õ¡U¤ œI Dê¦"àP–€ƒrˆÄ Þ¸¾½[}Ž1üƒ2U˜Åز:sœÏ!^¢²/’;ó eˆKÇòPŸë^¼\}©Ïe''nݵB!·'!XðL—+Ð`À¡[lÙulÂídŽˆÌ‹xþŽ›kg¯Ävë ˜~>ÕdøÄyBIF ù‚ã1[æÞ+ö+ ç@Ðá(ØÕ%A<Î8Û÷ÓFúF<î±”ØáAwl;]¢Èߎ6ƒPŒeðÑùçpFŸ‰ϺÞ!˜ÅqðPdy¹ì$0ÛABãµìçr ; þ™¾Î1u 8jmœÂÍ(¨k€hê!˜X;¨Q‰÷[çÁ :o™[Äš¥Bb3׬’hcŽ(„ 8¸@Î!Ó%Ñ(üjäÄIÖ¬ÏWqõ"ÁQ,ŠSÚEæG˜FÍ•a»KMÆëÌ«”‘[g$Ã7 âúsŸ<€i]¯gŒÙdȸ2¸ñœw1PdZä$Cš÷ G. GæÉå¤øu^ûmS9±VÚ“ƒå´}f=~/ÿ ¯5rj΄âhVý4€ Uó‹ Ž¹öLI NÖýښ¹%]ÚÊÞ4¥üž)ieü:øyE!ÒJ{cBïAV†_Œmƒf©$»cžàÙ¯/<Ir-gltI+-êˆzÏ'ˉF@e3‰Jã¹QIb"ÌÕçƒ=zV,$køŽ ’á´àã—?×7Á?Å+NAð¢Až±K‰Ÿ¨hÌ Ö`…e ÌS þüß1aĉçº?qoô²<Â?“À¬E…A]ÙÂ>Ú/È W&”(Mñ8 + 5¬Yѻí;”ôes°2Of Ó|A¸ÚÍmáb¥Ó¹bvSç«vQ¼²*»j]“åSƒÁåFš“,¯8ôç—™4TÆoûH)0J m4ÇoÎ_°—õ‘Û)ºÓ¬ã˜ì¤œÇSCïm\!ZØêÚFµ™ò¡oÚèÈ"YYFV¶Š=:4è™3Ì@øýÿ1Ã` G71#O–˜Q$“™›"žUB°"®^HŽ3œÂ[™” ±sWL‡˱¯Ž9‘SÊÓ¥lŸÜ.­|ºp"MFr1¶H{¢ù0æ©-ظãM ÊëÐËQïÅE:ö¼¿vëè2«ü ½”k(û0!-œÆù¶C¥:ð»{¿Üù^wu% Ñó7ê °¿1“øùnñÂ$Èž‘& 1© úåS‰Ž/þ%ˆ3©KÉ %¥vŽ,ØÃ’—{G盦ôGœ"Î×Ymçáð‰U5*÷¦¹ÏwÀTe‚OCí¬Ã¨ƒƒµu˜©Ô»Þî{Õ_gõÚ,[ÕGá„~n¸ñ¦§š“ 7ÍÀ»zN1x8‰}EBVôâùÜÜaõ¬EÙ.7 ²]OêO %öÁâN$ÔLÍs½Ûh5SëY‹§E­â1Ü£–¨(^§Î&Ùö!n XAÀ*Ö3°‚m3êŒWù¯`7„CA¨,UÙ2Fˆ"ÿ‚÷¥/¤L + †ÞµO]‰@šiŸéb—:ó¸£!ÿ|ìÊŽBSˆºi÷Z4i|[0X/ÔL³2—dz}Ã’Ÿš$0Dèxp(îHUN•<¾b”< Tââôø¾©8[gç!bíp®øÐX¬à@”“ÄÓ«pòUÉ!Ÿ†3`OŠ°§¡¸U8b´L}.Y"S†NÉÍJÛ8)ŠSüì0û —±iJR^iäŸ}2yö‰Ò1ù€oEÕ ì,ybú& òM¼£?•=o’7ÓU@ë—ÃÐuò&±|†²ÿsÝR¿<£…RhŠ—:˜}[ºÓúYÆ@:6“ÁÊdÓöµ@þÌ‹¿ó;!ÊŽ˜Ã3×óÃvb GÏ-'„Kšü ô‰ß€bÚÇý›#4¯Öòø*<.`ðe$Â\~^º«wª÷Zžf)3ŒJ ³¶™ ÏL*˜KÚÌ^ù•‚bZïßÊuÖ…±ŠÍýG‚|:âíGnçË÷ + {vöî7ËZÎü/k™djÆ7¢È,ŠçU|MrüKçþWèÛµ$ Æ?àØ{z_`×ËzÝCŧ²>;’Äæýßþøm9¸ + endstream + endobj + 93 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F8 50 0 R + /F11 59 0 R + /F1 10 0 R + >> + endobj + 91 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 93 0 R + >> + endobj + 96 0 obj + << + /Filter[/FlateDecode] + /Length 507 + >> + stream + xÚuS]!}÷Wð`"“:ÀÀ0>íª1>èø¤&Ò)í’e˜Í ]·ÿ^¾º[S}.çž{¸÷j\×àÒrÞôë ¤Æý Ã]ú·ß!©+D%—-¼ùü­BŒ1øE«5NçÓ'³Õ|ª~ö×öÌ‚9¨é°LD/ìq§3ð¢o1ï@@ý­Y*Ô´-Ü™YÞ> + endobj + 95 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 97 0 R + >> + endobj + 100 0 obj + << + /Filter[/FlateDecode] + /Length 709 + >> + stream + xÚ½T[oÚ0~߯°ÚI RrãVi@¡jµvÓš=L°“b5±‘í”òï—ØN`m¥=ù‹s.ßù|ÎŽí8`Ôqasì×±{.çÀí×·{¯'Ö0AK‰yú¾g¹W -kȲ Ѹ¼ô­¯„bF1‘„.ÐóÝ®k¹nãwx×û›Ð^×îôl{Uøóly&D”¨eÍIŠ5Š•œ¥æ^&æz†ôLXÎõ'›ë3U,JDè2—⊊ÌxÉ8å¹­íüKÎeu.dä錄yø©ÁŒâMÒ”Ì8âk»]§åX£"TæÓ¥ylBÃï— H Tj«ü×{;j%ã¡D¿XnäDTŽ!/¸ïÔ¥TãÑî#¬ˆL4— + pû`º²DõP Bi-ÿ&ÒÅù…)Š×Oe˜Jñ¦ÊÆ„ y¹G@D׈µ8[‘ênjиà#v$}Fœ YQñ¡LH² Š¡Ñ‡³L£&–QóÖh÷Êÿó¯`¯­×¶½Þ‘B±Üe¹ØWLÙܺå3™»ŒÅØ~HèpA5°´ÛvÞxø¦Š¹v( ¿ìÚ˜¨÷X"8Ô# “«r‚ž5CÑÓ + ñ>‘4…+Æä!~15¡¹Ú.õâ<§‘$Ìô+EYÕ£Õ¸,(ã8V$F!ì^¬@Ð)–KA©ÛµÈêïâ(þ§à±Øs h«ä»îfÒ½Ï9[éŒOx]j}³¬†H ¸'Êëf>›Nïá·ë³rº½-}¢íÛNÚ~XÛÏ|ܼ_›/9.W¥€Åz•Œ¯º jZ¼Ì>ó‰Õx¼}£TŠ×äd¥´ù©BiëÓtÚ¦s\¦ÖGdêV“-?ÜcÓéÐô™ßî§õ™òÖ>§ôšré×.ÇuÜrÔnÿEÌwôà†ìäRNþ!å(üôéÔ© + endstream + endobj + 101 0 obj + << + /F2 13 0 R + /F3 16 0 R + >> + endobj + 99 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 101 0 R + >> + endobj + 104 0 obj + << + /Filter[/FlateDecode] + /Length 918 + >> + stream + xÚ…VËŽÛ6Ý÷+e€Ú@¨X~dìYx¦IŠ")šÀ]E]PÒÕˆ™Ô”=FŇ$Ëæ0,Räå=çÜÌ¢Ù,xôãcp·{óaijh»"ˆ×A¼ˆ6Ë`÷û·I<Ÿ¢ùzµ¾|üëŸ)Z,“¯€óŠP0³O$嘟¦ÿîþ|óaÑŸ2_G·›-7ÑZô*L’Ï(IîÑ·mø›²}{»œÔ„5•DHfN fRþãåØì®3£ð,Ç&ó·ÑB[Ü£'µo5_Nž&!G„ + àr°o¾Ño€æ¤¸|ÿÊXoiû\MX•#!O˜iJ”}ˆ¦(ž­f“‚aJ\×@íD2»ÛZÉÒr(pSÉhÈt¥Ýî¶wwÆöu.¨YdŸqÆ™sTbiF˜[£ ¨](7QBU™!¡8Î$aôRó¥Švt‡Ey Ô¢€œÈ¹Ë+ûÃ6zÏuhÙ…ow¼»ùÞ>~$ ´«ú«IÑŠðJc•0uGÔ‰,Oµ}ƒÍÃÞŒŒÛB^.6EL¼UíiÔZf.~¬I]*h7Â{hg¾g‡âÿá¢V¨@Œdìh>E“$ì4Ucý»G©_¼!K«TŠ³GQµaÖÓd¢I•ÞWWAd¸~0±¨<5@3#÷:o“©ŸâÐ3R/•/Z˜sÙ²†ó.é]λ3H÷§kHµšm:†¡—ï6ÏÏÅ4­á<Ô + NÁkÛ?_[L%Éì²k% MYCóKö)wH9ä‘%ŽtSö}ß•ës‚»$fôŠzíIÑU¡L/> ´Ò…{oÚÿ“ÛÝÂéÝÿ§÷6â¼ DqÚw±Âq€sñ“Js¼ð,@í1ÃÆî|ø0åŒþjå’“ÚÊVâ¶5þ[—Ò¥^銚«û³M?4BëF¢=HÜÅȇ + W;:ò UXUoü24w'™vàú$W½[u"_ú¨{†®—ÞΪ + ­ ÏÐ}ðµg ©þ¬È‰¨+|ºÎîHä¸È€<”îeê²ßúVœpÈduòR¶Š¸kÖ] + Ö_ ÒNŠ¤‹Êí(³F¾ܳ{Þ¥w F—üžu·`-^Íl,˜Ô‹ýœPW½è?¼—Vß(_;Â#]Uuòót+GLå(Û8è®jYOkÿ‚P=l¤‰Ÿ‘°=ÓÖòýî—ŸŠ…êÄ + endstream + endobj + 105 0 obj + << + /F2 13 0 R + /F3 16 0 R + >> + endobj + 103 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 105 0 R + >> + endobj + 108 0 obj + << + /Filter[/FlateDecode] + /Length 1424 + >> + stream + xÚWßoã6 ~ß_at÷ µÎ²üó^†]wÝî°C`Ë0¨‰’uìÌVšë?R”;iï‚>Y¢DêÓGŠ¤ƒˆGQ° + ìç×àãôýmˆˆ—"˜.QBò2 ¦¿üÍnÖjkt7 ¥Œ™ø0 “$e7íf£š + %û½j4>-*S5«IKQ&ääŸé—÷·òh:.x^aRòÂZÿq¦qÂnÛ)»þ‰:A„A„wÕÒm3ÛájjW¯f³›ðëêêí¹ZiC¶f³»ð§«×ÌAa»{U!ñ + w!÷ûŸUóÖª7¡êVçÖßéfxíÅE .¼x7/‚PF\Øm‚'`.‹ÙǪY¨‡ÌSv¯Õ¢&>óÍ=Yz(A÷„qÉ#iÍM×U:IÂz=7UÛÐd¡ûyW=€Cr¦Ý†Á0›û#ì̬•¡ÑFM@ç'’9´‚“‚µ;ë~Ôiéûˆ + Úiôú¿næºç0y†7 -W¡ƒ~d÷HÚX2aûʬ[ô ÊUã¾s@»…Yœ±gg“ÇsaâÏ%+ªs¹kp]Ã!—x-4DŠ ½T»Úp ÒcLyAaú¹ÁKçÀÆAÁ–m]·hsOñ^dŽë-’ß_;ÿ‹ËdÉóbím‰ÃÊÂ2gî…X‰ýÖN/u×»ãÛŒœÍw]§/èñ-áØÒWé&eÆësheÂóÜ·QÝãK€d6d™DÄ0üb´*üñ h„‡D½B0ÇÝž±Ì–wXÁì•\F\̪9þ$Çû$ + +aŸG©»öé¶ê‡õ—:@ªô™í_(– ÖÊCÎãï×JÕTÛ]­èÏ—m‹K¿U½i»çoÔPêÞ¡±Õ[3ªž轟&t\â^›]×\RU¶A«HС:ƒ0‚n2B­ûžæÖãÐ2î׺s[Z¾…Ãq…ý|ÅìóÒïªúSã^Ò´M¨7[C ¼btNY°Êœ‡Üàw£ðýLÒˆ©ÅÂfGH6Û€ˆ Á`íøµ«5LH¼´pq°¾4-wz®êšäøwqþkšÅ.]ÙÛØÎòÒ,NsªÉàz.æ¯Gã… §='.Ÿöœø|TAlT}h² u&Á§éÿ˜,6 + endstream + endobj + 109 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F1 10 0 R + /F11 59 0 R + >> + endobj + 107 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 109 0 R + >> + endobj + 112 0 obj + << + /Filter[/FlateDecode] + /Length 1391 + >> + stream + xÚíXKÛ6¾÷Wè¶2°R$RO (ФMТÛC㢇nÑ¥mÚÖ– =6ñ¿Ï ‡”(Ëëz›E€žÄÇp8ó}3CRNà³qÔçózþê-sÂÀÏCg¾vÂÌ ¹ŸGÎü‡?Ý0šy,‹³Ô}÷ëï3sîþ&ÅjW”’z¿‹ZÔÇÙ_óŸ_½åƒ”‡Žå~¦jùTT]ãm‹¦­`Z}ï¾ñ÷3ZmÙ§~œ;Ø’wÕŒ¥îÓŒe®Ú˜¹ ±Ä±ÇRÕnëªÛlMG›gí¹;èÜÒøZ¶jõ¶(7'KŒ¥Ô[Vû½(WþÔAm# }Δ¥üØNÝ+/»?çÞºª?à ¨W_ÚC4ôÅÞ-ä¦(KPæUëS/ï¼oÿ—mEv÷¦Ý³8­m‰²È-Êg¼Î˜{ñ²\5û»/d6è§Fµ>™)ÊC×Nl¾%=…/ýÛ“Cj-»º–%îÝî´Í ÌFWö”êiYË«8„È–u#½FŠz¹Æj}M*¾ÇÅ*²`a¸&M´ÒhÓŠº%;#æ + „ + µ—Ð0¾%nKòÚm”UX‚Ìžp×JB÷¡;Ü5&@¾× îxh¾Øì ŠÆ„ÿR60ÑãEwç°X‡š–¥!pY˽Zìh°é1¸vLeæYØ›k¢p;c®UhÀBœqBœ™¸b£h"y8Ê*ÄAx„8ˆ<¬ÔÀ‡ò†úî¶flX°S”ŒœüçT’«Ò3j@…w9î®;‹¾ÎÈ#¢!-T·kh”Ðlú0ßØ®C‚V=ßÖZWì6Ýá°+äŠz \¥í8 2³kd}Õ){Béåäºû§ó7úº’+'Ë™b¿«,ç†U%¡F¬&Ä*Ëë(¨XíòžUXÅÞõIËg±ª=2,jR ‹/­QÌÇFq4àÅ1á‹£=”8ª'YI#ÆulãÙŽ“´‹¨ÅÞ†ÆôÁÜ*FÕM0îUMª£ + 'ð.#­ø%Æ¡1Ž¥,2±SKY2Ô¾UAòPRã<7%¦ÍWÐç|^Ä]U•Š×Ç)—+¹ÝÎÜ/Ûm1¾"뢭‹y§6@XR·ê®»bžÔÕÇωž­Í0:¤ZfÊ'4†Ò‘…º² ÓáPÛ`Hc“PP[ŽC!¥P mÿ…+Cá(ÊG¯l·ž¨7C-㯠‚ŸJ¨:-¡3^°ÃË; µÛ÷È*¹êD~xb¯wL©‚²Ö‰^Ê™¡ ×6rYÅ|U¯h¦*ÏœËTâ3ûÁ =¤œTm:grEmJÔ&ŠÚNû?ŠvKÓê„â¶W + ¥0`b,ò³lP§èÅÄ=yKê + #n¡Cw¬1Žý$»¤0Ö“dhf‚½u]í©eÏ?±³Ãb!·YÈ‘>Oz½JŒ^‹8¬çãçµ$&[7´xS¨ª‚M ‚Îà~†¸Ã£íû)•¥Üˆ¶xRÉŽú‚I€MNáy8Èã?“+R&‚;ȧQ¯’Â1T¥e4c‡wxá? ?I&©¹M;ÎMŸ’]•Mºóþ~Iªªâ&Ý£Çuzr“žØ°’zCÝÉúÀ«Øä™~¦ŸUwé!›÷v}¤hˆ“…<ÖÏ–ddü-Mé ÛŠñÐ÷NŽV¾+ÑH9!%|È¥QeœÄHæ§ZNÙºï»%\ éY»„~Ûø7}Ôò4s—PÔÑ4GÀOÍHŸç¶}œš‘f~lìÀkoæÚ»˜3™zÃYœæšh ¨CÇüÕ‚K&eÃi>Žg~žØžiêñ=9Ž&Îú¿4RôwÎÎýnêêRå„óãü›OY6¬B + endstream + endobj + 113 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F11 59 0 R + >> + endobj + 111 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 113 0 R + >> + endobj + 116 0 obj + << + /Filter[/FlateDecode] + /Length 1725 + >> + stream + xÚÍXM“Û6 ½÷W¨7yf¥ˆ¤>{Ûl’N:i­;=t{ÐÚ´­‰,:’¼Îö× H‰’œÄ¹õ²¤H@x½(Œ"oïéágïõúÕ;î±(,˜·Þy,÷˜‹Ø[¿ùÛ8”§^¶«@VA'þƒ:Ëf‹‹ÂÿP5’fo·U_5ûUÀ˙ϒÕ?ë_^½ch.*Ðt'2/ˆ‹0×ÖY‡b$)·6;0•%þ»UÁ}…Çf1úÐìµaÜZ¯ + áËÏ=£ßd›aƵñ­¬e/ƒÍ¡4î?úÁöqEŠÎ…“,Lr//Y¢5ßhM¸+Oýþ`&›ü[åFãóÄ/{3ÿWÎ}U5+øèÃUqá¿ß‘Þt“ÖªŽFk`8äI K¸m£/Œ›j7ñ$ók@ü¦I„k­Ä y]€¢V¶(¥~£hÜàáÖy<·jCLÐØ¿§5M¹óQ¶Õ†L—í>-qå(˦3¦«º;Ü¢ˆÌ©„™U5]/KS¯BÄ:J[ŠÌñ +  ‰Ïj5œ_Ãõ{Ya3'šúN{ÀDJg<®–˜ + 1ZvÝÜ– ye6)™£QHj’ÃDg°Q_ài²N@6cFŠ8÷/‡Š<ÅOH¸²“´AÑŽ³ùEPjJ‰°qçè,nª[äKžú¯_hw+wå¹îµ;~^ø«-@tJãÄMiiEñ/éó#º*_V¹ð¿mûÓYSÐI¶½öCð‰ *C€‡àùë Gï·[z1ˆ ª>z6Ç/[Ö0ÓWÉÒÑBMÌžõµÚ§²¯€×p毛Œê;Ž…Rs€16ÜæœÊüt–ÍF°ëŠ$éÖ¹SÏŠ01å + qZ”³,dÙ´Dî,Œòsy<ÕòJPX‡¤² ®tóääP«•Ï•:wœ)ºpGp> î[“‰CxTÓdu,Úß&ß}«.ÍØë[`ÿ Xä¹0Ù†“ òü&ä90~<Ê»È y”.ih¦µ 4fÈs@¾¶N tXàÿeÔ³u1G}h¾ãê|$ú¨oÊSÕ—uõï÷Í-¸? Úˆ·€‹9à|\\œOÀ.€‹%àܹËÿ iû©gÙ^Ú + ~ÏÕV~ÏïÙ5þ€Rû}Z)›4;Ú"-•Îõ-¾¹‰°8âN‰…0åÐöŸêjSõôe«m5b‹ÂÓÿ ö¬®¤¹ß]ªžú*yåíîu“]ó—]?ch‹l¼sí'Ž£Ÿ(ߨ&¸â«Þr}Õ)j}M 1ëkª}ÕBô'øñÃÉy% + endstream + endobj + 117 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F3 16 0 R + /F7 47 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + >> + endobj + 115 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 117 0 R + >> + endobj + 120 0 obj + << + /Filter[/FlateDecode] + /Length 1660 + >> + stream + xÚ­XKÛ6¾÷WèH‘"R”(¡§æ‰¶i©‹¢èö@ÛôZXYZHrœí¯ïCêí];Èi¹$çõ}Ù‘½0CïÞ3>zoÖ¯?0†AF½õÞ£©G£ ãÞúÝ?„&+Ÿ¥q*ÈÇßÿ\ùQ‘ÏJTøߧ|SËúiõïú/Aœz>Ï‚Ôçe£êVߋɱҊÈN+ŸÇ”¬y£O²­ŽGYîðš¼cq¢¶­=«Ê¨~ý!8˜%g^hl¨£Ü6xeCÄ–ÙƲË?Î4Á5Ûk_ò™”µhÿÑÏþ«œŸ+°ðe¥wês·Êàf“€ Ï<)â¹ËM€µ*µD Ñ¥œhH8'ïåVo´JF¶²(ôŠ“¶šC®%Ö³ÚòqGîV³XØ{M+kÄ•3¨ºg(2dœ§à| À3 + ~ÖB,\ÖhÖË¿Ò×"‚ÁÈZn[U7(º1TT'C7£‹¡e4‘óY{ß:9 ²@t<r«ÐH{p õµÅ•lÑÞ#Ú‡ðYBZKRœ 9ŠQ™ µNS¸s%®OÍ!/ïݶ² c‚ÇB‡2>ªóûƒ!èM)#oXh ±0‚ÕB~²@¸7rûp–õÎG·íÙ0·T¡ZåoÁÎX ›¬#XÑ„.ÌôPí«ZaºLà3—Îy{@ /5 ÜæšäЛ'¼»S{y*ÚWÎ ,Ñ°@vÚÍ“y,}îÕu*Ìtx¾.=™æ2ˆlá + xÀW~œ0òk^†¹HÄä'£¯2Fdù O¦¸Ca¤ , Db”=€ßÕNuSÕ]Eþ†à@ƒ«û·Ekø:ªBX»ž&B ÄÕe}X•x†Å 6œ¯ø̳Ìø + ¯•Ó””^>ÊÖ” + ½>CÅ´¢ÓlÖ{yE0á¼}¿{ÿºL„CjúZðÂ󿲪OŒßüÝ i͘KXÍž'6.sf{ ³Ï†öþdJ;Èžõ\3}’“T [A›K­¾e²R©r,ØXÉE'f€NêEDÊ®5Á Ð ùk•2b1cƒþ$ë\Y.¤k¶FíJ63bÌ‚™kæÐGLù1´Ì[7k-éI*º\ÍÆT£|æ¥A–˜™‚EAšBYG’¤÷k³qö(禓 Àð{ôhãcÚmÞfF¦¡'‚L…N„ÌFç»÷Ÿ.hÕùP+n8­/j% ³ã=ŸL¾º@2ÚO³@¤ )MíhQÑ%nÛ„ƒéÆnŒ^'G”“ÃʈQr€ZLXt†lr€ÀRrÀŸFÓéf1;4s~9;8´ê4™5­Ê¯MKëûÃù†þÀ](|„ŸbÇcÌôCrj°hñÊ°4’^¦³%/Û@ŒŸ4úš‰4†O'«Hg¾ZxñýŒáJh#íÌ.ˆ²Ï»*'c„yG58ü|}M{|÷y¡J`x‚ñ g©µf> + endobj + 119 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 121 0 R + >> + endobj + 124 0 obj + << + /Filter[/FlateDecode] + /Length 2354 + >> + stream + xÚYKs㸾çWèH¥L,¾“CÊ3»“ÚÔL;¾¤Ö{ )HfL‘*>Æ£¿ýHˆ¤w|ñèFw£_C»@Áî´£Ÿï><üôIíd r¹{8îd¶“¡È£ÝÃÏ¿{Ÿ‹Ë »½†Ê“ÿØûQ{Ûó¹h8zŸ«Fó×/‡j¨šÓÞW¡Ì¤'ÓýÿùéS8³öáD¹ó£\dÄýZ4/Lûè}ô¯{¦p„‰Sç;’,ÐÿöYè2å Ïtvä í…µGþV^ªºæ©Ž„ïªÙ«hn˜„ÞÓø¨â„µ¼bàY`¬2¯EšÔÄZ)+c*”œÔò/V¢GïËT‹‰ì·v(%ÍLðâû(ùŒsé±ÝaáŠâ°!ÒÌìϯѯ†C{{?ΚLyíÈË¢áõ¶©¯Lrhí™UÏ_ÕÑ•¶\ºªíPƒ]à^Fé:/M“"‰dºë¥ T"âÈlànèá¤0qèɨKQ ÞÄ{ÌåH$ rº/û*¢MRD"Ë$ÊûŠW¤<]VÇ+;G{ÿϺ«JÜw'6ûPzÃZ?vg•‰0$Ö‡êT ~Á4{×£ÇdÙL–å"–Fä/~°V;Òªt·¢Îg›|ñåˆéf„+.a d:±ñÿ’͆óúR…®'ÜÀ T'RyÌÆàOŒ4úEÂ]ÆD…8!]wº8\y_Q–ãý{¬‹Áø~ ÐCh¹Šn0Œx†¼ž(-ã9T¥7Ü&­] Dfo†NéÙ‚ÿ4úò|C±5ßîÆynjH3¹™alªoºë‹úÆI0G¼'÷=°m1@ñâ²hZ°iǃWÊ{HVWÞEf‡…žS¹¹¥ãî=@¶ˆTìýzä-æ"ákŠrØÉc[×-øŠêó{Âsz uÁɱ rˆ¸È;·ZP7éñ†´½ UÛ5¥&X|­†gþ*ø§'áH…Á™sòØ3Ͼ:5†ÏðÜö7üÍ·†Ÿ6f…³òîüµ¤î½úQ˜‘aB2™;ÙO±]pÒµKJvb8Ùw8 + Cêù®Ë‘ªæÒwT*ÄXð–߬"Ò8*§¢ÂlÁ50²9>Øv6×Á×—Q¼XAEx­2Ôän¯Uox€Åá"h!¨M÷½aÄ‹³Û5Ï”E¯ïÖe„ÊMb]¿fÓ&Æ´‰ôªóY*(‘äÉ–âìdë8'I:øsÑ%c™Í@õÝaßèŠc ' !ç°m/’ âɥŰÅ5*Ï”í8cPÂ0›HýÖRÇ 0Mrâ¡œ‡êRWÚ¬M:ñk™}ä ‰¢ 3%vˆáƪ<DZÉãùSDæõ-o˜—6ðõáÂqlJ d‘b¸ƒ¯ë3[õÚÎÅ Å yRj5] œqÍCÔšœV²û”ºlÉvðM‡Ñ×öÙòžÖôÕ÷,1hݘ*;¡¾5P´Œ—?\yâ \ܬì팜¸¼´/=aÈÆ#ƒT§2ôBèºÏ¢-ÄcÊÆ-àIð|ÖÃ0ß —ÖŒÞaô°(ðÌÔ§}ÎE7LC@‘9¡È·1²˜ðRëAߢŸ|—‰<¡ª øE„9m&›þò3Ñîu—&"Hw˜{Pó.± Ûq½ûJÝŠ v©ÈSd7ä(9ú>˼ûÛ|‘&_[¾³”°"×L$¬VµR<q†Qd $))nò=ùÓ Ï„/è~-ÿšLÙA28ãLfÍHA„cûË + ?(Kà{‹>RIʼneÇÁsüã*$Áò┕k_˜-ɤ#ZO-.|Ê ý9Íc|—äóç8ý-=î¬uSœÍ¦YŽ÷ôW—¶ï«§Zû3Y?÷Zÿz”ú\õÃM£8õyÌz)VÏò/ºËÐܳæp‚í×V]ýX¯ªéu7lkõ÷÷t¿$PÃmo¼T"6JXü&“1)‘ÍJÄ W²‰«0Û ã´c}àásãoTŒg£À@7¼á¤ÝA?¬¿©`«6$FÝ‚·¯}i)£¹¹Ú0ºÌÀܱkuÈú£ïf­Ãq¶ö×ê\Õ‚oÄ.íê¬:5ÛÜNü·ºW9·k + Ò..ˆ¤Ó—º(±Táˆ#>ØêÝa:˜fÿñÀw0£ñ«àŸŠ@möž‹¡DŽœ‰ýœ,îÜ̱kÏœBL!Nу_èKø»œrn rB’PpLª  MBT`v+œç"³ ïí]­ó-ïuî¨ôAI„öëÚñôl(e¤¬*ðEªÀÒR•Hºª Jrª }`ƒ.bâ(p,J‹ˆÁé̱k6€Ùý„Ä lŒ‚ñ:~pÆÁ‰iÅì,-¤SrÞlâSŸ…^7’àÀãÑëGØÇÞÿuiøíâÈÞ †5>n=ÙXw~‚sý~¸Öz+–T<¿.ø!¶î„vr „a¦í~7Ô<àãg©Ü a˜ét?˜ö# ¡ýh £[¬˜G“œR:~GóCJ³Î#PØíûȹóZ¿æ†„hÞ`#*r#ÊT†¾²I9“ؼ¢ÄÆ5>¹Qç–Iû'ÍÅã%ð̉\Ýÿ“¯®à…Å;6ü·ð6C'µ=CX?a걧rg·ë;wA MAR¼PFòãìn“CB›ŒJÀu¥Ad^3prjs"ÓH#‰)9ÚrlyÇ$ì<`¨Œc›‡g(‡Ò+‘Æ›p3Q†•rˆ°0¡ÚŒ·à¦!Ȥˆc 7Ó5Ü´ÛÀl¹Ã—Çp3©b¶ÆÌÕÊ‘,ތܧ=nЧ"ò¸g¹m ¹?œÙFm„ÓCÉ¥‘Ÿ35¦Y¿„ÎÙo;¿ž0ÓûêãÏDÞÛwAóô·èÅñíÄÔÝâ…°»Þ¾÷áûÎQD¯~Ãb·q È ÿAÙƒ×(•ÒÄñF,c[OT0Ï=âºAOeEã¬L‘(‘ϧô~”OïGžd>¿#‘€øAqí® €æ¡Èh8A,ÓÂJh×&®óÃLnÀ‚“É%–â¢'ˆ4u­ðWËUo‚ûÚ;ÿ ÌxÿM¯LØ+ÕWBýíOj7ä× + endstream + endobj + 125 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F1 10 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + /F11 59 0 R + >> + endobj + 123 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 125 0 R + >> + endobj + 128 0 obj + << + /Filter[/FlateDecode] + /Length 1795 + >> + stream + xÚXK“Û6 ¾÷Wèy&b$QÏ[“m’IÛít²Î©›ii™öª+K.%ïz/ýíèaËI} ‚ >¼Øñ…ï;[Ç~>:ï–o>„Nà‹!ÅEÑPèrcøËÌm6#&µ §à”\ÖûCgŠ™ + ¬1z¿Òàü0Î8ô#̦¢1ä«Æ¨ŽÕQ5*»*ë5DGK¿C,O‹8r•)Õª¢Pð‚$q4 Õ¶å¶Þ Ðn›æP¯GýÝLJHΪ1ݘ:Ûïç Ýý–£ÆØr°©aqV(|?Èh*G°KQA;¼\3ìb 've­ªW-ñ®(Þ«Š¶ïÝö°Â(tÿÖ_D5+¸\\ZÝuüHtü¹Q¢L„’]¹‚k¼¶{©ô%;„qïñÅÛ ¤N:-SëÆ;ì÷ÚªÕÞ¤:”·ÞØ·žzM1~ë­^õÖ#©ÙôÝÎDðµÇÙ¥±HCÞdBˆ Ns$C‘Y>a½ðûš‹î†2=ò´J]Ê´Ûqv#´½ÚeK«%>/ЛÖ&¨²Ÿ»æPŸ©2Ä + Qmù‚ Š\@Švøm_j>O #¡Ôœ …\4º¥ªØج#ãö\)­BÚ„kž£½Ñ›òè¡{÷Ò©ÜÉDžà¡4¢GP + =X5ß/-áÙÉ¥A[gBfή녡rîl;øN*òÔZ—O@a Úüþîæ²Ì$Á®o"“½ÌQCd2D‚`•3èÒÖÝÅ¥8ƒºˆBFÃß‚Q6PS< + B·ÖÇŽV§AF\'˜XxIš»Ët>žè¿›ÆÐbö–µ$ç¹ìšߣèC.ÂÝGìãôË"‹\1p—¤ÃÐBþuîÏÈGçûBæ—@lø`)™E"IÑú2I<.xt8’}XÍ|:òXçNÄá‚S!ˆIjø §B] Щ e3¯|"íóü÷Üsè%=Wþ¬oŒ©uz4㬰ÉðÈÞzóKƒTýþ… ¡Øæéä%ƒb0éÿ¤ûŸÀÅáš'îS]Ý¿®ª"PxÙVï¾éÕ ÝƒÌ;d^q1é¯M¯V܉ÂIëŠ×Ùhx4:oœËðÙ0×øBÖH õÃwœiõV£ó ‡Û©µ¦-ë®Üe“ )¤ ¶å@7¹¡Ç_Ô?S¦$r쨦eðŽù££Î„‰Èzo÷ÅßVrføìN + Š®›ÃöÛœr§9;öþVwä“•²ˆÏ"²渫€¡±ݯ©ò]Y­q\Ø«¾ËBwü{͘ñ»µ—hر:(‹#ö„l}Òª_˜:Ÿ¶ûZ_£3ô>0™Ç13~¼j¨´FŒsÖ"ñ]‚¤†(´îqyzĨ %u°©ˆÙîvÚ”ÓÍö°šE¤Øè‚o OrUÒ0•$3 `5p‚–³n¯î`ÅúµWO—úXØ<ñöªóÀÝg6†“ãUÆ´S †Œø ”Qxf6ÚÄ'‹v6¼l¥>d¢¥ÉÓFÏ¡µ•f”Kp‰d ßÖº5âl˜Þ2ÌéÎŒ³çû&’Ém«šÌÜ[WüÿɠιõO_¼4.µ±Ý³Ã Jðÿ·R} áµ0£¯¾^5Ò ¾Y3‚$Ô5L¥kh + .©œ9pd¯5ãÿ–= %eh¸ &¹+© ·¼mGÔ4ä@Fʼ/= ý·„ºÖ[Õ•ý.hÕZåI±&²²ô0927t²O% òèÐS½ZÁíÈÿÜ@4? + endstream + endobj + 129 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F3 16 0 R + /F11 59 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + >> + endobj + 127 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 129 0 R + >> + endobj + 132 0 obj + << + /Filter[/FlateDecode] + /Length 2231 + >> + stream + xÚåY[ë¶~ï¯Ї#+F¤(‘ê[»=)R4@Ð,‡n€£•éµrlÉÕe7þ÷áºX^×òÔ>‰"GÃáÌ77*ˆY¯}ü-øËÓ7ߊ€Ç,çÁÓ.à:à Ëeðô×…ûâÔ›v%‰ùŸ6‘”iøØE½ÅÉ$üGU}ÞV}U¿n"‘pÍCžo~~úû7ß&ëväA$s¦-÷r_´E ü£Îm¹^Šòë{Ñ:ÖÏá÷Ñcôóó†ÍdLKó 99Éùg,ça¹Yè™ÒTÕáS„­)¶4²¢ãà¢ê°©êPa?'OÂcƒ“o 0[Zêú¬ß÷}kÞªfp_À*|Q–CÛšºt$ÍŽû}Ñã)‚˜¤Néü¸‡—¡r< ž½6¯E_½áy i¿l/(XÙïMG»¦uKÃKgþ=˜¿îi±±g¥ëØÚ8^©9ãŠWÕiû¨s›ºŸlòÇÛ¡³ýTõûfÀ¯ò8,ðÁC+ÿp4mUºùö^IÎ8,I»Hü¶IÓ°8 †HQ“8ë—¢ ‘3%@·V©$nôb^Á²—r*Í”#¤ Úªx9¸=Ðø¸GUGÖXQk&ÅüX¨D"UXôô$‘aðb!€ûÖÖpÎÊ-õDD&ð–”YxBãë,ünç8Óc©/ õ5~lEÒn8•Ù>ÌQF¾Ñï-¨ãت†Ðó@×¹‘Ò£o^_|=Õ ’›´ ù³Ž/*bAôbÑ6)çšKNxîµOlZÖE\‹žöÄW˜óI˜ö—°àB±Xß ɤt”$À|£ˆ0o5Óä¨qûÚ}û^ufúÚBHÄœ¥âC¯G &yèEšIŸe,Ïï>g _´¨]‡[s0©Ròp×6Gš&íË+&’äc¸69hª  YÓy¸Ì˜Hæø2ÂCYtæ†N ÙÙÚˆT—ôJs"7·έîÜ»€ïÓ—ûÂ;±ÁhÔåùD~·½ÔÂ×pjéq[{ZH8àœc8¬jÏbô×I„wœ*0ž}м–«Þã¨^Ø›^ŽÅÖááT´Ž²ñ¨q~Áù<d,ÎœgT5Ræ¥Í´§y©:Ø`,eø´÷x-çOåàJÙ˜B>¤æŸHoÍ®ýT + !XÊç¹ÖÂòÍe£;a™®` ‰ž`IžÎq¢3}O¹ßæÙ¯#J*}b:’Aðs4s®3tâ¦X†ü¡Sþ¿¢s4EÙ6¿5b&YNÐL”«å” q8˜@„ocpĪdKëðJw'R-ñ9 + §\À]ð(R€u³ç5( B «MÕÂÂC_Ö­0qPíJGøbŽÐÜ'A˜ªùH;G(NמňP¥óJÔ%Z…&´Â('„“ + W’Ò‹C(ŒBadmÏ«Uœ%ê„ò5BP”fD(Šè&¯ ÔÊkJ¥ìÝè Pcv•ç ¢‹ õ¤Ñ±ÙÜÇÈÜÞŸö¾È¸RœIÉÒÄ÷ÕŠOY<¯ÝF÷‚ߢ/d¹¢ÎD + –,ôùV]U&vè¿ü®êüøj} + q¡QyU£®¦”wiªéTßgÚ›ê?’,‘¤NhP!ÔC?É4]}@S¡&‹Ð—â†öù=†5ÌÖûK¼›ò í[Ùœžæ.)góxŠÓ‡ê¥-Ú3-mIL›ÏaͶY8¿/¦ \Ò¨3\Ø ¶¢Z( hêJ¯%¤fù-µI”÷BmÈt,–0HÁ®ÈY6m‹Êõ!:ùE[eêfxE»ªÄelöç_!²VÇ“íõai²riZùp «®ñI3L´nnTêêì + ç7!“z=Ò5ÑÖñtÄ\ùÉj»" èè–Ê”W›+”÷!„A²d®†ñ~Dͯô˜ò˜=5]õëÚ½8²! + Ç ä ]¡«h©³ü¦Lb@Î|Tø}šCBn·¶ä9馾Æm†×<ûÞŠŽz8Ó’ÓBO¦rýݵP§²ÿ$¼0â®ìÄY,oBt + ¥#:à$£g#FÁÃÁvùÜ9’ø oyêy-¥R”zf 1עúoÏ‹¬(yFWð¼Lj#–pñÝFXU×´'Ùí¨6^6\°-–B¤ËLà4óñ¾iÎnGöH"ܲy®Ù>oÆjוֳp9Õ°cé»ÞÒãÝye<¸C;W1]udI ê”3‚¹¨þr• õ,¥èáÅŒ¯êjìÑङôR®bwÞXp¸ÍZWÒ¼â>ÉéP”Æ\5Í}¡+ˆµŸ\9¸H±»ˆ¡;?wF»)TÉ@¶w2x²¼„Á9…å¤]û²¾×ÒLz›¬Ï Þâáò mòýК®Cg´´y‰&³¤ K!02ÍÞŠùùÉN¼ƒ3k–©#8S*8MXÃFzûâÏ'ÒöÜ¢"·!¡5´4‚­S’y”sΈþÂ’ƒ^¥Z\ ›_ÑÅ¿lܸÇ8Œ@êýÅ¢OkðgKåMðËY4S£m¹´m¹¦6Ñe•O„Ôîd.Ó|ƒú°oZ×]¢üÝì¤-X¼Hªk'HA~½ bßÿoWÿfÆ_9^:-Âh½%O2lˉï/×6õÙëÓÃå® EOè8û=s˜þÃ85x + endstream + endobj + 133 0 obj + << + /F2 13 0 R + /F3 16 0 R + /F11 59 0 R + /F1 10 0 R + /F7 47 0 R + /F8 50 0 R + /F9 53 0 R + /F10 56 0 R + >> + endobj + 131 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 133 0 R + >> + endobj + 136 0 obj + << + /Filter[/FlateDecode] + /Length 92 + >> + stream + xÚS0Ð30PHWSî + N!únF + †z–† + !i + † + †Æz–& + !.ÑFšºF¦æî~¡šºÆÆÆA©‰)9™y©žOfRQbQ¥flˆ—‚kkÄ + endstream + endobj + 137 0 obj + << + /F2 13 0 R + >> + endobj + 135 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 137 0 R + >> + endobj + 140 0 obj + << + /Filter[/FlateDecode] + /Length 2561 + >> + stream + xÚYKs㸾çW¨æªÊâ$øJNözfË©¯+öîÖV”MB2©ð1ÿûô $ei«rF 4úñ5´ + ü X½¬èóóêæéãçp¥?W«§ÝJe+ù¹^=ÝþË»>×›0õLSÙëMEÞõßøûS{\‡‰÷f›$„ÞÓÞö<ôµhph,j˜){¡Zÿûé?«•Jýäl@¼Zmtîg³¨HM¢ÒØ»FÙ1IŠ')ÕN ¡$BIn}íG×—å?y}_­7qz?ßÿÊ“?¯óÈëŒáEo[_ŽCkÅ`ۆǾØÒ4½aK]Áîãhµ ?ÌIÊoë,òL×óTЊòÃ+liï¾]ƒ&¿¯ÃÌ3ü}fÕv<AˆV~ªá›úïtyo}Ùã"1ÆÚc8gSÉÛÓóö6‘D¨há؆Ipá ~ «ì!¸‚uE»¡|^g¡h zínÀ»}ÅýYð´cS‘ή˜x×”>(‰ý4…óD¾âóÄ9Êiëp¬ ÷ê¢4WÜ~í ä( + D‡7m?ˆ03°$I½ TJÁêA*¿>^“à`y3ŸXóÝ*°mdçÎdÑÌqô`‡ÁTLZZ¢öSïgMÅäÊöCgŸG·ËïkºÍgÐÁ)0ÑšÞme>~»“ÇÔb`Ô©ZÚ ["Þ¶ DɺHÝÍËä{và=¹õšVX‹ºn§û2•\HúY¶4°ÀUƹ÷ðÏO×_o¾|"6û r%~Ì*|ÚÃuzDZc…µ½PðH:ÈäHHq>CdGD•bÿP|#ma/ñ + G¤ã‚3Ãu{ƒù1<³þýF‰×v"uØ›Ž'ïƦDã؃CxMgŠ{³kÔLp®e‰ jvLù:×Ø¡ ¼÷Pùq( ¶áu‡=]£òzw£J.< EªöTkg_Ê+ú~ì„Óˆ½á}‰•NkžÙ†qbà ßñR‘ænU ADo>4‰Ñ'f =6cƒkŸ2 Y28y¯vØ3*‡Ò’ñÀ¬ìNBór®±|7ÈX¶‡ƒéJ Æ(Ò[iÚfs~M'ü!À8cø<š²…ÓY¦¢ \9'JóÙâ¢,ðŽéMÇÚ”ñIÍœ:RŒp!²Bpæø\Ûž7À©Ã$ÇSs$ã%¦hd¡a_ Ü‚ƒ­ãÚdó™g˜™®(Ûq‚èfiÞ%ï~wv + 6=ª;%›8ô¦f¿ê™Æ±‡l%ä-Åž1£Ð닃k¡RÐ\!–Þ Lk†çöÑó2W94°Ä4¦Ãè…´Áò|Ï¢vI ιŒ®A²Ï¤òKYÆôö¥q¹Ží&Ë1ÔSªO§TÁ~§üQ(‚|4æ,$„S² õÂO¡CʄᶫÈã€DÞ¤qâøË›„‘9SôL‘iû¡ÛþŒT®˜Aî´,FÆs§úåéPââô)(¯H‹©,‰&Ö ùš¼ ‚|„”ÛN¸]ûÒîôMëŠ%‚ Ç]l-zu`%R¹­8H¨XÌ + b’*qÙ¡ç{·„áý=ór(a`££Ü»¡¨O"¬¬5ß#t‘ã4j XŠ.…µçº¾ 7Š—'þ;RÁ6S‹†³[B®±â–˜0À‰fŠeŒ!¨Á‘EØűμ]U›¾çaNÓ ‘ñKï?i™r(Êò æì,¯{ãÒ˜«æ°édJ(’p‹^¾ü9v–­†Ç…¶þÛo¨~H?¿#–üÜJ.Ë…@k¾Y·´G—scÒÏùÆç8Š!äuߺøpŠñââ‹m/Œ¥”GQÄÙ<ÂZjù©)%TlΤ˜yýððåî§ë›»/wOð¢×÷·¼Èí§Ïw÷wOw¿Ü?þ + %4e ˆ âx¬mS‡p&)è(eÓ’²û„"É¡Hh:u`^N88/©}<G,þ„<ŸÙùmÓ3cq®nðØ3 CÖ0ôý8ÅÀ– gÇUê‚0Ì{%üœ〡·Û¯K O9È¿Qº g¨HÉøFSWûË™Q2YP86gCC°>yöÁŽO˜dÒ—WÎÞåMV¢I4§ öÆá&äzÝÜÕ“H¤w•ŠÛËW‰­° Œ‚ÖÅbˆFÀZ?2?;D¨¾wFÙ¼û Ð¥h$gª.š—±x¹„ñ3Cóv¥ë eÏÜ#çȸ|#mºUB9ŠÙð›(’Èb3â]¹‰ƒ(Hídgš±ã/Ût¦/ÜÏÙ¥£2@66Ͳ{ËGTDVr9Ÿ‰ŸÔ¬â½=òmaÉ2Õز4 + ‰ + òž™ÞÍŠþ¯·îŠÞ–.˜ù_{æX¼ÆBÙU3ñùáü­<6 ¦ + l:¬õ~»æ.="`ã€éh2œ§a˜ô{á݃‹ Õ&oIÃXÀ{ªé¨nB%ø~Äi ¨ôÄwr­NÎa5…²r Y‰«^‚/9N^Êpã–q§¨+!Ì¡9äã0‹†tPtSŠ ¯!òl—NÏvX“çR¤“ΠØ)qáy`é%Ü+¦IŒÂ8ã"©æ (Û0•á°,„øt;*§”|¦ôwÖšçî¢ ˜áv + þLŽ–ó‘ hh;[Ò?´DÓ¸Ý㸼¤‘åÔÔh±î=³35Üô§§¿üSá¼ + endstream + endobj + 141 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F4 25 0 R + /F11 59 0 R + >> + endobj + 139 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 141 0 R + >> + endobj + 144 0 obj + << + /Filter[/FlateDecode] + /Length 3028 + >> + stream + xÚ•Ùrä¶ñ=_1¥—PU—÷‘·uv×vÊå¸b¥â$Ê4„få‚´Vùúô’3¤Ö•'F£Ñ蛇À‚Ãé@Ÿoß<¼ûÂÀ/ÃÃÃó!,aì—ÉááÃ?½(º½Š´È½oüëí}ÇÞ_´ªjÓjžý`ž5¼ÞþëáO‡(ôÓòpŸ”~A›5Žz°w·÷I{Ý;ŠÒëžù[듪eíØ5ŽfôgSw¶ƒÏq†é‘f°» fj=òçuµemY€u-ƒ8l¨L{"FƒÃ=\1ä+ŽgÝø38#)øᬑLà=>~ßÞF™÷ëmšyj0 + f…7òâÏúˆ‡Øœ†°¬ypÔèLË@êÚ + ¥ä¦´‡g/çÎʦьµ¶”¯ÒÖœZ5ê + Ä•‘§ìöO°”{ïG8£…!Š¿x‰/‘^^¢\‚â ðˆm""$Ú„«P<² + ¾Z¦±Àe[è}èèŽS£él9ÍXÆt­•ÕÕú6)Ýfj+Ï oOnq”€¢ukµº'Þ÷Ï Uü±|ÞSñ¹Z6÷ ŒÒ|dñHûYr?0î±[³PíäÄÕc + %A0BÛØ혇¤ôT]w(‹:«bàØñ÷‰ùæÉòî0O|v‚ï*#JDJ:‹H;¢GpÃO†X숫)þ«‡ŽÏšuåBá7ZçôObz“(D`°§Y¹~Ä"ÙàÀT‚fž_S‡2ÙgŠv®,ŠÏoçÑ ¼(7h»V¿eîI‚¹ÿq¥ n ð?_F´sœµ$ˆ;lj=wÃÈÃ^Y«NxEœ¡îàw2"sÁÑLª6–< Kzm~ƒ‡Žårœ3g›÷˜¹Ä›²ÃòÔûFqûçe{NCØÑ–;òólûyâÞ0]lŸ€dã0BÛÏØöóxŸ·í==`’íÃòlû´‹í}c4lûQ¯mˆ¾gà'dDSlDCîn8‹ÝÇ%ñ—802°éìÈ”/¸£*Nƒ:V¼ m+Øß:|sÇ™‘8fF0¦2#8ŠR^™9¹Ð\¢ðžÜã#8¨Öö R,•\CKïݯâ/ûÀr×LqW£Zb(ÞÑà}3ï Áÿ~€,@=Õúê¸ùkî ûA[Í>fÏË“Ûx€ÄÁw=wCC€±ÄDZæúhÐ!•8d‰#ˆ¡hja RÇËrÍÈ;éVœ>„^?=ÕæH¬æ¢¿ˆãhÚÉŒ )`mËþ 5–nœär + 8ÑjÏóæžeNg‚9rÿÔ¯¼übÆ3ï'.Í‘'ì/AWfìË`Ê}àûHœÑÐ4ìm’©û­sè9бÑe!çðíÍ]ÛÇ[œËñ´„žÍùíÀë‡î4¨ÆÊþ¡Â‚ªÔü¤2´]£yõü{ýÊPµä"îͼ"°8‹s”(dSŒÃÒ½Œèíà»z;˜±„p¹í'Â,X5p/‹—±$Yå¹Û4ïVÓØ= îD;«2†Â7 £—(“9åÒ£s@e,YY"SF”®8—% çCÎéËžÎ)3 + É;|±y<®Q•vĘ‚jyÞaŒ|1`nûáäÒ¡`pŠ(‘B.“0žÍáb¶nÔðyêѾbD¸®žÀƒbâ%fä)î…±K…0ãT ÀÇ Uéì {<Ïi•H6\#`¦Y{ì¦,„3P;#ÿ™.²Ò†í¶ºp3¸ð4‹1ôÐé‘Ž¬óXÎ_ÊÐÛqÀ±Jï½dÔd¥[Þg×—g¬Åy.# v¨ + æ3#LdÒ8bm…j¿<¼íÈ™ÔhÈÿP5Ý4û'˜wB  ˜N!F¿gÈ*xž˜ÀßNsáÅ)](OÎÑ( 8P®ÕÄ9Ä·ÇÇ?÷ + ^äfß>~QMOeQZ°Öàw1•´XY.‘R‚¯%‡ p%ãšöXO•æI_£ÇÞ}Ê—‚8N"àˆ,Ú ¼$Ü‘VUsúq,hèÍ»‰fUŒ++)-.OòÓ>w\Ùˆµ'q&×"ÄÐûA=Áée‡ûÈÙL?8óƒì0Ã~y“ÖõåŠØÜõì©©· ü$ŽƒûÃdYþ²³=Jý°õ‰ãe§è‘+Ãõ«ˆ*Žü4[» µ¤ü'®ÏO¿tçWcµ=?ð·~DZ’cG–f•\u¥ÊG¢9,T¹í]³ÄÏR!v÷n›ùE±>­ô~¢ÔÍŽ?ÓS4O÷䯚;ýé«ç-e»&U†\<¦sr…[äk=#85Š|h±çáÀÒs¨fK¢@³Ä¸Åz™{0ZŸ.¡èÊf´µÐ/Bw/ë—ݦÒÏ—÷ÙHÅ/œP¾Ü‚Ýwæà̳­60óóp-—÷;lä¾ã„’•¥ÇisÕbñ¸9Q¡ú¸z!©ò|t¯0×ø¸Žñ„Á¤“8À,‡ãd!­³ bï¢ßÃ.þ% ñR¶ÌËœ‘jk;lÆm´:-ý0û-|Ý$¿áœî’sÆHÿr6T·² ã€TÛ¢<¡Ûƒºá)•¨(˜bN~2ª'á6ÁŽ‹³£L,Oý³ìâ'ÃÄg9¤'G)Öhuý,¨}=Inf'§ºqŽØõôvË–^ + ³ æ~é>¶ZWÄv:;†»º¢F,uÈÍ H ҷĬR~Îæ¨ i„´tJx2@’k×åàô^Jj5Hòu½ÖÜTä‚ù-Þ„ŠŒ€{/œ^‡Îß|¶œu»öñª´ ÅÜ3”âP•¼ÎÏé¥+ƒ=‡v•x_q17Â%gÒÔ¥)…ÁµEa6åëo@6Âb3W¨eñ Ì-º¶ êVÉÂRàcB³HUQƒx”U¯é‹é|þ½e“ {‘ý4ç rì[í¢“i[ALäد¢ý«Ú%R"‰þ^3)JWíô ð£´eGÎ×á—¿ÿã†GNŠ|ZÕ84(=¦–úâ‘#ròŒv{„vͪWØ(ª ª;]$Ñn”T±µ´åA¤\É)w»sêv‹©Ì(¬ÿ@‚sâÐ:›½´n6$V’À5D‘†k8c[ß6Zªº¹%ZCa;‰eEP yßIÏZˆ %ª–Üȹ ‰­ØË™lpˆø v‚†%î½Î…¶ÜñŽ›Î¢¶FÃ.¬¥xϽϖ7‚fœt#U–½A•ÆFÁãÐhÎ5˜>U)´ãFVäa€ü±c7¼ÞøØFÂBÊ$r`9,ÿ„ÅA¼ÅN+u&+<ò7<&íËʵïÎrRYX\ô0^ø€_ɱM<™Ógü9€ù˜==Ζþ)¡*’1d˜ù5¢‰TÛ;,Q5}evűk|p ͨK“¦J‚ „xµÈ] Û®\]-—ÿ7¸<Œ5o%çu_i÷cSK„Y¹Ž—¤ô!öΟŽ´Ê"rPˆÂ·Å‘ÜVºfOT䇒NqÃLù¿·e:•ðÎUx(•Âò‚ ²?옼 ÄôŸW‚ž jFã:epÿ´Rv 8L¶’,˜Tr)IÜ5k®Î Kü_•ÐÈì;S1” 'sëþ÷îôŽÁ20)—u^EL4Õxê:Uóï'¤ûñáwÿøì’ + endstream + endobj + 145 0 obj + << + /F2 13 0 R + /F7 47 0 R + >> + endobj + 143 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 145 0 R + >> + endobj + 148 0 obj + << + /Filter[/FlateDecode] + /Length 2677 + >> + stream + xÚ}×rãÈñÝ_Á7ƒU" Ì€÷¶áö,—w×AÞª-Ë#`(‡ÀC8­þÞ€\¥&uOçîiîü£ïïžwôùe÷þáOŸÔ.ði°{8ï‚dècî>þÛ{w½î*öl?ö­µ÷î'þ~h®{y¯EýŒ Ê{¸o}65n ¦`„©§ôþ?ÙðŽC˜®ŽûCtJ½o?ÿãý»}(î?3®_ÿöýþË/œŽQ²;ññ¤ìû>Ñ^3ìa{•Ù}¯<ɦqfêœyÑõmñ4ôç‰×_dð±/*[#`Ïç‹Ú! qy•Í‹¡ºƒ‰N=[Ž–‘dMUÙ6+LY¾òJÓá>­Á‰ˆ®›zqX@\iê]Û¯ù½È-ÒE@ŸAJ" ˆdŠ£¿™­; 0'ߢ‰ã¶x¾ì•ž1ÔMç;:ˆ €•Œm‹L%¤ÊëX´¬à4bpGˆá‰¹^ËÂÊNßÈ÷"»"F\¦•ýÖ"ÿx$2.¢uYòØ,ˆÐg½®g™)@ýŠ× yàÄä9j¼05¬8\Ê°ê¾hꎷ^E×°½ÿŽ*áƒ>1¥ˆ©™FØæì–ŠŽWD&G4`²QÜm” :‡¥üÙáz›áÙK]dè=¼£²¦Zp°€#ßkžÀ¦‡¬çU°8Z–HÈmSòë­59krvü<´,\t¦$§|âq†#-¬e?IÍ &DXwÁ PÙì‡Ä2ì:µãæ£8E´X%Ã9ÍJH£ƒUÕÔ˜^pv1"9ö2¼|}ß$ܶ{Üó*áFÜD{ + 7ráÚYàq*_˜4G€© + ãàÖš×ß¿#Fuâ’Ü‘®ïøcÇ'Ê1¡ÀdÌAÑÚ߆¢µ6þaÎ"þ°†°?z4QD3ƒÍŠø ƒ™­³’‚¹&AÓ ž¼S¢Iö“´ÛŽ¡Y3´kÚö¯•+³Òš…›,À[ÚçâiLúx3Û–.¤P¥·ÜáÒÈ`‘Ž¼Oˆ®•€@€d  €§BíjX8;`ž.lS­S!½7O}ã5Þ“à=oXYzO‚‡g‹+\Z½‡ »Ê¿1b†˜…I˜I˜DL£Üå'w:õ³[œee²ÄÕ1ÌHªx´m׶GÑœ ÇÙ‹6‡SB),«,âÈ«Ënm6š3DŽuYš˜æy Z/-úRп$+Ø6n÷…xjs±â¥|¡W + 7ãúUë+Òª¨íH¹–ZZkÐ|ÑH)‹ŸÌŠ%¨gùƒr‚ ‡䀶 ºF“ЗIÓÉZß:–L– :J'iûânIG©¤àÏc ÐñVYTEÏUf,µjìjÕ[ÐÅv§Ê†ñÇã + À½2 ©­u/œñ¨-’.ä¾¹ð\gK^‹…rÍÕ9¨‰9¨–ÙP`µ2µó ˜¹UGç]S  S5UèõMýn²žÞÓ\‡/#µŽ\®qOŒ5îNZ[6Úë¹à‘DÐpådòÿšlæþÊ»šgû–~UÍß\ѬB£oyq^Gãú׫ùm°¼7ÖAâ$Ê9%nn< qy£Ò&£EX.K¹!z®QY²²ßIûþ"Ãl´Cò‚¬r%z*Îd”|\ö,Ÿ¦|Øšº»‚±Öò*Ç©=3#pIÄ‚‘¬|D„´R܈( ÉŽEÎ:9q¡ÍCŠðu[r Œf·§ + Ü™‘;Æ-Và ¶=Ô¶—W^ˆI*ŒR$¯0€´WÉ—B®Úö%.ølkÛR¯;Ë+CÇj¤ÄÎx|A/Âóø&ìdL!¾9?˜ê²19±¸ÄäTç¦ÍooMˆ±•¡@Jì%B7%:d!-T×ÒRoI½¡|ܘõ¦çe–b,¾‰ÿ•ßaˆEšµKH…ÈéÅÆ ²q¬BôÆ·ß昆NpɵMßs\Qƒrïnò œõã gSìb,×vȧ¦Ð"íµ¬/[ó±ññ„GăŸ‹zó]ǃ¬+„ÂŒ_g·!U’BBåKû.õ ¤‘‚¯ßÓ£Rzn!wtð<:†Ö2˜tÝ‚ÔuÝ‚ô mRÓï:öð¬e9ï’ce¸~ÁÞ‹g¾mÁvé5A§dÁ=—1ö–bο`{_ + :‡¸“!¤$¡6–‹Î½moî*G (ìÿ³ Ù ýÐãbcŠ!¡¯ç²ˆG€i¡< û€“ðÛ_Zî› ˆÜÑò ’ +®ã¹imoŠR´´qv¸ÌF²¶\q†ãܦÛZâÀVN£Ò;ñ¨ÙóÔbZ¿ãÖ%0ÏÔÉs'°¨¡þø:œ?0âdìÍ™L.šžCiZ¹Ž+ötÚÝê 4EH»õŒo:óã<@¹MND)' ÅIœ¦n¬ow°`ƒè + © ¤©`ñ¹à†)ΨGUÉ-#u8½ê=‚Që;¦Ö7o8­|Ir—Ödqø®Ü5vŽ¢Ç7ú¨s"y®ó•(ßê…Òúüõãý§ûòãÄ×/ÿÜîMm4Ð×ÔF‹ÓYÔÇ7¸`°¨†å„ŸÏÒ /°6´rö=¯…-%‚§9n[.»Ýx4ñßèžÆW­‚p"]ÃŽgŠ?L: -óÍ&ÞÉŸë4ç£ÒǂѬ¯‡^ƒñÊ2V&Po‰—"Pkï³YÑÙ­– ü`zúõD«À“û%«kqqq-š;n–¥øÐ ºmJ±—¤ÓÖV^ç6Ø÷{ "^Yþ2ÿé8tm¥ê\ÂÍDù}t@bH¸Á,~£þc/·Œ±h»ýwù¡×tÅ?>iÓ¬jŒõf›±è±cB"¾éôwÜy"¥^ôÂád>Eîκ!ˆªcH×ë|Í+,ÎTùQ÷óÃþ$çÎ + endstream + endobj + 149 0 obj + << + /F2 13 0 R + >> + endobj + 147 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 149 0 R + >> + endobj + 152 0 obj + << + /Filter[/FlateDecode] + /Length 2482 + >> + stream + xÚ…YK“㶾çW¨öªj$óý8®=³ëqÖŽ+;v*倡²)ÔŽçߧ_ A‰[¹ŒÀF£ÑhtÝY…Û0\½¬èçãêû§ï>Ä«(ÜVÑêé°ŠÊU”l«tõtÿï N×›¸ÌÊ"øøËoëM’$Á?´ªÓjþúdž{Õ¿­ÿóôÓ*N·E¹Ú¤Õ¶¤Åï·ëMžUÁo™a`ZþŽD(ƒ'342÷ë:.õ"»@µ5»ù¢*ØwÈúu—îíó40žT-N¾íÖ¼XñÏ0íS;˜v?ðסïNN¼dÃô!+*·éj6‰Ø&÷Ú$Ø_Nš6P…¢‹Ø -"ÑÑÙaHRá÷Ü믦»Xþ‚Säx + ÓµD áä¯G³G¹G&ØcwijÜ£Œø˜$X÷"ø•Ehæ–ó¯Ë$¸#íCV=#ÕŸIsdM“ KhT9Mùf€ÆFÂ0ÙÁ½Õêý`è`†â³ÞØc·†‹O‹4øªÑ]˜ÿ¤X3ú¸X}%Ū“#ÉeQÙÛ3(v<ÏŽðåÙ 1*qòP»7/¦U¬¾<ÃñÁˆüIg&qXx“àÅ0ɲü3[²?‹<[ÒsÛ*ƒŸl›G¤ì÷yabуäeN±lŒº¸cVe™¬.àGìéðյ㉘pêzYìMÜŒŒ–™^[f^óì48Àòy9ÈduÖáhhQNÃ_:NìµÙÅY±W{4ΠoÍXöYÑ‘øûºŒÅàpи‚Ëè^ô@W„ó¯f8â 40¥ÑÊÊñõøþÂáJšæ±lŸ£ç@ü›3ºÒåd Ö­,q»ÂÕŸnj + ¼¡W—,Û+'¯Óm}9ñ—T ¯™"‹½éþ>Êý‘“cäÄiÉJe¡dW—€î˜E‡ á+ñZBÖ´âÓé‘ øë:w€HhåΑå3—*–©$à œ|ýàW'è4£…žZþì<ûË`7QýW©&wKœCNœùÿsÿ— u(¯p¾ y|ŒI<@§àÒm<Ûèqñ¢gý$‹½‚>8ñ!²×Ì·ÛIyøc++®Ñ2‹8âjÊÂ&5=Äb-‚b— ÙÓ šÝ6J·Q>s]È>§%•ø+¥@ºŒJÍO±Ÿ0îiÕ ¨´kyýTY«d?…’ŒÂr}›ŒÂY2º-B”«ïG€ª®¦Qõiª}]1Hµt<FÖ^8Œm›geúƒ«øøÖ`³éÖüš?](ä7·ˆá÷:8`¯9æpA + 86]M‰T Ž÷P%\‰È=T~iD_d~X᛿”ΩŒÄè6Øš4M•Ïì Ÿü²wVÅho yÅw‘þ-󰳇WëOÕÚî{ó̇®\FªJ\äö=„.´7hD榽jbæM•ãëv•l[&~°ÿ´\Ïd.Ç„¶z `G8ìú/<Ûˆ©* [zª,Ÿ÷˜0ÍÌ ‹¹Ïϧ-noŒø¸.ÉÆ4ËÒ÷{.hQ@Ç §šÂ 6BŽƒ^µö¬zÝŽÅOäãc*”:—Lãå>ÅSDí/tžWÃ}ê¸6bkå¾µÒpn-Ë2f¡N™y¡°'¡Å¢}ÒÜÕm¥ïiá÷¦– >Z%Äghj¦cƒºI¡Qz:j+{zýxA)ž=wk ø«y‚Ab*¨gúûˆ#á^q†ÝLmG\xÝ?òu'j`¤ð'»uA\23*ó‘AÆu)¿}Œ ¤¾ptꬊ©×¯`íVÅcþ€áËc9°"¨ˆ\tàn»rxTÅ‹·WQ + ÔÍáÒR'B)†üÅÞ»D5‡¾J2»pß䔫'Š˜½€Zûƒî]KØyLþÿž/  + šu!ôø@9T—NOLPJUSÎÁ™y¥€Ó»Ý{zËú9 + 6|…‰î3!Ví;^æïv÷PëK½»ã+ŸWœµm(àíÊ·YŸG•b%a‹Ñ“žä©Éç¹ô*äbua%Ïr×?›¾<d·{ù%”qĺ„àJ{4Ï‘¿u1°ö;ä–ËÀo8€N´|Ù’ÂÑÖß1w + ©i4åB ›pa¼‡«pV$~Z.ñù…úàÒ•C0xl¹œD÷ËqdžÊqdäLî­\â4ŒfånÉ „¬3½ ¡6çZ\ú³p֟Ѫ*Wá=ÆâÑâQ7ž¡í¡á‰ é1‘g8r]¾¶|ØfJ:@W½0@™Ïƒ=¾­Õrø†4%3Øér`Ou\’Œ*Ó5Åá6ŽùšbbýY®é^7z§’1>“$÷e×5!Lïvm %Øøöcß!zgiðù⼕ž YÀLÚ”@’\ÎœÞs‚Ùƒz¾ §üxΫò&YzäIýªé¦sb#üâŒÐIyOºÀ ×î-9bØÊIÝ°‚ÎŽþ ðÂ|Ó±°ð)ÓA¢ðÚrQ¸d9ž ñä€ì­Ì^”’Bàú¿ + NS0?uÒ›Ó¨3D÷·Â ¦>»Ä{ ãl ¿ãQ+žoðOLتïhø#3÷ÆîeNp ηeI;…7•èй‹’|©Îóùs²‹ƒXžæ¾ ‡^psR¿÷³À$ÏÙÎð«Îg.^ÚZžÝòÜ=äÃè‹jÌáí-B˜¡íº¶Vô¿þt›àk·„وȊœÔtÁ/(¨á6šñ%ÊpC˜»—Öé9)[.<Ágä]ŽŸ­¦¸‚Š››‡§¿ü on- + endstream + endobj + 153 0 obj + << + /F2 13 0 R + >> + endobj + 151 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 153 0 R + >> + endobj + 156 0 obj + << + /Filter[/FlateDecode] + /Length 2597 + >> + stream + xÚ}YIs㸾çW¨úªÊv¸/™S·ížxª—Ck’JÅ9À",!¦H…K»ÊŸ·E©O€·~Wþï¯v+úüºú°ùËÇpø7E°Ú<¯‚|D7E¼ÚÜýË{<®¯ÃÌÓui~¬¯£(òÞÿ•¿·Íq¦Þ›©wH½ÍÞt<ôYÕ84¨ + &GA\xa²þ÷æ·UÜ$Åê:.nrÿ¶ÙÍд$öšcošÛ‰WêÎìjÕkîvÍAZMË_UUBxæo¿×åÖ[”„»IROuL55®ö}¤Ö(êõ7ëëÄϽÍ:½†·Q6V é® ™ž*ËqÓÒQüÕ5¨)`5õ¦¯4.“ç^ßÈw»É ¯2]Ï$Ú*|ìN»`ç¡oÓÖ¡gêYŸ2GiÃ$Ó%ÿ¾Î#O·Ìû³L¬ÌVפèÔM]8iø`%T“s‚d~0ßw7ЦÁ¬O°bîi*á,¦ÞÒPì=·Íé¬Í7î4°Ý–›b îð7ãâÉMÆnðO<@3¬¯ã4öJDa‡§ 'þŒò°sÏ&D©%³?>Þ×eÓvú ÉûîX0.2ïØ6¤sSZ^Ó³”mÃb”A­ãèkO^ÃOC¿´·vV©¨·0fóbHL^&l²Ü5°8&c®'«?h[Çh†Ž GÕöFwÿ&ç‡éú‡:+Þ Óºâd¶ŠŠ…%”Ñ6a‘{­þnô+¶ Š*¤õ{ÕÛ––†þÑ3Ó# Iâ°"uÕÑjÈL|¢´¯„³iwª6ÿSlC”iEŽË©¡ß7­#™ï(ጯ–UY›É³Hóè†âu½ªKÕ–3WËæ®A,Œ®ù…Äx<ª®S;ÍZƆ#÷)È¡‘m’Wôº¦-;‘Ù1»bî¸x+þv}Û ºXg-ómÈ-~ôhؼ¿¾¸¥@¶äã––ÑŒ>W¤˜vIÿζÌJÏP,~>¨-îèåtGÈJ‰QväG"8³æ¢ÂÀ ÜÎl„Óž;tk$sÅÓec¦>r<‹“:„ .Œ¼¯u…-À̵æƤ·B¢ˆ?7FŽGçÛb’: º¤>³çcèo)ù[1åÕErG¤4áCÌíG.}~Úi›a·çŽj[UïfáÌUjç0|\ ÷˜§‰OTm)ný · ºŒ!žíŠÂyÇöØv=–¤ªV«òmi¨ÕPRaÉBrcølç~e$ä—E²&P:uÐÓÄÔ*=2 ±CƒLIFÇ5D{ aÌ©°€ädæá%B‡a¡ÇåQD¥y:MË[™S»Ë<;Õ&±½QÜQ­ÌQPÌ=A›RÌ~â$½WÕ3šg<)¤ÊéÀ>¥.KRË1áRþÌ„§5,q±Ÿ~V+µÕ33€»W¢VpÒ}Ä{ÎÐÁ8LϽ#;v{0Ô7 + T9"0-'½á 2ZVõ—C#²ûÂÜ_ öu[l(•d…–G¯ÃX ¥.hŒK;ƒ”³àÛÛégÐqS ÷©,"yB¿Ð‰yLqÂp2#çlrd8œ^(É­wœ8öOr`Á ²Û\q)¿ã + WïÌVohL°ˆˆtqǘÃ~áZf©s-±3/‹¹ƒU+7HswWË£ õ‰¦®¤¶1‰F@C~t`ï/ + ¾s†"P9—ä!¥ä²%S^i¼}á$ˆÑ¾³›âIJð0¾ô]ÙP³¦’hŸ*„4¤bÈ#ä`³dyÿ@@Du’O%å FîL·­”9€G]JÁ˜$構"ßÓîÕšécj›‚œë aÔB#G'qV + %ú°5FgºZDóí¶ê \ x*x¼”ì-xÌÂ1ï|[O\·ÄÞTD“ÔÖqìd¶¢–<Äi†ž&x¸@›Òx*Fa ”oBa yw+\Ê6NN”‡sÏKÿ˜{#o [½c4Hª¥ ÅH + Ûka1™ÊæI + ¼e½Ør7É—×–fcA#’N½=‹ëÂÕ²/›ûÎÄ­ùï G@—zdp…í~f"¾¶˜yæ¯éÓ,pç–sàƒ %'µ€ÒIÂ84åì1ìqçòR>áž0UJ¢‹8´Æ¤#Ã/5%ë×ú + ‹¿Š…YâéŠAFLw;øXí`›Ž3ÐÅ;Û.TŸ'Ù“ÐÒlx«Êÿ ]Ó½0µ 8Í]CÇ>.!‡±4Ë)i5•´žrH—‡CŽ×¦¹ÈÊ\Yf¥öÙk.zät°Á°b“î™dö€å7%aã¤Èa5GÑuœ„΃Ú|‚æáHagz»DÞ{®Wö‰ Æÿ + kÚ·wÌaN÷ckÏõÒJ ¶“ÐuQ˜±D8WœpC8†påÝÄ}Ó“ NopÑlƒ¿àãiFyÁCèWÃï³³:À«…!œ—Ü8?] (ïùò]ÓÝûä—Ëã_”ØÜìü. "Îf²‹…ì dßéJ1½ÃH)‚m.¯‡³GÓÀa?/¥±»`´ÐP毗h‡›w r:BåOŸîo7_¿|ã5¾~”Š| 4Ÿ>ƒV¦ºz˜²5)Œ‰Û¦ªF«S¿îè%xÇ}ʱ`Ylœ{'ˆ kˆb|"†æ9|KøúLÆgðœŽX;u°6˜)ç…<Þe±Ã1’â;SièÒ + ~>-‚ð,Ì|"š;¦žÉš¿Ö.Ÿ*gÈS.©…qšñÃöpp6ØŽ©³“/ƒîÒž…©²¡Ì1ÖþÜX {Gf:ÂÀEä=ƒ®1Àè§"í@¹<övãWT­IU~&W|êy‚P:°{D~f‚¥•-ú.UÏÎ_Æ|Q‚Ï7‚eÚ›þGΕûö¶ÿ韈(ŽÝ¸ˆñ¯Uôã#Ž9,’ ·Åg®‰Hß=y„3Ž„™­0éH„$ô§¥5¸D¾‘¥­ëžIïpø71!Qn#[.RvŠÔ:NrÞ—°¬ÈÃ@ίêyÌ6ãì™Ë+À9ùÜáŸmü/Ìb£|Ô⹚»ú÷fï.T&D ++'Ž×E‰ü3K2ûƒ0ÍO8Ü1¿%íT+H19uU¤Ì\×=÷keºW-ü€½ì~ó§?ÜŒê2 + endstream + endobj + 157 0 obj + << + /F2 13 0 R + >> + endobj + 155 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 157 0 R + >> + endobj + 160 0 obj + << + /Filter[/FlateDecode] + /Length 2738 + >> + stream + xÚ…YKsÛºÞ÷Wh²)5Ëâ›ìνV÷¦Î[i¦SwA“„ Eª iEÿ¾çÅ—H·Îó´X¯ÖëÅ~AÍçÅ_··Ÿœ…½^Åöb»[ØÑÂvW±·ØÞÿËr‚åùQh}~ü¾¼q]×zRI–ëBqï«~5‰¹,ÿ½ýÛÂG7^¼Šhm¸ZÞ~lÝ-ÀúüùióùnyÖöáÛ#¯ýñ°ýÂ_÷›?6ð󸕩¥Zßž~&ƶ¿ + ¢Å 4¾K¬ï€jZiy<é<©uYð@¹Ã6²êƒâûå·Òæ¨ + dY áV×/È”ÑoKß·€ÙÛV¨Š)κ>È`j˜ºR§Ä$µì‘™p+2u¢ý|É~(ÿdwW¶O²g(R8 w + |– Ú3–ægõú¡\Çó¥ônÞˆ<nØ÷XAÐNWui’½³ÈtUýÚˆâ`ä¨2ÝiG×Ò"Qšä¹Ê¦'Hp‘[//É~oÔ4ñͶ¶ôŽ[Ö?|¤å ­1z@µÖ¼Ò¨ªÉk]ì™jgÊãdáдȺâ¶(kþh*•É¢’Û\uÝóÈÍÎœƒ¨9(?¶-–‡•}Ô¶´¿;Ãýÿ,4°¡‘ÏW¶ò…tæÇÁó!©¯¸€Gè75í¶gTÚ»kKœÅ€Ø+ÈýãN1Q¸¸³ËîÜùNÀîì°n`ZiÞd¤è‘™°m„æµQ7-ýWª¢Þ‡Š’9Ö3.?ò ’¢±ey¼>&ÜÞm§â“»í2w wÏâi0Ð\ÇJŒŒ‹©=\x¬TN®Nò•D¬×G,÷r + ‡áÞ“Œ°ê†ôÂŽò€ÞàÅbGøø­DùxƒC‘µ]FŽ¥~ÕÜ3ê?6ª7 ’SùkH)û1²ry M€]Ô®N“×\ñ8ªX¶®dsˆ!§Æér$ LŽóqê÷5:,ó)>±•ƒsù‘è*nsUULXáQ²öäÂŽ¥ + Z¶¾%Ì´‘þÐÀ½ÚèÐlžG9¹Æ'.ÚwQûHÇ /}p†–âÎ)OR%J& ØÞhMáPwÁ õ,ÅùŸ´wÝN ¿9…Á<– ]Œ¢ßÞzMé·%˜œHåà%¦, n\(“èP\‘r܉Sg$ùÚt¨ tvPˆ–9vöÈŸÍ‘$x £À²ë½w¥9BBòãÈú†~Ö”$˜óeê`G”¢©j‰ß“äµÄH JüŸŒf)8qO ÁšÔü51.éâø|(sÅé¡Ó3‡òÍ.°|‘ ‘íÓÝãó×;Œ\B!WØÂë]Ë$EÕVÏ Icž‹±XTRžÀs#¬²ØüÔEÆh9²ŸdúÅñÔ8xP «’)¹x4Ì¿s`\Û•gÅýº—f&»ÒŽ‘ŸÍbœo“¦èHk¨=2›°OVØñ@qñÚ̇qDõ‡ + ¶z§ÑI랸Ë3/¦„ž¦ùhxÀ‹]ú¤^lUâ?©Æº‰#}¡¬*5àœGþ$ÀŽnΧGHå{âMÍÔ½ €¦µÁLý¢²Š©ëÊ4BÙ/±Ë£ÐP Ãà'xGaN†+(‡À‚$Ë´Ô Ü³äYÎ,´Þë‚P ·Ià}ÿp=¯­(.¤ãNœ ‡‘±çvâ  cëŸ ¨ äÐ9)v:¥`'a¾õ0l\) ¼7¥È*$Cgd€šr¥2M[‹S<ßFT]tŸÁ1¶ìÑð1SÁmÞ ø´æõSAbLkø‘™{]¥y¢ì4 g+M i8U!ÓÖ¦P9oýÓvX\L!±·)ö¹®ÜXu˜ZbQ&~uø ;I›‚Þaþ†©·õÊ+Àpj–ä%¡×+;l)øÈzÅ`‰(À ^Ú•döÝ‚—$¡èo‚¡k<æ™J€*x†s<,ûlRÌÁ,NÁà¼Øé«WΠuFHO=þ¥ÕÜ&Üðé‡Sáàìè¿qü?¶F[Ÿ5ø÷D×'£8%èüêÚ¬Dhº¼Œ--ïoÏz[ + =ÐmÕ9•^yy¹ãâZ”¨û3LìÙ@Õº*„@uC._2ÈÙ ÷|yù¢«›*ÍiX*ÍdÐçË÷²Ä˜ó ü%AÖ&¯  ;Nmñ,L}ÅÅn¹Òiˆ|ìrÒx¡½Œä™ziÀî^n§È‘¤5ÝäèJ‚û¿‡7âolžþþðøðFŸbá˜}Šu¹ÿ Y¥¨!åG:²Á3½» {­š×¼O°ŽØŠèzH}>“3ÿ@‚êþ•ª“|'“ª_à°U•_æñðöËó<¥>ü¶y|ÞÏ Ë-œÀúD×%½çr×Pz8éhJ0A{ƒñ™ÅƒŠsÂØ  ¡Z¨óG†ëPtÅ\㟠(ÎØ’7aÙÐ!¡&f¾¿~íl«9৾ü„?B,§é-VÙ¬±?7ÝS‘¿FÑ™bi-»ÎuïØ©ôQçt1ôHƒ'mt=ƒ,pÿ0hIˆ»€˜ÈøÈîHÛ§r £{`@†¼/´™ª¡öó7ï"ò7ôê‚>m\¾æê(Ã¥ðÛhª ‚õ‰ÞŸÙ·ŸÜÁË~¼rc ÃùC]Ÿþr{{>ŸWû¢Y•f ñ~ÉÕ®¾å…ÿ‚õÊude[ôÂxÚCÝ$mp¹ÔÇÈá'V×iÑ3|}t©@»—D‹?Ð`ž†zÜ€ÏrYÊ1¾"ò¯†Þ"Ðä¸;: Ü÷®·ž¦÷‰íéâ%oðJ.ªùÙ$<@9$mÈ¥pxF + ( úX®Ü’´°ï“bŒà‹jh î,q`VfÂñÃÌÝŸ)ócÌ–Üj¼¹AeÑI9ðå…Ð…/OmÀlBhwežsÁakôôAû¤€KùÎcà§|a”–wãOÒìä WV@MÚWÐÞ³ù œ BÛ+ &[…ÙWÀçÄž6¾fVü!éBÜ•TÙný"Êf\D-7™Iv5bOfrý”0¼«Ìé2&õ¦i¼£éÒ8Þ¶œ5û²ß^=àcÁÁâás>P1–ôãFwI¸Çp <‡®µ:1<1o¤£á ?Š `œ#Ú\äÎ9ðt$§¡ˆ´Ë`W,C\H>t;Ë`ç•þ’œ{m߯_3–+ÁµepÙfû§ÿÊÙîò + endstream + endobj + 161 0 obj + << + /F2 13 0 R + /F3 16 0 R + >> + endobj + 159 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 161 0 R + >> + endobj + 166 0 obj + << + /Type/Font + /Subtype/Type1 + /Name/F12 + /FontDescriptor 165 0 R + /BaseFont/JYLIRS+CMTT9 + /FirstChar 33 + /LastChar 196 + /Widths[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 0 0 525 + 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 + 525 525] + >> + endobj + 167 0 obj + << + /Filter[/FlateDecode] + /Length 1268 + >> + stream + xÚVKsÛ6¾÷Wpz 5cÁ$Hñ‘ž;v“i2™©ÒKÝ™Ðd¡¡ JÖ¿ï>@Š‘äLOÀûøö]‘ˆ¢à9 å!x7¿¾—A‰2æ« .‚8eÌïþo¶ÛÉTæ¡j–úe2M’$¼yËë­ÙNdtóŒ2œ¯uËWŸª¯ºªá$NËPæ“æ¯ïcÔ•hg + æã`š–¢`S"ñd:Ëdxsw÷þóÝ×Oh)Ÿ…¿›I…{$ÒÐ>ìZÅÇfa÷‡^¨¦?^Ë› + ›Î²øÅãpÑmTƒ®e`ã¤èýT–B2²ù¤!Èɲ`³²,½YÜÍFQ¨>¬xAs²ðæ ŽŽµ0<¦cb]áÍn|ŠOöV;§š+T™ƒÊEÝ-Õzüô¿Y±q·V'è!á-øL½ƒ‰˜³|%&´j–¸IÃmç8±d7+S×Øéï!Yý¼F_¼ˆW’„õ& ã€lYý¿]Û3¯œ²?˜‚„kW{©mõ¬ÞúB’A!Ê ó•BÆäN:#w 2 (É4| o',U By$feÿAU`4Ž3(*”™œ…MµQg¦òXd‰—}0¥ÖH¤]|Qv£ÛV›†íc Æg[5N-™À2Æ¢v¸âíR·Îê§Î)¦!r×Æ£Ù˜¥^¼èº×¸4”2GH¢1†®Y*Ëæ)$¸¼  «òwŸ¿òæÞ*tç•WÎ{2<0÷/eÛá*rŒ‚a<„ªñÐëÊ)ïÑn,½ížjÝ®ûà<NàQýiVn_ÙþÜ€£ð·óìµ[³ýÆûC³«¬†,x]j¢­÷§çº·¦qÓ[³ë¡ÎՋ뙨œÇÜïªÅ÷3fqŽæ†¡`¾_ÉÁð@èSìÿ²§NdZv H¾Ïûí&õ GÊô' ~óFœuEhäBæÔ<ò˜4}Ò„šYNÍ,M2jfÙÐÌÒ$‡ s{›e!ß÷¼% ÍÒð~R$!ŸZÄ9Y“eþ92`|™¤\ ÈÊ|EF†>)Ì«¶uµP,øzK||ÄòB òâWI±5¾qQ‚'yÞ˜Ò\drܘúŠ%ð•’ôï@aw=é\qùOÆ ê´¯?*ö KAÓ–å®8ÿ„†¼—)Ïâc•Œ^Þ¥Çð3xI,ò|ŒðJ\ˆBŽ¡Œ^Õ…]|`>k3ê⣎s’„‘þ_D*?/EžžV~RdÇ1ž³“1Ž×ç•Ï£µçÑkC3¶ÈC¬áüXÃÈ=®á&9}m@®5oÊ@¸,Ë/Ì<éÆ?lÔ`<âK?ó‡ÆpÅ…½Qö¹Ÿ¾kÓÏl‡j÷ˆËøi]C7G+;¼ái.ùƒ’m§O ­vâþØcÈDœ q•YÜÇÕ"]üCÓÂ7ŠJcñ¤ñ'Vï4}=AX½T›-> $…9·ÖÀ4Þðá‚õ/Ñ{™gèbN?1· +  v—ÌjU­ªÖ—ØÅ *ŒVš'#ÃHaãÆu[Ùª®UÍ”ŸÒ¸õM”(€„ÔÚhêS9ãF®5oܵ0éÿ…ù yˆ|õq@Gd€õð]å¡P6p3Œ~ûƒªQã‡Ùü‚“yÁ=Žʪ¯‚-Eÿ<ÇtkË]_;è?ýÉ*r à’x?ÿå?¼“[â + endstream + endobj + 168 0 obj + << + /F2 13 0 R + /F1 10 0 R + /F12 166 0 R + /F8 50 0 R + >> + endobj + 163 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 168 0 R + >> + endobj + 171 0 obj + << + /Filter[/FlateDecode] + /Length 92 + >> + stream + xÚS0Ð30PHWSî + N!únF + †z–† + !i + † + †Æz–& + !.ÑFšºF¦æî~¡šºÆÆÆA©‰)9™y©žOfRQbQ¥flˆ—‚kŽãÌ + endstream + endobj + 172 0 obj + << + /F2 13 0 R + >> + endobj + 170 0 obj + << + /ProcSet[/PDF/Text/ImageC] + /Font 172 0 R + >> + endobj + 9 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-53 -251 1139 750] + /FontName/HGXSFM+CMBX12 + /ItalicAngle 0 + /StemV 109 + /FontFile 8 0 R + /Flags 4 + >> + endobj + 8 0 obj + << + /Filter[/FlateDecode] + /Length1 716 + /Length2 9070 + /Length3 533 + /Length 9620 + >> + stream + xÚí’UTᶥqw`ãî!¸»kð³±{pww‡àw îîî 8tÎ9÷Þ}n¿ôè·]õRk®Ys}µê§"SVc1³7JÚƒÀLlÌlü1Qm6v3+•˜Ðle7ùl||l ;+€›Ÿƒ“Ÿ‹ ‰ + fïàádea ЊÑýÃű:Y™ƒ + Æ`K ÝßSc[€š½©ìÁ ˆØÚTÿñŠ3@è trš1#!±±̬LÁ …‰åP2 s{Ï¿d3‡ÿl¹œÿrhÿrÒþRšÙƒl=f@s$Eû¿Ó€Yþ±þ7Tÿ.ébk«hl÷ø.ê¿õí¬l=þÃaoçà:ìÍ€N ·jÿ'joûßÆÈ€m­LE@¶@ë¿$+gI+w ™²ØÔ`nlë ü§™ý;Âßµý€EZJ[MRá?~鿺ÊÆV °º‡ÃåþÃþÏšíÖ×ãdåÐcefeeûkü{ÿçÓ·›&2µ7³YÔÀÆ 3c'³ÿþ;•¨¨½»€‰‹ ÀÆÆÁàábõù_ +G Œ8€‹•••‡›ïŸª©‹“þç1øûÅÿY›[ýÝè4EÊÌúdiÈHÌpot׳@®Õ6±¨ŒÔY|‘Æõ'wjøÙ–yÉ:4ØFùnõùL9*õ‘–T(¬ÎWA ®çA¿‡aå:.½ùX‡Þî=UôÓ v£.K÷%0ªÕPï'C——,úÆo³<°C×Í AÓËÂo׊Y¥.C×ÈòÏýˆƒv~Ó 7¹†lÃ?µp I13]l|Zvl»ïÁï·ÂL~s Ò6Gq˜3÷ÝÕú¤R ÃkƒºÙÑ3êtíº$UÌÔŸX¯“ó!~_b;¡‘—>-¬OHÈá)z¦6æ9ºA©dggR,öQ.hPÒGåEÉTßB$}KoM/Í:’†©¶y;¤¸“äpgRÿ™$æ+Eè¡Âf&ÿ•2<^µ¯é@à>ýã‡j˜lÀÅçð3aJ Ér\³úÛV7À–ÜuÏ·ÞQàTrH÷âyʨWÚv€â%_œ¼å@á¢K=ÿz`¶EžÛ®î|<^7©vRº›^vZi5ÓD^w=õªM‡%í’¿‚©<§‚…è°ž 8»ÿSð<9語yMjdüɆϤÇÊ€¨Å }µ˜ ÔD˜#ŸT_E:¶t¸ò)xÐYì-C €ü¢ÓCäÕºÚÙƒõ’Ìœ¤9:ÝC÷‡-?>¨~´GáÄ‚å²a)ǾPz±ªŽ3¿½éx,¶j<ÕöZîb¥rUÜæ2‰¸ØZ¦Ð%ŠÄñ¯¢\NKEÎßûªþeo 6çlpòkÄ ëc$‘)‚ùH˜‘‘åÊ EÊÙ=ÑÏ5€ì« â¼át¾BBû;M'ó§iY GÙI”n?)Ù‘à ‡@|42–à´sQ9 ¡ù65V—cXrD¬C/tè‘øP‘jacIºPÆúÆÝGÖ 0‹ŠËa_³†gÆæàà`fJ<ûeìí¶7ÄñóñI<ˆdŠi͇²yÀI]~Dâ"˜E¯ /NÏt¼Ï™»›®,€y‡€/ŠÛÐbŽÌ/¹¡´Íy™ûפ¤A› L¶æK>RŠ8êùì²Zô°YîáüsùÄkaûV¯Äç $zBUo$_•ã¥ù6f›„K“y9®veèYÙ”Øw;3\bé;Ë0\ñ/Cnø`/'éöò¨ýŠáJ‡“”›ÆćÛ#ÊÓÄÑâšdJÇ`õ‘,ò–!“ø<°%˜yΈ­u.:±ìPuœ’ˈh‰áé|ºF=)U»²h@bï•y­¶JâìC%QÂ÷T7|i²0ÓGOqÍ=ò<ŒëŠw©ç‰@¹mX÷Uo²Ñ¾£§óÛ÷í»ð%Ýœs}ÌT=o«6«þìFíþ)¾âÛ¢­CÒbO›Ý©,2ø8HÁU“ {N!kµw¢l¸æCwßÐÜW?i.CÂÞÂ0yhÎ’eÑ„+ 9Ý‹C^%b§véþøþÈÁƒÙijÕ7m¶?Væ\ê:Úò7JhÂa J€Ä(™ÖaƳbˆLGùXúJ:Ž»}UÏpDW–†Q™Í©3®•¡– ‡7q\ë3x/´}/é©J€¯ QÂÓÔ,äaQíÌ¿…4¤™°…RÌ´øÜ?êî¨hø,ž‡)ï!ëù±ïWÊ {>!ƒulin§œô•G°%Xç~ ‰¤†¦¶Ö«ú™A66Ò»õtÔC&Ë–©µMQ|Tilì¡ùaU°?mÎRoሙèT]/ð•à¾E¡ï<æã¾ïž,¶,‘$7ê{ßæ½RÉ®À„5µ˜D¢ÍqƒrO8ᬄö9ÏôÐýµ’œ³xµM–?Æ‚aYÙTÏòÝUÞFq¶Û'sM’—É©´9op#.1ûej{'ù#§¾A‘è‘ú©ÿìY<ËјÅ×oس›œÙÁÑU9ÚÖšžbnÐdzY^oþÞXÝ,æYc¸Ž±Ð¤l×uƈXös€@Ïߟ‡öO‡Î]X¯ö˜Ì£u@fó9ün`ôLý8·ÈL¹p¸²±ƒõê ^®p©Øhª´U§¸%ëNΚU2{¹ –V⎞ÇágkÃm°›ËD~¥öm¥Ç×Ï„Q· Ë“ä‰lcŒ Í¨Iƒ¡ÆúmY°¹9=È•Õœ߶<â玓£ÉÃÖ—„r5Aý$¸Eé6Õûo£ð‰øtªUPãW$2Õîý.Å …J¥Œ+*ÇW5_^ ª©“7½>«ó²ð”åë5$?ăU"Ê9ÉæÕÝ«ÏeÏ.‚58ÍyôÐö­ž†ùFÈe3XVÆx~8–J¶hOÎOX\aÖ™ + Q)ñN7ÊË-n4!ð×ãúÉqrqi¿ÖÉF]4VžáQsÈÒ~<&ÐMávð^‹XÇ*D/=MýÃú…õ¬ /áƒßÂOE(”ΚõI4¬`69ዧ÷4x¼uØU¹¨üpS&z)e|6ï-ÆVæ£ë‹-ILÈ«¡™™Àà1ŠlA"™qãë³x¿÷5ÌW­ê·ý|e¹û±˜Ð]„ë‹I™Ú<ˆÞ:!‰Ê­®”Û^Ë“ X®pr‡7$àç _Bæ}ød3Œ y=RÑ^€LñóÒþ®i5MaÍûÅi«øeÏß`+­·l.¯13ÞE¯)ÜòýfH\xܨ¯òô¾Ü_¬çÏQY·TÆ>®w4Ìè-7-…¦ê¥>7ì°L8w+…Tœl4 Ø8ÉõùN‹Ý]ä‹ŸoñNd"œki¦ÿ‚öXcf©&¸/Llæè^å Ò`=-C¨ÈS6\”÷ÌŸ´Œ7üha\Ó¡£F•íãRígt i(Óí±¿œÄ{ðGlm݆ÑdýæO%„—ÅÅá§>ˆœp¡=ÃyxÑR¾}•ØO¬Ì%æ—¿¨™ŠŒl?:ôþn Éœ‘ÄÿÀ ïžÎ—ö0xYu}à‚ø‘‡‚3P2©à9,ü xâUµ™˜Lc>µšû±‹-TI¼l·DÖ˜ÖKÎN©½÷¼¬à}£aïô1›ÇW¤w®¢™Àt)í]C’Fšòí… †U_+fÊByö¡§´TŸÓaõš?Œ¯&;M;"_<,ž­4!W­4ˆyÍ.×}•IÆ *©|!¿Fš„¾gÌEð6†Kw;£?0bÏvÊõƒíI-rSàºÕWª¡St[¶K½/ýâÁ/§qt¥áÚª½sÜB]ñðÇçDhð¦Ô\ΠþVÁé<^ÌVð­i–vÒËÀdE˜HÒð¬—÷îC'%gkèåÒŽ\sìÌ•©Ï§œurQØJ讋ʤԕ¬é}’1†ÕŽÙ³h´žxˆ êFL¢Ç`¼‰ò + V$Ñè˜ôª¹ioJf¥ÙÃYŽmjÞ®‰kÆ4ˆ~mÔ÷z¾þõTåÙ&ÑîÝ\ÀCš)Dç^œô<^ãW:SrƒôÎ@JUQ#­ÞX|€£—6š"©BnÓ I;×8§Xüæ‹u» IåÄ2í‰ÌFÙdÇ !1ÿÛ>^ù…¼DÆ3cÁ•úniÿmÚãw}µç`Bý~“ñ–ßS©Š|ôùó ¼Òíq|KJ 5ó¡Rjºßn²ñŸ?wÙì—öƺö*—wòqÖ‡´`G¡PâW^üIاp×ÖÙºðgŒùdAñç¾qà0äH(ߣˆR÷3ÇãuÈMeGñwqM/«tòH@u(©øí,CŠQÙÃu¦¯·CGotÝòܽ1šCK':ër)[ŸÉ?ˆ¿9µçËD¹Ö\¶î¢jS,5‘¤I?MÑZX=Îü<2Á¨…ÚlGpÁÜPDˆ¨þü»@C}{³®X#ÏjÀëóG–†.Í’óE{¡_$Îv)•Æ¯“[+t½/’*å½?—ë°Û!¾ï±öÞ&‘„.ìjÓ9=ÚÓh^ÚƬ‹õ)µŽÝ÷´Òî•UGeÀê¬>ÿæI 8’A(j_ïw!4¼oÚÇ€AY:Š>f3o˜º_'N ÀQ46`6$i~/X)5®â,)аŒYm¸ÏÜÙÇùs Èηµ’*b†#£ùg…H›c:¨Êã[ÆÑFaëÔµ}\‡õÆ¢n¸˜ ÅÈN ¥AsŽMLŸ–tGeÜ?ÏV}Oe›Ì›5Z[vl’Qª…Lð5²î¾u÷e™œ,ƒdbÂÓ¸Cù]à;£&=+ž4ÙmŽmÙ‚øÊäñcÀî÷áfTg½¡qrCpÇös_RI¼½"MˆŠ7{<Öɹol½/¤õR *ŠW*&ñ+Þ÷‰É_â\Åü‚ù‰Äë«z8ÝŠ,˜¨sd®`ºÌM]QuGUµ”‘ë–˜xåü pÁ÷’v£ + ‘Wí»nwŽÍ§5ÏFVFF‘°J˜kb†Ãq½Å¾ñ¤¬UrùõW&Š¢‚u§>.h÷]Ê:ÁN–£ÀÅB˜jcJÍ$h÷Éz8éÖEþ #ö¡ÌC<¶Ê"È»"oûÆL/éÅcʇêcbë7„ÚçC"¡M Ûò’9 ›7ª¾@ö1¢AŽ´6û>Ä,)Kâüݢ“éÙù—M6¢Ze˲_Å} v€{ ÷³›ÓŠ±h±¼{ϹïKµ¢Çò\÷ÓøϱQ|ñQ{æËÂðûê¨ÆP,„ïå†_hECÅZ0Òb’Ù–7Œö¼1Ö#ƒU·ÌJ:oœÍ¶={¼p©ç á‡*WÛ­K£¤Ÿ„E«^’ÊÔïáâýµß[{o¸úœ!§[s^+°Ýªîrå_%’ ©_Ñ5‚Õ¢ÆLç©¡°¬>öaO$ƆoP¤ûxM#¹®ù)#5ÓbB ¶G‘=œÒïæ…1±pŠg³ c:}Þ}ÖÌÙüÇ í~ºæ¦\FtÑIÊ÷„ÐúÉ-þŽNªÜáUð¦Öž&÷Ä1MÙâr*MÃñ8ž=Ÿc|yi!/}2#Sa g8Àû4ßô™}|’NHÆ˦¡r¯îWQ×­§þ5ä: }{Ý¢ + syµ$>rÊã™àÃjªË`A¡»T,œF‡‚6kMOØaæÛí7dG—$¨3Ss%3‚ÑòðÍPÙôŽI Aø›NÍUÁŽˆÕ#¦ï¢ÓÀãè’mÃëPEä~ÖNg¸$FÐ KVò¦s + {wä¦PלöËòC—¥f,—µð‹éÖ*N/» 9>&t…à=§~W÷Ɇäî¥&åˆ'8­Ö©ñPá„2>YJ…:µ¯Øu…|ãèJ#:E'95 Ó¡ ç† ´àŽqðl©Ã Æ(md˜f6Õ²¬Ñ9|V}Œ:¨€ ~¢ÿ?ûýê› 9ë¸ÌŒ —µæÑJvèfÉ-ï~.Ls§õgkgI^Þpr š'*½j¹ÌŽœë'(å(?÷q˾:ŽÝŽ-W‹ Ùø.g{G~´õ÷F)ä$úqbèT·‰å±±-jf›>l + ̎йÖ0¥_¼#’É"5Ô¥q<ò5 + ƒ!m4í¡jF5)<ö3ŠjŸ²R»1¹Ç°¸Ùqu ÷ýlåA•<_¡Éöz¯kg:Žÿð_3>íêR9?)X'À‰äF1t(%_ïÑHaáŠüxlí8˜° D»¥*ÊÇ•NZwÃx5¦â»yK©Uº= F˜mÓg â"ÓZ:ƒ]4x”D`­×dqÉ…/œCÍì«1!éFnßà×{!«%­„¹Ô/Ù*¦¥Ž„“ðíyÞìüŠÈã¥2÷y#§Õz±c¡åLÂÕÁ©šV|"U'C™×«øŠÈÕž¦ÿ(íx“ÞÖÁçw"$ÂY”éÿÛnÊ~¼]õ-Q˜ïl¯ok!Èæ!Ì“ìOo« »ˆ[p:µÉÛ9Ä÷§m1¹Ê@n\Ý.^Od7òåH5²ƒóÉ®;ÙD"€üʆO*)<íë@Ù0úÐM¯/'|9Ò ò´ðij•-ÓÎäÉK-ªü[Õø€ƒc ´¹„¿ÜÃ]ê±ÿj8ŸJ³,Š¨S/õãLS¨'sÿG±|z™áέè«Ùü½d[Eœ¨>L>¹W:BMS–íVq„ºjV œO2ef1Z£³­\e4…1ÂïWhw0ÑU0Ã<üO?’î€e™TÝR‹7 (Ø ãÌ#™š–ž«IwÌÂÙÉ&JÛ;×0}ý Œ£þIŽlFO9îPm íƒ9sÂBÊŸZkDævëÛj¤_ð´Z©·6†}T™Tؤ;ýX¶+À\ ž$jåê[€D«¿ f©U1‹„•ó©ÃOÌa¯º»* EÝòePË­§ÖmáJ“ÖòVãÍ`›¸{*3yyÇ sÆ=ôÝi¦2óñ òmn!›ÝÀò×çyûh êûÉ+Rp©¡>n…­g + “:ÎaØ.`‡Y“ ÈÓÅ£B˜|>Ô9Þ=5É›—Á‘øKç*…œª jþþŠ±‡öw¯ë Ƭ&ª²wÔúÀúQU† %55Šp9Ì*;«)þv-óþ]½g©ö„5g‚/>!ßká|ûë ¯u¡}מr“c"YçF㨅¦ÑÌb1Œªzñ%•áRE1ím{MO‡â±ÃŒš¹“1ýM~ç—pÉýxê죺½qéê*kÐ ‹½‡v¡áE±u" ò<Ë;±/RùŽ€óV2šëª«RÐ'=«C£¥K;F=@yÓ–4øb&y £ÙbŽ^ߧÄc8ÖØŠÂûCC_ŒÂ';$¶_ø¢X~t#œtÊ Fíê/sn‡^ Œ"÷ÚúÏ'Dé>ÿ1t®‹ïIçÂ’€Nvƒ¼ÈÆ£½ã_ËïRUYe™n þ + ý^‚Ôgƒ·  Œ%NWÎ'9Q6¸&mdˆ( ˆ]²Û¹iwˆƽæìŠ VÈÊù5°Úv÷®¾\õZ-%° jw-Õ'Š!ŠæÕîÍ PÏc¼4aüœ[å–ÎxƒŸ®òþÓG­oªbJÕ•úM6­´y‘;ð‡i1eå„‚1e=îí@õâfÁûZ«¼JHW2ÀpÔurÒí YÚ ò­YÞÅ?”vWi×ìÃ\®£O•€k´®$ÉÝ‘¹Ðú%òñøvAq/Üøþt‘ž¢âç·|º©–†wmSºÒëŠt`ƒô4,ÂjöX0銾ˆ"ÿ±µ­û«R™©Ç&D³"S¦“‰B³ŽuW*y©sþ³yôÉAþ^¶V餳€TÕmá1…/$ÚîƒÇ¾ÝgdÖ–4ƒigýï÷Ý`ÌkÜLE÷þ ¦W¶öÐÁÔuÞëÙŠŒT.e¦É5v¦€EFµiƒ³)ª9Ÿ¾^ËgÉßnÞ² ®·ØÔŽ½òð"¥æáÚKÝã°3ä‚{»Íg ì“*°´b="ÖëáI$¾è¦ðpŠñØGcðZyMÎ+íäV“-%Ú*[ª¯W£®Í Ýbq@>`\n1ýb¯ìý0NÊþ F”¾—:-†Ia,´ªÕJ»ÒMú˜PFÎ<¾-_Ó·À€ô-N Þaª;bõ¶¼¯ù)r¯ˆÕcüÎa5 XD;ã„Iµrþóvrsæ£û"‚“´|zÞòÛÙ‚f©G\¢bØáĉ¯‡m{ß>»œFG¡—oEÈÁŠ½1ØZéXD‰p¾ÞkãÒ±û|YIæ^÷Fb¿S¿;šUº˜[þÑ­)2r…þ!S¿CÐb¶„«¢—²Z×Ïh”tÓwµ‹ÌY=£jåEë@‘¢K›žœà²©šu·6HZÄ é™m¹´àûü_Ù¾G16MÏßÿ,<þ%½»K¿–_kÍ’›öP‡2_Ô7]ÏûÅ)èâˆ,,‚:#®UV&4«ûט {Õáõ=’¬ëúɱv“d½úâyÞ ‘È¢ÿPÁÓxIëôïybÌn #jz]Q%Ÿ†]þÂ7¶»wæ’ŸÙFÀò­û°~da ,¡ýYÂÍx¼‘à»·¶Ê}OŽyä/‹zÏÜ¥C7 x3æ<z9ÖR°` KôkÖ‚,ú­ž¯y*ÿ‚íæ]%I6ÎFðC|%kAñ%²:hðÓ4c4á1Œ°Æ‡E3Ó­®#Wg ÖŒ³µHã•×lסoGž–á«©èOÆþ‚u½j~\VØ@mðÙãI~†|‹—ÆÓp‘A½Ë¤8U*˜’6ŽSJO-‘Z»b-ÏMë _¥XPaÀu΄ûØ÷BÍ6·Â¯™°~f`@%Y¸ð ®KóyY¿ëké/ bÜ› vÜ‘ã>0­³!`P|ºµ±Ýù½„ØôõønY·~—l»!ên‘¥îC7hø+ÉÕ¹/§#0³±¦þõésüæ“ÞÍ]¹6Æì¡ž›mOÅÚžâ ¬zêo,0ŠîB¾ªôúu¸S#ûw¯F•°×äWú—¶¼Ô'lŽ:”§ßEê¬JþÚ+®ýQù¸éh&Ë‹ u—.ä3c¹œ†˜Fi§â7®aO²Úù‚h·uv4"ï©7ZÂíΣYÓ*ÜA¢]Þ4eù‚D}Åpg‰{ÆËú4†f%ôB9í¾†äR5qé"èÂIíç·]ý©T¬*lÎjÞ€4 + Ï}‹b²òžB‘n Ág›}Ù1+¼¥Ö@„®•%7/7‰Ï^0b>jMÉ®a,¯²¿Öz¼›->ÅQ­)ž<û#³,{J,‹×J`b”,l$±B½5K£»Fœt™Ã¶ê óyvš•Ó&;%ˆ’…Íœ``ˆ + neg¾ŠKÚnû‘¨æŒ':Ô¥+ìåRnŒ.T‘«¿²mJ-gñëåç¬Æ…þ†‡n#É>µìþHf5x!ÉóH«Å6:'Á·X½E0ô[H2ø„!Â*@“³‰¾žÞçý02m‡©0ä´Sö>[¾&Ì2Y'"Rjã&¯ÿƒmA§Ýô + //§Ö[O‚œçêLݬӯ4¯<ô«}89¶q–—¨•í4G å–8´( Bg%¾=øCüÊÄz<׸Ƹ¼Ü_^]~–³þ_^Hÿ?àÿ‰S[ ±ØÞÎØÉ é/a + endstream + endobj + 12 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-251 -250 1009 969] + /FontName/FCHKFW+CMR10 + /ItalicAngle 0 + /StemV 69 + /FontFile 11 0 R + /Flags 4 + >> + endobj + 11 0 obj + << + /Filter[/FlateDecode] + /Length1 720 + /Length2 15101 + /Length3 533 + /Length 15662 + >> + stream + xÚí¹cp/ßÚ-ÛNVlÛ¶m®ØÉ/¶mÛ6Wœ¬Ø¶mÛÎùï½ï{nÝ÷Ü/§Î·[·»«k>ã=æègΞÕ]MF¤¨B'dbgd*np¦c¢gâ&‘Sfb$d¢gd†!#q45t¶´ˆ:›r2qq1Š›ýÓøçàfcåfc†!#±³÷p´4·p&¤¡ú‹ƒPÈÖÔÑÒØ@(gèlajûˆ±¡ ¡Š±¥©³=!¡ ¡ò¿.q"T6u2ut55¡‡ab"4±4v&425·À0üË•ÀÌŽã?°‰‹ý¥\MþñEHùo§T„ÿø4±Øxš˜šÁ0ÈÛýÓŸé?nþ·ý¿øúïââ.66ò†¶ÿ’ÿW­þ—´¡­¥ÇÿE°³µwq6u$”³31uüwª†é¼É™šXºØþ÷¬”³¡¥±ÀÜÆ”ñ?¥“¸¥»©‰¢¥³±¡™¡“é¿qS€É7ñOåþmA\DRF\ƒæ?ÃúŸ¤¢¡%ÀYÕÃþÊþ‹ýï˜éÿŽÿ)£¥;¡ã?õeú‡øÏþ_-½ÿÖ™ÀØÎÄ`N¨âl01t4ùŸÀÿjJXØÎÝ‹Ž™‰ðŸÓ?󌑑‹‹ËçÿÉTX:¸˜J‰²122rp±ü5vqt48ÿ{&üsÇÿ›YþSSSwSc%9ÊKÊu F ý*rÊÀ…ϲð€@^5Žo¾õØ£¶´=ïzŠ§fko²O6”fýÓ‡êŸI?iNºÀŒÉ¸Þs©õ®ñÄ`Ï[uXAùdÖú‡µ ÖÏXyBäö™6õ~”8^m†n„WM ç°lfy¥ÏÊðVRtÅAüöøŇ²:c¥taâ ñ¾–)QÛ‰5ô¬Ÿð`ywYëÎtÐ51X8"+`'1o_£¾yˈ.V}³íOžß>‘1 :·ß¶[‚³N ; + 5ÒX›û™4q–4T÷ ÜÞfÛ±«ºhw¯RDæl~Je§²Ckôˆ×r3~1Gtô^Í \Io½ÑLÚÛ1ÒNôÁ{ ÝGè (S‘EÞb™¿­ý”-ŸâÝ«ŠºÅ… + pc`tƒÈc{cesû]¥Y©+®å"+ˆfeÈÊiاe&Ý$=ce´CÔ'ô²ïV¼kØD0Vñö#ê¶do½þÈU¿g«v/Uò—ü¡úNí6¦ioéLhA×ÄI×k¶Æ7¸¶OœÑ… + ¼<¦__؃Xec 'D„5«3£>ÌÆE!i`Ae9U¡”Ï Û8ÜòRK½-›Õ¡K»üÀgU €O³¢ÑY˜—¥ ±`Z7< ;±›ãÓ‹G¦aøÒW˜È3cô×PÅŸ³ lO«¬äËP½ + ]R"¾ ÷7Õkú@—ß&Aý9Š}ã-‡Þ"ó¢wIO .Gáþøà¯VÕWk47öÃ(¥x¥ª\µ®Õ}%Û&Åí°áË]‰Ü]Û2SŸcד–(3©«è†l’w,àC!˜¢øS¹Î§žÁ‰÷p7«^'m“M« + !Å÷ç渌Âí[ ʬms_#$â …½AjЩ– `ü>÷¢)>`ñ'b~1h‰‡³ŒmœwŠ:‡©ó¬M-Ѽ2¬YÖ¡Œøë•á÷s­S9†8,âµ·õyÛYb«Ê“*Z†F>Û¤ÝÕn€{¯dJö.GÇFÇ¥…{Åwð†Hháv=kP¡š&'kEžðzË!¹¤i¾Œ¼ië+j"®1ôâ+^L ù$*øþ.„Áݸ§%¼Ìë›îç&.!â6ôŠö ó±´ñí¦ + žàÙniœî ø¤ÈxW¿¬5!ÖHWV÷‹ŸŒ?¼±µs˜ ´'TuÛ'ŽäÐ-çÕ H£U + ˜ ™ž‹Ï žqupnì½´ìÁÏÛéD¹J»4_u?—[/!þN¢{!jÃyå¨Ro–XôHb‚7KLˆ›‰ÇÊt_6Ž¬ñn§ s¾tš †4M“…•d™b½_c°{SHÆûÒ̹¡=‰_š ÒjWa‰v + ž°èÃô@±è)„Íà‹EM÷m·¢¯¤EžYå<®”,ϵÝ~xß+¨wïN C±W³JÝwÔŽ¾«ÿPNŠrV­FT•å“ºså4|’/jEot+ 2T‡•°äNÓ˜P@JaÅ8åû"pšÝdÖV¤¾'V‰òB}DÃ_‘wXœÉöóö=§F!òúÆ)ôϾ1Ÿ¼©QzΆ¨d{™2xR­ÖöÃÄ‚p_í[/Žv±’çUi›ü¼ÄÜfÈÕØ"i'.yÈÞW*[‰Œ Ã–6§=§“‚®1:M@X«gU¿éå˃t‘‚gÆt-\EVœfQ„?Ô»—ã¨yˆôQã}Ý|ÂÒl3 @ô^íu樛v^ + PéžO-ÉÌîë[笾ˆñL:aºíW×q”cÆ wÿºZ¶ÀBXºŽ!…õ>û£0S·FdG¾IIñh¨)hPˆZ1üýNrw'(¡êÇIæfªå¿ + DfÑ×’Pü„^ú1Ë5³® þf¼¿üe›´²‘ª´+ÀXx¿S¬±y禤B½‚`L VÊ[PùiõÉDÞ L±jéÜDþñcT‹ú¹b¢ºH³ge`€„Âõ‡ó¯q˜é  âåu‹‰„£j‘Åñó¦Ë¹µá:JÄØTÓ*ˆ‚(™‡ænUå= + ‚æºP·j:}FŽ³)S@f‚ƒ(½ uìÂö~â(S+$r7så£}àôìx[ls\™€ûÁ’Á‹r´±n«Ý<ö/r/nÎÀàëPÑŽµ¬ËeºªÙàx°šË¾^Pi‹$Ç:ÈÛ©Åü + `p7 + ­zÜio"K(ñ/Lˆ@²#å„|\"wËõØ­€Ê"gI¡˜¥ÝžœýcÕ[/`ðÞ#,H1G_X}Ä3D7­8k°·èíÍrVCì»rGÈÈÁÔ]ú®ç*(~½`1¢©VA %«á„Ù²]6åêí“p"x¼>‘´È-™  + B´ð‹®;Eþ­]=ŽW…êé³ûŒ¢’„1sžé5˦æ$?~.+Ù@Pw»-ëÎЋ–ÊóÉ(Y“DÿWtÊS§(ÝE£\É<,ò™™Át®î\fp¥ê# ’ݨ·7xýD'i†âBÙ€ÊrŠW>Ó¨àè#71ܧsö,E–‘w¾³ —ñüQZ²”­Zí˜Ý—äùWC^dgLBÝR=éÅ:¨Ì ¯#önš9x¨ÑÐß÷ + ®ížŒÜ<‹£ÁcٿΡ'B¬† ¡ú7õáuª.b3nÆë&©éÆnÍa7㺹;Ä—¨s•v’¼Ò0[ß\úA*r^G”¿­}TÊ+ ®"κ(ê&º + yèÒ]ËWg&©2â—ˆv]g‚–Ð4 8lˆ³RÎÑ'?ÝCжƒ Z鑱’nY‚Ã;¯fï_ÏoÈ{Òµ.#^QpS‹óý擈±-y:’â¼Á-þ•€HVÎ@á|0~vŸÓMt ÄOÑ&+Ò˜·/Ѷ—ÂiGjˬ¢Q(ή“Eƒºi1µr(—±jcBfúç“Ö^H²ÁÓ[´%\Ž{,ûï“™ö‰ò¾û¯h0D'1™‘ä?"ô6ÜšÛ&nXõ˜ÜGgñ¬É{ü$µuylg ¸êYØ«6͘/9?ÇwÅøC»W`¨ ×»àÖãÏÚÎLju´èåÿ2Z“œ`Qá>#?>9åÒ½V×3À9‹vµj#Þ›šV<Îve é¤ôxÑ’tx¾7 ³¸j´ŽØ0å(£âñc'£t2«‹Ù¸îÞ£a½—dwÌÏ + ®6ÉÌ÷ˆPmšç¿`a®öØp&h;n?½–¾Wà*e¹ÁoUº:ŸÝÌž + + iv:^Ü¥ \Ýå1,es5[ýâ^–3Q"¶nœÄâ©ØÂv’,ÇB›š  m&ù¾•ôœ¹GIÆÕF9Þ¿Î,駈+φÂRTVF\žiÄÞ/óbF;+Ô:œGu ‚ 9X‰ÆÎ mÑÆmÚAïyg«OÍöDÆë›_&ìëÖ*LñôÅ• °i.%`vy^ÖœDº=½‚äc™¤ß@µš‚?ùy™|…_©B)wžkôì3, RËL³3× ]+óÿK14'•“:s'Až¼ºEå7lÄ´¾áש^k\vF `Ø×õs‘JáÇó¹W–0/’Dbp,©çùµÅIŸø×3Ûí4¡3É>óþ7Ö^Æàyñå¶8—c׊|ûÐN1‰:Uep*ŒQ’È)TìÅqrÀX'öî¬è-kuD๊™D&¯l Ôœ~ñŸB¢£­*”ž/0G1B¡¤n\Æú­ ÖÕˆb†¨S7Te„m„!»)|WºKÊ‚VîO9‘5­É6i*>|¸$ø]%ß{>¨2غ¿ð!!){Ì]tJítÁ#›*ÑH1a¹9*rx@ + 1¨Ë^fTP½6äÖn°9#­_Ý7Y—«i¢Y%NJyžR¿ÒÎ=3¸ËÐÛÖMà¨|Vñ5»p2£„¼gå0ì_y#æ5§kX©® ÎÀ3öèÝy¶Þ+~ýøf¬X„J¨Ä’zŸ—;?à «9¤{å¼—âS¹xDèÉYƒ©ÜÞ±æŽÉƘ£ˆvÞÉÇIK + GÊײ¬<*¥tp^Ül3T87-ÌT» + ½p3t+Iº¤ÚM¢·".]Y$»=[œåÞ0nh ¥_v\«/zØü zªt  åæ}Zî˜NX ›r¯r¶ÎÕ + FšÖš'ÚmÄV»­=•l\cÍà8¯6»G_*ßrôFìãEá-DJsr¸Ý‰Ädù •™sh0 + „¨]÷y"òVÝüŸ‚?;¡AdR¼°—úN”%xt6]%£I(0¹F)7íq³ê5ZóÂ(ÏůAkó”ñ0ÐÜÜ.¨±=r}Åùï^Å8¡ºœç¼r~®Œ@.ʼ°ཙÙ{Æ£qÚsTk(Úà x1£[©X§ì|´ÝѺ¢ÿ–óÅ¡ä$ · + ènD…EäƒÉ€N"‡¿)‚ áµ#(~ „§[&Eà‰ôn4þÉŽkb‡Î2«å÷Þ%` f{©¸lÚ´ZIHŠ§8àGŸ—Ãz{iÅ%Hî“ÙíÍwúÆŸƒ—‹ ×Ö€8àõy¾âÊl}®Vê=6º—ÁKwdžƒmC0ˆüðp=´lœRgÛäï+uu4ìðJ,Ø{z ˆ {SE*ë3{%¼‚L7ýùˆeï.óZw¶/ô†l'ìªÂ«Ð&Σ±m8:UMǵ$— J1Ùö£B5¼”V¸Z˜1 ¦Öë"¥„>ÿðMé»GEšVŒ—k7QQüeÁáQéÞÁîR¸½—­0ôZŒ§²`–ù©™b‡ QPX÷ýü`Üí¢öšŽ…«¹(¶áÛÿKkHdàbxæC„ë–à ˆUUæ _ïº#ñ|y&Ÿˆ¬A–”‘i3OÒ½¹®AðyJÆNËuæ)gÜ[ào,iÜ©ö6Ÿz’Ç;Êâ™b…űý4†ˆå%BS§nWTv;@µ ‚ù»ÿ!&é&\÷AÁôtý]*´ðaé¯cÿ(.³ŠA ¸êõQ¬ñ6’C2_t±€)–©a\ÈH‡ðéGÚ¯äýŸï·+ŒébŽf VÏo_HR,ê†Û˦¹ôJÚ#_+è<¶¥+pìKÿQ• ?Á€eFêeSŸŽÆ=âéˆúB¿¾Aâ°/º<»Rw>}¢ÂüRÃîÖtyª}}ϨØæ€@QBÚzîÀ¦o‹¶Eô1< `üyÙö]‡‹o S»¾‹_“ìó6†5ƒ{â)°¿fsòB…e + .:Êdœ{oõ¨Â˜Ú?ðä´d×¼æD3]žb‡3q\×éôÄ0ßd‘/–ÆÖ¿Ww_ÛesÅ©»1jì¨ÝPÌKÐÜS±ÓØ/ÄaðŽ,¶¸Bµ-¬CÕÁ’^NŸOD>CÓa¨—]‰ä¶µÿpÈùìÅŽi Œ?9ÿØ8‰ë§'mZƒx6ò±]Û‘ñœ˜`½’tþ—#1òTˆ0v1Ma1MU.¡Vtæ/bØ`=šyâ=#bX ˆ?ACHb¿ö­ëH&ÉÂVß×Sm³{­GL¦‹K$Ný¼P² + ãE ïÛ×ê4¦©… + ˆá™Ý"Ï$Ö7{¿XkG§3ö`ç§ê,1W[„GkÞ ’“éž6ìjê@(MÄóÕ + wQd#ÆÊS‹¨»ËŠ°)l}Ý«]埂ŽPÌVC=S…6+€Ì™|Ÿ¯D*³Ò š+ë0.†}V}Zõ’LÜ>ï=êóK«§3öI¯ + ¶Z£Cl×X’ô°Ù •êš9Ôž³a€UYéd9…¦hs¯F[>AHÙï ×áÉâjgûq<4ÝËAQh¥V_ÅrÙÿò׌»tal±Ÿ'o†$·É [X5ë…i¾ŠËþŠˆ±…Kq»YÚËµÞ ÝÄïÁõ1žÝE°¡‹Àº]¹Ö}(Ó½=ïžÃÌ׃sÝŒ`&X6~Æͯñv…=NÑê&|Té5ôŽ„ý@+ƒþ¹¨±ØÅŽ>ÔXô’<¨C°…›3¾Œ`45¡ž_…«O + è¥?¦®k$:µJÅ’Êd°ïù ¥xyþåÎï‚cb3QŽ6†‹ÝMÔ9pà ò'ø7œ-7ÑfcèÆ©2.þ‘doÎsÁß(=˜š[&ôy…´õ5§B5÷ T®²l^A|þßÈŽlÕþìß—mþ×gŽv2'4®¼¨5¬q. `P6›e¦ ¶M1Ú®?[ø†7©.0þØ"¹ªìw}±öLöiÚ]*XjþÀ“ŒítLƒèËÕW@ªÞtÜH¼rS£}1òa“|A¬ëfçLyýÁÐã¾fÂÞûÜÉACqo†Ã퇓èÙü.©à¯b©‡€—Äo‹®‚:¢ÞDì:G¦^ˆLhy6–3@9F› ö~ÎPåôFA[ÕôÁ§A0ˆwrÜ຅ªË.š^‡ÜÙ¾®S@ _¹Z3˜ÃÕÆŒù“ + âTÎQÖP.-"@ô® + û†ßM6væ‚ã±”ßû94Ù•±Ðc3*ì*ˆr¤Ö™ífQK + ŽGP2õ3Hg’Œk}à’9zÒfÜM*¶zíÕ$Öë·kd:ù£–Ë(ÓÚ8(‡½øñ¢Ó"ÛIqè˜è)ˆø4Aç†ÞzÚÜ¥Õ$_¥Éb2´\L@ö\FwX›þ¼±Bá~®uWž:ç´œ|³pÄIÕ ¿{`Uò™Ï"¢“«¹§Û"_ûÖ0†LÛw ›ö6u |XŠ(„“ïZ VJ‰k(ž= {ÏJÈ—@Á€)¦Ôㆠó '¿ƒ¿„í*Ô¦ <’M;¹Æå ÈÙáñ ™}©=šu_®P ÚùD­o„ÁkUÎнvS%귶ɀî-Hu·mß°¶$08I!,Yýöž=Nž¡Ôh8Gyms¨³žJuÐ + oeq:ãfÔ ïÍ1eøKŸM­ÔwXeñ/&˜-߈E‘. †fê‘âp“ÎDÇ!ýÕMuz 1L´º¼BüsC²YÿÃóCAìD;„É×çA‰1ü·þÀä@òIö|ÆŸ–åF¾{ø)™RSPlÏ6ðÍ‚N€úC…ñ‘hªùÚFëTwãÙeúþ¨ïØ’ŠÂ­Ø9¬Uätä³ ׄ©)€3ÒsÑÒð÷nBü5¢dn*ÖßÍ=€=‹ejñ.ã›-Ed!VMo]qÊÊ$Þ|¾o É(iãÎ]`–B›“rm˜oÒ|Ï{|"7ØØÖ"YçЦ½¿¶ýÞ.Á¶ËÛ‘!«IX?¹S€¥4ñÀ•µ¦¶ÜÜc¢ ¤5ÿ„KEH%ú·€´ø]J÷Âa&èìt¸cC?ž>5 å‰Dš5,w}.of>{K-[=‰õIpÙ¥‹Qÿ¹ÑÌRɾ³2êO'ˆ<›Íq—z ¿NÖ`£Ä‹{Åš¢³\&SŽž¶›~ß¿bÂ[ê*J)þæó´q[ t°þ9WOúBcyÂ6Ñ ¤aUØT„_+Ó~HUwÂ.(œ¥šˆº ·Å~±S‚s1>âñV¨§ÅÕ”‰Œ0ºcŽËqh¿=?ÿÔܶÑomÕùD3 + ø݈±zŠÆ+±Ÿ*ˆ9Ç·ûã¹rã:‚´ÿ¢ØJ~Çæ"¼Æ¶Í'à\”·`E5½«U¥ÐÔ^ôb-[ žKS²?µ“0~@g˜U+#@0¼‰z"UcùŸ5¿Ð•G­e€¿Ì‡€:ÃɼrX­Püû /êîž êË«Ðëwn›:/AsK8‘ˆYhèôOIôtþŸ#¬©}1«®GBdyh§Š¾¢pgQEýÂ+-Xi‹r.»ÆåľÛÃHžB ¹ßßåŽxåÖÿJDäq´×òöÑz?ÂWOâIryë?©>rºÑ”´Öw3jo]«ƒ‰|¾¬I™l©ûCÛ ÕU.èZˆÌ7vöàLðINª >ü.yŽg ¡ôšÖipw˜›ô7ô«–m³÷ «í9®n UÁoC!ȽÙG§£—±pazG¿ëÊN“ËP´Ûìð‘©{'æ@bú6%ñ´fóÁì·|%Ö + :dhÛ= + åhÄÞvyg F4k·œG'î*G,ð— JbJ¢èdWiâÊŸ¼NikJK^Ó^Íô°²¨\m¬¹ ©]RsÌÚΓ¸ûB @ïÞKP‹üÊ3&ºøÏS¤1Ž¥Y%,í—Rëú6¶û9|¢-G~T˜vµ$¬CëS³·‚Ô^2ûR#Z}¨5Ü™œË—ÖƒËþ×^I¿jKŒ/é\§S©DøL±Élª2ÂF‹¾`˜ µ`«ÊâhLî1Êrª‘.&ÖI‚/ò±r6«µ®²nä¢zö¦;—XiþÀK”“MwD!ÛW”p‰žÅi’œøRéŒõ§˜ÏvD=¨k`:K»PEãá˜ýôP"¢²Xm¾Wê½íJ…›ªô¦Ì-*"òÑ×8žâÁëaeÜg·‡³€¿¨Òš ®øs“˜½iß•DbR5¥úþ:WÆ…n{R-åŠbnz0d ïâ~3¶» Ã7>µ!\~ëS [ ï ­)>l™´Š”=Îi"“×7~ˆGÞŽìãÛ®0ˆÌß šåòy(=ü7^‹Åtwr˜“á"2­ºdÀUTƳ8Ïk}˜i±P Ä¢3Gî­Ý[8˦üµ’ý6 ˜¥Xt¢Ð^CA'@G`ÍñÊåq|R¾8€ ÕB™ýÜsÁ,Œ (€ˆøú܉Ú}³œ÷¨‰£x–½9HâAýsé¶~iýÀßzª²ýJ©Þ•E…¤°ÚÔ¸éžZ *áAy-Ê‘OLwÚÉ-ÈTžÕQŸŽ>ì‰*:ÙLgnB + ¹y3{h ÔTWõ˜†m “ÝÀ@¼}ôârCçsÉ + s^mÆ»]‰Z³¾}|ðÕë'X¸ª"~8ì0ÁŠ%1+¦Ä–˜ßFÇÚ_J4x ÝÿYw¿S¸˜„¸ B—Œëk_Êçêx[¯…[ój&h7¿uÍ&>Wʪ‚”˜²ÏT ÄŸiÖº_Zó3)^ƒ*³:G-Lù|ßbìY±bî;2–ÁúâQ¼QorÔoÚ + }莫x»X÷›†;ú¶î3© 1ßßvuíƒnfIJ³ + Usó-L!Xù@•:Ø i}ÜyvHYù^ß¼__ä£I+—5FÞl*¸Kà*•…âèþÒ}±ñ…‹fZà9áAVÍí­ËÂ/0Û?ROÃ'ò,`þIÖlÚþŠ›¬TVÀg}j³í£žLìd³¾d ȃÑ_ŽàÐÉMÆÖ¾÷GÎ’ܱV±[fNi±:Î0óþ⛢åFó1£ŸÅè¦Lˆ„¡Žm¸ñ8y^qÐ"ß+ÊÐ+X5L¬u9iÌëtC>›ùöÑ^;ï£b³§o§-^Þgà¶ÎQ–>Nî^†7 + Þ á­¯ÑëÕŽ'¯ û<ÒÆ)>.Öüì µ’-ÑO¸‚!rê±|h{Ÿ QÑSCîàMê6wšØ+0ÃæZϹ꾄<ÜðD]±p§D0Q†, ƒtú L)~QÚAsb¹öâpâ!Ì %Ç"âX”íÒ,_³àW!€gC o÷Sw(ž}(?§9TV#ØìªQ¯Ÿ‡©¸®ŒG¡‰áDrOBiѨc²ÁA`+º¦ÁÃ5û,W„êL˵.ØìÔ—ºLz‘{TŠ£˜úxšMß@q®>€€3ÉWþçK.dÚ¯5`,ß kaPÁ(v¡þO3=ÊqŒÝVÉŠ6HN»_Úˆ„^/0à•ÔÞ‡jp;ôÃ…Ü&HXGÇhÄ6ÀjÃ3$–™¥,ÆØ=ªG ;¡üè.G¿™+ÁÃΞ™  lc¤HÄŽ,ªZÎ9R›$>q¦ã¼ + Ϙ²á÷ 4A/mF+­Nß6úUTà¾áeU¯oŒ\b%tHf1G®Ý3ÑŒRÅ\ŠÈãN[4D¥{ŒA’HɦȔö¤M`÷=umÝNša:j`Еíþ*šñÝe¬æûÄ*j,æ5ÔªL¡i}òÊèšs7\#Ð’T^Z¢mÅah¨!'Z%%áûk9°­û2ëzŸ¸+!˼¯£O¡EeDº‹s:ÉjC)óÙó æDsŠkâjB…B! ïLǦ•3!œð<Ü.Ñ_ר}H™Z—Ý;ˆ°HV Êðf5½ñ‰Iz:ßHõúÅ£r™–o¨ç袃¿¿¾èà ;ÏEÖˆé:ÊM€øz"Ó„Å:3ø5ÊyzHU=ù + è®qœSoÅË)h¾¤õ[ ©»Z%kï¥\.¤† +š2Ø (*(U½P>¿ŠvÁÌ•(*sG†z:´h[h™ + Æ”_²sªËåpòäÓB6ÖbŠÎ Z5€úý¼ÒçHOð|Hö + ¤¼I’ÊUV¸10™ râgsj£U…­¢6)šg6<>ê Õb&Þ`[³ÂÑ”£÷UЖ² ÁOƒbMœžÚXÏä\ÎŒQn´eú‰yöýÆ O°†”¶£l·IõñéúE½ÖògÓÂ’ØQq™Pf_Ç:3Y„ygx-<#°p‹v¨Ý.}Z·B#¿2~\[Q‹b$É1» ‡ˆ£`6›}%õ0»b*b»[Iñ~ É’ã + Ø>±Ö.]žcê ME¨!µx§•¦aÞ„ ¡ O.EÔŸI\‡¿K l11ÌÍdÝ®£F#ñ”Û=„E˜^ùöœŒÇÚ+ÝGï»Ó§g„±Ô<Ò=a8©\×0žˆ<;D΋ž¥pìõjkªhá_°øÛVF¹\r cTáƇ|ú¼áñ\GÖ ËÔó>ÌX!F+Öãì«’Yöˆ\T•¦=•Ô`•N«í¯Z¾—Ió¼z*ûïûúhvq*bD™Nq• —ª*7'†¥-êôÚúøîù‘Ñù`Äóuí›8ª¯ÒÄFª•Ý«uaæwÓ†'}€¬_ÿ‹Ñ‚áÛÿ)¤aR + ÷—ÅÁŠë)€x}ÝÍwv''_ÞîI8«táÈ%™³¤.û¢U÷!ìªx&×€ÜØ_¡]ãk~AóÈb&tQyäãÃÏ|Ü– + z„_ëä×±”ç Q² TfzïšánFÚ]ØCyÐíž [¬ìøÍ J¯h;B¥›·mÛêÑ*O’ò«óc‹ÑJ<Ó°ÝVÌjä«ó˜ÙW¿S ly¾–毧\He¡!oâuKŸ7øpwȆ8ÙiÍa®¤Gbñ3ÈÈa+èˆD—ÖÄ!øÜ"Z–ï}DÜ<ÁÜ k /OmËúó®"îÒ^1ˆ0Òܼ®ïèG‘T>ÎPž¼y]ßwï6ž‡l»Û¶n¾¼brÂ+#÷”˜æ _•Ñ àŒo‹o¨ùÔ榗?\$éMy@³(Xöòѯ+ ã\øv2 + Á0sci4´9›¯óòàO¶ãÑ)ª­TKç©­L~ëHµˆã¬TºÑAë?~6 —çî’ˆi~3¾¯ëY2aƒQá$§jϺ«G›BŒ|¾BžÌáí ÖÐù|™·0³=-o .uŽ/ 5úöðíΩ\+ q=GA¡+¥ý]ÆèM=˜F`Ýàùa7~þñ‘ƒÌiﯙ­@Ç­ã}?[¿%:ù‚懫z‚v®'7ÓL™ÑÑžŽ/ÃÙ?žfPO…;óçj!`礅…D½J¹ÚP>$i£R/&#$— …+¿‰©–Ǭµ†zyy­ñëehÄ[8Oˇ¨\©–® O(¥s™ÞÖ[`ŽFà4ïèÉ/˜É½1¸aA¼õ SÒ§¿we±^ xýÄ9›£–ÉKÑô ýx@m×¹ÈQMŽ!k/gù«¸õ¼þ>Ñ0Ùx%Ï ¦¥¼”-ösql÷3£„ƒ¾Ý»n*çË--û¸GÙ¿”/ÙXZ–´COÂÖ Ê›h­°8¯&ÇL)¯ÞÔäb™ æÈU8€ÅF»ó8&PÐn¾:êùZ°L[5.•I 9ü + ®»ÈëöËùžž–í€÷›ß.3ÆkÛAZúÐáLý_&,~_À*lêSë:iFSêKý:(¬úfIQMk¸`•xý·èöA*,<^{+ÆÈž5/.E“ä¬TÅ” ±“fm­W¯ƒ`rB·uU%Y•Ë¥ýÈô5kæNr„uîêü¾9í + ÂàÚñ²í_|‰ðÄ_pÕ7úB—™Tmî±wÿ“Sæ1ÉaVãFÿûM“ÿ§ÃÁÌÉ%ÞLãËu-Ñì™9_%ˆ»r#œ×D,Cà ¥ü£ tyæ‰0 ™ÙÇÚp³L@‰€—-Âu0¥Õº‚‘obC±O¶÷n7Ýó’d@|Æ3M«ú¢Ù,·hý{AOŠw> 쾡­kÎå¬É”’DùkŽsKK:Ýa,¢€žN}b2¶È=”WÞeUŒVæÍ2g©ûþ}—ÂlŒ<}+Šòtü + ΰ/å/¬ßoÁ–û²™Ã!ô_ + öå .Ã0ò´%Ó›Ñùý<2÷8òæxïn!0Ü õÍl"&«nÊw®^Þ¶…’Ò錋3w­^t*Ý K¸ÊOøB™ÓçKî]§pLdhRƒÍZs?‚-©Å’Ø©Mð®072Ù{E gt(eÃÈŒiš\q"ÄÙãvø=Ì“û°ß+LfP{å(ãr( +ÂL$¹ÀâçÑÅÊãÇ'ÓÇ==`wëí=X¬6_D|>Ã-4ºŸár\7›ØŸ{“/‚æßÇ&ÖX2Ã;‰5ë³øó ³/ӭݯóm‹Å¡”—ÁHt9ógÍ=N?^,œRí*RìJp9P4·Q¿Ú›M]¦‰Ê»8ÖxéLЖ#zïNsVz{°À G• ®µ•r©] Ô:”ŸX_ñÞºq¼)'ë«\nÅó¢Z•«ªÖÈã^ò)6^ý4q;®Þ`ëS³"%6Šå´¯ÿÆ“PžPÆþŽl'&Wþ"kŸÒÜèÛí‚÷ Ÿ®Öˆ"W.ÆÇ:dv& ¿ëሪURc¶r#¦3n>ßTÔ[_ùËs>r(ÂN÷:oSŒ ¹9Fì¸UjXK¼jh!0 ¯;¸zóÐñ 2)VC j| àY—5qÄTBIνïsú¹ÎˇºÂ ¤~«~ö±Ö6ç溂-{ìS«£¹©4ô'‰%3¿¿_c)Õ/~®0ç7«È[°™ÑToÕ8 ræí«[0)Jb„Në>•>œEW´Ïl_8béŠ7`]·†cbÇo+ŒiÏyªå¡£:g¯ÓuöAMó ì«¸äõ ²U¥üb|I®WEòJ’—QÍÂü½×ézZ¾¨„m ž·)k`ÑÝk®i'øË؈û¦;/®¹é`¸˜øرTŽQߧň@ÈÝžá×½Bá­ã-;/+EºæÆ5?Ìôo†ñ¢5™ªi¸éÍpš} _7_b¨WÞ—D„G³@8vÎÞ9WJòWé a¯^éúØ'KNÁùÉ=ͱù²þ•oÛFœ{ì†v=°£€1ˆ-T L½ÝM5ÇâÁ·Žhnx˜Û¬7‘¾5LääLp¼qN!*QéÉF™YN0º¹9äœõwy*ÃXFoYÀ ÖÒ—,u€iËŒ—Ü…€­®(Dˆ¶&žô*Ó©- 7ÖÆD<»Vç8 Ä‹}¢ë|ÔHòHÈã»-Ì°T¢/eAT:©·z +çÿð‘ñq<‰.¤-ˆ¯!XX=A$@Ô( + 36Ã\:½Á4ý_?y±—ygs~qõ±v-„+lT‡E6cÉ×¹”J hZ’j• å1! y”=NÒûäƹ½KÕ¿/§–ëZÂï6%i¡.üMû[¿š[öÈ’˜Ü®òB=<ßuÙ<•™!é2éMæô£·xUjÙÚg᜾„™Æ)½³‰Á¹Á5Ù‡õrgÖˆUÐ¥£xk\h0ìH‰$ìûþˆö–ÇÞHõû£¦¾þv{s€â`ü]IGA[^ÎΤ[Á¸âŽ)¢ .0ݶßÜîÓëduBÓ]U»|UŠ;ò™ÙÙIÁŒ³ƒ|?¢ÞCÖ}UžV À`çmt0ÔòƒÛî˜ + Ôêïð7Üj[pM;¼à±¤Í%–;t>!ÜG&¤ût™¼.{qÓ›=V™È…Z4Ãyr²•sóŠ°Ã»ù´Â †ùaBÊ@……8Šgü`åù­5û|;\Ä4ã‹›ÎjÇ_Ñ + iÂŒS}žUÌûÕÇôåŠÛˆ,¹)È$û÷¼?4÷#¿„-d%XœëÊºÚ fª¥ûÿÖª6—)à°¾@éØ”©.*W˜K ÿc>I{…TiAk³Ä©O Öç~Èy;ç'D@»VÙR{Žöž1›&Žêb„EyŵÛÌw¢¶¹zA}ÆÖñ—æáqÞB©X¶u}Ô–^Wà«Ÿ Àe! ÝÎL™hbLá‹MG†ž8³‰ÄĠƒ·›váñ§‚[‹ŒDùèW©a:ÃtU¼ïí?\•™:ËÍ9ɪ÷¬ ™éÝÖŠè+€Þgdp.ç2X#ùÊòàçq ´,A…­ínBbUÌ·2Zî + Oâæl¥õ«ÐßF€e#{}¬·²½†ðÉЦ¼{€Ïæ8&—jÐËÈ4b(x3¡²·Kúˆñ¤“KÁ“iÏSF’9TÛ|n1Õ»ˆ4Ñx‹8ìM¼|¬a,ðáð!žÕÛÉl­ª•¯¼6XX=1ˆ6JôVtÔSåqÏÞWގ̽©Ø²â”@müÖJÍøuIÏß‹`bÍð ۜ读UÒ¸ ƒØ¤Ú1°Yös"ó³”ëÀ¼àæ!Ð^sOB[Â÷ë[zŽãMW§Ë©‘6¶X†he;©3sY!@ÌN“TÛ + ÏšrÖ¥³n¨Ó@á²Y1õæ®Ð46°£äÀ0ÓÆ… ®t¦Ç»IòÚáïlÖ—Ç„º<Xé^FF„,YÆm•¥V#^tÏ’®'$˜ißæže OQc + Ûü SDØf04;‡ÀNA}’&0~®{‘øÖ¦Ÿj#KhîÅóƒK EÁT!%·jÕK“]fÕU?åÑr‹ç«]tZnGÄv`@!)ý0q×’A¿½¬D ÅS'}B“´ŸU–dÇ©qŠðÓSó¸ÊTEþN Ó‘¼@á2Á°½Æ\Ìr†hHJšø„Aœ.hw,š^3ñ9JÂ/;s:¾Ùj}^™ã³^x犽–sBE+Zì¤ïÅ ­¢Þ¸È@®ÿ–³t¡–éXùµ3T„5ÍyZÑ8£/ýyÛ*5 îäUÐô¥ ù*6¶v}™­0ÄíüjÅ[,r7­‡V4€ÿ!,ãJ“³HQ\>¤í‘³Òõœ:ŒöqáòO+Õ†üýDnjˆ_Ó"z^Ý:]' îZ·jŽötÿô@c3YÓ*'…¦{¿Lë4ÉÇö•È£ŽbÄcÌüÜ'h’ §ŒT´´Ô´ð’¾#_Q-„0xK]ÅÕ€LQsTaÐ0"€>zmË㑼N(öŒ§-ŸÖÜ=_ö†3"ÑŠr×Qý›1ŽY-”Œ=ˆ¼Ñ7sMà©Í5ñüQvA½é%Ò,ÉÕ8©#ò9…WÑJ‰U¤¢JÏ + »¯w›/!ª<8…úý öÏÊ(Ù öHÀÙãßšNï!ŠÐg–'Ý_žô¼C5Êû¹¾¸{u¸Pÿº©«M/¡ªÏoW_¥ö1-%z療ãÖÁx²ýëªÇ>öàK0¨áÀæ0Ãz%Á’ö’7àYÛWC]uèÍ5áýÊ;¡\Q¡Y û=~ßÓÁ¾]UüŒÇ_éÑ¢·“ÌÆZæ©ê¬Î–.þv5uÙããLã §øšÿ¨A@ÿ"ñ„#†õ(ÿI ê_ ™n8x¦¬¸D^ŽcCíÇŒÏLÛ¿|ûŠ¨ÊhÇ~Y/Ï;gcˆ@»Kê³?öÎÔÜÄqªÛ]s¨^P¯Ë-k ‡îël *‡zAv·òæ“Œ¬Þ[<|>¸ÖÐä6Xì<\0bJʯÄ~f ‰ˆtLéK¡J±Ý‹X#,}âav„D1 å[PÜHœ}*Öv+V-e\/8xo¡Ä¬¢³©—¤}jîöæ«‘óÙ9Y‡Ž!Ý» WcõÈ Ñ°WJ§íã·>]ÀTD_² ´ÕUÙ—[ ìc5›.&+Võey =÷*¦A,¶rÍ’wéÅ,ÌÕ“ôÊoLõjyöC¤„Ïî0tf´óž©‚Hëàªù9sv"îf'0W’õ™¶"‡‹pÏÊêÖ°»£8‰-!°‰Ý!óCå ̃ µU>9w/uþ)†bPÑ`àEÅi샋žÂJDÞÜ/mW¶«€'ô…Ü´€û*ºžÑ{ø,g­#3ägT”hñæ»äqú ÿ÷ÆU©ÅV ñý…ŠªC” ¿-úºèŒìÍù`TäÝC°OÄv/‡‚òÒP:í—Jºã­´IdßðªÓã¨Yˆ øfžÅOµÝpˆžf>Æg¿*o¯!?Y?Ý(²•¾Âý¶õ×ñ’YÊaèâbjÿ 9›úÃ;™¬õ+v²ïG1'G2·›£ç •û($ÊuÜÁOø· + Åš¼tú]‡QeNŠ.n‰Æ†^?ò5î‡[ Vù¯#ýxpðíÀŠáÏ€òÕbÅÀ>Í–Hù)o¸ÆÒÌõÔªŒjwOªÐ·¸caœ˜ehqÉ/]/Çë(‹8Œá•ù£¬ú¦5~¡1?=çû€|q,=Y~¬DiêI2¤Z°–ÕïZ»f”¡î²ÔôAM¶}Ç0*x¦ûØϜƠyc×êˆ6;ù*l׋! >µ_DŸ˜ëÛÑÄ¿WY$÷mâÎ(·ë~(g«¾-߯5ûºªFJÿÛ£²†0ºd/üõ$}Hl EŽJ³—¯"ñ| ŒQ\Ì\‰HÔ€(á†ÒÞÿ÷=Ò­gGjWÛ›qao^Ù!º¤‰öÐã4Só)Sb”d•(èðÊ'ÝÏW;:aE ÕU[Ðvwmí]¹lçÜ,a"w¢¦Iz,q{÷Â)™¶S[‚ol~œŽª/ßÝúßKXÇÖ6êùœÞjã¿Ž;ô1·E„²ÕPXÛ^mµþ™¿£E„$8Ÿœã&ÛÓÓC» 8çÖS¬‘Õ«bj Ð;ã'*¡Ž`©£Ìúd¶cLÌ~/±O×…ða°rM æýùÔy•÷²dÔ—mªÚfQ2ºT¢oókcÒ½«@Í1Ý|®’6îL¿Æ.jšXÒ^”0 + å‚ HH=Ï>þ.Ž®ráÄ2[à^Å^\•öTl'S3þ…™t‚üο<œ¦Ú ˆëU“ ºˆ dScÍl*(Ð!E—Ë‹ZZ…áÍkýZ´0Ðp ¸(±A]ÕƒB]WÝÕÛ„o¯ïQ5Ù×bÀT› š[oE¿m€†$Äýù¼û¥þç¦uT~I£€n)B‹DRŸ'`:«ñª .Å?ƒ~±×ëXÉZéÞK[¯Ô¸œ“2²À¹KÀÓ¢K‹1®Á]*ç·p²®Ç–Ö‰·ß6¬„|úñý2U̲%C^ß/@Ȫ+Pùج :HÝ) ’®ÒÛcO\ÀKc¡þ¯Ÿì‡1%ÿŽn?ùœ  ðC˺_uzË£Ù¿Tò¥æR·±†Ú3©ƒžq'ØÜ¡óVYS¯|Ÿö|!d9µšýq(¬ C*GÒÒMqMéáQv³JÊɧšŠƒV;¸Œ *¾®ÀzŠ–03ÃX‘OòtU?u·¦ÖB9l3WGg"5¡%4Ñ„ódî·)ÃïÏJ®{\ĹM‘à”«&fâ(‹"æaÏò¨çµ˜S + 4)›ÅC8œxשö+~väÍ…*Þ¡¥?Œ#œû/m' †1Û8ÿ-§XÜq(ee§&»pˆÙ®X‡”¾¤6AÄY$uø + òÿ:mý,µSï7Ý~E4\10ÁKþÍÚt½ï¼U"µ5{ÓÒÝÏâUæZ‚À3Y¹²/¿é”Žg¥Ž&ñÜyF‡j›Þ!;¬›l’Ÿ)s2>kתt’sæº + Þ¨Ú\ÆS“w–{e!l4_Üð7OÕØ ï¶¿–x–çKŽ + a‹s¯e–°(¦´øµ[IÔ|âk¯ ÁÛÚUFÚÂ] 06|¦éh»vHÞÖþCÜhþmÕ¬I×ÿ†ÍJhd ô¤Å±§îäÄj_!äkC³™¨³ß çeü?Ü`þÿOÛ˜::ÛÙ:ZÃÀü›á + endstream + endobj + 15 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-4 -235 731 800] + /FontName/BYBURA+CMTT10 + /ItalicAngle 0 + /StemV 69 + /FontFile 14 0 R + /Flags 4 + >> + endobj + 14 0 obj + << + /Filter[/FlateDecode] + /Length1 2038 + /Length2 12952 + /Length3 533 + /Length 14102 + >> + stream + xÚí¶UXœÝ¶p‰»4HáÜ!¸»Kp- pwwww xðàî‚·àÒõí}ÎNÎùû¦Ÿ¾ë§‹º¨1ßõ®9Ö\™²£ˆ™½ PÒÞÎ…‘•‰• ¦ ®ÎÊ`ebaE¢¢s»€ìíÄ]€|V^^6€ˆƒ€ ÀÊÂÇÁþ"!QÄì<@–.Z1ºZqDlN Sc;€‚±‹%Ð܉©± @ÍÞtñdDllªÿ¼â P:Ü€fLHH¬¬3© Àh²CbþGKÆÎÜÀýï°™«Ã?r:9ƒ½´ÿ2¥€=Íìíl<f@s$fE{p> Øæÿ±Øÿ×ÿî\ÒÕÆFÑØöŸîÿU¬ÿã¹±-ÈÆó¿ZØÛ:¸º + öf@'»ÿÝT øo9 ÈÕö?•q1¶™ŠØYØ,ÿœ%A@3e‹©%ÀÅÉø¯0ÐÎì;€+÷/fQmQ U‘ÿ5¯ÿ~ªl ²sQ÷tøO·ÿ4ÿ³þap}œ@]pYÁ ÁÿýKÿe“°3µ7ÙYØ8¹ÆNNÆžHà%&N€7+dgô=ÀÆÌLvö.àWà¢øÌíþ™Rvv3ø±±í?ñ‡8ÌŽ®ö.@3›?AN³«­É?Soa÷'Ì`6³·±1vúâý¯×ÿ=ùÿæ`0;;íl€æEYÿ+ú¿³˜ÿéÂÙúOìejokkü'–²ôt°þâ 9€ß³7ûâ0;Û;[þ‰ð˜½€Nö`g{;à˜\sÛ_p&g Û_‰ÀÕfþiNžülìÿ´áÙèìü'.ÐÑÕøO]¹À#µøg£ÿT‹ýŸ + ÿÙü‚àÑÿIÆùC`Ñ?°Øk‰ÿ!ðH%þCÜ`AÉ?¶“úC`3é?v’ùCàìrœ]þ³+ü!pvÅ?ήôâgWþCàì*œ]õ³«ý!p)ÔÿØEã3hÿ‡xÁ}š8›Z]þDz¥Ì&àðÿ\¼ìÿiý?—#/8…+x'99›Ú;ýYàùÏbäÔä=LÿC¬,à¡šý…ÿ¬ƒ¿¬cþ‚=,þBðp-ÿB° è/ßê/;Yÿ…`)›¿lõg£³‚%f»¿leÿ‚­þÂVå_¶rú ÿÙ !ØÊå/[¹þ…`+·¿låþÙÀV!ØÊó/[yý…ÿ5gÀÿ1¿¬lœÿþŸÉ + ¾<Á‹)ä²1û÷ üŸ‡·¨¨½‡7#€‘ |êq³³‚*‹ïÿl¦aïPq' ;Û¿¢¦®Nà“Ìå_×%øZøo6ï ÐhŠ ¦¢@{B»‚Ë‚kXEM4÷ü9"0ˆ_ƒûÕF`%n¯5}Û§Žæ÷Ðj“5’Õ3'V“ááuõÓÛ¸¿,cPæxüœ/ÿ‘ÌJçhRˆ×…&²°â&GÝõLŽç\dE#æ·©VÍ^¡Ôx~æ.´ûO¾¤Z.á9lŠ*Ïõ´-J”8ÊKÂ$ßæ¯?ךªdˆ’~ož·]û³šý¢è!o}Ç“ýC…ÌÕ + ÒN’AS@åä¼r>í’ŽÕ@.¢Ô•Áž8P", 5™Z<ÂçÈ嫦[wo._9jDPU…œp&rÐa¸_€JŒô-I>ÓJnŠâî2‚â÷…q¯š]ÁbÏuH’c ù“*¾YqþŸO4‘NœšÎ{е¯Ð)Ͼ Ä?ÍvÛPBóû^QëiŠ òk¦–Á~‡ßžh0Õ„.yñ³[«©Ÿ^±ÉCKN[ ”ýtøò]+œå!ILèlg;ô³ÇïHÓÈꇎcÐ1¤SdóZÖf¨ßðe¸ó)«Æ‰»èÔ‹N¤Ï¨ÎâŒcyaôãml •±B²õÀ=ðfþ„~лô .©lÖº·@‚4ëO"@„äã!gF°ÒÕ2âŽæ›ŸöH8Úˆü /ät鸫xèÁ ¨}$úÞiÚÓ?W¬+…;ŒÊ7z˪979‰•-ƒÍU¦¼„¢h²„,Ë.(Q¨cö8ºÝÛ()†^ÛõÒ©+«N褢x0·åJýË*bDŸõwN®è‚y"â+0D ʘÈYvuÀÝíBºñù°c Å¡ÛéÎ}¹cýƘø[äøÛ»¥Úuúç}ÒÈ+ XçW×®µ[›ÌüÚr>ÉwD%µa„ÛŽl¯—Ù¯ÌÙ^« Å8‡#BÝeUÖ¯ ä[ƒ'î‚rŠ uæ + áçµ÷»åþ¹,–ebzË4Ѩ_ò¢Ìå2²óqÃù!RdšiåBWÎ0G¬`Û‚é˜ÑV0ܺT.V>˜¿õùE”IoœÂr› n;[{¯n=ØØÄ™J•°§¡eL•‹ÂäD½©+z­  _ÕCL[Q„^Ôl²ôgsŽ¡ßÅvPö@ó9­Ïh_–=c + ‰8sMêð|fZèLY&l\¹ˆëÞëi’oÑŸÌC(ÚÊ¿:©É—š$¾2s½Ÿø&•)dÎÙ¼.C™¹®…Mî„qŸìµºSK㯶;Ù§`#³pµ… KÓ‹T3X›—ÏnÆ^–¥[n6[èLŽáX|HGuJ^ÛˆºE + +™s°TëW^›efq2Þ¹},>ñú—ûà9ÒtTL=Plm‡ÞÃ.à-,¹È%ITtî`Ã]¡ö`_³Hm7E£vܗЕÜ3ÞÒ‡ßϪo§N# Y>0îw¼OÕ­] ¤ë,8Á1K&C+<ªå€ú2EZ•$ëlûLO¡–ÂÜUR0Óì7±Y¦sPú(nA¿`¨µÉïÇtF¶JÂ䮨6üÎOßÒC,F¦›ô¶ÈR’'éj: + Æ\a£ëJ|÷‡§]a>¾8G&ö´"o‡-•=Þç÷yGÿí("äø1<м—¥yZnp½I„VW‚ö¬È•RTÇ> ñ%Óû`f£ {Êãã6¶“%„ÍnÓÏkÄÇz.—\A§öL/ ]PP²ÛfbÕoö ä+Ê^Ï9·Í6]/ÁWäó{Qö¦ÏgÔTZ÷ + ®JÐ> ˆ« kÚÖ‡!¾¤]ëž¹ýŒÒ!Ä;÷¸÷)_ŽÐÞ_æ«jDÝ+ì5'‡A¡Þ¿Ûp“zÁrÑ^Ôʨ³˜a«FÇ¿ƒi¢˜~hƒD¾_‹à‘ Qÿ YL/&|ZP¸ÉZ Ç•Q'ª‡ Ø f5ð±èˆK O¡÷˜@ëbïÆ}®àØÊz¦^À ƒÁÒÇF + ­WûM1òžOtysO( Ë'ªÚïõŽò’€¶wò¤±¼¤©$@[‡¾6™<î§,%mÇx£¥ªd·`þK}ˆ^þ‹ Ôx°‰ óqãGý«4nF´©',nIgО©Åüq»Ž²W¦ ñPÐh[ ;&9dЭµhçÓ†“— £†Cí¢K«E 'M¾ñí=-Edp2ÞA¨qäýóe¿ÍYßHRÎ*œ§Æ»ït¾©ÒÃF:°Ég·ã›Ÿ^ãØjMz}ÑiEýYObžH©9Qûüµ3õÓ‚ð‹è2v&±§[Q‰®ŒÒů(sžïÐg.¦d®Ì1ž.F8åu™ôæ¥qlá6öÙWÉ™f§3 ßOT_ç¤ËÙ×¢oB¡¦j7Þ’72y¿FØ¿•|gÛß:k}ïÍkùŠ¥(Kä µÆg­PóÛKû3ƒA‘Íý»ý¶‹Û. ´ð8)ß4œm¹\BêÄ™r¯£:é‚eWDú@ö© ¢É™r øq팙aÊ„«Ë¹G©G/Å¿§¸õÕ æ*:?[ ŸÇ”IYúú}ƒÒW°W“åBùG•B—8ñžŽMV¯ª³²èøná¨od,nBò mƒ¯ ŒÝPíWÇx+«B>•Î(0 + ÚN$Z¡†gÓ3P£ËÞ…äí„ŽÏÕî²ý´‘o_ö¦øŒc¨åϸ9h«£k©È`’eÞd(=Ѓ6ÚÉGž+[SðÖeÍ]IÅ©›ºI§R›=¦?cƒ³Q¦Ã#MŸ<ÆTlÑ&&iP«¸aU>BrtgËCšF*~†O[ãðä %/?|Cëš²'ýú೑¡UŸœÖz+æ²½CšÛÅ>dvGL¦@…ˆVÞ³M)ëUN'|uÄÌG‰ý}i±ÜÇq¿þ´'’•„{4_à…sSf¸EcvÝ ÓÌ•$QËÈÔµeënM˜ªHÓKˆ­µ`©ãŽj~[JÈXi.iÅIFNÓcVeÇäÙ?éÇ ú¤~ãñøáqw¤·,Ï¡3%ÈR©¶}á𹦷}‹6óDaþ®*à Áf[B«š•0mPp€/Žþû =F´³}óvüô5¿cg{-ÿè‚xj9°J2uµÒûý:w¹å‡¾*¨œâÃLMš[¦OxŒŽô€±©ñšúXÁÆ ¦^c±0à ¢áÚ…÷CjI¿WaþP[”±ù&ôrgQ¥N$ƒ™D‘%mögk¢ªõ÷˜Í{Ññé…6 + ×8Þº)) ¼C³t–HÃ[4]z-Ÿ•vÞÚ R*£ + X'šÖÚ«©Œ + zðVÊlõbÑÔ\ . ~éC-^‹\[à$Úì㢂¨Ä»‚Ø»¦[ÊñqUQˆ3?ú &xqò Iæ~=¤·"ÚûÍŽ<–ñݤHEoG ¼4B&”º}÷IëòD1í4ÑžD©aÍðƹiß8û'\*‘äðµÏ`)qG—®—â0kæsvC&HµR¿ žH™Yž~Æ«7o¶AÐö6e×vk?x*ÿ.}©&ïñ µŸŠúe„Ç/Ub†#Áz7‡®£u:ødQ/÷~‹›åîf|‡ùcä„éöºRåS‚añïëR—ÏJrù'µÌèÚŽ#ÇË¿’³ã#¥í·qÃäÚ‰‡ˆ‚ + ’f + A…“ê§(5rC Ç/Q¢½£ƒ©¹}íÂÞ\7F/æÅjw5ʶÇǯ£|ºÙÇÌ›îÖ‘Ù#ÂYzGűsÄ §T9 ÖFŒ£8‘¯Âà6ÍÈ’aJï,|ç’â¦wƒ‘"sª-góìÈ\š‰SÌ*>}xÕDí¬ø•¯>ûÆ~I†|Îqnz¶ô: †æª6à’ù‘¡Ù}¿Í ¡~P}ª·Kîâ˗ᾜ«aá8RÝ¡ê<ä÷õ»º]Ü´$4\:Ϙï.;ñGÖu²pêfÎEé'®|x@8Ø/ó“ë™Ô¶ ¿ð½ÑÍÌ + Ïôd:IëXØ + ª + ñ„©¾í”Ó—t£Ôtègó6ZQWzq“«~Hö7áßj°¢z¥‘G× Œ²¦ÿÎV¸(ˆØ¯ýûŠéAimê¨`É¥/J zâFsÚðþñ†ûûXNŸY7AÊM\‹,ûcñÚ=Jrî3<… c*¾T?ÈkP6h>Px=T¨uó(Bæâz]žÌ¦HO7Aƒïº¿ÿÝ6½þÛqH:¹Àu,™á£ŽûØkãt"Ú‡(ǘàßr^Sªnº£ƒM&¸JüJþß + ?ºRј¡4+¡ 6†àpìš“JÁì)¿·×5ú¼½Ç˜#æÀ’PÒ{},ïR˜ž®ŠÄàÀV_,Lï»=tÃw…_zÖ$ØK<ŒÁœ\_í?¸Ø¼|—/züúÁ±M|^ïX<‘ÛÌ‘†í9#õõ%‹ò*y<þòc¦U™‹Ü]Ò´"*n<<ïÖoÕ.ÍO#ßÈ^"*4GŸ»†üáR¤ÎŽY#zZP›¾{Jæz¿!pó…ŠeñáÍe›¥ô8aäÃäI9y_`¡>‰ã[ÓÎ)ÃaÇa-c4£í¼m‚Ñó6ÉO¾éÖÅϪ;ŽÇÛÕ£ aZ£³w‡f)éK}d + ?mb'Rð†CÐSÂ4o TÝÄV‚óXq(_L™>Kr×!Ý„³c#½Ÿ kc½„]ÂN¶­RàÜQbwjo³Kµ(ϲµ#þžÊŸž&wB#ß•ÝÒ’;‚ËVIþŽÖÏõpºK›kÞ騿¨äɸb°Vàƒƒ€ ãm`igºÒˆ…~¼ÛÅWž°„`¥W\ç*’³yÐìéãtíÅi…:|ÕñêHÛëxEONÌÙŒ´ùN±:k‚ý—kj ä”ß)äJñ":kº¨ä4ºÐ÷…˜s¨Ô©ßÑ)‘‘„Œ±¡ÕFÌÃusÔWz‹«_ðyfÒ¬ÂXÞ–Fqh täÛŒ|_1X@Ó¦{Ã9XyĹeXš_¦?¡»Ä`; ¢“3ç5íW0‡£Àcpî]9'Í1Ûo{¹?ŠzÞ¼))A‰ëBÍ“¢TB“ÝL*q“y`œŸ± ˆ\„ õŽ†Óoç‹ó&ÌAGø!Í¢®"À½ø—ìSI„~KGÐÊ:IoÈeWºÃZyç¶ÙPJúð#éu(·9¤*ïXlt©¡F—ÖE\œÎ*Þ"gU¨µm G]xµæÜŒÎØн¯¼>Ÿ®z8]x¬vfÛä3’keQƚ̸w3tô,[óŒ9ªU ìù zêï ±qq>É%«Ï 7BõÅ1%&½C À§ÓH|ó’š‹Iê ²š"Ð Ÿ GÓí#ày$v°hYÕM[^›‰Y•8„ŠóˤÏ;ÜÕ2míÔ Ö¦©ß¬x0‚ß²L¦¿5<~æ/ü”Ù‚È %ˆ¨Ç S¿ƒ¸Ì™ò›uæ¦Å<–«ÕT+}ýõÐÅïDéðî%µ©/eR¤P + ¼P´ƒ<ËHC?D -öö39¾fž4PÛ§œÌm>Ø3³Ä†ÝÁÌÓ~B„{:øü‚.|Xñªe£¡Ô[ôc8øQßí5@GØ8TY‰øáäW + .ù•]ÚDÐïŸ0å‘!q(·žs)vÄH¾|¡N@…8s¢Ð\VE§‘™ ÉûEfùeWg =õ¢áVõv4ßdAd“|ô^EõÍmöˆ?oÿ8!„÷ju•×@1«OÆ(馚ðcó_=ëoûXjý ÈÜ–ã”™÷ï5ää]Þ)ÌcIwCCDf4˜èûâA´¨°y1Ñhór2(³ÁOôšGM/0rÓnˆTÏ#qCßÑ<£4Em¦I”PBT„ðg_c\ P‰—#“Úä\QkæÐŽi}׫'´-LO øXwB4[´<NUN…c_Ôi&ÀIõ±gØëkuÜW_ž4,sáQØ:ì«qÌúvcž¶ŸŸÏrŠöÉ€˜bÓ-Ø¿Laæ“êårän4v Ü„}žƒÍELéaÉ ¶6E0ѯٶº÷õ즭¼aî+Aa“ü<ýû‚2¬Ò¬/Ì´~§©æ9ÎR»–½çóŠÖ«µ'¸5.KœNu<©ÔƬ¶\-ßÄ¡ÙðÞɨ­¥>§qÈ2`s<¦ø7;ýlá‰SÙ9 b-Å‹÷bL â—e¦¯í?ÑVÆhDlþî$]‘j{ a,* + |l1qo7L½Ã{,“Ÿz±®1)È9³Na3xêß¡ ©¡ýý³&%½ ÿCáÏ_x&5Éw1Wu©kŒG"0’ + ÞÇPINg)1HP­ZàH(e—¬F¡[ǾæÌÈ·I`ÿ^ñ•G|*rËHÊ–ÅB[N빃ew`G즩WæÁŠå´råѹ9£±ß4ñ0Ze/j“2ÈÑÿ÷{UÓjÓ[ÑfÞ.Òù-½»D¶Wóâô4DÓ)ùF’ §Ù¬Q!ÖüÑN€%æ‹+C¤CÅÃpíËPQïD8ETô8ºR)î…}wÕÑ›8W[Q;-ÔêH»g+R¹q¥“°ƒ-,ë’"1Öä‡2¥€#g9“€+’Žë@&†zZãã‹m2Â¥kfèòMMÚ¨”Ùrq>gE6Kˆ!DÓN£v¦µ/¶¢+4xb¾øt«¤_£›³Q4ˆ™^eyþ‹s’=?†‘”´ù }×ÛK²Ã½ßƒq“ZëQ_ÂÊ› 5f˜•¿WŠÒ=þÔ}€KJf1Ïï&¦¢Ä³¡„ýrÐT‚‡l†=z÷U‡ Î…°"fä¸8M‰®©¿ˆsg2Ë#4,öVÁ;ð^­äa+b½Ó|¶iñ†ž>ábå•ð¹RéS#2}Z\ߥt:µ«n¸*¶òç÷r; Rƒvëq.g˜[W’†$ þˆ(–»T$±Ä}iÕ@ƒ’‘ + ‘Ö(riœzFøi&Ä¿x«3K‹ÎÐ(ÑÉ\‡¡¸}<˜öºÆY«íÐ`‡¶8¾Ä§½6ïÂn6_$ÀO ì´£•kˆïÌmÐ-ð¦bÃzT­î«(ÈÓÖ¦é]zäp?Z•a5z$-—˜*Æ!L²vyÚx\ò"°³ÚIïU›y»²ˆæHBÄ»øúÙ­ø@™ÀãÝÏ^ºúKä1ðÙ+#¾í5lõ¤"…¡…¢ ¹Ž&ô˜ÇÀ¥Áµí„¡SFq¾|ÿ4Mø@™ÅÜÀm¡ÏèÊ~øõ©Ä:Q¡Ÿ'^fO6CM²¼kõœ‰Ñ3*„¹Ø ØR=q«®-ã5Ëjðzy±ï^˜^£p6|n&ùR«Ù£ƒÞ*÷¼ŽÔ"/æô0ÀLææT£Æߘâ²àåôûÂAš$ 0y¼ô‰E‡²2ç.æA…P’ôŠg9ażO5¦•aSÕbÂäS©‹ р·´!½œG¡RÎãqoMÖË'Gô½•ËË©ÑÞ„}îMi/ØäF6š£zrF„>çĘ G„@…e/*¦ÂeèÌæO_yg©á‘¿Æbu ™OR¡÷+’Å£Ô–²Õ†‘ZGOx‘^¡u×5äbÖó ‰†®Î1òN™Í³,k½r¯‘Žœ~1ëð»ƒD˜{¸ÈÅæÂJ6Cb)¬ÀG(uŠÚ›ÖOar?5ÌcÍ°ôÃŽo—åȈ*ݼ«à^å„°±b§?ûÞ»¶•¿“ÚÇÔ¤’CzšŠ—}#Õ¥…Oé†?µ$‚p¾ù–•(ÿûô8´ÇØÝÎ!cî•ŽŒ¬¾Ö ë0qÀ³ I¥F$ʙߠ­Û²9†OKx"Ñ+ ˜¯,bÍçø.­ ï\sXd¯Gîo€\ ÈŽPq^#»)¬ºu¿m•ŠÏ!lŽMÃw$¸x B|Ñ¢ + $ÂaN lûÐáIÅEø–Q øƒ»õÞZÇa3­´•97NÖq¡z{Áž˜ê“5±xÝŒ¿ŒXè{=š} CFºq4$1®ˆ…ͲVµó†ÞÊé^š`, D‹‚§¹ý«¥m¶Å-òLKóùÖôz$ÿÁ—W®øÎF”¸_ˆ¯2Q‘FªUÔQÌKoûŠ>ðûŹ­âLp=É1ð%°¯›Xß"Wù?I„—Þ²©íÝuË3‖È7»¿ÿð¦ÇwÞAâÀápÙX•Ž¥X7°¹Ædö`ÞßÃåªx=ˆÍ#ÛzÜ¢ Á[öM§+fcà[ò^ÜE(Ö0wœ^‹\=î3·*r,! Z¦œÖ½2×ÖͤÿDÙ÷µ” ì~Ò·®?~napŠcuÁç~›„ÕfYx?axóõSRŒ‚7GqÑa·o9ÂégÉZ®æŠ—‡9CÆ( âÕƒÒ&àPÂXý¶ê‘d§ÕÞÃúálÎÁ†üg}î)âvXîïî—f…M»1ÑßMB‡Ý#ÆHœqré>qˆÓÅ9µ¨þ%M»²*"¥:"ˆ kËxRÊâa¶‚)lŸ53; óÃ(‡ît"x7ï.ߪ{,*µI¯ì‡°qësÇ$jE´'¬î6%ë+㢮%å²ß¾ý¶¹D&ÜC(Pš~Ò¾r»e,+øq³:Ù³¾VNcV¿N9€Tˆ{«íÖhÓC”SQÓù4ü¼ÒÙ)ÅX¿òÚ°¼ÌœëyØÔöÆ2éïÈ3 £Î¼ìg„r_i?ðpðùìæ5ºf4†ãÍ=X¨^5Ó}>ŸfWôCKqéülë¡î[Æð‰4ʈQߦ›_FO“nTa›b)àÇõŒˆìN‘—uÓ‚ýµÅ«ÒY(¿œ¥¹…hBiyY ‘§±Šc/ϧê{Í•ï¯Ë*?N>€x"·™¸Ž\‰Ó½ó‹ƒ¿°D¶º=0]œ’Øñœè®)ÉÚŸ*.™E»™?¶O]Å–ŽM÷,vç·>œ§¡JSøô²‡ Ê3a$º³UŸ]„µ”ø $Øò"}á¹ÁjËÄèÿ*Îtä¨öOÓ¿ëÇr·«X + nSþBrS¹é(Sâ§F{©‚$÷µÜ_µiúþ7£„I>ŸmN%Éûü“¼°÷‚O¯núžë…0+Ež±oÓ}6Õ¨š¦~Á8|C­?†u=ß&ŸYhJX½}Ui šz¼yªË–¤úo§„3€©ö-?P£Žã’Rø –ì¼e‘Ðüž|7æ‡CXÁD¥ÕÃÊîÆ ¨˜ä´ -Wpµ6Ä}]K£Ø + ™åØnßúÜI7ÍwP‡^Û…7³º!Wê¿}àŸ9^¼LXÂhQ c0$ðqð¿$`íq±÷äa™…^¶?¬U·ûòÀA|íñRþl3`ü´Í¤"ÄÑSÇÀ­ñ@„âmF¹Ê°ÏUÅ.¶kÿºsY?ß.¼T“ PUé¿©çTm4@üî” f âôk¯SGÕD}èñÝ°Ä«¢¶‹0Áù¨ÄåCGÆÝ€›æ³Ýwâ5²…¤McÁ4y€ª»»ã€Ý7 + û{CS¹Ðû_SÚð¿5«²h~jï“r‹* + Î짌h&έˆ¢2ODˆ3³©ÇíµÊo.Æ]]l;|fòbÌ„^:ÓÔû 9[ãA½¯G©Kð|ùÅÑc¤· + ZÉË#÷Í–“ÓÄyíÏ2kÇWònÏÍuö=OÑ,ª³0p±×Þ‰ÌþS¨Ú"®*>A=CŠ˜ÉO -¯0ÇÓ˜p8Å1ÓÈð1uyý£æ6ICI3ÆýHQe&!mJ´¨‡‰?f`]ßÙùÆ"ùhž¯~”TuúÆwŠŒ{qЋu!k ·èDéþú~Ë/¤Jð£)8Ïœ6îYy¦DP wôvð% ëh¢MDuÂöÈÑÎÕÁ1½GÖgç¼ÑÖÿU›«„q—ê^ñUL8…RD9Šã þÖÅÿE™¬‚©Êthº=Á-çz’¯R¥—‰LTJ>ªò·…”9*œ¹‡æù±jŸ"~žší´Ü¬åeÞÕ˜£R•ªõ†h¹£–dšY|¥ÂšŠ‚-&¹ŽÓkp?‚oõ$Ñ99ð0À§M*ƒ°K,M—3²kzKÀë}œµVèòÃÀmÓ :O̯5¸ÔÕ>Óë9ï吝aé(#å‚c]©“n¶Çèû?IVO"Q·à‹èÞÇÒ¥„Ùö¸™Õ’Y Hpà©ÎÔk)¸¶2Y›Ä1hès¬—¯dV b77 ]nN¡4{G÷?_×$Wa D¿hظš4K9g¡K´»Q™æ›âH¡R|ÍiTdXÜ…î ¾éæÀ„o ¿tÏ0C6ýdÑ=Çi¼ê¹¥¤"iUè(²h˜´AÙÅr) + èKH{ãX{Ìÿr­ßåæz¾ÇaÙüœ”W«©8~S—½ºk,ß’+ÆR«¼˜?ùa€h̃ÒL•ÚúVÿßРÔt™—ý àaAþ1¢ r«‹î5ÛýBO_ÒÐjx‚ué¢ãÇj¿ó÷É¿WÝÂÜ®@Óu[¤dÖ2 ûÕ3@‘Ò2aƒôÃõ²P/Q¯“k"¦³êãÅ8 #̾tšÙÜ%øÂyYaÁœõõ%Sh•Ì0X·-hw¡±W™Ìè¶ùœ¥\Š*.= + 1&öz .`ÙPaÁjj¾QxùdëÇê‰ùà %ÉÙ¬™;Ц¦¦Õ »¸£ïqßÿf£+ + ½X¿g£ä—[úcQ,›Çò5*BÏSõs*Àg/”¿pí´Ë·â̦µbËjb4‹Œ³¬ôˆa±üA|Œ¹[ž*'|J¤”’äë'B“ÔGúßöKêÍ«™±=ýZåzáa ÙΞړÕÜy•xCï’Âfí,œ‰i.q9“ï[ÌsÝ®„|ôÕ¬]*;\Om2‘ª3u.A±Î¿JÅpȽ´ˆìÖR8 ²†éáNŒtú ÉÐÊ@þeFÐœµê5ð5nÍ#F"R†Ìç¬ÄðÊ +  ƒ¢îÛ}Vœqx¢\v{Ò K@*Ão¢cb¦Ûœ#]}{û“¨8‡ŒUV—5ö 2æÀKMREôù:JÔÝÖ¤–¡F¡^ß12<ˆTÕgZ[¢ ÈAwx¡·îóï›%•#1ÖQ._1ç(½—(ôú"„Ћn*ÖwF‚žÃ|Briú¸º—ÂðOß+ap…æ…!ø÷ža4A\¹ö•æ2§û¢x5Ñ€›OÎïª!›»¢6ª'2 + ¥ðg X–r/,aÂ8Ò¸k w«‰é lXŠ5 + Óñ³0”üvsUã"Ý#ù(ΕòÕ#PA^k³oZÖ DX´úiÇâq‘ [SÖ™ŒºØP?b¯õ¤âsäÑ=9”NìîhÖA˃QÊVæUyM›Âœ”PÙà¾í{—öØÚÌ£TÏ·™â@ÓjXâœÊÚ̧çÌű94vŸ˜Ùáó(ÒBÔÉÍm1ýÙ_ãý§p^íYýktÊ3æ³SÕØ÷ØœP®­³›Ålñ??avO+ºù/uY}uÍ˽GÞ%½–g…øþåJ•pÜ™»Éá­!ó½Í‘¸·f|[¸fD“µLG?zà®KQo þó.·¬Ò¶Ž ÔÍÃÁrãRŠ|Ҝڃ5›vê³GºÛ—äLÓWÓgÕªpÈLJ@¶XË/Â Ú Ê¾ÙÝžB:9$ÁF›ÞS±zŽYS wŽ7T“¶óñ¾qʦ²ÓxÖÐ!Lêd_u 5—B%4µE܉RyÉŠíA”2T¶3¤l;ên‹WìC>œ:bª*(Rã]¸ÛH—ãÏ-#ß0Ñša’ho-”ÙÖxÿ>2›^Á*^Sù('É-dpçñáK;J‡°ÛÛw;C^(z¹cn%Ö2[«ç“°X¡Ñs©=èèqI”Y¸¸˜DÐcØBã |ùbR(G¦Âo!MS¡ÚœøÅ^›pkw*eÆJÅ¿µ=³8±½Ý}_z4´ '¥ªŒ´mëW*Óêw« + ‡IH /À›t‹7/iú ÇXû!½”ôÌ $æÐôõždïÿ-ÃZñ´” {îþ©6`…2x>ÎÅ%È éò±”©kts½¨Ž3oWq‰›d1áù3a;ƒ¯1&ÿe‘ž!Õd;æ(¯6U n£FOåÐxG§U…G`¾1£;€D¥ù›]“É•.,Ÿ‘¬³†Ú«q}<`÷×\ ]ƒ¥¡™!ƒß´Í~ð’¶~E¨,‘Hàx²€j,ÂúGå ¨ÞÑ!xů¼Í5¿œo£¼>nYå ~„õÝÈåMœË6ÙBÓÕ%åÂÊîl•þ*wŸ öÏZÇÍéÏÐ.#`(æQŸ”ÞD¨z»°À˜êXݲå + ®) îçˆü©F[4át¾(A7mc‘‹OØ„‚ÿ NDb¬jÅ î¼vZ9ANÿuq[†ÔíéýÓçK®‘˜$wQ|8 1Ñ_Ûh„¤NŸ™^]VlÐÓ4 gO×dœa_ð•¸",?¸~|?z|}©j=9ñl9ñHò3ÊD˜ýΩ>t‹²ÞÉê‚2ýròMªþŠ× ÂtÂ!{¢ð#õ3â` T]òx•ÔU­6%A.²ÎÂEy¶†î$Y-Ý$¾ÅÆ"ÿl`—k¤&ÒJÝ0™6È^Óžøˆ®©ïÈéÙOEãÞõööÄŽ%22ùgká÷æ^Pω½‡XȉÅÚm€¿qîÆKÉÂyŽ_©SVÈÃ×nª,d7íow  ´ßx[äà¬ÔÂô)¸p#°/¼ (|˜ð-nΧɡjNÕÏeû»ºQŒ~ Üx™<£Ò4Ý_ú†˜§H¿{°÷wGJ“½X„ÇñÙUw耞vù0ÿ]•žèE'x,ÌÍ]Ùa'G€îó3Ö·¯X"S4ÎæðŽ „Ei3Aqº]ï#÷ ÒLd³…ŸQxæ0 ƒxD i:7W&jñáP±U¤Ÿ|Â?ë½G “ ëVƒ¯øÁÔ•:Wóa¬§pçqiOÅ·¨6(07Úá>³·:´¤}K˜TëµA39›¯„ Ò"1ÉM/vÇû0H{xÅUͨ®¿¤3{!láAJͶöý²¥:FлLœ'&€¯pã ܈0jcPVëRí©}u 7†œ^=x/õàrža³Gay‚_q{ï-ZŠšó[/[‡0Aodß}v®c{6U¹€_’[¬÷W´Ô˶‹n‹7å?¡»7 + Dq¤r$<“&y(\S†í•û( ÉëØy–HœJÆ‹X£%ØÔ”|p°•²ñ¯‰"̤@ â Èp·‘£}íË iBÇJü‘Œ¦vQJÍ¥_¨Ò‘KÎÐdÕ#½cßßÕe>§Eý)t\!D r€ úG9öÁà4~Є†6݆k©Ã.h\oÿJƒ´l缎w.X %1§Ç<•¬DÇDc»ºƒ´g/¿£r"ô!L4X¦§‡_<òþ}ü¤<62F6³·ÖkìïoƒIyÕ—§µqõ³o²Ãy'ÞnPCVz_‘Ö ú‘SEÏáŠæ ÂïÔ-l…#²L×¥×M0œ ¼®¥A†IÐg<íx°©-¼-ñUêÊÜ×g;6KVýùé2Ju蟱+ë©óYƒn~V½{°@3Æ™‹¥K['ï„2O®È(6RS)͇ŒÓ‹i4€fCÄÞ‘?hÉybéÊiÍ + êX.²öãn±·ïÓôbÝN0ñü€+ŒX›ð + né(žæP×Yözs^æ/çG‚˸7ÄØõŒïlÝ\àödA€ + cdBsî©ÎëìÛ¢ÎñòÖw14á¯Ær–ùEReN↟4ãS "\‰Z%l®Tªïž»YLøÖŒ+¸x)°)ÔŠõ¨"ï–<’ÕÍ·¿…ñšF^GÌV„QYµ™·§Çl‘O·Û‘ƒY!C5¢¾K8îÙø\ÓÍï’ÕW&gÌÐÑ4;õhrç[ÇA v—μ( £Ú$DÄØeOXbéÑ_{¶Ô9¹!–y´…”S5ÙUA—Ñ'’ÎáÄ`µiùª¿8›¤â Œz‹œ˜ãr`å…ßUN?áÏ„)}¿ ¬pî_„+Žõm³ųÞÏvIN"^@®`µq§2u§ 1Òu¨äS0[8æÛ1Xf%:»èwC3Ÿ°èq‹¹Jy‚Ô­ã„Že«sÅ:×êÏÈ­42žø|…ä ÃÏHxD.Þ#ã£ÈoÄZ§¹çn€ÑJõZŸHf²ê9–š{ÌJ±B‘þÎÐЊy2ÝM³@&oši¿v¾|Cö&äÇ纖 + …ƒ×ooÍ2ž‚æw2i0ÛµÊzp0U_H;úúH”Ål-0Ëe¥m>'Á$ƒ´/±›pŸýö ©å3T-Näa¹Š¸«Œ4EÇYhRÔœ¾I;g²Zö¿„y + W¡”źÐîD¸g›áœ×W,„^Ç@Dó·qkMü¢²·éx´ÝíÜí—c—{°Ã¢" Ïx©M™Rçšû%+íŽVY@Në6ü*œü-õHc½®yè6þfñ‹šãaï—eS«( ²´¾wZfð¶8hÀÛÌâ³)dªYÞYSy&_ + ÉËßî49¶wd°»w°d¾¸‹øZ*ËÓsúø=¿³fjcYƒ˜zÓP™¦çÞ$-åt'‰ãOcmÿQ¹¤Ss«Fq@ííšÇ";®êmà~²C|b¯ü†Õ¿Wª›?Q:Ù¤íιؾ']k××/qMå>Á\ècßæ…S—÷Z+£í@vÅK[=Lä ›dd"yLZìÇ›äh :ŸžÁ-]]òÓ;ÅuÔYUe¶NÓÃÅ?¥%û^‹­¨'°B¿ãCÐ\?è\k ŸCº¤ëí¦ÎaŸ]ÆTƒ±Ý×wéf‘ƒÖÙTä néôm-´+zãmÌ †!b UëÔ\w”תTÅiy[NÎ`àèõ,1¶’.Æ”˜:n$`Ïm¤}¾UlE0ndвo` âȆæBUm( æ­Éá7Øå|œ*ZjÆÕ2AvÂuñâ@)?Añº²øaR°ÝzC³7ͼ¿Á;8ÿ3ßã$2IŽûF÷Ìw[3µŽB;ö­Uè + ó<®·M¹SF.ÞŽµ¯šœuá𩶘ŠºŠ F¹¨éþ„óCò•m´Ó¬™ÅJV™[3’X$*HöÌI8]Â#{ÙPnß=©˜•  CoÜ«½ <’&MÞ–¼ uQÌ«·âº1çëV3è[¢°¥¥>0>©NÔû~J¡,[ðSaÙ-ÖtžX\êÁóøvå}žš'a%šPÖŽm‡³èQ9<'|CÙ"ýJŠà؇±—õ<\ÞðC”¨'ÔÑYóã¤Bé­•Ç VZ/É<’ì½'j€gåÛ]ÿ„Í®§åå%×RŽì_’!¨¢áÏx¬—2/³bÜ1n¨/)k$…[Tɱ 12±ªKÃ~Ž/Ã.¿ü +´ Y¼¦Ñ1QBôØü,—t ‘4µ£|zQQÓ/Ë“ZŸ¹Ð#Râ·c¿¢SПb¡i·ë™V.—Ñè-¤Ù^Gy9mm»Jìlš>ô’Ćl”rcùùAúÿ;øÿD¦6@c'{[c'k$¤ÿ £ŸY + endstream + endobj + 24 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-29 -960 1116 775] + /FontName/JEFKPE+CMSY10 + /ItalicAngle -14.035 + /StemV 85 + /FontFile 23 0 R + /Flags 68 + >> + endobj + 23 0 obj + << + /Filter[/FlateDecode] + /Length1 783 + /Length2 661 + /Length3 533 + /Length 1229 + >> + stream + xÚíTmLG†ª ]«Æ¤Ö6F$xܱ{x"=¾ªâ„O¥b]v‡cËÞ.îíw¤(VD¡i + ¢"à]EÄV-¨( ÔòU+T¤1§Æ  Ö¢ºS쟦ÿšÎþ™wžgžyæy'ëâ%V’l" e^ŒI0REmÀP€IPÄÅ%ˆƒ8O±L0ÎCÀ|}1 Ôk&¨\!E29‚¸€ 6ÕÄQšd¸¹ÛXr ÔBŽ"p¨p>j§AKP7IPÒ4ˆ´mÑH¨ƒœ’Á0@R¡†bO›©5L äSˤ>õd€œNðÜŸî@pI² m$LB<Õ¬p¼üc[ãjºx¨ž¦Õ¸Ö&?Ô+8®¥hÓs«MÕó*–„3§Ì© IéµÓÑ5> + endobj + 31 0 obj + << + /Filter[/FlateDecode] + /Length1 727 + /Length2 1052 + /Length3 533 + /Length 1582 + >> + stream + xÚí’iTSGÇQ4âV Pó0v ;"Ê"gÞKxÞ /‹ EA­¨¸‚V ²¨,.U°€7ZŒUvºE«rD±A\Nµ_zú­§3_æÞùÏÿþæÎøÐرu#p1 ¢C6ÀÙÇ)h¹'ÄA12r&QXŒ¸ ,Fmdm ¶„ +±l˜–6‹Šp&„q$Æcg“a °£QãÂ8ðÅ‘h´Ê„ @ÁÅPq¶@– e¨%¥(B§P  W V£| §,ÆòÄy`¤‰ðã–%E*.`¬â4*J„ÀqAy”…¾„ªªbùÇXCõ¥¹›D ð…£‡í?´ê+ â>hˆh¡DŒ’À‡@PÿRºÁs"_òÃŒËÆùÐ &ÁÉc"7,Eü017ð`}ŸGqäKU÷ÞS,ô öXâçoöémGöý` /¢€ñùÀûú«úDb± ”Ag0 •P5?®Â¾¨çŠs Ãù @ ãL"Ÿ_s99±ñ4sk@3·Pý5s°,˜ âXŒõt ƒÅ¡âJHÅÅïÿƒêÎc¦jŠÆ¢\JÆ!L-bÕ¬óRÑ4w¥üzǦ¼kkµùšg×kÍÉM0öÒoÍTË=p“¬8vÅÙjW´¢îþå}î‹Ý'ŸÖ>¨É*úNϬ@ûxÎËÚ„ü + ™ (“e ­eª¯³ Gy'̇ˆŠëuìXõ¦¶IÍ3b%óìלÏYRÑÿ0yòÓSœçåv!RÞ”¶©§ó½ÖL‰Ÿ áœ}dkÊŽK©æå›^a!ò¤?æi5¦d!‡îßë}®ù¦¨9îÍ%7‡Œ¾iŠøíÁåËÍúÊ^ÎÝ‘’•Ö§Ä½Ÿôôöxë¹6ZdŽs24¯÷òpª_óøxš¬G#Ä?éȯã,Lêî2w”æÖ ¹Q9NvÆ¿å_j˜N¿d¸»Æªêê!àà¶Ï–ù¬7 ßÏ#w_bñ3€c`R;(& ªml|ZèRYö|m;-Ñ.ë]AÕ¶Yç…‰¡Gõ¦¤;žp8ÌiÌT!,]ó¶ rObN§èuõ¤S+]¾GíÝ[$ªÕcªYºuµ/.ÉvܬIñØòü ,.o¿ûñKcþìûéðѽ²V)ôÖCç売£Ãj‹±½)-†;…”ö¸ßF…È福ÉØ={®oب½ú-GX¹ª¶Å·âŽx¹¼Ø‹µ]ÇGœÖ»`âxãÖ¡ê·‡*ßñè!/4Lç + û[[«¨×„s{õÛ¥N~f_9ëXpg{àf:µ¾¦@o}õ­Œô[á + å3¹½ýX*OUúê¸7kɬ-™ývg°>ß˽}!ñÚ«Æ%e + s àÞ8m/O¢´_ë\¸Ð°ÆÕ3ùö±ww7œ,JѤ•u¥˜5}]ÀÏ7*÷OÔršdz¦”L™z#ᲩÔóªýI{e…srõ˜1:ÊÝÁ´iiÔ©K;[¤Q] K™MuãÜî\L¸`{ZsÑÎeÇsh-OE}ýîóz\5KئϹm_r¾%]†ÔsF¤*G·ÿE—䌭C„#ìqkw>váVÇų;õëi붜Û> + endobj + 34 0 obj + << + /Filter[/FlateDecode] + /Length1 728 + /Length2 3064 + /Length3 533 + /Length 3619 + >> + stream + xÚí’y\ÛÃÅÅ…ûsü¯°þ­Âa]|þá à\=HŒ `"þw«ðÀ`=p¿wuI(,Zïä€%¡rRÒréXwm¬7€1’зÁŽ(wà—à1¿“œä÷‹¢¯®¡e‚ÿÇßý«k„ÂâI¦>®XúŸö_5ôŸõIJD¬7ØZú$fè‰ñäþ{eóÛnZx4ƒÅ;‘$ƒ"bþ[øw* ‚·Ÿ$& –”‘?9nP9X ¦t÷_fx¬› { ,/--­(£øKE{‰žôë@œ|òßµ#ö$%ðР ¤1BtYtŒSšÓ®LX4dèxJ8ÅÀd"ÕªgGG¥ûpE>8#¼sýÃTÌ:"]m`øqŸäãOá{פê8·kVhÒžøË~qVÙ²ÒÿfÇ dIë¥^SŒÒßz¡øý¼ë áÌk¿¥‚|w¦è‘å‡O若Yï8dù=Ú{¯ÖûhK¥Ù¡0׫‡G4¤àòáûÖ­—Ö6詆8›n O\\SyVý–ß³GÐÛ•Ûa/Šâ]»ù 'ƒ)V•æ·‚&”=+ˆå™šê‘îg&Ÿé7Ív®ôT&QºJ³&KY]y­s· ;–wÿU¬UíçÃÚT^Ê›"èŸ4Ùšæ*y^Ô”d­>ƒgY»±Æ“Lm£Æt8Íæ2Å`aw¬LWÉÛPéZ¯“¼«#ٜѯ*`Ât7vT¥ö‰ï1bÓÉxkýré’8Žhÿ&Cx1²›šBöÒ݆¶Çßn åÀ‡z¶o‘$^ÁËŸQëƒ ÖŠ®ú_H±þ‰u¼õA—‚\ú´³b_\©Î>2l›öZ¤ÐSžÃ 3 ³‘;É5n[Í:}ãŒT˜?¥­ça¥î^ª$¦Uäög–;9¦Ü sÑo^¹“¿7rIÏ9$A™Ö›rG ÓÁÀ,×ñÓÏý zh³Áó©®ê9IS*½GË›fGŽÔ‡gÏÑQX 1&ùÆàã ¥¯ó}ò+ÄßÌzØP‰bëÓÎÇs-ESæØ™€}üÃLûjn«¬*-Ã{HŠGjd™%³|váµÄb÷¬$ìÔú¾Î3±`Þ•çxO XÒxô݈¡æDà6˜1cË}q?•8ž³tŠ¸ÒËÛΤÁŽñ(øó,Âï=*FU”Âœr-6m¸Þð¶zMÑpIDñuQ§¥”o¹]z'²ü®Ë=©äpG¥Š™ò%&빚|à"é×f½VeÚ~6CQã×°¥kž[½©rFoèi#‰ïêÚ®ØS~*ðùgóÂAš‡­göúÇØK˜9C+zS¸¬Ú˜Ë´èð7ðŒ + D™|y寕úHaÖȪY“‹Þ¼‡ß^mÙõ]U¾¯~É€.…aÞ{Z;9LlêaØö'fQ)¬¯¸A»TÂ)^w¤ŒÍŸÅJÛÏßðy5¹é$œl•Àn§ƒPJ–#ÉÖd¾4’>e`®†ÿ«ï´¶1\fs¿tç(Sç,ÞÕôÒ>ˆ/ÕÔ¦?Šj>>P + ®u”©MN÷÷7ŸõP½4Y½¥¼šKÛ½jœ /´é§˜›œÊËŒ>8vIoì + pö¡Ø Z¢v–7¤“-b‚È2ã~™ÎÞ2¢f¹…î÷÷䇎8j“¸á^a—ï§ÉÃÊ‚[<õžõ_*^˧g~;:Â=_„¤è›Š‘'u\ìåΉÿq£R.Ÿ¼³uÉÍ­eè~‰íôØóÈ5¡Ç# ç/;PtºM>ôYí£Z”`ªžsÎÊ­à‡{g?ì’%T×k6LmÞ›f¯’Yl/7WW^UnKïkâ®Çú!ÿ¼"x†å´EÝ\nž²â, S,q4A_›x8’o&µÃý¬,â¤Wf 'Mø!&ýƒÍÄê–'•òtFÍRAö¥£»½<±ì”M?ÊÔšébpÝÕÔþ/¿Ö8j¥ã:ºÝ ®¾}E‘Sz1ÃÁQÉJZû^&nÄF!ÆçÐ äé6%£•P?艞)ŸM\¶ÈS¿Á&óZmÂüÃŒi_JóÇä’×SlûŠ@‚ú•Ÿî{b<¹ý Ëî0sˆýô3jahš¡É‰ÐÌÔÒ6ys‘KUø^›–”o"O;ÿØ^œÆt÷ î[>ÚîÂ=ÃBit9EËB®ÊÚªR™þ‘Õº`nžLhU\â;žÓÝì1ããEe-¨ØÓÆ*[´`ïh¯ú®s²ªtkÅ™óB-„¡#ƒúWÛè4ÎP¯æ¨Â‚„"¢.¼ËÕµ¬ÌŸo« + h;ÐG¼/Žþ>ª9$°ý!96‡Ó-«ðíK5¡>‹öù»án + + + {ò=_ªÒ…âp•Ù†‰€| xd“6$©/iv^:èµBS—ã Ã`«ˆ6î]`×ÍâO?cŸ^(–¸`}êe·Y­X…µ4§^üø©vÊþè»?«¬®DœÞsBÄðx˜‚b)J->©È:>c]š¤&ßÍ«Z¬‡+y> ž­5R²©ùRU°¸\ZaÙ/¬$d¥'È;Vîø¿¥^Éœg~P#ÿ“%7) ‚#ÝEŠ£›|/¸Ñ¥g3\_”ÏdÊøƒ nœ‘R ^í»¼¾¿¯,ǀК­M1püT'ždÏÏm«@ÞRóYÖÚî@ÄïcÆ÷€Ž†^OÚ8…jQl:ñºøjZQVÍ ÛC + ¡%~’Ù€º0©x˜•[©î>Ô´1<ò`ús¡]†Ž•nÈ¥kªW6(pOß<µ{Låx”¶\›ºDGâØ-Ñ$Ã(Ê.òÍ—_‡¢ÑöVÓª{ä›݇ßÖ!w˜#ꆓqm|§øàÃsÁœöJÇS ù v±q²þfM+è‰ôº ÕPŒ_†ô¾ë0 ¿bè“Ów‰.cö#ï\=|þz-±²ä¹î³\E[çJ¾0ÁCqŽÓã"Úã^i¨v îk⟢[çôB¹Ã™Bèw¢´3túXgï[ÑoFêO‡„<¸9{ïAÇÛÔ§*·7¢¹ èj^T²Î>ɉ،äVí»Q¼TrÃ9ëy>ráckïhðÌ ,<‚ÍõJî·brUNÉà›È.„¯–´š„ÔöD£o:æŽã*ša(Ïê-ÁÓâ’eJK|l%¥Ž[ÑL+SK‘°sÚ®¥ÞãÞ?Ð,ñF.ž/ßìL + `âYб + ®[:– bâZµæ,«ÒË6ÿètñ¹¾m¯Rc»p);.¸W]'Z7×—È’2Ò<°y–|¿tõ´Þ^’ñÇ¬Í 8¯o£3U/¢¤ÿ—èÿüŸ€vPD‡"Þþ ˆARX + endstream + endobj + 46 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[14 -250 1077 750] + /FontName/XEPARG+CMCSC10 + /ItalicAngle 0 + /StemV 72 + /FontFile 45 0 R + /Flags 4 + >> + endobj + 45 0 obj + << + /Filter[/FlateDecode] + /Length1 1021 + /Length2 3810 + /Length3 533 + /Length 4500 + >> + stream + xÚí“y<”ï»Ç-‘ÝØÉöØ·3ö}7²/…Df0ŒÆØI–B + ‰$ʾ‡ˆ”=ûÙ·PQ‘Ⱦ…œ©Î÷÷u¾¿óÏyÿÎë<Ï?Ïûº?÷u}žëºo!>s+I-Ö ©Åà%!Re@ÇDÇJ" @¤¤©„„tpH8…ÅèÂñHe¢¤´|]ˆ"QP–•W–U¢¢t°^8”«Õû¥R´<‘8”3˜ÀñnHOBg8°Â:£ø@)ÐB£Ë_[|K¤ç‡DHQQA 匜®( ø—« , ð'Œðõúkɉó!øD >Å‚KƒH*°)–P Iðò?¶õ߸úgr}_4Úîù+ýŸNý›î‰Bþ§ëéå‹Gâ,‰ÃüSjƒüãΉ@ùzþsõŽF9ka\ÑH@úOå£ + @"ÌQxg7ÀŽöAþŽ#1ˆš tî·°­ž¹–%L⯱þY6‡£0ø‹^ÿJüKÿ›!3¡E8TpEZJZBÞ¿¾þQNãŒE 0®TN€ãpð@* " P2@<ƒ¥0X…ž#¡w`Ì)$ØÀžB‚ ¯SH(äs + …ð§ð»¾#”9à7þû µµ±ÁY@*Gh¨´‚  'ú_u—0(o_ä]@NZš €þŽ:ûâpH þ÷µ!¿ØE8LHdÒ™*=ƒE|í<·ÄŽãvË¿MÝÀçÈü%%ub‘³Õ×ixóBE yfç¥NàŠ:tã=[†æÛ“aš0:JæÝ«‡gžÝä”(d*΢– -h¨^Õ<ùië/K¤zéR2ý‰mÒ + ‰W gðVóhÌ2jØýMÿ½ÌqãL½ªŸ h–¡¼ÀÐL}F'3'&îN[´>reW¾.L3&÷‘1IÔð\HÿNàÉÓWýÒ + ÙŒä(›€Øñ°›‹‰ˆW7ǯϟAq + A߾ʯ­Ÿ3|Þå`íp¼éðxV$éÛ8ÖhÙ@÷Æ::’Oóx¼­‚î纭±G@Í|ý«BË ²ðc.ƒ¾ ·#ÄÙûçêsõS^U³“ºïÙŽÑ+¯Ë8¾äòwjSÍg¢æá\Ò|ëÖÅ{LÉý¦å}°yØRŠZ[¤ûú4ÅIæÖ×·¸˜©oq'O/ºÓOE—ÇS¿ öÍÔ¥ø('¸0gû`’µj8QÛ»o%"¿×|ýòM’jÙ•)=HuExÍóŠ>$å™J Ÿ ã]w’TåjJ™ýq––lœ{í—B|©? }‰è›Ïr å65Ïçs5²Ï͜ױ  `²x/½=Ä·yà§ûèS^h׿„«˜‘¾ÕÑ=Qhä åXŒuqý!›K¦v¿km!HÞº§ŠœòMŸísJ²”^k—H ‰æç\ãУ/é¦t9r®d˜Àxé R”ÆkÓP¦ËGë³[‚ÚYP§»Üêe³ÄÝGŠ]A-Þ=>Â5 ‡péäËZ¬–š™Íon[± 8 ìÕÍï1ëÚŽ¢]Éá´¹.ú 20 + f˜,<°Â ˜ª¼¸ªÄy¤ÿ×ÛÞl’Ò±8”7ÅC“¬ýµhJ‹W5źƒXåÈë²è±I¹ûYZ-P + óåÝöÉËMapîV,ƒ¿oÍÅ¥—) Xû¼+õÖ§© ÃûkÚÆaf?¸g>â>¬.wôž¼^Ϧ—ÒÊö.Rª»Vºc·V籨 ;÷íùŠ@ÒůFú||´çbXAë÷xP½ÜÀÏ\Çy0§ÓM4ä|¼ž^ŠmÚÏ,úw$ãÛNõ·&X'|×™æ>5­r\´2Ž5„3Þñýö`þV(ükEg`ÏË­~ÒVwsÈøÛ1)×|fìãîW`Ü@ƒ'µ&*‹ê$ü‹ÛŽ¿ôª©«¤@¾„46ªéx_¼UÏúh¸!mcx¡p§Ìb`öà—jÃñyµbÜF^ö½|z1›ã Ç÷Vn‡žWŠS¼VnÇÄŸ©üB½|Qú¤}ŸVšœÝ‚IbS + 9ä"ˆY<ÐX6Èq˜OúÊÕ$Jå@;­š€#ý1Lü!¼%Pöx×Ì°Æoœéäã¾úŠ¼!¹ÁÜ1utïuÓ¸Fg©IíT¤C‡±Äü˜ÃpäÝ!Nt":,,Ëcœ÷_«Ðü ÚäQG&é°ßs;ìh¯ffâäìl³°þ@9»Q„Á3ü§E²æowJLœîÒíÕ²;’óD˜>j¼¯¦O÷%Ö!¿êªs†̈ÆT@1Ê…”óòòâ{Æû; £.™/æUÓ¤ò–Ž¤É _ÿ¥$&åã…½ÉàV} ɷIÃÈĉÀkí^Q« ïÄr¼}ú]×Ý'LVÊk§!U˜·eÏÕÑe¬í¥…Ó×Y7vdÞ8´T[t÷̼«Q¾¢vùÑ:Z¯Ÿªi»³›{)¹LÒ*óþµU-dww:É ×0˜Í´\®œé+§vYÁ–VT[”ø°²›íCä=q­L£c?ú/OüNÊ­4‰%—–ÎmòN~z¿S/cºµ-pܾ²É—”Ì}RÍÜò]­`´ÚS‡é{[‘ý˜F6„{Ç¥£‘3‘q|bÌ•9ã1^;¢W³{‰!øm«àù½o4ñ×÷Ù—lnÐ%ûïç DBdpfJG`ßÏömô2]E,åÌ#ªV§ZK + ²•,HwÚòOäýã&% ¡¥Yã$îñ=\q­šžñfÜPPc¾*OÎg9ã„SS–4M,u¡ gוÔèØk+ò dóÝ–WÏØÎË[ѹÓlgÑ(OOÙÚ?m"N˜¶{‚Ylƒä²ª]‹Ž÷“^¤v²hÔPÏØ©¨¶Ý.)œ‹"[d$Âè + &< /¹RpãŠû3/rPÌWþK¡%_rdy7².=ãÿ$5õ)GayDàÇ æ¨wƉ“5*3ûl{u¯Gƒ­¥ïVü˜Ü‘e™ Û´J2cDSZq’D¡-ñaž†ï'ñ¶¦ýè÷Á!bƒ÷¯ç—»Þ"Pš›+Üy> + endobj + 48 0 obj + << + /Filter[/FlateDecode] + /Length1 1320 + /Length2 6300 + /Length3 533 + /Length 7133 + >> + stream + xÚí—eXTmÛ¨i¤SiX€tÌД€tƒ€4ÌCÌÀ04ƒ¤””tIJKˆ„t + ˆtª4JK· + ß¼Ïû½îçÛö±ÿícÏü™óº¯ëºÏ¹Ö½Öq,.v]!ÂúG ‰‹Üµ 4 EÀ€ˆ0˜˜‹K µAÁp%ô. r玠àaˆbÖ%Ü#&æ®>H˜½ + àUäûW– àEÂìlà€– Êê‚ibgã  ì`P”0(8;úÿ*qô¡îP¤'"LL,"@`v(Àjƒƒþ¥¥‚¤þ†x¸þgÉŠtÇx¼O>c AÀ}ô 1HÙ Šqù?ÖúßXý³ùCggm—µÿïQý ˜³Ïç \\=PP$ …€@‘ð¦Cÿ­§…À<\þ¹ª†²q†Ù)Àí¡€ÐaqɇaîaÞPˆ. eç пÂP8䟘éýeÒV31U7øûÚþ{]×Gú¸Bðï‚¿Xä7cæ„„yf`a0X“ˆùþç—Å?öS†Û! 08ætHH6H¤1æ˜`Hð`pÔ€zcœAÂp + S`Fƒž Äÿº°bw›3¬¿f‚Yû+,.€|\ ðß!iä E"~0¥8ôo–”@Š¿ “®ô›0¹Ê“”(RýMâHý7I Íß„é©õ7ÝÁÔÙÚØ9¹;Û¸;üŽb\=0ÿén‡@þÖÁœ;ÍoÂèØþM"`0‚ü"úböyòŠ û?ãëðb¶‡ýÇ?cáôb4œÿ@ÌX\~#æ€à Æ + ñb4Üþ@ŒòÄh¸ÿ ÔˆÑðø1ž FÃë7bž3 ï?£áóþÏ“þàÂÛOS $*&Hb¶‘¼#‰þ_óŒà07¨š ƒ¥Áÿ>övH$Žú냹‰þÃO`˜» + õ†ÚgfÝ„a[ ²œXwLq7Ô&RwÐňG¸q‡ò¹Ž—(§1‘GÈÍêHn–Oõ=äe}À0Öù*Fã*µÖ¥~tN¨7d2Å”çZv·}-µ˜Í=¥^áÆÊ„™%aøt–Ò˜Eh~*Óp»·Òk6Ÿió<5á_<õi:XÎr*Ä©¯H¸êzš‘ˆ‹ôŒ…¥w ‡è +oÞS^è€óåè"š{c£·'í}O¥‚Sãz±¹ïÞ›Æ ¡´c½Yh´N\{÷Cùt@D¿:µÎíCñüD"1 Blñ{zúÎ…e<©bõáÞ{ׇLNd­$M㶦·:Ø|¾Ì† ™"ðš"Å0Fk0à áï™v¢‹Ÿh/H/I«ŸÐÒ|¦h%ð-I~°Ø\L³Î}(Álj§\¸Æ8øs°rûg)­ý~ñ‚ü‹†Ó¥`‡„oJ‹Ù¡¤?Ã5sÁ¦`Ãí³5ÆtÏÛNœ8É÷–5æáå]¸]¢<@Ǚʎ´ô0¯ë‘P~àìø÷ý­¯…RVþû¤5ƹLRcÆ|WÔ}­2¤ž))_'”è’ÓÏ€=質#›ÎU ù'"”ëÓ_ÕW‰ÝÍ$FÑ’BMì¡)tGÿ˯QÔ7 + -Ü8Á,½¸U&e­*:¢C?îty~Úm(!ë µž1¶díñâ5ĦCê®SÌ>ˆáátˆ°÷S׎ᘂ÷üš¢"~.âôòµsX² + ÂØÓrã$ÂÉó^»0øÊYeË”kÞÇ®Tbb ô£$ªUÔ\å9²ÆwicÞh|eb"£ë¤²4Abýyý + P 0¿õR¦û<çú°ÉoŸ +x~ùÆ 5†Ôo‰s7íö&ƒ9ðÚ¾‡Žbo€rÜ~ÞÞ&¤š>T8ècn´EyîsÑŒÉXl¦mé½Õøô‘¶Uü¬4àýi]ôOÅ?ªŒ ˆ€·@ë»*ÃÁ•Ê'ÍøüÎ]ã‹r––ÁR^6VùÊûÁDYê1^¢jÂÆÞýd”ëVJ³¤¨*~bvÛ>3:‘{l¯";æKRãL9ý͈M¸ÅNJ>QoÂ#mÒ&ÐTS©ÕïMô\£Kt!“J‚Øm…Áø‡;[/‡Âüò<Ív†„Jo±Ú‘d¦÷ÚNÖÞó¦F˜Gô^-0^AzÑŽ-uoï÷ºž*¡¨ËUŽM#8‡Ûé-± + ]ŸÙF ª3!b~)z + XÎEgîiú·¢ïHþ,ÅfQÍòŠ½.µ×6µXM¢èDUYÜr€œ>³ + úîÁ‡¬Ì˜T"‘T_Šk “)^,÷Q»Øw =7ˆG'MeÛeUo¨+l^´d¼ÈÞzÑ6Ù-‰‹­R¸C_ø»î…#–àô¾4Òz>ßòŒž÷,üžÄa$(ÿŽ)TŒöI¡VZæè + RN1X,­ÝË|o^±–UãÏÅŽ2J;±6¥]×k÷ª<¸GHŒäÚ׺Äò±©f)ñÓ¾Q5M:ÂaüáMÑÅ’£¡pëö/˜±áAUp$•ã„mw_QîÏ¥!k}îðXCšÓ¦*‹Ð¦ùRîꜜ9¿qp«T_£§…5dÀ|ué4f×n¶áÁ¾>=¦‡û8Óo )`­©‹«&½‚Ét¹¨}µ3«Š<Ž Ê…À»Ö­yü|ý£¥üINX¶õß»¾¥¼=$ñîJ~äAsˆoÖ“Йž€O’G§ò2¯¯hÆ·×ÃÓgLðXe܇e¾©¤ud›fz&Þîç¡4¯·òœa,H)y*ÊZýîl[&<ŸMß™*DBxy™$1N9ç¸[Mv½Ûe³ÓOUq + ó¹ñz²nIö+”ÉÞWAMUâË.¡®3™±Ï´wx‚ŒæËUÝLfZj¦Bp¶k4r‚„2ûÚ®4àmÛ?Ú<§ÌìA©¨&R—Ü{¹l¢©øiì©/Ož{Fϲ´Håw£û.8äªç ÅMïA,½@Ÿú½ŸùúÄS k’ˆmyE¦&¸õÞ/c…>gL³¦Š®­sM Šä’gˆ‡j7?-õzÄ“›óÚINøö¡Ö:XÙ+fŸ×òò†‰Ò§¤žy¬,íO2‡®Fs7ÄFO½IšZ+ fÍ+LÙ¿kQ‹{¤Àœ8_ØÎŒÅz‘Õ|<µF”õª ívÿ^u­¬ãäã•8±ëáœSÝEæêUKÕf7Šu³GúQ¡âTUÓÙt´ + ßqªÞ‹)s + ‡Y3|QÇŸÙ}Ýà±íº¾t9ѯZzÓ†GxÊ1íÍð1‡«RšBsÕwüaÃ)sËì•9ÕZXæ{[KE…g¸9_oÀõœ½ª¨ÅÇ:¦ŽvpÃ/+æKü©k–´65fÙf‰‰opSS:F”@ + q‚(<`¤qéç¸Sb›W-¨ÖQ2X@‰aüç¼rÆÈ{‡¾êÄ[2Û><U…¦é à¶TÞ´ë¡j‹¢åͼóä &ë+SkÝêÄ^}HNvhÞ'vØé£Í÷uËÅk:M=W£ñÒÙÀãÅ`™äœÝWß„øÐköà®ØëžM_çÛ í‹mly|6›G¦xºEÁbÔ‘•©S`ís.Ü€ Õ¹Éú[BQR:È‘tB’g×tÇyeg•Ù·æy’”œÑøΔXNŠr6¿Vâ=ˆ` +UËhzÞYf™•=øškAaœŽ¯à´~JÜT€Ö±ñ¼Ö€±ð±GÑËП¯,ªÞsò¨·C6ÌÎêù,]ïbì©bœ6ð‰3¸kdøØ(ÎÛfs»¸Õ7À^ ¸ + ÎvºÍ™;"´šÐW§+…tLËumõª­•ÐÛÃ#™”¨2SBŠÎ„ùÐ!É8~ÅÓ Aô + GðR9@EÔ·kʤm+½Á÷0 Àji»—Ũ;PaÔyW}w;vÂ.༮<ÁCÿUI–Hž[¥Ã ÐxÎÇqªA79ûmt>8óÍ ‹¿é£ðÑ0îùC¸ß³—ø£ÕRß|7iD\ ;¤²Ò/žWze¶ˆzµÅjzl\¨½þ¹~“’ÒEþÕ}Yk:Õ©…¥C·ºë:ÚI¢"¼Úü„QW½Ý6r)!îtÛõЯ0g…su + RÉ3S'Ž€‚p7wÈ T¾¸”¸‹ö0›¡ÝV>)¯hãØ‹.Ã5× ÄA)꼚×-%úáls/ÇG{ITÉ;E¶ uß]+ùýw‚ŸTH\¿ÿ¹Z‹\‹r…Qt‰üj9‚_µ¾£TJ·EÆ,Ü t-§È»Uá±+ÇG[·òÞÓ|˜o|}[›ÿ™Ú úA¬È—hpâõ§ ”Ã¥$ûHÇ)ßnŸ1Ã2úõö˜ß‘JîÒɬтkuN/µŠ‰´Qµj?+Ÿt: + µŠ;¯ß²}qpŸúZ«mß¡²7ôƒí'¯Öç1–'“Wù½"=O­î#»¤¸n›^f(U8‡ö8¹´I¶Z`EƒÝ “¸âUŸ¯?ëØU@ÌÊy™Ë†H›,K©˜FßÁ/#V¦ï´)w߉|Ò§?Õ®V8Ѳ¼ÙÊÃvˆ¦§´5) + œ«ìœu<»±â«Æïd±jä*LòBe‚-NAOÏ0às<²R°ÔÛH ¤þ“é%þ@¬“›áGϧMup—ÈYû4\µbßÐcß\‡ÄÏ­dÅhvXUM»\[ÈS8rÒ à-“ýjÝÚ-ÝZ¬ví‡7Ÿ'R¥,üy@O£$íðkÐm÷~ë÷æt¿º±I‚Ãéë;(‹½Üó±wÅÒ« ‹œÏsh>Ô]=k€Ï6mžJ=)çrÛþ±ÂEX(Y­AÂövÞoþØW"g¡ûlf¡+kâÒÏjõSƒn¾½#ïÕòËõùF§W¹¯½'Wü„a&r®==Ùv2Éu òÄ•ŸétÒ@·Ïqð#CW‹¥úH¬T…ì–Q ÙuCeY"=ÑÕï#^[ŽÊ—íÓ?än IÌ(H[2õÏŽ Ûê5eº¯é.~sŒ½Öß­'όÉvÄO,ɈI‚ÆÐ:äH;Wë3׶S-{u*wûĦN‡’+>«oâ3TX[£VJ,}Îp€¼ƒ6-àVÓ(¸óUdòÆHJ  wÂÔ*àõ¦®3̆|¯û)Å­v Ý½œñ+~/¬žIA&de`ê‹×¢ `U£°ÆÏÏúÀfÍÃûw nn½+àž\M’ÒýžT³…ˆlÕð´^ér»’`ûæ+¡­9Gͤ‡•¿:ß·j¿ßîŽø܆^4gë)» + %Ÿ.3Œ$x§2EA·m Ô&¹x¼üD¾•ÚNÄà®Oâ‹kËådÓŽfÑ“mþ,p–w鯷Lį‹âµ"“ _ù©t!è<ÇÞQ*~igf”#HÕ}ZN‚ÝZ‡cO2¯ôbõÓº¦@_®ߊ˜<<×Øk8DWë«Œäe¬wÍó›Ø…D“óé5.h6éË;hgòäk$ÕÒÖP¶8Å$$œa‡X‚¾ÎtY3+n[ÌXÉjtgwš½¬Ç ¤¡°|üÞùª¹™µŸËÐâä8}ªÇ*´/ËÒ¾CFóˆQìÆäÛž®£-‰òæ’FÝûÑÅx‘¨ËÚÊy”YÞ¶°Nš´)r_¾ÊY#Rvë3™gFŠšh°:»PûÅAq'×Ëkü?–œá]ÎðE-S² UÇžñ×Âû«3l;<Òk¾3Ÿ¢"¶ÛÜ,ÄS—áçö·Vn±µ-ZfŸ˜µ4û}Q}çW˜÷M¿NtþØŽiLµa‹@‡Î>L4Nî~VAÞ8›êzK²Ì‚é7HoÑñÝøDŸÏTZfögëýŸŒ7GÃîǯ½X7—_àm '…ðjÔÔV•<~åÑ5KvsÌý](üGÐiylÿ®ÔËeMê»Ìí@ÿW3~ÉÀ5Ñüw[YIorõÃN6¯ÆåÐTýžBœ§k½‘bßÞYiÇ0°^™xŽ÷¡ŠõìO½VA§úÜä{…uö‡î$7Ì×Ïæ2½ï@q¥~ÉmóóYé©Aj#gŽþ[Ï:ZÏ£<Ç2gµæÂÎå4êý{añˆfp™š5·òFøÌ + ©DÁV¸ÈÖóÄÈ Îi°]ÍÐuÔJ8;¹·݆Ēôö åëŸMTŒ\ß/i•>ñy%1¬¹Ò~vÈoƒÈˆ>oaQ¸ñú´=[ÌŽ¦¿2sÛþœšIs/MvÈ¥â¬9½Xn¨FÆô]öm>j¹y†ªäó‰”ÄŽ•jwß)"îm ¢EL„Á¡ÛÆwïéxθPzâ£hê9×èó¡Ž× cxü + ^ìÜÁš°z½&VÜȧöý@Îo×`TúQ£R‚ÿ,Wò¡Ö°LkŒ¾Mjï{Û¡ÅŸÃCõ›>¸ùJï&ègËÖoø×ÇŒæ&koT5¦ºÏz‰ãè_ãÅ•ršYX¬’FÍ#n×æ2™Ê¯ÉÕ2|6+ÂËŒŒL½¥âæðÚãCð,+YÆPr[Œ5ºÿ˜Àâ$—æ`䎾ðã›H€ì½”œ§|÷ÛGþÜiU¯tRë>­‡f7¼?ˆþ$:‹Ï¬21É)¾uv.º›õPùã¶ÿ÷ ¸†Ÿ_æƒSFŒ}ô7B X©„® ðÇ>ÄK=7}æi‘ßžüKÁS7P VÈUõö:Â5ç©"~aÊ3ÌÖ¡ö +FÍ&ú%%W™¦9±yþ¼áµ + Š•ö$y9Æ°ƒ–_>6:tÃxæ®×*÷ŒÑÙ0Ž¿ëYû¸áÀ¸ÛTc|7í­™ÜŠ§gFò|…i>ö£‹ É–£ n=e+:9¸™_¢òÓò^OÇÁ¨Àv5-î/»ŠÜaqzz7.Ë,äPe°öÑ!n†?çÛØ„ÖÙô½³êXe¢÷Qq‹×G…Ó ã=Š + Ñl{݉ÃôKy¢_"ßãù[h™S¥u¬/àl‡ + Z®Æ\ÎÇ\¯Ù°Þ'@V ¼°k´•#¯­}ÖÒ[ibü Û¢¾-êH1iS©ú~ 6Í×Aà‘¼Ë“¨ÒþYK5íÏlô1‘2ïR¢Áò°°‘µU‘XÄR`‡¶ŒÐ£¿x¾í}ÜâUKБtþ$!œmñBDkóvÉvK1×SRÙ÷ü"o¢{ƒVtò6ãñf~¥QSþ(ñMt='ù˜iL‘0€2$³°x­åz!)5Î@ýxXd»ê'KuŒ ¿s}H>ûlâàÞ m/òa§¨=(ßúõ~@‹WÊ[sðüã \Ý“Zï6e÷ícþ ’¹>œBÖN ªzYÄ i¤¡Ê牜¢Ð¾ÛôeÞ¤q&4J· \Ê'û$嵦.%0Zq%ŸÛ+[–ëdN2%ct7Ì™3?çÇØÙ‡K¼ÔÖM5ªêÉü_¦Ø19qá—Jqz|)PO­oÿ‰ÓªŸ ýÆ&*œ[Œru`m ©ªß¸ÿã 8 SQøÂ6uÒ© åµ2FàSþÄ^'Ù‡Zz¸ÁÏoDzñÑPî–û3WëóÑ(æ!ì±ø„£˜÷˜—h@OgcYBÉÛÛ\?qi…–½ù‰UG~KöùVÌ1g_V•„OY÷C~\²2Y-UsýécÁdŠÙô÷]#Ç QºšýÖãè¹à//%ß—œ¶ÓK?Ò·PåÏü@¿qP§æF©…öÅËØ4q±Lå*5Lt_îœã†* ÝJG3Èö‰oU ,4…]S«wóË$á%ؾPI*![gEª›„NN|q¥ + asñ„¼fóf÷·h‡Ü«©‡à¬¥ Ê-¦>#°) u>ÁoUZât±í{"À°ç_ž7ÇŸÓü0>Á¸ÛHÏ™ˆ;4H¶àp‘we¶1€cú«þLH|4ZTd´äÞ8”¡>âžã³Ï•mËäz»k¢/añ‚Y]Âûb³ÕC¸´qxʾä¼<ǤUaßuJÎPµw4/Œ˜÷G¦nD™KΚ`g rþ@U“¹5[Àqåg™XC¹¼K­ÔÃslMK¨›VcØ£OÁÇ,ÜÊ+0ì*kÿMÞ\®U{ïÓ¥ˆ9¸mâä¨{‚Õ_0+„É»ÿÃu¥”'{™Ïøvi å7ž úÚOðü3º‰v¾Œ±»û¿ÄF¿ª§•oúÚÛÇQçm¶7åk¶Î´ÚOÌešõžòã>Þ8dS¸_Í„÷® ßù”ä;ÉÍïOr»HÔËH*òÏa•>^.‘‡×é`µwgƒ!ËFP®j­j†.Ë–][¬û±÷k8 ¿¼0?â¡Ý°ÍfÝR&ò?¹/5o­_2±p2§‘ÿV œY®0ÍäÙˆéÑKÍ‹]×ý´ÃF¿¡Öü]FÂ4Ø Ní©6(_:5ê>³×UWq%Ñ4%>š“±Ù®éñÆÿkÈ¢`7Ü/§ðÂeñc@樬Qy¬rù.^qú”öÑ‹ÆŠJå›èMíe®³¸_4u©—:—-ÇR)ŽeÉ/³Ùܸ?ÉÂýZýB8î¦cYƒgî.ÌîÐSæ7¡YÎW „»Å†a]Óe_%wµë"v£øÝnEœâ¯ŠZ‚\¸]È·ù9&zĬÍ‘¶Iq‚¬aé4Q‚Ö„’ueÖ5¬ƒǵx6+Š£Ùo^=]8ÄàÍÍ€v¯§Ìk5¶†§âñ£Ó ¤C¶„m,/›ÈÍÞ ’?ÙÁï‡<;‘V̉ˆ8à*–íMaÉ°:ÚwŽèbH¯Šš¶š´nT¦´ÅŠJ.N_sT:éìå Á´^·¾ì‡ÎKI} c+2(ÚC ËWéWCƒåiéÜ¡ R$`©W‘I¸ø¾»‘VŽã#0þÌDˆü¡ÓK~œ•_º[“sÏ+÷ê´%À«Wr,[ï)q±Óêõú§^Q¶ßd  °ØcÆ + %Ã>eÿZ¦j!F.ß°¼x;×4ÔÜÂ? " PSº kÖq¿P ÈTÁzu®T,è'ªZ*²„è¥ÿP7¹Ä¤7+¶©`QDä ÞÏkeR=­ïF/[Oø×êaÿ¾x–?0Ë„ÝP¦æóàƒËNƒž O0hC³ÿ¤ N|pðä©j­¼x!ع8d–€ntFpWVGõD]SE6æ͈°òõåóË9§¢ëRÿ’Í+£{•:_~–¸õd¬ò8ì½³o‘‘ê·RQMß+"N&ünw.Ü$Qª£¿i󮪎OgV\è9‹y©ÆÍ4É‹^d š-¾GÎ|ÈÄ&»RLQ¾êa¨Ø®9´EÒëY¢»°(~­.qá­ý3 õš’Güù!þÿ þŸh`ç µA¢.6H'bâÿ’¨_I + endstream + endobj + 52 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-30 -958 1146 777] + /FontName/LCTKXS+CMSY9 + /ItalicAngle -14.035 + /StemV 87 + /FontFile 51 0 R + /Flags 68 + >> + endobj + 51 0 obj + << + /Filter[/FlateDecode] + /Length1 811 + /Length2 784 + /Length3 533 + /Length 1368 + >> + stream + xÚíRkPW-*TŠñq+ò $»@D €ƒ@ QÔMr“¬&»aÙ0tÄê((Ú*8”2h}`y *¨ãƒQDÚJ"LÑú£"Ò èØbÿtú¯Ó½öûιçž{¾kóeD¤³ŸŒ”À ’ Q*°ȕžå ,!1'‰Œ†€zz¢ÀO«( |‹‹À…ÏbÙ!©I¦p…’öB=‹üÔÂ¥Â0Z ÕŒˆSHRŠC:™€ŸJÄú-‰@ !•e E —Ò@8Áâê=rð'Ú2­æ=”©DÆ°g|:Æ¥Œ$TÉ@å,®ˆdNƒŒ—lëo\MÒªT"L­—×çôŒ©qUò;©ÖhiH0R)b25Nx ƒ2\«žŒÓ˜ + —ú + ΨqåMxb®ƒ²œ–*S%Âñ>$d“­0éᆠ+ £Bb#Ùƒ#0œ £’5 Øã5ú¡fB¢pX…peˆÌzÿ?é°@BJÊpB\xî£(,™…0R.<HENÈ @ã˜Ë!HšÙ˜h69I±ôSE7ÀÅ…„¤ ­‚rZOx‡ñþŒMLT~|]R—êìŠgOž@Q7wÀçó7ý•¸‚À´08ðñ@=Ç»R-EA‚fL”ïk9ÎÄ¡JYšák泇ֽ¸|{Q̹úæŽò<»¸ + ÔRÔòu–ØðkR”ßÜ\Çv,LϽѽ°ƒ×š¿Åë3Õµjïžpë³GgžZ˜›Tìê"m˜Þõ¤éBè¶)?9LÐ;¤aÓ ~Ž{qxgô~N^Fe¯ûRŸvŒ¤l[wiYœÂ¢¼Î;Æ$°Õv?•iˆyr­~X#ÖíQL=¿æÞ~×FךÚù·sªýÛ;Tþ^…vKº¤}ÂÁð¢YÇÖË×vTˆªÂ-%ÄÞÅ=)û$ëS^Î[žQA/KSW + ³î<õuˆíí0 + 4{u‚eqë·½c¥ ¾­eæÆžg›Ô\Åo{µô–†[¼(êÛýÏÞô¯“d äçDBÞòÞÑÀíßÜyš’öè¨íyaÓè‰ü&°+}4· TlÎß°ºsýÒã»ãZšw­é«Lâgö_¹ÔYkûU¸Õ£ûRI†Å¹lGêLÁXZæ ó# .ÚOA«âRfÈË£rL/W6֤߷9—¶·üÈhMV^¡\uÁݱeÈÇÖô´hÓ“’‘,vD¼Õ÷›O GÏÕ…×»4͉o­ÿå²eH‰µmÏ[3®Ò¨„œÚJ¦‘cKåÛHë «Å½Æs$gªîU¹•6å[ªµ1¿ž~Æ`4».0ÔêÑ&¸pwnÅsÊÈÔ¢§©k0jkjè­rŸF^JÍúN”è+}0×ÁŸ}ò&*NßRÂOè¬lyöì†àxh¹×©™u¹SæÞÎÑ°Í»Äfb‹þÃõkd jòÙ¹’ëCÁµÝ¿Ï¾{ð~igCWÁQì9ývfm£ßÑCíUæ§KOŠ·fn Ìu}0jĵön{ÃMÈè=P°±È Õ(?ýbK„ƒ«ÛŠ6Ž¹"ìºòYaoÛ]Äõ±^‰dû½–Ì(ÉZ2&i()ëúŠ{þšbÜ`×Pу›,(l‹ + stnÝ»ºmX.äÏŸvòæ¬yw‚G¹&J|ÚìW—z9yÛgh^{ä¹]­ÅŠâ6ºι±ÏnÇz"ö®¯'Û´½Ø°¿Mepvg^Yò/?Öÿÿ © + bMª1j‹õçãõ* + endstream + endobj + 55 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-36 -250 1070 750] + /FontName/LANEXG+CMR8 + /ItalicAngle 0 + /StemV 76 + /FontFile 54 0 R + /Flags 4 + >> + endobj + 54 0 obj + << + /Filter[/FlateDecode] + /Length1 712 + /Length2 4818 + /Length3 533 + /Length 5364 + >> + stream + xÚí’gX“Ûš†EDº€„j€´@(R¥„P¥÷Ž tBh"½7éEš€tÒ»H•Þ¥ƒ (HUªtŽ{ï9g®ÙgþÌ5ÿæšïûó½ïó|Ϻ׻+³†6Šp²@Ê;9bÀ|<|b@˜ª–BÄÊ + C#ᔓ£,ƒò‰Šò¡nÖ@~OHL@TLBDÄ + „99{¡QÖ6 ;Œã—0ê€D£,áŽ@U8Æéð;ÄnÔv²D!1^<@ ÔÞ¨õÇ/®@-¤+íŽDðññ(K Ðir$âýIÉÑÊ (üWáæüOɉvýÍdÿÍÉüM‰pr´÷"VD¼jN¿WCþfùcý7T—w³·Wƒ;üÿ{Lÿ¦ÂPö^ÿ¡;98»ah ª‰vü»Uùš*rsø»ª„Û£,¡ŽÖöH ä¯ÊUå‰Dh 0–6@+¸½+òÏ>ÒñwˆßcûWª&g Àõçþ¥iÀQŽ/ç¥þaþ³æûÏú÷pÐ(O 1„áûmüýþóËôokÉ9Z:!PŽÖ@m ÜG#þÕøw&'Oo°€Ìÿä÷‚C€ÂO >ÿÕ¨ëˆrqC*ÉŸ@ aÑ¿¨,ÝÐh¤#æÏKð{¿ÿ¬­P¿§ƒDz"-‰22©P8Ϲ¹ŽÍÚ§é7Ok½/ØM{r’C=Ú÷“ØgÆ6,ÄNãh–ô|[#:õ”ý¡Tx•¯ªx\û‰Y——]ù"5§Õ`«ñê±6f¢j..nà÷ëbµ5·6Íê®­E‰ +T³?ÍÜ)ÄÀŽMGhÊçR:ŽWXú¿åF·ítú±¸‹ †Ï SŠÐm¨)*™õžká‰ÎúEÆ > ´p“Ï°¹f+çëÃdüݺ·j‹ÂpFgÍÁ¹ò±D»ÒÍÛ¨q¬Pí\Äϡ׋ë6®…|r«úÌYÿšûœ«¬DóKÓ Ñ*‘òÁCËàÒ§BM&¿¿~þÕÒÎ3’Hlߌ™âÀ7fá\k?SÛÀsù¹ƒK?½is#zÏ´Æqiîr:œGy}E¥+)ø= ‰9¯ E‚Ú"ðhEŠ4x,¤An`€¼´jæîb`ï­õþl;ÆìÊæKѶô’åsÞ·lÕùVLÖlô5 }²N‰”eÚ’_ì¬>ëÞ®åر'?æ¿;ÊpO«ORæßidÏa²¨U°åïdØiÌ9ç”’H¤š:,õ¸#kE3²È10ÈPßêiIµ·[£f ­jÍY#XµËWMà + A6uêEîM=Mw £›Tö®ÄQ<›,›ÌÕ%³[~¤XP¾?AW¤éÙò”‚ßÅkq Úâê%¥‹°iÊûñ‹ž7Å…>“„ܲª“ªLÄEókã]íSI³/QÅ‘R»Œ4‰¬ì=“ÅÙæJbŸXÀkódC~EqJIýói¼6kEÆsìæ!YþZï¬ý¢Ï„eˆ•KÛ_Žâô(â³~L¹ú~K«ã]+i­zCOî=YžKÈ0n—“ßîÏ Taz÷/ª„û‚O!iÁ/Úˆ7UÛâðžfÔ°_.o2¼¤Ô, 清=«¥jŸÈ²î%ª½[”&òQ`t¢Èº¡Ûï¬t›õl¥Æv)µ¶\Êj ÛÑtêsŠ,kû¹H®dz><4"Å/…JÆᤘ︶$Z—˳ËÖ6u2êü ¶y9´*rž¡`æ@­óð1ì\„  6 qMÕͼ’tí{ÏTYùÉÃ* h"7ˆ_ír…±…ªá¸}WmEë}[?Öjâ› ®mº·ˆX_èœ; + Ü+»F I÷¨·0þ {°÷mI]¼ÙF gùíð’e1™c¹ˆò,¥pI¡*¨éöФ7˜È÷ðšÐÔ"V—>¼¼ïl•s—ªñD¯2öÕ™´ÿSÇœ)3$3OŒÒk·åJü + µ÷Jô³VúDeŦÔ=°)v²ÛÅ(¢s)Xrݧµ”iÈ\¬êéSÚ(–ê`—¥ð“q¬gv®\æ’’°’ø1 –lGˆØC4¹Cf',‡ï‹ôÏWöLª´†gÃOhç& w¢±‘Ûõ·W®Œg"¢§†)‰*”§ÜÏ+}.lñÙ'&±Á¢Äj{xz{žŠé\ˆÇÞ-ÁZ€»¤ä’{­tGÁ>K;øA**qlq—g¯‡ + ÊC€KÖ´}ëº(–€}€’GÀYÈ6}çÀ¯­[ ćª;Ø±Ó ¥+´ö˜¹ÀFnl­c3Qëôo¹;KFb$ÁíßÍj5 nµMÆ$}#!Ã¥kjÑô’}'ø3 ¡ª4’V"{Š5Êë!‘…ÐÉ„ºƒ.î]'’µé¾…%›ôc‹V8ˆÁ‹ÃúÏùð¥ìÉÉsn}–™ï¬#­É¸"à ìÍKñD™t€½ÙD% a±{i‹Ùó{ÝæÂX‡—yȶ֩È=-B·ì@ÕJÝÙtåÆe|ÌU'í-…QÒǘuq“4¿‡˜ùâ# O||5ÂÞÛéž“‘1د£L|½Ú7Ç,çv…*šRe`]Ï]–Û£] + õª^ƒH(ßÆ&ÞkUI8-9ŸQEÅ=ÛòÉÀC¾ñáHÆAsgÝüƒTü7p>út8§Ñ¯Ñhªq²'úÊ'ìg¥‰ßömùl"B—×F¦¼ªµ•Ú]\>(mæêèaqVFHÇ9Á½´ÁÀ´{±¤óþU²ƒdÞê–v\/…5™"Ê3ù«Ò*¤;Œ¥¦ Vîåˆq‹¥uØæ`~˜\Ûô] ™ª¤,0sH«óe žwܧ=oë®\Ö÷~Ê ãiåƦX)NPåhF{C©{.¡ãý—‚ÏÂJ‹'½à/ÃSö4ÞP;±¥ŸG t„¬¬Â}x†êGª¡IUÑF•Ò®z‡É8xä›×«0gËø +ý:›åB|bw´î6‹5i ÷ƒÔbøM ðw©¶Dê3-û$_¹‘Ïkt“»¥ŠÁ×¹>¢9:•,G¸-çaÙpqVº3Œžó÷™.a›´Ÿ= + /úàÂ;ÜDtºpc!ê†ýìêз>ª~}äuÉ×" jüYìJ<¡3}–ù¸F5dt±¥"ï^§R­­• @?tÛ¶joDC—¬…`K[¨é„±àjÌÞvCLÎIЗ}³ã›¥<–Š¢)½8ñ†.&‡0~Ìb º[/Ö>Æ&z©·B¿ C$\ñÞT4†˜y'kìsu÷ÄûN:;ÖJ"Â8« + O4ëèEŠÉZ(‹ìР¹çO”8—xÂøvE ·*ÕKƒç‡U¡¹fI{Ìv픉LYßp;W¤étk°%ã™lƨëµ#Ã1;†="r®<—xo]#ïÀ(ñ]àC¦˜«t¤~í~J¡m/‹f:-½5ž®s¬Ä‚+÷98ÚL{'˜âl±ÿóœvv¹Š‘¹Í꾪¢!%)©Y6ý&Îå“›‚kÚ:_¸àÈOªèn)7Šy‰B‰+iÚÉã¾Æc¯“ôf?9h.v) X±üæx(W«$ÙäO¸ef~üet §T¦É£Ê+X*U=Õ£•‡?§Ñž˜UÑð Tìx‚yçxü —lˆÍ设Z«Ýo˜F@N˜LètcÄïö5ü¤kååH + týNq¶ö^~6âÝ@ þetÞ–/í¥:m.¼G~?u¦ß&†+ýfjÏDùãõXIM¢é©mâ=ªùv,(! ï•Bª6 m§ „bQ#hŽ[ßuÐ"ëcÎRGWýFÞ]¢¸Œ[*äEÌ­Bû¸Ú³­øoX.õ_F]Äw4^Ro•‹*|‡¨|u "®¨`­ßÍÜc(rV2ÆE“6W·¤~Á¶ n¦áê×?d&s³ a$p£a¶¨(³Ê¬”c»øe­÷Þ`¹Ç¾õ°µë »Ì£§ëæNMa•¹+û²5ltÂýƒ?g8ä+¾ƒJNè†é¨Kø‹êƒ(ù4¡ì§Q¸lo?1ñOiÅÞé;2Zël¡_k“«ñ{jJçË—»•¬@=ã™*%{i¿‚ÕZ…xµ¸GGIù±aÒ¨!>“Õ‚€jö Q¹²º‚Á\S^||ÆCúú^äè^$­<ÑÃöažðȱOC;9÷dt·˜œÊ]Îé:&ªâ]Q÷H­|jϦ\ !d’>mçîŒÈïyÊb¾båêÓ—þdnÚY"ñú>¼WŽ]‡Ó_æE©@ØÀKײŽªŽñg§úNék{æþóÚŽlèŽB½àšÕA6™•LUmž^«¾~ݳžûôöÁa m)74çrë5÷»Þ †.®}ÉÇDuè†M䃒îºp¬‹ èB)f¹ÓLÃÚ‡GŠd˜ÒýÝ•ïL$ + µ6‹òë^šsÞ÷Þ¢‰üö1v ๲þ •˜²u1ŽxfAŽHA2S®ëV$‰¤Ï² + L—Àõ:ú + †#(ý¼/GnJ½Ì˼ + Šh¶ºG¥Ñ¶àAHŸ–¹÷))'òsõ‚¾fŒ¢þ~?µÙt¦ØÉS¼¯Æ64T§Fæà`N˜Ù†,TL’LsiâÌDK³;¤Kü<)gŠ''ÔFÄ’ÛnÌ#oǔ˸(%‚DÑæC,½1ØÄq®ÿ²­ äô^abãþ´BÃYP‹Ë’ÖO*‡¼«þ“MÓ;E¥¨ŽbÌ«å>òèmdX†ôSZ½AÔ + á}®ŠÆÉ´ŠG.¿ 9ß[+)|•ãÍŒâ¯]™£wˆo{W&P@MŸ­èCkÜ64ú¿¤±R_Ò¼C”Ì.ñÐÓ0gŽkÐ|AÜã•j:CÞˆ0°p™¾‰bq£û.jœv€Îä9›;¦w|8餖mqH,ÁªêÅ|¾\Ï8¬\}c7|(ØR3z˪ ;âÆrÆ<£²}¸?ZyʱvFžÖ¯ÃøðïPœXKÑḟÀS·Þñ+IB.ìºs%lÝ6mYâ¢ïƒ@ϵפvcô‡ )‘-‘[¨´Z›öGÜú¤!kÆÝV4R󳟥½‰”Tu‚#e›½ ü_É–”+6µú ÅYœ¿ÄsªòZ«ø¡Þa˜í¡Ž0Ž@úQDcÜ)ñÂÊïTX©ÖÐùÕ’Ò!îÑMðhÓ?ñH}˜!"ß„ÛôOÏ’úÉf¾&Ÿfw¦ÆÕë½`«ÌÌ5çôC¸Ù¢XÃͯQˆ$øž ‰ Yt¹ù°Ui™N²h²·uÁ±ªþR¨BœYu\_F%+á¦lË)^s¦1ãl7Ã×We&í›Ãò’Øx‚%Vj*R×’³©HŸÚx'‹æ…¨cPƒâÞðó”¼òc²/ÄÛ³’ô¾²ý &é23É œ-…•õfÉÿTŸ#@â1Ñ‹ÝÈ{ n·uˆ‹nÕmIíÅf¨ÑçYç\¤ìK + 8>ï@Ç®¸[“c<’3r§ÖeÕA<é?–ÍÔp?^Ü,ÇŽ×÷>Ø>H Sþ\6 ™ÃJûv;Ä)­ê›â'GÅ{þp}ÚE2ï7Û’Äɲxw§þª\C†Ù.Øv“»§]Eû‘¥É—W°Ã‘x´è| µ×,ôy©¼a³F¦(´šÓÐv¿V oÝÇùT|E{ /[ÂÍ@f4d¤ªôœŽ_g5â¹Ütˆþ&ÉhHð¸~k—ÜžüÞ£O7ã¼»_So±ä’›¼nݲhJG¯Üðúæ.w@Ûó#¾Jt^i8ãÝè*7>]B…E†áÚ¾ à/`ù‚`ÿ¡tãèÀä}ÅÑ軞uqùÐ’€õŽ]ÙP¢SmˆìWÝȪò0¿òêbPܘ`ë$ÕZÈS‰E­iĸ¤xZÙÀèm2ßšµ'Oúî¯rëîqvûtë’OþcÜ}‚\aóÉ„æÂk½q1#E}þ^J)æW…á%°$® ¦Ý4ÆLúņ*»PTæ«òX[…Ém:ô‘°»)³‡‹ùzh¹J $L>Fúgü É3×3ö‘WxÀð3ËNVÐ~=¾.ýáQh¸æÚäÕÃÇ“ò ôÄôÎïðÂ.oˆ÷?׿]Ö¡@·‰Šý`(¸SÝ·øš®„ÙÛ‹‘N3G'ÃXIñB¢˜àÒ|߸ݤ°óc0„mDœ”pÔev‚`}d…ìÊ) ýº.løä‡ëN+µä½lüþÆ]s?—mab.;[î¶Mìi|ÈúŽ^Ÿ½á 4dåSIx=yW^démÚÛubwûÅÖ€ädì"ccùüHÙ(¥v—Y8aÈ·õÍÞœh;AÙjé™VÚçiÚ”ôã <]?)Èÿò!úÿ€ÿ–öH8ãäGÛýLጠ+ endstream + endobj + 58 0 obj + << + /Type/FontDescriptor + /CapHeight 850 + /Ascent 850 + /Descent -200 + /FontBBox[-62 -250 1123 750] + /FontName/DIDKVC+CMSL10 + /ItalicAngle -9.46 + /StemV 79 + /FontFile 57 0 R + /Flags 68 + >> + endobj + 57 0 obj + << + /Filter[/FlateDecode] + /Length1 722 + /Length2 8892 + /Length3 533 + /Length 9449 + >> + stream + xÚí’UT\Ѷ¦q‡‚½pwwww·@…{p×@° ÁÝ5H°ànÁÝÝIàtÎ9÷ö}n¿ôè·½÷Ëžÿü÷¿¾5×¢¡P×b‘°rþ–uvò`á`åI©h)s°ƒ8XÙQhh¤ÜÀg'i ° ˆC@€$áiâüÛçäfädGA¡I9»ø¸All=@ôR ÿpñ$ÁnK 'Š…‡-Øñoˆ¥…HËÙöða$@šÿøŤ v»y­XQP88@VKа Ä …íP + NÖÎ ¾ÉVž.ÿÙò»¹ÿåÑÿådý¥´rvrðY­QØTÿ®þËòŒõ¿¡ú÷pYOU ÇÄÿsPÿ­oáqðù‡³£‹§Ø ¤âlvsúw«ø_p*`+ˆ§ã¿w<, –N6`‹+7ï¿dˆ»,Äl¥ñ°´Y[8¸ƒÿ©ƒ¬þäïðþ‰Á&­ ­¤+Åôû¯®ºÄÉCÛÇ bÿ/û?kŽÿªÿÉ â 2bgegçøküûþç—É¿­&ãdélq²iyX8YY¸YýOá¿SIJ:{û±ðr‚X8yþ^$N.{ÀÿjÔq‚¸z‚¤A<ììì|üÿT-=ÝÜÀNÿ¼ wüŸµ5äïŒÀ`o°%JV6.ÚŒ™”éÎü¶gR¯}ê ¬dT@@š±)¼8€^‘l=º8}É­³|PŠ?Þ±gfw EN\çÞô‘¯>‚˜© »"•÷g@ig3¨­9÷Mÿ#7Œ¯°)غrŽó͹sjFÂ&”Q(d‘ÀÛ“Vľ+_©ó~? + pYcþ ®CØÐËs«¶TÑÓN*¯0:6®?™³#ìÄ°=äšm:6×*{ªólœÏ{uÛ$;ïï ¿“¡_¬\Ž2-@7µŒLt¤ž:ÕÌ<%Ù:%c“ + *[á4@õTT’ Hz‰‚ˆ`»Áæ*F‡öC{&Ës²Ív.šÄ‘ŠtWpá + üìÅ"z4Ã1h¨ + °ÅÉ`Õ{Þ¢›AP ^ uä²^’oJ;™³¡ ² ×Pb¿Û­0ÃÝOŶ§ÄšTkˆÐ$/ŠßÒ)ç|Åy¦=MPHöÁ + áµ{ èbûNmc±ò\<»!TŒl${ˆ“¸ôÃ&”„¥¤'ß/8SÇ ÎäØÙªÉ÷­ˆLÃËŒnErðé‚ÙwÔža>ý¼´;ÂÌ!îm“ಭg )¡®vüÓ¯~É,õ-àGèìÒH‘iñ‡äddPn¯ÊÂ`9B”ÿÀü£9‹½íƒœÃ±mÆ}0–çì-*PüÑš±+dðß…ƒS + I*'˜,•È—->¥]gõm¯¼ÍÌSºew{[Ìm¹¬íÐ.©£ÞäÓèÌ÷žY»‘È t½t²Íƒ .¼²Jk’ÀÊþàŠ ÅW}v¯f·ýïáà0‡îgé’ÏG$ehæÜÕÜí•õhÂ^¬öŸÀ¨ÎJ8@ºÄž½B+Ô]‚Y+×E‡Òeúþ‹Óµ ʬ;ö ;¦*ž¤¦ïum–“8 + vƒ@â›^KØíóxä(»^¤ (¡†úíÚ+¸åWŒ[>¨–úf‹#@ê¾™§îôùš76–EDˆ÷hÓãMDŒì £SEè»»S²GÕO÷Ðd³«qvd/Ø#”ûJd¼F5²‹ó‘‚ ‚Ûaé´m²u²þhtÄ}¥Ÿ¹JÔ]hY 7tí)÷¤‚ˆFuc9Fæ²í¤ˆí[æ•ž¥ÂÆ×y5v¯u5‹ÖX"܈lWÄο]ø;SS›lèiø›-òvtRÓ:q 0ÑÅ*œEO»Í ù…>ph4òÙ“ + Þr›*¼©øV>+èü."Ž›–èöD3¼®éfÞKe[N« _/™Á'ÇD$ÔÇÐ5æȬ>ÇÛ.ìˆ3æá/u\ŸG’²Cõ®Ãü¨wÞž´"S,+ + Ìê‘ß]Å!:¾—o¼±"Å¡Á'µ(š.õ=[Ê;‹Jˆ•:šz:— \‡£)š3üð¬ôê…}©Á1œ€Qn°^嬻¯Ïê·Ü':»×ìii©A¯Š‚wÙ©1³ð ».Š‰j]Ìûçî‡ql§¶W|’„B/¥¨ÇÜ,dë "Šp¥1ÝÆÊœ›ÙÀM¥)††2z eã-Eúbh—¬ìÌùÒ0áºí2ÈŒ«¥^P·xð!˜ä^ßåØ2âKb¾A3õ{g/ ºŒUO$HžÈGŒLÄrêä}3Û-Å{ìv´˜Jâ34•ËÓû<©à•2#Qð‰õÈVaöîªðçB¯jó<ˆNóN Hð]¢îæ%(Ò£³ùÀ#^zT‡ÅY‡3f}.3G•¸4Ì&ÖìÁT¬ª/f´ÈÇëλ@¿,©Â¤bÖYdMÚP}"°÷#õŸÅx±Hÿ%CkO+Óºym·W¾¿—XbÏ8Wߦ’šR ”X5i~ÖiÞ.±Ëœ 1XˆM[¦qC8ÁŸ®ÔjXŠ÷·®Âe‰€7åm~…í&ßßgj‚Sñ4È|šp¬Sär¤xÓê$ÇÔØÌ­ÕÝó+[%ñ‘hãn©ùmrËãE ‚XO åúCí¯@8N+Å×ü:֮ءJwUžV^¸/ÀÉ ³ÇYI9uœVÙ ^ëk·¹¬±È²o†ZüÃÔoô>÷!üð| + (6?Èý¥‹uùædo?±HÌŸT‚–sáýQV¬] F³W + cÎñ”lñrO'Ì‘=Scw§H¬Ã‡RCT6î;GÕI;´c¿.IÄ„BaçaŒ<]ç´8©âÖ‡ôÝRÏóFÃaòôÃÅ$®úÔä†wï«{©ŸI²•/Û‚Öu­º¬¨L›f㢒°0áÁ$}ÃÖ_usUÚ7äâ¸`œÜ4ADÝ]ú™\÷C"ªú+ËîÏÜJžôÁmjQäØ{ñSïI·ÔØòKåè66D¬4 Ðqú¹öGÔŽÄF+”š9ù}ôì ¿qšÐü°j¸±ÎœÑ:‘‘ð„ ®áGæȶší¶XᶠÎ2­2nÇØkÒèwœû‘¸Í4ér)CóçfdSÅr×'ÄŸ>…§)j®˜+ƒ•xi¡AÈ\£ùû"Á#…—V¬Â|åNêõ&_¾Ó\tð0½‚Cí÷Õ,ªZk¢jü±ôê/DᲯŒMúÙJ’ƒâ©V®>¹¸ø{/‡´¨vÖèµ¥ûk¿Ð‰$(f¤6¸ ¾cÑXk—Õ#FÌJ+¨‰%ÓÄ•6ÍxNOtyl6f¦ìÿ T ןǃì¯R…³…kõö'ÆÛ%ÿ93Ù‡§(xøçPÔdjq2¦‡¿'ûV_î¡èzÇÒ…Ôò‘wÅ6;åÜ­3‚a39žçW˜Æ ^”éªa϶»Õ7c®2d±B@¼X¥ôw[˜Œ¾-Û¸¥óò>é£Mšó ÑòB"ùë£öCîŠÑÕ^Cyäû‘‰3ŽˆLð²È‘ ©HêqúçªN®íj<…«ÉšÚõOAC7m%¸ví„Ø7 @½Ùª@L+Õ:±c®oqþý SbÅ2I÷ùûQ76ëúò=Й¶%¼|Ò‹À€–7Y3¸ÝLÄÓÛDTaM‰b-’ŸÅÊðÑ"¿KRpŽ=¦×¨§Çv&Ôò‡3Ïõlz°áK¨V™^«2¢ÔŠ7˜U Ðmã ¢Æ)üÞí5™”Ž‡/N¯ÊèžaÊNݤH‰°È7Ñõ”:gËGMt2%+¼ëÈ•8s$MèJ*o+ÀaÉ0Ñ•p"yë@lh %+%©‘5©[á`™¼©-ÿëÍ‹›L…#ÂZE¬fõš’ÚŽi¶Ü,ÓSÄ)Ên.?Q íй}—{ܯ›8©¤¬Ýoˆ*P®1hŽ—3øа‹ ßäKYЀksÙ÷”åÓc¾—›‡["v€F81Xy5"Ôº7âûàúÍ#R—ÇñH·#¦î_0st¿aß þ^µîaîY¹PÇw©²j + ÈœsmB}h$€%’;¯±¤¹”'ªïˆžh˜'dxÄÿPÐÕÞû9‹Þö‡!ȦmœÃÆ^-çRés´½Bâ Êòöyöfúêt=»È¤t|D­²•E¡hPNa3Þ,5÷D^ÜÞcæ÷¹çZ-•)À5G|z:þC]9ûvÏZ.КÌkçEÀ.å%VöµÍTø@r÷˧Úþ?ÔŽŠêS½ËÕÜ#;q™$5M]À6®Og˜âõ—KA‡æ/GÓ¸Ÿ†fÓÏT«Ž¦F§ŽvÛ Éd1'¼‰;3vöV8aúùh»GK8N­×\TY8Æoº×iû›uë®r¾skÉ~Q⦾¯ñ@þ(tW¤ªÙ¶s~±n_©§eý¦s›ÏÃIǼº¨ «^ù=c¤Ëdi¿‰)/bêö‰Óì + «^)~B÷‹žOZçõ:ïn@åè36˜FÓ=±x*«ä¬yv—µ C²?]Fa¦¥îotŒÉ`mÇ}|Oþ(ºÊ%ʽD€fKr Œðz"]B†"-å3ay²nª_Žù]p®C¡ži.¬½dæÿLS2JÎ(Ø] oµW;‘-6Éàü+“`ªªûªP¶úüLq,ƺŠ]^8{’ûÐ4“Ôd‡¬^¸¥òê.2Öwž'Ûm]@Ó‚K1>ã¶Ó9#’U^ûf›Âëif3-#eÜ"%!Áff™•ŽÍÿcxd¸ŒßðÖÕØÑÒŸh² '_Ýw`åð¹@?%Ʋñþð + ïP¦Ú¥Í¯Ê„‚7ÆòÑ'×Qæ±X?ôïó<4ˆ!ÕsÓª4ž+odÐ" =n‚+¾8g,ÙyEþÖ˜·àù.!LܤÏ\Ç¡“¾>° <ɱ@&¢^D‹cjN!(öÌ„•B—÷F®p[Œê¨r^´ç]5¾±ó”"Äêµç ÂÖ³n®-úÅå#"ÛUô[‹©»²åÿ7hOEúৠÇÝB]è-‰n z4u(b>ŽK^±ù(ôº‰º¨-`ß׈8a,rŸ¢®žLåroÔ¤°‡…úh›¹[¢§6½Ÿ÷[´ÔÛ“jcM–uNX‹E=üè“b›yáÞ,µ‘Ø#9T;¥ãH¢™“âÖWë;2!š¨—V­É±ï~ß…"œkÔ]ZN‹aÑ÷£S¶Äsre‹ˆGM±³›pSñðç½ùkLpsÏ­º¾÷èáëöûpm©Ãƒ²?Œ±ï¸He¾\Ю)žWzÁ&ó%^Í"$—G’ž ¦}L{†5˜Ã Ǩ ÐÍ»Q¬ôÁƒ„oF“nbõ‰jöÈB^ØRÄV¡žÀüVÑþ¿¿Æv’1z(ÙW˜­‹Df÷7¼ÐÅâ 5ÀEuÀ—¨|Ñþ5­kJâDLï…R¬Ñ9JK + >F“8S´ÎöÉïEÕWÚš©UmŠ'u3´ %a¨ÑæÚß½¶k*à ïHiÕÄ ¾ T"o¢!|´OkqTö¦È?²³cê–dؤÃñYRl0;²F—Løâ"ž“Ô©’#”ÍúÊž´Ü \°]„ÐôµŸl¡TŒ«… ¿Œ—=8Ò»œ:€]­¿à¬“WVœ‘gqÌ}l"„ñ²Ñ;g\k½Ù9Q¦ùýpÖ.ׯó6¿d–‘|J!b­\vp§sÑ@©^¦ìñRž3³GÞV Ý\Îí9b ï=Φ2„LB³Ã + _~Ù–\kcMå€üü£BØl&ùÝ(Ì^fõ©âŠÎv ‘Pµáæªxœð1¤·_ÿ¶'pM ™Q¯˜TPçQR%»û#Á=:a•¢í \ &Uÿ(tô+Z„ŸV5ÈÛ,ŸIy¢ë[ßØcß®‚¾ÖÆMfiòç%%ž Íè=ñmfKiƒxëðÒo>æ¡ v±í®Ÿ5Ž7Ú°ÐN‡lr¢¿¢qRböÕÀ¶=ÌÅ€p,ô³iµJÇ#«ëãÎ)’a³{?¶ßwË¢hÝ6öv{fè¼[V+GÏwè{öu¼s[8?®Pëuûf ,~«´×¢ÆùýSq:¦ß2Ê‹ qh~èivcÁiÿË~N ”?'­SÅr8ßÏ"ìc«ÏѪ"’y«>ðŒN-Œø!Ï:Þ”y4€zœ©_CzMy,¥˜ÈŠ›ïL1³tË_òSËÿ`¸zsš?$¬ô0 L5 ‘ ™ÉF…ÿ~Íêï{úóãœÛ»ÅØ Åì O´Òé› >zïP°ÅOø–;åˆÙ—3=Ùœ«îΡϚ§ø=0(k÷1Šúâß*÷CX"Bë…B²¶aù`:äçj…ñîâˆ<ïÏq“îWsG§D¿ä Ay¡ö’¹Ã·|Ç’¬þºã°!ð.lÉD´Â~ÍðløH@åʘ¢øà’K›×ãeЊÃ{}曀Šç,‹¯1»€¸ÆA9g2¸§Uš˜ ÑLáæŒäveïúŒ(#1uš 4t—™äpxöPÝ· æÁ–ì®)ªT–½]ùq\‚š}%bLÑÛ›5ÂG›IZ™y5tW¬Ê\ ¬ÛÍ.+¨§ éOº°éoeZè îþ¤p¢£îò³ÑZüiÀÞâ³3žr;V:—O©FLç„$€íÕ‘‚9û§0g@F¦ÜQ[A ¶‰(·€žvò°C1¶~†z²GÛ«è„••ß_£§oS +ýíõç—ÉÝlÎËOÜMï=YXïó!|cÄÚ­ÇbÅ£†»,““)©LÜÍã÷ÊÞÐu_Ôá,AdÝGy¶B8^‰AûUþs;H¦'hŽÍ^ùZe,˜*6Œõm(wó£1ºŸZBé…ÒD±HoÐÎfÍ3<¦½°3÷Ã!d–Ï'·&q–vÚ¨—|$Þc€¿gWµô  oÈIEO…,bÚ¬†NŽ+§j‹[IéA$ª/6Àw‘º íçPÛqÓ|œ~S¢¢9xÌ4eSÌ}@,9Ò”©¨Ú*ïZÈ¥<'FþW‘ +<˯šsì‘°N‚á׉ŸaFD¤ÉŽ%Ä@@JGƒÚ[ªÜ9**úb¤ý¾0Vm+nŽ_~ÔŒf7€ÝЇL]F¢Þ®±q¹xZ<°Ì‡±Ší*fŠ²µOÖËŒà$LwvsÏoFD+Š.ði&^0âr}DCV’j›Ñ&{& ƒ#Š4Ÿ.²Þ>+´OºDÕØë°·LÅyNÒÁŒè¨j_÷,f܆ÊÑ«aË챪ó¿!=ÓôSÿYìÖ¦±:fGÍ›Ž¿[C0LlÇÙßÿÄm€ŽfóñÚ‹ìD „°gÝ|^Æ8dö½XÊ‘­('ÑU°ÍãiWÔ•Qþï³sVðµ‘Âv˜òµƒE ÒÒ§Y¡ýqnÔ÷KÅ n¢ñÚ%§E&.6ÚI/l%(êg,‹„ñÕJLËsÐȸ㣳­à¡0`×Ç“|ƒ”sÓ÷#OB´&M‘óÔ ÿêÀIÁ}£“|û3.g¼¢Qá:…颓H×ùIJsM¢B´<(¢\/~;¢Ÿ%uÔ¾†kÙª²¡ŠbbuJæµ¹kÙ¦Õ#ÛÿZ¶Û¦æy:KdfKüƾÑØñ¼*!H]³V ’å$ožzjôíEÈ]Fi¶$¦ÒIÚ¿½©97©mTÕÊcª&˜ t£3™™ôüB À5Üb÷È1ôoª@ŠÓY1î©S »¦ç'‡˜ˆŽŽ~ƒ¯dÔ§puÖlXÐúÎ¦Ï %Ù?$ª`d¹Ä Öú»Jû½M¢\fé­pÚf—³ª½ªå-¿Ž£W¨Nö•ÈÏsr˜´¡âqâd + ËÁT:æSÑé‘îÓ]Ì0;:gl“Œ3fÙã“GœŸ ³1}ЫW¤¨4Ý¿:Žã^u‹´f£Íî¬N'®øºkû`˜<°uíò-5¾ê­ fc#‡Yã<ÎÞÛB»™^¸lË™ qQ;Kn$"ýcqFðäk›\¾­»C½ƒVGxÇ_JÁk>-7bgÀ@ + ³ÕÊâ·Ùáï±G"ïý—5û·!p{&úL‡m¨ßÁ¯b äs‚!?Š+¨ý¶ÏšéÍXƒ±ßaÕMvÑÌ Z¸c™‡£¤&Kæéû¾ë˜ë(Y¼Ó{sDjúÎÛ*•æ JÜoˆ}G&dŒ…7OX˜Bx€7§Ê5£òYTö½[ŧ0Ü6á1F<úóÉ^×gù7IqÆ¡Ç´üÛèU¥õÉš³BðTþûï3xTq®ÕB™r±îö,ž:¤ÓãåC괄 R‰P¨f>÷jvìu>×`ˆéxÒÅ»pêÂ}øåøæÈ;íol(ààô¶öŽIÿÉÀ{|lØá Y+.'Œ0Ý÷¸ª1G¼>€IÓoÓÍ + ¦è ¾—¹›Iv_!É9ˆNa®ÿð^ýúc–K1àŒý¼;,ºÇlK?–8uSác€6†|²M #iUD•]¨³¡GÍÕ[̧p𲳎8™Ç‘ì¯áKÃAƤ»ø\ø°Å¢™`¬›×òœ±övLg•Ì. «Í¥‘ÿ‘2³ê-4Z ¦éfAp ù阢{â67IÉ)n§øÄ!Д`WÑö§2ÿô+{™B˜Â¼ÑbJ*NÍ'>{lµ~)ÀÂùð'Å=DH/Û>züŽ\†žƒ„¬i)‘ûKªµ >¼^P’П«³wN˜lM»U9cnÈÇ;ëÔ7´”Œa`ý°’ïGÌó-ã$`-ÉW›zƒ¸R5MAßH¹’'åU×QÌ—“П¡ + kíº3rÓ¹{Ngê%'ÞPôàÝ/ý#GôF‡ÌGšÊš%à’¹Íœ>ã^¾ÖÔ‘ÝZ&.ÞzÒô1öåØ ½9vÀTOÆâ„a\hGñÙ š—ôÑ¢¤VOq@,š6uÁÏÔ!ܵSô4èÄž}P z±7pðìâGCËដ.Üÿ|WÏzØË¿óGzþ’†R­G_”Z"Ÿ·Q¯9;”Q4[³(c×ðÈø°×|òQò:¸–ùS¬°~¡jËÖh"}U«;Þ‡ºÇ‚ùärë2&-™& šÄ i;E?‰Sª©JÉÞ4æ!ÁÍ*9ÁŠfL{Ú§=Öù¡T¨ÝUE'tOZq²×…¶»yEÙ›,Á¸bÜ#m›Ö"®ó)p8ð¹Ðo×’åc+í9¿‚”éN#08ÄX/Lk…ûÖ»>™]†åÏ:â?ì ‰¼nè3Ô6†ù††0aôÖ oOI|a)€zJ>9å•Š Å»}@ÆýZÎAX—ògñó(™õO éOšûò(lÁß¼x‘‘ÂBɘ“E²ÂŠ\ÄñU¤\Áp8³Œ`Vc‰gîaõÑË›B,:RÄü#o´‘‰o + }HšY C¸¢¤µ=îO°9”{Y´Íž £Ÿ š£<äŸ*v–‚ÙÊ¿#Xfl¶É54Ÿéí×<´“A|Y–l|=“}ºN?=)Ês´}c'ŽŸºôUæ\Mƒv5—Ïân?]’ÌÁ/ÍÌÆ£n¼KDÈqá”%íù°¿ý[¢€¦hÀ/Zr÷žì;§à *Så­´øæa/à0®Þxkg„2Z­”ú8Õ ?6šaÚ3÷( + ÎËæÅõá\?9•ÓúT­b˜­ ¶–kðE:ör“s’QÈà#šÀ²?âï¤feñX'¤Iû5‰¢j3Œä?Ãarœ¼8)\–å3ö]´žZ¹[ç¨W[$Ò†unKA26¿9öB_Û2Ðû}ài1 ‹?ÿŒgòèÁa¿´ñ|A†ûãÍ…q['ŠNÄÆJõ“´ˆÍmbû>z·ÞœKŸ‚ ¼q~òt÷„åËûÖgUç¦ö~€P!†7-7ûkªw&~Z[SÁ٢繶j}ÿƒ%‹—èðI!,æX0–xbœÄ:è‘L?ꃸƒšÕñwj œÆƒfœªå\¯+,sµ"¼ÄTÕœÆD¾Y¥¤!°ÜÉXãn86µ+xçДl)Fßž[ÄÊ'Õ-‹=nlÒ»BƒÈÄÎxÑäµ”çÜ€jÆÞVΞVÕ÷ÉbÜ*%!ÁXÿI«;¥€föAß¼ö£ô÷|tÞLê[MG&tͶ!—Ÿ¬®xȲ'¤/SÎÔŽJªRž¶ñ(Ó„rˆUy=¨Ÿ½Kyë¨ Nã¯"øEB,ô¾%ú5¬°z#î4†\šG PëŠóq + Öˆ±ðéšÛY‹Ýãè>k™Äsëèµ?Ø¿£+Y×sRJ”ÜX¦3gc^(¨Xµma¹±éDêÊ£⥺tÛF¶)á I.úm•‹W‰”ᙹ¨;Byì0ÜR2oßˬ™$Ûc®#²Nch¯ÆMÅ#iJy/|zrŤŸ[øZßݨb»]9[þ§®f¥ãìÖ¿°ŠöH»4¾y»*€è~é{Þ[Õ2ÁµDÓ9W*?‘Y"ÄÞŸåJ> + endobj + 164 0 obj + << + /Filter[/FlateDecode] + /Length1 1501 + /Length2 7527 + /Length3 533 + /Length 8427 + >> + stream + xÚí—eX”]Û¨¥ahé’¡›$¥»i†ž†înAé.)I éF@BJJB@–VÄ=Ïó¼ß«ßûí?ûØÿö±gþÌy­µ®ë¼¯u¯uÃƤkÀ'gQ†Ã|‚ü‚@-CCq  ¿€M±E:ÃaŠ¶HˆPP\\(çå J?” l@¸»ÂÙÑ äTàúk–(P + A8ÛÙ€Z¶H'•ÄÎÖ h·s† ýø@977 þ_K<úOÂbÏ + ííÀ'Ggô—“Ìý'lïåþ_CÞ„'Ê È‰òä¢,íá07? =ÄÒ†£ªAP.ÿÇZÿ«ÿL®ìåæ¦m ý+ý_}úöPg7¿M€CݽP nAÀþsª ä7-ˆ½³ô?GÕ¶nÎvr0G7PàŸ³§²³/Ä^×içD"¼ ‡!0ûÿt@µíoº©¦š¾Ï?;úÏ ®­3 ièçþï¬Íþ›3ª;g_ ¹¿€€ j"êû_¿,ÿ£˜Ìnï C½"¶„­õr H t†ÙC|_”0ˆG¢–Q= :À€¿¶SHòð‚£ºôw3Pc‡…€ w[æqø#*ø¯èL‚ìàP¨íïˆääçîý=D­EUÛÿ‰Ažn¶žN¿#(8 òoAi }à¿5î :ÛÁÝà¿S?DU“ûM¨Bò¿ UCá7‰AŠÿ&QTvåß„z8•ß$©ý&TNÍß„Ê¢ýoCeÑýM¨u¿ ÕÃß„ò4úM¨œÆÿ&ñ‡ÿÚ‡ÿÖpÔ‰ýîª8ªî“ß„ê…Ý¿IP¥aÿ¢žò‚ ‡?eéø¢4þ@”§óˆ’pýQn JúQ°?¥ÿQî ª.âDÕõüQ-Aþ( ¯?¥áý¢4|~#ê‚ùþ( ¿¿ñžTyy¸oßC XH(" > úïÓŒ`Î^5EÔû( &ôÏAµóB Nòï‹uü;8£. ÄbÈΡpF³æe๰9ï™c6yû~^ÐYz˜!rY@99r‚ï†Å¿àåª{þ‘ðû¾nbú5'£Ll}°–dJÏ¥U¿Ÿmõ + %·ÃX‡ùæ…DMÒ¾i²7fè î#Hb›µy#OH€ñê7û¤{×é Mó¹áà®Eûj3ž®w·â·ÛïIØÍ)ùh<çɵ¾¬Ã†M(Ø›‘QûÕÉ‚ áBQwFg²|F!3Mª®[´lÒØ+èU¸&™YHcøÀáÚ®qó™’þ¨jŸ†Éj¤ê÷>“E™zæ ¦ä×̆…ÜšÖ2²cRŒì/¾”åEó¾Œëó9ýOÀ¯c + µëi܉!çø«êÖ“Íã?“=,TÂë69Ž + G¤hÄ¿pü‡jØY½³&6=I½;Á<ûˆ.(§‰a0ÆVH‹©ÊÖÌp3^a=yç8—È ô&B†aGÄŸëy´Œ9©J€t‹G ¤÷£ + ¬å³1†>\ù«ß3ÝÀ·íSÇÌee3{±mW¨ÓÑ*>ÏVyûùq}ßCœî`6ãÞS–…º[ ¨õW¤”Ñ·ö+þxÛLóùG˜Q­«f‹8žÞ%¯“ 0£±Ûó"‡dùi–ª“µóûŸç÷‰>&Þ¿–X!-k«"[¨èêLJþÂXMÝÒèm:ÑMÐû¹VñK¦ýi\³a¶3ÕèÃÑž¬‡»³Å·§õýðÆÌp÷iJ´¦èlU>+¸.7„SL<â*®_æY”¿ònÚàýePžº("ì¶Ï}+Ìù>•lÈ〆”—æ“0…qfV-’ªR7j©Øê ™ÁϾáÒ}Ÿ–ªê[³3·ÆôÃ)rº›Ì8áI®gUŸVÆVök_ԇЭ‘œ¼UùöãÒØ&™“ÿM‡T{gKGûa˜åaÑ·­ÃKU¿™EïM´Èø•¨»~Ã]´àÚÌŒAàЇÙh(oûYÇCÝmæè+ܬyð'ñ_Ù²Wl×;ë<È8®U¿Ö[:þo¼Ê“|FÀà‹Øºa³l}–yê2ás+Ñv¦˜óõIÑ“ÓÎÚѦf}3ƒ Ç·³>:[å5Ãä'øì¦Qý‹ì»oŒnGnjCs†lwž|žÁ†Q?Âw$-ŒÅnb—ÏVÔ§ùöY¦TøÑùÓøÖo»íä§ø5…V-x)ã™’xñïÃg†ZûŽrTûÐqô%FùGÕ5EJYw8ÒÏEà9$3–f•ÔÝèiWkÁzDW ÉC, ê²S?I®·™Tr³ÜéÆo£ ¹ÕÇå¿rÑ + ¡W`üÂIäX¶’Á>ß8ËÄ%ü½eŽŠïu‰ù©Y‡(ŸÕr­Ýb®*Ë9¶›AOöèç×-‹*éÏe÷(y0¯ûœÈ ŸãäO9kÇceÙ¤a¡kØ(Bu´5öTSÜRÔ_ hzKE¬Ÿç)—W|™’úì¨?6Ù&1 äÅU¨šnUήz„½³ùÑqY¹‘þø òþ]¢¬—†‘wDÝy aKNŽð´V¹ûçG¢ÊŠ¾øñ…T¢ä3÷NTgíÊ'A£çù's/)^£S"3õ:¬%¾Bä¬û¦›Ç~õ5$¶ŒWRöØUQb ù%Ys±<ûÕÉjºÚž•æp|¡·µ×; +  Ç+o–®¢^µá–Æ%¨+ÚhÉN·8É$‰šƒÄ³Œ€2Ã(ó_ô‹Ÿíaž6D×U…0/½Ùã³X«fö¤ækÊ8¶´Î’JfåH®mñÊœnûVŲ…‡ ¢®û%6bÄ+%nú¯™$_6•¢ŸòðÒ¿ý¶û‰øÞ9.ñµ°ž/ôYì + iIQ‘è¶d)¦÷Ǿ©“m…<'§héµw.!]öô¼ù)ÌG0̉(0ÞÊê,ÍGÆ笕*X›ãLì÷m«ˆ§ÕÆ?áÞ%¶Uvÿ„?|qÃ/ÖI¤^±ì ?K “¢§Û¶ÓŠ nìݵtôÎÐPE + ››@ÁµÎ_ã”ì¹™Hâ5uê 5Œ…údèÛuÃü‚ã”Lt%YxŸãŠ±U¦6¨¹u˜‚B™èxGöæCц‹X¢+…%¥O±õp(.gá?0VßµkO€ß'WxC„ÚÙúB3ò<Û}ÅbIñaªRH§ˆ²œkQpyŒzfzÈRËþZ“T?9E|»þ:n}ÖOw)-GÍŒ[Æa¼rø!%ñ­~Q“©þ3Sàð;’soûG[IoE .‘ªÊ™`#ù,˜(˜XGé[%{ÎŽEdë]ïÓÒÐi>±¤™x + § ‚üÉfüiùkךÃ8V­K‚Û J5Ý–™ÇB¡ËóaEúð:V¦š„¢Ä[]wÐWºo°×E«Ü·¦šÎTBYó§N ‚ß)9nî4xö²Ëáž°…-[Ã#ÛvU¸O¹ÂL§ñÔºÈ&°–Ñ4Ÿ&¤ìã(ÎôïôK + LT„èÈDø3šÜ¸IÆïJÌ}·à'æ ƒPúã 4°³-žIza&‚4ä£'_Ò`è0~B;OÔ#ÅÔc¨+mÛ=k`¿¯%=c®øTdŒ°5ó.sµëy'rXÖÏcô¨²·ÄpäÁæ!Ÿ–œ 1j%d+êµ´Å\3²©¨<U—Ç@yÝu…ÙÚá@ Ý”mP©ÉõŒM™½bA}M@qgÛh–Ó(‹†ßL𸳵óo/+„<Ϋ|Š-|û + R¼ª Цó‹òÝOœjQ¥¯ ?_gàÔ¼7šæ ±ë53;î@ô¥GyËÐÎl¬Œðêyl@…S$$@ÓÞìDöä(‹6Ü0ÿ¼IúM6‘ú“Çñòk£¼Îz©Œ†µÐÕ˜-Ž|Í!œtž + ÁÝ/‚‹óLNܦùÜ@v—3nÅ›Å2:½)]ßw ªtF).VB8ú/ð›­>{$ÙÈOb—>d–â&®mm¯rÆ›JgÿÉÚ»žLؘôõLž+ˆ{þ[k®diÍì{"™Ñ% + öU[fjWÛÒÆy¾JÈP + ®×Éw,7PQž¦ØѯºlÎS*²§[–Ì¿¯Î?È+Hmf + ``8ô! Dz—T dò‰ÙêšÃ,J¾HxÏÒ‚/15•ðdFâ蛼úc{+êÿ }×Ò°…˜›×Æ4Ôt4ÊO Ž„¨  ÝHÓ‚Fù}_èFéžgf{Nzy‡5…·t¶ ÆIÅ󨚛­j–Ä_OÛSÌëÝÍMæ+]Ï…|™î¹*öÏ¥«zÙ¿s)b¥§*wÃ#*Œ&·¦:fVZÛ”Áu ëŠ7q?­xUeùlÊ÷ÌÁŶ(×À­$c> ´Žh[²69—†¾®Ÿ ^©y+#xÆÃÌŠžsÛuŒûhS£û½A¿ñÏâøÃPqÑûÙû< AºŸhÎÈmΓîo&qÊè7R*Ž¦“…Jh5‹«#…Æ5쯹5[Ú²b8+;¬zé:ÅRÒ+efÝ$@ ¤Õvbk¡ + O),Fyj?ðf¦I©Y÷µÚãFîŽbIšíãÚmµó‹ðÍX¶k^›ÐvÄÊqÓ¹\“ê"6cF’DÜSˆ}y)½— —̱3„ÎîÏ6áú¾?~Áó¥Ð¾Q ¡è¹Ò·åýÉŠn+t››lŠNŽ7tôJ÷îßeuÃì-”=¼ÐÁÌ:ù˜¤ãFÏ„:wÌu×=q,O37­ + óIâ3Ö«ÙUŠYhÀZ{¥6|rá + ÛÞozÇ12Òÿ + `g£tˆÓuüìzÿpñHW¢æ¯"ßû“’Çg°”…t5`”ˆ)Øü•4pÌñ‰µ åFãr³°¿›z`Coð"ÑÃ::k#3U·òò44‚xãøä(ÆÐxÂü -ÑŠëåaX÷~‰¤iªLéœj,Ç=Ö öÐJ7ˆ˜»{)sQHÚ¯…9ªÔßDÂ!„÷V¾8~$®hŒãÞEõ&Ë÷ µÃá›÷{ÒG½ÌÁÜ_è‰Ôrψ–U%mß±Áî~ùÜ…lJVÊ!¯îSÏ—-¼ËCv¬²°’f³žðYs/øà[Ó‡<¿«ˆj‡ + ¼ fÒ2ä®Z~QRÉë'5lœ)Æ‘H©TPòÆD özì4Ð+y´ë]ñÍ“ŽíW´<˜¹:êeú ákqÏ'œåzóH%m;ÒåÈ[5žS‘RAðF:ãJštÑOD5˜Éüãñp¬ e<‹$ºŽÝ~wáô’ÇÀE6R1.4õÑ=ëÙÎÔOp{#|’Û>Òè’½Þƒå"¿|cò'= NÖ¸KSãXÚX,lS÷Â8ÀAYiû+"MÉJÛªX å;/%QBcZë`šøá¼ô2‡ (IÄcE1t¡ï}O›9´càTQÀ Æ}kï>áV¡“…®a‹Õ–—Ýrôø8¨>r9Õ=;îx¯’›ŒK“˜ÓnM­ådtîI`HIÐxi}®«°unó©[C‰A0ºVl‚x!šD÷(‡L·b¬éb¯U†ŽŠ9cµ+ÃÑŒ¬.'·S­ˆ×"hèàƒ‚orìè“ÚUFšGr¤¾nÌvu•Æ³-^š&'9&Ä‹ÏŠõV5Aœ–æ"ŽûÄôïZÁnÜLhwnš9#†Åiõ çÃ6h>UßÒMò¬>CòËXÅßÆ_ù²}æŠtãT€R¾&LÍB«ª6³·¢èi6%k<$z2UüV¥Ü£XôBWì + ¿ª ÛÊqûÎjúõxŒûÍ#ô®Ì¼Ö8cðiiƒ9F¶”`{³òf<ö²²fŽÍ›æ IiHô"5jðà“¦NC®øÓ,JYr*æÇ?÷K¶;ïý¨–ža¹ÑPäxõ4¸¬¡€ÝcÏP§¨w¶Äö|ë6É1ðGøžÄKõÅ’_Ú]Ø]n¸`Å­®ðŒã žò­N" ¿¾EŽÛ¹Áz«„i6Û†aoºys]ud@h ÞpÉÝ)®Î÷yO-ãÜã»$enêô¡æË᥌j<— 3NêNõÇoÝ1ÙñØ~®J!–ßimËÒŒ’†ÝM·©šýL:¤ N[\¤õÍúÔ+B(j²."“ü(od>¼èIn‡×ãcoBl05þT¥ 4«;òÖÛÅx6ùÁÞÌÄÎø.ß0 + IXý‹ÂRU$,ÍÈê>sl蹕,ÇÆØsw¼ïºœ@W©_sŸ*¼µê}äñ\@¶‡¹†ò7ÐãÞ»a$55 ׄaöL;=Õ©ü méIx{xïØOÊd Jþ"$ßíq»~é³y³k¥]Œn 7L«õïıvÃ~é )¾ + ršäÉfÞ|½“‰Ö×ÊœJR1e¥ó€}j¶s‡1…Mº'ñò•!|#¹H€¼H?7-b)êDë^) M£wã‚R.¸e¯è.ÝÎ5S + 5>êŽÌeI§³žd?÷¯=e«8Xs¥Uµ ÄÎ]îqv¡aðzL ÏI}\‰nñdSÒI2¾~À@ï°÷Ó=¢P®#ïúbß˵6Üw+Ž2w4¼Í×*¸2°ønßÒMMÓÿEÐÕ;MñÓ@O}RžÍ:d Óò¼Ӷ痾Ê)˜nF CúÅ.DËÁ¢þt¦¥d4ºtàcY’˜Ø“§†±²,AÒÍ´`‚ýø&C ÿ Ðé"±¢Ïiáθ@MY'Žؘ`ÂÞ±‘¥§¬RÚ(W + GpœœU«ò³—èÓ±ewv¸eý½ûØ”j¼¼°¸í#qŒ±Ã5lS㹩˜[¬¯ôà„‡.óqõº§3jßÍBÀ‡ôä^®ïº·€§Yð"´·b)ê?¤ºÿøñ oõwÍzÕ,'ÓVèhŒ«Rû$šhSPé­šÃ&’VÆ ÛŸ5„±ï&[»•ÐôñºFÿ•¬A^ÿé.Ýàe‘éG + ‘û±ƒÖw¦ÒiyœÆºýŠ¬V _>ÃñÝ,ïûÐâêw¸(žrúN¿²ó10æ[ÍKwÓ^’×cö·Û‡–H8ÃsÀ¾†éµOæ*=Š_Wþc"fÔ.ÝÎ:O5Ä=g²–1ŠõÂÐ3ÈnӾ͂   ‚^Ý×F#Ã$ÉE`»6ÏÙILÃÀJÂ,êh.º®´yŠ=Vî¯ÄÜ °é‘Å£§ú&,7}ÜðvQ ¥›7æehàQ΂q9©’ѽ ŸB»÷Ûë.õ„Ý-Œ¤z—ÚÝ=ã:ùR\¹š¶³v¾²‹^Ì’ä¹hX¶éØ»wÜtÄ®†ÿêùÙ†É,dü¼—ûUÊ™e•óÈbµïçæ5 ",%µÆ€}ßÑ*3œW¢Šå—á•káiAÓ÷-@¤RñÚâ¯Þ [dÈ0ðh䋹¶W¢orM4a:}‚¸¥ü´Ä³'£»'€A0Êß6‘7£ª§ky¹¬íJö©svº­Ì×Ãècsk~ÇiÛýöqµ¸fCëŠ0ÃÊÉ’Ô­'EüÍL °änó¦Z}Ý%9ÉR÷,²ãqî.ÑKº*ë Y‡‚ôœÇ¤¦˜r¦âÕ÷'£ƒïŸJ4_i[ðŠ¬&4©Ü^™ + º™^.fª7ˆm‡l_lGÚÙÖú潈d-ÍjÛMUi@·(ˆŠŽ!iÆÔëöù¸°O+Ó±å‡L)¾n”fäp˜¿´º)….®¶e}±“^7æåeB÷ü)ãñ>ÃÈõ„oËă“'lŸ¤rèê5T6ê‚}áü¶t>¥ms6¶µÿ.¦ßü@ùq"_Õü4]êõUèÚ8¡ö+¢û¡aÅ!J”Ç:ÏÔ‹®8È\—{K7e¶‰–5YÐÀ»säøÚLŸw8†Wø¨k–äÏF>‘鶟–DÚBÞ%ý—女šêN¸Ê\9p‹!ZÍ® ©Ê"úÆ %åh6&–GÌ° ‡Ñõ”™ÄÝv‹•¸¯ îC““ºÀÎîäe‡  •Ä×¹MïÛôÈìûl;·W$m + hï/Íá‘v•„’š¬ôî öQKð<ªœ + ­·»¤†»ûo•?l_]xö#Òu7Δ(q@®ÿöÇL^f¯_€.ý€¤]³õ‡Ý”²ðº1"'$Œõ(NK+h®}ù¼÷¸#n®È°¡’÷ýÖÍ'ò&³&ú"pO÷ è9Mãb˜)ÃgÁ07Èb[9=Œi=û’¡†|9WÁ:u¹6+8ìL£uÅxÞôÖ{’MÙ½þÛSpã*lÎÅjw: ›ÕSÌ3¼’¼ø!Vh}Öfõ3Ê…Æ–½Âò,Ô÷å^–‘©ûw©JÎLqFÆWqÊ®ïÐK2²¾£xtd<ŸãLÏÞQêÚ¼­ñaþÆÙ•±wL‡:ô•éÀW¿ ¬ç„#±r°÷›ÄàþN¼ï ÄTB€ë7µ]!o1 íN‘¬“àaæ¯"Œ±Œ¬ñ%ûtçº-©nE<³(~•¨¢gØÈ,ÚÃ)oÄß`oHÈÓsÊIÛáéz{mÇsÇØX£x‡{Ãa,©mÓ¬Óñ~Nœe¾\îPíBýM5Œ@€Gþ±ù@jßì9 o–fÚ÷¶ EC÷çܯì‹ã1—ÈüXd ·UySiK¬¥ '”שSý@ ís–òî·™o¿NI¸­ÅãH?$øK»“ê-7!×…Ú›ïx&7}±œC°OnÕ·ÂFù+N¹»ë ½3+âÊ›"\lndÍ?ÅQ]2aRfÁLÊÜ­ßoµ¹<' ^­Õ.Oÿ©tkf»˜˜Ì—û¢ÞšžšãŠ RýIÖã>Àwr¸è¥Á i»^Z"_ó‡ÅãÖVÅ+Žˆ°f>Bû'.‹6ÖI oÜÐ?ƒK%zŒãdU™¼Ñ>3)D˜)˜ñw*|û*O"}îçËšæ]4g£ˆF+–Ò|CLÝuH£ Ö¼¬èýªׯŸBöñ™ªnmèF-¨Ü¡o³ÝPK$BǶLª8ôåØ%àh‰7ìžõ+÷™™2˜g麞^ÀŸö½^ðíçkPõb±êKü§/×+Õ ±t–dÏ’\ï žðz§¤%ý|aÆÒNRpB3ÞŒ•¶¡]Uµ y)¼»Cµgefv_å)ZH½z7>è‡nùV>ÒZpçÛY9§ ÍéPõ€¸'`ÿGòé<3^[b@ùÛ@¡G«V•Äcž†úGœºý)ßš¸¨Ÿ{ÍÛ)„̲¼¯°œIì¼) + Òw™N9^o{xÆ-Ûj•Z: #˜£S¶û¸ˆÇÍÝ©]£F‹Hˆù2=Ž³b+5h¯JJ©ü…†2 -ú ¯yØ0ý¶ + Üžw>N;•f0ªz=1È”êÊÜÉÞøí86JûÐó¡È†þÎ{]íN\!×Ýň©§Âi¾Uƒ›Ô²$zIÜqó…:•·ÎC¥ÌZÝÌå’&™ÐÆÂ5mãeõ> \-ûÖÍ;Sµ8õFçÒÜ讬JGÞÔnœ WòKäL;1;Å… aµ™F.ö¿1'ûô]¿miQq½ê²‡ÓW^ôÒy";ñÍÌaå,/¿c«ü¹§ï—Æ‘'ÜëÃV¾o‹>Þ÷Á5_¨ìæLcÕE}V Úµ &ô¡“¤!tž1ïÁ»¹vFíŒêÔºÕÊPÁ$KlŠë>2ìqȈ˜„„×yØÚ3™DC¬PBGðÛs/é+C¦ñ:ª@äŒW§G‚F1âI¾žöÅ^U³‘ï3¥ _œq!ÿ³Ö¯ºlEzD-™Œ%¬qõ*וkoÀ†úó¤³_>øs$ß[â£Ô¨Q†“º_ÈÝͤ)|% ´{/IOž¬&¬T™rŽN⌮Æü°ÎÿÐÇËöºàVŠ|)߸Ü~¼‹*¡—“ÊÆ=š)ñËØ¥{ˆ78"ñ¯+$T“¤œêOmeûÚØŠÚAíx±TÍ! Å ÁRM³‹?…Ö; ½H“çŠð”†×2P»_׃ü jÊ-ó·¾n™M¸Ú®Õ-Ïîî¥ÈJ=öÇ5-jÀkð×Lx©"§a h4Ò­Nqªfßj ½üpµ*á†ýÖ[5v{âelOpFf=±ö%« ŠÚ¿cËW¿Ïàø¿üþ‚ÿ'عAlH8Ôá + ü/|¡’ + endstream + endobj + 1 0 obj + << + /Creator( TeX output 2004.07.27:0931) + /Producer(dvipdfm 0.13.2c, Copyright \251 1998, by Mark A. Wicks) + /CreationDate(D:20040727105642+00'00') + >> + endobj + 5 0 obj + << + /Type/Page + /Resources 6 0 R + /Contents[17 0 R 4 0 R 18 0 R 19 0 R] + /Parent 174 0 R + >> + endobj + 21 0 obj + << + /Type/Page + /Resources 22 0 R + /Contents[17 0 R 4 0 R 26 0 R 19 0 R] + /Parent 174 0 R + >> + endobj + 174 0 obj + << + /Type/Pages + /Count 2 + /Kids[5 0 R 21 0 R] + /Parent 173 0 R + >> + endobj + 28 0 obj + << + /Type/Page + /Resources 29 0 R + /Contents[17 0 R 4 0 R 37 0 R 19 0 R] + /Parent 175 0 R + >> + endobj + 39 0 obj + << + /Type/Page + /Resources 40 0 R + /Contents[17 0 R 4 0 R 41 0 R 19 0 R] + /Parent 175 0 R + >> + endobj + 175 0 obj + << + /Type/Pages + /Count 2 + /Kids[28 0 R 39 0 R] + /Parent 173 0 R + >> + endobj + 43 0 obj + << + /Type/Page + /Resources 44 0 R + /Contents[17 0 R 4 0 R 60 0 R 19 0 R] + /Parent 176 0 R + >> + endobj + 62 0 obj + << + /Type/Page + /Resources 63 0 R + /Contents[17 0 R 4 0 R 64 0 R 19 0 R] + /Parent 176 0 R + >> + endobj + 176 0 obj + << + /Type/Pages + /Count 2 + /Kids[43 0 R 62 0 R] + /Parent 173 0 R + >> + endobj + 66 0 obj + << + /Type/Page + /Resources 67 0 R + /Contents[17 0 R 4 0 R 68 0 R 19 0 R] + /Parent 177 0 R + >> + endobj + 70 0 obj + << + /Type/Page + /Resources 71 0 R + /Contents[17 0 R 4 0 R 72 0 R 19 0 R] + /Parent 177 0 R + >> + endobj + 177 0 obj + << + /Type/Pages + /Count 2 + /Kids[66 0 R 70 0 R] + /Parent 173 0 R + >> + endobj + 173 0 obj + << + /Type/Pages + /Count 8 + /Kids[174 0 R 175 0 R 176 0 R 177 0 R] + /Parent 3 0 R + >> + endobj + 74 0 obj + << + /Type/Page + /Resources 75 0 R + /Contents[17 0 R 4 0 R 76 0 R 19 0 R] + /Parent 179 0 R + >> + endobj + 78 0 obj + << + /Type/Page + /Resources 79 0 R + /Contents[17 0 R 4 0 R 80 0 R 19 0 R] + /Parent 179 0 R + >> + endobj + 179 0 obj + << + /Type/Pages + /Count 2 + /Kids[74 0 R 78 0 R] + /Parent 178 0 R + >> + endobj + 82 0 obj + << + /Type/Page + /Resources 83 0 R + /Contents[17 0 R 4 0 R 84 0 R 19 0 R] + /Parent 180 0 R + >> + endobj + 86 0 obj + << + /Type/Page + /Resources 87 0 R + /Contents[17 0 R 4 0 R 88 0 R 19 0 R] + /Parent 180 0 R + >> + endobj + 180 0 obj + << + /Type/Pages + /Count 2 + /Kids[82 0 R 86 0 R] + /Parent 178 0 R + >> + endobj + 90 0 obj + << + /Type/Page + /Resources 91 0 R + /Contents[17 0 R 4 0 R 92 0 R 19 0 R] + /Parent 181 0 R + >> + endobj + 94 0 obj + << + /Type/Page + /Resources 95 0 R + /Contents[17 0 R 4 0 R 96 0 R 19 0 R] + /Parent 181 0 R + >> + endobj + 181 0 obj + << + /Type/Pages + /Count 2 + /Kids[90 0 R 94 0 R] + /Parent 178 0 R + >> + endobj + 98 0 obj + << + /Type/Page + /Resources 99 0 R + /Contents[17 0 R 4 0 R 100 0 R 19 0 R] + /Parent 182 0 R + >> + endobj + 102 0 obj + << + /Type/Page + /Resources 103 0 R + /Contents[17 0 R 4 0 R 104 0 R 19 0 R] + /Parent 182 0 R + >> + endobj + 182 0 obj + << + /Type/Pages + /Count 2 + /Kids[98 0 R 102 0 R] + /Parent 178 0 R + >> + endobj + 178 0 obj + << + /Type/Pages + /Count 8 + /Kids[179 0 R 180 0 R 181 0 R 182 0 R] + /Parent 3 0 R + >> + endobj + 106 0 obj + << + /Type/Page + /Resources 107 0 R + /Contents[17 0 R 4 0 R 108 0 R 19 0 R] + /Parent 184 0 R + >> + endobj + 110 0 obj + << + /Type/Page + /Resources 111 0 R + /Contents[17 0 R 4 0 R 112 0 R 19 0 R] + /Parent 184 0 R + >> + endobj + 184 0 obj + << + /Type/Pages + /Count 2 + /Kids[106 0 R 110 0 R] + /Parent 183 0 R + >> + endobj + 114 0 obj + << + /Type/Page + /Resources 115 0 R + /Contents[17 0 R 4 0 R 116 0 R 19 0 R] + /Parent 185 0 R + >> + endobj + 118 0 obj + << + /Type/Page + /Resources 119 0 R + /Contents[17 0 R 4 0 R 120 0 R 19 0 R] + /Parent 185 0 R + >> + endobj + 185 0 obj + << + /Type/Pages + /Count 2 + /Kids[114 0 R 118 0 R] + /Parent 183 0 R + >> + endobj + 122 0 obj + << + /Type/Page + /Resources 123 0 R + /Contents[17 0 R 4 0 R 124 0 R 19 0 R] + /Parent 186 0 R + >> + endobj + 126 0 obj + << + /Type/Page + /Resources 127 0 R + /Contents[17 0 R 4 0 R 128 0 R 19 0 R] + /Parent 186 0 R + >> + endobj + 186 0 obj + << + /Type/Pages + /Count 2 + /Kids[122 0 R 126 0 R] + /Parent 183 0 R + >> + endobj + 130 0 obj + << + /Type/Page + /Resources 131 0 R + /Contents[17 0 R 4 0 R 132 0 R 19 0 R] + /Parent 187 0 R + >> + endobj + 134 0 obj + << + /Type/Page + /Resources 135 0 R + /Contents[17 0 R 4 0 R 136 0 R 19 0 R] + /Parent 187 0 R + >> + endobj + 187 0 obj + << + /Type/Pages + /Count 2 + /Kids[130 0 R 134 0 R] + /Parent 183 0 R + >> + endobj + 183 0 obj + << + /Type/Pages + /Count 8 + /Kids[184 0 R 185 0 R 186 0 R 187 0 R] + /Parent 3 0 R + >> + endobj + 138 0 obj + << + /Type/Page + /Resources 139 0 R + /Contents[17 0 R 4 0 R 140 0 R 19 0 R] + /Parent 189 0 R + >> + endobj + 142 0 obj + << + /Type/Page + /Resources 143 0 R + /Contents[17 0 R 4 0 R 144 0 R 19 0 R] + /Parent 189 0 R + >> + endobj + 189 0 obj + << + /Type/Pages + /Count 2 + /Kids[138 0 R 142 0 R] + /Parent 188 0 R + >> + endobj + 146 0 obj + << + /Type/Page + /Resources 147 0 R + /Contents[17 0 R 4 0 R 148 0 R 19 0 R] + /Parent 190 0 R + >> + endobj + 150 0 obj + << + /Type/Page + /Resources 151 0 R + /Contents[17 0 R 4 0 R 152 0 R 19 0 R] + /Parent 190 0 R + >> + endobj + 190 0 obj + << + /Type/Pages + /Count 2 + /Kids[146 0 R 150 0 R] + /Parent 188 0 R + >> + endobj + 154 0 obj + << + /Type/Page + /Resources 155 0 R + /Contents[17 0 R 4 0 R 156 0 R 19 0 R] + /Parent 191 0 R + >> + endobj + 158 0 obj + << + /Type/Page + /Resources 159 0 R + /Contents[17 0 R 4 0 R 160 0 R 19 0 R] + /Parent 191 0 R + >> + endobj + 191 0 obj + << + /Type/Pages + /Count 2 + /Kids[154 0 R 158 0 R] + /Parent 188 0 R + >> + endobj + 162 0 obj + << + /Type/Page + /Resources 163 0 R + /Contents[17 0 R 4 0 R 167 0 R 19 0 R] + /Parent 192 0 R + >> + endobj + 169 0 obj + << + /Type/Page + /Resources 170 0 R + /Contents[17 0 R 4 0 R 171 0 R 19 0 R] + /Parent 192 0 R + >> + endobj + 192 0 obj + << + /Type/Pages + /Count 2 + /Kids[162 0 R 169 0 R] + /Parent 188 0 R + >> + endobj + 188 0 obj + << + /Type/Pages + /Count 8 + /Kids[189 0 R 190 0 R 191 0 R 192 0 R] + /Parent 3 0 R + >> + endobj + 3 0 obj + << + /Type/Pages + /Count 32 + /Kids[173 0 R 178 0 R 183 0 R 188 0 R] + /MediaBox[0 0 612 792] + >> + endobj + 17 0 obj + << + /Length 1 + >> + stream + + endstream + endobj + 19 0 obj + << + /Length 1 + >> + stream + + endstream + endobj + 4 0 obj + << + /Length 30 + >> + stream + 1.00028 0 0 1.00028 72 720 cm + endstream + endobj + 193 0 obj + << + >> + endobj + 194 0 obj + null + endobj + 195 0 obj + << + >> + endobj + 2 0 obj + << + /Type/Catalog + /Pages 3 0 R + /Outlines 193 0 R + /Threads 194 0 R + /Names 195 0 R + >> + endobj + xref + 0 196 + 0000000000 65535 f + 0000162795 00000 n + 0000168421 00000 n + 0000168069 00000 n + 0000168274 00000 n + 0000162959 00000 n + 0000003984 00000 n + 0000000009 00000 n + 0000077263 00000 n + 0000077076 00000 n + 0000000908 00000 n + 0000087184 00000 n + 0000086996 00000 n + 0000001853 00000 n + 0000103148 00000 n + 0000102962 00000 n + 0000002770 00000 n + 0000168174 00000 n + 0000003497 00000 n + 0000168224 00000 n + 0000003929 00000 n + 0000163062 00000 n + 0000006244 00000 n + 0000117562 00000 n + 0000117367 00000 n + 0000004045 00000 n + 0000004979 00000 n + 0000006200 00000 n + 0000163247 00000 n + 0000010725 00000 n + 0000006306 00000 n + 0000119101 00000 n + 0000118904 00000 n + 0000007391 00000 n + 0000120992 00000 n + 0000120797 00000 n + 0000008382 00000 n + 0000009363 00000 n + 0000010659 00000 n + 0000163352 00000 n + 0000010986 00000 n + 0000010787 00000 n + 0000010953 00000 n + 0000163538 00000 n + 0000019459 00000 n + 0000124913 00000 n + 0000124725 00000 n + 0000011048 00000 n + 0000129722 00000 n + 0000129528 00000 n + 0000011952 00000 n + 0000137164 00000 n + 0000136970 00000 n + 0000012606 00000 n + 0000138831 00000 n + 0000138645 00000 n + 0000013588 00000 n + 0000144502 00000 n + 0000144309 00000 n + 0000014589 00000 n + 0000015510 00000 n + 0000019347 00000 n + 0000163643 00000 n + 0000021924 00000 n + 0000019521 00000 n + 0000021834 00000 n + 0000163829 00000 n + 0000025014 00000 n + 0000021986 00000 n + 0000024902 00000 n + 0000163934 00000 n + 0000027831 00000 n + 0000025076 00000 n + 0000027730 00000 n + 0000164217 00000 n + 0000030266 00000 n + 0000027893 00000 n + 0000030188 00000 n + 0000164322 00000 n + 0000032845 00000 n + 0000030328 00000 n + 0000032767 00000 n + 0000164508 00000 n + 0000035163 00000 n + 0000032907 00000 n + 0000035107 00000 n + 0000164613 00000 n + 0000037538 00000 n + 0000035225 00000 n + 0000037437 00000 n + 0000164799 00000 n + 0000040230 00000 n + 0000037600 00000 n + 0000040152 00000 n + 0000164904 00000 n + 0000040939 00000 n + 0000040292 00000 n + 0000040872 00000 n + 0000165090 00000 n + 0000041829 00000 n + 0000041001 00000 n + 0000041784 00000 n + 0000165196 00000 n + 0000042929 00000 n + 0000041892 00000 n + 0000042884 00000 n + 0000165483 00000 n + 0000044560 00000 n + 0000042993 00000 n + 0000044492 00000 n + 0000165591 00000 n + 0000046147 00000 n + 0000044624 00000 n + 0000046090 00000 n + 0000165782 00000 n + 0000048112 00000 n + 0000046211 00000 n + 0000048011 00000 n + 0000165890 00000 n + 0000049990 00000 n + 0000048176 00000 n + 0000049911 00000 n + 0000166081 00000 n + 0000052585 00000 n + 0000050054 00000 n + 0000052483 00000 n + 0000166189 00000 n + 0000054621 00000 n + 0000052649 00000 n + 0000054519 00000 n + 0000166380 00000 n + 0000057104 00000 n + 0000054685 00000 n + 0000056991 00000 n + 0000166488 00000 n + 0000057367 00000 n + 0000057168 00000 n + 0000057333 00000 n + 0000166776 00000 n + 0000060135 00000 n + 0000057431 00000 n + 0000060067 00000 n + 0000166884 00000 n + 0000063347 00000 n + 0000060199 00000 n + 0000063302 00000 n + 0000167075 00000 n + 0000066197 00000 n + 0000063411 00000 n + 0000066163 00000 n + 0000167183 00000 n + 0000068852 00000 n + 0000066261 00000 n + 0000068818 00000 n + 0000167374 00000 n + 0000071622 00000 n + 0000068916 00000 n + 0000071588 00000 n + 0000167482 00000 n + 0000074544 00000 n + 0000071686 00000 n + 0000074499 00000 n + 0000167673 00000 n + 0000076749 00000 n + 0000154252 00000 n + 0000154065 00000 n + 0000074608 00000 n + 0000075337 00000 n + 0000076680 00000 n + 0000167781 00000 n + 0000077012 00000 n + 0000076813 00000 n + 0000076978 00000 n + 0000164120 00000 n + 0000163167 00000 n + 0000163457 00000 n + 0000163748 00000 n + 0000164039 00000 n + 0000165386 00000 n + 0000164427 00000 n + 0000164718 00000 n + 0000165009 00000 n + 0000165304 00000 n + 0000166679 00000 n + 0000165699 00000 n + 0000165998 00000 n + 0000166297 00000 n + 0000166596 00000 n + 0000167972 00000 n + 0000166992 00000 n + 0000167291 00000 n + 0000167590 00000 n + 0000167889 00000 n + 0000168353 00000 n + 0000168376 00000 n + 0000168398 00000 n + trailer + << + /Size 196 + /Root 2 0 R + /Info 1 0 R + >> + startxref + 168519 + %%EOF diff -aNrc2 readline-4.3-patched/doc/rluserman.ps readline-5.0/doc/rluserman.ps *** readline-4.3-patched/doc/rluserman.ps Thu Jun 27 13:54:43 2002 --- readline-5.0/doc/rluserman.ps Tue Jul 27 09:31:37 2004 *************** *** 2,13 **** %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: rluserman.dvi ! %%Pages: 24 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments %DVIPSWebPage: (www.radicaleye.com) ! %DVIPSCommandLine: dvips -D 300 -t letter -o rluserman.ps rluserman.dvi ! %DVIPSParameters: dpi=300, compressed ! %DVIPSSource: TeX output 2002.06.27:1354 %%BeginProcSet: texc.pro %! --- 2,13 ---- %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: rluserman.dvi ! %%Pages: 32 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%EndComments %DVIPSWebPage: (www.radicaleye.com) ! %DVIPSCommandLine: dvips -D 600 -t letter -o rluserman.ps rluserman.dvi ! %DVIPSParameters: dpi=600, compressed ! %DVIPSSource: TeX output 2004.07.27:0931 %%BeginProcSet: texc.pro %! *************** *** 68,765 **** %%EndProcSet ! TeXDict begin 40258431 52099146 1000 300 300 (rluserman.dvi) @start ! %DVIPSBitmapFont: Fa cmbxti10 14.4 1 ! /Fa 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46 ! D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fb cmbx12 13.14 46 ! /Fb 46 122 df<123C127E12FFA4127E123C08087C8711>46 D<131C133C13FC12FFA212 ! 00B3AA387FFFFCA216237CA21F>49 D<48B4FC000713C0381E07F0383803F8386001FC38 ! 7C00FE12FE14FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F ! 00131E5B1370EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA21823 ! 7DA21F>I<48B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C010000 ! 13FCA2EB03F8EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210 ! 127C12FEA214FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14 ! 381478A214F81301130313071306130C131C13381330136013E0EA01C01380EA03005A12 ! 0E5A12185A12705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C00 ! 1F137CEBFFF814F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8 ! 000813FCC7127EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FF ! C03801FE0018237DA21F>II<1230123C ! 003FB512C0A215804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA2 ! 5BA2133CA25BA213F8A41201A66C5A13601A257DA41F>II<141CA2143EA3147FA24A7EA39038019F ! C0A29038031FE0140F01077FEB0607A2010C7F1403011C7FEB1801A2496C7EA2017FB5FC ! A29039E0007F8049133FA2484880151F00038190C7120FA2486E7ED8FFF090B51280A229 ! 257EA42E>65 DI<9138FF8008010FEBF0 ! 1890393FC03C789039FE0006F8D801F81303484813014848130048481478121F48481438 ! A2007F151890C8FCA2481500A97E16187F123FA26C6C1430120F6C6C14606C6C14C06C6C ! EB0180D800FEEB070090383FC01E90380FFFF8010013C025257DA42C>I69 ! DI72 DI75 ! DIII82 ! D<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A27E91C7FCB4FC ! EA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200 ! C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>I< ! 007FB612F8A2397E00FE010078EC00780070153800601518A200E0151C160C5AA4C71400 ! B3A390B512FEA226247EA32B>I89 ! D97 ! DIII<137F3803FFC03807C1F0380F80F8EA1F0048137C127E147E ! 12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803FFE038007F80 ! 17187E971C>II<3901FF07C00007EBDFE0380F83F1EA1F01393E00F800 ! 007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA21238123C383FFFE06C ! 13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00381F807E3807 ! FFF8C613C01B247E971F>II<120FEA1F80EA3FC0A4EA1F80EA0F00 ! C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I107 DI<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A9007E803F001 ! A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE903883FF80390F8E ! 0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>II<38FFC1FCEBCFFF390FFC1FC09038F007E001 ! C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F809038CFFF00 ! EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7CEB90FC13B013 ! A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C07EA7001EAF0 ! 00A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC001A212E014C0 ! EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A312031207120F121FB5 ! 12C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218>I<39FFC07F ! E0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E9722>I<39FFF8 ! 0FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00005B13FE ! EB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<39FFF83FF0A2390FC00F ! 003807E00E6C6C5A6D5A6C6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F81361EB ! E0FC3801C07E3803807F3907003F8048131F39FFC07FF8A21D187F9720>120 ! D<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00 ! 005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21306A25B1230EA781CEAFC185B ! 1370EA68E0EA7FC0001FC8FC1D237F9720>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fc cmsl10 10.95 40 ! /Fc 40 122 df45 D<1408140C141C143CA2147C147E149EA2EB ! 011EA21302801304A21308A20110138014071320A2EB7FFF90384007C0EB8003A2EA0100 ! A21202EC01E01206001F130339FF801FFE1F207F9F22>65 D<0007B5FC3900F803C09038 ! 7801E0EC00F04913F8A515F03801E001EC03E015C0EC0F809038FFFE009038E00F803903 ! C003C0EC01E015F0A21400A2485A1401A215E01403EC07C0390F000F80EC3E00B512F01D ! 1F7E9E20>II<0007B57E3900F801E09038780070 ! 81497F151E150E150FA348481480A6484814005DA3151E153E4848133C5DA25D4A5A4A5A ! 260F000FC7FC143CB512F0211F7E9E23>I<0007B512FC3900F8007C0178131C150C5B15 ! 04A414043901E00800A31438EBFFF8EBE0383803C010A4EC00081510485AA21520A21560 ! 15C0380F00011407B612801E1F7E9E1F>I<0007B512F83900F800780178133815185B15 ! 08A53901E00800A314181438EBFFF83803C0301410A491C7FC485AA648C8FC7FEAFFFC1D ! 1F7E9E1E>I<3A07FF83FFC03A00F8007C000178133CA2495BA648485BA490B5FCEBE000 ! 4848485AA64848485AA64848485A01807F39FFF07FF8221F7E9E22>72 ! D<3807FF803800F8001378A25BA6485AA6485AA6485AA648C7FC7FEAFFF0111F7E9E10> ! I<3A07FF803FE03A00F8001F000178130C5D4913205D5D4AC7FC1402140848485A5C1460 ! 14F013E1EBE4F83803C878EBD07CEBE03CEBC03E141E141F48487E81140781140381380F ! 00016D487E39FFF00FFE231F7E9E23>75 D<3807FFE0D800FCC7FC1378A25BA6485AA648 ! 5AA41580EC0100EA0780A25C14021406140E380F001E147CB512FC191F7E9E1C>I78 DI< ! 0007B5FC3900F803C090387800F015785B157CA41578484813F815F0EC01E0EC03C0EC0F ! 00EBFFFCD803C0C7FCA6485AA648C8FC7FEAFFF81E1F7E9E1F>I<3807FFFE3900F80780 ! 90387801E0EC00F05B15F8A415F03801E00115E0EC03C0EC0780EC1E00EBFFF03803C038 ! 80141E140EA2140F48485AA51501D80F0013029038800F8239FFF8078CC7EA01F020207E ! 9E22>82 DI<003FB512F0383C07800030 ! 1430126039400F0010A212C01280A3D8001E1300A65BA65BA65B7F383FFFE01C1F7A9E21 ! >I<39FFF00FF8391F0003E06CEB01801400001EEB0100A6481302A6485BA600705BA25C ! A200785B1238001813C06C48C7FCEA0706EA01F81D20799E22>I<3BFFF07FF81FF03B1F ! 000FC007C0001E903907800380001FED01006C1502140F5EEC17C002135B142301805C00 ! 0713435E14C3913883E0401481D981015B13C1D803C213E193C7FC13C415F2EBC80015F4 ! EA01F015F85B5D5B15605B000014402C207A9E2F>87 D97 D<1207123F120F7EA2120EA65A137CEA1D83381E0180001C13C0EB00E05A14 ! F0A5387001E0A214C013031480EB0700EAE80EEACC38EA83E014207B9F19>I<13FEEA03 ! 83380E0780121C0038130090C7FC12785AA45AA37E5BEA70026C5AEA1C18EA07E011147D ! 9314>I<13F8EA070EEA0E07381C038012381278127012F0B5FC00F0C7FCA25AA46C5AEA ! 7002EA3004EA1C18EA07E011147D9314>101 DI<140EEB ! 3E11EBE1A33801C1C2380381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FC ! A21218121CEA0FFF14C014E0381800F04813305A5AA3006013606C13C0381C0700EA07FC ! 181F809417>I105 D<13E0120712011200A2485AA6485AEB81FCEB ! 80F014C0EB81801400EA07045B13181338137C131C120E7FA2130F7F1480EA1C03381E07 ! C038FF8FF016207E9F18>107 D<13E0120712011200A2EA01C0A6EA0380A6EA0700A612 ! 0EA65A121EEAFF800B207F9F0C>I<390387C07C391F9861863907A072073903C03403EB ! 80380007EB7807EB0070A5000EEBE00EA64848485A001EEBE01E3AFFCFFCFFC022147E93 ! 26>I<38038F80381F90E0EA07A03803C0601380000713E01300A5380E01C0A6381C0380 ! 001E13C038FF8FF014147E9319>I<13FCEA0387380E0180381C00C04813E0A24813F012 ! F0A438E001E0A214C0130300F0138038700700EA380E6C5AEA07E014147D9317>IIIII<1380EA0100A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2 ! EA1840EA0F800D1C7C9B12>I<381C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4 ! 131EA25BEA305E381F9F8011147B9319>I<38FF83F8381E00E0001C13C01480121E380E ! 01005B13025B12075BA25BEA039013A013E05B5B120190C7FC15147C9318>I<381FF0FF ! 3803C0780001137014403800E0C0EBE180EB73001376133CA2131C132E134E1387EA0107 ! 380203801204380C01C0383C03E038FE07FC18147F9318>120 D<390FF83F803901E00E ! 00EBC00C140813E000005B143014205C13705CA20171C7FC1339133A133E133C13381318 ! 1310A25BA25BEA70C0EAF08000F1C8FC12E61278191D809318>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fd cmti10 10.95 8 ! /Fd 8 117 df12 ! D<127012F8A212F012E005057B840E>46 D103 D<13C0EA01E0A213C0C7FCA7120E12131223EA ! 4380EA4700A21287120EA35AA3EA38401380A21270EA31001232121C0B1F7C9E0E>105 ! D<381C0F80382630C0384740601380EB0070A2008E13E0120EA3381C01C0A3EB03840038 ! 1388A2EB0708EB031000701330383001C016147C931A>110 D114 ! D<13FCEA0302EA0601EA0C03130713061300EA0F8013F0EA07F8EA03FCEA003E130E1270 ! EAF00CA2EAE008EA4010EA2060EA1F8010147D9313>II ! E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fe cmr8 8 26 ! /Fe 26 118 df<126012F0A212701210A21220A21240A2040A7D960A>39 ! D45 D<1206120E12FE120EB1EAFFE00B157D9412>49 ! D<13101338A3135CA3138EA3EA0107A238020380A33807FFC0EA0401A2380800E0A20018 ! 13F0123838FE03FE17177F961A>65 DIIIII76 D80 D82 ! DI<387FFFF8386038180040 ! 1308A200801304A300001300AF3803FF8016177F9619>I<12FCA212C0B3AB12FCA20621 ! 7D980A>91 D97 D99 D101 D<1203EA0780A2EA0300C7FCA5 ! EA1F801203AF1243EAE30012E7127C091D82960B>106 D<12F81238A8133E1338133013 ! 4013801239EA3FC0EA39E0123813F01378133CA2EAFE7F10177F9613>I110 D112 D114 DI<1208A31218A21238EAFFC0EA3800A7 ! 1340A4EA1C80EA0F000A147F930E>II E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ff cmsy9 9 2 ! /Ff 2 106 df<13801201EA0300A31206A25AA35AA35AA25AA35AA21260A37EA27EA37E ! A37EA27EA3EA0180120009267D9B0F>104 D<12C0A21260A37EA27EA37EA37EA27EA3EA ! 0180A2EA0300A31206A25AA35AA35AA25AA35AA209267E9B0F>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fg cmsltt10 10.95 29 ! /Fg 29 122 df<1206120FEA1F80120FA21203EA0700A25A120E123C127C12F01260090E ! 769B18>39 D<387FFFC0B512E0A26C13C013047C8F18>45 D<133E13FF000313803807C3 ! C0EA0F01000E13E0EA1C00123C003813F014705AA34813E0A4EB01C0A2130300F01380EA ! 7007EB0F00EA781E6C5AEA1FF85BEA07C0141C7C9B18>48 D<13181338A2137813F81203 ! 120F137012041200A413E0A6EA01C0A6EA7FFE12FF127F0F1C7B9B18>I67 D<3807FFC014E014F03801C0F814 ! 78143C141CEA0380141EA2140EA33807001CA4143C1438120E147014F0EB01E0EB03C013 ! 07387FFF8038FFFE00EA7FF8171C7F9B18>I<0007B5FC5A7E3801C007A3140638038000 ! A2EB818014C0A213FF481380A21303A2140090C7FC120E140C141CA4387FFFF8B5FC7E18 ! 1C7F9B18>I74 D76 D<3907E01F80000FEB3FC0000714803903 ! B02E00146EA214CE380730DC1331149CA21333141C000E5B13371336133E133C131848C6 ! 5AA638FE03F800FF7F00FE5B1A1C7F9B18>I<126012F0A37E1278A3127C123CA3123E12 ! 1EA3121F7EA313801207A313C01203A413E01201A313F0120013600C24789F18>92 ! D<387FFFC0B512E0A26C13C013047E7F18>95 D97 D<127EA3120EA45A137CEA1DFF001F13801383381E01C0123CEB00E012 ! 38A4387801C0A2EB0380A2EB0F00EA7C1FEAFFFCEAEFF8EA63E0131C7C9B18>I100 D<13F8EA07FE487E381F ! 0780EA3C03387801C0127012E0A2B5FCA2148000E0C7FCA213033870078038780F00EA3F ! FE6C5AEA07F012147B9318>III<14C0EB01E013031301EB00C01400A4EBFFC0A31301A2EB0380A6 ! EB0700A6130EA65BA2EA6038EAF078B45A5BEA3F8013277F9C18>106 ! DII<13FCEA03FF000F1380 ! EA1F07383C03C0EA7801007013E0EAE000A4EB01C0A2EB0380EAF007EB0F00EA7C3EEA3F ! FC6C5AEA07E013147C9318>111 D113 D<381FE1F8EBE7FCEBEFFE3800FE1EEBFC0C3801F8005B5B5BA3485AA6EA ! FFFC7F5B17147E9318>II<387E07E0EAFE0FEA7E07EA0E00A2381C01C0A638380380A41307131F383FFF ! E06C13F03807E3E014147D9318>117 D<38FF87F8138F1387383800E0EB01C0A3148013 ! E3EA39F31233EB7700A212371376EA3666136EEA3C7CA2EA383815147C9318>119 ! D<381FE3FC13E713E33803C3C000011380EBE700EA00EE13FC137C1338137813FCEA01DC ! EA038E12071307120E38FF1FE0EB9FF0EB1FE016147E9318>I<380FF1FE381FF9FF380F ! F1FE3803807013C0000113E0A213C114C0A23800E380A2EBE700A213E6136E136C137C13 ! 78A21370A25BA2485A12F3EAF780B4C7FC5A1278181E7F9318>I ! E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fh cmcsc10 10.95 12 ! /Fh 12 121 df<1318A2133CA3134EA213CF1387A238010380A2000313C0EA0201A23807 ! FFE0EA0400A2481370A2001813380038137838FE01FF18177F961C>97 ! D99 ! D101 DII105 D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C13 ! 0E1307A2EB03A0EB01E0A213001460123800FE132016177E961C>110 ! D<13FE38038380380E00E0481370003C1378003813380078133C0070131C00F0131EA700 ! 70131C0078133C00381338003C1378001C13706C13E0380383803800FE0017177E961D> ! II115 ! D<38FF81FC381C00701420B0000C1340120E6C138038018300EA007C16177E961C>117 ! D<38FF80FE381F0070000E13606C1340EB80803803C100EA01C3EA00E213F4137813387F ! 133E134E13C7EB8780380103C0EA0201380600E0000413F0000C1370003C137800FE13FF ! 18177F961C>120 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fi cmbx12 17.28 18 ! /Fi 18 117 df49 D<913A03FF800180023FEBF00349B5EAFC0701079038003F0FD91FF8EB ! 079FD93FC0EB01FFD9FF807F4848C8127F4848153F0007161F49150F485A001F1607A248 ! 5A1703127FA24992C7FCA212FFA9127FA27FEF0380123FA26C7E1707000F17006C7E6D15 ! 0E0003161E6C6C151C6C6C6C1478D93FC05CD91FF8EB03E0D907FFEB3F800101D9FFFEC7 ! FCD9003F13F80203138031317CB03A>67 D69 ! D76 D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780 ! A3481603A5C792C7FCB3AA017FB6FCA331307DAF38>84 D97 DI100 DII<90 ! 391FF007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF0 ! 00A2003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC ! 121EA2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C ! 140F00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0 ! D8001F90C7FC242F7E9F28>I105 D108 D<2703F007F8EB1FE000FFD93FFEEBFFF8913A783F01E0FC02C09038 ! 8300FE280FF1801FC6137F2607F30013CC01F602F8148001FC5CA3495CB3B500C3B5380F ! FFFCA33E207D9F43>I<3903F007F800FFEB3FFEEC783F02C013803A0FF1801FC03807F3 ! 0001F614E013FCA35BB3B500C3B5FCA328207D9F2D>II<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90 ! C7FCB47E13FC387FFFC06C13F0806C7F00077F00017FEA003F01001380143F0060131F00 ! E0130FA27E15007E6C131E6C131C38FF807838F3FFF038C07F8019207D9F20>115 ! D<131CA5133CA3137CA213FC120112031207381FFFFEB5FCA2D803FCC7FCB0EC0380A712 ! 01EC0700EA00FEEB7F0EEB3FFCEB07F0192E7FAD1F>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fj cmsy10 10.95 1 ! /Fj 1 14 df<14FE903807FFC090381F01F0903878003C01E0130ED80180130348C7EA01 ! 800006EC00C0481560A2481530481518A248150CA4481506A90060150CA46C1518A26C15 ! 306C1560A26C15C06CEC01806C6CEB0300D800E0130E0178133C90381F01F0903807FFC0 ! D900FEC7FC272B7DA02E>13 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fk cmbx12 14.4 39 ! /Fk 39 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612 ! 0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46 ! D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49 ! DII<140FA25C5C5C5C5BA2EB03 ! BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8 ! A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091 ! C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218 ! 127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6 ! 22>I66 ! D<91387FE003903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F484814 ! 7F4848143F4848141F485A160F485A1607127FA290C9FC5AA97E7F1607123FA26C7E160E ! 6C7E6C6C141C6C6C143C6C6C14786CB4EB01F090397FF007C0011FB512800107EBFE0090 ! 38007FF028297CA831>I69 DI73 ! D76 DI82 ! D<9038FF80600003EBF0E0000F13F8381F80FD383F001F003E1307481303A200FC1301A2 ! 14007EA26C140013C0EA7FFCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB ! 007FEC1FF0140F140700E01303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE00 ! 00E15B38C01FF01C297CA825>I85 D87 D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4 ! EB3FFF3801FC3FEA0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F38 ! 03FC031E1B7E9A21>97 DIIIII<90 ! 38FF80F00003EBE3F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E13 ! 3E003F137E6C137C380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14 ! C06C14E06C14F0121F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC0 ! 1F806CB5120038007FF01E287E9A22>II<1207EA0F80EA ! 1FC0EA3FE0A3EA1FC0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12> ! I108 D<26FFC07FEB1FC0903AC1FFC07FF0 ! 903AC307E0C1F8D80FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFF ! FE3FFF8FFFE0A3331B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC807 ! 01D813F013D0A213E0B039FFFE3FFFA3201B7D9A25>II<38FFC1F0EBC7FC ! EBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114 ! D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C ! 13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FF ! C000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000 ! AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F13 ! 07B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA339 ! 0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214 ! 9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE0 ! 0FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600 ! FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2 ! EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801 ! FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F ! 803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF0 ! 00F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB ! 3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5B ! EA74F0EA3FE0EA0F8020277F9A23>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fl cmtt10 10.95 77 ! /Fl 77 127 df<127012F8B012701200A5127012F8A31270051C779B18>33 ! DI ! I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F ! 6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F ! F8EA07E0EA01C0A3120011247D9F18>I<1238127CA2127E123E120EA3121CA2123812F8 ! 12F012C0070E789B18>39 D<137013F0EA01E0EA03C0EA0780EA0F00121E121C5AA25AA4 ! 5AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C24799F18>I<126012F012 ! 787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01C0A2EA03801207EA0F0012 ! 1E5A5A5A12600C247C9F18>II<121C123E127E ! 127F123F121F1207120E121E127C12F81260080C788518>44 D<387FFFC0B512E0A26C13 ! C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F14005B ! 131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A121E123E ! 123CA2127C127812F85AA2126011247D9F18>III<383FFF80A30038C7FCA8EA3BF8EA3FFE7F383C ! 0780383003C0EA0001EB00E0A2126012F0A238E001C0EA7003387C0F80383FFF00EA1FFC ! EA03F0131C7E9B18>53 D<12E0B512E0A214C038E00380EB0700C65A131E131C5BA25B13 ! F05BA2485AA3485AA448C7FCA7131D7E9C18>55 DI<1230127812 ! FCA2127812301200A81230127812FCA2127812300614779318>58 ! D<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FCA2127F6C ! 7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E01303EB00C013187E9918>60 ! D<387FFFC0B512E0A26C13C0C8FCA4387FFFC0B512E0A26C13C0130C7E9318>I<126012 ! F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE0048 ! 5AEA07F0485AEA3F8048C7FC12FC5A126013187E9918>II<137CEA01FEEA07FF380F8780381E03C0EA3C1DEA387F3870FFE0EA71E313C1 ! 12E1EAE380A638E1C1C0127113E33870FF8038387F00EA3C1C381E00E0EA0F833807FFC0 ! 0001138038007E00131C7E9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707 ! A5380FFF80A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>III ! III<3801F1C0EA03FDEA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5 ! EB0FF0131F130F387001C0A213031238A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B ! 18>I<387F07F038FF8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8 ! 387F07F0151C7F9B18>II<387F07F038FF87F8387F07F0381C03C0EB07801400130E131E5B13385B13F0 ! 121DA2EA1FB8A2131C121EEA1C0EA27FA2EB0380A2EB01C0387F03F038FF87F8387F03F0 ! 151C7F9B18>75 DI<38FC01F8EAFE ! 03A2383B06E0A4138EA2EA398CA213DCA3EA38D8A213F81370A21300A638FE03F8A3151C ! 7F9B18>I<387E07F038FF0FF8387F07F0381D81C0A313C1121CA213E1A313611371A213 ! 311339A31319A2131D130DA3EA7F07EAFF87EA7F03151C7F9B18>IIIII<3803F1C0EA1FFF5AEA7C0FEA7003EAE001A390C7FC12701278123FEA1FF0EA07FE ! C67EEB0F80EB03C01301EB00E0A2126012E0130100F013C038F80780B5FCEBFE00EAE7F8 ! 131C7E9B18>I<387FFFF8B5FCA238E07038A400001300B2EA07FFA3151C7F9B18>I<38FF ! 83FEA3381C0070B36C13E0EA0F01380783C03803FF806C1300EA007C171C809B18>I<38 ! FE03F8EAFF07EAFE03381C01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3 ! EA00F8A21370A9EA01FC487E6C5A151C7F9B18>89 D91 D<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203A27F ! 12017F12007F1378A2137C133C133E131EA2131F7F14801307A2EB030011247D9F18>I< ! EAFFF8A3EA0038B3ACEAFFF8A30D247F9F18>I<387FFFC0B512E0A26C13C013047E7F18> ! 95 D97 D<127E12FE127E120EA5133EEB ! FF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E1380 ! 38063E00151C809B18>IIIII<3801E1F03807FFF85A381E1E30381C0E00487EA5EA1C0EEA1E1EEA ! 1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F038700070481338A4007813F0 ! EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE127E120EA5133EEBFF8000 ! 0F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC171C809B18>II<1338137CA31338 ! 1300A4EA0FFCA3EA001CB3A4EA6038EAF078EAFFF0EA7FE0EA3F800E277E9C18>I<127E ! 12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA0E0F7FEB03 ! 8014C0387FC7F812FF127F151C7F9B18>II< ! 38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB3E3E17148093 ! 18>IIII<3801F380EA07FBEA1FFFEA3E1FEA38 ! 0FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3EA0003A7EB1FF0EB ! 3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0005BA290C7FC ! A9EAFFFC7F5B14147E9318>II<48 ! 7E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C1380EB3E0013197F ! 9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE3801FCFC1714 ! 809318>I<387F8FF000FF13F8007F13F0381C01C0380E0380A338070700A3138FEA038E ! A3EA01DCA3EA00F8A2137015147F9318>I<38FF07F8138F1307383800E0A4381C01C013 ! 7113F9A213D9EA1DDD000D1380A3138DEA0F8FA23807070015147F9318>I<387F8FF013 ! 9F138F380F0700EA078EEA039EEA01DC13F81200137013F07FEA01DCEA039E138EEA0707 ! 000E1380387F8FF000FF13F8007F13F015147F9318>I<387F8FF000FF13F8007F13F038 ! 0E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013DC1378A31370A313 ! F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA2387001E0EB03C0EB ! 078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512F0A314147F9318> ! II<127CB4FC13C01203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005B ! ABEA03C012FF90C7FC127C13247E9F18>125 DI E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fm cmr10 10.95 71 ! /Fm 71 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7 ! B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701 ! A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>I<127012F812FCA212741204A312 ! 08A21210A212201240060E7C9F0D>39 D<13401380EA01005A12061204120C5AA2123812 ! 30A212701260A412E0AC1260A412701230A212381218A27E120412067E7EEA008013400A ! 2E7BA112>I<7E12407E12307E1208120C7EA212077EA213801201A413C0AC1380A41203 ! 1300A25A1206A25A120812185A12205A5A0A2E7EA112>I<127012F012F8A212781208A3 ! 1210A31220A21240050E7C840D>44 DI<127012F8A312700505 ! 7C840D>I48 D<13801203120F12F31203B3A6 ! EA07C0EA7FFE0F1E7C9D17>III<1306A2130EA2131E132EA2134E138EA2 ! EA010E1202A212041208A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17 ! >II<137C ! EA0182EA0701380E0380EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406 ! EAF807EB0380A200F013C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D ! 17>I<1240387FFFE014C0A23840008038800100A21302485AA25B5BA25BA21360A213E0 ! 5B1201A41203A76C5A131F7E9D17>III<127012F8A3 ! 12701200AA127012F8A3127005147C930D>I<127012F8A312701200AA127012F012F8A2 ! 12781208A31210A31220A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB ! 2078A3497EA2EBC03EEB801EA248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14 ! E039FF801FFE1F207F9F22>65 DI<90380FE0109038381C309038E002703803C00139078000F048C71270121E15305A ! 1510127C127800F81400A91278007C1410123CA26C1420A27E6C6C13406C6C13803900E0 ! 0300EB380CEB0FF01C217E9F21>IIII<90380FE02090387818609038E004E03803800238070001481300001E14 ! 60A25A1520127C127800F81400A7EC7FFCEC03E000781301127C123CA27EA27E7E380380 ! 023900E00460903878182090380FE0001E217D9F24>I<39FFF07FF8390F000780AD90B5 ! FCEB0007AF39FFF07FF81D1F7E9E22>II<39FF ! F007FC390F0003E0EC0180150014025C5C5C5C5C5C49C7FC5B497E130FEB13C0EB21E013 ! 41EB80F0EB0078A28080A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E9E23>75 ! DI ! IIII82 ! D<3803F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF8 ! 6CB4FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F80180 ! 38C60300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C014 ! 3000801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC00 ! 80B3A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003 ! FE391F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213 ! F8EB7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF0 ! 7FF81FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013C00003 ! 5DEC19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C14 ! 4090383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<39 ! FFF001FF391F800078000F146012076D1340000314807F3901F001001200EBF802EB7C06 ! EB3C04EB3E08131EEB1F10EB0FB0EB07A014E06D5AACEB3FFC201F7F9E22>89 ! D<12FFA212C0B3B3A512FFA2082D7CA10D>91 D<12FFA21203B3B3A512FFA2082D80A10D ! >93 D<120812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96 ! DI<121C12FC121CAA137CEA1D87381E0180EB00 ! C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F ! 19>IIII<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE010 ! 20809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33 ! E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13 ! C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A212 ! 1CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F ! 9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA61 ! 80EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0 ! EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC ! 121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D019018001EEBE01CA200 ! 1C13C0AE3AFF8FF8FF8021147E9326>IIII<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A61270 ! 12781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>III<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F ! 9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8 ! 383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3 ! 132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D807 ! 04138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E147F ! 9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F0137013 ! 7813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>I< ! 38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8 ! A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>II E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fn cmbx12 20.736 19 ! /Fn 19 122 df71 D73 ! D76 D78 D82 ! D85 D97 D<13FE12FFA412071203B04AB4 ! FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0 ! 17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB ! FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I<903801FF ! F0010F13FE013FEBFF809039FF801FC03901FE003F4848EB7FE0485A485A121F4848EB3F ! C0ED1F80007FEC0F004990C7FCA212FFAA127F7FA2123F6D14F0121F6C6CEB01E012076C ! 6CEB03C06CB4EB0F806C9038C03F0090383FFFFE010F13F8010113C024267DA52B>II<49B47E01 ! 0F13F0017F13FC9038FF81FE3A03FE007F80D807F8133F4848EB1FC0ED0FE0485A003F15 ! F01507485A16F8A212FFA290B6FCA301C0C8FCA4127FA36C7E1678121F7F000F15F06C6C ! 13016C6CEB03E06C6CEB0FC03A00FFC07F8090393FFFFE00010F13F8010013C025267DA5 ! 2C>II< ! EA01E0EA07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13FE127FA412071203B3AAB512 ! F0A4143D7DBC1A>105 D<13FE12FFA412071203B3B3AEB512F8A4153C7DBB1A>108 ! D110 ! D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000035BEBFD80A2 ! 01FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114 ! D<90383FF0383903FFFE7848EBFFF8381FC00F383F0003003E13005A157812FCA27E6C14 ! 0013C013FC387FFFF06C13FEECFF806C14C06C14E0000314F0C614F8011F13FCEB007FEC ! 07FE0070130100F01300157E7EA27E157C6C14FC6C14F890388001F09038F00FE000F9B5 ! 12C0D8F07F130038C01FF81F267DA526>I<130FA55BA45BA25BA25B5A5A5A001FEBFFF0 ! B6FCA3000190C7FCB3153CA86C14781480017F13F090383FC1E090381FFFC06D13809038 ! 01FE001E377EB626>I121 D E %EndDVIPSBitmapFont end %%EndProlog %%BeginSetup ! %%Feature: *Resolution 300dpi TeXDict begin %%BeginPaperSize: Letter --- 68,1681 ---- %%EndProcSet ! TeXDict begin 40258431 52099146 1000 600 600 (rluserman.dvi) @start ! %DVIPSBitmapFont: Fa cmsltt10 9 13 ! /Fa 13 122 df97 ! D101 ! D104 D<143814FE1301A46D5A ! 147891C7FCA73803FFF0487FA37EEA00015CA41303A25CA41307A25CA4130FA25CA3007F ! B512C0B612E0A315C01B2F79AE27>I<90B5FC5AA37EEB001F5CA2143EA4147EA2147CA4 ! 14FCA25CA41301A25CA41303A25CA41307A25CA3007FB512F8B612FCA36C14F81E2E7BAD ! 27>108 D<3A03F0FC07E03A07FBFE1FF090B5EA3FF8EDFFFCA2C690388FFC7C9039FE07 ! F03C01FC13E001F813C0A23A01F00F807CA2167801E01300A300034913F8A2D9C01E13F0 ! A40007EB3E01A2D9803C13E0A33A7FF0FF87FCD8FFF9EBCFFEA3D87FF1EB8FFC2720809F ! 27>I<3903FE07F83907FF1FFEEC7FFF91B5128016C039003FFC1FECE00FECC007148014 ! 0049130F137E1680137CA301FC131FA2491400A400015CA249133EA33A7FFF87FFF0B500 ! CF13F8A36C018713F025207F9F27>II<3A07FF803FC0489038C1FFF002C713F802CF13FC6C90B5FC ! D8000F13E3ED03F89138FC01F09138F800604A1300495A5CA25CA291C8FC5BA2133EA413 ! 7EA2137CA3B6FCA526207D9F27>114 D<903807FF1C013F13FE90B5FC5A1207EBFC0139 ! 0FE000FC49137C5BA2153801E01300EA07FEEBFFF8000113FF6C6C13C0010F13E0903800 ! 7FF0EC03F8001C1301003EEB00FC157C007E14FC127FEC01F8EB80039038E01FF090B5FC ! B612C0158000F8EBFE0038703FF01F207B9F27>I<131E133FA2133EA4137EA2007FB512 ! F0B612F8A36C14F0D800FCC7FC5BA41201A25BA41203A25BA2EC01E015F01403A2EC07E0 ! 140F9038F83FC090B5128015006C5B38007FF8EB1FC01D2979A827>I<397FC00FF839FF ! E01FFCA4000713004913F8A4000F1301A2018013F0A4001F1303A2010013E0A314075A14 ! 0F003EEB1FC0003F133FEB80FF90B512FE6C14FFA2000713EF0001EB07FE20207A9F27> ! I<3A01FFE01FFF486D5AA39138E01FFE3A001E0003C0A2011FEB0780A26DEB0F00A2151E ! 148001075BA25DA26E5A1303ECC1E0A2ECC3C0EB01E3ECE780A202EFC7FC130014FEA25C ! A2147814F85C13015C13035C130700085BEA7E0F49C8FCEAFE3EEAF8FEB45A5B6C5AEA3F ! C06CC9FC28317F9F27>121 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fb cmtt9 9 48 ! /Fb 48 122 df<120FEA1FC0123F13E0A213F0121F120F1201A4120313E01207EA0FC0A2 ! EA3F80EA7F005A5A12F812700C1773AD27>39 DI<1270 ! 12F812FE7E6C7E6C7EEA0FE06C7E12037F6C7E1200137EA27FA2EB1F80A3EB0FC0A4EB07 ! E0ACEB0FC0A4EB1F80A3EB3F00A2137EA25B1201485A5B1207485AEA3FC0485A48C7FC5A ! 12F81270133A7AB327>I<120FEA3FC013E0EA7FF0A213F8A2123FA2120F120113F01203 ! EA07E0121FEA7FC0EAFF8013005A12700D14738927>44 D<007FB512F8B612FCA46C14F8 ! 1E067C9927>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A728927>I<1538157C15FC ! A2140115F8140315F0140715E0140F15C0141F1580143F1500A25C147E14FE5C13015C13 ! 035C13075C130F5CA2131F5C133F91C7FC5B137E13FE5B12015B12035BA212075B120F5B ! 121F5B123F90C8FC5A127E12FE5AA25A12781E3A7CB327>I<130E131FA25B5BA25B5A5A ! 127FB5FCA213BFEA7E3F1200B3AA003FB512805A15C01580A21A2F79AE27>49 ! DI<120FEA3FC0A2EA7FE0A4EA3FC0A2EA0F00 ! C7FCAC120FEA3F8013C0127F13E0A3123FA2120F120713C0120FA2EA3F80EA7F005A5A12 ! F812700B2A739F27>59 D65 D<007FB5FCB612C08115F87E3907E003FC ! EC00FE157E157F81A6157EA25D1403EC0FF890B55A15C015F081819038E000FE157FED3F ! 80151FA2ED0FC0A6151F1680153FED7F004A5A007FB55AB65A5D15E06C1480222E7FAD27 ! >I<903803F80E90381FFE1F90383FFFBF90B6FC5A3803FE0F3807F803497E48487E485A ! 49137FA248C7123FA25A127E151E150012FE5AAA7E127EA2151E007F143F7EA26C7E157F ! 6D137E6C6C13FE3907F001FCEBF8033903FE0FF86CB512F06C14E0013F13C06D1300EB03 ! F820307DAE27>I<387FFFFC14FFB612C06C80813907E00FF81407EC01FC6E7EA2157E15 ! 7F811680151FA316C0150FABED1F80A3153F1600A25D15FEA24A5A4A5A140F007FB55A5D ! B65A6C91C7FC14FC222E7FAD27>I<007FB61280B712C0A37E3907E0000FA6ED078092C7 ! FCA4EC07804A7EA390B5FCA5EBE00FA36E5A91C8FCAC387FFF80B57EA36C5B222E7EAD27 ! >70 D<903807F03890381FFC7C90387FFFFC90B5FC5A3803FC1F3807F00F380FE007EBC0 ! 03001F13011380123F90C7FCA2127EA2157892C7FC5AA8EC1FFF4A1380A3007E6D1300EC ! 00FCA36C1301A21380121FEBC003120FEBE0073807F00F3803FC1F6CB5FC7EEB7FFE9038 ! 1FFC78D907F0C7FC21307DAE27>I<007FB512E0B612F0A36C14E039001F8000B3B2007F ! B512E0B612F0A36C14E01C2E7BAD27>73 D<387FFFC080B5FC7E5CD803F0C8FCB3AAED07 ! 80ED0FC0A7007FB6FCA2B7FC7E1680222E7FAD27>76 D<3A7FF003FFE0486C4813F0A213 ! FC007F6D13E000079038003E0013DEA313CFA3148013C714C0A213C314E0A213C114F0A3 ! EBC0F8A31478147CA2143C143EA2141E141F140FA3EC07BEA3EC03FEEA7FFCEAFFFE1401 ! A26C486C5A242E7FAD27>78 D<007FB5FCB612E081816C803907E003FEEC00FF81ED3F80 ! 151F16C0150FA6151F1680153FED7F005DEC03FE90B55A5D5D5D92C7FC01E0C8FCADEA7F ! FEB5FCA36C5A222E7FAD27>80 D<90387FC0E03901FFF1F0000713FF5A5AEA3FE0EB801F ! 387F000F007E130712FE5A1403A3EC01E06C90C7FC127E127FEA3FC013F86CB47E6C13F8 ! 6C13FE6CEBFF80C614C0010F13E0010013F0140FEC07F81403140115FC1400127812FCA4 ! 6CEB01F8A26C130390388007F09038F01FE090B5FC15C0150000F85B38701FF81E307CAE ! 27>83 D<007FB61280B712C0A439FC03F00FA60078EC0780000091C7FCB3AB90B512C048 ! 80A36C5C222E7EAD27>I<3A7FFE01FFF8B54813FCA36C486C13F83A07E0001F80B3AB6D ! 133F00031500A26D5B0001147E6D13FE6C6C485A90387F87F814FF6D5B010F13C06D5BD9 ! 01FEC7FC262F80AD27>I<3A7FFC03FFE06D5A00FF15F0007F15E0497E3A07E0007E00A4 ! 6C6C5BA4EBF80100015CA46C6C485AA490387E07E0A56D485AA4011F5B149FA3010F90C7 ! FCA5EB07FEA46D5AA26D5A242F7FAD27>I<13E0EA01F01207120F13E0EA1FC0EA3F00A2 ! 127E127C12FC5AA4B4FC138013C0127FA2123F1380EA0F000C1773B227>96 ! D<3803FFC0000F13F04813FC4813FF811380EC1FC0381F000F000480C71207A2EB0FFF13 ! 7F0003B5FC120F5A383FFC07EA7FC0130012FE5AA46C130F007F131FEBC0FF6CB612806C ! 15C07E000313F1C69038807F8022207C9F27>IIIIII<153F90391F ! C0FF80D97FF313C048B612E05A4814EF390FF07F873A1FC01FC3C0EDC000EB800F48486C ! 7EA66C6C485AEBC01FA2390FF07F8090B5C7FC5C485BEB7FF0EB1FC090C9FCA27F6CB5FC ! 15E015F84814FE4880EB8001007EC7EA3F80007C140F00FC15C0481407A46C140F007C15 ! 80007F143F6C6CEB7F009038F807FF6CB55A000714F86C5CC614C0D90FFCC7FC23337EA0 ! 27>II<130F497E497E ! A46D5A6DC7FC90C8FCA7383FFF80487FA37EEA000FB3A4007FB512F0B6FC15F815F07E1D ! 2F7BAE27>I ! 107 D<387FFF80B57EA37EEA000FB3B2007FB512F8B612FCA36C14F81E2E7CAD27>I<39 ! 7F07C01F3AFF9FF07FC09039FFF9FFE091B57E7E3A0FFC7FF1F89038F03FC001E0138001 ! C01300A3EB803EB03A7FF0FFC3FF486C01E3138001F913E701F813E36C4801C313002920 ! 819F27>I<387FE07F39FFF1FFC001F713F090B5FC6C80000313C1EC01FCEBFE005B5BA2 ! 5BB03A7FFF83FFE0B500C713F0A36C018313E024207F9F27>II<387FE0FFD8FFF313C090B512F0816C800003EB81FE ! 49C67E49EB3F8049131F16C049130FA216E01507A6150F16C07F151F6DEB3F80157F6DEB ! FF009038FF83FEECFFFC5D5D01F313C0D9F0FEC7FC91C8FCAC387FFF80B57EA36C5B2331 ! 7F9F27>I<397FFC03FC39FFFE0FFF023F13804A13C0007F90B5FC39007FFE1F14F89138 ! F00F809138E002004AC7FC5CA291C8FCA2137EAD007FB57EB67EA36C5C22207E9F27> ! 114 D<9038FFF3800007EBFFC0121F5A5AEB803F38FC000F5AA2EC07806C90C7FCEA7F80 ! 13FC383FFFF06C13FC000713FF00011480D8000F13C09038003FE014070078EB03F000FC ! 1301A27E14036CEB07E0EBE01F90B512C01580150000FB13FC38707FF01C207B9F27>I< ! 133C137EA8007FB512F0B612F8A36C14F0D8007EC7FCAE1518157EA415FE6D13FC1483EC ! FFF86D13F06D13E0010313C0010013001F297EA827>I<397FE01FF8486C487EA3007F13 ! 1F00031300B21401A21403EBFC0F6CB612E016F07EEB3FFE90390FF87FE024207F9F27> ! I<3A7FFC0FFF80486C4813C0A36C486C13803A07C000F800EBE00100035CA2EBF0030001 ! 5CA2EBF80700005CA390387C0F80A36D48C7FCA3EB3F3FEB1F3EA214FE6D5AA36D5AA26D ! 5A22207E9F27>I<3A7FFE07FFE000FF15F06D5A497E007F15E03A0F80001F00A36D5B00 ! 07143EA414F0EBC1F83903E3FC7CA4EBE79EA200011478A301F713F8A2EBFF0F6C5CA3EB ! FE0790387C03E024207F9F27>I<393FFC1FFF486C5A168016006C487E3901F807E06C6C ! 485A4A5A017E90C7FC6D5AEB1F7E5C6D5A13076D5A5C80497E130F497E143EEB3E3FEB7E ! 1F90387C0F8001F87F00016D7E3803F0033A7FFE1FFF80A2B54813C06C486C1380A22220 ! 7E9F27>I<3A7FFC0FFF80486C4813C0A36C486C13803A07E000F800000313015D13F000 ! 01130301F85B1200A26D485A137CA290387E0F80133EA2011F90C7FC5CA2130F149E14BE ! 130714FC1303A25C1301A25CA213035CA213075C1208EA3E0F007F5B131FD87E7FC8FCEA ! 7FFE6C5A5B6C5AEA07C022317E9F27>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fc cmbx12 13.14 50 ! /Fc 50 122 df46 D<15F014011407141F147FEB03FF137FB6FCA313FC1380C7FCB3B3B200 ! 7FB712E0A52B4777C63D>49 DIIIII<121F7F7F13FE90B812E0A45A18C0188018005F5FA25F485E90 ! C8EA07E0007E4B5A5F007C151F4CC7FC167E5E485D15014B5A4B5AC8485A4B5AA24BC8FC ! 157EA25D1401A24A5A1407A24A5AA2141FA24A5AA2147FA314FFA3495BA45BA55BAA6D5B ! A26D90C9FCEB007C334B79C93D>II58 ! D65 DI<93261FFF80EB01C00307B500F81303033F02FE13074AB7EA ! 800F0207EEE01F021F903AFE007FF83F027F01E0903807FC7F91B5C73801FEFF010301FC ! EC007F4901F0814901C0150F4949814990C97E494882495A48498248197F5C48193F5C48 ! 191F5C48190FA2485BA21A075AA391CDFCA2B5FCAD7EA280F207C0A27EA36C7F1A0F6C1A ! 80806C191F6E18006C61806C197E6C6D177C6D6C17FC6D6C4C5A6D6D4B5A6D6D4B5A6D01 ! F0ED1FC06D01FC4B5A010001FF03FFC7FC6E01E0EB07FE021F01FEEB3FFC020790B612F0 ! 020116C0DA003F92C8FC030714F8DB001F13804A4D79CB59>IIII72 DI75 DIII ! 82 DI<003FBB12C0A5DA80019038FC001FD9FC001601D87FF09438007F ! E001C0183F49181F90C7170FA2007E1907A3007C1903A500FC1AF0481901A5C894C7FCB3 ! B3A749B812FCA54C4A7CC955>II89 D97 DI<91380FFF8091B512F8010314FF010F158090263FFE ! 0013C0D97FF8EB1FE0D9FFE0EB3FF04849EB7FF8484913FF4890C7FC5A5B121F5B003FED ! 7FF0EE3FE0007FED1FC093C7FC5BA212FFAC127F7FA2123FA26D153E121F6D157E6C167C ! 6C6D14FC6C16F86C6D13036C01F0EB07F0D97FFCEB1FE06DB4EBFFC0010F90B512000103 ! 5C010014F0020F13802F337CB137>IIIIII<13FCEA03FF487F487FA248 ! 7FA66C5BA26C5B6C90C7FCEA00FC90C8FCACEB7FC0B5FCA512037EB3B3B61280A5194D7B ! CC22>I107 DI<90287FC001FFE0EC7FF8B5010F01FC0103B5FC033F6D010F804B6D6C4814E0 ! DBFE079026C03F817F9126C3F0019138FC007F0003D9C7E0DAE1F8806CDA8000D9F1E06D ! 7E02CFC7EBF3C002DE91267FF780131F02FC03FFC77FA24A5DA24A5DA34A5DB3A9B6D8C0 ! 3FB5D8F00FB512FCA55E317BB067>I<903A7FC001FFC0B5010F13F8033F13FE4B7F9126 ! C1FE077F9126C3F0037F00039038C7C0016CD9CF8080150002DE7F02FC81A25CA25CA35C ! B3A9B6D8C07FEBFFE0A53B317BB044>I<913807FF80027F13F80103B6FC010F15C09026 ! 1FFE017F903A7FF0003FF8D9FFC0EB0FFC48496D7E4890C76C7E4817804980000F17C048 ! 486E13E0A2003F17F049157FA2007F17F8A400FF17FCAB007F17F8A36C6CEDFFF0A3001F ! 17E06D5C000F17C06C6C4A13806C17006C6D495A6C01E0EB1FFC6D6C495A903A3FFE01FF ! F0010FB612C0010392C7FCD9007F13F80207138036337DB13D>I<90397FC00FFFB5017F ! 13F002C1B512FC02C714FF9126CFF80F7F9126FFC00313E0000391C77F6C01FC6E7E4A6E ! 7E5C4A6E7E848319808319C0A47113E0AC4D13C0A319805FA219004D5A804D5A6E4A5A6E ! 4A5A02FF495BDB80075B9126EFF01F5B02E7B548C7FC02E314F802E014E0DB0FFEC8FC92 ! CAFCAFB612C0A53B467CB044>I<9039FF803FE0B5EBFFF8028113FE02837FDA87E11380 ! EC8F830003D99F0713C06C139E14BCA214F8A24A6C13806F13004A6C5A93C7FCA45CB3A7 ! B612E0A52A317CB032>114 D<90390FFF8070017FEBF1F048B6FC1207380FFC01391FE0 ! 003F4848130F491307127F90C712035A1501A27FA213E06D90C7FC13FE387FFFF0ECFFC0 ! 15F06C14FC6C14FF6C15806C15C06C15E0C615F0013F14F8010714FCEB007F1401913800 ! 3FFE150F0078140700F81403A26C1401A37E16FC6C14036D14F87F6DEB07F001F8EB1FE0 ! 01FFEBFFC091B51280D8FC7F1400D8F81F13FCD8E00313C027337CB130>I<14F8A61301 ! A41303A21307A2130FA2131F133F137F13FF1203000F90B512F0B7FCA426007FF8C7FCB3 ! A6167CAA013F14F880A290391FFE01F0010F1303903907FF87E06DEBFFC06D14806D6C13 ! 00EC0FFC26467EC430>IIIII<007FB500C090387F ! FFE0A5C601F0C73803F8006E5D017F5E6E1407013F5E6E140F011F5E6E141FA26D6D91C7 ! FC5F6D153E6F137E6D157C6F13FC6D5DEDF0016D5DEDF803027F5C15FC1607DA3FFE5B16 ! 0F021F5CEDFF1F6E91C8FC16BF6E13BE16FE6E5BA36E5BA26E5BA26F5AA26F5AA26F5AA3 ! 93C9FC5D153E157E157CD81F8013FC486C5B387FE001D8FFF05B14035D14074A5A49485A ! 007F49CAFCEBC07E383F81FC6CB45A6C5B6C13C0C648CBFC3B467EAF41>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fd cmsl10 10.95 41 ! /Fd 41 122 df<007FB5FCA2B512FEA418067C961E>45 D<17E016011603831607A2160F ! A2161F83163FA2167F167716F7EEE7FCED01E316C3150316831507EE03FEED0F01150E15 ! 1E151C153C03387FED7800157015F05D4A4880177F4A5AA24AC7FCA2020E81173F5C021F ! B6FC5CA20270C7EA3FE0171F5CA2495AA2494881170F49C8FCA2130EA24982013C1507A2 ! 137CD801FE4B7E2607FF80EC3FFEB500F00107B512FC19F85E3E417DC044>65 ! D<013FB7FC18E018FC903B007FE00007FE6E48903801FF809438007FC05DF03FE0F01FF0 ! A3027F16F892C8FCA54A16F04A153F19E0187F19C0F0FF8001014B13004A4A5A4D5AEF1F ! F04D5ADC03FFC7FC49B612F8EFFF8002F8C7EA3FE0EF0FF0EF07FC717E010715014A8171 ! 1380A319C0130F5CA5011F4B13805C19005F601707013F4B5A4A4A5A4D5A4D5A017F9138 ! 01FF8001FF020F90C7FCB812FC17F094C8FC3D3E7DBD40>II<013FB7FC18E018F8903B007FF0000FFE6E48EB01FF9438007F ! C04B6E7E180F85727E727E147F4B6E7EA2727EA302FF178092C9FCA54918C05CA41A8013 ! 034A5DA41A0013074A5DA261A24E5A130F4A5E180F61181F61011F4C5A5C4E5A4EC7FC4D ! 5A4D5A013F4B5A4A4A5AEF3FE0EF7F80017F4A48C8FC01FFEC1FFCB812F0178004FCC9FC ! 423E7DBD45>I<013FB812F8A39026007FF0C7127F6E48140F18034B14011800A3197814 ! 7F4B1570A502FF147092C7FCA3190017F0495D4A1301A21607161F91B6FC495DA29138FC ! 003F160F1607160301075D5CA219E0180119C0010FEC07004A90C712031980A218071900 ! 011F5E5C181EA2183E183C013F167C4A15FC4D5A1707017F151F01FF4AB45AB9FCA2603D ! 3E7DBD3E>I<013FB812E0A3903A007FF000016E48EB003F180F4B14071803A31801147F ! 4B15C0A514FF92C71270A395C7FC17F0495D5C160116031607161F49B65AA39138FC003F ! 160F160701075D4A1303A5010F4AC8FC5C93C9FCA4131F5CA5133F5CA3137FEBFFF0B612 ! F8A33B3E7DBD3B>I<013FB5D8F807B6FC04F015FEA29026007FF0C7380FFE006E486E5A ! A24B5DA4180F147F4B5DA4181F14FF92C85BA4183F5B4A5EA491B8FC5B6102FCC8127FA3 ! 18FF13074A93C7FCA45F130F4A5DA41703131F4A5DA41707133F4A5DA3017F150F496C4A ! 7EB6D8E01FB512FC6115C0483E7DBD44>72 D<011FB512FC5BA29039003FF8006E5AA25D ! A5143F5DA5147F5DA514FF92C7FCA55B5CA513035CA513075CA5130F5CA5131F5CA3133F ! 497E007FB512F0A2B6FC263E7EBD21>I<013FB500F8010FB5FC4C5BA29026007FF0C700 ! 0313E06E486E130019FC4B15F04E5A4E5A4E5A061EC7FC027F5D4B5C4D5A4D5AEF07804D ! C8FC02FF141E92C7127C5FEE01E04C5A4C5A49021FC9FC4A5B5E4C7E5D03077F01035B91 ! 39FC1F3FE0153C4B6C7E15F09139FFE00FF84913C092380007FC5C4A6D7E5C707E130F4A ! 6D7F84177F717EA2011F6F7E5C717EA2717EA2013F6F7E5C84A2017F83496C4A13E0B600 ! E0017F13FFA24B90B6FC483E7DBD47>75 D<013FB512FEA25E9026007FF8C8FCEC3FE0A2 ! 5DA5147F5DA514FF92C9FCA55B5CA513035CA513075CA21838A21870130F5CA218E0A301 ! 1F15014A15C01703A21707EF0F80013F151F4A143F177FEFFF00017F140301FF143FB9FC ! 5FA2353E7DBD39>I<90263FFFE0023FB5FC6F16FEA29026003FF8020313C0021F030013 ! 004A6C157C023B163C6F15381439810238167802787FDA707F157082153F82031F15F002 ! F07FDAE00F5D8215078203031401010180DAC0015D82811780047F1303010315C04A013F ! 5C17E0161F17F0040F1307010715F891C7000791C7FC17FC160317FE04015B4915FF010E ! 6E130E188E177F18CEEF3FDE011E16FE011C6F5AA2170FA21707133C01386F5A133C017C ! 150113FE2607FF801400B512FC18705C483E7DBD44>78 D<923803FF80031F13F09238FE ! 01FE913903F0003FDA0FC0EB1FC0DA3F80EB07E0027EC76C7E49486E7E49488149486E7E ! 4948157F495A013F17804948ED3FC049C9FCA24848EE1FE012035B000718F05B120FA248 ! 5A19F8123F5BA2127FA219F04848163FA5F07FE0A35BF0FFC0A219805F19007F4D5A127F ! 4D5A60003F160F6D5E001F4C5A4D5A6C6C4B5A95C7FC6C6C15FE00034B5A6C6C4A5A6C6C ! 4A5A017FEC1FC06D6C495AD90FE001FEC8FC903903F807F80100B512C0DA0FFCC9FC3D42 ! 76BF47>I<013FB612FEEFFFE018F8903B007FF0000FFC6E48EB01FF7113804BEC7FC018 ! 3F19E0F01FF0A2147F5D19F8A402FFED3FF092C8FCA219E0A2F07FC05B4AEDFF8019004D ! 5A4D5AEF0FF80103ED3FE04A903801FF8091B648C7FC17F002FCCAFCA213075CA5130F5C ! A5131F5CA5133F5CA3137F497EB612E0A25D3D3E7DBD3E>I<013FB612F017FF18E0903B ! 007FF0003FF86E48EB07FCEF01FE4B6D7EF07F8019C0183F19E0147F4B15F0A502FFED7F ! E092C8FCA219C0F0FF80A2494B13004A5D4D5AEF0FF04D5AEF7F800103DA07FEC7FC91B6 ! 12F017809139FC0007E0EE03F8EE00FC0107814A147F717EA284A2130F5CA484011F157F ! 5CA41902013F17075CA2F0F00F017F170E496C143FB600E0011F131C94380FF83C4B0107 ! 1378CA3801FFE09438003F8040407DBD43>82 D<9238FF80070207EBE00F021FEBF81E91 ! 387F00FE02FCEB1F3ED903F0EB0FFE49481307494813034AEB01FC49C7FC491400133E13 ! 7E177C491578A57F1770A26D1500808080EB7FFEECFFE06D13FEEDFFC06D14F06D14FC01 ! 0380010080143F02031480DA003F13C015031500EE7FE0163F161FA2160F121CA3160716 ! 0F003C16C0A31780003E151F1700007E5D007F153E6D5C16FC01E0495AD87DF0495AD8FC ! FCEB0FC03AF87F803F8027F01FFFFEC7FCD8E00713F839C0007FC030427BBF33>I<0007 ! B912F0A33C0FFE000FF8003F01F0160F01C04A13034848160190C7FC121EF000E048141F ! 5E1238A212781270153F5E5AA3C81600157F5EA515FF93C9FCA55C5DA514035DA514075D ! A5140F5DA3141FEC7FFC0003B7FCA33C3D76BC42>II87 D97 DII101 DI<177C913907F803FE91393FFE0F8F9139FC0F ! 9C3F903901F007F8903907E003E0D90FC013F0011F903801F80C02801400133FD97F007F ! A315035B495CA3017E495A5E150F6D5C6D495A90263F803EC7FCECC0FC903871FFF09038 ! E07F8091C9FC485AA47FA27F90B512F8EDFF806C15E016F86D8048B6FC3A07E0000FFED8 ! 0F801300003FC8127F003E815A00FC815AA25E163EA25E6C15FC007C4A5A6C4A5A6CEC0F ! C0D80FC0013FC7FC3903F801FCC6B512F0010F90C8FC303D7FA82D>I<147FEB3FFFA313 ! 017FA25CA513015CA513035CA4ED07F80107EB1FFF9139F0781FC09138F1E00F9139F380 ! 07E0ECF70002FE14F0495A5CA25CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F ! 91C71380A4167F5B491500A300015D486C491380B5D8F87F13FCA32E3F7DBE33>I<1478 ! EB01FE130314FFA25B14FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA3 ! 14E0A5131F14C0A5133F1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A ! >I<147FEB3FFFA313017FA25CA513015CA513035CA501070103B5FC02F014FEA26F13F0 ! 6F1380EEFE00010F14F84A485AED03C04B5A031FC7FC153E011F13784A5AECC3E0ECC7F0 ! ECCFF814FF497F14F9ECE1FE14C04A7E4A7E4980017E133F82151F82150F01FE80491307 ! 82A2000181486C49B4FCB5D8F03F13F04B13E0A2303F7EBE30>107 ! D<143FEB1FFF5BA213017FA214FEA5130114FCA5130314F8A5130714F0A5130F14E0A513 ! 1F14C0A5133F1480A5137F1400A55B5BA4EA03FF007F13F8A2B5FC183F7DBE1A>I<9027 ! 07F007F8EB03FCD803FFD91FFF90380FFF80913CE0781FC03C0FE09126E1E00FEBF0073E ! 001FE38007E1C003F090260FE700EBE38002EEDAF70013F802FC14FE02D85C14F84A5CA2 ! 4A5C011F020F14074A4A14F0A5013F021F140F4A4A14E0A5017F023F141F91C74914C0A5 ! 49027F143F4992C71380A300014B147F486C496DEBFFC0B5D8F87FD9FC3F13FEA347287D ! A74C>I<903907F007F8D803FFEB1FFF9139E0781FC09138E1E00F3B001FE38007E09038 ! 0FE70002EE14F014FC14D814F85CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F ! 91C71380A4167F5B491500A300015D486C491380B5D8F87F13FCA32E287DA733>II<91387F01FE903A7FFF0FFFC09139FE3E03F09238F801F8903A03FF ! E000FE6D49137F4B7F92C713804A15C04A141FA218E0A20103150F5C18F0A3171F010716 ! E05CA3173F18C0130F4A147F1880A2EFFF004C5A011F5D16034C5A6E495AEE1FC06E495A ! D93FDC017EC7FC91388F01F8913883FFE0028090C8FC92C9FC137FA291CAFCA45BA25BA3 ! 1201487EB512F8A3343A81A733>I<91390FE003C0DAFFFC1380903903F81E0790390FE0 ! 070F90391F80038FD97F0013DF01FE13014848903800FF00485A1207485A8248485C123F ! 495CA2485AA2150112FF90C75BA41503A25EA37E15077F003F4A5A151F6C6C133F6C6C13 ! 7F000714FF3903F003CF3A00FC0F8FE090383FFE0FEB0FF090C7FC151F5EA5153F5EA415 ! 7F4B7E023F13FEA32A3A7AA730>I<903907F01F80D803FFEB7FE09138E1E1F09138E387 ! F839001FE707EB0FE614EE02FC13F002D813E09138F801804AC7FCA25C131FA25CA4133F ! 5CA5137F91C8FCA55B5BA31201487EB512FEA325287EA724>I<9138FF81C0010713E390 ! 381F807F90397C003F8049131F4848130F5B00031407A248481400A27FA27F6D90C7FCEB ! FF8014FC6C13FF6C14C015F06C6C7F011F7F13079038007FFE1403140100381300157EA2 ! 123C153E157E007C147CA2007E147815F8007F495A4A5A486C485A26F9E01FC7FC38E0FF ! FC38C01FE0222A7DA824>II<01 ! FE147F00FFEC7FFF4914FEA20007140300031401A34914FCA4150312074914F8A4150712 ! 0F4914F0A4150F121F4914E0A2151FA3153F4914C0157F15FFEC01DF3A0FC003BFE09138 ! 073FFF3803F01E3801FFF826003FE01380282977A733>I119 D<48B539C07FFFC0A33C000FFE003FF800 ! 6D48EB1FE0010315800101023EC7FC6E133C01005C027F5B6F5A91383F81C0EDC380DA1F ! C7C8FC15EFEC0FFE6E5A5D140381A24A7E140FEC1E7F023C7FEC383F02707FECE01F0101 ! 80903803C00F49486C7ED90F007F491303017E80D801FE80D807FF497EB5D8803F13F8A3 ! 32277FA630>I<90B539E007FFF05E18E0902707FE000313006D48EB01FC705A5F01014A ! 5A5F16036E5C0100140794C7FC160E805E805E1678ED8070023F13F05EED81C015C19138 ! 1FC38015C793C8FC15EF15EEEC0FFCA25DA26E5AA25DA26E5A5DA24AC9FC5C140E141E14 ! 1C5C121C003F5B5A485B495A130300FE5B4848CAFCEA701EEA783CEA3FF0EA0FC0343A80 ! A630>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fe cmr8 8 26 ! /Fe 26 118 df<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A5A ! 5A126009157AAD14>39 D45 D<130C133C137CEA03FC12FFEAFC ! 7C1200B3B113FE387FFFFEA2172C7AAB23>49 D<4A7E4A7EA34A7EA24A7EA3EC1BF81419 ! A2EC30FCA2EC70FEEC607EA24A7EA349486C7EA2010380EC000FA201066D7EA3496D7EA2 ! 011FB57EA29038180001496D7EA349147EA201E0147F4980A20001ED1F801203000716C0 ! D80FF0EC3FE0D8FFFC0103B5FCA2302F7EAE35>65 DIIIII76 D80 D82 ! D<90383F80303901FFF0703807C07C390F000EF0001E13074813034813011400127000F0 ! 1470A315307EA26C1400127E127FEA3FE013FE381FFFE06C13FC6C13FF00011480D8003F ! 13E013039038003FF0EC07F81401140015FC157C12C0153CA37EA215787E6C14706C14F0 ! 6CEB01E039F78003C039E3F00F0038E07FFE38C00FF01E2F7CAD27>I<007FB712F8A290 ! 39000FC003007C150000701638A200601618A200E0161CA248160CA5C71500B3A94A7E01 ! 1FB512E0A22E2D7EAC33>I91 ! D<13FF000713C0380F01F0381C00F8003F137C80A2143F001E7FC7FCA4EB07FF137F3801 ! FE1FEA07F0EA1FC0EA3F80EA7F00127E00FE14065AA3143F7E007E137F007FEBEF8C391F ! 83C7FC390FFF03F83901FC01E01F207D9E23>97 D99 ! D101 D<130FEB1F80EB3FC0A4EB1F80EB0F0090 ! C7FCA8EB07C013FFA2130F1307B3AD1230127838FC0F80A21400485AEA783EEA3FF8EA07 ! E0123C83AD16>106 DI<3807C0FE39FFC3FF809038C703E0390F ! DE01F0EA07F8496C7EA25BA25BB2486C487E3AFFFE1FFFC0A2221E7E9D27>110 ! D<3807C0FE39FFC7FF809038CF03E0390FDC01F03907F800FC49137E49133E49133FED1F ! 80A3ED0FC0A8151F1680A2ED3F00A26D137E6D137C5D9038FC01F09038CE07E09038C7FF ! 80D9C1FCC7FC01C0C8FCA9487EEAFFFEA2222B7E9D27>112 D<380781F838FF87FEEB8E ! 3FEA0F9CEA07B813B0EBF01EEBE000A45BB0487EB5FCA2181E7E9D1C>114 ! D<3801FE183807FFB8381E01F8EA3C00481378481338A21418A27E7EB41300EA7FF06CB4 ! FC6C13C06C13F0000113F838001FFC130138C0007E143EA26C131EA27EA26C133CA26C13 ! 7838FF01F038E3FFC000C0130017207E9E1C>I<1360A413E0A312011203A21207121FB5 ! 12F0A23803E000AF1418A714383801F03014703800F860EB3FE0EB0F80152A7FA81B>I< ! D807C013F800FF131FA2000F130100071300B21401A314033803E007EC0EFC3A01F81CFF ! C038007FF890391FE0F800221F7E9D27>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ff cmsy9 9 2 ! /Ff 2 106 df104 D<126012F07EA21278127CA27EA2 ! 121E121FA26C7EA212077FA26C7EA212017FA26C7EA21378137CA27FA2131E131FA2EB0F ! 80A2130714C0A41480130FA2EB1F00A2131E133EA25BA2137813F8A2485AA25B1203A248 ! 5AA25B120FA248C7FCA2121E123EA25AA2127812F8A25A1260124A7CB71E>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fg cmsltt10 10.95 33 ! /Fg 33 122 df<137C13FE487E1480A214C0A3EA007F130F131F1480A3133F14005B137E ! 13FE485A1203485AEA1FF0485AB45A5B90C7FC127C1238121D6BB730>39 ! D<007FB612E0B712F016F8A316F06C15E02507769E30>45 D48 ! DI<913903FC01E091391FFF81F0027F13E391B512F7010314FF ! 5B49130790261FF80113E049487ED97FC0137F495A91C7123F485A484815C0A2485A5B12 ! 0F5B001FED1F80491500003F92C7FC5BA3127F90CAFCA45A5AA716F86C4A7EA26C14035E ! A26D1307003F5D6D130F001F4A5A6D133F6C6C495A6D495A2607FF0790C7FC6CEBFFFE6C ! 5C6C5C6D13E0011F1380D907FCC8FC2C3A78B830>67 D<013FB512E04914FC90B67EEEFF ! 806D15C07F902607F00013E0EE3FF0161FEE0FF81607010F15FC4A1303A2160117FEA201 ! 1F14005CA5133F5CA5017FEC01FC91C7FCA3EE03F8A25B49EC07F0A2160F17E0161F0001 ! 16C049143FEE7F80EEFF005D4B5A00034A5A49EB1FF8ED7FF0007FB65AB75A5E4BC7FC15 ! F86C14C02F387EB730>I<013FB7FC49168090B812C0A27F7FD903F8C7EA3F80A4177F13 ! 074A150083171E94C7FCA2130F5CED01E04B7E821507131F91B55AA55B9138800FE0A46F ! 5A017F90C9FC91CAFCA417F0494A7E491403A416071201495DA2003FB7FC5AB8FCA26C5E ! 6C5E32387EB730>I<903B7FFF801FFFE090B56C4813F003E014F8A203C014F06D496C13 ! E0903B07F00001FC00A41603130F4A5CA41607131F4A5CA4160F133F91B65AA55B91C7EA ! 1FC0A4163F5B495DA4167F12014992C7FCA45E1203495CA23B7FFF801FFFE0B56C487FA4 ! 6C496C5B35387EB730>72 D<0203B512F04A14F8A46E14F091390001FC00A41503A25EA4 ! 1507A25EA4150FA25EA4151FA25EA4153FA25EA4157FA293C7FC123E127F5D6D5B38FF00 ! 014A5A6C13079038E03FF86CB55A5D6C5C000791C8FC6C13FC38007FE02D3979B730>74 ! D<90387FFFF890B57EA46D5BD903F8C8FCA513075CA5130F5CA5131F5CA5133F5CA5137F ! 91C9FCA4EE03C049EC07E049140FA4161F12014915C0A2007FB7FCB8FCA317806C16002B ! 387DB730>76 DI<1278127C12FEA2 ! 7EA27EA27FA2123F7FA2121F7FA2120FA27FA212077FA212037FA21201A27FA212007FA2 ! 7F80A2133FA280A2131F80A2130F80A2130780A21303A280A2130180A2130080A280A215 ! 80A2143F15C0A2141FA3140FEC07801A4771BE30>92 D<003FB612F05AB712F8A36C15F0 ! 7E25077C7D30>95 D<903803FF80011F13F0017F13FC90B57E4880488149C67F49133F48 ! 486D7E0003140F5BC65A90C77FA25EA2EC3FFF0107B5FC133F90B6FC1203485D48EBE01F ! 381FFE00EA3FF0D87FC0133F5B48C75B5AA2157FA215FF6C4990C7FCEB8007267FE07F13 ! FE90B7FC6C16806C14BF6C020F130000039038F803FEC601C0C8FC292A79A830>97 ! DI100 DII<913907F801FE913A3FFF0FFF804A13BF49B712C05B ! 5B90260FFC0FEB1F8090271FF007F8130049486C6CC7FCECC001EB7F801400A25B5BA315 ! 034B5A7F6D495A9138803FE090383FE0FF49B55A90B65A93C8FC4814FC01F913F09038F8 ! 7F80000390CAFC5BA27F120190B512FCEDFF8016E04815F8488148813A1FF00007FFD83F ! C01300498048C86C7E007E151F12FE5AA2163F94C7FC5E5E6C4A5AD87F80EB07FC6D131F ! 3A3FFC01FFF86CB612E06C5D6C92C8FC000114FC6C6C13F0010F90C9FC323E7EA730>I< ! 15E0EC03F8140781A35D6E5A6E5A91C8FCA990B512C048805AA27E7EEB001F5DA5143F5D ! A5147F92C7FCA55C5CA513015CA2007FB61280B712C016E0A216C06C1580233979B830> ! 105 D<163816FE150116FFA316FEED00FC16781600A991B512F04914F8A47FEC000716F0 ! A4150FA216E0A4151FA216C0A4153FA21680A4157FA21600A45DA25DA414015DA414035D ! 1407003C5C007E130FB4495A4A5A14FF90B55A92C7FC6C5B6C13F86C13E000071380284E ! 7EB830>II<90383FFFF8497F81A37F90380001FCA514035DA514075DA5140F5DA5141F5DA514 ! 3F5DA5147F92C7FCA55C5CA2003FB612F04815F8B712FCA26C15F86C15F026387BB730> ! I110 ! DI<91383FE00F903A01FFF81F ! 800107EBFE3F011F13FF4914FF5B9038FFF03F48EB800F48496C1300D807FC7F48487F5B ! 485A48487F5E5B127F90C8FC15015A485DA41503A25E6C1407150F6C141F7F6C6C133FED ! FFF0381FF001EBFC0F6CB6FC7E6C14EF6CEC8FE039007FFE0FEB0FF090C7FC151F5EA515 ! 3F5EA591381FFFFE4A7F5CA2806E5B293C7AA730>113 DI<91387FF838903903FFFE7C011FEBFFFC5B5B90B6FC48EBC01F3903FC0007491303 ! 484814F85BA3ED01F06D90C7FCEA03FEEBFFF06CEBFF806C14F06D13FC011F13FF010714 ! 80D9007F13C0020113E0EC001F001FEC0FF06D1307003F1403A27FA21507486CEB0FE015 ! 1F6DEB3FC09039FC03FF8090B6FC1600B612FC00FC5C013F13E0267807FEC7FC262A79A8 ! 30>I117 ! D<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C13803B03F00007F0006D5C150F ! 00015D151F5E153F6D91C7FC5D0000147E15FE5D140101FE5BA290387E03F0A24A5AA24A ! 5A137F4A5A133F4AC8FCA2147E14FE5C131F5CA25C6D5A2B2778A630>I<3B3FFFC01FFF ! E0486D4813F0B515F8A26C16F06C496C13E0D807E0C7EA7E00A35EA34B5AA34B5A143E14 ! 7F4A485A13E1A249495A158FEBC7EF9138CF9F8014DF13CF029F90C7FC15BFEBDF8FEC0F ! BEA201FE13FE5D13FCA25D496C5A3903E003E02D2779A630>I<903AFFFE07FFF0486D48 ! 13F84816FCA26C16F86C496C13F0903A07F001FC006D6C485A6D6C485A4B5A6D6C485A4B ! 5ADA7F7FC7FC157EEC3FFE6E5A5D6E5A5DA24A7E143F4A7EA2ECFCFCEB01F8903803F07E ! 903807E07F49487E011F8090383F801FD97F007F01FE6D7E263FFFC0B5FC4801E11480B5 ! 15C0A26C16806C01C014002E277DA630>I<90B53801FFFE4802837F481780A26C17006C ! 02015B903A07E0001FC05F163F6E91C7FCA20103147EA25E804B5A13014B5AA26E485AA2 ! 0100495AA24B5AA2027E90C8FC5D153E157E157C143E5D143F5DA26E5AA25DA25DA2143F ! 92C9FC5C147E14FE5C1301003C5B387E03F0EAFF07495A48485AEB7F80B5FC91CAFC13FC ! 6C5AEA3FE0EA1F80313C7EA630>I E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fh cmcsc10 10.95 18 ! /Fh 18 121 df97 D99 DIIIIII<90383FFFFCA39038007FC0EC ! 3F80B3AD1218127EB4FCA3EC7F005A007C137E007813FE383C01F8381F03F03807FFC0C6 ! 48C7FC1E307CAE27>I108 DIIII<90383FC0 ! 0C9038FFF81C0003EBFE3C390FE03FFC381F8007EB0003003E1301481300157C5A153CA3 ! 6C141CA27E6C14006C7E13E013FE383FFFE06C13FE6CEBFF806C14E0000114F06C6C13F8 ! 010F13FC1300EC07FE14011400157F153F12E0151FA37EA2151E6C143E6C143C6C147C6C ! 14F89038C001F039FBF807E000F1B512C0D8E07F130038C007FC20317BAF2A>115 ! D<007FB712F8A39039801FF0073A7E000FE00000781678A20070163800F0163CA348161C ! A5C71500B3A8EC3FF8011FB512F0A32E2E7CAD36>II<3B7FFFF001 ! FFFEA30003D9C00013E0C649EB7F80017F027EC7FC167C6D6C13786D6C5B6D6C5B15016D ! 6C485AD903FC5B15076D6C48C8FC903800FF1EEC7F9C15BCEC3FF86E5AA2140F6E7E1403 ! 4A7E4A7EEC1EFF141C91383C7F804A6C7E14709138F01FE049486C7E49486C7E14800107 ! 6D7E49486C7E130E011E6D7E496E7E017C6E7E13FC000382D80FFEEC7FF8B549B512C0A3 ! 322F7DAE38>120 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fi cmti10 10.95 8 ! /Fi 8 117 df<933807FF80043F13E09338FE00F8DB01F0133EDB07E0130E4B48131F4C ! 137F031F14FF4BC7FCA218FE157E1878180015FE5DA31401A25DA414030103B712F0A218 ! E0903A0003F000070207140F4B14C0A3171F020F15805DA2173F1800141F5D5F177EA214 ! 3F92C712FE5FA34A1301027EECF81CA3160302FEECF03C4A1538A21878187013014A0101 ! 13F018E0933800F1C0EF7F804948EC1F0094C7FCA35C1307A2001E5B127F130F00FF5BA2 ! 49CAFC12FEEAF81EEA703CEA7878EA1FF0EA07C0385383BF33>12 ! D<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>46 D103 D<1478EB01FCA21303A314F8EB00E01400AD137C48 ! B4FC38038F80EA0707000E13C0121E121CEA3C0F1238A2EA781F00701380A2EAF03F1400 ! 12005B137E13FE5BA212015BA212035B1438120713E0000F1378EBC070A214F0EB80E0A2 ! EB81C01383148038078700EA03FEEA00F8163E79BC1C>105 D110 D114 DII E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fj cmbxti10 14.4 1 ! /Fj 1 47 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C5A ! EA0FE0121271912B>46 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fk cmbx12 17.28 25 ! /Fk 25 122 df<16F04B7E1507151F153FEC01FF1407147F010FB5FCB7FCA41487EBF007 ! C7FCB3B3B3B3007FB91280A6395E74DD51>49 D65 D<4DB5ED03C0057F02F014070407B600FE140F047FDBFFC0 ! 131F4BB800F0133F030F05FC137F033F9127F8007FFE13FF92B6C73807FF814A02F00201 ! 13C3020702C09138007FE74A91C9001FB5FC023F01FC16074A01F08291B5488249028082 ! 4991CB7E49498449498449498449865D49498490B5FC484A84A2484A84A24891CD127FA2 ! 5A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07EA380A27EA2F50FC0A26C7FA37E6E ! 1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D7F6F4E5A7F6D6D4E5A6D6D4E5A6D ! 6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90C7FC020F01FFEE07FE6E02C0ED1F ! F8020102F8ED7FF06E02FF913803FFE0033F02F8013F1380030F91B648C8FC030117F86F ! 6C16E004071680DC007F02F8C9FC050191CAFC626677E375>67 D69 ! D76 ! DI<001FBEFCA64849C79126E000 ! 0F148002E0180091C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C918 ! 1FA4007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>84 ! D<913803FFFE027FEBFFF00103B612FE010F6F7E4916E090273FFE001F7FD97FE001077F ! D9FFF801017F486D6D7F717E486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090 ! C9FCA74BB6FC157F0207B7FC147F49B61207010F14C0013FEBFE004913F048B512C04891 ! C7FC485B4813F85A5C485B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903 ! F1EBFF806C01FED90FE114FF6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC13 ! 0F010302F001011400D9001F90CBFC49437CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3 ! A8EFFFF8040FEBFF80047F14F00381B612FC038715FF038F010014C0DBBFF0011F7FDBFF ! C001077F93C76C7F4B02007F03F8824B6F7E4B6F13804B17C0851BE0A27313F0A21BF8A3 ! 7313FCA41BFEAE1BFCA44F13F8A31BF0A24F13E0A24F13C06F17804F1300816F4B5A6F4A ! 5B4AB402075B4A6C6C495B9126F83FE0013F13C09127F00FFC03B55A4A6CB648C7FCDAC0 ! 0115F84A6C15E091C7001F91C8FC90C8000313E04F657BE35A>I100 ! D<92380FFFC04AB512FC020FECFF80023F15E091B712F80103D9FE037F499039F0007FFF ! 011F01C0011F7F49496D7F4990C76C7F49486E7F48498048844A804884485B727E5A5C48 ! 717EA35A5C721380A2B5FCA391B9FCA41A0002C0CBFCA67EA380A27EA27E6E160FF11F80 ! 6C183F6C7FF17F006C7F6C6D16FE6C17016D6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE001 ! 0301FC49B45A6D9026FFC01F90C7FC6D6C90B55A021F15F8020715E0020092C8FC030713 ! F041437CC14A>III<903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94 ! B512F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FDB83F86D7FDB87F07FDB ! 8FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280A65164 ! 7BE35A>II< ! 903807FF80B6FCA6C6FC7F7FB3B3B3B3ADB712E0A623647BE32C>108 ! D<902607FF80D91FFFEEFFF8B691B500F00207EBFF80040702FC023F14E0041F02FF91B6 ! 12F84C6F488193267FE07F6D4801037F922781FE001F9027E00FF0007FC6DA83F86D9026 ! F01FC06D7F6DD987F06D4A487F6DD98FC0DBF87EC7804C6D027C80039FC76E488203BEEE ! FDF003BC6E4A8003FC04FF834B5FA24B5FA24B94C8FCA44B5EB3B2B7D8F007B7D8803FB6 ! 12FCA67E417BC087>I<902607FF80EB1FFFB691B512F0040714FC041F14FF4C8193267F ! E07F7F922781FE001F7FC6DA83F86D7F6DD987F07F6DD98FC0814C7F039FC78015BE03BC ! 8003FC825DA25DA25DA45DB3B2B7D8F007B71280A651417BC05A>I<923807FFE092B6FC ! 020715E0021F15F8027F15FE494848C66C6C7E010701F0010F13E04901C001037F49496D ! 7F4990C87F49486F7E49486F7E48496F13804819C04A814819E048496F13F0A24819F8A3 ! 48496F13FCA34819FEA4B518FFAD6C19FEA46C6D4B13FCA36C19F8A26C6D4B13F0A26C19 ! E06C6D4B13C0A26C6D4B13806C6D4B13006D6C4B5A6D6D495B6D6D495B010701F0010F13 ! E06D01FE017F5B010090B7C7FC023F15FC020715E0020092C8FC030713E048437CC151> ! I<902607FF80EBFFF8B6010FEBFF80047F14F00381B612FC038715FF038F010114C09227 ! BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D496E7F03F86E7F4B6E7F4B17804B6F13C0A2 ! 7313E0A27313F0A21BF885A21BFCA3851BFEAE4F13FCA41BF861A21BF0611BE0611BC06F ! 92B512801B006F5C6F4A5B6F4A5B03FF4A5B70495B04E0017F13C09226CFFC03B55A03C7 ! B648C7FC03C115F803C015E0041F91C8FC040313E093CBFCB3A3B712F0A64F5D7BC05A> ! I<913A3FFF8007800107B5EAF81F011FECFE7F017F91B5FC48B8FC48EBE0014890C7121F ! D80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D92C7FC13FF14 ! E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F1680010F16C0 ! 1303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC81177F6C163FA217 ! 1F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002C0EB0FFE02FC ! EB7FFC01DFB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437BC140>115 ! DI<902607FF ! C0ED3FFEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D147E4E7F ! 6D6D4948806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8DA003F ! 018002F0C7FC51427BC05A>I<007FB600C0017FB512F8A6D8001F01F8C70007EBF0006D ! 040190C7FC6D6D5D6D6D4A5A6D6D4A5A70495A6D4C5A6E7F6E6D495A6E6D495A7049C8FC ! 6E4A5A6E6D485A6E6D485A6E13FFEF8FF06EEC9FE06FEBFFC06F5C6F91C9FC5F6F5B816F ! 7F6F7F8481707F8493B57E4B805D4B80DB0FF37FDB1FE17F04C080153F4B486C7F4B486C ! 7F4A486D7F4A486D7F4A5A4B6D7F020F6E7F4A486D7F4A486D804A5A4AC86C7F49486F7F ! 4A6F7F0107707FEB3FFFB600F049B7FCA650407EBF55>120 DI ! E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fl cmsy10 10.95 1 ! /Fl 1 14 df13 D E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fm cmbx12 14.4 45 ! /Fm 45 122 df44 D46 D<157815FC14031407141F14FF130F0007B5FCB6FCA2147F13F0EAF800C7 ! FCB3B3B3A6007FB712FEA52F4E76CD43>49 DI<9138 ! 0FFFC091B512FC0107ECFF80011F15E090263FF8077F9026FF800113FC4848C76C7ED803 ! F86E7E491680D807FC8048B416C080486D15E0A4805CA36C17C06C5B6C90C75AD801FC16 ! 80C9FC4C13005FA24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512F816E016FCEEFF80DA ! 000713E0030113F89238007FFE707E7013807013C018E07013F0A218F8A27013FCA218FE ! A2EA03E0EA0FF8487E487E487EB57EA318FCA25E18F891C7FC6C17F0495C6C4816E001F0 ! 4A13C06C484A1380D80FF84A13006CB44A5A6CD9F0075BC690B612F06D5D011F15800103 ! 02FCC7FCD9001F1380374F7ACD43>I<177C17FEA2160116031607160FA2161F163F167F ! A216FF5D5DA25D5DED1FBFED3F3F153E157C15FCEC01F815F0EC03E01407EC0FC01580EC ! 1F005C147E147C5C1301495A495A5C495A131F49C7FC133E5B13FC485A5B485A1207485A ! 485A90C8FC123E127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A4F7CCE43>II<171F4D7E4D7EA24D7EA34C7FA24C7FA34C7FA34C7F ! A24C7FA34C8083047F80167E8304FE804C7E03018116F8830303814C7E03078116E08303 ! 0F814C7E031F81168083033F8293C77E4B82157E8403FE824B800201835D840203834B80 ! 0207835D844AB87EA24A83A3DA3F80C88092C97E4A84A2027E8202FE844A82010185A24A ! 820103854A82010785A24A82010F855C011F717FEBFFFCB600F8020FB712E0A55B547BD3 ! 66>65 DI<932601FFFCEC01 ! C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003EBC07F020F ! 01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F882494982494982 ! 4949824949824990CA7E494883A2484983485B1B7F485B481A3FA24849181FA3485B1B0F ! A25AA298C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D1980A26C1A1F6C7F1C ! 006C6D606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A6D01FC4C5A6D6DEE ! 7F806D6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE001FFF0020091B612 ! C0033F93C8FC030715FCDB007F14E0040101FCC9FC525479D261>III ! I<932601FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203 ! DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901 ! F8824949824949824949824949824990CA7E494883A2484983485B1B7F485B481A3FA248 ! 49181FA3485B1B0FA25AA298C8FC5CA2B5FCAE6C057FB712E0A280A36C94C7003FEBC000 ! A36C7FA36C7FA27E6C7FA26C7F6C7FA26D7E6D7F6D7F6D6D5E6D7F6D01FC93B5FC6D13FF ! 6D6C6D5C6E01F0EC07FB020F01FEEC1FF10203903AFFF001FFE0020091B6EAC07F033FEE ! 001F030703FC1307DB007F02E01301040149CAFC5B5479D26A>I73 D76 DII82 D<91260FFF80130791B500F85B010702FF5B011FED ! C03F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5FC4848C87E48488149150F ! 001F824981123F4981007F82A28412FF84A27FA26D82A27F7F6D93C7FC14C06C13F014FF ! 15F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C836C836D826D82010F821303 ! 010082021F16801400030F15C0ED007F040714E01600173F050F13F08383A200788200F8 ! 82A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D5D01FC4B5A01FF4B5A02C0 ! 4A5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7FC48C66C14FC48010F14F0 ! 48D9007F90C8FC3C5479D24B>I<003FBC1280A59126C0003F9038C0007F49C71607D87F ! F8060113C001E08449197F49193F90C8171FA2007E1A0FA3007C1A07A500FC1BE0481A03 ! A6C994C7FCB3B3AC91B912F0A553517BD05E>II87 D97 DI<913801FFF8021FEBFF8091B612F001 ! 0315FC010F9038C00FFE903A1FFE0001FFD97FFC491380D9FFF05B4817C048495B5C5A48 ! 5BA2486F138091C7FC486F1300705A4892C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17 ! 076C6D15C07E6E140F6CEE1F806C6DEC3F006C6D147ED97FFE5C6D6CEB03F8010F9038E0 ! 1FF0010390B55A01001580023F49C7FC020113E033387CB63C>I<4DB47E0407B5FCA5EE ! 001F1707B3A4913801FFE0021F13FC91B6FC010315C7010F9038E03FE74990380007F7D9 ! 7FFC0101B5FC49487F4849143F484980485B83485B5A91C8FC5AA3485AA412FFAC127FA3 ! 6C7EA37EA26C7F5F6C6D5C7E6C6D5C6C6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A ! 0FFFC07FCF6D90B5128F0101ECFE0FD9003F13F8020301C049C7FC41547CD24B>I<9138 ! 03FFC0023F13FC49B6FC010715C04901817F903A3FFC007FF849486D7E49486D7E484913 ! 0F48496D7E48178048497F18C0488191C7FC4817E0A248815B18F0A212FFA490B8FCA318 ! E049CAFCA6127FA27F7EA218E06CEE01F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F ! 6C6DEC3F806D6CECFF00D91FFEEB03FE903A0FFFC03FF8010390B55A010015C0021F49C7 ! FC020113F034387CB63D>IIII<137F497E000313E0487FA2487FA76C5BA26C5BC613806DC7 ! FC90C8FCADEB3FF0B5FCA512017EB3B3A6B612E0A51B547BD325>I108 D ! II<913801FFE0021F13FE91B612C0010315F0010F9038807FFC903A1FFC000F ! FED97FF86D6C7E49486D7F48496D7F48496D7F4A147F48834890C86C7EA24883A248486F ! 7EA3007F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA26C5F6E147F6C5F6C6D ! 4A5A6C6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF807FFC6D90B55A010015 ! C0023F91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F13FE033FEBFFC092B6 ! 12F002F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F92C76C7F4A824A6E7F ! 4A6E7FA2717FA285187F85A4721380AC1A0060A36118FFA2615F616E4A5BA26E4A5B6E4A ! 5B6F495B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F1480031F01FCC8FC0303 ! 13C092CBFCB1B612F8A5414D7BB54B>I<90397FE003FEB590380FFF80033F13E04B13F0 ! 9238FE1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF150014EE02FEEB3FFC ! 5CEE1FF8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 ! D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307D81FE0130148487F4980 ! 127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C ! 816C816C81C681013F1580010F15C01300020714E0EC003F030713F015010078EC007F00 ! F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FF ! C00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB635>I<143EA6147EA414 ! FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE ! 07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B0203 ! 13802A4D7ECB34>IIII<007FB500 ! F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C6D6D495A6D4B5A6F495A6D6D ! 91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8FE06EEBCFC06EEBFF806E91C9 ! FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD7F03F87F4A486C7E4A486C7E ! 020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A49486D7F01076F7E49486E7E ! 49486E7FEBFFF0B500FE49B612C0A542357EB447>II ! E %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fn cmtt10 10.95 77 ! /Fn 77 127 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF80A3EA7F00 ! A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA248133FB2007E14 ! 00007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8011F131FA2 ! 02C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F ! 90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA2 ! 29387DB730>I<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFE ! FD13C09039F0FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A3 ! 6CEC03F0A2007F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F01 ! 1F7F01037F0100148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FC ! A35AA26CEC03F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C ! 5C6C5CC614F0013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>I39 D<141E147F14FF5BEB03FEEB07FCEB0F ! F0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F5BA2127F90C7 ! FCA412FEAD127FA47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7EEB7F80EB3FC0 ! EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E184771BE30>I<127812FE7E7F6C7E6C ! 7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB03F8A214FC13 ! 01A214FE1300A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14E0EB1FC0133F ! 1480137FEBFF00485A485A485A485AEA3FE0485A485A90C7FC5A1278184778BE30>I<14 ! E0497E497EA60038EC0380007EEC0FC0D8FF83EB3FE001C3137F9038F3F9FF267FFBFB13 ! C06CB61280000FECFE00000314F86C5C6C6C13C0011F90C7FC017F13C048B512F0488000 ! 0F14FE003FECFF80267FFBFB13C026FFF3F913E09038C3F87F0183133FD87E03EB0FC000 ! 38EC0380000091C7FCA66D5A6D5A23277AAE30>I44 D<007FB612F0A2B712F8A36C15F0A225077B9E30>I<120FEA3F ! C0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED03F8A21507 ! A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA24A5A ! A24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249C8FC ! A2485AA25B1203A2485AA2485AA2485AA2485AA2485AA248C9FCA25AA2127CA225477BBE ! 30>I<14FE903807FFC0497F013F13F8497F90B57E48EB83FF4848C6138049137F4848EB ! 3FC04848EB1FE049130F001F15F0491307A24848EB03F8A290C712014815FCA400FEEC00 ! FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A26C6C ! EB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FEC7FC ! 273A7CB830>II<000FB612 ! 804815C05AA316800180C8FCAEEB83FF019F13C090B512F015FC8181D9FE0313809039F0 ! 007FC049133F0180EB1FE06CC7120F000E15F0C81207A216F81503A31218127EA2B4FC15 ! 0716F048140F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261FFC0F13006CB55A6C5C ! 6C5C6C14E06C6C1380D90FFCC7FC25397BB730>53 D<127CB712FC16FEA416FC48C7EA0F ! F816F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14075D140F5D4A5AA24A5AA2 ! 4AC7FCA25C5C13015CA213035CA213075CA4495AA6131F5CA96D5A6DC8FC273A7CB830> ! 55 D<49B4FC011F13F0017F13FC90B57E0003ECFF804815C048010113E03A1FF8003FF0 ! 49131FD83FC0EB07F8A24848EB03FC90C71201A56D1303003F15F86D13076C6CEB0FF06C ! 6CEB1FE0D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F13F0497F90B512FE48 ! 802607FE0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303007F15FC90C7120148 ! 15FE481400A66C14016C15FC6D1303003F15F86D1307D81FF0EB1FF06D133F3A0FFF01FF ! E06C90B512C06C1580C6ECFE006D5B011F13F0010190C7FC273A7CB830>I<120FEA3FC0 ! EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7F ! E0A2EA3FC0EA0F000C276EA630>58 D<16F01503ED07F8151F157FEDFFF014034A13C002 ! 1F138091383FFE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF0485B000F1380 ! 4890C8FCEA7FFC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F38007FFC6D7E9038 ! 0FFF806D7F010113F06D7FEC3FFE91381FFF80020713C06E13F01400ED7FF8151F1507ED ! 03F01500252F7BB230>60 D<007FB7FCA2B81280A36C16006C5DCBFCA7003FB612FE4881 ! B81280A36C1600A229157DA530>I<1278127EB4FC13C07FEA7FF813FEEA1FFF6C13C000 ! 037F6C13F86C6C7EEB1FFF6D7F010313E06D7F9038007FFC6E7E91380FFF806E13C00201 ! 13F080ED3FF8151F153FEDFFF05C020713C04A138091383FFE004A5A903801FFF0495B01 ! 0F13804990C7FCEB7FFC48485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC12 ! 7E1278252F7BB230>III<147F4A7EA2497FA4497F14F7A401077F14E3A3010F7FA314C1 ! A2011F7FA490383F80FEA590387F007FA4498049133F90B6FCA34881A39038FC001F0003 ! 8149130FA4000781491307A2D87FFFEB7FFFB56CB51280A46C496C130029397DB830>I< ! 007FB512F0B612FE6F7E82826C813A03F8001FF815076F7E1501A26F7EA615015EA24B5A ! 1507ED1FF0ED7FE090B65A5E4BC7FC6F7E16E0829039F8000FF8ED03FC6F7E1500167FA3 ! EE3F80A6167F1700A25E4B5A1503ED1FFC007FB6FCB75A5E16C05E6C02FCC7FC29387EB7 ! 30>I<91387F803C903903FFF03E49EBFC7E011F13FE49EBFFFE5B9038FFE07F48EB801F ! 3903FE000F484813075B48481303A2484813015B123F491300A2127F90C8FC167C16005A ! 5AAC7E7EA2167C6D14FE123FA27F121F6D13016C6C14FCA26C6CEB03F86D13076C6CEB0F ! F03901FF801F6C9038E07FE06DB512C06D14806D1400010713FC6D13F09038007FC0273A ! 7CB830>I<003FB512E04814FCB67E6F7E6C816C813A03F8007FF0ED1FF8150F6F7E6F7E ! 15016F7EA2EE7F80A2163F17C0161FA4EE0FE0AC161F17C0A3163F1780A2167F17005E4B ! 5A15034B5A150F4B5AED7FF0003FB65A485DB75A93C7FC6C14FC6C14E02B387FB730>I< ! 007FB7FCB81280A47ED803F8C7123FA8EE1F0093C7FCA4157C15FEA490B5FCA6EBF800A4 ! 157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA46C16C02B387EB730>I<003FB7128048 ! 16C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E157FA490B6FCA69038FC007FA4 ! 153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730>I<02FF13F00103EBC0F8010F ! 13F1013F13FD4913FF90B6FC4813C1EC007F4848133F4848131F49130F485A491307121F ! 5B123F491303A2127F90C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C7F6C6D1400ED03 ! F8A27F003F1407A27F121F6D130F120F7F6C6C131FA2D803FE133F6C6C137FECC1FF6C90 ! B5FC7F6D13FB010F13F30103EBC1F0010090C8FC293A7DB830>I<3B3FFF800FFFE0486D ! 4813F0B56C4813F8A26C496C13F06C496C13E0D803F8C7EAFE00B290B6FCA601F8C7FCB3 ! A23B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E02D387FB730>I< ! 007FB6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB71280A46C1500213879B730 ! >I75 D<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003F ! B7FC5AB8FCA27E6C16802A387EB730>III<90383FFFE048B512FC000714FF48158048 ! 15C04815E0EBF80001E0133FD87F80EB0FF0A290C71207A44815F8481403B3A96C1407A2 ! 6C15F0A36D130FA26D131F6C6CEB3FE001F813FF90B6FC6C15C06C15806C1500000114FC ! D8003F13E0253A7BB830>I<007FB512F0B612FE6F7E16E0826C813903F8003FED0FFCED ! 03FE15016F7EA2821780163FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E1680 ! 4BC7FC15F001F8C9FCB0387FFFC0B57EA46C5B29387EB730>I<90383FFFE048B512FC00 ! 0714FF4815804815C04815E0EBF80001E0133F4848EB1FF049130F90C71207A44815F848 ! 1403B3A8147E14FE6CEBFF076C15F0EC7F87A2EC3FC7018013CF9038C01FFFD83FE014E0 ! EBF80F90B6FC6C15C06C15806C1500000114FCD8003F7FEB00016E7EA21680157F16C015 ! 3F16E0151F16F0150FED07E025467BB830>I<003FB57E4814F0B612FC15FF6C816C8126 ! 03F8017F9138003FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A90 ! B65A5E93C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB ! 4801C0EBFFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>I<90390FF8 ! 03C0D97FFF13E048B512C74814F74814FF5A381FF80F383FE001497E4848137F90C7123F ! 5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114 ! F86C80011F13FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C14 ! 0312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8 ! FC7F13F8D8F81F5BD878011380253A7BB830>I<003FB712C04816E0B8FCA43AFE003F80 ! 0FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<3B7FFFC007 ! FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600A36C6C14FE6D13 ! 016D5CEC800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038007FFCEC1F ! F02F3980B730>I89 D<007FB5FCB61280A4150048C8FCB3B3B3A5B6FC1580A46C14 ! 0019476DBE30>91 D<127CA212FEA27EA26C7EA26C7EA26C7EA26C7EA26C7EA26C7EA212 ! 017FA26C7EA26D7EA26D7EA26D7EA26D7EA26D7EA26D7EA2130180A26D7EA26E7EA26E7E ! A26E7EA26E7EA26E7EA26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2ED1FE0A2ED0FF0A2 ! ED07F8A21503A2ED01F0150025477BBE30>I<007FB5FCB61280A47EC7123FB3B3B3A500 ! 7FB5FCB6FCA46C140019477DBE30>I<007FB612F0A2B712F8A36C15F0A225077B7D30> ! 95 D97 DII<913801FFE04A7F5CA28080EC0007AAEB03FE90381FFF874913E790B6FC5A ! 5A481303380FFC00D81FF0133F49131F485A150F4848130790C7FCA25AA25AA87E6C140F ! A27F003F141F6D133F6C7E6D137F390FF801FF2607FE07EBFFC06CB712E06C16F06C14F7 ! 6D01C713E0011F010313C0D907FCC8FC2C397DB730>I<49B4FC010713E0011F13F8017F ! 7F90B57E488048018113803A07FC007FC04848133FD81FE0EB1FE0150F484814F0491307 ! 127F90C7FCED03F85A5AB7FCA516F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D ! 1307D807FEEB1FF03A03FFC07FE06C90B5FC6C15C0013F14806DEBFE00010713F8010013 ! C0252A7CA830>IIII<14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFF ! F8487F5AA27E7EEA0001B3A9003FB612C04815E0B7FCA27E6C15C023397AB830>III<387FFFF8B57EA47EEA0001B3B3A8007F ! B612F0B712F8A46C15F025387BB730>I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B5 ! 00CF7F15DF92B57E6C010F13872607FE07EB03F801FC13FE9039F803FC01A201F013F8A3 ! 01E013F0B3A23C7FFE0FFF07FF80B548018F13C0A46C486C01071380322881A730>II<49B4FC010F13E0013F13F8497F90B57E0003ECFF8014 ! 013A07FC007FC04848EB3FE0D81FE0EB0FF0A24848EB07F8491303007F15FC90C71201A3 ! 00FEEC00FEA86C14016C15FCA26D1303003F15F86D13076D130F6C6CEB1FF06C6CEB3FE0 ! 6D137F3A07FF01FFC06C90B512806C15006C6C13FC6D5B010F13E0010190C7FC272A7CA8 ! 30>II<49B413F8010FEBC1 ! FC013F13F14913FD48B6FC5A481381390FFC007F49131F4848130F491307485A49130312 ! 7F90C7FC15015A5AA77E7E15037FA26C6C1307150F6C6C131F6C6C133F01FC137F3907FF ! 01FF6C90B5FC6C14FD6C14F9013F13F1010F13C1903803FE0190C7FCAD92B512F84A14FC ! A46E14F82E3C7DA730>II<90381FFC1E48B5129F000714FF5A5A5A387FF0 ! 07EB800100FEC7FC4880A46C143E007F91C7FC13E06CB4FC6C13FC6CEBFF806C14E00001 ! 14F86C6C7F01037F9038000FFF02001380007C147F00FEEC1FC0A2150F7EA27F151F6DEB ! 3F806D137F9039FC03FF0090B6FC5D5D00FC14F0D8F83F13C026780FFEC7FC222A79A830 ! >III<3B3FFFC07FFF80486DB512C0B515E0A26C16C06C496C1380 ! 3B01F80003F000A26D130700005DA26D130F017E5CA2017F131F6D5CA2EC803F011F91C7 ! FCA26E5A010F137EA2ECE0FE01075BA214F101035BA3903801FBF0A314FF6D5BA36E5A6E ! 5A2B277EA630>I<3B3FFFC01FFFE0486D4813F0B515F8A26C16F06C496C13E0D807E0C7 ! EA3F00A26D5C0003157EA56D14FE00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147D ! A2ECFDF9017C5C14F8A3017E13FBA290393FF07FE0A3ECE03FA2011F5C90390F800F802D ! 277FA630>I<3A3FFF81FFFC4801C37FB580A26C5D6C01815BC648C66CC7FC137FEC80FE ! 90383F81FC90381FC3F8EB0FE3ECE7F06DB45A6D5B7F6D5B92C8FC147E147F5C497F8190 ! 3803F7E0EB07E790380FE3F0ECC1F890381F81FC90383F80FE90387F007E017E137F01FE ! 6D7E48486D7E267FFF80B5FCB500C1148014E3A214C16C0180140029277DA630>I<3B3F ! FFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01FC0003F000A2000014076D5C ! 137E150F017F5C7F151FD91F805BA214C0010F49C7FCA214E00107137EA2EB03F0157C15 ! FCEB01F85DA2EB00F9ECFDF0147D147FA26E5AA36E5AA35DA2143F92C8FCA25C147EA200 ! 0F13FE486C5AEA3FC1EBC3F81387EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA6 ! 30>I<001FB612FC4815FE5AA316FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E4913 ! 00C7485A4A5A4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A495A495A495A495A4948133E ! 4890C7127F485A485A485A485A485A48B7FCB8FCA46C15FE28277DA630>II125 ! D<017C133848B4137C48EB80FE4813C14813C348EBEFFC397FEFFFF0D8FF8713E0010713 ! C0486C1380D87C0113003838007C1F0C78B730>I E ! %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fo cmr10 10.95 80 ! /Fo 80 125 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907 ! F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7 ! FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11 ! DII<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F13 ! 3F391E600F3000001300A401E01370491360A3000114E04913C000031301010013804813 ! 03000EEB070048130E0018130C0038131C003013181C1C7DBE2D>34 ! D<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A ! 120E5A1218123812300B1C79BE19>39 D<1430147014E0EB01C0EB03801307EB0F00131E ! 133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C ! 12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA212017F12007F13787F13 ! 3E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C07E12707E7E121E7E ! 6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214C0A3130714E0A613 ! 0314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2137813F85B12015B ! 485A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<121EEA7F8012FF13C0A213E0A3 ! 127FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C798919 ! >44 DI<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A798919> ! IIIIII<150E151E153EA2157EA215FE1401A21403EC077E14 ! 06140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA25B5BA25B5B120148 ! 5A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I< ! 00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCACEB01FE ! 90380FFF8090383E03E090387001F8496C7E49137E497F90C713800006141FC813C0A216 ! E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C012780038EC3F80123C ! 6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7FCEB07F8243F7CBC ! 2D>II<1238123C123F90B612FCA3 ! 16F85A16F016E00078C712010070EC03C0ED078016005D48141E151C153C5DC8127015F0 ! 4A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C1303A31307A3130F5CA2 ! 131FA6133FAA6D5A0107C8FC26407BBD2D>III<121EEA7F ! 80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2779 ! A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A213C0A412 ! 7F121E1200A412011380A3120313005A1206120E120C121C5A1230A20A3979A619>I<15 ! 074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC15C3A291380381FEA34AC67EA3 ! 020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA349486D7E91B6FCA249819138800001 ! A249C87EA24982010E157FA2011E82011C153FA2013C820138151FA2017882170F13FC00 ! 034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>65 DI< ! DB3FF01306912603FFFE130E020F9038FF801E913A3FF007E03E9139FF8000F8D903FEC7 ! EA7C7ED907F8EC1EFE4948140FD93FE0140749481403495A91C812014848150012034848 ! 167E5B000F173EA24848161EA2123F5B180E127FA349160012FFAC127F7F180EA2123FA2 ! 7F001F171E181C6C7EA20007173C6D16386C6C1678000117706C6C16F06EEC01E06D6C15 ! C06D6C1403D90FF0EC07806D6CEC1F00D903FE143E902600FF8013F891393FF007F0020F ! B512C0020391C7FC9138003FF037427BBF42>IIIIII ! I<011FB512FCA3D9000713006E5A1401B3B3A6123FEA7F80EAFFC0A44A5A1380D87F005B ! 007C130700385C003C495A6C495A6C495A2603E07EC7FC3800FFF8EB3FC026407CBD2F> ! IIIIIIIII ! I<003FB91280A3903AF0007FE001018090393FC0003F48C7ED1FC0007E1707127C007817 ! 03A300701701A548EF00E0A5C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42>IIII<007FB5D8C003B512E0A3C649C7EBFC00D93FF8EC3FE06D48EC1F806D ! 6C92C7FC171E6D6C141C6D6C143C5F6D6C14706D6D13F04C5ADA7FC05B023F13036F485A ! DA1FF090C8FC020F5BEDF81E913807FC1C163C6E6C5A913801FF7016F06E5B6F5AA26F7E ! 6F7EA28282153FED3BFEED71FF15F103E07F913801C07F0203804B6C7EEC07004A6D7E02 ! 0E6D7E5C023C6D7E02386D7E14784A6D7E4A6D7F130149486E7E4A6E7E130749C86C7E49 ! 6F7E497ED9FFC04A7E00076DEC7FFFB500FC0103B512FEA33F3E7EBD44>II<003FB712F8A391C7EA1FF013F801E0EC3FE001 ! 80EC7FC090C8FC003EEDFF80A2003C4A1300007C4A5A12784B5A4B5AA200704A5AA24B5A ! 4B5AA2C8485A4A90C7FCA24A5A4A5AA24A5AA24A5A4A5AA24A5A4A5AA24990C8FCA2495A ! 4948141CA2495A495AA2495A495A173C495AA24890C8FC485A1778485A484815F8A24848 ! 140116034848140F4848143FED01FFB8FCA32E3E7BBD38>II<486C13C00003130101001380481303000EEB070048130E00 ! 18130C0038131C003013180070133800601330A300E01370481360A400CFEB678039FFC0 ! 7FE001E013F0A3007F133FA2003F131F01C013E0390F0007801C1C73BE2D>II96 ! DII< ! 49B4FC010F13E090383F00F8017C131E4848131F4848137F0007ECFF80485A5B121FA248 ! 48EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003FEC01C07F001F140316806C6C1307 ! 6C6C14000003140E6C6C131E6C6C137890383F01F090380FFFC0D901FEC7FC222A7DA828 ! >IIII<167C903903F801FF903A1FFF078F8090397E0FDE1F9038 ! F803F83803F001A23B07E000FC0600000F6EC7FC49137E001F147FA8000F147E6D13FE00 ! 075C6C6C485AA23901F803E03903FE0FC026071FFFC8FCEB03F80006CAFC120EA3120FA2 ! 7F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC0001FFC48C7EA01FE003E14004815 ! 7E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017F ! C7FC90383FFFFC010313C0293D7EA82D>III<1478EB01FEA2EB ! 03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F147FB3B3A5123E127F38FF807E14 ! FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF803801FC00185185BD1C>III<2701F801FE14FF00FF902707FFC0 ! 0313E0913B1E07E00F03F0913B7803F03C01F80007903BE001F87000FC2603F9C06D487F ! 000101805C01FBD900FF147F91C75B13FF4992C7FCA2495CB3A6486C496CECFF80B5D8F8 ! 7FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807FFC091381E07E091387803F0 ! 00079038E001F82603F9C07F0001138001FB6D7E91C7FC13FF5BA25BB3A6486C497EB5D8 ! F87F13FCA32E287DA733>I<14FF010713E090381F81F890387E007E01F8131F4848EB0F ! 804848EB07C04848EB03E0000F15F04848EB01F8A2003F15FCA248C812FEA44815FFA96C ! 15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E06C6CEB0FC06C6CEB1F80D800 ! 7EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D>I<3901FC03FC00FF90381F ! FF8091387C0FE09039FDE003F03A07FFC001FC6C496C7E6C90C7127F49EC3F805BEE1FC0 ! 17E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D1580EE7F007F6E13FE9138C001 ! F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891C9FCAD487EB512F8A32D3A7EA733 ! >I<02FF131C0107EBC03C90381F80F090397F00387C01FC131CD803F8130E4848EB0FFC ! 150748481303121F485A1501485AA448C7FCAA6C7EA36C7EA2001F14036C7E15076C6C13 ! 0F6C7E6C6C133DD8007E137990383F81F190380FFFC1903801FE0190C7FCAD4B7E92B512 ! F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787CECE1FE3807F9C100031381EA01FB ! 1401EC00FC01FF1330491300A35BB3A5487EB512FEA31F287EA724>I<90383FC0603901 ! FFF8E03807C03F381F000F003E1307003C1303127C0078130112F81400A27E7E7E6D1300 ! EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F13E0010313F0EB001FEC0FF8 ! 00E01303A214017E1400A27E15F07E14016C14E06CEB03C0903880078039F3E01F0038E0 ! FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA213FCA2120112031207001FB512C0 ! B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB7F03013F138090381F8700EB07FE ! EB01F81B397EB723>IIIIII<001FB61280 ! A2EBE0000180140049485A001E495A121C4A5A003C495A141F00385C4A5A147F5D4AC7FC ! C6485AA2495A495A130F5C495A90393FC00380A2EB7F80EBFF005A5B4848130712074914 ! 00485A48485BA248485B4848137F00FF495A90B6FCA221277EA628>I124 D E ! %EndDVIPSBitmapFont ! %DVIPSBitmapFont: Fp cmbx12 20.736 19 ! /Fp 19 122 df<96267FFFE01670063FB6ED01F80503B700F01403053F04FC14074CB96C ! 130F040706E0131F043F72133F93BA00FC137F0303DC00076D13FF030F03C09039003FFF ! 814B02FCC8000713C3037F02E0030113F792B600806F6CB5FC02034ACA121F4A02F8834A ! 02E0834A4A1701027F4A8391B548CC7E494A85495C4C854988494A85494A85495C8A4991 ! CDFC90B54886A2484A1B7FA2481E3F5D481E1F5D5A1F0FA2485CA3481E075DA2795A489B ! C9FCA45DA2B6FCB27EA26F0403BA12C0A47EA3816C96C8000302F8C7FCA36C80A36C80A2 ! 7E817E817E817F6D80827F6D806D806D80826D6E606D806E80021F6E5F6E02F05F6E806E ! 02FE5F0200DAFFC05E6F02F04BB6FC031F02FE030713CF6FDAFFE0021F138703039226FF ! 8003B51201030093B6EAFC00043F4E133F040706E0131F04014E1307DC003F4CC7120105 ! 0304F8EC0070DD003F038092C8FCDE007F01F0CCFC827A75F798>71 ! D73 ! D76 D78 D82 ! D85 D<92383FFFF80207B612E002 ! 7F15FC49B87E010717E0011F83499026F0007F13FC4948C7000F7F90B502036D7E486E6D ! 806F6D80727F486E6E7F8486727FA28684A26C5C72806C5C6D90C8FC6D5AEB0FF8EB03E0 ! 90CAFCA70507B6FC041FB7FC0303B8FC157F0203B9FC021FECFE0391B612800103ECF800 ! 010F14C04991C7FC017F13FC90B512F04814C0485C4891C8FC485B5A485B5C5A5CA2B5FC ! 5CA360A36E5DA26C5F6E5D187E6C6D846E4A48806C6D4A4814FC6C6ED90FF0ECFFFC6C02 ! E090263FE07F14FE00019139FC03FFC06C91B6487E013F4B487E010F4B1307010303F013 ! 01D9003F0280D9003F13FC020101F8CBFC57507ACE5E>97 D<903801FFFCB6FCA8C67E13 ! 1F7FB3ADF0FFFC050FEBFFE0057F14FE0403B77E040F16E0043F16F84CD9007F13FE9226 ! FDFFF001077F92B500C001018094C86C13E004FC6F7F4C6F7F04E06F7F4C6F7F5E747F93 ! C915804B7014C0A27414E0A21DF087A21DF8A31DFC87A41DFEAF1DFCA4631DF8A31DF098 ! B5FC1DE0A25014C0A26F1980501400705D705F704B5B505B704B5B04FC4B5BDBE7FE92B5 ! 5A9226C3FF8001035C038101E0011F49C7FC9226807FFC90B55A4B6CB712F04A010F16C0 ! 4A010393C8FC4A010015F84A023F14C090C9000301F0C9FC5F797AF76C>I<93383FFFF0 ! 0307B612C0033F15F84AB712FE0207707E021F17E0027F8391B526FC001F7F010302C001 ! 037F4991C7487F49495C495B4901F04A7F5B90B55A485CA2485C4891C8FCA248715B5C48 ! 715B725B4A6F5B489438007FC0071FC7FC96C8FC5AA25CA3B5FCAF7E80A47E80A27E806C ! F11F80F23FC06C6E167FA26C6EEEFF80816C606C6E17006D6D4B5A6D6D15076D6D4B5A6D ! 6D6C4A5A6D02E0EC7FF06D02F849485A01009126FF801F5B6E91B6C7FC021F5E020716F8 ! 020116E06E6C1580030702FCC8FCDB003F13804A507ACE56>I<97380FFFE00607B6FCA8 ! F00003190086B3AD93383FFF800307B512F8033F14FF4AB712C0020716F0021F16FC027F ! 9039FE007FFE91B500F0EB0FFF01030280010190B5FC4949C87E49498149498149498149 ! 498190B548814884484A8192CAFC5AA2485BA25A5C5AA35A5CA4B5FCAF7EA4807EA37EA2 ! 807EA26C7F616C6E5D6C606C80616D6D5D6D6D5D6D6D92B67E6D6D4A15FC010301FF0207 ! EDFFFE6D02C0EB3FFE6D6C9039FC01FFF86E90B65A020F16C002031600DA007F14FC030F ! 14E09226007FFEC749C7FC5F797AF76C>I<93387FFF80030FB512FC037FECFF804AB712 ! E0020716F8021F16FE027FD9F8077F49B5D8C000804991C7003F13E04901FC020F7F4949 ! 6E7F49498049496E7F49496E7F90B55A48727E92C914804884485B1BC048841BE0485BA2 ! 7313F05AA25C5AA21BF885A2B5FCA391BAFCA41BF002F8CCFCA67EA3807EA47E806CF103 ! F0F207F86C7F1A0F6C6E17F06C191F6F17E06C6E163F6D6DEE7FC06D6D16FF6D6D4B1380 ! 6D6D4B13006D6D6CEC0FFE6D02E0EC3FFC6D02F8ECFFF86D9126FFC00F5B023F91B65A02 ! 0F178002034CC7FC020016F8031F15E0030392C8FCDB000F13E04D507BCE58>II105 D<903801FFFCB6FCA8C67E131F7FB3B3B3B3B3ABB812 ! C0A82A7879F735>108 D<902601FFF891380FFFE0B692B512FE05036E7E050F15E0053F ! 15F84D81932701FFF01F7F4CD900077FDC07FC6D80C66CDA0FF06D80011FDA1FC07F6D4A ! 48824CC8FC047E6F7F5EEDF9F85E03FB707F5E15FF5EA25EA293C9FCA45DB3B3A6B8D8E0 ! 03B81280A8614E79CD6C>110 D<902601FFF8EB07FEB691383FFFC094B512F00403804C ! 14FE4C8093261FFC3F138093263FE07F13C0DC7F80B5FCC66C5D011FDAFE0114E06DEBF9 ! FC16F815FB16F016E015FF16C07114C05E72138095381FFE0093C76C5AF001E095C8FCA2 ! 5DA65DB3B3A2B812F8A8434E7ACD4F>114 D<912603FFFCEB0780027F9039FFE00FC001 ! 03B6EAF83F010FEDFEFF013F92B5FC49EB000F2601FFF01300480180143F4890C8120F48 ! 48814848814981123F83485A187FA212FF6D163FA37F7F6DEE1F8002C092C7FC14F014FE ! ECFFF06CECFF8016FEEEFFE06C16FC6C16FF18C06C836C17F86C836C836C83013F17806D ! 17C0010717E0010117F0EB003F020716F8EC001F030015FC1607EE007F051F13FE170700 ! 7E82B482836D167FA2183F7F181FA27F19FC7FA26D163F6D17F86D167F19F06D16FF6E4A ! 13E002E04A13C06E4A138002FE023F1300913AFFC003FFFE01E790B65A01C316F0018016 ! C026FE003F92C7FC48010714F80070D9007F90C8FC3F507ACE4C>I<15FFA75CA55CA45C ! A25CA25CA25CA25C91B5FCA25B5B5B131F5B90B9FC120FBAFCA6D8000791C9FCB3B3A3F0 ! 1FE0AE183F7014C07F187F7014806D16FF826D4B13006E6D485AEEFE0F6E90B55A020F5D ! 6E5D020115C06E6C5C031F49C7FC030113F03B6E7CEC4B>I121 D E %EndDVIPSBitmapFont end %%EndProlog %%BeginSetup ! %%Feature: *Resolution 600dpi TeXDict begin %%BeginPaperSize: Letter *************** *** 769,1998 **** %%EndSetup %%Page: 1 1 ! 1 0 bop 75 659 a Fn(GNU)33 b(Readline)h(Library)e(User)h(In)m(terface)p ! 75 709 1800 17 v 936 757 a Fm(Edition)17 b(4.3,)c(for)i ! Fl(Readline)f(Library)g Fm(V)l(ersion)i(4.3.)1643 811 ! y(Marc)o(h)e(2002)75 2467 y Fk(Brian)23 b(F)-6 b(o)n(x,)23 ! b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)75 ! 2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23 ! b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570 1800 9 v eop %%Page: 2 2 ! 2 1 bop 75 217 a Fm(This)22 b(do)q(cumen)o(t)f(describ)q(es)i(the)f ! (end)f(user)h(in)o(terface)f(of)g(the)g(GNU)g(Readline)i(Library)l(,)g ! (a)e(utilit)o(y)75 271 y(whic)o(h)14 b(aids)f(in)g(the)g(consistency)h ! (of)e(user)h(in)o(terface)g(across)f(discrete)h(programs)f(that)g(need) ! h(to)f(pro)o(vide)75 326 y(a)j(command)g(line)i(in)o(terface.)75 ! 394 y(Published)g(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l ! (oundation)75 448 y(59)h(T)l(emple)h(Place,)f(Suite)i(330,)75 ! 503 y(Boston,)d(MA)h(02111)f(USA)75 570 y(P)o(ermission)j(is)f(gran)o ! (ted)g(to)f(mak)o(e)h(and)g(distribute)i(v)o(erbatim)d(copies)i(of)f ! (this)h(man)o(ual)f(pro)o(vided)h(the)75 625 y(cop)o(yrigh)o(t)e ! (notice)h(and)f(this)h(p)q(ermission)g(notice)g(are)f(preserv)o(ed)h ! (on)f(all)h(copies.)75 692 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g ! (cop)o(y)h(and)g(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h ! (man)o(ual)g(under)h(the)f(con-)75 747 y(ditions)k(for)e(v)o(erbatim)h ! (cop)o(ying,)g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g ! (deriv)o(ed)g(w)o(ork)e(is)h(distributed)75 802 y(under)h(the)f(terms)g ! (of)g(a)f(p)q(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75 ! 869 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f ! (distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another) ! g(lan-)75 924 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i ! (for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q ! (ermission)g(notice)75 979 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f ! (translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are) ! d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289 ! 2661 y Fj(\015)h Fm(1988-2002)f(F)l(ree)i(Soft)o(w)o(are)f(F)l ! (oundation,)h(Inc.)p eop ! %%Page: 1 3 ! 1 2 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 ! b(1)75 149 y Fi(1)41 b(Command)28 b(Line)e(Editing)137 ! 271 y Fm(This)16 b(c)o(hapter)f(describ)q(es)i(the)e(basic)h(features)f ! (of)g(the)g Fh(gnu)g Fm(command)g(line)i(editing)f(in)o(terface.)75 ! 403 y Fk(1.1)33 b(In)n(tro)r(duction)24 b(to)e(Line)i(Editing)137 ! 501 y Fm(The)16 b(follo)o(wing)g(paragraphs)e(describ)q(e)j(the)e ! (notation)g(used)h(to)e(represen)o(t)i(k)o(eystrok)o(es.)137 ! 569 y(The)h(text)f Fg(C-k)h Fm(is)g(read)g(as)f(`Con)o(trol-K')g(and)h ! (describ)q(es)h(the)f(c)o(haracter)f(pro)q(duced)h(when)h(the)1831 ! 567 y Ff(h)p 1844 541 19 2 v 1844 569 a Fe(k)p 1844 577 ! V 1860 567 a Ff(i)75 624 y Fm(k)o(ey)d(is)h(pressed)g(while)g(the)f ! (Con)o(trol)g(k)o(ey)g(is)h(depressed.)137 693 y(The)g(text)g ! Fg(M-k)f Fm(is)i(read)f(as)f(`Meta-K')g(and)h(describ)q(es)i(the)e(c)o ! (haracter)f(pro)q(duced)i(when)g(the)f(Meta)75 747 y(k)o(ey)e(\(if)g(y) ! o(ou)g(ha)o(v)o(e)g(one\))g(is)h(depressed,)g(and)f(the)930 ! 745 y Ff(h)p 942 719 V 942 747 a Fe(k)p 942 755 V 958 ! 745 a Ff(i)987 747 y Fm(k)o(ey)g(is)h(pressed.)20 b(The)15 ! b(Meta)e(k)o(ey)h(is)h(lab)q(eled)1779 745 y Ff(h)p 1791 ! 719 72 2 v 1791 747 a Fe(AL)m(T)p 1791 755 V 1860 745 ! a Ff(i)75 802 y Fm(on)e(man)o(y)g(k)o(eyb)q(oards.)19 ! b(On)13 b(k)o(eyb)q(oards)g(with)h(t)o(w)o(o)e(k)o(eys)g(lab)q(eled) ! 1213 800 y Ff(h)p 1225 774 V 1225 802 a Fe(AL)m(T)p 1225 ! 810 V 1294 800 a Ff(i)1322 802 y Fm(\(usually)i(to)e(either)i(side)g ! (of)f(the)75 857 y(space)j(bar\),)f(the)388 855 y Ff(h)p ! 400 829 V 400 857 a Fe(AL)m(T)p 400 865 V 469 855 a Ff(i)499 ! 857 y Fm(on)h(the)g(left)g(side)g(is)g(generally)h(set)f(to)f(w)o(ork)g ! (as)g(a)g(Meta)g(k)o(ey)l(.)22 b(The)1697 855 y Ff(h)p ! 1709 829 V 1709 857 a Fe(AL)m(T)p 1709 865 V 1778 855 ! a Ff(i)1808 857 y Fm(k)o(ey)75 912 y(on)17 b(the)f(righ)o(t)h(ma)o(y)f ! (also)h(b)q(e)g(con\014gured)g(to)f(w)o(ork)g(as)g(a)h(Meta)f(k)o(ey)g ! (or)g(ma)o(y)g(b)q(e)i(con\014gured)f(as)f(some)75 967 ! y(other)f(mo)q(di\014er,)h(suc)o(h)f(as)g(a)g(Comp)q(ose)g(k)o(ey)g ! (for)f(t)o(yping)i(accen)o(ted)f(c)o(haracters.)137 1035 ! y(If)c(y)o(ou)g(do)g(not)f(ha)o(v)o(e)h(a)f(Meta)h(or)694 ! 1033 y Ff(h)p 706 1007 V 706 1035 a Fe(AL)m(T)p 706 1043 ! V 775 1033 a Ff(i)801 1035 y Fm(k)o(ey)l(,)g(or)g(another)f(k)o(ey)h(w) ! o(orking)f(as)h(a)f(Meta)h(k)o(ey)l(,)g(the)g(iden)o(tical)75 ! 1090 y(k)o(eystrok)o(e)f(can)i(b)q(e)g(generated)f(b)o(y)g(t)o(yping) ! 809 1088 y Ff(h)p 822 1062 70 2 v 822 1090 a Fe(ESC)p ! 822 1098 V 888 1088 a Ff(i)915 1090 y Fd(\014rst)p Fm(,)g(and)g(then)h ! (t)o(yping)1339 1088 y Ff(h)p 1351 1062 19 2 v 1351 1090 ! a Fe(k)p 1351 1098 V 1368 1088 a Ff(i)1383 1090 y Fm(.)18 ! b(Either)12 b(pro)q(cess)f(is)h(kno)o(wn)75 1145 y(as)j ! Fc(metafying)k Fm(the)425 1143 y Ff(h)p 437 1117 V 437 ! 1145 a Fe(k)p 437 1153 V 454 1143 a Ff(i)484 1145 y Fm(k)o(ey)l(.)137 ! 1214 y(The)i(text)e Fg(M-C-k)h Fm(is)h(read)f(as)f(`Meta-Con)o(trol-k') ! g(and)h(describ)q(es)i(the)e(c)o(haracter)g(pro)q(duced)h(b)o(y)75 ! 1268 y Fc(metafying)e Fg(C-k)p Fm(.)137 1337 y(In)g(addition,)h(sev)o ! (eral)f(k)o(eys)f(ha)o(v)o(e)g(their)h(o)o(wn)f(names.)30 ! b(Sp)q(eci\014cally)l(,)1384 1335 y Ff(h)p 1396 1309 ! 73 2 v 1396 1337 a Fe(DEL)p 1396 1345 V 1467 1335 a Ff(i)1482 ! 1337 y Fm(,)1514 1335 y Ff(h)p 1526 1309 70 2 v 1526 ! 1337 a Fe(ESC)p 1526 1345 V 1593 1335 a Ff(i)1608 1337 ! y Fm(,)1640 1335 y Ff(h)p 1652 1309 72 2 v 1652 1337 ! a Fe(LFD)p 1652 1345 V 1722 1335 a Ff(i)1737 1337 y Fm(,)1768 ! 1335 y Ff(h)p 1780 1309 70 2 v 1780 1337 a Fe(SPC)p 1780 ! 1345 V 1847 1335 a Ff(i)1862 1337 y Fm(,)75 1390 y Ff(h)p ! 87 1364 76 2 v 87 1392 a Fe(RET)p 87 1399 V 160 1390 ! a Ff(i)175 1392 y Fm(,)23 b(and)306 1390 y Ff(h)p 318 ! 1364 74 2 v 318 1392 a Fe(T)m(AB)p 318 1399 V 390 1390 ! a Ff(i)427 1392 y Fm(all)f(stand)g(for)f(themselv)o(es)h(when)h(seen)f ! (in)g(this)g(text,)h(or)e(in)i(an)e(init)i(\014le)g(\(see)75 ! 1447 y(Section)d(1.3)f([Readline)h(Init)g(File],)h(page)e(4\).)32 ! b(If)19 b(y)o(our)g(k)o(eyb)q(oard)h(lac)o(ks)f(a)1444 ! 1445 y Ff(h)p 1456 1419 72 2 v 1456 1447 a Fe(LFD)p 1456 ! 1454 V 1526 1445 a Ff(i)1560 1447 y Fm(k)o(ey)l(,)h(t)o(yping)1802 ! 1445 y Ff(h)p 1814 1419 49 2 v 1814 1447 a Fe(C-j)p 1814 ! 1454 V 1860 1445 a Ff(i)75 1501 y Fm(will)c(pro)q(duce)g(the)f(desired) ! h(c)o(haracter.)j(The)874 1499 y Ff(h)p 886 1473 76 2 ! v 886 1501 a Fe(RET)p 886 1509 V 959 1499 a Ff(i)989 ! 1501 y Fm(k)o(ey)c(ma)o(y)f(b)q(e)h(lab)q(eled)1385 1499 ! y Ff(h)p 1397 1473 109 2 v 1397 1501 a Fe(Return)p 1397 ! 1509 V 1503 1499 a Ff(i)1533 1501 y Fm(or)1588 1499 y ! Ff(h)p 1600 1473 86 2 v 1600 1501 a Fe(En)o(ter)p 1600 ! 1509 V 1684 1499 a Ff(i)1714 1501 y Fm(on)f(some)75 1556 ! y(k)o(eyb)q(oards.)75 1688 y Fk(1.2)33 b(Readline)23 ! b(In)n(teraction)137 1786 y Fm(Often)13 b(during)h(an)e(in)o(teractiv)o ! (e)h(session)g(y)o(ou)g(t)o(yp)q(e)f(in)i(a)e(long)h(line)h(of)e(text,) ! h(only)g(to)f(notice)h(that)f(the)75 1841 y(\014rst)k(w)o(ord)f(on)h ! (the)h(line)h(is)e(missp)q(elled.)26 b(The)16 b(Readline)i(library)f ! (giv)o(es)f(y)o(ou)g(a)g(set)g(of)g(commands)g(for)75 ! 1896 y(manipulating)g(the)f(text)g(as)f(y)o(ou)h(t)o(yp)q(e)g(it)g(in,) ! g(allo)o(wing)h(y)o(ou)f(to)f(just)h(\014x)g(y)o(our)f(t)o(yp)q(o,)g ! (and)h(not)g(forcing)75 1950 y(y)o(ou)f(to)f(ret)o(yp)q(e)h(the)g(ma)s ! (jorit)o(y)f(of)h(the)g(line.)21 b(Using)15 b(these)f(editing)h ! (commands,)f(y)o(ou)g(mo)o(v)o(e)f(the)h(cursor)75 2005 ! y(to)i(the)i(place)g(that)e(needs)i(correction,)g(and)f(delete)h(or)f ! (insert)g(the)h(text)e(of)h(the)g(corrections.)26 b(Then,)75 ! 2060 y(when)16 b(y)o(ou)f(are)h(satis\014ed)g(with)g(the)f(line,)i(y)o ! (ou)e(simply)i(press)1160 2058 y Ff(h)p 1172 2032 76 ! 2 v 1172 2060 a Fe(RET)p 1172 2068 V 1245 2058 a Ff(i)1260 ! 2060 y Fm(.)k(Y)l(ou)16 b(do)f(not)h(ha)o(v)o(e)f(to)g(b)q(e)h(at)f ! (the)75 2115 y(end)k(of)e(the)h(line)i(to)d(press)563 ! 2113 y Ff(h)p 575 2087 V 575 2115 a Fe(RET)p 575 2122 ! V 648 2113 a Ff(i)663 2115 y Fm(;)i(the)f(en)o(tire)h(line)g(is)g ! (accepted)f(regardless)g(of)g(the)g(lo)q(cation)g(of)g(the)75 ! 2170 y(cursor)d(within)h(the)g(line.)75 2284 y Fb(1.2.1)30 ! b(Readline)20 b(Bare)g(Essen)n(tials)137 2382 y Fm(In)12 ! b(order)g(to)f(en)o(ter)g(c)o(haracters)g(in)o(to)g(the)h(line,)h ! (simply)g(t)o(yp)q(e)f(them.)18 b(The)12 b(t)o(yp)q(ed)g(c)o(haracter)f ! (app)q(ears)75 2437 y(where)16 b(the)h(cursor)f(w)o(as,)f(and)h(then)h ! (the)f(cursor)g(mo)o(v)o(es)g(one)g(space)g(to)g(the)g(righ)o(t.)23 ! b(If)17 b(y)o(ou)f(mist)o(yp)q(e)g(a)75 2492 y(c)o(haracter,)e(y)o(ou)h ! (can)g(use)h(y)o(our)f(erase)g(c)o(haracter)f(to)h(bac)o(k)g(up)g(and)h ! (delete)g(the)f(mist)o(yp)q(ed)h(c)o(haracter.)137 2560 ! y(Sometimes)g(y)o(ou)f(ma)o(y)g(mist)o(yp)q(e)h(a)f(c)o(haracter,)f ! (and)i(not)f(notice)h(the)f(error)g(un)o(til)i(y)o(ou)e(ha)o(v)o(e)g(t) ! o(yp)q(ed)75 2615 y(sev)o(eral)g(other)f(c)o(haracters.)19 ! b(In)c(that)e(case,)i(y)o(ou)f(can)g(t)o(yp)q(e)h Fg(C-b)f ! Fm(to)g(mo)o(v)o(e)f(the)i(cursor)f(to)g(the)g(left,)h(and)75 ! 2670 y(then)h(correct)e(y)o(our)h(mistak)o(e.)20 b(Afterw)o(ards,)13 ! b(y)o(ou)i(can)g(mo)o(v)o(e)g(the)g(cursor)g(to)g(the)g(righ)o(t)g ! (with)g Fg(C-f)p Fm(.)p eop ! %%Page: 2 4 ! 2 3 bop 75 -58 a Fm(2)1322 b(GNU)15 b(Readline)h(Library)137 ! 149 y(When)h(y)o(ou)f(add)g(text)g(in)h(the)g(middle)h(of)e(a)f(line,)j ! (y)o(ou)e(will)i(notice)f(that)f(c)o(haracters)f(to)h(the)g(righ)o(t)75 ! 204 y(of)e(the)g(cursor)g(are)g(`pushed)h(o)o(v)o(er')f(to)f(mak)o(e)h ! (ro)q(om)g(for)f(the)i(text)f(that)f(y)o(ou)h(ha)o(v)o(e)g(inserted.)21 ! b(Lik)o(ewise,)75 259 y(when)e(y)o(ou)g(delete)h(text)e(b)q(ehind)j ! (the)e(cursor,)g(c)o(haracters)f(to)g(the)h(righ)o(t)f(of)g(the)h ! (cursor)g(are)f(`pulled)75 314 y(bac)o(k')11 b(to)g(\014ll)h(in)h(the)e ! (blank)h(space)g(created)f(b)o(y)h(the)f(remo)o(v)m(al)g(of)g(the)h ! (text.)18 b(A)11 b(list)h(of)f(the)h(bare)f(essen)o(tials)75 ! 369 y(for)k(editing)h(the)f(text)g(of)g(an)g(input)h(line)h(follo)o ! (ws.)75 449 y Fg(C-b)168 b Fm(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o ! (haracter.)75 530 y Fg(C-f)168 b Fm(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h ! (c)o(haracter.)75 608 y Ff(h)p 87 582 73 2 v 87 610 a ! Fe(DEL)p 87 618 V 158 608 a Ff(i)188 610 y Fm(or)244 ! 608 y Ff(h)p 256 582 159 2 v 256 610 a Fe(Bac)o(kspace)p ! 256 618 V 412 608 a Ff(i)315 665 y Fm(Delete)h(the)f(c)o(haracter)g(to) ! f(the)h(left)h(of)f(the)g(cursor.)75 745 y Fg(C-d)168 ! b Fm(Delete)16 b(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)75 ! 825 y(Prin)o(ting)h(c)o(haracters)315 880 y(Insert)f(the)h(c)o ! (haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)75 ! 961 y Fg(C-_)g Fm(or)f Fg(C-x)h(C-u)315 1015 y Fm(Undo)i(the)g(last)f ! (editing)i(command.)25 b(Y)l(ou)17 b(can)g(undo)g(all)g(the)g(w)o(a)o ! (y)f(bac)o(k)h(to)f(an)g(empt)o(y)315 1070 y(line.)75 ! 1151 y(\(Dep)q(ending)i(on)f(y)o(our)g(con\014guration,)g(the)863 ! 1149 y Ff(h)p 875 1123 V 875 1151 a Fe(Bac)o(kspace)p ! 875 1159 V 1032 1149 a Ff(i)1063 1151 y Fm(k)o(ey)g(b)q(e)h(set)f(to)f ! (delete)i(the)f(c)o(haracter)g(to)f(the)75 1206 y(left)h(of)f(the)h ! (cursor)f(and)g(the)596 1204 y Ff(h)p 608 1178 73 2 v ! 608 1206 a Fe(DEL)p 608 1213 V 679 1204 a Ff(i)710 1206 ! y Fm(k)o(ey)h(set)f(to)g(delete)h(the)g(c)o(haracter)f(underneath)h ! (the)g(cursor,)f(lik)o(e)75 1260 y Fg(C-d)p Fm(,)e(rather)h(than)g(the) ! g(c)o(haracter)g(to)f(the)i(left)f(of)g(the)g(cursor.\))75 ! 1374 y Fb(1.2.2)30 b(Readline)20 b(Mo)n(v)n(emen)n(t)i(Commands)137 ! 1471 y Fm(The)14 b(ab)q(o)o(v)o(e)e(table)i(describ)q(es)g(the)g(most)e ! (basic)i(k)o(eystrok)o(es)d(that)i(y)o(ou)g(need)h(in)f(order)g(to)g ! (do)g(editing)75 1526 y(of)f(the)h(input)h(line.)21 b(F)l(or)12 ! b(y)o(our)g(con)o(v)o(enience,)i(man)o(y)f(other)f(commands)h(ha)o(v)o ! (e)f(b)q(een)i(added)f(in)h(addition)75 1580 y(to)h Fg(C-b)p ! Fm(,)h Fg(C-f)p Fm(,)f Fg(C-d)p Fm(,)g(and)522 1578 y ! Ff(h)p 534 1552 V 534 1580 a Fe(DEL)p 534 1588 V 605 ! 1578 a Ff(i)619 1580 y Fm(.)23 b(Here)16 b(are)g(some)f(commands)h(for) ! f(mo)o(ving)h(more)g(rapidly)h(ab)q(out)f(the)75 1635 ! y(line.)75 1716 y Fg(C-a)168 b Fm(Mo)o(v)o(e)14 b(to)h(the)g(start)f ! (of)h(the)g(line.)75 1796 y Fg(C-e)168 b Fm(Mo)o(v)o(e)14 ! b(to)h(the)g(end)h(of)f(the)g(line.)75 1876 y Fg(M-f)168 ! b Fm(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord,)f(where)i(a)e(w)o(ord)h ! (is)h(comp)q(osed)f(of)g(letters)g(and)h(digits.)75 1957 ! y Fg(M-b)168 b Fm(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)75 ! 2037 y Fg(C-l)168 b Fm(Clear)15 b(the)h(screen,)f(reprin)o(ting)h(the)f ! (curren)o(t)g(line)i(at)e(the)g(top.)137 2118 y(Notice)e(ho)o(w)f ! Fg(C-f)g Fm(mo)o(v)o(es)f(forw)o(ard)g(a)h(c)o(haracter,)g(while)i ! Fg(M-f)e Fm(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)18 ! b(It)13 b(is)g(a)f(lo)q(ose)75 2173 y(con)o(v)o(en)o(tion)j(that)f(con) ! o(trol)h(k)o(eystrok)o(es)f(op)q(erate)h(on)f(c)o(haracters)h(while)h ! (meta)e(k)o(eystrok)o(es)g(op)q(erate)h(on)75 2227 y(w)o(ords.)75 ! 2341 y Fb(1.2.3)30 b(Readline)20 b(Killing)h(Commands)137 ! 2438 y Fc(Killing)26 b Fm(text)18 b(means)g(to)g(delete)i(the)f(text)f ! (from)g(the)h(line,)i(but)d(to)g(sa)o(v)o(e)g(it)h(a)o(w)o(a)o(y)e(for) ! h(later)h(use,)75 2493 y(usually)f(b)o(y)f Fc(y)o(anking)22 ! b Fm(\(re-inserting\))17 b(it)g(bac)o(k)g(in)o(to)g(the)h(line.)27 ! b(\(`Cut')15 b(and)j(`paste')e(are)g(more)h(recen)o(t)75 ! 2547 y(jargon)d(for)h(`kill')h(and)g(`y)o(ank'.\))137 ! 2615 y(If)g(the)f(description)h(for)f(a)g(command)g(sa)o(ys)f(that)h ! (it)g(`kills')h(text,)e(then)i(y)o(ou)f(can)g(b)q(e)h(sure)f(that)f(y)o ! (ou)75 2670 y(can)h(get)g(the)g(text)g(bac)o(k)g(in)h(a)f(di\013eren)o ! (t)g(\(or)g(the)g(same\))g(place)h(later.)p eop ! %%Page: 3 5 ! 3 4 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 ! b(3)137 149 y(When)12 b(y)o(ou)g(use)g(a)f(kill)i(command,)f(the)g ! (text)f(is)h(sa)o(v)o(ed)f(in)i(a)e Fc(kill-ring)p Fm(.)21 ! b(An)o(y)12 b(n)o(um)o(b)q(er)g(of)f(consecutiv)o(e)75 ! 204 y(kills)17 b(sa)o(v)o(e)e(all)h(of)f(the)h(killed)i(text)d ! (together,)f(so)h(that)g(when)h(y)o(ou)f(y)o(ank)g(it)h(bac)o(k,)f(y)o ! (ou)g(get)g(it)h(all.)22 b(The)75 259 y(kill)c(ring)f(is)f(not)g(line)i ! (sp)q(eci\014c;)g(the)e(text)g(that)f(y)o(ou)h(killed)j(on)d(a)g ! (previously)h(t)o(yp)q(ed)g(line)h(is)e(a)o(v)m(ailable)75 ! 314 y(to)f(b)q(e)g(y)o(ank)o(ed)g(bac)o(k)h(later,)e(when)i(y)o(ou)f ! (are)g(t)o(yping)g(another)g(line.)137 380 y(Here)h(is)f(the)h(list)g ! (of)e(commands)h(for)g(killing)j(text.)75 458 y Fg(C-k)168 ! b Fm(Kill)17 b(the)f(text)e(from)h(the)g(curren)o(t)g(cursor)g(p)q ! (osition)h(to)f(the)g(end)h(of)f(the)g(line.)75 535 y ! Fg(M-d)168 b Fm(Kill)15 b(from)e(the)g(cursor)g(to)f(the)i(end)g(of)e ! (the)i(curren)o(t)f(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,) ! e(to)h(the)315 590 y(end)j(of)f(the)g(next)g(w)o(ord.)k(W)l(ord)c(b)q ! (oundaries)i(are)e(the)g(same)g(as)g(those)f(used)i(b)o(y)f ! Fg(M-f)p Fm(.)75 668 y Fg(M-)123 666 y Ff(h)p 135 640 ! 73 2 v 135 668 a Fe(DEL)p 135 675 V 206 666 a Ff(i)315 ! 668 y Fm(Kill)i(from)e(the)g(cursor)g(the)h(start)e(of)h(the)g(curren)o ! (t)g(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)e(to)h(the)315 ! 723 y(start)j(of)h(the)g(previous)h(w)o(ord.)31 b(W)l(ord)19 ! b(b)q(oundaries)h(are)f(the)h(same)e(as)h(those)g(used)h(b)o(y)315 ! 777 y Fg(M-b)p Fm(.)75 855 y Fg(C-w)168 b Fm(Kill)18 ! b(from)d(the)g(cursor)h(to)f(the)g(previous)i(whitespace.)22 ! b(This)16 b(is)g(di\013eren)o(t)g(than)f Fg(M-)1777 853 ! y Ff(h)p 1789 827 V 1789 855 a Fe(DEL)p 1789 863 V 1860 ! 853 a Ff(i)315 910 y Fm(b)q(ecause)h(the)f(w)o(ord)g(b)q(oundaries)h ! (di\013er.)137 987 y(Here)21 b(is)h(ho)o(w)e(to)g Fc(y)o(ank)j ! Fm(the)e(text)f(bac)o(k)h(in)o(to)g(the)f(line.)39 b(Y)l(anking)21 ! b(means)g(to)f(cop)o(y)h(the)g(most-)75 1042 y(recen)o(tly-killed)d ! (text)d(from)f(the)i(kill)h(bu\013er.)75 1120 y Fg(C-y)168 ! b Fm(Y)l(ank)15 b(the)h(most)e(recen)o(tly)i(killed)h(text)e(bac)o(k)g ! (in)o(to)g(the)h(bu\013er)f(at)f(the)i(cursor.)75 1198 ! y Fg(M-y)168 b Fm(Rotate)16 b(the)h(kill-ring,)j(and)d(y)o(ank)g(the)h ! (new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f(this)h(if)f(the)h(prior) ! 315 1252 y(command)d(is)h Fg(C-y)f Fm(or)f Fg(M-y)p Fm(.)75 ! 1361 y Fb(1.2.4)30 b(Readline)20 b(Argumen)n(ts)137 1457 ! y Fm(Y)l(ou)15 b(can)g(pass)f(n)o(umeric)i(argumen)o(ts)e(to)g ! (Readline)h(commands.)20 b(Sometimes)15 b(the)g(argumen)o(t)e(acts)75 ! 1511 y(as)20 b(a)f(rep)q(eat)i(coun)o(t,)f(other)g(times)g(it)h(is)f ! (the)g Fd(sign)j Fm(of)c(the)h(argumen)o(t)g(that)f(is)i(signi\014can)o ! (t.)35 b(If)20 b(y)o(ou)75 1566 y(pass)d(a)f(negativ)o(e)h(argumen)o(t) ! f(to)g(a)g(command)h(whic)o(h)h(normally)f(acts)f(in)i(a)e(forw)o(ard)g ! (direction,)i(that)75 1621 y(command)g(will)h(act)e(in)i(a)e(bac)o(kw)o ! (ard)g(direction.)28 b(F)l(or)17 b(example,)i(to)e(kill)j(text)d(bac)o ! (k)g(to)g(the)h(start)e(of)75 1676 y(the)f(line,)i(y)o(ou)e(migh)o(t)g ! (t)o(yp)q(e)g(`)p Fl(M--)f(C-k)p Fm('.)137 1742 y(The)h(general)f(w)o ! (a)o(y)f(to)h(pass)g(n)o(umeric)h(argumen)o(ts)e(to)g(a)h(command)g(is) ! h(to)e(t)o(yp)q(e)h(meta)g(digits)h(b)q(efore)75 1797 ! y(the)h(command.)k(If)c(the)f(\014rst)g(`digit')h(t)o(yp)q(ed)f(is)h(a) ! g(min)o(us)g(sign)g(\(`)p Fl(-)p Fm('\),)d(then)j(the)f(sign)h(of)f ! (the)h(argumen)o(t)75 1852 y(will)21 b(b)q(e)f(negativ)o(e.)31 ! b(Once)20 b(y)o(ou)f(ha)o(v)o(e)g(t)o(yp)q(ed)g(one)g(meta)g(digit)h ! (to)e(get)h(the)g(argumen)o(t)f(started,)h(y)o(ou)75 ! 1906 y(can)c(t)o(yp)q(e)f(the)h(remainder)g(of)f(the)g(digits,)h(and)g ! (then)g(the)f(command.)20 b(F)l(or)13 b(example,)i(to)f(giv)o(e)h(the)f ! Fg(C-d)75 1961 y Fm(command)19 b(an)f(argumen)o(t)g(of)g(10,)h(y)o(ou)f ! (could)i(t)o(yp)q(e)f(`)p Fl(M-1)14 b(0)h(C-d)p Fm(',)k(whic)o(h)g ! (will)h(delete)g(the)f(next)g(ten)75 2016 y(c)o(haracters)14 ! b(on)i(the)f(input)h(line.)75 2125 y Fb(1.2.5)30 b(Searc)n(hing)21 ! b(for)f(Commands)h(in)f(the)h(History)137 2220 y Fm(Readline)d(pro)o ! (vides)e(commands)g(for)g(searc)o(hing)g(through)g(the)g(command)g ! (history)g(for)g(lines)i(con-)75 2275 y(taining)e(a)f(sp)q(eci\014ed)i ! (string.)j(There)c(are)e(t)o(w)o(o)g(searc)o(h)h(mo)q(des:)20 ! b Fc(incremen)o(tal)e Fm(and)e Fc(non-incremen)o(tal)p ! Fm(.)137 2341 y(Incremen)o(tal)e(searc)o(hes)f(b)q(egin)h(b)q(efore)f ! (the)g(user)g(has)g(\014nished)h(t)o(yping)f(the)g(searc)o(h)g(string.) ! 19 b(As)13 b(eac)o(h)75 2396 y(c)o(haracter)k(of)g(the)h(searc)o(h)g ! (string)f(is)h(t)o(yp)q(ed,)h(Readline)g(displa)o(ys)f(the)g(next)g(en) ! o(try)f(from)g(the)h(history)75 2451 y(matc)o(hing)12 ! b(the)g(string)g(t)o(yp)q(ed)g(so)g(far.)18 b(An)13 b(incremen)o(tal)g ! (searc)o(h)f(requires)g(only)h(as)f(man)o(y)f(c)o(haracters)g(as)75 ! 2506 y(needed)16 b(to)d(\014nd)j(the)e(desired)i(history)e(en)o(try)l ! (.)19 b(T)l(o)c(searc)o(h)f(bac)o(kw)o(ard)f(in)j(the)e(history)g(for)g ! (a)g(particular)75 2560 y(string,)g(t)o(yp)q(e)h Fg(C-r)p ! Fm(.)k(T)o(yping)d Fg(C-s)e Fm(searc)o(hes)h(forw)o(ard)e(through)h ! (the)h(history)l(.)20 b(The)15 b(c)o(haracters)f(presen)o(t)75 ! 2615 y(in)20 b(the)f(v)m(alue)h(of)f(the)g Fl(isearch-terminators)d ! Fm(v)m(ariable)k(are)f(used)h(to)e(terminate)h(an)g(incremen)o(tal)75 ! 2670 y(searc)o(h.)31 b(If)19 b(that)f(v)m(ariable)i(has)f(not)f(b)q ! (een)i(assigned)g(a)e(v)m(alue,)j(the)1289 2668 y Ff(h)p ! 1301 2642 70 2 v 1301 2670 a Fe(ESC)p 1301 2678 V 1368 ! 2668 a Ff(i)1402 2670 y Fm(and)e Fg(C-J)f Fm(c)o(haracters)g(will)p eop ! %%Page: 4 6 ! 4 5 bop 75 -58 a Fm(4)1322 b(GNU)15 b(Readline)h(Library)75 ! 149 y(terminate)21 b(an)g(incremen)o(tal)i(searc)o(h.)37 ! b Fg(C-g)21 b Fm(will)i(ab)q(ort)e(an)g(incremen)o(tal)h(searc)o(h)f ! (and)g(restore)g(the)75 204 y(original)16 b(line.)21 ! b(When)15 b(the)f(searc)o(h)g(is)h(terminated,)g(the)f(history)h(en)o ! (try)f(con)o(taining)h(the)g(searc)o(h)f(string)75 259 ! y(b)q(ecomes)i(the)f(curren)o(t)g(line.)137 325 y(T)l(o)g(\014nd)i ! (other)e(matc)o(hing)g(en)o(tries)h(in)h(the)e(history)h(list,)g(t)o ! (yp)q(e)f Fg(C-r)g Fm(or)g Fg(C-s)g Fm(as)h(appropriate.)k(This)75 ! 380 y(will)15 b(searc)o(h)e(bac)o(kw)o(ard)f(or)g(forw)o(ard)g(in)i ! (the)f(history)g(for)g(the)g(next)g(en)o(try)g(matc)o(hing)g(the)g ! (searc)o(h)g(string)75 434 y(t)o(yp)q(ed)19 b(so)g(far.)30 ! b(An)o(y)19 b(other)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e(a)h(Readline) ! h(command)e(will)j(terminate)e(the)75 489 y(searc)o(h)10 ! b(and)h(execute)g(that)f(command.)18 b(F)l(or)10 b(instance,)i(a)1063 ! 487 y Ff(h)p 1076 461 76 2 v 1076 489 a Fe(RET)p 1076 ! 497 V 1149 487 a Ff(i)1174 489 y Fm(will)g(terminate)f(the)g(searc)o(h) ! f(and)h(accept)75 544 y(the)k(line,)h(thereb)o(y)f(executing)g(the)g ! (command)g(from)f(the)g(history)h(list.)20 b(A)15 b(mo)o(v)o(emen)o(t)f ! (command)g(will)75 599 y(terminate)h(the)g(searc)o(h,)g(mak)o(e)g(the)g ! (last)g(line)i(found)f(the)f(curren)o(t)g(line,)h(and)g(b)q(egin)g ! (editing.)137 665 y(Readline)j(remem)o(b)q(ers)e(the)h(last)f(incremen) ! o(tal)i(searc)o(h)e(string.)27 b(If)17 b(t)o(w)o(o)f ! Fg(C-r)p Fm(s)h(are)g(t)o(yp)q(ed)h(without)75 719 y(an)o(y)g(in)o ! (terv)o(ening)h(c)o(haracters)f(de\014ning)h(a)f(new)h(searc)o(h)f ! (string,)g(an)o(y)g(remem)o(b)q(ered)h(searc)o(h)f(string)g(is)75 ! 774 y(used.)137 840 y(Non-incremen)o(tal)25 b(searc)o(hes)e(read)h(the) ! f(en)o(tire)h(searc)o(h)f(string)g(b)q(efore)h(starting)f(to)f(searc)o ! (h)i(for)75 895 y(matc)o(hing)d(history)h(lines.)39 b(The)22 ! b(searc)o(h)f(string)g(ma)o(y)g(b)q(e)h(t)o(yp)q(ed)f(b)o(y)h(the)f ! (user)h(or)e(b)q(e)i(part)f(of)g(the)75 950 y(con)o(ten)o(ts)15 ! b(of)f(the)i(curren)o(t)f(line.)75 1074 y Fk(1.3)33 b(Readline)23 ! b(Init)h(File)137 1169 y Fm(Although)f(the)g(Readline)h(library)f ! (comes)g(with)g(a)f(set)g(of)g(Emacs-lik)o(e)i(k)o(eybindings)g ! (installed)75 1224 y(b)o(y)d(default,)h(it)f(is)h(p)q(ossible)g(to)e ! (use)i(a)e(di\013eren)o(t)h(set)g(of)f(k)o(eybindings.)39 ! b(An)o(y)20 b(user)h(can)g(customize)75 1278 y(programs)15 ! b(that)h(use)g(Readline)i(b)o(y)e(putting)g(commands)g(in)i(an)e ! Fc(inputrc)k Fm(\014le,)d(con)o(v)o(en)o(tionally)g(in)g(his)75 ! 1333 y(home)g(directory)l(.)24 b(The)17 b(name)g(of)f(this)h(\014le)g ! (is)g(tak)o(en)g(from)e(the)i(v)m(alue)h(of)e(the)h(en)o(vironmen)o(t)g ! (v)m(ariable)75 1388 y Fl(INPUTRC)p Fm(.)i(If)c(that)g(v)m(ariable)h ! (is)g(unset,)f(the)g(default)h(is)g(`)p Fl(~/.inputrc)p ! Fm('.)137 1454 y(When)f(a)g(program)f(whic)o(h)h(uses)g(the)g(Readline) ! h(library)g(starts)d(up,)i(the)g(init)h(\014le)g(is)f(read,)g(and)g ! (the)75 1509 y(k)o(ey)g(bindings)i(are)e(set.)137 1574 ! y(In)f(addition,)h(the)e Fl(C-x)i(C-r)e Fm(command)g(re-reads)h(this)g ! (init)g(\014le,)h(th)o(us)e(incorp)q(orating)h(an)o(y)f(c)o(hanges)75 ! 1629 y(that)h(y)o(ou)h(migh)o(t)g(ha)o(v)o(e)g(made)g(to)g(it.)75 ! 1737 y Fb(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)137 ! 1832 y Fm(There)c(are)g(only)g(a)g(few)f(basic)i(constructs)e(allo)o(w) ! o(ed)i(in)f(the)g(Readline)h(init)g(\014le.)26 b(Blank)18 ! b(lines)g(are)75 1886 y(ignored.)36 b(Lines)22 b(b)q(eginning)h(with)d ! (a)h(`)p Fl(#)p Fm(')e(are)h(commen)o(ts.)35 b(Lines)22 ! b(b)q(eginning)h(with)e(a)f(`)p Fl($)p Fm(')f(indicate)75 ! 1941 y(conditional)c(constructs)f(\(see)g(Section)g(1.3.2)f ! ([Conditional)h(Init)h(Constructs],)e(page)h(9\).)k(Other)c(lines)75 ! 1996 y(denote)h(v)m(ariable)i(settings)e(and)h(k)o(ey)f(bindings.)75 ! 2073 y(V)l(ariable)h(Settings)315 2128 y(Y)l(ou)k(can)h(mo)q(dify)g ! (the)f(run-time)h(b)q(eha)o(vior)g(of)e(Readline)j(b)o(y)e(altering)h ! (the)f(v)m(alues)h(of)315 2182 y(v)m(ariables)d(in)g(Readline)g(using)f ! (the)g Fl(set)g Fm(command)f(within)i(the)f(init)h(\014le.)26 ! b(The)17 b(syn)o(tax)315 2237 y(is)f(simple:)435 2300 ! y Fl(set)23 b Fc(v)m(ariable)28 b(v)m(alue)315 2366 y ! Fm(Here,)14 b(for)f(example,)h(is)g(ho)o(w)f(to)g(c)o(hange)h(from)f ! (the)h(default)g(Emacs-lik)o(e)h(k)o(ey)e(binding)j(to)315 ! 2421 y(use)g Fl(vi)e Fm(line)j(editing)g(commands:)435 ! 2484 y Fl(set)23 b(editing-mode)g(vi)315 2549 y Fm(V)l(ariable)c(names) ! e(and)h(v)m(alues,)h(where)e(appropriate,)h(are)f(recognized)i(without) ! e(regard)315 2604 y(to)e(case.)315 2670 y(A)g(great)g(deal)g(of)g ! (run-time)h(b)q(eha)o(vior)g(is)g(c)o(hangeable)g(with)f(the)h(follo)o ! (wing)f(v)m(ariables.)p eop ! %%Page: 5 7 ! 5 6 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 ! b(5)315 149 y Fl(bell-style)555 204 y Fm(Con)o(trols)21 ! b(what)h(happ)q(ens)h(when)f(Readline)h(w)o(an)o(ts)e(to)g(ring)i(the)f ! (termi-)555 259 y(nal)d(b)q(ell.)32 b(If)19 b(set)f(to)g(`)p ! Fl(none)p Fm(',)g(Readline)i(nev)o(er)f(rings)g(the)f(b)q(ell.)32 ! b(If)19 b(set)g(to)555 314 y(`)p Fl(visible)p Fm(',)c(Readline)i(uses)g ! (a)f(visible)j(b)q(ell)g(if)e(one)f(is)h(a)o(v)m(ailable.)26 ! b(If)16 b(set)h(to)555 369 y(`)p Fl(audible)p Fm(')g(\(the)h ! (default\),)i(Readline)g(attempts)e(to)g(ring)h(the)g(terminal's)555 ! 423 y(b)q(ell.)315 504 y Fl(comment-begin)555 559 y Fm(The)c(string)f ! (to)g(insert)i(at)d(the)i(b)q(eginning)i(of)d(the)h(line)h(when)f(the)g ! Fl(insert-)555 614 y(comment)f Fm(command)h(is)h(executed.)21 ! b(The)15 b(default)h(v)m(alue)g(is)g Fl("#")p Fm(.)315 ! 694 y Fl(completion-ignore-case)555 749 y Fm(If)e(set)f(to)g(`)p ! Fl(on)p Fm(',)g(Readline)i(p)q(erforms)e(\014lename)i(matc)o(hing)f ! (and)g(completion)555 804 y(in)i(a)f(case-insensitiv)o(e)i(fashion.)k ! (The)15 b(default)h(v)m(alue)g(is)g(`)p Fl(off)p Fm('.)315 ! 884 y Fl(completion-query-items)555 939 y Fm(The)d(n)o(um)o(b)q(er)h ! (of)e(p)q(ossible)j(completions)g(that)d(determines)i(when)g(the)f ! (user)555 994 y(is)21 b(ask)o(ed)g(whether)g(he)h(w)o(an)o(ts)d(to)i ! (see)g(the)g(list)h(of)e(p)q(ossibilitie)q(s.)40 b(If)21 ! b(the)555 1049 y(n)o(um)o(b)q(er)14 b(of)f(p)q(ossible)i(completions)f ! (is)g(greater)f(than)g(this)h(v)m(alue,)h(Readline)555 ! 1104 y(will)g(ask)e(the)g(user)h(whether)f(or)g(not)g(he)g(wishes)h(to) ! f(view)h(them;)f(otherwise,)555 1158 y(they)f(are)g(simply)i(listed.)20 ! b(This)13 b(v)m(ariable)g(m)o(ust)f(b)q(e)h(set)f(to)f(an)h(in)o(teger) ! h(v)m(alue)555 1213 y(greater)h(than)h(or)g(equal)h(to)f(0.)k(The)d ! (default)f(limit)i(is)f Fl(100)p Fm(.)315 1294 y Fl(convert-meta)555 ! 1348 y Fm(If)11 b(set)g(to)g(`)p Fl(on)p Fm(',)f(Readline)i(will)h(con) ! o(v)o(ert)d(c)o(haracters)h(with)g(the)g(eigh)o(th)h(bit)f(set)555 ! 1403 y(to)f(an)h Fh(asci)q(i)e Fm(k)o(ey)i(sequence)g(b)o(y)g ! (stripping)h(the)e(eigh)o(th)h(bit)h(and)e(pre\014xing)i(an)555 ! 1456 y Ff(h)p 567 1430 70 2 v 567 1458 a Fe(ESC)p 567 ! 1466 V 634 1456 a Ff(i)666 1458 y Fm(c)o(haracter,)k(con)o(v)o(erting)h ! (them)g(to)f(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)555 ! 1513 y(The)e(default)h(v)m(alue)h(is)e(`)p Fl(on)p Fm('.)315 ! 1593 y Fl(disable-completion)555 1648 y Fm(If)k(set)f(to)f(`)p ! Fl(On)p Fm(',)h(Readline)i(will)g(inhibit)g(w)o(ord)e(completion.)30 ! b(Completion)555 1703 y(c)o(haracters)12 b(will)j(b)q(e)f(inserted)g ! (in)o(to)f(the)g(line)h(as)f(if)h(they)f(had)g(b)q(een)h(mapp)q(ed)555 ! 1758 y(to)h Fl(self-insert)p Fm(.)j(The)d(default)h(is)g(`)p ! Fl(off)p Fm('.)315 1838 y Fl(editing-mode)555 1893 y ! Fm(The)f Fl(editing-mode)d Fm(v)m(ariable)k(con)o(trols)e(whic)o(h)h ! (default)g(set)f(of)g(k)o(ey)g(bind-)555 1948 y(ings)f(is)g(used.)20 ! b(By)12 b(default,)i(Readline)f(starts)f(up)h(in)g(Emacs)f(editing)i ! (mo)q(de,)555 2003 y(where)h(the)f(k)o(eystrok)o(es)g(are)g(most)g ! (similar)i(to)d(Emacs.)20 b(This)15 b(v)m(ariable)h(can)555 ! 2058 y(b)q(e)g(set)f(to)f(either)i(`)p Fl(emacs)p Fm(')e(or)h(`)p ! Fl(vi)p Fm('.)315 2138 y Fl(enable-keypad)555 2193 y ! Fm(When)d(set)f(to)h(`)p Fl(on)p Fm(',)e(Readline)j(will)h(try)d(to)g ! (enable)i(the)f(application)h(k)o(eypad)555 2248 y(when)h(it)f(is)h ! (called.)21 b(Some)13 b(systems)g(need)h(this)g(to)f(enable)h(the)g ! (arro)o(w)e(k)o(eys.)555 2303 y(The)j(default)h(is)g(`)p ! Fl(off)p Fm('.)315 2383 y Fl(expand-tilde)555 2438 y ! Fm(If)e(set)g(to)f(`)p Fl(on)p Fm(',)f(tilde)k(expansion)e(is)h(p)q ! (erformed)f(when)g(Readline)h(attempts)555 2493 y(w)o(ord)g ! (completion.)21 b(The)15 b(default)h(is)f(`)p Fl(off)p ! Fm('.)555 2560 y(If)g(set)g(to)f(`)p Fl(on)p Fm(',)g(the)g(history)h ! (co)q(de)h(attempts)e(to)g(place)i(p)q(oin)o(t)f(at)f(the)h(same)555 ! 2615 y(lo)q(cation)20 b(on)f(eac)o(h)g(history)h(line)g(retriv)o(ed)g ! (with)f Fl(previous-history)e Fm(or)555 2670 y Fl(next-history)p ! Fm(.)p eop ! %%Page: 6 8 ! 6 7 bop 75 -58 a Fm(6)1322 b(GNU)15 b(Readline)h(Library)315 ! 149 y Fl(horizontal-scroll-mode)555 204 y Fm(This)j(v)m(ariable)g(can)f ! (b)q(e)g(set)g(to)f(either)i(`)p Fl(on)p Fm(')e(or)g(`)p ! Fl(off)p Fm('.)27 b(Setting)19 b(it)f(to)f(`)p Fl(on)p ! Fm(')555 259 y(means)c(that)f(the)i(text)e(of)h(the)g(lines)i(b)q(eing) ! f(edited)g(will)h(scroll)f(horizon)o(tally)555 314 y(on)i(a)f(single)i ! (screen)g(line)g(when)g(they)f(are)f(longer)h(than)g(the)g(width)g(of)g ! (the)555 369 y(screen,)e(instead)f(of)g(wrapping)g(on)o(to)f(a)h(new)g ! (screen)h(line.)21 b(By)13 b(default,)h(this)555 423 ! y(v)m(ariable)j(is)e(set)g(to)g(`)p Fl(off)p Fm('.)315 ! 506 y Fl(input-meta)555 560 y Fm(If)h(set)f(to)g(`)p ! Fl(on)p Fm(',)f(Readline)j(will)h(enable)e(eigh)o(t-bit)h(input)f(\(it) ! g(will)h(not)e(clear)555 615 y(the)20 b(eigh)o(th)g(bit)g(in)h(the)f(c) ! o(haracters)f(it)h(reads\),)g(regardless)g(of)g(what)f(the)555 ! 670 y(terminal)i(claims)g(it)f(can)g(supp)q(ort.)34 b(The)20 ! b(default)h(v)m(alue)g(is)g(`)p Fl(off)p Fm('.)33 b(The)555 ! 725 y(name)15 b Fl(meta-flag)f Fm(is)i(a)f(synon)o(ym)g(for)f(this)i(v) ! m(ariable.)315 807 y Fl(isearch-terminators)555 862 y ! Fm(The)26 b(string)g(of)f(c)o(haracters)g(that)g(should)i(terminate)f ! (an)g(incremen)o(tal)555 917 y(searc)o(h)12 b(without)h(subsequen)o ! (tly)g(executing)h(the)e(c)o(haracter)g(as)g(a)g(command)555 ! 971 y(\(see)22 b(Section)h(1.2.5)e([Searc)o(hing],)j(page)e(3\).)40 ! b(If)23 b(this)g(v)m(ariable)g(has)f(not)555 1026 y(b)q(een)17 ! b(giv)o(en)f(a)g(v)m(alue,)g(the)g(c)o(haracters)1247 ! 1024 y Ff(h)p 1259 998 70 2 v 1259 1026 a Fe(ESC)p 1259 ! 1034 V 1326 1024 a Ff(i)1357 1026 y Fm(and)g Fg(C-J)f ! Fm(will)i(terminate)f(an)555 1081 y(incremen)o(tal)g(searc)o(h.)315 ! 1163 y Fl(keymap)96 b Fm(Sets)19 b(Readline's)i(idea)f(of)f(the)g ! (curren)o(t)h(k)o(eymap)f(for)f(k)o(ey)i(binding)h(com-)555 ! 1218 y(mands.)41 b(Acceptable)23 b Fl(keymap)f Fm(names)g(are)f ! Fl(emacs)p Fm(,)i Fl(emacs-standard)p Fm(,)555 1273 y ! Fl(emacs-meta)p Fm(,)49 b Fl(emacs-ctlx)p Fm(,)g Fl(vi)p ! Fm(,)h Fl(vi-move)p Fm(,)f Fl(vi-command)p Fm(,)g(and)555 ! 1328 y Fl(vi-insert)p Fm(.)31 b Fl(vi)20 b Fm(is)g(equiv)m(alen)o(t)h ! (to)e Fl(vi-command)p Fm(;)g Fl(emacs)g Fm(is)h(equiv)m(alen)o(t)555 ! 1382 y(to)15 b Fl(emacs-standard)p Fm(.)20 b(The)d(default)f(v)m(alue)h ! (is)g Fl(emacs)p Fm(.)k(The)16 b(v)m(alue)h(of)f(the)555 ! 1437 y Fl(editing-mode)e Fm(v)m(ariable)i(also)f(a\013ects)g(the)g ! (default)h(k)o(eymap.)315 1519 y Fl(mark-directories)555 ! 1574 y Fm(If)j(set)g(to)g(`)p Fl(on)p Fm(',)f(completed)i(directory)g ! (names)f(ha)o(v)o(e)f(a)h(slash)h(app)q(ended.)555 1629 ! y(The)15 b(default)h(is)g(`)p Fl(on)p Fm('.)315 1711 ! y Fl(mark-modified-lines)555 1766 y Fm(This)j(v)m(ariable,)g(when)g ! (set)e(to)h(`)p Fl(on)p Fm(',)f(causes)h(Readline)h(to)e(displa)o(y)i ! (an)f(as-)555 1821 y(terisk)f(\(`)p Fl(*)p Fm('\))e(at)i(the)f(start)g ! (of)h(history)f(lines)j(whic)o(h)e(ha)o(v)o(e)g(b)q(een)h(mo)q ! (di\014ed.)555 1875 y(This)e(v)m(ariable)g(is)g(`)p Fl(off)p ! Fm(')e(b)o(y)h(default.)315 1958 y Fl(mark-symlinked-directories)555 ! 2012 y Fm(If)23 b(set)f(to)f(`)p Fl(on)p Fm(',)i(completed)g(names)g ! (whic)o(h)g(are)f(sym)o(b)q(olic)i(links)f(to)f(di-)555 ! 2067 y(rectories)h(ha)o(v)o(e)g(a)g(slash)g(app)q(ended)i(\(sub)s(ject) ! e(to)f(the)i(v)m(alue)g(of)f Fl(mark-)555 2122 y(directories)p ! Fm(\).)18 b(The)d(default)h(is)g(`)p Fl(off)p Fm('.)315 ! 2204 y Fl(match-hidden-files)555 2259 y Fm(This)c(v)m(ariable,)h(when)e ! (set)g(to)g(`)p Fl(on)p Fm(',)f(causes)h(Readline)i(to)d(matc)o(h)h ! (\014les)h(whose)555 2314 y(names)22 b(b)q(egin)h(with)g(a)e(`)p ! Fl(.)p Fm(')h(\(hidden)h(\014les\))g(when)f(p)q(erforming)h(\014lename) ! 555 2369 y(completion,)g(unless)f(the)f(leading)h(`)p ! Fl(.)p Fm(')e(is)h(supplied)i(b)o(y)e(the)f(user)h(in)h(the)555 ! 2423 y(\014lename)16 b(to)f(b)q(e)h(completed.)21 b(This)15 ! b(v)m(ariable)i(is)f(`)p Fl(on)p Fm(')e(b)o(y)h(default.)315 ! 2506 y Fl(output-meta)555 2560 y Fm(If)j(set)f(to)g(`)p ! Fl(on)p Fm(',)g(Readline)i(will)h(displa)o(y)f(c)o(haracters)d(with)j ! (the)e(eigh)o(th)h(bit)555 2615 y(set)g(directly)i(rather)d(than)h(as)g ! (a)g(meta-pre\014xed)h(escap)q(e)g(sequence.)30 b(The)555 ! 2670 y(default)16 b(is)f(`)p Fl(off)p Fm('.)p eop ! %%Page: 7 9 ! 7 8 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 ! b(7)315 149 y Fl(page-completions)555 204 y Fm(If)17 ! b(set)g(to)f(`)p Fl(on)p Fm(',)g(Readline)i(uses)g(an)e(in)o(ternal)i ! Fl(more)p Fm(-lik)o(e)g(pager)f(to)f(displa)o(y)555 259 ! y(a)g(screenful)h(of)f(p)q(ossible)i(completions)f(at)f(a)g(time.)23 ! b(This)17 b(v)m(ariable)g(is)g(`)p Fl(on)p Fm(')555 314 ! y(b)o(y)e(default.)315 395 y Fl(print-completions-horizont)o(ally)555 ! 450 y Fm(If)d(set)g(to)f(`)p Fl(on)p Fm(',)h(Readline)h(will)g(displa)o ! (y)h(completions)f(with)f(matc)o(hes)f(sorted)555 505 ! y(horizon)o(tally)23 b(in)f(alphab)q(etical)i(order,)f(rather)e(than)g ! (do)o(wn)h(the)g(screen.)555 560 y(The)15 b(default)h(is)g(`)p ! Fl(off)p Fm('.)315 641 y Fl(show-all-if-ambiguous)555 ! 696 y Fm(This)g(alters)e(the)i(default)f(b)q(eha)o(vior)h(of)e(the)h ! (completion)h(functions.)21 b(If)15 b(set)555 751 y(to)e(`)p ! Fl(on)p Fm(',)g(w)o(ords)g(whic)o(h)h(ha)o(v)o(e)g(more)f(than)g(one)h ! (p)q(ossible)i(completion)f(cause)555 806 y(the)20 b(matc)o(hes)f(to)f ! (b)q(e)j(listed)f(immediately)h(instead)f(of)f(ringing)i(the)e(b)q ! (ell.)555 861 y(The)c(default)h(v)m(alue)h(is)e(`)p Fl(off)p ! Fm('.)315 942 y Fl(visible-stats)555 997 y Fm(If)h(set)g(to)f(`)p ! Fl(on)p Fm(',)g(a)h(c)o(haracter)f(denoting)h(a)g(\014le's)h(t)o(yp)q ! (e)f(is)g(app)q(ended)i(to)d(the)555 1052 y(\014lename)h(when)g ! (listing)h(p)q(ossible)g(completions.)j(The)c(default)g(is)f(`)p ! Fl(off)p Fm('.)75 1133 y(Key)h(Bindings)315 1188 y(The)21 ! b(syn)o(tax)f(for)h(con)o(trolling)h(k)o(ey)f(bindings)h(in)g(the)f ! (init)h(\014le)g(is)g(simple.)39 b(First)20 b(y)o(ou)315 ! 1243 y(need)15 b(to)e(\014nd)h(the)g(name)g(of)g(the)f(command)h(that)f ! (y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19 b(The)14 b(follo)o(wing)315 ! 1298 y(sections)k(con)o(tain)h(tables)f(of)f(the)h(command)g(name,)g ! (the)g(default)h(k)o(eybinding,)h(if)e(an)o(y)l(,)315 ! 1353 y(and)d(a)g(short)g(description)i(of)d(what)h(the)g(command)g(do)q ! (es.)315 1421 y(Once)k(y)o(ou)f(kno)o(w)f(the)h(name)g(of)g(the)g ! (command,)g(simply)h(place)g(on)f(a)f(line)j(in)f(the)f(init)315 ! 1476 y(\014le)g(the)f(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f(wish)i(to)e ! (bind)i(the)f(command)g(to,)f(a)g(colon,)i(and)f(then)315 ! 1530 y(the)f(name)g(of)g(the)g(command.)22 b(The)16 b(name)g(of)g(the)g ! (k)o(ey)f(can)i(b)q(e)f(expressed)h(in)g(di\013eren)o(t)315 ! 1585 y(w)o(a)o(ys,)d(dep)q(ending)j(on)e(what)g(y)o(ou)g(\014nd)h(most) ! e(comfortable.)315 1653 y(In)19 b(addition)g(to)e(command)h(names,)g ! (readline)i(allo)o(ws)e(k)o(eys)g(to)f(b)q(e)i(b)q(ound)g(to)e(a)h ! (string)315 1708 y(that)c(is)i(inserted)g(when)g(the)f(k)o(ey)g(is)h ! (pressed)g(\(a)e Fc(macro)r Fm(\).)315 1790 y Fc(k)o(eyname)s ! Fm(:)19 b Fc(function-name)g Fm(or)c Fc(macro)555 1845 ! y(k)o(eyname)i Fm(is)e(the)f(name)h(of)f(a)g(k)o(ey)g(sp)q(elled)j(out) ! d(in)h(English.)21 b(F)l(or)13 b(example:)675 1910 y ! Fl(Control-u:)22 b(universal-argument)675 1962 y(Meta-Rubout:)g ! (backward-kill-word)675 2014 y(Control-o:)g(">)i(output")555 ! 2082 y Fm(In)c(the)f(ab)q(o)o(v)o(e)g(example,)i Fg(C-u)e ! Fm(is)h(b)q(ound)g(to)f(the)g(function)h Fl(universal-)555 ! 2137 y(argument)p Fm(,)e Fg(M-DEL)h Fm(is)g(b)q(ound)h(to)e(the)h ! (function)h Fl(backward-kill-word)p Fm(,)555 2191 y(and)g ! Fg(C-o)f Fm(is)h(b)q(ound)g(to)f(run)h(the)f(macro)g(expressed)h(on)g ! (the)f(righ)o(t)h(hand)555 2246 y(side)c(\(that)e(is,)i(to)e(insert)i ! (the)f(text)g(`)p Fl(>)f(output)p Fm(')g(in)o(to)i(the)f(line\).)555 ! 2314 y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)i(c)o(haracter)e ! (names)g(are)g(recognized)i(while)g(pro-)555 2369 y(cessing)13 ! b(this)f(k)o(ey)g(binding)h(syn)o(tax:)18 b Fc(DEL)p ! Fm(,)11 b Fc(ESC)p Fm(,)h Fc(ESCAPE)p Fm(,)f Fc(LFD)p ! Fm(,)g Fc(NEW-)555 2424 y(LINE)p Fm(,)16 b Fc(RET)p Fm(,)e ! Fc(RETURN)p Fm(,)f Fc(R)o(UBOUT)p Fm(,)i Fc(SP)l(A)o(CE)p ! Fm(,)g Fc(SPC)p Fm(,)f(and)i Fc(T)l(AB)p Fm(.)315 2506 ! y Fl(")p Fc(k)o(eyseq)q Fl(")p Fm(:)k Fc(function-name)e ! Fm(or)d Fc(macro)555 2560 y(k)o(eyseq)i Fm(di\013ers)e(from)g ! Fc(k)o(eyname)j Fm(ab)q(o)o(v)o(e)d(in)i(that)d(strings)i(denoting)g ! (an)f(en-)555 2615 y(tire)i(k)o(ey)g(sequence)h(can)f(b)q(e)g(sp)q ! (eci\014ed,)i(b)o(y)e(placing)h(the)f(k)o(ey)g(sequence)h(in)555 ! 2670 y(double)e(quotes.)j(Some)c Fh(gnu)g Fm(Emacs)f(st)o(yle)h(k)o(ey) ! g(escap)q(es)g(can)g(b)q(e)g(used,)g(as)p eop ! %%Page: 8 10 ! 8 9 bop 75 -58 a Fm(8)1322 b(GNU)15 b(Readline)h(Library)555 ! 149 y(in)i(the)f(follo)o(wing)g(example,)h(but)f(the)g(sp)q(ecial)i(c)o ! (haracter)d(names)h(are)f(not)555 204 y(recognized.)675 ! 270 y Fl("\\C-u":)23 b(universal-argument)675 322 y("\\C-x\\C-r":)f ! (re-read-init-file)675 373 y("\\e[11~":)h("Function)f(Key)i(1")555 ! 442 y Fm(In)33 b(the)f(ab)q(o)o(v)o(e)g(example,)37 b ! Fg(C-u)32 b Fm(is)h(again)f(b)q(ound)h(to)f(the)g(function)555 ! 497 y Fl(universal-argument)19 b Fm(\(just)j(as)f(it)h(w)o(as)f(in)i ! (the)f(\014rst)f(example\),)j(`)p Fg(C-x)555 551 y(C-r)p ! Fm(')c(is)h(b)q(ound)g(to)f(the)h(function)g Fl(re-read-init-file)p ! Fm(,)f(and)g(`)1731 549 y Ff(h)p 1743 523 70 2 v 1743 ! 551 a Fe(ESC)p 1743 559 V 1810 549 a Ff(i)15 b(h)p 1852 ! 523 10 2 v 1852 551 a Fe([)p 1852 560 V 1860 549 a Ff(i)555 ! 604 y(h)p 567 578 18 2 v 567 606 a Fe(1)p 567 614 V 583 ! 604 a Ff(i)g(h)p 625 578 V 625 606 a Fe(1)p 625 614 V ! 640 604 a Ff(i)g(h)p 683 578 24 2 v 683 606 a Fl(~)p ! 683 614 V 704 604 a Ff(i)719 606 y Fm(')g(is)h(b)q(ound)g(to)e(insert)i ! (the)f(text)g(`)p Fl(Function)f(Key)g(1)p Fm('.)315 688 ! y(The)h(follo)o(wing)h Fh(gnu)e Fm(Emacs)h(st)o(yle)g(escap)q(e)h ! (sequences)g(are)e(a)o(v)m(ailable)j(when)e(sp)q(ecifying)315 ! 743 y(k)o(ey)g(sequences:)315 825 y Fg(\\C-)168 b Fm(con)o(trol)15 ! b(pre\014x)315 907 y Fg(\\M-)168 b Fm(meta)15 b(pre\014x)315 ! 989 y Fg(\\e)192 b Fm(an)15 b(escap)q(e)h(c)o(haracter)315 ! 1071 y Fg(\\\\)192 b Fm(bac)o(kslash)315 1152 y Fg(\\)p ! Fl(")555 1150 y Ff(h)p 567 1124 V 567 1152 a Fl(")p 567 ! 1160 V 589 1150 a Ff(i)604 1152 y Fm(,)15 b(a)f(double)j(quotation)e ! (mark)315 1234 y Fg(\\')555 1232 y Ff(h)p 567 1206 10 ! 2 v 567 1234 a Fe(')p 567 1242 V 575 1232 a Ff(i)590 ! 1234 y Fm(,)g(a)f(single)j(quote)e(or)g(ap)q(ostrophe)315 ! 1316 y(In)f(addition)h(to)f(the)f Fh(gnu)h Fm(Emacs)g(st)o(yle)f(escap) ! q(e)i(sequences,)g(a)e(second)i(set)e(of)h(bac)o(kslash)315 ! 1371 y(escap)q(es)i(is)g(a)o(v)m(ailable:)315 1453 y ! Fl(\\a)192 b Fm(alert)15 b(\(b)q(ell\))315 1535 y Fl(\\b)192 ! b Fm(bac)o(kspace)315 1617 y Fl(\\d)g Fm(delete)315 1699 ! y Fl(\\f)g Fm(form)14 b(feed)315 1781 y Fl(\\n)192 b ! Fm(newline)315 1862 y Fl(\\r)g Fm(carriage)15 b(return)315 ! 1944 y Fl(\\t)192 b Fm(horizon)o(tal)16 b(tab)315 2026 ! y Fl(\\v)192 b Fm(v)o(ertical)16 b(tab)315 2108 y Fl(\\)p ! Fc(nnn)141 b Fm(the)17 b(eigh)o(t-bit)h(c)o(haracter)f(whose)g(v)m ! (alue)i(is)e(the)h(o)q(ctal)f(v)m(alue)i Fc(nnn)f Fm(\(one)f(to)555 ! 2163 y(three)e(digits\))315 2245 y Fl(\\x)p Fc(HH)124 ! b Fm(the)20 b(eigh)o(t-bit)g(c)o(haracter)f(whose)h(v)m(alue)h(is)f ! (the)g(hexadecimal)h(v)m(alue)g Fc(HH)555 2300 y Fm(\(one)15 ! b(or)g(t)o(w)o(o)f(hex)h(digits\))315 2382 y(When)k(en)o(tering)g(the)g ! (text)f(of)g(a)h(macro,)f(single)i(or)e(double)i(quotes)f(m)o(ust)f(b)q ! (e)h(used)h(to)315 2436 y(indicate)12 b(a)f(macro)f(de\014nition.)20 ! b(Unquoted)11 b(text)f(is)i(assumed)e(to)h(b)q(e)g(a)f(function)i ! (name.)18 b(In)315 2491 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o ! (kslash)g(escap)q(es)g(describ)q(ed)i(ab)q(o)o(v)o(e)d(are)g(expanded.) ! 20 b(Bac)o(kslash)315 2546 y(will)i(quote)d(an)o(y)h(other)g(c)o ! (haracter)f(in)i(the)f(macro)f(text,)h(including)j(`)p ! Fl(")p Fm(')c(and)h(`)p Fl(')p Fm('.)34 b(F)l(or)315 ! 2601 y(example,)14 b(the)f(follo)o(wing)g(binding)i(will)g(mak)o(e)d(`) ! p Fg(C-x)i Fl(\\)p Fm(')f(insert)g(a)g(single)h(`)p Fl(\\)p ! Fm(')e(in)o(to)h(the)g(line:)435 2666 y Fl("\\C-x\\\\":)23 ! b("\\\\")p eop ! %%Page: 9 11 ! 9 10 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077 ! b(9)75 149 y Fb(1.3.2)30 b(Conditional)20 b(Init)g(Constructs)137 ! 246 y Fm(Readline)f(implemen)o(ts)g(a)f(facilit)o(y)g(similar)h(in)g ! (spirit)f(to)f(the)h(conditional)h(compilation)g(features)75 ! 301 y(of)e(the)g(C)g(prepro)q(cessor)g(whic)o(h)i(allo)o(ws)e(k)o(ey)g ! (bindings)i(and)f(v)m(ariable)g(settings)f(to)g(b)q(e)h(p)q(erformed)f ! (as)75 355 y(the)e(result)h(of)f(tests.)k(There)c(are)g(four)g(parser)g ! (directiv)o(es)h(used.)75 435 y Fl($if)168 b Fm(The)16 ! b Fl($if)f Fm(construct)g(allo)o(ws)h(bindings)i(to)d(b)q(e)h(made)g ! (based)g(on)f(the)h(editing)h(mo)q(de,)f(the)315 490 ! y(terminal)k(b)q(eing)g(used,)g(or)f(the)g(application)i(using)e ! (Readline.)33 b(The)19 b(text)g(of)f(the)i(test)315 545 ! y(extends)c(to)e(the)h(end)h(of)f(the)g(line;)i(no)e(c)o(haracters)f ! (are)h(required)i(to)d(isolate)i(it.)315 624 y Fl(mode)144 ! b Fm(The)11 b Fl(mode=)e Fm(form)h(of)g(the)h Fl($if)f ! Fm(directiv)o(e)h(is)g(used)g(to)f(test)g(whether)h(Readline)555 ! 679 y(is)k(in)h Fl(emacs)e Fm(or)g Fl(vi)g Fm(mo)q(de.)20 ! b(This)c(ma)o(y)e(b)q(e)h(used)g(in)h(conjunction)g(with)f(the)555 ! 734 y(`)p Fl(set)f(keymap)p Fm(')f(command,)g(for)h(instance,)g(to)f ! (set)h(bindings)h(in)g(the)f Fl(emacs-)555 789 y(standard)d ! Fm(and)i Fl(emacs-ctlx)e Fm(k)o(eymaps)h(only)i(if)f(Readline)g(is)g ! (starting)f(out)555 844 y(in)k Fl(emacs)f Fm(mo)q(de.)315 ! 923 y Fl(term)144 b Fm(The)14 b Fl(term=)e Fm(form)h(ma)o(y)g(b)q(e)h ! (used)g(to)f(include)j(terminal-sp)q(eci\014c)g(k)o(ey)d(bind-)555 ! 978 y(ings,)19 b(p)q(erhaps)g(to)e(bind)i(the)g(k)o(ey)e(sequences)j ! (output)e(b)o(y)g(the)g(terminal's)555 1033 y(function)13 ! b(k)o(eys.)18 b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)g(side)g(of)g ! (the)g(`)p Fl(=)p Fm(')f(is)h(tested)g(against)555 1088 ! y(b)q(oth)j(the)g(full)i(name)e(of)f(the)h(terminal)h(and)f(the)g(p)q ! (ortion)h(of)e(the)h(terminal)555 1142 y(name)i(b)q(efore)g(the)g ! (\014rst)f(`)p Fl(-)p Fm('.)24 b(This)17 b(allo)o(ws)g ! Fl(sun)f Fm(to)g(matc)o(h)h(b)q(oth)f Fl(sun)h Fm(and)555 ! 1197 y Fl(sun-cmd)p Fm(,)d(for)g(instance.)315 1277 y ! Fl(application)555 1332 y Fm(The)d Fc(application)i Fm(construct)e(is)g ! (used)h(to)e(include)j(application-sp)q(eci)q(\014c)h(set-)555 ! 1386 y(tings.)19 b(Eac)o(h)12 b(program)f(using)j(the)e(Readline)i ! (library)f(sets)f(the)g Fc(application)555 1441 y(name)p ! Fm(,)g(and)g(y)o(ou)f(can)h(test)f(for)g(a)g(particular)h(v)m(alue.)20 ! b(This)12 b(could)h(b)q(e)f(used)h(to)555 1496 y(bind)18 ! b(k)o(ey)e(sequences)i(to)d(functions)j(useful)f(for)f(a)g(sp)q ! (eci\014c)i(program.)23 b(F)l(or)555 1551 y(instance,)17 ! b(the)g(follo)o(wing)g(command)g(adds)f(a)g(k)o(ey)h(sequence)g(that)f ! (quotes)555 1606 y(the)f(curren)o(t)g(or)g(previous)h(w)o(ord)e(in)j ! (Bash:)675 1670 y Fl($if)23 b(Bash)675 1722 y(#)h(Quote)f(the)g ! (current)g(or)h(previous)f(word)675 1774 y("\\C-xq":)g ! ("\\eb\\"\\ef\\"")675 1826 y($endif)75 1905 y($endif)96 ! b Fm(This)16 b(command,)e(as)h(seen)h(in)g(the)f(previous)h(example,)g ! (terminates)f(an)g Fl($if)f Fm(command.)75 1985 y Fl($else)120 ! b Fm(Commands)15 b(in)h(this)f(branc)o(h)h(of)e(the)i ! Fl($if)e Fm(directiv)o(e)j(are)e(executed)h(if)g(the)f(test)g(fails.)75 ! 2065 y Fl($include)48 b Fm(This)22 b(directiv)o(e)h(tak)o(es)e(a)h ! (single)h(\014lename)g(as)e(an)h(argumen)o(t)f(and)h(reads)f(commands) ! 315 2120 y(and)e(bindings)j(from)c(that)h(\014le.)33 ! b(F)l(or)19 b(example,)i(the)e(follo)o(wing)h(directiv)o(e)h(reads)e ! (from)315 2174 y(`)p Fl(/etc/inputrc)p Fm(':)435 2239 ! y Fl($include)k(/etc/inputrc)75 2351 y Fb(1.3.3)30 b(Sample)20 ! b(Init)h(File)137 2447 y Fm(Here)16 b(is)g(an)f(example)h(of)f(an)g ! Fc(inputrc)k Fm(\014le.)i(This)16 b(illustrates)g(k)o(ey)f(binding,)i ! (v)m(ariable)f(assignmen)o(t,)75 2502 y(and)f(conditional)i(syn)o(tax.) ! p eop ! %%Page: 10 12 ! 10 11 bop 75 -58 a Fm(10)1299 b(GNU)15 b(Readline)h(Library)195 ! 201 y Fl(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i(line)f ! (input)g(editing)g(for)195 253 y(#)h(programs)e(that)i(use)f(the)h(GNU) ! f(Readline)g(library.)47 b(Existing)195 305 y(#)24 b(programs)e ! (include)h(FTP,)h(Bash,)f(and)g(GDB.)195 357 y(#)195 ! 409 y(#)h(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h(C-x)f ! (C-r.)195 461 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h(comments.) ! 195 513 y(#)195 565 y(#)g(First,)f(include)g(any)g(systemwide)g ! (bindings)f(and)i(variable)195 616 y(#)g(assignments)e(from)h ! (/etc/Inputrc)195 668 y($include)g(/etc/Inputrc)195 772 ! y(#)195 824 y(#)h(Set)f(various)g(bindings)g(for)g(emacs)g(mode.)195 ! 928 y(set)g(editing-mode)g(emacs)195 1032 y($if)g(mode=emacs)195 ! 1135 y(Meta-Control-h:)46 b(backward-kill-word)21 b(Text)i(after)h(the) ! f(function)g(name)g(is)h(ignored)p 1986 1145 21 38 v ! 195 1239 a(#)195 1291 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)195 ! 1343 y(#)195 1395 y(#"\\M-OD":)190 b(backward-char)195 ! 1447 y(#"\\M-OC":)g(forward-char)195 1499 y(#"\\M-OA":)g ! (previous-history)195 1550 y(#"\\M-OB":)g(next-history)195 ! 1602 y(#)195 1654 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)195 ! 1706 y(#)195 1758 y("\\M-[D":)190 b(backward-char)195 ! 1810 y("\\M-[C":)g(forward-char)195 1862 y("\\M-[A":)g ! (previous-history)195 1914 y("\\M-[B":)g(next-history)195 ! 1966 y(#)195 2017 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode) ! 195 2069 y(#)195 2121 y(#"\\M-\\C-OD":)165 b(backward-char)195 ! 2173 y(#"\\M-\\C-OC":)g(forward-char)195 2225 y(#"\\M-\\C-OA":)g ! (previous-history)195 2277 y(#"\\M-\\C-OB":)g(next-history)195 ! 2329 y(#)195 2381 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode) ! 195 2433 y(#)195 2484 y(#"\\M-\\C-[D":)165 b(backward-char)195 ! 2536 y(#"\\M-\\C-[C":)g(forward-char)195 2588 y(#"\\M-\\C-[A":)g ! (previous-history)195 2640 y(#"\\M-\\C-[B":)g(next-history)p eop ! %%Page: 11 13 ! 11 12 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055 ! b(11)195 201 y Fl(C-q:)23 b(quoted-insert)195 305 y($endif)195 ! 409 y(#)h(An)f(old-style)g(binding.)47 b(This)23 b(happens)g(to)g(be)h ! (the)f(default.)195 461 y(TAB:)g(complete)195 565 y(#)h(Macros)f(that)g ! (are)h(convenient)e(for)h(shell)h(interaction)195 616 ! y($if)f(Bash)195 668 y(#)h(edit)f(the)g(path)195 720 ! y("\\C-xp":)g("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")195 ! 772 y(#)h(prepare)f(to)g(type)h(a)f(quoted)g(word)h(--)195 ! 824 y(#)g(insert)f(open)g(and)h(close)f(double)g(quotes)195 ! 876 y(#)h(and)f(move)g(to)h(just)f(after)h(the)f(open)g(quote)195 ! 928 y("\\C-x\\"":)g("\\"\\"\\C-b")195 980 y(#)h(insert)f(a)g(backslash) ! g(\(testing)g(backslash)g(escapes)195 1032 y(#)h(in)f(sequences)g(and)g ! (macros\))195 1083 y("\\C-x\\\\":)g("\\\\")195 1135 y(#)h(Quote)f(the)g ! (current)g(or)h(previous)f(word)195 1187 y("\\C-xq":)g ! ("\\eb\\"\\ef\\"")195 1239 y(#)h(Add)f(a)h(binding)f(to)g(refresh)g ! (the)h(line,)f(which)g(is)h(unbound)195 1291 y("\\C-xr":)f ! (redraw-current-line)195 1343 y(#)h(Edit)f(variable)g(on)g(current)g ! (line.)195 1395 y("\\M-\\C-v":)f("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=) ! o(")195 1447 y($endif)195 1550 y(#)i(use)f(a)h(visible)f(bell)g(if)h ! (one)f(is)h(available)195 1602 y(set)f(bell-style)g(visible)195 ! 1706 y(#)h(don't)f(strip)g(characters)g(to)g(7)h(bits)f(when)h(reading) ! 195 1758 y(set)f(input-meta)g(on)195 1862 y(#)h(allow)f(iso-latin1)f ! (characters)h(to)g(be)h(inserted)f(rather)195 1914 y(#)h(than)f ! (converted)g(to)g(prefix-meta)g(sequences)195 1966 y(set)g ! (convert-meta)g(off)195 2069 y(#)h(display)f(characters)f(with)h(the)h ! (eighth)f(bit)g(set)h(directly)195 2121 y(#)g(rather)f(than)g(as)h ! (meta-prefixed)e(characters)195 2173 y(set)h(output-meta)g(on)195 ! 2277 y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g ! (completions)f(for)195 2329 y(#)i(a)f(word,)h(ask)f(the)h(user)f(if)g ! (he)h(wants)f(to)h(see)f(all)h(of)f(them)195 2381 y(set)g ! (completion-query-items)e(150)195 2484 y(#)j(For)f(FTP)195 ! 2536 y($if)g(Ftp)195 2588 y("\\C-xg":)g("get)g(\\M-?")195 ! 2640 y("\\C-xt":)g("put)g(\\M-?")p eop ! %%Page: 12 14 ! 12 13 bop 75 -58 a Fm(12)1299 b(GNU)15 b(Readline)h(Library)195 ! 149 y Fl("\\M-.":)23 b(yank-last-arg)195 201 y($endif)75 ! 329 y Fk(1.4)33 b(Bindable)24 b(Readline)f(Commands)137 ! 425 y Fm(This)17 b(section)f(describ)q(es)h(Readline)g(commands)f(that) ! e(ma)o(y)h(b)q(e)i(b)q(ound)f(to)f(k)o(ey)h(sequences.)22 ! b(Com-)75 480 y(mand)15 b(names)g(without)h(an)f(accompan)o(ying)g(k)o ! (ey)g(sequence)i(are)e(un)o(b)q(ound)h(b)o(y)f(default.)137 ! 547 y(In)f(the)f(follo)o(wing)h(descriptions,)h Fc(p)q(oin)o(t)f ! Fm(refers)f(to)g(the)g(curren)o(t)g(cursor)f(p)q(osition,)j(and)e ! Fc(mark)i Fm(refers)75 601 y(to)k(a)g(cursor)g(p)q(osition)h(sa)o(v)o ! (ed)f(b)o(y)h(the)f Fl(set-mark)g Fm(command.)32 b(The)20 ! b(text)f(b)q(et)o(w)o(een)g(the)h(p)q(oin)o(t)g(and)75 ! 656 y(mark)15 b(is)g(referred)h(to)e(as)h(the)g Fc(region)p ! Fm(.)75 767 y Fb(1.4.1)30 b(Commands)21 b(F)-5 b(or)19 ! b(Mo)n(ving)75 888 y Fl(beginning-of-line)13 b(\(C-a\))315 ! 942 y Fm(Mo)o(v)o(e)h(to)h(the)g(start)f(of)h(the)g(curren)o(t)g(line.) ! 75 1034 y Fl(end-of-line)f(\(C-e\))315 1088 y Fm(Mo)o(v)o(e)g(to)h(the) ! g(end)h(of)f(the)g(line.)75 1179 y Fl(forward-char)f(\(C-f\))315 ! 1234 y Fm(Mo)o(v)o(e)g(forw)o(ard)g(a)h(c)o(haracter.)75 ! 1325 y Fl(backward-char)e(\(C-b\))315 1380 y Fm(Mo)o(v)o(e)h(bac)o(k)h ! (a)g(c)o(haracter.)75 1471 y Fl(forward-word)f(\(M-f\))315 ! 1526 y Fm(Mo)o(v)o(e)g(forw)o(ard)g(to)g(the)i(end)g(of)e(the)h(next)h ! (w)o(ord.)j(W)l(ords)c(are)f(comp)q(osed)i(of)f(letters)g(and)315 ! 1581 y(digits.)75 1672 y Fl(backward-word)e(\(M-b\))315 ! 1727 y Fm(Mo)o(v)o(e)j(bac)o(k)g(to)h(the)f(start)g(of)g(the)h(curren)o ! (t)g(or)f(previous)i(w)o(ord.)24 b(W)l(ords)16 b(are)h(comp)q(osed)315 ! 1782 y(of)e(letters)g(and)g(digits.)75 1873 y Fl(clear-screen)f ! (\(C-l\))315 1928 y Fm(Clear)f(the)h(screen)g(and)f(redra)o(w)g(the)g ! (curren)o(t)g(line,)i(lea)o(ving)g(the)e(curren)o(t)g(line)i(at)e(the)g ! (top)315 1982 y(of)i(the)g(screen.)75 2074 y Fl(redraw-current-line)e ! (\(\))315 2128 y Fm(Refresh)i(the)g(curren)o(t)g(line.)22 ! b(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75 2239 ! y Fb(1.4.2)30 b(Commands)21 b(F)-5 b(or)19 b(Manipulating)i(The)f ! (History)75 2360 y Fl(accept-line)14 b(\(Newline)g(or)h(Return\))315 ! 2414 y Fm(Accept)j(the)g(line)h(regardless)f(of)f(where)h(the)g(cursor) ! f(is.)27 b(If)18 b(this)g(line)h(is)g(non-empt)o(y)l(,)f(it)315 ! 2469 y(ma)o(y)d(b)q(e)i(added)f(to)g(the)g(history)g(list)g(for)g ! (future)g(recall)h(with)f Fl(add_history\(\))p Fm(.)k(If)d(this)315 ! 2524 y(line)g(is)f(a)e(mo)q(di\014ed)j(history)e(line,)i(the)e(history) ! g(line)i(is)f(restored)e(to)h(its)g(original)i(state.)75 ! 2615 y Fl(previous-history)c(\(C-p\))315 2670 y Fm(Mo)o(v)o(e)h(`bac)o ! (k')h(through)f(the)i(history)f(list,)g(fetc)o(hing)h(the)f(previous)h ! (command.)p eop ! %%Page: 13 15 ! 13 14 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055 ! b(13)75 149 y Fl(next-history)14 b(\(C-n\))315 204 y ! Fm(Mo)o(v)o(e)g(`forw)o(ard')f(through)i(the)h(history)f(list,)g(fetc)o ! (hing)h(the)f(next)h(command.)75 307 y Fl(beginning-of-history)c ! (\(M-<\))315 362 y Fm(Mo)o(v)o(e)i(to)h(the)g(\014rst)g(line)i(in)f ! (the)f(history)l(.)75 465 y Fl(end-of-history)e(\(M->\))315 ! 520 y Fm(Mo)o(v)o(e)h(to)h(the)g(end)h(of)f(the)g(input)h(history)l(,)f ! (i.e.,)g(the)g(line)i(curren)o(tly)f(b)q(eing)g(en)o(tered.)75 ! 624 y Fl(reverse-search-history)c(\(C-r\))315 678 y Fm(Searc)o(h)k(bac) ! o(kw)o(ard)e(starting)h(at)g(the)h(curren)o(t)f(line)j(and)d(mo)o(ving) ! h(`up')f(through)g(the)h(his-)315 733 y(tory)e(as)h(necessary)l(.)20 ! b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 836 ! y Fl(forward-search-history)c(\(C-s\))315 891 y Fm(Searc)o(h)j(forw)o ! (ard)e(starting)h(at)h(the)f(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do) ! o(wn')f(through)g(the)h(the)315 946 y(history)g(as)g(necessary)l(.)20 ! b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 1049 ! y Fl(non-incremental-reverse-se)o(arch-hi)o(story)c(\(M-p\))315 ! 1104 y Fm(Searc)o(h)k(bac)o(kw)o(ard)e(starting)h(at)g(the)h(curren)o ! (t)f(line)j(and)d(mo)o(ving)h(`up')f(through)g(the)h(his-)315 ! 1159 y(tory)h(as)h(necessary)g(using)h(a)e(non-incremen)o(tal)j(searc)o ! (h)e(for)f(a)h(string)g(supplied)i(b)o(y)e(the)315 1214 ! y(user.)75 1317 y Fl(non-incremental-forward-se)o(arch-hi)o(story)12 ! b(\(M-n\))315 1372 y Fm(Searc)o(h)j(forw)o(ard)e(starting)h(at)h(the)f ! (curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)o(wn')f(through)g(the)h(the) ! 315 1426 y(history)e(as)g(necessary)h(using)g(a)f(non-incremen)o(tal)i ! (searc)o(h)e(for)g(a)g(string)g(supplied)j(b)o(y)d(the)315 ! 1481 y(user.)75 1584 y Fl(history-search-forward)f(\(\))315 ! 1639 y Fm(Searc)o(h)21 b(forw)o(ard)e(through)i(the)f(history)h(for)f ! (the)h(string)g(of)f(c)o(haracters)g(b)q(et)o(w)o(een)h(the)315 ! 1694 y(start)16 b(of)h(the)h(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o ! (t.)28 b(This)18 b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27 ! b(By)315 1749 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75 ! 1852 y Fl(history-search-backward)c(\(\))315 1907 y Fm(Searc)o(h)18 ! b(bac)o(kw)o(ard)e(through)h(the)h(history)f(for)g(the)g(string)h(of)f ! (c)o(haracters)f(b)q(et)o(w)o(een)i(the)315 1962 y(start)e(of)h(the)h ! (curren)o(t)g(line)h(and)e(the)h(p)q(oin)o(t.)28 b(This)18 ! b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27 b(By)315 ! 2016 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75 ! 2120 y Fl(yank-nth-arg)e(\(M-C-y\))315 2174 y Fm(Insert)f(the)g ! (\014rst)g(argumen)o(t)f(to)g(the)i(previous)f(command)g(\(usually)h ! (the)f(second)h(w)o(ord)e(on)315 2229 y(the)j(previous)h(line\))g(at)e ! (p)q(oin)o(t.)21 b(With)15 b(an)g(argumen)o(t)f Fc(n)p ! Fm(,)h(insert)g(the)g Fc(n)p Fm(th)g(w)o(ord)g(from)f(the)315 ! 2284 y(previous)g(command)g(\(the)f(w)o(ords)f(in)j(the)e(previous)i ! (command)e(b)q(egin)i(with)e(w)o(ord)g(0\).)19 b(A)315 ! 2339 y(negativ)o(e)13 b(argumen)o(t)f(inserts)h(the)g ! Fc(n)p Fm(th)g(w)o(ord)f(from)g(the)h(end)h(of)e(the)h(previous)g ! (command.)75 2442 y Fl(yank-last-arg)g(\(M-.)i(or)g(M-_\))315 ! 2497 y Fm(Insert)j(last)f(argumen)o(t)g(to)g(the)g(previous)i(command)e ! (\(the)g(last)h(w)o(ord)f(of)g(the)g(previous)315 2552 ! y(history)e(en)o(try\).)20 b(With)15 b(an)g(argumen)o(t,)g(b)q(eha)o(v) ! o(e)g(exactly)h(lik)o(e)g Fl(yank-nth-arg)p Fm(.)j(Succes-)315 ! 2606 y(siv)o(e)f(calls)g(to)f Fl(yank-last-arg)e Fm(mo)o(v)o(e)i(bac)o ! (k)g(through)g(the)g(history)g(list,)i(inserting)f(the)315 ! 2661 y(last)d(argumen)o(t)g(of)f(eac)o(h)i(line)g(in)g(turn.)p eop ! %%Page: 14 16 ! 14 15 bop 75 -58 a Fm(14)1299 b(GNU)15 b(Readline)h(Library)75 ! 149 y Fb(1.4.3)30 b(Commands)21 b(F)-5 b(or)19 b(Changing)i(T)-5 ! b(ext)75 286 y Fl(delete-char)14 b(\(C-d\))315 341 y ! Fm(Delete)20 b(the)g(c)o(haracter)e(at)h(p)q(oin)o(t.)33 ! b(If)20 b(p)q(oin)o(t)g(is)g(at)e(the)i(b)q(eginning)i(of)d(the)g ! (line,)j(there)315 396 y(are)c(no)h(c)o(haracters)e(in)j(the)e(line,)j ! (and)e(the)f(last)h(c)o(haracter)e(t)o(yp)q(ed)i(w)o(as)f(not)g(b)q ! (ound)i(to)315 450 y Fl(delete-char)p Fm(,)13 b(then)j(return)f ! Fh(eof)p Fm(.)75 552 y Fl(backward-delete-char)d(\(Rubout\))315 ! 607 y Fm(Delete)k(the)f(c)o(haracter)f(b)q(ehind)j(the)f(cursor.)j(A)c ! (n)o(umeric)h(argumen)o(t)e(means)i(to)e(kill)j(the)315 ! 661 y(c)o(haracters)d(instead)i(of)f(deleting)i(them.)75 ! 763 y Fl(forward-backward-delete-ch)o(ar)12 b(\(\))315 ! 818 y Fm(Delete)20 b(the)f(c)o(haracter)f(under)i(the)f(cursor,)h ! (unless)g(the)f(cursor)g(is)h(at)e(the)h(end)h(of)f(the)315 ! 872 y(line,)e(in)g(whic)o(h)g(case)e(the)h(c)o(haracter)g(b)q(ehind)h ! (the)f(cursor)g(is)g(deleted.)23 b(By)16 b(default,)h(this)315 ! 927 y(is)f(not)f(b)q(ound)h(to)e(a)h(k)o(ey)l(.)75 1029 ! y Fl(quoted-insert)e(\(C-q)i(or)g(C-v\))315 1083 y Fm(Add)j(the)f(next) ! g(c)o(haracter)g(t)o(yp)q(ed)g(to)f(the)i(line)g(v)o(erbatim.)26 ! b(This)18 b(is)f(ho)o(w)g(to)g(insert)g(k)o(ey)315 1138 ! y(sequences)f(lik)o(e)h Fg(C-q)p Fm(,)d(for)h(example.)75 ! 1240 y Fl(tab-insert)f(\(M-)401 1238 y Ff(h)p 412 1212 ! 74 2 v 412 1240 a Fe(T)m(AB)p 412 1247 V 484 1238 a Ff(i)499 ! 1240 y Fl(\))315 1294 y Fm(Insert)h(a)g(tab)g(c)o(haracter.)75 ! 1396 y Fl(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...)o(\))315 ! 1451 y Fm(Insert)g(y)o(ourself.)75 1552 y Fl(transpose-chars)e(\(C-t\)) ! 315 1607 y Fm(Drag)i(the)h(c)o(haracter)f(b)q(efore)h(the)h(cursor)e ! (forw)o(ard)g(o)o(v)o(er)g(the)h(c)o(haracter)f(at)h(the)g(cursor,)315 ! 1662 y(mo)o(ving)i(the)f(cursor)h(forw)o(ard)e(as)i(w)o(ell.)28 ! b(If)18 b(the)g(insertion)h(p)q(oin)o(t)f(is)g(at)f(the)h(end)h(of)e ! (the)315 1716 y(line,)c(then)e(this)h(transp)q(oses)e(the)h(last)g(t)o ! (w)o(o)f(c)o(haracters)g(of)h(the)g(line.)20 b(Negativ)o(e)11 ! b(argumen)o(ts)315 1771 y(ha)o(v)o(e)k(no)g(e\013ect.)75 ! 1873 y Fl(transpose-words)e(\(M-t\))315 1927 y Fm(Drag)i(the)h(w)o(ord) ! g(b)q(efore)g(p)q(oin)o(t)h(past)f(the)g(w)o(ord)f(after)h(p)q(oin)o ! (t,)g(mo)o(ving)g(p)q(oin)o(t)h(past)f(that)315 1982 ! y(w)o(ord)d(as)h(w)o(ell.)21 b(If)14 b(the)g(insertion)i(p)q(oin)o(t)e ! (is)h(at)f(the)g(end)h(of)e(the)i(line,)g(this)g(transp)q(oses)f(the) ! 315 2037 y(last)h(t)o(w)o(o)f(w)o(ords)g(on)i(the)f(line.)75 ! 2138 y Fl(upcase-word)f(\(M-u\))315 2193 y Fm(Upp)q(ercase)j(the)f ! (curren)o(t)g(\(or)f(follo)o(wing\))h(w)o(ord.)22 b(With)16 ! b(a)g(negativ)o(e)g(argumen)o(t,)f(upp)q(er-)315 2248 ! y(case)g(the)g(previous)h(w)o(ord,)f(but)g(do)g(not)g(mo)o(v)o(e)f(the) ! i(cursor.)75 2349 y Fl(downcase-word)d(\(M-l\))315 2404 ! y Fm(Lo)o(w)o(ercase)d(the)h(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o ! (ord.)17 b(With)11 b(a)g(negativ)o(e)g(argumen)o(t,)f(lo)o(w)o(ercase) ! 315 2459 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f ! (the)h(cursor.)75 2560 y Fl(capitalize-word)e(\(M-c\))315 ! 2615 y Fm(Capitalize)f(the)f(curren)o(t)f(\(or)g(follo)o(wing\))h(w)o ! (ord.)18 b(With)11 b(a)f(negativ)o(e)h(argumen)o(t,)f(capitalize)315 ! 2670 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f ! (the)h(cursor.)p eop ! %%Page: 15 17 ! 15 16 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055 ! b(15)75 149 y Fl(overwrite-mode)13 b(\(\))315 204 y Fm(T)l(oggle)j(o)o ! (v)o(erwrite)g(mo)q(de.)24 b(With)17 b(an)f(explicit)j(p)q(ositiv)o(e)f ! (n)o(umeric)f(argumen)o(t,)f(switc)o(hes)315 259 y(to)10 ! b(o)o(v)o(erwrite)g(mo)q(de.)19 b(With)11 b(an)g(explicit)i(non-p)q ! (ositiv)o(e)f(n)o(umeric)g(argumen)o(t,)e(switc)o(hes)i(to)315 ! 314 y(insert)k(mo)q(de.)k(This)c(command)f(a\013ects)g(only)h ! Fl(emacs)e Fm(mo)q(de;)h Fl(vi)g Fm(mo)q(de)h(do)q(es)g(o)o(v)o ! (erwrite)315 369 y(di\013eren)o(tly)l(.)21 b(Eac)o(h)15 ! b(call)h(to)f Fl(readline\(\))f Fm(starts)f(in)k(insert)e(mo)q(de.)315 ! 436 y(In)g(o)o(v)o(erwrite)f(mo)q(de,)h(c)o(haracters)f(b)q(ound)h(to)f ! Fl(self-insert)f Fm(replace)j(the)e(text)h(at)e(p)q(oin)o(t)315 ! 491 y(rather)20 b(than)h(pushing)h(the)f(text)f(to)g(the)h(righ)o(t.)36 ! b(Characters)20 b(b)q(ound)i(to)e Fl(backward-)315 546 ! y(delete-char)14 b Fm(replace)i(the)f(c)o(haracter)g(b)q(efore)g(p)q ! (oin)o(t)h(with)f(a)g(space.)315 614 y(By)g(default,)h(this)f(command)g ! (is)h(un)o(b)q(ound.)75 729 y Fb(1.4.4)30 b(Killing)20 ! b(And)h(Y)-5 b(anking)75 853 y Fl(kill-line)14 b(\(C-k\))315 ! 908 y Fm(Kill)j(the)f(text)e(from)h(p)q(oin)o(t)h(to)e(the)h(end)h(of)f ! (the)g(line.)75 1002 y Fl(backward-kill-line)e(\(C-x)h(Rubout\))315 ! 1057 y Fm(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g ! (line.)75 1151 y Fl(unix-line-discard)e(\(C-u\))315 1205 ! y Fm(Kill)k(bac)o(kw)o(ard)e(from)f(the)i(cursor)e(to)h(the)g(b)q ! (eginning)j(of)c(the)i(curren)o(t)f(line.)75 1299 y Fl(kill-whole-line) ! e(\(\))315 1354 y Fm(Kill)20 b(all)g(c)o(haracters)d(on)h(the)h(curren) ! o(t)f(line,)i(no)e(matter)g(where)g(p)q(oin)o(t)h(is.)29 ! b(By)19 b(default,)315 1409 y(this)d(is)f(un)o(b)q(ound.)75 ! 1503 y Fl(kill-word)f(\(M-d\))315 1558 y Fm(Kill)j(from)d(p)q(oin)o(t)h ! (to)f(the)h(end)g(of)f(the)h(curren)o(t)g(w)o(ord,)e(or)i(if)g(b)q(et)o ! (w)o(een)g(w)o(ords,)e(to)i(the)f(end)315 1613 y(of)h(the)g(next)g(w)o ! (ord.)20 b(W)l(ord)14 b(b)q(oundaries)j(are)e(the)g(same)g(as)g ! Fl(forward-word)p Fm(.)75 1707 y Fl(backward-kill-word)e(\(M-)592 ! 1705 y Ff(h)p 603 1679 73 2 v 603 1707 a Fe(DEL)p 603 ! 1714 V 674 1705 a Ff(i)689 1707 y Fl(\))315 1761 y Fm(Kill)k(the)d(w)o ! (ord)g(b)q(ehind)i(p)q(oin)o(t.)21 b(W)l(ord)14 b(b)q(oundaries)h(are)f ! (the)h(same)f(as)g Fl(backward-word)p Fm(.)75 1855 y ! Fl(unix-word-rubout)f(\(C-w\))315 1910 y Fm(Kill)18 b(the)e(w)o(ord)f ! (b)q(ehind)j(p)q(oin)o(t,)e(using)h(white)f(space)g(as)g(a)f(w)o(ord)g ! (b)q(oundary)l(.)23 b(The)16 b(killed)315 1965 y(text)f(is)g(sa)o(v)o ! (ed)g(on)g(the)h(kill-ring.)75 2059 y Fl(delete-horizontal-space)c ! (\(\))315 2114 y Fm(Delete)k(all)g(spaces)f(and)h(tabs)e(around)i(p)q ! (oin)o(t.)k(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75 ! 2208 y Fl(kill-region)e(\(\))315 2263 y Fm(Kill)j(the)f(text)e(in)i ! (the)g(curren)o(t)f(region.)20 b(By)15 b(default,)h(this)f(command)g ! (is)h(un)o(b)q(ound.)75 2357 y Fl(copy-region-as-kill)d(\(\))315 ! 2412 y Fm(Cop)o(y)j(the)i(text)e(in)i(the)f(region)g(to)g(the)g(kill)h ! (bu\013er,)f(so)g(it)g(can)g(b)q(e)h(y)o(ank)o(ed)f(righ)o(t)g(a)o(w)o ! (a)o(y)l(.)315 2466 y(By)e(default,)h(this)f(command)g(is)h(un)o(b)q ! (ound.)75 2560 y Fl(copy-backward-word)d(\(\))315 2615 ! y Fm(Cop)o(y)19 b(the)g(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)h(to)e(the)i ! (kill)h(bu\013er.)32 b(The)19 b(w)o(ord)g(b)q(oundaries)h(are)f(the)315 ! 2670 y(same)c(as)g Fl(backward-word)p Fm(.)j(By)d(default,)g(this)h ! (command)f(is)h(un)o(b)q(ound.)p eop ! %%Page: 16 18 ! 16 17 bop 75 -58 a Fm(16)1299 b(GNU)15 b(Readline)h(Library)75 ! 149 y Fl(copy-forward-word)d(\(\))315 204 y Fm(Cop)o(y)i(the)h(w)o(ord) ! e(follo)o(wing)j(p)q(oin)o(t)f(to)f(the)g(kill)j(bu\013er.)i(The)c(w)o ! (ord)f(b)q(oundaries)i(are)e(the)315 259 y(same)g(as)g ! Fl(forward-word)p Fm(.)j(By)d(default,)h(this)f(command)g(is)h(un)o(b)q ! (ound.)75 342 y Fl(yank)f(\(C-y\))315 397 y Fm(Y)l(ank)g(the)h(top)f ! (of)f(the)i(kill)h(ring)e(in)o(to)g(the)h(bu\013er)f(at)f(p)q(oin)o(t.) ! 75 481 y Fl(yank-pop)g(\(M-y\))315 535 y Fm(Rotate)i(the)h(kill-ring,)j ! (and)d(y)o(ank)g(the)h(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f ! (this)h(if)f(the)h(prior)315 590 y(command)d(is)h Fl(yank)e ! Fm(or)h Fl(yank-pop)p Fm(.)75 693 y Fb(1.4.5)30 b(Sp)r(ecifying)20 ! b(Numeric)h(Argumen)n(ts)75 806 y Fl(digit-argument)13 ! b(\()p Fg(M-0)p Fl(,)i Fg(M-1)p Fl(,)f(...)h Fg(M--)p ! Fl(\))315 861 y Fm(Add)f(this)g(digit)g(to)f(the)h(argumen)o(t)e ! (already)i(accum)o(ulating,)g(or)f(start)f(a)h(new)h(argumen)o(t.)315 ! 915 y Fg(M--)h Fm(starts)f(a)h(negativ)o(e)g(argumen)o(t.)75 ! 999 y Fl(universal-argument)e(\(\))315 1054 y Fm(This)g(is)h(another)e ! (w)o(a)o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o(t.)18 b(If)13 ! b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)315 ! 1108 y(or)h(more)h(digits,)g(optionally)h(with)f(a)g(leading)h(min)o ! (us)f(sign,)g(those)g(digits)g(de\014ne)h(the)f(ar-)315 ! 1163 y(gumen)o(t.)k(If)c(the)g(command)f(is)h(follo)o(w)o(ed)g(b)o(y)g ! (digits,)g(executing)g Fl(universal-argument)315 1218 ! y Fm(again)h(ends)g(the)g(n)o(umeric)h(argumen)o(t,)e(but)h(is)h ! (otherwise)f(ignored.)22 b(As)16 b(a)g(sp)q(ecial)h(case,)315 ! 1273 y(if)g(this)g(command)f(is)h(immediately)h(follo)o(w)o(ed)f(b)o(y) ! f(a)g(c)o(haracter)g(that)g(is)h(neither)g(a)f(digit)315 ! 1328 y(or)d(min)o(us)i(sign,)f(the)g(argumen)o(t)g(coun)o(t)f(for)h ! (the)g(next)g(command)g(is)g(m)o(ultiplied)j(b)o(y)d(four.)315 ! 1382 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)h(initially)j(one,)d(so)f ! (executing)i(this)f(function)h(the)e(\014rst)h(time)315 ! 1437 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g ! (time)g(mak)o(es)g(the)g(argumen)o(t)f(coun)o(t)g(six-)315 ! 1492 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)h(this)f(is)h(not)f ! (b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1595 y Fb(1.4.6)30 ! b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5 ! b(ou)75 1708 y Fl(complete)14 b(\()305 1706 y Ff(h)p ! 317 1680 74 2 v 317 1708 a Fe(T)m(AB)p 317 1715 V 389 ! 1706 a Ff(i)404 1708 y Fl(\))315 1762 y Fm(A)o(ttempt)c(to)h(p)q ! (erform)g(completion)i(on)e(the)g(text)g(b)q(efore)h(p)q(oin)o(t.)19 ! b(The)11 b(actual)h(completion)315 1817 y(p)q(erformed)j(is)h ! (application-sp)q(eci\014)q(c.)23 b(The)15 b(default)h(is)g(\014lename) ! g(completion.)75 1901 y Fl(possible-completions)c(\(M-?\))315 ! 1955 y Fm(List)k(the)f(p)q(ossible)i(completions)f(of)f(the)g(text)g(b) ! q(efore)h(p)q(oin)o(t.)75 2039 y Fl(insert-completions)d(\(M-*\))315 ! 2093 y Fm(Insert)j(all)g(completions)g(of)f(the)g(text)g(b)q(efore)h(p) ! q(oin)o(t)f(that)g(w)o(ould)h(ha)o(v)o(e)f(b)q(een)h(generated)315 ! 2148 y(b)o(y)f Fl(possible-completions)p Fm(.)75 2232 ! y Fl(menu-complete)e(\(\))315 2286 y Fm(Similar)g(to)f ! Fl(complete)p Fm(,)f(but)h(replaces)h(the)f(w)o(ord)f(to)g(b)q(e)i ! (completed)f(with)h(a)e(single)j(matc)o(h)315 2341 y(from)k(the)h(list) ! h(of)e(p)q(ossible)j(completions.)32 b(Rep)q(eated)19 ! b(execution)h(of)f Fl(menu-complete)315 2396 y Fm(steps)h(through)g ! (the)g(list)h(of)f(p)q(ossible)i(completions,)g(inserting)f(eac)o(h)f ! (matc)o(h)f(in)i(turn.)315 2451 y(A)o(t)d(the)g(end)h(of)f(the)h(list)g ! (of)f(completions,)i(the)e(b)q(ell)j(is)d(rung)h(\(sub)s(ject)f(to)f ! (the)i(setting)315 2506 y(of)f Fl(bell-style)p Fm(\))e(and)i(the)g ! (original)h(text)f(is)g(restored.)28 b(An)19 b(argumen)o(t)e(of)g ! Fc(n)i Fm(mo)o(v)o(es)e Fc(n)315 2560 y Fm(p)q(ositions)h(forw)o(ard)e ! (in)j(the)e(list)h(of)f(matc)o(hes;)h(a)f(negativ)o(e)g(argumen)o(t)g ! (ma)o(y)g(b)q(e)h(used)g(to)315 2615 y(mo)o(v)o(e)g(bac)o(kw)o(ard)h ! (through)g(the)g(list.)32 b(This)20 b(command)f(is)h(in)o(tended)g(to)f ! (b)q(e)h(b)q(ound)g(to)315 2668 y Ff(h)p 327 2642 V 327 ! 2670 a Fe(T)m(AB)p 327 2678 V 399 2668 a Ff(i)414 2670 ! y Fm(,)15 b(but)g(is)h(un)o(b)q(ound)g(b)o(y)f(default.)p eop ! %%Page: 17 19 ! 17 18 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055 ! b(17)75 149 y Fl(delete-char-or-list)13 b(\(\))315 204 ! y Fm(Deletes)h(the)f(c)o(haracter)g(under)h(the)g(cursor)f(if)h(not)f ! (at)g(the)g(b)q(eginning)j(or)d(end)h(of)f(the)g(line)315 ! 259 y(\(lik)o(e)i Fl(delete-char)p Fm(\).)j(If)d(at)f(the)h(end)g(of)f ! (the)g(line,)i(b)q(eha)o(v)o(es)f(iden)o(tically)i(to)d ! Fl(possible-)315 314 y(completions)p Fm(.)k(This)e(command)f(is)h(un)o ! (b)q(ound)g(b)o(y)f(default.)75 428 y Fb(1.4.7)30 b(Keyb)r(oard)20 ! b(Macros)75 551 y Fl(start-kbd-macro)13 b(\(C-x)i(\(\))315 ! 606 y Fm(Begin)h(sa)o(ving)f(the)h(c)o(haracters)e(t)o(yp)q(ed)i(in)o ! (to)f(the)g(curren)o(t)g(k)o(eyb)q(oard)g(macro.)75 699 ! y Fl(end-kbd-macro)e(\(C-x)i(\)\))315 754 y Fm(Stop)f(sa)o(ving)f(the)h ! (c)o(haracters)f(t)o(yp)q(ed)h(in)o(to)f(the)h(curren)o(t)g(k)o(eyb)q ! (oard)f(macro)g(and)h(sa)o(v)o(e)f(the)315 809 y(de\014nition.)75 ! 902 y Fl(call-last-kbd-macro)g(\(C-x)h(e\))315 957 y ! Fm(Re-execute)k(the)g(last)f(k)o(eyb)q(oard)h(macro)f(de\014ned,)i(b)o ! (y)e(making)h(the)g(c)o(haracters)e(in)j(the)315 1012 ! y(macro)14 b(app)q(ear)i(as)f(if)g(t)o(yp)q(ed)h(at)e(the)i(k)o(eyb)q ! (oard.)75 1126 y Fb(1.4.8)30 b(Some)20 b(Miscellaneous)h(Commands)75 ! 1249 y Fl(re-read-init-file)13 b(\(C-x)h(C-r\))315 1304 ! y Fm(Read)d(in)g(the)g(con)o(ten)o(ts)g(of)f(the)h Fc(inputrc)k ! Fm(\014le,)d(and)g(incorp)q(orate)f(an)o(y)f(bindings)j(or)e(v)m ! (ariable)315 1358 y(assignmen)o(ts)k(found)h(there.)75 ! 1452 y Fl(abort)e(\(C-g\))315 1507 y Fm(Ab)q(ort)f(the)g(curren)o(t)h ! (editing)g(command)f(and)h(ring)f(the)h(terminal's)f(b)q(ell)i(\(sub)s ! (ject)e(to)g(the)315 1561 y(setting)i(of)g Fl(bell-style)p ! Fm(\).)75 1655 y Fl(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p ! Fc(x)p Fl(,)h(...\))315 1710 y Fm(If)f(the)g(meta\014ed)g(c)o(haracter) ! f Fc(x)k Fm(is)d(lo)o(w)o(ercase,)g(run)g(the)g(command)f(that)h(is)g ! (b)q(ound)h(to)e(the)315 1764 y(corresp)q(onding)j(upp)q(ercase)g(c)o ! (haracter.)75 1858 y Fl(prefix-meta)e(\()377 1856 y Ff(h)p ! 389 1830 70 2 v 389 1858 a Fe(ESC)p 389 1866 V 456 1856 ! a Ff(i)471 1858 y Fl(\))315 1913 y Fm(Metafy)k(the)h(next)g(c)o ! (haracter)f(t)o(yp)q(ed.)30 b(This)20 b(is)f(for)f(k)o(eyb)q(oards)h ! (without)g(a)f(meta)g(k)o(ey)l(.)315 1968 y(T)o(yping)e(`)485 ! 1966 y Ff(h)p 496 1939 V 496 1968 a Fe(ESC)p 496 1975 ! V 563 1966 a Ff(i)593 1968 y Fl(f)p Fm(')f(is)h(equiv)m(alen)o(t)h(to)d ! (t)o(yping)i Fg(M-f)p Fm(.)75 2061 y Fl(undo)f(\(C-_)f(or)h(C-x)g ! (C-u\))315 2116 y Fm(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q ! (ered)g(for)e(eac)o(h)h(line.)75 2209 y Fl(revert-line)f(\(M-r\))315 ! 2264 y Fm(Undo)j(all)g(c)o(hanges)g(made)f(to)g(this)h(line.)26 ! b(This)17 b(is)g(lik)o(e)h(executing)f(the)g Fl(undo)f ! Fm(command)315 2319 y(enough)g(times)f(to)g(get)f(bac)o(k)h(to)g(the)g ! (b)q(eginning.)75 2412 y Fl(tilde-expand)f(\(M-~\))315 ! 2467 y Fm(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o ! (ord.)75 2560 y Fl(set-mark)f(\(C-@\))315 2615 y Fm(Set)i(the)h(mark)f ! (to)f(the)i(p)q(oin)o(t.)24 b(If)17 b(a)f(n)o(umeric)h(argumen)o(t)f ! (is)g(supplied,)j(the)e(mark)e(is)i(set)315 2670 y(to)e(that)f(p)q ! (osition.)p eop ! %%Page: 18 20 ! 18 19 bop 75 -58 a Fm(18)1299 b(GNU)15 b(Readline)h(Library)75 ! 149 y Fl(exchange-point-and-mark)c(\(C-x)j(C-x\))315 ! 204 y Fm(Sw)o(ap)g(the)h(p)q(oin)o(t)g(with)g(the)g(mark.)k(The)c ! (curren)o(t)f(cursor)h(p)q(osition)g(is)g(set)g(to)f(the)g(sa)o(v)o(ed) ! 315 259 y(p)q(osition,)h(and)f(the)h(old)f(cursor)g(p)q(osition)h(is)g ! (sa)o(v)o(ed)f(as)g(the)g(mark.)75 347 y Fl(character-search)e(\(C-]\)) ! 315 402 y Fm(A)f(c)o(haracter)g(is)h(read)g(and)f(p)q(oin)o(t)h(is)g ! (mo)o(v)o(ed)f(to)g(the)g(next)h(o)q(ccurrence)g(of)f(that)g(c)o ! (haracter.)315 456 y(A)j(negativ)o(e)h(coun)o(t)f(searc)o(hes)g(for)f ! (previous)i(o)q(ccurrences.)75 544 y Fl(character-search-backward)c ! (\(M-C-]\))315 599 y Fm(A)22 b(c)o(haracter)g(is)h(read)f(and)h(p)q ! (oin)o(t)g(is)g(mo)o(v)o(ed)f(to)g(the)g(previous)h(o)q(ccurrence)h(of) ! e(that)315 654 y(c)o(haracter.)d(A)c(negativ)o(e)h(coun)o(t)f(searc)o ! (hes)g(for)f(subsequen)o(t)i(o)q(ccurrences.)75 741 y ! Fl(insert-comment)d(\(M-#\))315 796 y Fm(Without)18 b(a)f(n)o(umeric)i ! (argumen)o(t,)e(the)h(v)m(alue)h(of)f(the)f Fl(comment-begin)f ! Fm(v)m(ariable)k(is)e(in-)315 851 y(serted)e(at)f(the)h(b)q(eginning)i ! (of)d(the)h(curren)o(t)g(line.)23 b(If)16 b(a)g(n)o(umeric)h(argumen)o ! (t)e(is)h(supplied,)315 906 y(this)j(command)f(acts)g(as)f(a)h(toggle:) ! 26 b(if)19 b(the)f(c)o(haracters)g(at)f(the)i(b)q(eginning)h(of)e(the)g ! (line)315 960 y(do)d(not)g(matc)o(h)g(the)g(v)m(alue)i(of)e ! Fl(comment-begin)p Fm(,)e(the)i(v)m(alue)i(is)f(inserted,)f(otherwise)h ! (the)315 1015 y(c)o(haracters)j(in)i Fl(comment-begin)d ! Fm(are)i(deleted)i(from)d(the)h(b)q(eginning)i(of)e(the)g(line.)36 ! b(In)315 1070 y(either)16 b(case,)f(the)g(line)i(is)f(accepted)f(as)g ! (if)h(a)f(newline)i(had)e(b)q(een)i(t)o(yp)q(ed.)75 1158 ! y Fl(dump-functions)c(\(\))315 1213 y Fm(Prin)o(t)g(all)h(of)f(the)g ! (functions)h(and)g(their)g(k)o(ey)f(bindings)i(to)d(the)i(Readline)g ! (output)f(stream.)315 1267 y(If)j(a)g(n)o(umeric)g(argumen)o(t)f(is)i ! (supplied,)h(the)e(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o ! (y)f(that)315 1322 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g ! Fc(inputrc)k Fm(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o ! (y)f(default.)75 1410 y Fl(dump-variables)e(\(\))315 ! 1465 y Fm(Prin)o(t)e(all)g(of)f(the)h(settable)g(v)m(ariables)h(and)f ! (their)g(v)m(alues)h(to)e(the)h(Readline)h(output)e(stream.)315 ! 1519 y(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)i(supplied,)h(the)e ! (output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o(y)f(that)315 ! 1574 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g Fc(inputrc)k ! Fm(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o(y)f(default.) ! 75 1662 y Fl(dump-macros)f(\(\))315 1717 y Fm(Prin)o(t)j(all)h(of)e ! (the)h(Readline)h(k)o(ey)f(sequences)h(b)q(ound)g(to)e(macros)g(and)h ! (the)g(strings)g(they)315 1771 y(output.)26 b(If)18 b(a)f(n)o(umeric)h ! (argumen)o(t)f(is)h(supplied,)i(the)d(output)g(is)h(formatted)e(in)j ! (suc)o(h)e(a)315 1826 y(w)o(a)o(y)d(that)g(it)i(can)f(b)q(e)g(made)g ! (part)g(of)f(an)h Fc(inputrc)k Fm(\014le.)i(This)15 b(command)g(is)h ! (un)o(b)q(ound)g(b)o(y)315 1881 y(default.)75 1969 y ! Fl(emacs-editing-mode)d(\(C-e\))315 2024 y Fm(When)j(in)g ! Fl(vi)e Fm(command)i(mo)q(de,)f(this)g(causes)h(a)f(switc)o(h)g(to)g ! Fl(emacs)f Fm(editing)j(mo)q(de.)75 2111 y Fl(vi-editing-mode)c ! (\(M-C-j\))315 2166 y Fm(When)j(in)g Fl(emacs)e Fm(editing)j(mo)q(de,)e ! (this)g(causes)h(a)f(switc)o(h)g(to)g Fl(vi)f Fm(editing)j(mo)q(de.)75 ! 2290 y Fk(1.5)33 b(Readline)23 b(vi)h(Mo)r(de)137 2385 ! y Fm(While)13 b(the)f(Readline)i(library)e(do)q(es)g(not)g(ha)o(v)o(e)f ! (a)h(full)h(set)f(of)f Fl(vi)g Fm(editing)j(functions,)f(it)f(do)q(es)g ! (con)o(tain)75 2440 y(enough)17 b(to)g(allo)o(w)g(simple)h(editing)h ! (of)d(the)i(line.)27 b(The)17 b(Readline)h Fl(vi)f Fm(mo)q(de)g(b)q ! (eha)o(v)o(es)g(as)g(sp)q(eci\014ed)i(in)75 2495 y(the)c ! Fh(posix)g Fm(1003.2)f(standard.)137 2560 y(In)h(order)g(to)f(switc)o ! (h)g(in)o(teractiv)o(ely)i(b)q(et)o(w)o(een)f Fl(emacs)e ! Fm(and)i Fl(vi)f Fm(editing)i(mo)q(des,)f(use)f(the)h(command)75 ! 2615 y Fg(M-C-j)j Fm(\(b)q(ound)i(to)e(emacs-editing-mo)q(de)j(when)e ! (in)h Fl(vi)f Fm(mo)q(de)g(and)g(to)f(vi-editing-mo)q(de)k(in)e ! Fl(emacs)75 2670 y Fm(mo)q(de\).)g(The)15 b(Readline)i(default)f(is)f ! Fl(emacs)g Fm(mo)q(de.)p eop ! %%Page: 19 21 ! 19 20 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055 ! b(19)137 149 y(When)16 b(y)o(ou)e(en)o(ter)h(a)g(line)i(in)e ! Fl(vi)g Fm(mo)q(de,)g(y)o(ou)g(are)f(already)i(placed)g(in)g ! (`insertion')f(mo)q(de,)g(as)g(if)g(y)o(ou)75 204 y(had)e(t)o(yp)q(ed)h ! (an)f(`)p Fl(i)p Fm('.)18 b(Pressing)608 202 y Ff(h)p ! 620 176 70 2 v 620 204 a Fe(ESC)p 620 212 V 687 202 a ! Ff(i)715 204 y Fm(switc)o(hes)13 b(y)o(ou)g(in)o(to)g(`command')f(mo)q ! (de,)i(where)f(y)o(ou)g(can)g(edit)h(the)75 259 y(text)i(of)h(the)g ! (line)h(with)g(the)f(standard)f Fl(vi)h Fm(mo)o(v)o(emen)o(t)f(k)o ! (eys,)g(mo)o(v)o(e)g(to)h(previous)g(history)g(lines)i(with)75 ! 314 y(`)p Fl(k)p Fm(')14 b(and)i(subsequen)o(t)f(lines)i(with)f(`)p ! Fl(j)p Fm(',)e(and)h(so)g(forth.)p eop ! %%Page: 20 22 ! 20 21 bop 75 -58 a Fm(20)1299 b(GNU)15 b(Readline)h(Library)p eop ! %%Page: -1 23 ! -1 22 bop 1862 -58 a Fm(i)75 149 y Fi(T)-7 b(able)27 ! b(of)f(Con)n(ten)n(ts)75 320 y Fk(1)67 b(Command)22 b(Line)i(Editing)d ! Fa(.)10 b(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h ! (.)f(.)g(.)g(.)42 b Fk(1)224 389 y Fm(1.1)j(In)o(tro)q(duction)16 ! b(to)f(Line)h(Editing)e Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) ! f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f ! (.)27 b Fm(1)224 444 y(1.2)45 b(Readline)16 b(In)o(teraction)8 ! b Fd(.)g(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) ! h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f ! (.)h(.)f(.)23 b Fm(1)374 499 y(1.2.1)44 b(Readline)16 ! b(Bare)f(Essen)o(tials)f Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h ! (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27 ! b Fm(1)374 553 y(1.2.2)44 b(Readline)16 b(Mo)o(v)o(emen)o(t)e(Commands) ! 7 b Fd(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f ! (.)h(.)21 b Fm(2)374 608 y(1.2.3)44 b(Readline)16 b(Killing)i(Commands) ! 11 b Fd(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h ! (.)f(.)h(.)f(.)h(.)25 b Fm(2)374 663 y(1.2.4)44 b(Readline)16 ! b(Argumen)o(ts)c Fd(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h ! (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 ! b Fm(3)374 718 y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h ! (the)f(History)e Fd(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27 ! b Fm(3)224 773 y(1.3)45 b(Readline)16 b(Init)h(File)e ! Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) ! h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f ! (.)h(.)f(.)h(.)f(.)29 b Fm(4)374 827 y(1.3.1)44 b(Readline)16 ! b(Init)g(File)h(Syn)o(tax)7 b Fd(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) ! f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 ! b Fm(4)374 882 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)5 ! b Fd(.)i(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) ! h(.)f(.)h(.)g(.)f(.)19 b Fm(9)374 937 y(1.3.3)44 b(Sample)16 ! b(Init)g(File)11 b Fd(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h ! (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) ! h(.)f(.)26 b Fm(9)224 992 y(1.4)45 b(Bindable)17 b(Readline)g(Commands) ! 6 b Fd(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h ! (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fm(12)374 ! 1046 y(1.4.1)44 b(Commands)14 b(F)l(or)h(Mo)o(ving)e ! Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) ! h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Fm(12)374 1101 y(1.4.2)44 ! b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9 ! b Fd(.)e(.)h(.)f(.)h(.)f(.)h(.)24 b Fm(12)374 1156 y(1.4.3)44 ! b(Commands)14 b(F)l(or)h(Changing)h(T)l(ext)e Fd(.)8 ! b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30 ! b Fm(14)374 1211 y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)9 ! b Fd(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) ! h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 b Fm(15)374 ! 1266 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c ! Fd(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)27 ! b Fm(16)374 1320 y(1.4.6)44 b(Letting)15 b(Readline)i(T)o(yp)q(e)e(F)l ! (or)g(Y)l(ou)10 b Fd(.)d(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) ! h(.)f(.)h(.)f(.)25 b Fm(16)374 1375 y(1.4.7)44 b(Keyb)q(oard)15 ! b(Macros)6 b Fd(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f ! (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21 ! b Fm(17)374 1430 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)7 ! b Fd(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) ! 22 b Fm(17)224 1485 y(1.5)45 b(Readline)16 b(vi)g(Mo)q(de)e ! Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) ! f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f ! (.)h(.)f(.)h(.)28 b Fm(18)p eop ! %%Page: -2 24 ! -2 23 bop 75 -58 a Fm(ii)1321 b(GNU)15 b(Readline)h(Library)p eop %%Trailer --- 1685,3553 ---- %%EndSetup %%Page: 1 1 ! 1 0 bop 150 1318 a Fp(GNU)65 b(Readline)i(Library)f(User)f(In)-5 ! b(terface)p 150 1418 3600 34 v 1873 1515 a Fo(Edition)28 ! b(5.0,)k(for)e Fn(Readline)e(Library)h Fo(V)-8 b(ersion)30 ! b(5.0.)3218 1623 y(Jan)m(uary)g(2004)150 4935 y Fm(Chet)45 ! b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46 b(Reserv)l(e)g(Univ)l ! (ersit)l(y)150 5068 y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 ! b(ree)45 b(Soft)l(w)l(are)h(F)-11 b(oundation)p 150 5141 ! 3600 17 v eop %%Page: 2 2 ! 2 1 bop 150 3024 a Fo(This)37 b(man)m(ual)h(describ)s(es)f(the)i(end)f ! (user)g(in)m(terface)h(of)g(the)g(GNU)g(Readline)e(Library)g(\(v)m ! (ersion)i(5.0,)150 3133 y(28)c(Jan)m(uary)f(2004\),)k(a)d(library)d ! (whic)m(h)h(aids)h(in)f(the)h(consistency)h(of)f(user)g(in)m(terface)h ! (across)g(discrete)150 3243 y(programs)30 b(whic)m(h)f(pro)m(vide)h(a)g ! (command)g(line)f(in)m(terface.)150 3377 y(Cop)m(yrigh)m(t)602 ! 3374 y(c)577 3377 y Fl(\015)h Fo(1988-2004)k(F)-8 b(ree)32 ! b(Soft)m(w)m(are)f(F)-8 b(oundation,)31 b(Inc.)150 3512 ! y(P)m(ermission)f(is)i(gran)m(ted)h(to)f(mak)m(e)i(and)d(distribute)f ! (v)m(erbatim)i(copies)g(of)g(this)f(man)m(ual)h(pro)m(vided)f(the)150 ! 3621 y(cop)m(yrigh)m(t)g(notice)f(and)g(this)f(p)s(ermission)f(notice)i ! (are)h(preserv)m(ed)f(on)h(all)e(copies.)390 3756 y(P)m(ermission)k(is) ! i(gran)m(ted)g(to)h(cop)m(y)-8 b(,)38 b(distribute)33 ! b(and/or)i(mo)s(dify)e(this)h(do)s(cumen)m(t)h(under)390 ! 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8 b(ree)39 b(Do)s(cumen)m ! (tation)g(License,)g(V)-8 b(ersion)38 b(1.1)h(or)f(an)m(y)g(later)390 ! 3975 y(v)m(ersion)27 b(published)c(b)m(y)28 b(the)f(F)-8 ! b(ree)29 b(Soft)m(w)m(are)f(F)-8 b(oundation;)29 b(with)d(no)h(In)m(v) ! -5 b(arian)m(t)27 b(Sections,)390 4085 y(with)i(the)i(F)-8 ! b(ron)m(t-Co)m(v)m(er)33 b(texts)e(b)s(eing)f(\\A)h(GNU)g(Man)m(ual,")g ! (and)f(with)f(the)i(Bac)m(k-Co)m(v)m(er)390 4194 y(T)-8 ! b(exts)33 b(as)g(in)e(\(a\))i(b)s(elo)m(w.)46 b(A)33 ! b(cop)m(y)g(of)f(the)h(license)e(is)h(included)d(in)i(the)i(section)f ! (en)m(titled)390 4304 y(\\GNU)f(F)-8 b(ree)32 b(Do)s(cumen)m(tation)f ! (License.")390 4438 y(\(a\))39 b(The)f(FSF's)g(Bac)m(k-Co)m(v)m(er)j(T) ! -8 b(ext)39 b(is:)55 b(\\Y)-8 b(ou)39 b(ha)m(v)m(e)g(freedom)f(to)h ! (cop)m(y)f(and)g(mo)s(dify)390 4548 y(this)31 b(GNU)j(Man)m(ual,)f(lik) ! m(e)f(GNU)h(soft)m(w)m(are.)49 b(Copies)31 b(published)e(b)m(y)j(the)h ! (F)-8 b(ree)34 b(Soft)m(w)m(are)390 4658 y(F)-8 b(oundation)30 ! b(raise)g(funds)e(for)j(GNU)g(dev)m(elopmen)m(t.")150 ! 4902 y(Published)c(b)m(y)j(the)h(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 ! b(oundation)150 5011 y(59)31 b(T)-8 b(emple)30 b(Place,)h(Suite)e(330,) ! 150 5121 y(Boston,)j(MA)e(02111-1307)150 5230 y(USA)p ! eop ! %%Page: -1 3 ! -1 2 bop 3725 -116 a Fo(i)150 299 y Fk(T)-13 b(able)54 ! b(of)g(Con)l(ten)l(ts)150 641 y Fm(1)135 b(Command)45 ! b(Line)g(Editing)40 b Fj(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h ! (.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)84 b Fm(1)449 778 ! y Fo(1.1)92 b(In)m(tro)s(duction)29 b(to)i(Line)e(Editing)23 ! b Fi(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 ! b Fo(1)449 888 y(1.2)92 b(Readline)29 b(In)m(teraction)16 ! b Fi(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)46 b Fo(1)748 997 y(1.2.1)93 b(Readline)29 ! b(Bare)i(Essen)m(tials)25 b Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 ! b Fo(1)748 1107 y(1.2.2)93 b(Readline)29 b(Mo)m(v)m(emen)m(t)j ! (Commands)14 b Fi(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)44 b Fo(2)748 1216 y(1.2.3)93 b(Readline)29 ! b(Killing)e(Commands)22 b Fi(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)51 b Fo(2)748 ! 1326 y(1.2.4)93 b(Readline)29 b(Argumen)m(ts)c Fi(.)15 ! b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Fo(3)748 ! 1435 y(1.2.5)93 b(Searc)m(hing)29 b(for)i(Commands)e(in)g(the)h ! (History)c Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 ! b Fo(3)449 1545 y(1.3)92 b(Readline)29 b(Init)g(File)f ! Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)58 b Fo(4)748 1655 y(1.3.1)93 b(Readline)29 ! b(Init)g(File)g(Syn)m(tax)13 b Fi(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)43 ! b Fo(4)748 1764 y(1.3.2)93 b(Conditional)27 b(Init)j(Constructs)9 ! b Fi(.)14 b(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)39 b Fo(9)748 1874 y(1.3.3)93 ! b(Sample)29 b(Init)g(File)21 b Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)51 b Fo(10)449 1983 y(1.4)92 b(Bindable)29 ! b(Readline)g(Commands)12 b Fi(.)i(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)41 ! b Fo(13)748 2093 y(1.4.1)93 b(Commands)29 b(F)-8 b(or)31 ! b(Mo)m(ving)c Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b Fo(13)748 ! 2203 y(1.4.2)93 b(Commands)29 b(F)-8 b(or)31 b(Manipulating)d(The)i ! (History)18 b Fi(.)d(.)g(.)g(.)g(.)g(.)g(.)47 b Fo(13)748 ! 2312 y(1.4.3)93 b(Commands)29 b(F)-8 b(or)31 b(Changing)e(T)-8 ! b(ext)30 b Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)h(.)f(.)58 b Fo(14)748 2422 y(1.4.4)93 b(Killing)27 ! b(And)i(Y)-8 b(anking)17 b Fi(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)46 ! b Fo(16)748 2531 y(1.4.5)93 b(Sp)s(ecifying)27 b(Numeric)j(Argumen)m ! (ts)25 b Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)54 b Fo(17)748 2641 y(1.4.6)93 b(Letting)30 ! b(Readline)f(T)m(yp)s(e)h(F)-8 b(or)31 b(Y)-8 b(ou)19 ! b Fi(.)d(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! 49 b Fo(17)748 2751 y(1.4.7)93 b(Keyb)s(oard)29 b(Macros)11 ! b Fi(.)17 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 ! b Fo(17)748 2860 y(1.4.8)93 b(Some)30 b(Miscellaneous)f(Commands)13 ! b Fi(.)h(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) ! 42 b Fo(18)449 2970 y(1.5)92 b(Readline)29 b(vi)g(Mo)s(de)e ! Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)56 b Fo(19)150 3212 y Fm(App)t(endix)44 ! b(A)99 b(Cop)l(ying)46 b(This)e(Man)l(ual)29 b Fj(.)20 ! b(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)74 b Fm(21)449 ! 3349 y Fo(A.1)92 b(GNU)31 b(F)-8 b(ree)31 b(Do)s(cumen)m(tation)g ! (License)c Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b Fo(21)748 3459 y(A.1.1)92 ! b(ADDENDUM:)33 b(Ho)m(w)e(to)g(use)f(this)f(License)h(for)h(y)m(our)930 ! 3568 y(do)s(cumen)m(ts)c Fi(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g ! (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) ! g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)57 b Fo(27)p eop ! %%Page: -2 4 ! -2 3 bop 150 -116 a Fo(ii)2638 b(GNU)31 b(Readline)e(Library)p eop ! %%Page: 1 5 ! 1 4 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2151 b(1)150 299 y Fk(1)80 b(Command)52 ! b(Line)i(Editing)275 511 y Fo(This)28 b(c)m(hapter)j(describ)s(es)e ! (the)h(basic)g(features)h(of)f(the)h Fh(gnu)f Fo(command)g(line)f ! (editing)g(in)m(terface.)150 755 y Fm(1.1)68 b(In)l(tro)t(duction)45 ! b(to)g(Line)h(Editing)275 995 y Fo(The)29 b(follo)m(wing)g(paragraphs)h ! (describ)s(e)f(the)h(notation)h(used)e(to)j(represen)m(t)e(k)m(eystrok) ! m(es.)275 1125 y(The)i(text)j Fg(C-k)d Fo(is)h(read)g(as)h(`Con)m ! (trol-K')f(and)g(describ)s(es)f(the)h(c)m(haracter)i(pro)s(duced)d ! (when)g(the)3663 1122 y Ff(h)p 3687 1069 38 4 v 3687 ! 1125 a Fe(k)p 3687 1140 V 3720 1122 a Ff(i)150 1235 y ! Fo(k)m(ey)f(is)f(pressed)f(while)f(the)j(Con)m(trol)f(k)m(ey)h(is)f ! (depressed.)275 1365 y(The)h(text)i Fg(M-k)e Fo(is)g(read)g(as)i ! (`Meta-K')g(and)f(describ)s(es)e(the)i(c)m(haracter)h(pro)s(duced)e ! (when)f(the)i(Meta)150 1474 y(k)m(ey)d(\(if)f(y)m(ou)h(ha)m(v)m(e)g ! (one\))g(is)f(depressed,)g(and)f(the)1859 1471 y Ff(h)p ! 1883 1418 V 1883 1474 a Fe(k)p 1883 1490 V 1916 1471 ! a Ff(i)1974 1474 y Fo(k)m(ey)j(is)d(pressed.)39 b(The)28 ! b(Meta)i(k)m(ey)f(is)f(lab)s(eled)3558 1471 y Ff(h)p ! 3582 1418 143 4 v 3582 1474 a Fe(AL)-6 b(T)p 3582 1490 ! V 3720 1471 a Ff(i)150 1584 y Fo(on)26 b(man)m(y)g(k)m(eyb)s(oards.)39 ! b(On)26 b(k)m(eyb)s(oards)g(with)f(t)m(w)m(o)i(k)m(eys)g(lab)s(eled) ! 2425 1581 y Ff(h)p 2450 1528 V 2450 1584 a Fe(AL)-6 b(T)p ! 2450 1599 V 2587 1581 a Ff(i)2643 1584 y Fo(\(usually)25 ! b(to)i(either)e(side)g(of)i(the)150 1693 y(space)32 b(bar\),)g(the)775 ! 1690 y Ff(h)p 799 1637 V 799 1693 a Fe(AL)-6 b(T)p 799 ! 1709 V 937 1690 a Ff(i)998 1693 y Fo(on)32 b(the)f(left)g(side)g(is)f ! (generally)h(set)g(to)i(w)m(ork)e(as)h(a)f(Meta)i(k)m(ey)-8 ! b(.)45 b(The)3393 1690 y Ff(h)p 3417 1637 V 3417 1693 ! a Fe(AL)-6 b(T)p 3417 1709 V 3555 1690 a Ff(i)3616 1693 ! y Fo(k)m(ey)150 1803 y(on)33 b(the)h(righ)m(t)f(ma)m(y)h(also)f(b)s(e)g ! (con\014gured)f(to)i(w)m(ork)g(as)g(a)f(Meta)i(k)m(ey)f(or)g(ma)m(y)g ! (b)s(e)e(con\014gured)h(as)h(some)150 1913 y(other)d(mo)s(di\014er,)d ! (suc)m(h)i(as)h(a)g(Comp)s(ose)f(k)m(ey)h(for)f(t)m(yping)g(accen)m ! (ted)i(c)m(haracters.)275 2043 y(If)21 b(y)m(ou)h(do)g(not)g(ha)m(v)m ! (e)h(a)f(Meta)h(or)1388 2040 y Ff(h)p 1412 1987 V 1412 ! 2043 a Fe(AL)-6 b(T)p 1412 2058 V 1550 2040 a Ff(i)1601 ! 2043 y Fo(k)m(ey)e(,)25 b(or)d(another)g(k)m(ey)h(w)m(orking)e(as)h(a)g ! (Meta)h(k)m(ey)-8 b(,)25 b(the)d(iden)m(tical)150 2152 ! y(k)m(eystrok)m(e)i(can)f(b)s(e)f(generated)i(b)m(y)e(t)m(yping)1619 ! 2149 y Ff(h)p 1643 2096 139 4 v 1643 2152 a Fe(ESC)p ! 1643 2168 V 1777 2149 a Ff(i)1829 2152 y Fi(\014rst)p ! Fo(,)j(and)d(then)g(t)m(yping)2678 2149 y Ff(h)p 2703 ! 2096 38 4 v 2703 2152 a Fe(k)p 2703 2168 V 2736 2149 ! a Ff(i)2765 2152 y Fo(.)38 b(Either)22 b(pro)s(cess)g(is)f(kno)m(wn)150 ! 2262 y(as)31 b Fd(metafying)38 b Fo(the)850 2259 y Ff(h)p ! 874 2206 V 874 2262 a Fe(k)p 874 2277 V 907 2259 a Ff(i)968 ! 2262 y Fo(k)m(ey)-8 b(.)275 2392 y(The)39 b(text)j Fg(M-C-k)d ! Fo(is)g(read)h(as)h(`Meta-Con)m(trol-k')i(and)c(describ)s(es)g(the)h(c) ! m(haracter)i(pro)s(duced)d(b)m(y)150 2501 y Fd(metafying)f ! Fg(C-k)p Fo(.)275 2632 y(In)e(addition,)h(sev)m(eral)g(k)m(eys)g(ha)m ! (v)m(e)h(their)e(o)m(wn)h(names.)60 b(Sp)s(eci\014cally)-8 ! b(,)2768 2629 y Ff(h)p 2792 2576 146 4 v 2792 2632 a ! Fe(DEL)p 2792 2647 V 2934 2629 a Ff(i)2964 2632 y Fo(,)3028 ! 2629 y Ff(h)p 3052 2576 139 4 v 3052 2632 a Fe(ESC)p ! 3052 2647 V 3186 2629 a Ff(i)3216 2632 y Fo(,)3279 2629 ! y Ff(h)p 3303 2576 144 4 v 3303 2632 a Fe(LFD)p 3303 ! 2647 V 3443 2629 a Ff(i)3473 2632 y Fo(,)3537 2629 y ! Ff(h)p 3561 2576 139 4 v 3561 2632 a Fe(SPC)p 3561 2647 ! V 3695 2629 a Ff(i)3725 2632 y Fo(,)150 2738 y Ff(h)p ! 174 2685 151 4 v 174 2741 a Fe(RET)p 174 2757 V 321 2738 ! a Ff(i)351 2741 y Fo(,)47 b(and)612 2738 y Ff(h)p 637 ! 2685 148 4 v 637 2741 a Fe(T)-6 b(AB)p 637 2757 V 780 ! 2738 a Ff(i)853 2741 y Fo(all)43 b(stand)g(for)g(themselv)m(es)h(when)e ! (seen)i(in)e(this)g(text,)48 b(or)43 b(in)f(an)i(init)d(\014le)i(\(see) ! 150 2851 y(Section)c(1.3)g([Readline)f(Init)f(File],)k(page)e(4\).)67 ! b(If)38 b(y)m(our)h(k)m(eyb)s(oard)f(lac)m(ks)h(a)2888 ! 2848 y Ff(h)p 2912 2795 144 4 v 2912 2851 a Fe(LFD)p ! 2912 2866 V 3052 2848 a Ff(i)3121 2851 y Fo(k)m(ey)-8 ! b(,)42 b(t)m(yping)3604 2848 y Ff(h)p 3628 2795 97 4 ! v 3628 2851 a Fe(C-j)p 3628 2866 V 3720 2848 a Ff(i)150 ! 2960 y Fo(will)27 b(pro)s(duce)h(the)i(desired)e(c)m(haracter.)42 ! b(The)1748 2957 y Ff(h)p 1772 2904 151 4 v 1772 2960 ! a Fe(RET)p 1772 2976 V 1919 2957 a Ff(i)1978 2960 y Fo(k)m(ey)30 ! b(ma)m(y)g(b)s(e)f(lab)s(eled)2770 2957 y Ff(h)p 2794 ! 2904 217 4 v 2794 2960 a Fe(Return)p 2794 2976 V 3007 ! 2957 a Ff(i)3066 2960 y Fo(or)3176 2957 y Ff(h)p 3201 ! 2904 172 4 v 3201 2960 a Fe(En)n(ter)p 3201 2976 V 3368 ! 2957 a Ff(i)3427 2960 y Fo(on)h(some)150 3070 y(k)m(eyb)s(oards.)150 ! 3314 y Fm(1.2)68 b(Readline)47 b(In)l(teraction)275 3554 ! y Fo(Often)24 b(during)f(an)i(in)m(teractiv)m(e)h(session)f(y)m(ou)g(t) ! m(yp)s(e)h(in)e(a)h(long)g(line)e(of)j(text,)h(only)e(to)g(notice)h ! (that)g(the)150 3663 y(\014rst)32 b(w)m(ord)g(on)g(the)g(line)f(is)h ! (missp)s(elled.)43 b(The)32 b(Readline)f(library)f(giv)m(es)i(y)m(ou)h ! (a)g(set)g(of)f(commands)g(for)150 3773 y(manipulating)27 ! b(the)j(text)h(as)f(y)m(ou)g(t)m(yp)s(e)g(it)f(in,)g(allo)m(wing)f(y)m ! (ou)i(to)h(just)e(\014x)g(y)m(our)h(t)m(yp)s(o,)g(and)g(not)g(forcing) ! 150 3883 y(y)m(ou)e(to)h(ret)m(yp)s(e)g(the)f(ma)5 b(jorit)m(y)28 ! b(of)g(the)h(line.)38 b(Using)27 b(these)i(editing)e(commands,)h(y)m ! (ou)h(mo)m(v)m(e)g(the)g(cursor)150 3992 y(to)35 b(the)f(place)h(that)f ! (needs)g(correction,)i(and)e(delete)g(or)g(insert)g(the)g(text)h(of)g ! (the)f(corrections.)53 b(Then,)150 4102 y(when)30 b(y)m(ou)i(are)f ! (satis\014ed)f(with)g(the)h(line,)f(y)m(ou)i(simply)c(press)2320 ! 4099 y Ff(h)p 2344 4046 151 4 v 2344 4102 a Fe(RET)p ! 2344 4117 V 2491 4099 a Ff(i)2520 4102 y Fo(.)43 b(Y)-8 ! b(ou)32 b(do)f(not)g(ha)m(v)m(e)i(to)e(b)s(e)g(at)h(the)150 ! 4211 y(end)j(of)h(the)g(line)e(to)j(press)1126 4208 y ! Ff(h)p 1150 4155 V 1150 4211 a Fe(RET)p 1150 4227 V 1297 ! 4208 a Ff(i)1327 4211 y Fo(;)h(the)e(en)m(tire)g(line)e(is)h(accepted)i ! (regardless)e(of)h(the)g(lo)s(cation)g(of)g(the)150 4321 ! y(cursor)30 b(within)e(the)i(line.)150 4532 y Fc(1.2.1)63 ! b(Readline)40 b(Bare)h(Essen)m(tials)275 4772 y Fo(In)22 ! b(order)g(to)i(en)m(ter)g(c)m(haracters)g(in)m(to)f(the)h(line,)f ! (simply)d(t)m(yp)s(e)k(them.)38 b(The)22 b(t)m(yp)s(ed)h(c)m(haracter)i ! (app)s(ears)150 4881 y(where)32 b(the)h(cursor)e(w)m(as,)j(and)e(then)g ! (the)h(cursor)e(mo)m(v)m(es)j(one)f(space)g(to)g(the)g(righ)m(t.)46 ! b(If)32 b(y)m(ou)h(mist)m(yp)s(e)f(a)150 4991 y(c)m(haracter,)g(y)m(ou) ! f(can)g(use)f(y)m(our)g(erase)h(c)m(haracter)h(to)f(bac)m(k)g(up)f(and) ! f(delete)i(the)g(mist)m(yp)s(ed)d(c)m(haracter.)275 5121 ! y(Sometimes)i(y)m(ou)h(ma)m(y)h(mist)m(yp)s(e)d(a)j(c)m(haracter,)g ! (and)e(not)i(notice)f(the)g(error)f(un)m(til)f(y)m(ou)i(ha)m(v)m(e)h(t) ! m(yp)s(ed)150 5230 y(sev)m(eral)d(other)g(c)m(haracters.)42 ! b(In)28 b(that)i(case,)g(y)m(ou)f(can)g(t)m(yp)s(e)h ! Fg(C-b)d Fo(to)j(mo)m(v)m(e)g(the)f(cursor)g(to)g(the)g(left,)h(and)150 ! 5340 y(then)g(correct)i(y)m(our)e(mistak)m(e.)41 b(Afterw)m(ards,)31 ! b(y)m(ou)f(can)h(mo)m(v)m(e)h(the)e(cursor)g(to)h(the)g(righ)m(t)f ! (with)f Fg(C-f)p Fo(.)p eop ! %%Page: 2 6 ! 2 5 bop 150 -116 a Fo(2)2645 b(GNU)31 b(Readline)e(Library)275 ! 299 y(When)j(y)m(ou)h(add)f(text)h(in)e(the)i(middle)d(of)j(a)g(line,)f ! (y)m(ou)g(will)e(notice)j(that)g(c)m(haracters)h(to)g(the)e(righ)m(t) ! 150 408 y(of)d(the)g(cursor)f(are)h(`pushed)e(o)m(v)m(er')j(to)g(mak)m ! (e)f(ro)s(om)g(for)f(the)h(text)h(that)f(y)m(ou)g(ha)m(v)m(e)h ! (inserted.)39 b(Lik)m(ewise,)150 518 y(when)e(y)m(ou)g(delete)h(text)h ! (b)s(ehind)34 b(the)k(cursor,)h(c)m(haracters)g(to)f(the)g(righ)m(t)f ! (of)h(the)g(cursor)e(are)i(`pulled)150 628 y(bac)m(k')24 ! b(to)f(\014ll)e(in)g(the)i(blank)e(space)j(created)f(b)m(y)g(the)g ! (remo)m(v)-5 b(al)23 b(of)g(the)g(text.)39 b(A)23 b(list)e(of)i(the)g ! (bare)f(essen)m(tials)150 737 y(for)30 b(editing)f(the)i(text)g(of)g ! (an)f(input)e(line)h(follo)m(ws.)150 892 y Fg(C-b)336 ! b Fo(Mo)m(v)m(e)32 b(bac)m(k)g(one)e(c)m(haracter.)150 ! 1048 y Fg(C-f)336 b Fo(Mo)m(v)m(e)32 b(forw)m(ard)e(one)h(c)m ! (haracter.)150 1200 y Ff(h)p 174 1147 146 4 v 174 1203 ! a Fe(DEL)p 174 1218 V 316 1200 a Ff(i)376 1203 y Fo(or)487 ! 1200 y Ff(h)p 512 1147 317 4 v 512 1203 a Fe(Bac)n(kspace)p ! 512 1218 V 824 1200 a Ff(i)630 1312 y Fo(Delete)h(the)e(c)m(haracter)i ! (to)f(the)g(left)f(of)g(the)h(cursor.)150 1467 y Fg(C-d)336 ! b Fo(Delete)32 b(the)e(c)m(haracter)i(underneath)d(the)i(cursor.)150 ! 1622 y(Prin)m(ting)e(c)m(haracters)630 1732 y(Insert)h(the)g(c)m ! (haracter)i(in)m(to)f(the)f(line)f(at)i(the)g(cursor.)150 ! 1887 y Fg(C-_)e Fo(or)i Fg(C-x)e(C-u)630 1997 y Fo(Undo)k(the)h(last)f ! (editing)f(command.)50 b(Y)-8 b(ou)34 b(can)f(undo)g(all)f(the)h(w)m(a) ! m(y)i(bac)m(k)f(to)g(an)g(empt)m(y)630 2106 y(line.)150 ! 2262 y(\(Dep)s(ending)f(on)h(y)m(our)g(con\014guration,)g(the)1726 ! 2259 y Ff(h)p 1750 2205 V 1750 2262 a Fe(Bac)n(kspace)p ! 1750 2277 V 2063 2259 a Ff(i)2127 2262 y Fo(k)m(ey)h(b)s(e)e(set)h(to)h ! (delete)f(the)g(c)m(haracter)i(to)f(the)150 2371 y(left)e(of)g(the)g ! (cursor)f(and)h(the)1192 2368 y Ff(h)p 1216 2315 146 ! 4 v 1216 2371 a Fe(DEL)p 1216 2386 V 1358 2368 a Ff(i)1421 ! 2371 y Fo(k)m(ey)g(set)h(to)g(delete)f(the)g(c)m(haracter)i(underneath) ! c(the)i(cursor,)h(lik)m(e)150 2481 y Fg(C-d)p Fo(,)c(rather)g(than)g ! (the)h(c)m(haracter)h(to)f(the)f(left)g(of)h(the)f(cursor.\))150 ! 2698 y Fc(1.2.2)63 b(Readline)40 b(Mo)m(v)m(emen)m(t)g(Commands)275 ! 2940 y Fo(The)25 b(ab)s(o)m(v)m(e)i(table)f(describ)s(es)f(the)h(most)h ! (basic)e(k)m(eystrok)m(es)j(that)f(y)m(ou)f(need)g(in)f(order)g(to)i ! (do)f(editing)150 3050 y(of)g(the)f(input)f(line.)37 ! b(F)-8 b(or)27 b(y)m(our)e(con)m(v)m(enience,)j(man)m(y)d(other)h ! (commands)f(ha)m(v)m(e)i(b)s(een)e(added)g(in)f(addition)150 ! 3160 y(to)33 b Fg(C-b)p Fo(,)e Fg(C-f)p Fo(,)h Fg(C-d)p ! Fo(,)g(and)1043 3157 y Ff(h)p 1067 3104 V 1067 3160 a ! Fe(DEL)p 1067 3175 V 1209 3157 a Ff(i)1239 3160 y Fo(.)45 ! b(Here)33 b(are)f(some)g(commands)g(for)g(mo)m(ving)g(more)g(rapidly)d ! (ab)s(out)j(the)150 3269 y(line.)150 3424 y Fg(C-a)336 ! b Fo(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f(line.)150 ! 3579 y Fg(C-e)336 b Fo(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h ! (line.)150 3735 y Fg(M-f)336 b Fo(Mo)m(v)m(e)32 b(forw)m(ard)e(a)h(w)m ! (ord,)f(where)g(a)h(w)m(ord)f(is)f(comp)s(osed)h(of)h(letters)g(and)e ! (digits.)150 3890 y Fg(M-b)336 b Fo(Mo)m(v)m(e)32 b(bac)m(kw)m(ard)f(a) ! g(w)m(ord.)150 4045 y Fg(C-l)336 b Fo(Clear)30 b(the)g(screen,)h ! (reprin)m(ting)d(the)j(curren)m(t)f(line)f(at)i(the)f(top.)275 ! 4200 y(Notice)25 b(ho)m(w)g Fg(C-f)e Fo(mo)m(v)m(es)j(forw)m(ard)e(a)h ! (c)m(haracter,)j(while)23 b Fg(M-f)g Fo(mo)m(v)m(es)j(forw)m(ard)e(a)h ! (w)m(ord.)39 b(It)24 b(is)g(a)h(lo)s(ose)150 4310 y(con)m(v)m(en)m ! (tion)31 b(that)g(con)m(trol)f(k)m(eystrok)m(es)i(op)s(erate)e(on)g(c)m ! (haracters)h(while)d(meta)j(k)m(eystrok)m(es)h(op)s(erate)e(on)150 ! 4419 y(w)m(ords.)150 4637 y Fc(1.2.3)63 b(Readline)40 ! b(Killing)i(Commands)275 4879 y Fd(Killing)f Fo(text)e(means)e(to)h ! (delete)f(the)h(text)g(from)f(the)g(line,)h(but)f(to)h(sa)m(v)m(e)h(it) ! d(a)m(w)m(a)m(y)k(for)d(later)g(use,)150 4988 y(usually)32 ! b(b)m(y)i Fd(y)m(anking)41 b Fo(\(re-inserting\))33 b(it)h(bac)m(k)h ! (in)m(to)f(the)g(line.)50 b(\(`Cut')35 b(and)e(`paste')i(are)g(more)f ! (recen)m(t)150 5098 y(jargon)d(for)f(`kill')e(and)i(`y)m(ank'.\))275 ! 5230 y(If)f(the)i(description)d(for)i(a)h(command)f(sa)m(ys)g(that)h ! (it)f(`kills')e(text,)k(then)e(y)m(ou)g(can)h(b)s(e)e(sure)h(that)h(y)m ! (ou)150 5340 y(can)g(get)g(the)g(text)g(bac)m(k)g(in)e(a)i(di\013eren)m ! (t)f(\(or)h(the)f(same\))h(place)g(later.)p eop ! %%Page: 3 7 ! 3 6 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2151 b(3)275 299 y(When)23 b(y)m(ou)g(use)g(a)h(kill)d ! (command,)j(the)g(text)g(is)e(sa)m(v)m(ed)j(in)d(a)h ! Fd(kill-ring)p Fo(.)35 b(An)m(y)24 b(n)m(um)m(b)s(er)e(of)h(consecutiv) ! m(e)150 408 y(kills)28 b(sa)m(v)m(e)33 b(all)d(of)h(the)g(killed)e ! (text)j(together,)g(so)g(that)f(when)f(y)m(ou)h(y)m(ank)h(it)e(bac)m ! (k,)i(y)m(ou)g(get)g(it)e(all.)41 b(The)150 518 y(kill)30 ! b(ring)h(is)g(not)i(line)e(sp)s(eci\014c;)h(the)h(text)g(that)g(y)m(ou) ! g(killed)c(on)k(a)f(previously)e(t)m(yp)s(ed)j(line)d(is)i(a)m(v)-5 ! b(ailable)150 628 y(to)31 b(b)s(e)f(y)m(ank)m(ed)h(bac)m(k)g(later,)g ! (when)e(y)m(ou)i(are)g(t)m(yping)e(another)i(line.)275 ! 760 y(Here)f(is)g(the)g(list)f(of)i(commands)f(for)g(killing)d(text.) ! 150 916 y Fg(C-k)336 b Fo(Kill)28 b(the)i(text)i(from)e(the)g(curren)m ! (t)g(cursor)g(p)s(osition)f(to)i(the)f(end)g(of)g(the)h(line.)150 ! 1072 y Fg(M-d)336 b Fo(Kill)24 b(from)i(the)g(cursor)g(to)h(the)f(end)g ! (of)h(the)f(curren)m(t)g(w)m(ord,)h(or,)h(if)d(b)s(et)m(w)m(een)i(w)m ! (ords,)g(to)g(the)630 1182 y(end)j(of)g(the)h(next)f(w)m(ord.)41 ! b(W)-8 b(ord)30 b(b)s(oundaries)e(are)j(the)g(same)f(as)h(those)g(used) ! f(b)m(y)g Fg(M-f)p Fo(.)150 1337 y Fg(M-)246 1334 y Ff(h)p ! 270 1281 146 4 v 270 1337 a Fe(DEL)p 270 1353 V 411 1334 ! a Ff(i)630 1337 y Fo(Kill)e(from)i(the)h(cursor)f(the)g(start)h(of)g ! (the)g(curren)m(t)f(w)m(ord,)h(or,)f(if)g(b)s(et)m(w)m(een)h(w)m(ords,) ! f(to)i(the)630 1447 y(start)39 b(of)f(the)h(previous)e(w)m(ord.)64 ! b(W)-8 b(ord)39 b(b)s(oundaries)d(are)j(the)f(same)h(as)g(those)f(used) ! g(b)m(y)630 1557 y Fg(M-b)p Fo(.)150 1712 y Fg(C-w)336 ! b Fo(Kill)29 b(from)h(the)i(cursor)e(to)i(the)g(previous)d(whitespace.) ! 43 b(This)30 b(is)g(di\013eren)m(t)h(than)g Fg(M-)3555 ! 1709 y Ff(h)p 3578 1656 V 3578 1712 a Fe(DEL)p 3578 1728 ! V 3720 1709 a Ff(i)630 1822 y Fo(b)s(ecause)f(the)h(w)m(ord)f(b)s ! (oundaries)e(di\013er.)275 1978 y(Here)42 b(is)e(ho)m(w)i(to)g ! Fd(y)m(ank)47 b Fo(the)42 b(text)g(bac)m(k)h(in)m(to)e(the)h(line.)72 ! b(Y)-8 b(anking)42 b(means)f(to)h(cop)m(y)h(the)e(most-)150 ! 2087 y(recen)m(tly-killed)29 b(text)i(from)f(the)g(kill)f(bu\013er.)150 ! 2243 y Fg(C-y)336 b Fo(Y)-8 b(ank)31 b(the)f(most)h(recen)m(tly)g ! (killed)d(text)j(bac)m(k)g(in)m(to)g(the)f(bu\013er)g(at)h(the)f ! (cursor.)150 2399 y Fg(M-y)336 b Fo(Rotate)36 b(the)f(kill-ring,)e(and) ! h(y)m(ank)h(the)f(new)g(top.)54 b(Y)-8 b(ou)35 b(can)g(only)e(do)i ! (this)e(if)h(the)h(prior)630 2509 y(command)30 b(is)g ! Fg(C-y)f Fo(or)h Fg(M-y)p Fo(.)150 2727 y Fc(1.2.4)63 ! b(Readline)40 b(Argumen)m(ts)275 2970 y Fo(Y)-8 b(ou)29 ! b(can)h(pass)f(n)m(umeric)f(argumen)m(ts)h(to)h(Readline)e(commands.)40 ! b(Sometimes)29 b(the)g(argumen)m(t)h(acts)150 3079 y(as)40 ! b(a)h(rep)s(eat)f(coun)m(t,)j(other)e(times)e(it)h(is)f(the)h ! Fi(sign)47 b Fo(of)41 b(the)f(argumen)m(t)g(that)h(is)e(signi\014can)m ! (t.)69 b(If)40 b(y)m(ou)150 3189 y(pass)33 b(a)h(negativ)m(e)h(argumen) ! m(t)f(to)g(a)g(command)f(whic)m(h)f(normally)g(acts)i(in)e(a)i(forw)m ! (ard)f(direction,)g(that)150 3298 y(command)i(will)e(act)j(in)e(a)i ! (bac)m(kw)m(ard)f(direction.)55 b(F)-8 b(or)36 b(example,)g(to)g(kill)d ! (text)j(bac)m(k)g(to)g(the)g(start)g(of)150 3408 y(the)31 ! b(line,)e(y)m(ou)h(migh)m(t)g(t)m(yp)s(e)h(`)p Fn(M--)f(C-k)p ! Fo('.)275 3541 y(The)d(general)h(w)m(a)m(y)i(to)e(pass)g(n)m(umeric)f ! (argumen)m(ts)i(to)g(a)f(command)g(is)f(to)i(t)m(yp)s(e)f(meta)i ! (digits)c(b)s(efore)150 3650 y(the)31 b(command.)42 b(If)30 ! b(the)h(\014rst)f(`digit')g(t)m(yp)s(ed)h(is)f(a)h(min)m(us)e(sign)h ! (\(`)p Fn(-)p Fo('\),)i(then)f(the)g(sign)e(of)i(the)g(argumen)m(t)150 ! 3760 y(will)36 b(b)s(e)h(negativ)m(e.)65 b(Once)38 b(y)m(ou)h(ha)m(v)m ! (e)g(t)m(yp)s(ed)f(one)h(meta)g(digit)e(to)h(get)i(the)e(argumen)m(t)h ! (started,)i(y)m(ou)150 3869 y(can)29 b(t)m(yp)s(e)g(the)g(remainder)e ! (of)i(the)g(digits,)f(and)h(then)f(the)h(command.)40 ! b(F)-8 b(or)30 b(example,)f(to)g(giv)m(e)h(the)f Fg(C-d)150 ! 3979 y Fo(command)37 b(an)g(argumen)m(t)h(of)g(10,)i(y)m(ou)e(could)e ! (t)m(yp)s(e)i(`)p Fn(M-1)29 b(0)h(C-d)p Fo(',)39 b(whic)m(h)d(will)f ! (delete)j(the)f(next)h(ten)150 4089 y(c)m(haracters)32 ! b(on)e(the)h(input)d(line.)150 4307 y Fc(1.2.5)63 b(Searc)m(hing)40 ! b(for)h(Commands)f(in)h(the)g(History)275 4550 y Fo(Readline)30 ! b(pro)m(vides)i(commands)g(for)g(searc)m(hing)g(through)f(the)i ! (command)f(history)f(for)h(lines)e(con-)150 4659 y(taining)f(a)i(sp)s ! (eci\014ed)e(string.)39 b(There)30 b(are)h(t)m(w)m(o)h(searc)m(h)f(mo)s ! (des:)40 b Fd(incremen)m(tal)33 b Fo(and)d Fd(non-incremen)m(tal)p ! Fo(.)275 4792 y(Incremen)m(tal)25 b(searc)m(hes)i(b)s(egin)d(b)s(efore) ! h(the)h(user)f(has)h(\014nished)d(t)m(yping)i(the)h(searc)m(h)g ! (string.)38 b(As)26 b(eac)m(h)150 4902 y(c)m(haracter)37 ! b(of)e(the)h(searc)m(h)g(string)e(is)h(t)m(yp)s(ed,)h(Readline)e ! (displa)m(ys)g(the)h(next)h(en)m(try)g(from)e(the)i(history)150 ! 5011 y(matc)m(hing)24 b(the)g(string)f(t)m(yp)s(ed)h(so)g(far.)39 ! b(An)23 b(incremen)m(tal)h(searc)m(h)g(requires)f(only)g(as)h(man)m(y)g ! (c)m(haracters)i(as)150 5121 y(needed)i(to)i(\014nd)d(the)i(desired)e ! (history)h(en)m(try)-8 b(.)41 b(T)-8 b(o)29 b(searc)m(h)h(bac)m(kw)m ! (ard)f(in)e(the)i(history)f(for)g(a)i(particular)150 ! 5230 y(string,)f(t)m(yp)s(e)g Fg(C-r)p Fo(.)40 b(T)m(yping)28 ! b Fg(C-s)h Fo(searc)m(hes)h(forw)m(ard)f(through)g(the)g(history)-8 ! b(.)40 b(The)29 b(c)m(haracters)i(presen)m(t)150 5340 ! y(in)37 b(the)h(v)-5 b(alue)37 b(of)h(the)g Fn(isearch-terminators)33 ! b Fo(v)-5 b(ariable)37 b(are)h(used)f(to)i(terminate)f(an)g(incremen)m ! (tal)p eop ! %%Page: 4 8 ! 4 7 bop 150 -116 a Fo(4)2645 b(GNU)31 b(Readline)e(Library)150 ! 299 y(searc)m(h.)63 b(If)38 b(that)g(v)-5 b(ariable)36 ! b(has)i(not)g(b)s(een)f(assigned)g(a)h(v)-5 b(alue,)39 ! b(the)2578 296 y Ff(h)p 2602 243 139 4 v 2602 299 a Fe(ESC)p ! 2602 314 V 2736 296 a Ff(i)2804 299 y Fo(and)e Fg(C-J)f ! Fo(c)m(haracters)k(will)150 408 y(terminate)i(an)h(incremen)m(tal)e ! (searc)m(h.)78 b Fg(C-g)41 b Fo(will)f(ab)s(ort)i(an)g(incremen)m(tal)g ! (searc)m(h)h(and)f(restore)h(the)150 518 y(original)27 ! b(line.)39 b(When)28 b(the)h(searc)m(h)h(is)e(terminated,)h(the)g ! (history)f(en)m(try)h(con)m(taining)f(the)h(searc)m(h)h(string)150 ! 628 y(b)s(ecomes)h(the)f(curren)m(t)g(line.)275 769 y(T)-8 ! b(o)31 b(\014nd)e(other)j(matc)m(hing)f(en)m(tries)g(in)e(the)i ! (history)f(list,)g(t)m(yp)s(e)i Fg(C-r)e Fo(or)h Fg(C-s)f ! Fo(as)h(appropriate.)42 b(This)150 878 y(will)23 b(searc)m(h)k(bac)m ! (kw)m(ard)g(or)f(forw)m(ard)g(in)e(the)j(history)e(for)h(the)g(next)g ! (en)m(try)h(matc)m(hing)f(the)g(searc)m(h)h(string)150 ! 988 y(t)m(yp)s(ed)37 b(so)h(far.)63 b(An)m(y)38 b(other)f(k)m(ey)i ! (sequence)f(b)s(ound)e(to)i(a)g(Readline)f(command)g(will)e(terminate)j ! (the)150 1098 y(searc)m(h)22 b(and)e(execute)j(that)e(command.)38 ! b(F)-8 b(or)22 b(instance,)g(a)2127 1095 y Ff(h)p 2151 ! 1042 151 4 v 2151 1098 a Fe(RET)p 2151 1113 V 2298 1095 ! a Ff(i)2349 1098 y Fo(will)c(terminate)j(the)g(searc)m(h)h(and)e ! (accept)150 1207 y(the)30 b(line,)e(thereb)m(y)h(executing)h(the)f ! (command)g(from)g(the)h(history)e(list.)39 b(A)29 b(mo)m(v)m(emen)m(t)j ! (command)d(will)150 1317 y(terminate)h(the)h(searc)m(h,)g(mak)m(e)h ! (the)e(last)g(line)f(found)g(the)i(curren)m(t)f(line,)f(and)h(b)s(egin) ! f(editing.)275 1458 y(Readline)k(remem)m(b)s(ers)h(the)h(last)g ! (incremen)m(tal)f(searc)m(h)h(string.)53 b(If)34 b(t)m(w)m(o)j ! Fg(C-r)p Fo(s)c(are)i(t)m(yp)s(ed)g(without)150 1567 ! y(an)m(y)i(in)m(terv)m(ening)e(c)m(haracters)j(de\014ning)d(a)i(new)f ! (searc)m(h)h(string,)g(an)m(y)g(remem)m(b)s(ered)e(searc)m(h)i(string)f ! (is)150 1677 y(used.)275 1818 y(Non-incremen)m(tal)46 ! b(searc)m(hes)i(read)e(the)h(en)m(tire)g(searc)m(h)g(string)f(b)s ! (efore)g(starting)g(to)i(searc)m(h)f(for)150 1928 y(matc)m(hing)c ! (history)e(lines.)76 b(The)42 b(searc)m(h)h(string)f(ma)m(y)h(b)s(e)f ! (t)m(yp)s(ed)g(b)m(y)g(the)h(user)f(or)h(b)s(e)f(part)g(of)h(the)150 ! 2037 y(con)m(ten)m(ts)32 b(of)f(the)f(curren)m(t)g(line.)150 ! 2311 y Fm(1.3)68 b(Readline)47 b(Init)e(File)275 2562 ! y Fo(Although)f(the)h(Readline)f(library)e(comes)k(with)e(a)i(set)f(of) ! g(Emacs-lik)m(e)g(k)m(eybindings)e(installed)150 2672 ! y(b)m(y)f(default,)h(it)f(is)e(p)s(ossible)f(to)k(use)e(a)h(di\013eren) ! m(t)f(set)h(of)g(k)m(eybindings.)72 b(An)m(y)42 b(user)f(can)h ! (customize)150 2781 y(programs)32 b(that)h(use)f(Readline)f(b)m(y)i ! (putting)e(commands)h(in)f(an)h Fd(inputrc)k Fo(\014le,)d(con)m(v)m(en) ! m(tionally)f(in)f(his)150 2891 y(home)i(directory)-8 ! b(.)49 b(The)33 b(name)g(of)g(this)f(\014le)h(is)f(tak)m(en)i(from)f ! (the)g(v)-5 b(alue)33 b(of)g(the)g(en)m(vironmen)m(t)g(v)-5 ! b(ariable)150 3000 y Fn(INPUTRC)p Fo(.)39 b(If)30 b(that)h(v)-5 ! b(ariable)29 b(is)g(unset,)h(the)h(default)f(is)f(`)p ! Fn(~/.inputrc)p Fo('.)275 3142 y(When)g(a)h(program)f(whic)m(h)g(uses)g ! (the)h(Readline)e(library)f(starts)j(up,)f(the)h(init)e(\014le)g(is)h ! (read,)h(and)f(the)150 3251 y(k)m(ey)i(bindings)c(are)k(set.)275 ! 3392 y(In)26 b(addition,)g(the)h Fn(C-x)i(C-r)d Fo(command)h(re-reads)g ! (this)e(init)g(\014le,)i(th)m(us)g(incorp)s(orating)e(an)m(y)i(c)m ! (hanges)150 3502 y(that)k(y)m(ou)g(migh)m(t)f(ha)m(v)m(e)h(made)g(to)g ! (it.)150 3739 y Fc(1.3.1)63 b(Readline)40 b(Init)h(File)g(Syn)m(tax)275 ! 3990 y Fo(There)33 b(are)h(only)f(a)h(few)f(basic)g(constructs)h(allo)m ! (w)m(ed)f(in)g(the)h(Readline)e(init)g(\014le.)50 b(Blank)33 ! b(lines)f(are)150 4100 y(ignored.)71 b(Lines)40 b(b)s(eginning)e(with)i ! (a)h(`)p Fn(#)p Fo(')g(are)h(commen)m(ts.)73 b(Lines)40 ! b(b)s(eginning)e(with)h(a)j(`)p Fn($)p Fo(')f(indicate)150 ! 4209 y(conditional)26 b(constructs)i(\(see)g(Section)g(1.3.2)h ! ([Conditional)d(Init)g(Constructs],)j(page)f(9\).)41 ! b(Other)27 b(lines)150 4319 y(denote)k(v)-5 b(ariable)29 ! b(settings)h(and)g(k)m(ey)h(bindings.)150 4488 y(V)-8 ! b(ariable)30 b(Settings)630 4598 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)d ! (the)j(run-time)e(b)s(eha)m(vior)g(of)i(Readline)e(b)m(y)h(altering)f ! (the)i(v)-5 b(alues)40 b(of)630 4707 y(v)-5 b(ariables)32 ! b(in)g(Readline)h(using)f(the)h Fn(set)g Fo(command)g(within)e(the)j ! (init)e(\014le.)49 b(The)33 b(syn)m(tax)630 4817 y(is)c(simple:)870 ! 4955 y Fn(set)47 b Fg(variable)56 b(value)630 5093 y ! Fo(Here,)29 b(for)e(example,)g(is)g(ho)m(w)g(to)h(c)m(hange)g(from)f ! (the)g(default)g(Emacs-lik)m(e)g(k)m(ey)h(binding)c(to)630 ! 5202 y(use)30 b Fn(vi)g Fo(line)f(editing)g(commands:)870 ! 5340 y Fn(set)47 b(editing-mode)d(vi)p eop ! %%Page: 5 9 ! 5 8 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2151 b(5)630 299 y(V)-8 b(ariable)34 ! b(names)h(and)g(v)-5 b(alues,)35 b(where)g(appropriate,)g(are)h ! (recognized)f(without)f(regard)630 408 y(to)d(case.)630 ! 541 y(A)f(great)i(deal)e(of)h(run-time)e(b)s(eha)m(vior)g(is)g(c)m ! (hangeable)j(with)d(the)h(follo)m(wing)f(v)-5 b(ariables.)630 ! 697 y Fn(bell-style)1110 806 y Fo(Con)m(trols)43 b(what)h(happ)s(ens)e ! (when)h(Readline)g(w)m(an)m(ts)h(to)h(ring)d(the)i(termi-)1110 ! 916 y(nal)36 b(b)s(ell.)59 b(If)37 b(set)h(to)g(`)p Fn(none)p ! Fo(',)g(Readline)e(nev)m(er)i(rings)d(the)j(b)s(ell.)59 ! b(If)36 b(set)i(to)1110 1026 y(`)p Fn(visible)p Fo(',)32 ! b(Readline)g(uses)h(a)g(visible)d(b)s(ell)h(if)h(one)h(is)f(a)m(v)-5 ! b(ailable.)48 b(If)33 b(set)g(to)1110 1135 y(`)p Fn(audible)p ! Fo(')j(\(the)i(default\),)h(Readline)d(attempts)i(to)h(ring)d(the)h ! (terminal's)1110 1245 y(b)s(ell.)630 1401 y Fn(comment-begin)1110 ! 1510 y Fo(The)29 b(string)f(to)i(insert)e(at)i(the)f(b)s(eginning)e(of) ! i(the)h(line)d(when)h(the)i Fn(insert-)1110 1620 y(comment)e ! Fo(command)j(is)e(executed.)42 b(The)29 b(default)h(v)-5 ! b(alue)30 b(is)f Fn("#")p Fo(.)630 1775 y Fn(completion-ignore-case) ! 1110 1885 y Fo(If)e(set)h(to)g(`)p Fn(on)p Fo(',)g(Readline)e(p)s ! (erforms)g(\014lename)g(matc)m(hing)i(and)f(completion)1110 ! 1995 y(in)i(a)i(case-insensitiv)m(e)f(fashion.)39 b(The)30 ! b(default)g(v)-5 b(alue)29 b(is)h(`)p Fn(off)p Fo('.)630 ! 2150 y Fn(completion-query-items)1110 2260 y Fo(The)c(n)m(um)m(b)s(er)f ! (of)h(p)s(ossible)e(completions)h(that)i(determines)e(when)g(the)i ! (user)1110 2370 y(is)h(ask)m(ed)i(whether)f(the)h(list)e(of)h(p)s ! (ossibilities)c(should)i(b)s(e)i(displa)m(y)m(ed.)39 ! b(If)29 b(the)1110 2479 y(n)m(um)m(b)s(er)d(of)h(p)s(ossible)d ! (completions)i(is)g(greater)i(than)e(this)g(v)-5 b(alue,)27 ! b(Readline)1110 2589 y(will)d(ask)j(the)f(user)g(whether)g(or)g(not)h ! (he)f(wishes)f(to)j(view)d(them;)j(otherwise,)1110 2698 ! y(they)d(are)f(simply)e(listed.)38 b(This)22 b(v)-5 b(ariable)23 ! b(m)m(ust)i(b)s(e)e(set)i(to)g(an)g(in)m(teger)f(v)-5 ! b(alue)1110 2808 y(greater)32 b(than)e(or)g(equal)g(to)h(0.)41 ! b(The)30 b(default)g(limit)e(is)h Fn(100)p Fo(.)630 2964 ! y Fn(convert-meta)1110 3073 y Fo(If)22 b(set)g(to)h(`)p ! Fn(on)p Fo(',)h(Readline)d(will)e(con)m(v)m(ert)24 b(c)m(haracters)f ! (with)e(the)h(eigh)m(th)g(bit)f(set)1110 3183 y(to)h(an)f ! Fh(asci)r(i)g Fo(k)m(ey)h(sequence)g(b)m(y)f(stripping)d(the)k(eigh)m ! (th)f(bit)f(and)h(pre\014xing)e(an)1110 3289 y Ff(h)p ! 1134 3236 139 4 v 1134 3292 a Fe(ESC)p 1134 3308 V 1268 ! 3289 a Ff(i)1332 3292 y Fo(c)m(haracter,)36 b(con)m(v)m(erting)f(them)f ! (to)g(a)h(meta-pre\014xed)f(k)m(ey)g(sequence.)1110 3402 ! y(The)c(default)f(v)-5 b(alue)30 b(is)g(`)p Fn(on)p Fo('.)630 ! 3558 y Fn(disable-completion)1110 3667 y Fo(If)36 b(set)h(to)h(`)p ! Fn(On)p Fo(',)g(Readline)d(will)f(inhibit)f(w)m(ord)k(completion.)58 ! b(Completion)1110 3777 y(c)m(haracters)28 b(will)23 b(b)s(e)i(inserted) ! g(in)m(to)h(the)h(line)d(as)i(if)f(they)i(had)e(b)s(een)g(mapp)s(ed) ! 1110 3886 y(to)31 b Fn(self-insert)p Fo(.)38 b(The)30 ! b(default)f(is)h(`)p Fn(off)p Fo('.)630 4042 y Fn(editing-mode)1110 ! 4152 y Fo(The)e Fn(editing-mode)e Fo(v)-5 b(ariable)27 ! b(con)m(trols)i(whic)m(h)e(default)h(set)i(of)e(k)m(ey)i(bind-)1110 ! 4261 y(ings)24 b(is)g(used.)38 b(By)26 b(default,)f(Readline)f(starts)h ! (up)f(in)g(Emacs)h(editing)f(mo)s(de,)1110 4371 y(where)29 ! b(the)g(k)m(eystrok)m(es)i(are)e(most)h(similar)c(to)k(Emacs.)40 ! b(This)28 b(v)-5 b(ariable)28 b(can)1110 4481 y(b)s(e)i(set)h(to)g ! (either)f(`)p Fn(emacs)p Fo(')f(or)h(`)p Fn(vi)p Fo('.)630 ! 4636 y Fn(enable-keypad)1110 4746 y Fo(When)23 b(set)h(to)g(`)p ! Fn(on)p Fo(',)h(Readline)d(will)f(try)i(to)h(enable)f(the)g ! (application)f(k)m(eypad)1110 4855 y(when)k(it)g(is)f(called.)39 ! b(Some)27 b(systems)f(need)h(this)e(to)i(enable)f(the)h(arro)m(w)g(k)m ! (eys.)1110 4965 y(The)j(default)f(is)h(`)p Fn(off)p Fo('.)630 ! 5121 y Fn(expand-tilde)1110 5230 y Fo(If)d(set)h(to)h(`)p ! Fn(on)p Fo(',)f(tilde)e(expansion)h(is)f(p)s(erformed)g(when)h ! (Readline)f(attempts)1110 5340 y(w)m(ord)k(completion.)40 ! b(The)30 b(default)f(is)h(`)p Fn(off)p Fo('.)p eop ! %%Page: 6 10 ! 6 9 bop 150 -116 a Fo(6)2645 b(GNU)31 b(Readline)e(Library)1110 ! 299 y(If)g(set)i(to)f(`)p Fn(on)p Fo(',)g(the)g(history)f(co)s(de)h ! (attempts)g(to)h(place)e(p)s(oin)m(t)g(at)i(the)f(same)1110 ! 408 y(lo)s(cation)j(on)g(eac)m(h)i(history)d(line)g(retriev)m(ed)h ! (with)f Fn(previous-history)d Fo(or)1110 518 y Fn(next-history)p ! Fo(.)630 696 y Fn(horizontal-scroll-mode)1110 806 y Fo(This)34 ! b(v)-5 b(ariable)35 b(can)h(b)s(e)f(set)h(to)h(either)e(`)p ! Fn(on)p Fo(')h(or)g(`)p Fn(off)p Fo('.)57 b(Setting)35 ! b(it)g(to)i(`)p Fn(on)p Fo(')1110 915 y(means)26 b(that)h(the)f(text)h ! (of)g(the)f(lines)e(b)s(eing)h(edited)h(will)d(scroll)i(horizon)m ! (tally)1110 1025 y(on)32 b(a)g(single)e(screen)i(line)e(when)g(they)i ! (are)g(longer)g(than)f(the)h(width)e(of)i(the)1110 1134 ! y(screen,)27 b(instead)f(of)g(wrapping)e(on)m(to)j(a)f(new)g(screen)g ! (line.)37 b(By)27 b(default,)f(this)1110 1244 y(v)-5 ! b(ariable)29 b(is)h(set)g(to)i(`)p Fn(off)p Fo('.)630 ! 1422 y Fn(input-meta)1110 1532 y Fo(If)f(set)g(to)h(`)p ! Fn(on)p Fo(',)g(Readline)e(will)e(enable)j(eigh)m(t-bit)g(input)e(\(it) ! i(will)d(not)k(clear)1110 1641 y(the)40 b(eigh)m(th)f(bit)g(in)f(the)i ! (c)m(haracters)h(it)e(reads\),)k(regardless)38 b(of)i(what)g(the)1110 ! 1751 y(terminal)e(claims)h(it)h(can)g(supp)s(ort.)68 ! b(The)39 b(default)g(v)-5 b(alue)39 b(is)g(`)p Fn(off)p ! Fo('.)69 b(The)1110 1861 y(name)30 b Fn(meta-flag)e Fo(is)i(a)g(synon)m ! (ym)g(for)g(this)g(v)-5 b(ariable.)630 2039 y Fn(isearch-terminators) ! 1110 2148 y Fo(The)51 b(string)g(of)h(c)m(haracters)h(that)f(should)d ! (terminate)j(an)g(incremen)m(tal)1110 2258 y(searc)m(h)25 ! b(without)f(subsequen)m(tly)g(executing)h(the)g(c)m(haracter)h(as)f(a)g ! (command)1110 2367 y(\(see)45 b(Section)g(1.2.5)h([Searc)m(hing],)i ! (page)e(3\).)84 b(If)44 b(this)f(v)-5 b(ariable)43 b(has)i(not)1110 ! 2477 y(b)s(een)31 b(giv)m(en)g(a)h(v)-5 b(alue,)31 b(the)h(c)m ! (haracters)2494 2474 y Ff(h)p 2518 2421 139 4 v 2518 ! 2477 a Fe(ESC)p 2518 2492 V 2652 2474 a Ff(i)2713 2477 ! y Fo(and)f Fg(C-J)g Fo(will)e(terminate)i(an)1110 2587 ! y(incremen)m(tal)f(searc)m(h.)630 2765 y Fn(keymap)192 ! b Fo(Sets)39 b(Readline's)e(idea)i(of)g(the)g(curren)m(t)f(k)m(eymap)h ! (for)g(k)m(ey)g(binding)d(com-)1110 2874 y(mands.)81 ! b(Acceptable)46 b Fn(keymap)c Fo(names)i(are)h Fn(emacs)p ! Fo(,)i Fn(emacs-standard)p Fo(,)1110 2984 y Fn(emacs-meta)p ! Fo(,)99 b Fn(emacs-ctlx)p Fo(,)f Fn(vi)p Fo(,)j Fn(vi-move)p ! Fo(,)f Fn(vi-command)p Fo(,)f(and)1110 3093 y Fn(vi-insert)p ! Fo(.)64 b Fn(vi)38 b Fo(is)g(equiv)-5 b(alen)m(t)39 b(to)g ! Fn(vi-command)p Fo(;)i Fn(emacs)c Fo(is)h(equiv)-5 b(alen)m(t)1110 ! 3203 y(to)33 b Fn(emacs-standard)p Fo(.)41 b(The)31 b(default)g(v)-5 ! b(alue)31 b(is)g Fn(emacs)p Fo(.)44 b(The)31 b(v)-5 b(alue)32 ! b(of)g(the)1110 3313 y Fn(editing-mode)27 b Fo(v)-5 b(ariable)29 ! b(also)i(a\013ects)g(the)g(default)e(k)m(eymap.)630 3491 ! y Fn(mark-directories)1110 3600 y Fo(If)38 b(set)g(to)h(`)p ! Fn(on)p Fo(',)i(completed)d(directory)f(names)h(ha)m(v)m(e)i(a)e(slash) ! f(app)s(ended.)1110 3710 y(The)30 b(default)f(is)h(`)p ! Fn(on)p Fo('.)630 3888 y Fn(mark-modified-lines)1110 ! 3998 y Fo(This)k(v)-5 b(ariable,)36 b(when)f(set)h(to)h(`)p ! Fn(on)p Fo(',)g(causes)g(Readline)d(to)j(displa)m(y)d(an)h(as-)1110 ! 4107 y(terisk)e(\(`)p Fn(*)p Fo('\))i(at)f(the)g(start)g(of)g(history)f ! (lines)f(whic)m(h)g(ha)m(v)m(e)j(b)s(een)e(mo)s(di\014ed.)1110 ! 4217 y(This)c(v)-5 b(ariable)29 b(is)g(`)p Fn(off)p Fo(')h(b)m(y)g ! (default.)630 4395 y Fn(mark-symlinked-directori)o(es)1110 ! 4504 y Fo(If)44 b(set)h(to)h(`)p Fn(on)p Fo(',)i(completed)d(names)g ! (whic)m(h)e(are)i(sym)m(b)s(olic)e(links)g(to)i(di-)1110 ! 4614 y(rectories)i(ha)m(v)m(e)g(a)g(slash)e(app)s(ended)f(\(sub)5 ! b(ject)47 b(to)g(the)f(v)-5 b(alue)46 b(of)g Fn(mark-)1110 ! 4724 y(directories)p Fo(\).)38 b(The)30 b(default)f(is)h(`)p ! Fn(off)p Fo('.)630 4902 y Fn(match-hidden-files)1110 ! 5011 y Fo(This)20 b(v)-5 b(ariable,)23 b(when)f(set)g(to)h(`)p ! Fn(on)p Fo(',)h(causes)f(Readline)e(to)i(matc)m(h)g(\014les)e(whose) ! 1110 5121 y(names)44 b(b)s(egin)f(with)g(a)h(`)p Fn(.)p ! Fo(')g(\(hidden)e(\014les\))i(when)f(p)s(erforming)f(\014lename)1110 ! 5230 y(completion,)i(unless)c(the)h(leading)f(`)p Fn(.)p ! Fo(')i(is)f(supplied)d(b)m(y)j(the)h(user)f(in)f(the)1110 ! 5340 y(\014lename)30 b(to)h(b)s(e)e(completed.)41 b(This)29 ! b(v)-5 b(ariable)29 b(is)g(`)p Fn(on)p Fo(')i(b)m(y)f(default.)p eop ! %%Page: 7 11 ! 7 10 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2151 b(7)630 299 y Fn(output-meta)1110 ! 408 y Fo(If)35 b(set)h(to)g(`)p Fn(on)p Fo(',)h(Readline)d(will)f ! (displa)m(y)g(c)m(haracters)k(with)d(the)i(eigh)m(th)f(bit)1110 ! 518 y(set)i(directly)e(rather)h(than)g(as)h(a)g(meta-pre\014xed)f ! (escap)s(e)h(sequence.)59 b(The)1110 628 y(default)30 ! b(is)f(`)p Fn(off)p Fo('.)630 789 y Fn(page-completions)1110 ! 898 y Fo(If)k(set)i(to)f(`)p Fn(on)p Fo(',)h(Readline)e(uses)g(an)h(in) ! m(ternal)f Fn(more)p Fo(-lik)m(e)f(pager)i(to)h(displa)m(y)1110 ! 1008 y(a)e(screenful)e(of)h(p)s(ossible)e(completions)i(at)h(a)g(time.) ! 46 b(This)30 b(v)-5 b(ariable)32 b(is)f(`)p Fn(on)p Fo(')1110 ! 1118 y(b)m(y)f(default.)630 1279 y Fn(print-completions-horizo)o(ntal)o ! (ly)1110 1388 y Fo(If)23 b(set)i(to)g(`)p Fn(on)p Fo(',)g(Readline)e ! (will)e(displa)m(y)h(completions)h(with)g(matc)m(hes)i(sorted)1110 ! 1498 y(horizon)m(tally)42 b(in)g(alphab)s(etical)g(order,)47 ! b(rather)c(than)g(do)m(wn)g(the)h(screen.)1110 1608 y(The)30 ! b(default)f(is)h(`)p Fn(off)p Fo('.)630 1769 y Fn ! (show-all-if-ambiguous)1110 1878 y Fo(This)e(alters)i(the)g(default)f ! (b)s(eha)m(vior)g(of)h(the)h(completion)e(functions.)39 ! b(If)29 b(set)1110 1988 y(to)f(`)p Fn(on)p Fo(',)g(w)m(ords)f(whic)m(h) ! f(ha)m(v)m(e)j(more)f(than)f(one)h(p)s(ossible)d(completion)h(cause) ! 1110 2097 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)f(immediately)h ! (instead)g(of)h(ringing)e(the)i(b)s(ell.)1110 2207 y(The)30 ! b(default)f(v)-5 b(alue)30 b(is)g(`)p Fn(off)p Fo('.)630 ! 2368 y Fn(show-all-if-unmodified)1110 2478 y Fo(This)37 ! b(alters)h(the)h(default)f(b)s(eha)m(vior)g(of)g(the)h(completion)f ! (functions)f(in)h(a)1110 2587 y(fashion)24 b(similar)f(to)j ! Fd(sho)m(w-all-if-am)m(biguous)p Fo(.)37 b(If)25 b(set)h(to)h(`)p ! Fn(on)p Fo(',)f(w)m(ords)f(whic)m(h)1110 2697 y(ha)m(v)m(e)32 ! b(more)f(than)f(one)i(p)s(ossible)c(completion)i(without)g(an)m(y)h(p)s ! (ossible)d(par-)1110 2807 y(tial)41 b(completion)h(\(the)h(p)s(ossible) ! d(completions)h(don't)h(share)g(a)h(common)1110 2916 ! y(pre\014x\))30 b(cause)g(the)h(matc)m(hes)g(to)g(b)s(e)f(listed)e ! (immediately)h(instead)g(of)i(ring-)1110 3026 y(ing)f(the)g(b)s(ell.)39 ! b(The)30 b(default)f(v)-5 b(alue)30 b(is)f(`)p Fn(off)p ! Fo('.)630 3187 y Fn(visible-stats)1110 3296 y Fo(If)i(set)i(to)f(`)p ! Fn(on)p Fo(',)h(a)f(c)m(haracter)i(denoting)d(a)h(\014le's)f(t)m(yp)s ! (e)h(is)f(app)s(ended)f(to)j(the)1110 3406 y(\014lename)d(when)f ! (listing)f(p)s(ossible)g(completions.)40 b(The)30 b(default)f(is)h(`)p ! Fn(off)p Fo('.)150 3567 y(Key)g(Bindings)630 3677 y(The)41 ! b(syn)m(tax)i(for)f(con)m(trolling)e(k)m(ey)j(bindings)c(in)i(the)h ! (init)e(\014le)h(is)g(simple.)73 b(First)42 b(y)m(ou)630 ! 3786 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)h(the)g(command)f(that)i ! (y)m(ou)f(w)m(an)m(t)g(to)g(c)m(hange.)41 b(The)27 b(follo)m(wing)630 ! 3896 y(sections)36 b(con)m(tain)g(tables)g(of)g(the)g(command)f(name,)j ! (the)e(default)f(k)m(eybinding,)g(if)g(an)m(y)-8 b(,)630 ! 4006 y(and)30 b(a)h(short)f(description)e(of)j(what)f(the)g(command)h ! (do)s(es.)630 4141 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g(name)g(of)g ! (the)g(command,)h(simply)d(place)i(on)f(a)i(line)d(in)h(the)h(init)630 ! 4251 y(\014le)d(the)h(name)f(of)h(the)g(k)m(ey)g(y)m(ou)g(wish)e(to)i ! (bind)e(the)i(command)f(to,)i(a)f(colon,)h(and)e(then)630 ! 4360 y(the)f(name)g(of)g(the)g(command.)46 b(The)31 b(name)h(of)g(the)g ! (k)m(ey)h(can)f(b)s(e)f(expressed)h(in)e(di\013eren)m(t)630 ! 4470 y(w)m(a)m(ys,)h(dep)s(ending)d(on)j(what)f(y)m(ou)h(\014nd)d(most) ! j(comfortable.)630 4605 y(In)k(addition)f(to)j(command)f(names,)i ! (readline)c(allo)m(ws)h(k)m(eys)i(to)g(b)s(e)e(b)s(ound)f(to)j(a)f ! (string)630 4715 y(that)31 b(is)e(inserted)h(when)f(the)i(k)m(ey)g(is)e ! (pressed)h(\(a)h Fd(macro)5 b Fo(\).)630 4876 y Fd(k)m(eyname)g ! Fo(:)42 b Fd(function-name)34 b Fo(or)d Fd(macro)1110 ! 4985 y(k)m(eyname)k Fo(is)28 b(the)g(name)h(of)g(a)g(k)m(ey)h(sp)s ! (elled)c(out)j(in)f(English.)37 b(F)-8 b(or)30 b(example:)1350 ! 5121 y Fn(Control-u:)45 b(universal-argument)1350 5230 ! y(Meta-Rubout:)f(backward-kill-word)1350 5340 y(Control-o:)h(">)i ! (output")p eop ! %%Page: 8 12 ! 8 11 bop 150 -116 a Fo(8)2645 b(GNU)31 b(Readline)e(Library)1110 ! 299 y(In)38 b(the)h(ab)s(o)m(v)m(e)h(example,)g Fg(C-u)e ! Fo(is)g(b)s(ound)e(to)k(the)e(function)g Fn(universal-)1110 ! 408 y(argument)p Fo(,)g Fg(M-DEL)e Fo(is)h(b)s(ound)f(to)i(the)g ! (function)f Fn(backward-kill-word)p Fo(,)1110 518 y(and)h ! Fg(C-o)g Fo(is)g(b)s(ound)f(to)j(run)d(the)j(macro)f(expressed)g(on)f ! (the)i(righ)m(t)e(hand)1110 628 y(side)29 b(\(that)j(is,)d(to)i(insert) ! f(the)g(text)i(`)p Fn(>)e(output)p Fo(')f(in)m(to)h(the)h(line\).)1110 ! 764 y(A)37 b(n)m(um)m(b)s(er)f(of)h(sym)m(b)s(olic)e(c)m(haracter)k ! (names)e(are)g(recognized)g(while)e(pro-)1110 873 y(cessing)23 ! b(this)g(k)m(ey)h(binding)d(syn)m(tax:)37 b Fd(DEL)p ! Fo(,)24 b Fd(ESC)p Fo(,)f Fd(ESCAPE)p Fo(,)g Fd(LFD)p ! Fo(,)h Fd(NEW-)1110 983 y(LINE)p Fo(,)30 b Fd(RET)p Fo(,)g ! Fd(RETURN)p Fo(,)h Fd(R)m(UBOUT)p Fo(,)g Fd(SP)-8 b(A)m(CE)p ! Fo(,)30 b Fd(SPC)p Fo(,)g(and)f Fd(T)-8 b(AB)p Fo(.)630 ! 1146 y Fn(")p Fd(k)m(eyseq)r Fn(")p Fo(:)41 b Fd(function-name)35 ! b Fo(or)30 b Fd(macro)1110 1256 y(k)m(eyseq)k Fo(di\013ers)c(from)g ! Fd(k)m(eyname)37 b Fo(ab)s(o)m(v)m(e)32 b(in)e(that)i(strings)e ! (denoting)g(an)h(en-)1110 1365 y(tire)i(k)m(ey)i(sequence)f(can)g(b)s ! (e)f(sp)s(eci\014ed,)g(b)m(y)g(placing)g(the)h(k)m(ey)g(sequence)g(in) ! 1110 1475 y(double)28 b(quotes.)41 b(Some)29 b Fh(gnu)h ! Fo(Emacs)f(st)m(yle)h(k)m(ey)g(escap)s(es)g(can)g(b)s(e)f(used,)g(as) ! 1110 1584 y(in)j(the)i(follo)m(wing)f(example,)h(but)f(the)h(sp)s ! (ecial)f(c)m(haracter)i(names)f(are)g(not)1110 1694 y(recognized.)1350 ! 1830 y Fn("\\C-u":)46 b(universal-argument)1350 1940 ! y("\\C-x\\C-r":)f(re-read-init-file)1350 2049 y("\\e[11~":)g("Function) ! h(Key)g(1")1110 2186 y Fo(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)73 ! b Fg(C-u)64 b Fo(is)f(again)i(b)s(ound)d(to)k(the)e(function)1110 ! 2295 y Fn(universal-argument)39 b Fo(\(just)k(as)h(it)f(w)m(as)h(in)f ! (the)g(\014rst)g(example\),)48 b(`)p Fg(C-x)1110 2405 ! y(C-r)p Fo(')41 b(is)f(b)s(ound)f(to)j(the)f(function)f ! Fn(re-read-init-file)p Fo(,)f(and)i(`)3462 2402 y Ff(h)p ! 3486 2349 139 4 v 3486 2405 a Fe(ESC)p 3486 2420 V 3620 ! 2402 a Ff(i)31 b(h)p 3705 2349 20 4 v 3705 2405 a Fe([)p ! 3705 2421 V 3720 2402 a Ff(i)1110 2511 y(h)p 1134 2458 ! 36 4 v 1134 2514 a Fe(1)p 1134 2530 V 1165 2511 a Ff(i)f(h)p ! 1250 2458 V 1250 2514 a Fe(1)p 1250 2530 V 1281 2511 ! a Ff(i)g(h)p 1365 2458 48 4 v 1365 2514 a Fn(~)p 1365 ! 2530 V 1409 2511 a Ff(i)1438 2514 y Fo(')h(is)e(b)s(ound)g(to)i(insert) ! e(the)i(text)g(`)p Fn(Function)d(Key)i(1)p Fo('.)630 ! 2677 y(The)f(follo)m(wing)f Fh(gnu)i Fo(Emacs)g(st)m(yle)g(escap)s(e)g ! (sequences)g(are)g(a)m(v)-5 b(ailable)29 b(when)g(sp)s(ecifying)630 ! 2787 y(k)m(ey)i(sequences:)630 2950 y Fg(\\C-)336 b Fo(con)m(trol)31 ! b(pre\014x)630 3113 y Fg(\\M-)336 b Fo(meta)31 b(pre\014x)630 ! 3276 y Fg(\\e)384 b Fo(an)30 b(escap)s(e)h(c)m(haracter)630 ! 3438 y Fg(\\\\)384 b Fo(bac)m(kslash)630 3601 y Fg(\\)p ! Fn(")1110 3598 y Ff(h)p 1134 3545 V 1134 3601 a Fn(")p ! 1134 3617 V 1178 3598 a Ff(i)1208 3601 y Fo(,)30 b(a)h(double)e ! (quotation)h(mark)630 3764 y Fg(\\')1110 3761 y Ff(h)p ! 1134 3708 20 4 v 1134 3764 a Fe(')p 1134 3780 V 1150 ! 3761 a Ff(i)1179 3764 y Fo(,)h(a)g(single)e(quote)i(or)f(ap)s(ostrophe) ! 630 3927 y(In)d(addition)f(to)i(the)g Fh(gnu)f Fo(Emacs)h(st)m(yle)g ! (escap)s(e)g(sequences,)h(a)f(second)f(set)h(of)g(bac)m(kslash)630 ! 4037 y(escap)s(es)j(is)e(a)m(v)-5 b(ailable:)630 4200 ! y Fn(\\a)384 b Fo(alert)30 b(\(b)s(ell\))630 4363 y Fn(\\b)384 ! b Fo(bac)m(kspace)630 4525 y Fn(\\d)g Fo(delete)630 4688 ! y Fn(\\f)g Fo(form)30 b(feed)630 4851 y Fn(\\n)384 b ! Fo(newline)630 5014 y Fn(\\r)g Fo(carriage)31 b(return)630 ! 5177 y Fn(\\t)384 b Fo(horizon)m(tal)30 b(tab)630 5340 ! y Fn(\\v)384 b Fo(v)m(ertical)30 b(tab)p eop ! %%Page: 9 13 ! 9 12 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2151 b(9)630 299 y Fn(\\)p Fg(nnn)288 ! b Fo(the)35 b(eigh)m(t-bit)f(c)m(haracter)i(whose)e(v)-5 ! b(alue)34 b(is)g(the)g(o)s(ctal)h(v)-5 b(alue)34 b Fd(nnn)f ! Fo(\(one)i(to)1110 408 y(three)c(digits\))630 564 y Fn(\\x)p ! Fg(HH)288 b Fo(the)40 b(eigh)m(t-bit)f(c)m(haracter)i(whose)e(v)-5 ! b(alue)38 b(is)h(the)g(hexadecimal)g(v)-5 b(alue)39 b ! Fd(HH)1110 674 y Fo(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630 ! 830 y(When)37 b(en)m(tering)g(the)h(text)g(of)g(a)g(macro,)i(single)c ! (or)h(double)f(quotes)i(m)m(ust)f(b)s(e)g(used)f(to)630 ! 939 y(indicate)21 b(a)g(macro)h(de\014nition.)36 b(Unquoted)21 ! b(text)i(is)d(assumed)h(to)h(b)s(e)f(a)h(function)e(name.)38 ! b(In)630 1049 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23 ! b(the)e(bac)m(kslash)g(escap)s(es)h(describ)s(ed)d(ab)s(o)m(v)m(e)k ! (are)e(expanded.)37 b(Bac)m(kslash)630 1158 y(will)g(quote)k(an)m(y)f ! (other)g(c)m(haracter)i(in)c(the)j(macro)f(text,)k(including)36 ! b(`)p Fn(")p Fo(')k(and)g(`)p Fn(')p Fo('.)69 b(F)-8 ! b(or)630 1268 y(example,)27 b(the)f(follo)m(wing)e(binding)e(will)h ! (mak)m(e)k(`)p Fg(C-x)j Fn(\\)p Fo(')c(insert)e(a)i(single)f(`)p ! Fn(\\)p Fo(')h(in)m(to)f(the)h(line:)870 1401 y Fn("\\C-x\\\\":)45 ! b("\\\\")150 1619 y Fc(1.3.2)63 b(Conditional)41 b(Init)g(Constructs) ! 275 1862 y Fo(Readline)34 b(implemen)m(ts)f(a)j(facilit)m(y)f(similar)d ! (in)i(spirit)f(to)j(the)g(conditional)e(compilation)g(features)150 ! 1971 y(of)h(the)f(C)g(prepro)s(cessor)g(whic)m(h)f(allo)m(ws)h(k)m(ey)h ! (bindings)c(and)j(v)-5 b(ariable)33 b(settings)i(to)g(b)s(e)f(p)s ! (erformed)f(as)150 2081 y(the)e(result)e(of)h(tests.)42 ! b(There)30 b(are)h(four)e(parser)h(directiv)m(es)g(used.)150 ! 2237 y Fn($if)336 b Fo(The)31 b Fn($if)f Fo(construct)i(allo)m(ws)f ! (bindings)d(to)k(b)s(e)e(made)i(based)f(on)g(the)g(editing)f(mo)s(de,)i ! (the)630 2346 y(terminal)37 b(b)s(eing)f(used,)k(or)e(the)g ! (application)e(using)h(Readline.)62 b(The)38 b(text)h(of)f(the)g(test) ! 630 2456 y(extends)30 b(to)h(the)g(end)f(of)g(the)h(line;)e(no)h(c)m ! (haracters)i(are)f(required)d(to)j(isolate)g(it.)630 ! 2612 y Fn(mode)288 b Fo(The)20 b Fn(mode=)g Fo(form)g(of)h(the)g ! Fn($if)f Fo(directiv)m(e)h(is)f(used)g(to)h(test)h(whether)e(Readline) ! 1110 2721 y(is)28 b(in)h Fn(emacs)f Fo(or)h Fn(vi)g Fo(mo)s(de.)40 ! b(This)28 b(ma)m(y)i(b)s(e)e(used)h(in)f(conjunction)h(with)f(the)1110 ! 2831 y(`)p Fn(set)i(keymap)p Fo(')c(command,)i(for)f(instance,)h(to)g ! (set)g(bindings)d(in)h(the)i Fn(emacs-)1110 2940 y(standard)23 ! b Fo(and)h Fn(emacs-ctlx)f Fo(k)m(eymaps)i(only)f(if)g(Readline)g(is)g ! (starting)h(out)1110 3050 y(in)k Fn(emacs)g Fo(mo)s(de.)630 ! 3206 y Fn(term)288 b Fo(The)26 b Fn(term=)g Fo(form)g(ma)m(y)i(b)s(e)e ! (used)g(to)i(include)d(terminal-sp)s(eci\014c)f(k)m(ey)k(bind-)1110 ! 3315 y(ings,)37 b(p)s(erhaps)d(to)j(bind)d(the)i(k)m(ey)h(sequences)f ! (output)g(b)m(y)g(the)g(terminal's)1110 3425 y(function)23 ! b(k)m(eys.)39 b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)e(side)g(of)h ! (the)g(`)p Fn(=)p Fo(')g(is)f(tested)i(against)1110 3534 ! y(b)s(oth)k(the)h(full)e(name)i(of)g(the)g(terminal)f(and)g(the)i(p)s ! (ortion)d(of)i(the)g(terminal)1110 3644 y(name)k(b)s(efore)f(the)g ! (\014rst)g(`)p Fn(-)p Fo('.)50 b(This)32 b(allo)m(ws)h ! Fn(sun)g Fo(to)h(matc)m(h)g(b)s(oth)f Fn(sun)g Fo(and)1110 ! 3754 y Fn(sun-cmd)p Fo(,)c(for)h(instance.)630 3909 y ! Fn(application)1110 4019 y Fo(The)21 b Fd(application)g ! Fo(construct)h(is)f(used)g(to)i(include)d(application-sp)s(eci\014c)f ! (set-)1110 4129 y(tings.)38 b(Eac)m(h)26 b(program)e(using)f(the)i ! (Readline)e(library)g(sets)i(the)g Fd(application)1110 ! 4238 y(name)p Fo(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)f ! (v)-5 b(alue.)38 b(This)21 b(could)h(b)s(e)h(used)f(to)1110 ! 4348 y(bind)31 b(k)m(ey)i(sequences)g(to)h(functions)d(useful)g(for)i ! (a)g(sp)s(eci\014c)e(program.)48 b(F)-8 b(or)1110 4457 ! y(instance,)34 b(the)f(follo)m(wing)e(command)i(adds)f(a)i(k)m(ey)f ! (sequence)h(that)f(quotes)1110 4567 y(the)e(curren)m(t)f(or)g(previous) ! f(w)m(ord)h(in)f(Bash:)1350 4700 y Fn($if)47 b(Bash)1350 ! 4809 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350 ! 4919 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 5028 y($endif)150 ! 5184 y($endif)192 b Fo(This)28 b(command,)j(as)f(seen)h(in)e(the)h ! (previous)f(example,)h(terminates)g(an)h Fn($if)e Fo(command.)150 ! 5340 y Fn($else)240 b Fo(Commands)29 b(in)g(this)h(branc)m(h)f(of)i ! (the)f Fn($if)g Fo(directiv)m(e)g(are)h(executed)g(if)e(the)i(test)g ! (fails.)p eop ! %%Page: 10 14 ! 10 13 bop 150 -116 a Fo(10)2600 b(GNU)31 b(Readline)e(Library)150 ! 299 y Fn($include)96 b Fo(This)42 b(directiv)m(e)h(tak)m(es)i(a)e ! (single)g(\014lename)f(as)i(an)f(argumen)m(t)h(and)f(reads)g(commands) ! 630 408 y(and)38 b(bindings)d(from)j(that)i(\014le.)64 ! b(F)-8 b(or)39 b(example,)i(the)e(follo)m(wing)e(directiv)m(e)h(reads)g ! (from)630 518 y(`)p Fn(/etc/inputrc)p Fo(':)870 653 y ! Fn($include)46 b(/etc/inputrc)150 877 y Fc(1.3.3)63 b(Sample)40 ! b(Init)h(File)275 1121 y Fo(Here)31 b(is)e(an)h(example)h(of)f(an)g ! Fd(inputrc)k Fo(\014le.)41 b(This)28 b(illustrates)h(k)m(ey)i(binding,) ! d(v)-5 b(ariable)29 b(assignmen)m(t,)150 1230 y(and)h(conditional)e ! (syn)m(tax.)p eop ! %%Page: 11 15 ! 11 14 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2105 b(11)390 408 y Fn(#)47 b(This)g(file)g(controls)e ! (the)i(behaviour)e(of)j(line)e(input)h(editing)e(for)390 ! 518 y(#)i(programs)f(that)h(use)g(the)f(GNU)h(Readline)f(library.)93 ! b(Existing)390 628 y(#)47 b(programs)f(include)g(FTP,)g(Bash,)h(and)g ! (GDB.)390 737 y(#)390 847 y(#)g(You)g(can)g(re-read)f(the)h(inputrc)f ! (file)g(with)h(C-x)g(C-r.)390 956 y(#)g(Lines)g(beginning)e(with)i('#') ! g(are)g(comments.)390 1066 y(#)390 1176 y(#)g(First,)g(include)e(any)i ! (systemwide)e(bindings)h(and)h(variable)390 1285 y(#)g(assignments)e ! (from)i(/etc/Inputrc)390 1395 y($include)f(/etc/Inputrc)390 ! 1614 y(#)390 1724 y(#)h(Set)g(various)f(bindings)g(for)h(emacs)f(mode.) ! 390 1943 y(set)h(editing-mode)d(emacs)390 2162 y($if)j(mode=emacs)390 ! 2381 y(Meta-Control-h:)91 b(backward-kill-word)43 b(Text)k(after)f(the) ! h(function)f(name)g(is)h(ignored)p 3971 2401 42 76 v ! 390 2600 a(#)390 2710 y(#)g(Arrow)g(keys)f(in)i(keypad)e(mode)390 ! 2819 y(#)390 2929 y(#"\\M-OD":)379 b(backward-char)390 ! 3039 y(#"\\M-OC":)g(forward-char)390 3148 y(#"\\M-OA":)g ! (previous-history)390 3258 y(#"\\M-OB":)g(next-history)390 ! 3367 y(#)390 3477 y(#)47 b(Arrow)g(keys)f(in)i(ANSI)e(mode)390 ! 3587 y(#)390 3696 y("\\M-[D":)380 b(backward-char)390 ! 3806 y("\\M-[C":)g(forward-char)390 3915 y("\\M-[A":)g ! (previous-history)390 4025 y("\\M-[B":)g(next-history)390 ! 4134 y(#)390 4244 y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(keypad)f(mode) ! 390 4354 y(#)390 4463 y(#"\\M-\\C-OD":)331 b(backward-char)390 ! 4573 y(#"\\M-\\C-OC":)g(forward-char)390 4682 y(#"\\M-\\C-OA":)g ! (previous-history)390 4792 y(#"\\M-\\C-OB":)g(next-history)390 ! 4902 y(#)390 5011 y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(ANSI)g(mode) ! 390 5121 y(#)390 5230 y(#"\\M-\\C-[D":)331 b(backward-char)390 ! 5340 y(#"\\M-\\C-[C":)g(forward-char)p eop ! %%Page: 12 16 ! 12 15 bop 150 -116 a Fo(12)2600 b(GNU)31 b(Readline)e(Library)390 ! 299 y Fn(#"\\M-\\C-[A":)331 b(previous-history)390 408 ! y(#"\\M-\\C-[B":)g(next-history)390 628 y(C-q:)47 b(quoted-insert)390 ! 847 y($endif)390 1066 y(#)g(An)h(old-style)d(binding.)93 ! b(This)47 b(happens)f(to)h(be)g(the)g(default.)390 1176 ! y(TAB:)g(complete)390 1395 y(#)g(Macros)g(that)f(are)h(convenient)e ! (for)i(shell)f(interaction)390 1504 y($if)h(Bash)390 ! 1614 y(#)g(edit)g(the)g(path)390 1724 y("\\C-xp":)f ! ("PATH=${PATH}\\e\\C-e\\C-a)o(\\ef)o(\\C-f)o(")390 1833 ! y(#)h(prepare)f(to)h(type)g(a)h(quoted)e(word)g(--)390 ! 1943 y(#)h(insert)g(open)f(and)h(close)f(double)h(quotes)390 ! 2052 y(#)g(and)g(move)g(to)g(just)g(after)f(the)h(open)g(quote)390 ! 2162 y("\\C-x\\"":)e("\\"\\"\\C-b")390 2271 y(#)i(insert)g(a)g ! (backslash)e(\(testing)h(backslash)f(escapes)390 2381 ! y(#)i(in)h(sequences)d(and)i(macros\))390 2491 y("\\C-x\\\\":)e("\\\\") ! 390 2600 y(#)i(Quote)g(the)g(current)f(or)h(previous)e(word)390 ! 2710 y("\\C-xq":)h("\\eb\\"\\ef\\"")390 2819 y(#)h(Add)g(a)h(binding)e ! (to)h(refresh)f(the)h(line,)f(which)g(is)h(unbound)390 ! 2929 y("\\C-xr":)f(redraw-current-line)390 3039 y(#)h(Edit)g(variable)f ! (on)h(current)f(line.)390 3148 y("\\M-\\C-v":)f ! ("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-)o(a\\C-)o(y=")390 3258 ! y($endif)390 3477 y(#)i(use)g(a)h(visible)e(bell)g(if)h(one)g(is)h ! (available)390 3587 y(set)f(bell-style)e(visible)390 ! 3806 y(#)i(don't)g(strip)f(characters)f(to)i(7)h(bits)e(when)h(reading) ! 390 3915 y(set)g(input-meta)e(on)390 4134 y(#)i(allow)g(iso-latin1)e ! (characters)g(to)i(be)g(inserted)f(rather)390 4244 y(#)h(than)g ! (converted)e(to)j(prefix-meta)c(sequences)390 4354 y(set)j ! (convert-meta)d(off)390 4573 y(#)j(display)f(characters)f(with)i(the)g ! (eighth)f(bit)h(set)g(directly)390 4682 y(#)g(rather)g(than)f(as)h ! (meta-prefixed)e(characters)390 4792 y(set)i(output-meta)e(on)390 ! 5011 y(#)i(if)h(there)e(are)h(more)g(than)f(150)h(possible)f ! (completions)e(for)390 5121 y(#)j(a)h(word,)e(ask)h(the)g(user)g(if)g ! (he)g(wants)f(to)i(see)f(all)f(of)i(them)390 5230 y(set)f ! (completion-query-items)42 b(150)p eop ! %%Page: 13 17 ! 13 16 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2105 b(13)390 299 y Fn(#)47 b(For)g(FTP)390 ! 408 y($if)g(Ftp)390 518 y("\\C-xg":)f("get)g(\\M-?")390 ! 628 y("\\C-xt":)g("put)g(\\M-?")390 737 y("\\M-.":)g(yank-last-arg)390 ! 847 y($endif)150 1098 y Fm(1.4)68 b(Bindable)45 b(Readline)i(Commands) ! 275 1340 y Fo(This)29 b(section)j(describ)s(es)d(Readline)h(commands)h ! (that)h(ma)m(y)g(b)s(e)f(b)s(ound)e(to)j(k)m(ey)g(sequences.)44 ! b(Com-)150 1449 y(mand)30 b(names)g(without)f(an)h(accompan)m(ying)h(k) ! m(ey)h(sequence)e(are)h(un)m(b)s(ound)d(b)m(y)i(default.)275 ! 1582 y(In)25 b(the)h(follo)m(wing)f(descriptions,)g Fd(p)s(oin)m(t)i ! Fo(refers)f(to)h(the)f(curren)m(t)g(cursor)g(p)s(osition,)f(and)h ! Fd(mark)31 b Fo(refers)150 1691 y(to)40 b(a)f(cursor)f(p)s(osition)f ! (sa)m(v)m(ed)j(b)m(y)f(the)g Fn(set-mark)d Fo(command.)66 ! b(The)38 b(text)i(b)s(et)m(w)m(een)g(the)f(p)s(oin)m(t)f(and)150 ! 1801 y(mark)30 b(is)g(referred)f(to)i(as)g(the)f Fd(region)p ! Fo(.)150 2018 y Fc(1.4.1)63 b(Commands)40 b(F)-10 b(or)41 ! b(Mo)m(ving)150 2260 y Fn(beginning-of-line)26 b(\(C-a\))630 ! 2370 y Fo(Mo)m(v)m(e)32 b(to)g(the)e(start)h(of)g(the)f(curren)m(t)g ! (line.)150 2525 y Fn(end-of-line)d(\(C-e\))630 2635 y ! Fo(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150 ! 2790 y Fn(forward-char)c(\(C-f\))630 2899 y Fo(Mo)m(v)m(e)32 ! b(forw)m(ard)e(a)h(c)m(haracter.)150 3054 y Fn(backward-char)c(\(C-b\)) ! 630 3164 y Fo(Mo)m(v)m(e)32 b(bac)m(k)g(a)e(c)m(haracter.)150 ! 3319 y Fn(forward-word)d(\(M-f\))630 3429 y Fo(Mo)m(v)m(e)32 ! b(forw)m(ard)e(to)h(the)f(end)g(of)g(the)h(next)f(w)m(ord.)41 ! b(W)-8 b(ords)30 b(are)h(comp)s(osed)f(of)g(letters)h(and)630 ! 3538 y(digits.)150 3693 y Fn(backward-word)c(\(M-b\))630 ! 3803 y Fo(Mo)m(v)m(e)36 b(bac)m(k)e(to)g(the)g(start)g(of)g(the)g ! (curren)m(t)f(or)g(previous)f(w)m(ord.)50 b(W)-8 b(ords)34 ! b(are)g(comp)s(osed)630 3913 y(of)d(letters)f(and)g(digits.)150 ! 4068 y Fn(clear-screen)d(\(C-l\))630 4177 y Fo(Clear)f(the)h(screen)f ! (and)h(redra)m(w)f(the)h(curren)m(t)f(line,)g(lea)m(ving)g(the)h ! (curren)m(t)g(line)e(at)i(the)g(top)630 4287 y(of)k(the)f(screen.)150 ! 4442 y Fn(redraw-current-line)25 b(\(\))630 4552 y Fo(Refresh)30 ! b(the)g(curren)m(t)h(line.)39 b(By)30 b(default,)g(this)f(is)h(un)m(b)s ! (ound.)150 4769 y Fc(1.4.2)63 b(Commands)40 b(F)-10 b(or)41 ! b(Manipulating)h(The)f(History)150 5011 y Fn(accept-line)27 ! b(\(Newline)h(or)i(Return\))630 5121 y Fo(Accept)36 b(the)g(line)d ! (regardless)i(of)g(where)g(the)g(cursor)g(is.)54 b(If)34 ! b(this)g(line)g(is)g(non-empt)m(y)-8 b(,)37 b(it)630 ! 5230 y(ma)m(y)32 b(b)s(e)g(added)f(to)h(the)g(history)f(list)g(for)g ! (future)g(recall)h(with)e Fn(add_history\(\))p Fo(.)42 ! b(If)31 b(this)630 5340 y(line)e(is)g(a)i(mo)s(di\014ed)d(history)h ! (line,)g(the)i(history)e(line)g(is)g(restored)i(to)g(its)f(original)e ! (state.)p eop ! %%Page: 14 18 ! 14 17 bop 150 -116 a Fo(14)2600 b(GNU)31 b(Readline)e(Library)150 ! 299 y Fn(previous-history)d(\(C-p\))630 408 y Fo(Mo)m(v)m(e)32 ! b(`bac)m(k')g(through)e(the)g(history)g(list,)f(fetc)m(hing)h(the)h ! (previous)e(command.)150 586 y Fn(next-history)e(\(C-n\))630 ! 696 y Fo(Mo)m(v)m(e)32 b(`forw)m(ard')f(through)e(the)i(history)e ! (list,)h(fetc)m(hing)g(the)h(next)f(command.)150 873 ! y Fn(beginning-of-history)25 b(\(M-<\))630 983 y Fo(Mo)m(v)m(e)32 ! b(to)g(the)e(\014rst)g(line)e(in)i(the)g(history)-8 b(.)150 ! 1161 y Fn(end-of-history)26 b(\(M->\))630 1270 y Fo(Mo)m(v)m(e)32 ! b(to)g(the)e(end)g(of)g(the)h(input)d(history)-8 b(,)30 ! b(i.e.,)h(the)g(line)d(curren)m(tly)i(b)s(eing)f(en)m(tered.)150 ! 1448 y Fn(reverse-search-history)24 b(\(C-r\))630 1558 ! y Fo(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)f(at)h(the)f(curren)m(t)g ! (line)e(and)i(mo)m(ving)g(`up')f(through)h(the)g(his-)630 ! 1667 y(tory)g(as)f(necessary)-8 b(.)42 b(This)28 b(is)i(an)g(incremen)m ! (tal)g(searc)m(h.)150 1845 y Fn(forward-search-history)24 ! b(\(C-s\))630 1955 y Fo(Searc)m(h)30 b(forw)m(ard)f(starting)g(at)h ! (the)g(curren)m(t)f(line)f(and)h(mo)m(ving)g(`do)m(wn')g(through)g(the) ! h(the)630 2064 y(history)f(as)i(necessary)-8 b(.)41 b(This)29 ! b(is)g(an)i(incremen)m(tal)e(searc)m(h.)150 2242 y Fn ! (non-incremental-reverse-)o(sear)o(ch-h)o(ist)o(ory)24 ! b(\(M-p\))630 2352 y Fo(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)f(at)h ! (the)f(curren)m(t)g(line)e(and)i(mo)m(ving)g(`up')f(through)h(the)g ! (his-)630 2461 y(tory)36 b(as)g(necessary)h(using)d(a)j(non-incremen)m ! (tal)e(searc)m(h)h(for)g(a)g(string)f(supplied)e(b)m(y)j(the)630 ! 2571 y(user.)150 2748 y Fn(non-incremental-forward-)o(sear)o(ch-h)o ! (ist)o(ory)24 b(\(M-n\))630 2858 y Fo(Searc)m(h)30 b(forw)m(ard)f ! (starting)g(at)h(the)g(curren)m(t)f(line)f(and)h(mo)m(ving)g(`do)m(wn') ! g(through)g(the)h(the)630 2968 y(history)c(as)g(necessary)i(using)d(a)i ! (non-incremen)m(tal)e(searc)m(h)j(for)e(a)h(string)f(supplied)d(b)m(y)k ! (the)630 3077 y(user.)150 3255 y Fn(history-search-forward)d(\(\))630 ! 3364 y Fo(Searc)m(h)42 b(forw)m(ard)f(through)f(the)i(history)e(for)h ! (the)h(string)e(of)i(c)m(haracters)h(b)s(et)m(w)m(een)f(the)630 ! 3474 y(start)36 b(of)f(the)g(curren)m(t)g(line)e(and)i(the)g(p)s(oin)m ! (t.)54 b(This)33 b(is)i(a)g(non-incremen)m(tal)f(searc)m(h.)56 ! b(By)630 3584 y(default,)30 b(this)f(command)h(is)g(un)m(b)s(ound.)150 ! 3761 y Fn(history-search-backward)24 b(\(\))630 3871 ! y Fo(Searc)m(h)35 b(bac)m(kw)m(ard)g(through)f(the)h(history)f(for)h ! (the)f(string)g(of)h(c)m(haracters)h(b)s(et)m(w)m(een)g(the)630 ! 3981 y(start)g(of)f(the)g(curren)m(t)g(line)e(and)i(the)g(p)s(oin)m(t.) ! 54 b(This)33 b(is)i(a)g(non-incremen)m(tal)f(searc)m(h.)56 ! b(By)630 4090 y(default,)30 b(this)f(command)h(is)g(un)m(b)s(ound.)150 ! 4268 y Fn(yank-nth-arg)d(\(M-C-y\))630 4377 y Fo(Insert)e(the)i ! (\014rst)e(argumen)m(t)h(to)h(the)f(previous)f(command)g(\(usually)f ! (the)i(second)g(w)m(ord)g(on)630 4487 y(the)k(previous)f(line\))f(at)j ! (p)s(oin)m(t.)39 b(With)30 b(an)g(argumen)m(t)g Fd(n)p ! Fo(,)g(insert)e(the)j Fd(n)p Fo(th)e(w)m(ord)g(from)h(the)630 ! 4597 y(previous)25 b(command)i(\(the)h(w)m(ords)e(in)g(the)h(previous)e ! (command)i(b)s(egin)e(with)h(w)m(ord)h(0\).)40 b(A)630 ! 4706 y(negativ)m(e)27 b(argumen)m(t)f(inserts)e(the)i ! Fd(n)p Fo(th)f(w)m(ord)g(from)g(the)h(end)f(of)h(the)g(previous)e ! (command.)150 4884 y Fn(yank-last-arg)j(\(M-.)i(or)h(M-_\))630 ! 4994 y Fo(Insert)k(last)h(argumen)m(t)h(to)g(the)f(previous)e(command)i ! (\(the)h(last)e(w)m(ord)h(of)g(the)g(previous)630 5103 ! y(history)30 b(en)m(try\).)41 b(With)30 b(an)h(argumen)m(t,)g(b)s(eha)m ! (v)m(e)g(exactly)h(lik)m(e)e Fn(yank-nth-arg)p Fo(.)38 ! b(Succes-)630 5213 y(siv)m(e)c(calls)g(to)h Fn(yank-last-arg)c ! Fo(mo)m(v)m(e)36 b(bac)m(k)g(through)d(the)i(history)f(list,)g ! (inserting)f(the)630 5322 y(last)d(argumen)m(t)h(of)g(eac)m(h)g(line)e ! (in)g(turn.)p eop ! %%Page: 15 19 ! 15 18 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2105 b(15)150 299 y Fc(1.4.3)63 b(Commands)40 ! b(F)-10 b(or)41 b(Changing)g(T)-10 b(ext)150 547 y Fn(delete-char)27 ! b(\(C-d\))630 656 y Fo(Delete)40 b(the)f(c)m(haracter)i(at)e(p)s(oin)m ! (t.)65 b(If)39 b(p)s(oin)m(t)e(is)h(at)i(the)f(b)s(eginning)d(of)j(the) ! g(line,)h(there)630 766 y(are)d(no)g(c)m(haracters)i(in)c(the)j(line,)f ! (and)f(the)h(last)g(c)m(haracter)i(t)m(yp)s(ed)e(w)m(as)g(not)g(b)s ! (ound)e(to)630 875 y Fn(delete-char)p Fo(,)28 b(then)i(return)f ! Fh(eof)p Fo(.)150 1042 y Fn(backward-delete-char)c(\(Rubout\))630 ! 1152 y Fo(Delete)31 b(the)g(c)m(haracter)g(b)s(ehind)d(the)i(cursor.)40 ! b(A)30 b(n)m(umeric)f(argumen)m(t)i(means)f(to)h(kill)d(the)630 ! 1261 y(c)m(haracters)k(instead)d(of)i(deleting)e(them.)150 ! 1428 y Fn(forward-backward-delete-)o(char)24 b(\(\))630 ! 1538 y Fo(Delete)39 b(the)g(c)m(haracter)h(under)c(the)j(cursor,)h ! (unless)c(the)j(cursor)e(is)g(at)i(the)g(end)e(of)i(the)630 ! 1647 y(line,)31 b(in)f(whic)m(h)g(case)j(the)f(c)m(haracter)h(b)s ! (ehind)c(the)j(cursor)f(is)f(deleted.)45 b(By)32 b(default,)f(this)630 ! 1757 y(is)e(not)i(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 ! 1924 y Fn(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 2033 ! y Fo(Add)j(the)i(next)f(c)m(haracter)i(t)m(yp)s(ed)e(to)h(the)f(line)f ! (v)m(erbatim.)52 b(This)32 b(is)i(ho)m(w)g(to)h(insert)e(k)m(ey)630 ! 2143 y(sequences)e(lik)m(e)e Fg(C-q)p Fo(,)h(for)g(example.)150 ! 2310 y Fn(tab-insert)e(\(M-)802 2307 y Ff(h)p 825 2254 ! 148 4 v 825 2310 a Fe(T)-6 b(AB)p 825 2325 V 969 2307 ! a Ff(i)998 2310 y Fn(\))630 2419 y Fo(Insert)30 b(a)h(tab)f(c)m ! (haracter.)150 2586 y Fn(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o ! (\))630 2696 y Fo(Insert)g(y)m(ourself.)150 2862 y Fn(transpose-chars)c ! (\(C-t\))630 2972 y Fo(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)g ! (cursor)f(forw)m(ard)h(o)m(v)m(er)h(the)f(c)m(haracter)i(at)e(the)g ! (cursor,)630 3081 y(mo)m(ving)j(the)h(cursor)f(forw)m(ard)g(as)g(w)m ! (ell.)55 b(If)35 b(the)h(insertion)e(p)s(oin)m(t)g(is)g(at)j(the)e(end) ! g(of)h(the)630 3191 y(line,)22 b(then)g(this)f(transp)s(oses)g(the)h ! (last)g(t)m(w)m(o)h(c)m(haracters)g(of)f(the)h(line.)36 ! b(Negativ)m(e)24 b(argumen)m(ts)630 3301 y(ha)m(v)m(e)32 ! b(no)e(e\013ect.)150 3467 y Fn(transpose-words)c(\(M-t\))630 ! 3577 y Fo(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)f(past)h ! (the)h(w)m(ord)f(after)g(p)s(oin)m(t,)h(mo)m(ving)f(p)s(oin)m(t)f(past) ! h(that)630 3687 y(w)m(ord)c(as)h(w)m(ell.)39 b(If)27 ! b(the)i(insertion)d(p)s(oin)m(t)i(is)f(at)i(the)g(end)e(of)i(the)f ! (line,)g(this)f(transp)s(oses)h(the)630 3796 y(last)i(t)m(w)m(o)i(w)m ! (ords)e(on)g(the)h(line.)150 3963 y Fn(upcase-word)c(\(M-u\))630 ! 4073 y Fo(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))f ! (w)m(ord.)45 b(With)31 b(a)h(negativ)m(e)i(argumen)m(t,)f(upp)s(er-)630 ! 4182 y(case)e(the)g(previous)e(w)m(ord,)h(but)g(do)g(not)h(mo)m(v)m(e)h ! (the)e(cursor.)150 4349 y Fn(downcase-word)d(\(M-l\))630 ! 4458 y Fo(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))f ! (w)m(ord.)37 b(With)21 b(a)h(negativ)m(e)h(argumen)m(t,)h(lo)m(w)m ! (ercase)630 4568 y(the)31 b(previous)d(w)m(ord,)j(but)e(do)i(not)f(mo)m ! (v)m(e)i(the)f(cursor.)150 4735 y Fn(capitalize-word)26 ! b(\(M-c\))630 4844 y Fo(Capitalize)20 b(the)i(curren)m(t)f(\(or)g ! (follo)m(wing\))f(w)m(ord.)38 b(With)20 b(a)i(negativ)m(e)g(argumen)m ! (t,)i(capitalize)630 4954 y(the)31 b(previous)d(w)m(ord,)j(but)e(do)i ! (not)f(mo)m(v)m(e)i(the)f(cursor.)150 5121 y Fn(overwrite-mode)26 ! b(\(\))630 5230 y Fo(T)-8 b(oggle)34 b(o)m(v)m(erwrite)g(mo)s(de.)48 ! b(With)32 b(an)h(explicit)e(p)s(ositiv)m(e)h(n)m(umeric)g(argumen)m(t,) ! i(switc)m(hes)630 5340 y(to)22 b(o)m(v)m(erwrite)h(mo)s(de.)37 ! b(With)21 b(an)h(explicit)e(non-p)s(ositiv)m(e)g(n)m(umeric)h(argumen)m ! (t,)j(switc)m(hes)d(to)p eop ! %%Page: 16 20 ! 16 19 bop 150 -116 a Fo(16)2600 b(GNU)31 b(Readline)e(Library)630 ! 299 y(insert)g(mo)s(de.)41 b(This)29 b(command)i(a\013ects)h(only)d ! Fn(emacs)g Fo(mo)s(de;)i Fn(vi)f Fo(mo)s(de)g(do)s(es)g(o)m(v)m ! (erwrite)630 408 y(di\013eren)m(tly)-8 b(.)40 b(Eac)m(h)31 ! b(call)f(to)h Fn(readline\(\))c Fo(starts)k(in)e(insert)g(mo)s(de.)630 ! 539 y(In)f(o)m(v)m(erwrite)i(mo)s(de,)f(c)m(haracters)i(b)s(ound)c(to)j ! Fn(self-insert)c Fo(replace)j(the)h(text)g(at)g(p)s(oin)m(t)630 ! 648 y(rather)41 b(than)h(pushing)d(the)j(text)g(to)g(the)g(righ)m(t.)74 ! b(Characters)42 b(b)s(ound)d(to)j Fn(backward-)630 758 ! y(delete-char)27 b Fo(replace)k(the)f(c)m(haracter)i(b)s(efore)e(p)s ! (oin)m(t)g(with)f(a)h(space.)630 888 y(By)h(default,)e(this)h(command)g ! (is)f(un)m(b)s(ound.)150 1099 y Fc(1.4.4)63 b(Killing)42 ! b(And)e(Y)-10 b(anking)150 1339 y Fn(kill-line)28 b(\(C-k\))630 ! 1449 y Fo(Kill)g(the)i(text)i(from)e(p)s(oin)m(t)f(to)i(the)g(end)e(of) ! i(the)f(line.)150 1599 y Fn(backward-kill-line)25 b(\(C-x)30 ! b(Rubout\))630 1709 y Fo(Kill)e(bac)m(kw)m(ard)j(to)g(the)f(b)s ! (eginning)e(of)i(the)h(line.)150 1860 y Fn(unix-line-discard)26 ! b(\(C-u\))630 1969 y Fo(Kill)i(bac)m(kw)m(ard)j(from)e(the)i(cursor)f ! (to)h(the)f(b)s(eginning)e(of)j(the)f(curren)m(t)g(line.)150 ! 2120 y Fn(kill-whole-line)c(\(\))630 2230 y Fo(Kill)34 ! b(all)h(c)m(haracters)j(on)f(the)f(curren)m(t)h(line,)f(no)h(matter)g ! (where)f(p)s(oin)m(t)g(is.)58 b(By)36 b(default,)630 ! 2339 y(this)29 b(is)h(un)m(b)s(ound.)150 2490 y Fn(kill-word)e(\(M-d\)) ! 630 2600 y Fo(Kill)f(from)i(p)s(oin)m(t)f(to)i(the)g(end)e(of)i(the)f ! (curren)m(t)h(w)m(ord,)f(or)g(if)g(b)s(et)m(w)m(een)h(w)m(ords,)f(to)h ! (the)g(end)630 2709 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8 ! b(ord)31 b(b)s(oundaries)d(are)i(the)h(same)g(as)f Fn(forward-word)p ! Fo(.)150 2860 y Fn(backward-kill-word)25 b(\(M-)1183 ! 2857 y Ff(h)p 1207 2804 146 4 v 1207 2860 a Fe(DEL)p ! 1207 2875 V 1348 2857 a Ff(i)1378 2860 y Fn(\))630 2970 ! y Fo(Kill)h(the)j(w)m(ord)g(b)s(ehind)d(p)s(oin)m(t.)39 ! b(W)-8 b(ord)29 b(b)s(oundaries)e(are)i(the)g(same)g(as)g ! Fn(backward-word)p Fo(.)150 3120 y Fn(unix-word-rubout)d(\(C-w\))630 ! 3230 y Fo(Kill)j(the)j(w)m(ord)f(b)s(ehind)e(p)s(oin)m(t,)i(using)f ! (white)h(space)h(as)g(a)g(w)m(ord)f(b)s(oundary)-8 b(.)43 ! b(The)31 b(killed)630 3339 y(text)g(is)f(sa)m(v)m(ed)h(on)g(the)f ! (kill-ring.)150 3490 y Fn(unix-filename-rubout)25 b(\(\))630 ! 3600 y Fo(Kill)34 b(the)i(w)m(ord)g(b)s(ehind)e(p)s(oin)m(t,)j(using)e ! (white)g(space)i(and)f(the)g(slash)f(c)m(haracter)j(as)f(the)630 ! 3709 y(w)m(ord)30 b(b)s(oundaries.)38 b(The)30 b(killed)e(text)j(is)f ! (sa)m(v)m(ed)h(on)g(the)f(kill-ring.)150 3860 y Fn ! (delete-horizontal-space)24 b(\(\))630 3970 y Fo(Delete)32 ! b(all)d(spaces)i(and)e(tabs)i(around)e(p)s(oin)m(t.)40 ! b(By)31 b(default,)e(this)h(is)f(un)m(b)s(ound.)150 4121 ! y Fn(kill-region)e(\(\))630 4230 y Fo(Kill)h(the)i(text)i(in)d(the)h ! (curren)m(t)h(region.)40 b(By)31 b(default,)e(this)h(command)g(is)f(un) ! m(b)s(ound.)150 4381 y Fn(copy-region-as-kill)c(\(\))630 ! 4490 y Fo(Cop)m(y)34 b(the)g(text)h(in)e(the)h(region)f(to)i(the)f ! (kill)e(bu\013er,)i(so)g(it)g(can)g(b)s(e)f(y)m(ank)m(ed)i(righ)m(t)e ! (a)m(w)m(a)m(y)-8 b(.)630 4600 y(By)31 b(default,)e(this)h(command)g ! (is)f(un)m(b)s(ound.)150 4751 y Fn(copy-backward-word)c(\(\))630 ! 4860 y Fo(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)f(to)j ! (the)e(kill)e(bu\013er.)64 b(The)38 b(w)m(ord)g(b)s(oundaries)e(are)j ! (the)630 4970 y(same)31 b(as)f Fn(backward-word)p Fo(.)38 ! b(By)30 b(default,)g(this)f(command)h(is)g(un)m(b)s(ound.)150 ! 5121 y Fn(copy-forward-word)c(\(\))630 5230 y Fo(Cop)m(y)31 ! b(the)g(w)m(ord)g(follo)m(wing)e(p)s(oin)m(t)h(to)i(the)f(kill)e ! (bu\013er.)42 b(The)30 b(w)m(ord)h(b)s(oundaries)d(are)k(the)630 ! 5340 y(same)f(as)f Fn(forward-word)p Fo(.)38 b(By)30 ! b(default,)g(this)g(command)g(is)f(un)m(b)s(ound.)p eop ! %%Page: 17 21 ! 17 20 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2105 b(17)150 299 y Fn(yank)29 b(\(C-y\))630 ! 408 y Fo(Y)-8 b(ank)31 b(the)f(top)h(of)g(the)f(kill)e(ring)h(in)m(to)i ! (the)f(bu\013er)g(at)h(p)s(oin)m(t.)150 552 y Fn(yank-pop)d(\(M-y\))630 ! 661 y Fo(Rotate)36 b(the)f(kill-ring,)e(and)h(y)m(ank)h(the)f(new)g ! (top.)54 b(Y)-8 b(ou)35 b(can)g(only)e(do)i(this)e(if)h(the)h(prior)630 ! 771 y(command)30 b(is)g Fn(yank)f Fo(or)h Fn(yank-pop)p ! Fo(.)150 971 y Fc(1.4.5)63 b(Sp)s(ecifying)41 b(Numeric)f(Argumen)m(ts) ! 150 1207 y Fn(digit-argument)26 b(\()p Fg(M-0)p Fn(,)j ! Fg(M-1)p Fn(,)h(...)f Fg(M--)p Fn(\))630 1317 y Fo(Add)d(this)g(digit)f ! (to)j(the)f(argumen)m(t)g(already)g(accum)m(ulating,)g(or)g(start)h(a)f ! (new)f(argumen)m(t.)630 1427 y Fg(M--)j Fo(starts)i(a)g(negativ)m(e)h ! (argumen)m(t.)150 1570 y Fn(universal-argument)25 b(\(\))630 ! 1680 y Fo(This)f(is)g(another)i(w)m(a)m(y)g(to)h(sp)s(ecify)d(an)h ! (argumen)m(t.)40 b(If)25 b(this)f(command)i(is)e(follo)m(w)m(ed)h(b)m ! (y)h(one)630 1789 y(or)k(more)f(digits,)g(optionally)f(with)g(a)i ! (leading)f(min)m(us)f(sign,)h(those)h(digits)e(de\014ne)h(the)h(ar-)630 ! 1899 y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)f(follo)m(w)m(ed)g(b) ! m(y)h(digits,)g(executing)g Fn(universal-argument)630 ! 2008 y Fo(again)j(ends)f(the)h(n)m(umeric)e(argumen)m(t,)j(but)e(is)g ! (otherwise)g(ignored.)44 b(As)32 b(a)g(sp)s(ecial)f(case,)630 ! 2118 y(if)h(this)g(command)g(is)g(immediately)f(follo)m(w)m(ed)i(b)m(y) ! f(a)h(c)m(haracter)i(that)e(is)f(neither)g(a)h(digit)630 ! 2228 y(or)28 b(min)m(us)e(sign,)i(the)g(argumen)m(t)g(coun)m(t)h(for)e ! (the)i(next)f(command)f(is)g(m)m(ultiplied)e(b)m(y)i(four.)630 ! 2337 y(The)37 b(argumen)m(t)h(coun)m(t)f(is)g(initially)d(one,)39 ! b(so)f(executing)f(this)f(function)g(the)i(\014rst)e(time)630 ! 2447 y(mak)m(es)d(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)i(second)e ! (time)h(mak)m(es)g(the)g(argumen)m(t)g(coun)m(t)h(six-)630 ! 2556 y(teen,)e(and)f(so)h(on.)40 b(By)31 b(default,)f(this)f(is)g(not)i ! (b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150 2757 y Fc(1.4.6)63 ! b(Letting)40 b(Readline)h(T)m(yp)s(e)g(F)-10 b(or)42 ! b(Y)-10 b(ou)150 2993 y Fn(complete)28 b(\()610 2990 ! y Ff(h)p 634 2937 148 4 v 634 2993 a Fe(T)-6 b(AB)p 634 ! 3008 V 778 2990 a Ff(i)808 2993 y Fn(\))630 3102 y Fo(A)m(ttempt)24 ! b(to)f(p)s(erform)e(completion)h(on)h(the)g(text)g(b)s(efore)f(p)s(oin) ! m(t.)38 b(The)22 b(actual)h(completion)630 3212 y(p)s(erformed)29 ! b(is)g(application-sp)s(eci\014c.)38 b(The)30 b(default)g(is)f ! (\014lename)h(completion.)150 3355 y Fn(possible-completions)25 ! b(\(M-?\))630 3465 y Fo(List)30 b(the)g(p)s(ossible)e(completions)i(of) ! g(the)h(text)g(b)s(efore)f(p)s(oin)m(t.)150 3608 y Fn ! (insert-completions)25 b(\(M-*\))630 3718 y Fo(Insert)30 ! b(all)f(completions)h(of)h(the)g(text)g(b)s(efore)f(p)s(oin)m(t)g(that) ! h(w)m(ould)e(ha)m(v)m(e)j(b)s(een)e(generated)630 3827 ! y(b)m(y)g Fn(possible-completions)p Fo(.)150 3971 y Fn(menu-complete)d ! (\(\))630 4080 y Fo(Similar)21 b(to)j Fn(complete)p Fo(,)f(but)h ! (replaces)f(the)h(w)m(ord)g(to)g(b)s(e)f(completed)h(with)e(a)j(single) ! d(matc)m(h)630 4190 y(from)37 b(the)h(list)f(of)h(p)s(ossible)d ! (completions.)62 b(Rep)s(eated)39 b(execution)f(of)g ! Fn(menu-complete)630 4300 y Fo(steps)i(through)g(the)g(list)f(of)h(p)s ! (ossible)e(completions,)k(inserting)c(eac)m(h)k(matc)m(h)f(in)e(turn.) ! 630 4409 y(A)m(t)f(the)f(end)f(of)h(the)g(list)e(of)i(completions,)g ! (the)g(b)s(ell)e(is)h(rung)g(\(sub)5 b(ject)36 b(to)i(the)f(setting)630 ! 4519 y(of)f Fn(bell-style)p Fo(\))e(and)h(the)h(original)f(text)i(is)e ! (restored.)57 b(An)36 b(argumen)m(t)h(of)f Fd(n)f Fo(mo)m(v)m(es)i ! Fd(n)630 4628 y Fo(p)s(ositions)c(forw)m(ard)h(in)f(the)i(list)f(of)g ! (matc)m(hes;)39 b(a)c(negativ)m(e)h(argumen)m(t)f(ma)m(y)g(b)s(e)f ! (used)g(to)630 4738 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g ! (list.)63 b(This)37 b(command)h(is)f(in)m(tended)g(to)i(b)s(e)f(b)s ! (ound)e(to)630 4845 y Ff(h)p 654 4792 V 654 4848 a Fe(T)-6 ! b(AB)p 654 4863 V 798 4845 a Ff(i)828 4848 y Fo(,)30 ! b(but)g(is)f(un)m(b)s(ound)f(b)m(y)i(default.)150 4991 ! y Fn(delete-char-or-list)25 b(\(\))630 5101 y Fo(Deletes)j(the)f(c)m ! (haracter)h(under)e(the)h(cursor)f(if)g(not)h(at)g(the)g(b)s(eginning)e ! (or)h(end)h(of)g(the)g(line)630 5210 y(\(lik)m(e)i Fn(delete-char)p ! Fo(\).)37 b(If)29 b(at)h(the)f(end)f(of)i(the)f(line,)f(b)s(eha)m(v)m ! (es)i(iden)m(tically)d(to)i Fn(possible-)630 5320 y(completions)p ! Fo(.)38 b(This)28 b(command)i(is)g(un)m(b)s(ound)e(b)m(y)i(default.)p eop ! %%Page: 18 22 ! 18 21 bop 150 -116 a Fo(18)2600 b(GNU)31 b(Readline)e(Library)150 ! 299 y Fc(1.4.7)63 b(Keyb)s(oard)41 b(Macros)150 545 y ! Fn(start-kbd-macro)26 b(\(C-x)j(\(\))630 655 y Fo(Begin)h(sa)m(ving)h ! (the)f(c)m(haracters)i(t)m(yp)s(ed)e(in)m(to)g(the)h(curren)m(t)f(k)m ! (eyb)s(oard)g(macro.)150 818 y Fn(end-kbd-macro)d(\(C-x)i(\)\))630 ! 927 y Fo(Stop)e(sa)m(ving)g(the)h(c)m(haracters)g(t)m(yp)s(ed)f(in)m ! (to)h(the)f(curren)m(t)g(k)m(eyb)s(oard)g(macro)h(and)f(sa)m(v)m(e)i ! (the)630 1037 y(de\014nition.)150 1200 y Fn(call-last-kbd-macro)c ! (\(C-x)k(e\))630 1310 y Fo(Re-execute)37 b(the)e(last)g(k)m(eyb)s(oard) ! g(macro)h(de\014ned,)f(b)m(y)h(making)e(the)h(c)m(haracters)i(in)d(the) ! 630 1419 y(macro)d(app)s(ear)f(as)g(if)g(t)m(yp)s(ed)g(at)h(the)f(k)m ! (eyb)s(oard.)150 1651 y Fc(1.4.8)63 b(Some)40 b(Miscellaneous)j ! (Commands)150 1898 y Fn(re-read-init-file)26 b(\(C-x)j(C-r\))630 ! 2007 y Fo(Read)22 b(in)f(the)h(con)m(ten)m(ts)h(of)f(the)g ! Fd(inputrc)k Fo(\014le,)d(and)e(incorp)s(orate)g(an)m(y)i(bindings)18 ! b(or)k(v)-5 b(ariable)630 2117 y(assignmen)m(ts)30 b(found)f(there.)150 ! 2280 y Fn(abort)g(\(C-g\))630 2390 y Fo(Ab)s(ort)d(the)h(curren)m(t)f ! (editing)f(command)h(and)g(ring)g(the)g(terminal's)f(b)s(ell)g(\(sub)5 ! b(ject)26 b(to)i(the)630 2499 y(setting)i(of)h Fn(bell-style)p ! Fo(\).)150 2663 y Fn(do-uppercase-version)25 b(\(M-a,)k(M-b,)g(M-)p ! Fg(x)p Fn(,)g(...)o(\))630 2772 y Fo(If)e(the)h(meta\014ed)g(c)m ! (haracter)h Fd(x)34 b Fo(is)27 b(lo)m(w)m(ercase,)i(run)e(the)g ! (command)h(that)g(is)f(b)s(ound)e(to)k(the)630 2882 y(corresp)s(onding) ! f(upp)s(ercase)i(c)m(haracter.)150 3045 y Fn(prefix-meta)d(\()753 ! 3042 y Ff(h)p 777 2989 139 4 v 777 3045 a Fe(ESC)p 777 ! 3060 V 911 3042 a Ff(i)941 3045 y Fn(\))630 3155 y Fo(Metafy)39 ! b(the)e(next)h(c)m(haracter)h(t)m(yp)s(ed.)62 b(This)36 ! b(is)g(for)i(k)m(eyb)s(oards)f(without)f(a)i(meta)g(k)m(ey)-8 ! b(.)630 3264 y(T)m(yping)29 b(`)968 3261 y Ff(h)p 993 ! 3208 V 993 3264 a Fe(ESC)p 993 3280 V 1127 3261 a Ff(i)1187 ! 3264 y Fn(f)p Fo(')h(is)f(equiv)-5 b(alen)m(t)30 b(to)h(t)m(yping)f ! Fg(M-f)p Fo(.)150 3428 y Fn(undo)f(\(C-_)g(or)h(C-x)g(C-u\))630 ! 3537 y Fo(Incremen)m(tal)g(undo,)g(separately)g(remem)m(b)s(ered)g(for) ! g(eac)m(h)i(line.)150 3700 y Fn(revert-line)27 b(\(M-r\))630 ! 3810 y Fo(Undo)33 b(all)f(c)m(hanges)i(made)f(to)h(this)e(line.)47 ! b(This)31 b(is)h(lik)m(e)h(executing)g(the)g Fn(undo)f ! Fo(command)630 3920 y(enough)e(times)g(to)h(get)h(bac)m(k)f(to)g(the)f ! (b)s(eginning.)150 4083 y Fn(tilde-expand)d(\(M-~\))630 ! 4192 y Fo(P)m(erform)j(tilde)f(expansion)h(on)g(the)g(curren)m(t)h(w)m ! (ord.)150 4356 y Fn(set-mark)d(\(C-@\))630 4465 y Fo(Set)33 ! b(the)g(mark)f(to)i(the)f(p)s(oin)m(t.)47 b(If)32 b(a)h(n)m(umeric)f ! (argumen)m(t)h(is)f(supplied,)e(the)j(mark)g(is)e(set)630 ! 4575 y(to)g(that)g(p)s(osition.)150 4738 y Fn(exchange-point-and-mark) ! 24 b(\(C-x)29 b(C-x\))630 4848 y Fo(Sw)m(ap)i(the)g(p)s(oin)m(t)f(with) ! g(the)h(mark.)43 b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)g(is)g ! (set)i(to)f(the)h(sa)m(v)m(ed)630 4957 y(p)s(osition,)d(and)g(the)i ! (old)f(cursor)f(p)s(osition)g(is)g(sa)m(v)m(ed)j(as)e(the)h(mark.)150 ! 5121 y Fn(character-search)26 b(\(C-]\))630 5230 y Fo(A)f(c)m(haracter) ! h(is)e(read)h(and)f(p)s(oin)m(t)g(is)g(mo)m(v)m(ed)i(to)g(the)f(next)g ! (o)s(ccurrence)g(of)g(that)g(c)m(haracter.)630 5340 y(A)30 ! b(negativ)m(e)i(coun)m(t)f(searc)m(hes)g(for)f(previous)f(o)s ! (ccurrences.)p eop ! %%Page: 19 23 ! 19 22 bop 150 -116 a Fo(Chapter)30 b(1:)41 b(Command)29 ! b(Line)h(Editing)2105 b(19)150 299 y Fn(character-search-backwar)o(d)24 ! b(\(M-C-]\))630 408 y Fo(A)45 b(c)m(haracter)h(is)e(read)h(and)f(p)s ! (oin)m(t)g(is)g(mo)m(v)m(ed)i(to)f(the)g(previous)e(o)s(ccurrence)i(of) ! g(that)630 518 y(c)m(haracter.)d(A)31 b(negativ)m(e)g(coun)m(t)g(searc) ! m(hes)h(for)e(subsequen)m(t)f(o)s(ccurrences.)150 677 ! y Fn(insert-comment)d(\(M-#\))630 787 y Fo(Without)35 ! b(a)h(n)m(umeric)f(argumen)m(t,)i(the)f(v)-5 b(alue)35 ! b(of)h(the)g Fn(comment-begin)c Fo(v)-5 b(ariable)34 ! b(is)h(in-)630 897 y(serted)d(at)g(the)g(b)s(eginning)d(of)j(the)f ! (curren)m(t)h(line.)43 b(If)31 b(a)h(n)m(umeric)e(argumen)m(t)i(is)f ! (supplied,)630 1006 y(this)k(command)i(acts)g(as)g(a)g(toggle:)54 ! b(if)36 b(the)g(c)m(haracters)i(at)g(the)e(b)s(eginning)e(of)j(the)g ! (line)630 1116 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5 ! b(alue)30 b(of)g Fn(comment-begin)p Fo(,)e(the)i(v)-5 ! b(alue)30 b(is)g(inserted,)g(otherwise)g(the)630 1225 ! y(c)m(haracters)42 b(in)c Fn(comment-begin)f Fo(are)j(deleted)g(from)g ! (the)g(b)s(eginning)e(of)i(the)g(line.)69 b(In)630 1335 ! y(either)30 b(case,)i(the)e(line)f(is)g(accepted)j(as)f(if)e(a)i ! (newline)d(had)i(b)s(een)f(t)m(yp)s(ed.)150 1494 y Fn(dump-functions)d ! (\(\))630 1604 y Fo(Prin)m(t)f(all)h(of)g(the)h(functions)e(and)h ! (their)f(k)m(ey)i(bindings)c(to)28 b(the)e(Readline)f(output)h(stream.) ! 630 1714 y(If)31 b(a)h(n)m(umeric)f(argumen)m(t)h(is)f(supplied,)e(the) ! j(output)f(is)g(formatted)h(in)e(suc)m(h)i(a)g(w)m(a)m(y)g(that)630 ! 1823 y(it)e(can)h(b)s(e)e(made)i(part)f(of)g(an)h Fd(inputrc)j ! Fo(\014le.)40 b(This)28 b(command)i(is)g(un)m(b)s(ound)d(b)m(y)k ! (default.)150 1983 y Fn(dump-variables)26 b(\(\))630 ! 2092 y Fo(Prin)m(t)20 b(all)g(of)i(the)f(settable)h(v)-5 ! b(ariables)20 b(and)h(their)f(v)-5 b(alues)21 b(to)h(the)f(Readline)f ! (output)h(stream.)630 2202 y(If)31 b(a)h(n)m(umeric)f(argumen)m(t)h(is) ! f(supplied,)e(the)j(output)f(is)g(formatted)h(in)e(suc)m(h)i(a)g(w)m(a) ! m(y)g(that)630 2311 y(it)e(can)h(b)s(e)e(made)i(part)f(of)g(an)h ! Fd(inputrc)j Fo(\014le.)40 b(This)28 b(command)i(is)g(un)m(b)s(ound)d ! (b)m(y)k(default.)150 2471 y Fn(dump-macros)c(\(\))630 ! 2580 y Fo(Prin)m(t)33 b(all)f(of)i(the)g(Readline)e(k)m(ey)j(sequences) ! f(b)s(ound)e(to)i(macros)g(and)f(the)h(strings)f(they)630 ! 2690 y(output.)53 b(If)35 b(a)g(n)m(umeric)e(argumen)m(t)j(is)d ! (supplied,)g(the)i(output)g(is)e(formatted)j(in)d(suc)m(h)i(a)630 ! 2800 y(w)m(a)m(y)c(that)g(it)e(can)h(b)s(e)g(made)g(part)f(of)i(an)e ! Fd(inputrc)34 b Fo(\014le.)40 b(This)28 b(command)i(is)f(un)m(b)s(ound) ! e(b)m(y)630 2909 y(default.)150 3068 y Fn(emacs-editing-mode)e(\(C-e\)) ! 630 3178 y Fo(When)30 b(in)f Fn(vi)h Fo(command)g(mo)s(de,)g(this)g ! (causes)g(a)h(switc)m(h)f(to)h Fn(emacs)e Fo(editing)g(mo)s(de.)150 ! 3337 y Fn(vi-editing-mode)d(\(M-C-j\))630 3447 y Fo(When)k(in)f ! Fn(emacs)g Fo(editing)g(mo)s(de,)h(this)g(causes)g(a)h(switc)m(h)f(to)h ! Fn(vi)f Fo(editing)f(mo)s(de.)150 3704 y Fm(1.5)68 b(Readline)47 ! b(vi)e(Mo)t(de)275 3949 y Fo(While)22 b(the)i(Readline)e(library)f(do)s ! (es)j(not)g(ha)m(v)m(e)g(a)h(full)c(set)j(of)g Fn(vi)f ! Fo(editing)f(functions,)i(it)f(do)s(es)h(con)m(tain)150 ! 4058 y(enough)34 b(to)h(allo)m(w)e(simple)f(editing)h(of)h(the)g(line.) ! 50 b(The)34 b(Readline)e Fn(vi)i Fo(mo)s(de)f(b)s(eha)m(v)m(es)i(as)f ! (sp)s(eci\014ed)e(in)150 4168 y(the)f Fh(posix)e Fo(1003.2)k(standard.) ! 275 4302 y(In)28 b(order)g(to)i(switc)m(h)f(in)m(teractiv)m(ely)g(b)s ! (et)m(w)m(een)g Fn(emacs)f Fo(and)g Fn(vi)h Fo(editing)e(mo)s(des,)i ! (use)g(the)g(command)150 4412 y Fg(M-C-j)36 b Fo(\(b)s(ound)h(to)h ! (emacs-editing-mo)s(de)g(when)f(in)f Fn(vi)i Fo(mo)s(de)f(and)g(to)i ! (vi-editing-mo)s(de)d(in)g Fn(emacs)150 4521 y Fo(mo)s(de\).)41 ! b(The)30 b(Readline)f(default)g(is)g Fn(emacs)g Fo(mo)s(de.)275 ! 4656 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)d(in)h Fn(vi)g ! Fo(mo)s(de,)h(y)m(ou)h(are)f(already)g(placed)f(in)g(`insertion')f(mo)s ! (de,)i(as)h(if)e(y)m(ou)150 4765 y(had)d(t)m(yp)s(ed)g(an)g(`)p ! Fn(i)p Fo('.)39 b(Pressing)1215 4762 y Ff(h)p 1239 4709 ! 139 4 v 1239 4765 a Fe(ESC)p 1239 4781 V 1373 4762 a ! Ff(i)1429 4765 y Fo(switc)m(hes)26 b(y)m(ou)h(in)m(to)f(`command')g(mo) ! s(de,)h(where)f(y)m(ou)h(can)f(edit)g(the)150 4875 y(text)35 ! b(of)f(the)g(line)e(with)g(the)i(standard)f Fn(vi)g Fo(mo)m(v)m(emen)m ! (t)j(k)m(eys,)g(mo)m(v)m(e)f(to)f(previous)f(history)f(lines)g(with)150 ! 4985 y(`)p Fn(k)p Fo(')f(and)e(subsequen)m(t)h(lines)f(with)g(`)p ! Fn(j)p Fo(',)h(and)g(so)h(forth.)p eop ! %%Page: 20 24 ! 20 23 bop 150 -116 a Fo(20)2600 b(GNU)31 b(Readline)e(Library)p eop ! %%Page: 21 25 ! 21 24 bop 150 -116 a Fo(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m ! (ual)2104 b(21)150 299 y Fk(App)t(endix)53 b(A)40 b(Cop)l(ying)52 ! b(This)j(Man)l(ual)150 690 y Fm(A.1)67 b(GNU)45 b(F)-11 ! b(ree)45 b(Do)t(cumen)l(tation)h(License)1396 909 y Fo(V)-8 ! b(ersion)30 b(1.2,)i(No)m(v)m(em)m(b)s(er)g(2002)390 ! 1052 y(Cop)m(yrigh)m(t)842 1049 y(c)817 1052 y Fl(\015)e ! Fo(2000,2001,2002)36 b(F)-8 b(ree)32 b(Soft)m(w)m(are)f(F)-8 ! b(oundation,)31 b(Inc.)390 1161 y(59)g(T)-8 b(emple)30 ! b(Place,)h(Suite)e(330,)j(Boston,)g(MA)61 b(02111-1307,)35 ! b(USA)390 1380 y(Ev)m(ery)m(one)c(is)f(p)s(ermitted)f(to)i(cop)m(y)g ! (and)f(distribute)e(v)m(erbatim)i(copies)390 1490 y(of)h(this)e ! (license)g(do)s(cumen)m(t,)i(but)e(c)m(hanging)i(it)f(is)f(not)i(allo)m ! (w)m(ed.)199 1632 y(0.)61 b(PREAMBLE)330 1770 y(The)37 ! b(purp)s(ose)e(of)i(this)f(License)h(is)f(to)i(mak)m(e)g(a)g(man)m ! (ual,)g(textb)s(o)s(ok,)i(or)d(other)g(functional)f(and)330 ! 1880 y(useful)28 b(do)s(cumen)m(t)i Fd(free)36 b Fo(in)28 ! b(the)j(sense)f(of)g(freedom:)41 b(to)31 b(assure)e(ev)m(ery)m(one)j ! (the)e(e\013ectiv)m(e)i(freedom)330 1990 y(to)g(cop)m(y)g(and)f ! (redistribute)e(it,)i(with)g(or)g(without)f(mo)s(difying)f(it,)j ! (either)f(commercially)f(or)h(non-)330 2099 y(commercially)-8 ! b(.)53 b(Secondarily)-8 b(,)34 b(this)g(License)g(preserv)m(es)h(for)f ! (the)h(author)f(and)g(publisher)d(a)k(w)m(a)m(y)330 2209 ! y(to)i(get)g(credit)f(for)g(their)f(w)m(ork,)j(while)c(not)i(b)s(eing)f ! (considered)g(resp)s(onsible)e(for)j(mo)s(di\014cations)330 ! 2318 y(made)30 b(b)m(y)h(others.)330 2457 y(This)21 b(License)i(is)f(a) ! i(kind)d(of)j(\\cop)m(yleft",)i(whic)m(h)c(means)h(that)h(deriv)-5 ! b(ativ)m(e)22 b(w)m(orks)h(of)h(the)f(do)s(cumen)m(t)330 ! 2566 y(m)m(ust)34 b(themselv)m(es)g(b)s(e)f(free)h(in)f(the)h(same)g ! (sense.)51 b(It)34 b(complemen)m(ts)g(the)g(GNU)g(General)g(Public)330 ! 2676 y(License,)c(whic)m(h)f(is)h(a)g(cop)m(yleft)h(license)f(designed) ! f(for)h(free)h(soft)m(w)m(are.)330 2814 y(W)-8 b(e)31 ! b(ha)m(v)m(e)f(designed)f(this)f(License)h(in)f(order)h(to)i(use)e(it)g ! (for)g(man)m(uals)g(for)g(free)h(soft)m(w)m(are,)h(b)s(ecause)330 ! 2924 y(free)42 b(soft)m(w)m(are)i(needs)e(free)g(do)s(cumen)m(tation:) ! 64 b(a)42 b(free)h(program)f(should)e(come)j(with)e(man)m(uals)330 ! 3033 y(pro)m(viding)27 b(the)i(same)g(freedoms)f(that)i(the)f(soft)m(w) ! m(are)h(do)s(es.)40 b(But)29 b(this)e(License)i(is)f(not)h(limited)d ! (to)330 3143 y(soft)m(w)m(are)32 b(man)m(uals;)e(it)g(can)h(b)s(e)f ! (used)g(for)g(an)m(y)h(textual)g(w)m(ork,)g(regardless)f(of)h(sub)5 ! b(ject)30 b(matter)i(or)330 3252 y(whether)f(it)g(is)f(published)e(as)k ! (a)f(prin)m(ted)f(b)s(o)s(ok.)44 b(W)-8 b(e)32 b(recommend)f(this)g ! (License)g(principally)c(for)330 3362 y(w)m(orks)j(whose)h(purp)s(ose)d ! (is)i(instruction)e(or)i(reference.)199 3500 y(1.)61 ! b(APPLICABILITY)29 b(AND)j(DEFINITIONS)330 3639 y(This)38 ! b(License)i(applies)e(to)i(an)m(y)h(man)m(ual)e(or)h(other)g(w)m(ork,)i ! (in)d(an)m(y)h(medium,)h(that)f(con)m(tains)h(a)330 3748 ! y(notice)h(placed)f(b)m(y)g(the)h(cop)m(yrigh)m(t)g(holder)e(sa)m(ying) ! h(it)g(can)h(b)s(e)f(distributed)d(under)i(the)i(terms)330 ! 3858 y(of)c(this)e(License.)61 b(Suc)m(h)37 b(a)h(notice)g(gran)m(ts)g ! (a)g(w)m(orld-wide,)f(ro)m(y)m(alt)m(y-free)j(license,)e(unlimited)c ! (in)330 3967 y(duration,)48 b(to)e(use)f(that)g(w)m(ork)h(under)d(the)j ! (conditions)d(stated)j(herein.)84 b(The)45 b(\\Do)s(cumen)m(t",)330 ! 4077 y(b)s(elo)m(w,)28 b(refers)g(to)h(an)m(y)g(suc)m(h)f(man)m(ual)g ! (or)g(w)m(ork.)40 b(An)m(y)29 b(mem)m(b)s(er)e(of)i(the)f(public)e(is)h ! (a)i(licensee,)g(and)330 4187 y(is)24 b(addressed)g(as)h(\\y)m(ou".)40 ! b(Y)-8 b(ou)26 b(accept)g(the)f(license)f(if)g(y)m(ou)i(cop)m(y)-8 ! b(,)27 b(mo)s(dify)c(or)i(distribute)e(the)i(w)m(ork)330 ! 4296 y(in)k(a)i(w)m(a)m(y)g(requiring)d(p)s(ermission)f(under)i(cop)m ! (yrigh)m(t)i(la)m(w.)330 4435 y(A)j(\\Mo)s(di\014ed)e(V)-8 ! b(ersion")34 b(of)g(the)g(Do)s(cumen)m(t)g(means)g(an)m(y)g(w)m(ork)f ! (con)m(taining)h(the)g(Do)s(cumen)m(t)g(or)330 4544 y(a)k(p)s(ortion)e ! (of)i(it,)h(either)e(copied)g(v)m(erbatim,)i(or)e(with)g(mo)s ! (di\014cations)e(and/or)j(translated)f(in)m(to)330 4654 ! y(another)31 b(language.)330 4792 y(A)26 b(\\Secondary)g(Section")g(is) ! f(a)i(named)e(app)s(endix)e(or)j(a)h(fron)m(t-matter)g(section)f(of)g ! (the)g(Do)s(cumen)m(t)330 4902 y(that)c(deals)f(exclusiv)m(ely)f(with)g ! (the)h(relationship)e(of)i(the)h(publishers)17 b(or)k(authors)g(of)h ! (the)f(Do)s(cumen)m(t)330 5011 y(to)38 b(the)f(Do)s(cumen)m(t's)i(o)m ! (v)m(erall)e(sub)5 b(ject)37 b(\(or)h(to)g(related)f(matters\))h(and)f ! (con)m(tains)g(nothing)f(that)330 5121 y(could)j(fall)g(directly)g ! (within)f(that)j(o)m(v)m(erall)g(sub)5 b(ject.)70 b(\(Th)m(us,)42 ! b(if)d(the)i(Do)s(cumen)m(t)g(is)e(in)g(part)i(a)330 ! 5230 y(textb)s(o)s(ok)24 b(of)g(mathematics,)i(a)e(Secondary)f(Section) ! g(ma)m(y)h(not)g(explain)e(an)m(y)i(mathematics.\))39 ! b(The)330 5340 y(relationship)25 b(could)h(b)s(e)h(a)g(matter)i(of)e ! (historical)f(connection)h(with)f(the)i(sub)5 b(ject)27 ! b(or)g(with)f(related)p eop ! %%Page: 22 26 ! 22 25 bop 150 -116 a Fo(22)2600 b(GNU)31 b(Readline)e(Library)330 ! 299 y(matters,)38 b(or)d(of)h(legal,)g(commercial,)h(philosophical,)d ! (ethical)h(or)g(p)s(olitical)e(p)s(osition)h(regarding)330 ! 408 y(them.)330 549 y(The)25 b(\\In)m(v)-5 b(arian)m(t)26 ! b(Sections")g(are)g(certain)f(Secondary)h(Sections)f(whose)g(titles)g ! (are)h(designated,)h(as)330 659 y(b)s(eing)e(those)i(of)g(In)m(v)-5 ! b(arian)m(t)26 b(Sections,)i(in)d(the)i(notice)g(that)g(sa)m(ys)g(that) ! g(the)g(Do)s(cumen)m(t)g(is)f(released)330 769 y(under)g(this)h ! (License.)39 b(If)27 b(a)h(section)g(do)s(es)g(not)f(\014t)h(the)g(ab)s ! (o)m(v)m(e)h(de\014nition)c(of)j(Secondary)f(then)h(it)f(is)330 ! 878 y(not)32 b(allo)m(w)m(ed)g(to)g(b)s(e)g(designated)f(as)h(In)m(v)-5 ! b(arian)m(t.)45 b(The)31 b(Do)s(cumen)m(t)i(ma)m(y)f(con)m(tain)h(zero) ! f(In)m(v)-5 b(arian)m(t)330 988 y(Sections.)38 b(If)25 ! b(the)f(Do)s(cumen)m(t)i(do)s(es)e(not)h(iden)m(tify)e(an)m(y)i(In)m(v) ! -5 b(arian)m(t)24 b(Sections)h(then)f(there)h(are)g(none.)330 ! 1129 y(The)36 b(\\Co)m(v)m(er)i(T)-8 b(exts")38 b(are)f(certain)f ! (short)h(passages)g(of)g(text)g(that)h(are)f(listed,)g(as)f(F)-8 ! b(ron)m(t-Co)m(v)m(er)330 1238 y(T)g(exts)26 b(or)f(Bac)m(k-Co)m(v)m ! (er)j(T)-8 b(exts,)27 b(in)c(the)i(notice)h(that)f(sa)m(ys)h(that)g ! (the)f(Do)s(cumen)m(t)h(is)e(released)g(under)330 1348 ! y(this)h(License.)39 b(A)25 b(F)-8 b(ron)m(t-Co)m(v)m(er)29 ! b(T)-8 b(ext)26 b(ma)m(y)h(b)s(e)e(at)i(most)f(5)g(w)m(ords,)g(and)g(a) ! g(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext)26 b(ma)m(y)330 1457 ! y(b)s(e)k(at)h(most)g(25)g(w)m(ords.)330 1598 y(A)36 ! b(\\T)-8 b(ransparen)m(t")36 b(cop)m(y)g(of)g(the)f(Do)s(cumen)m(t)h ! (means)g(a)g(mac)m(hine-readable)f(cop)m(y)-8 b(,)38 ! b(represen)m(ted)330 1708 y(in)c(a)i(format)g(whose)g(sp)s ! (eci\014cation)e(is)h(a)m(v)-5 b(ailable)35 b(to)i(the)f(general)f ! (public,)g(that)h(is)f(suitable)f(for)330 1817 y(revising)c(the)i(do)s ! (cumen)m(t)f(straigh)m(tforw)m(ardly)g(with)f(generic)i(text)h(editors) ! e(or)g(\(for)h(images)g(com-)330 1927 y(p)s(osed)23 b(of)h(pixels\))e ! (generic)i(pain)m(t)f(programs)h(or)f(\(for)h(dra)m(wings\))f(some)h ! (widely)e(a)m(v)-5 b(ailable)23 b(dra)m(wing)330 2037 ! y(editor,)29 b(and)g(that)g(is)f(suitable)g(for)h(input)e(to)j(text)g ! (formatters)f(or)g(for)g(automatic)h(translation)e(to)330 ! 2146 y(a)f(v)-5 b(ariet)m(y)27 b(of)g(formats)g(suitable)f(for)g(input) ! f(to)j(text)g(formatters.)40 b(A)27 b(cop)m(y)g(made)g(in)f(an)h ! (otherwise)330 2256 y(T)-8 b(ransparen)m(t)37 b(\014le)g(format)h ! (whose)f(markup,)i(or)e(absence)h(of)g(markup,)g(has)g(b)s(een)f ! (arranged)g(to)330 2365 y(th)m(w)m(art)27 b(or)g(discourage)f ! (subsequen)m(t)g(mo)s(di\014cation)f(b)m(y)i(readers)f(is)f(not)i(T)-8 ! b(ransparen)m(t.)39 b(An)27 b(image)330 2475 y(format)35 ! b(is)e(not)i(T)-8 b(ransparen)m(t)34 b(if)f(used)h(for)g(an)m(y)g ! (substan)m(tial)f(amoun)m(t)i(of)g(text.)53 b(A)35 b(cop)m(y)g(that)g ! (is)330 2585 y(not)c(\\T)-8 b(ransparen)m(t")31 b(is)e(called)h ! (\\Opaque".)330 2725 y(Examples)52 b(of)h(suitable)f(formats)h(for)g(T) ! -8 b(ransparen)m(t)53 b(copies)g(include)e(plain)g Fh(asci)r(i)i ! Fo(without)330 2835 y(markup,)41 b(T)-8 b(exinfo)39 b(input)f(format,)k ! (LaT)1775 2855 y(E)1826 2835 y(X)d(input)f(format,)43 ! b Fh(sgml)c Fo(or)g Fh(xml)g Fo(using)f(a)i(publicly)330 ! 2945 y(a)m(v)-5 b(ailable)31 b Fh(dtd)p Fo(,)g(and)g ! (standard-conforming)f(simple)g Fh(html)p Fo(,)h(P)m(ostScript)g(or)g ! Fh(pdf)g Fo(designed)f(for)330 3054 y(h)m(uman)37 b(mo)s(di\014cation.) ! 63 b(Examples)37 b(of)h(transparen)m(t)g(image)h(formats)f(include)e ! Fh(png)p Fo(,)k Fh(x)n(cf)e Fo(and)330 3164 y Fh(jpg)p ! Fo(.)63 b(Opaque)38 b(formats)g(include)e(proprietary)h(formats)h(that) ! h(can)f(b)s(e)g(read)g(and)f(edited)h(only)330 3273 y(b)m(y)h ! (proprietary)f(w)m(ord)h(pro)s(cessors,)j Fh(sgml)c Fo(or)i ! Fh(xml)e Fo(for)i(whic)m(h)e(the)h Fh(dtd)g Fo(and/or)g(pro)s(cessing) ! 330 3383 y(to)s(ols)31 b(are)g(not)g(generally)f(a)m(v)-5 ! b(ailable,)31 b(and)f(the)h(mac)m(hine-generated)h Fh(html)p ! Fo(,)e(P)m(ostScript)h(or)g Fh(pdf)330 3493 y Fo(pro)s(duced)e(b)m(y)h ! (some)h(w)m(ord)f(pro)s(cessors)g(for)g(output)g(purp)s(oses)e(only)-8 ! b(.)330 3634 y(The)34 b(\\Title)f(P)m(age")k(means,)e(for)f(a)h(prin)m ! (ted)e(b)s(o)s(ok,)i(the)f(title)g(page)h(itself,)f(plus)f(suc)m(h)g ! (follo)m(wing)330 3743 y(pages)28 b(as)g(are)g(needed)g(to)g(hold,)f ! (legibly)-8 b(,)27 b(the)h(material)f(this)g(License)g(requires)f(to)i ! (app)s(ear)f(in)g(the)330 3853 y(title)f(page.)40 b(F)-8 ! b(or)28 b(w)m(orks)e(in)f(formats)i(whic)m(h)f(do)g(not)h(ha)m(v)m(e)h ! (an)m(y)e(title)h(page)g(as)g(suc)m(h,)g(\\Title)f(P)m(age")330 ! 3962 y(means)31 b(the)f(text)i(near)e(the)h(most)g(prominen)m(t)f(app)s ! (earance)g(of)h(the)g(w)m(ork's)g(title,)f(preceding)g(the)330 ! 4072 y(b)s(eginning)e(of)i(the)h(b)s(o)s(dy)e(of)h(the)h(text.)330 ! 4213 y(A)f(section)g(\\En)m(titled)f(XYZ")h(means)f(a)h(named)g ! (subunit)d(of)i(the)h(Do)s(cumen)m(t)h(whose)e(title)g(either)330 ! 4322 y(is)e(precisely)f(XYZ)i(or)f(con)m(tains)h(XYZ)g(in)e(paren)m ! (theses)j(follo)m(wing)d(text)j(that)f(translates)g(XYZ)f(in)330 ! 4432 y(another)e(language.)39 b(\(Here)26 b(XYZ)f(stands)f(for)h(a)g ! (sp)s(eci\014c)f(section)h(name)g(men)m(tioned)g(b)s(elo)m(w,)g(suc)m ! (h)330 4542 y(as)j(\\Ac)m(kno)m(wledgemen)m(ts",)k(\\Dedications",)d ! (\\Endorsemen)m(ts",)g(or)f(\\History".\))41 b(T)-8 b(o)29 ! b(\\Preserv)m(e)330 4651 y(the)34 b(Title")f(of)g(suc)m(h)h(a)g ! (section)f(when)g(y)m(ou)h(mo)s(dify)d(the)j(Do)s(cumen)m(t)h(means)e ! (that)h(it)f(remains)g(a)330 4761 y(section)e(\\En)m(titled)e(XYZ")i ! (according)f(to)h(this)f(de\014nition.)330 4902 y(The)d(Do)s(cumen)m(t) ! i(ma)m(y)f(include)d(W)-8 b(arran)m(t)m(y)30 b(Disclaimers)c(next)i(to) ! g(the)g(notice)g(whic)m(h)e(states)j(that)330 5011 y(this)k(License)g ! (applies)f(to)j(the)f(Do)s(cumen)m(t.)52 b(These)33 b(W)-8 ! b(arran)m(t)m(y)36 b(Disclaimers)c(are)j(considered)d(to)330 ! 5121 y(b)s(e)37 b(included)e(b)m(y)i(reference)h(in)f(this)f(License,)j ! (but)e(only)g(as)h(regards)f(disclaiming)e(w)m(arran)m(ties:)330 ! 5230 y(an)m(y)i(other)g(implication)e(that)i(these)g(W)-8 ! b(arran)m(t)m(y)39 b(Disclaimers)c(ma)m(y)j(ha)m(v)m(e)g(is)e(v)m(oid)g ! (and)g(has)h(no)330 5340 y(e\013ect)32 b(on)e(the)h(meaning)e(of)i ! (this)e(License.)p eop ! %%Page: 23 27 ! 23 26 bop 150 -116 a Fo(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m ! (ual)2104 b(23)199 299 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)330 ! 445 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)f(the)i(Do)s ! (cumen)m(t)h(in)e(an)m(y)h(medium,)g(either)g(commercially)f(or)330 ! 555 y(noncommercially)-8 b(,)45 b(pro)m(vided)c(that)i(this)e(License,) ! 46 b(the)c(cop)m(yrigh)m(t)h(notices,)j(and)c(the)h(license)330 ! 664 y(notice)36 b(sa)m(ying)g(this)e(License)i(applies)d(to)k(the)f(Do) ! s(cumen)m(t)g(are)g(repro)s(duced)e(in)h(all)f(copies,)k(and)330 ! 774 y(that)27 b(y)m(ou)g(add)f(no)h(other)f(conditions)f(whatso)s(ev)m ! (er)j(to)f(those)g(of)g(this)e(License.)39 b(Y)-8 b(ou)27 ! b(ma)m(y)g(not)g(use)330 883 y(tec)m(hnical)33 b(measures)f(to)i ! (obstruct)f(or)g(con)m(trol)g(the)g(reading)f(or)h(further)e(cop)m ! (ying)i(of)g(the)g(copies)330 993 y(y)m(ou)25 b(mak)m(e)g(or)g ! (distribute.)36 b(Ho)m(w)m(ev)m(er,)28 b(y)m(ou)d(ma)m(y)g(accept)h ! (comp)s(ensation)e(in)f(exc)m(hange)k(for)d(copies.)330 ! 1103 y(If)32 b(y)m(ou)g(distribute)e(a)j(large)f(enough)g(n)m(um)m(b)s ! (er)f(of)h(copies)g(y)m(ou)g(m)m(ust)h(also)f(follo)m(w)f(the)h ! (conditions)330 1212 y(in)d(section)i(3.)330 1358 y(Y)-8 ! b(ou)21 b(ma)m(y)h(also)e(lend)g(copies,)i(under)e(the)h(same)g ! (conditions)e(stated)j(ab)s(o)m(v)m(e,)i(and)c(y)m(ou)h(ma)m(y)g ! (publicly)330 1468 y(displa)m(y)29 b(copies.)199 1614 ! y(3.)61 b(COPYING)30 b(IN)g(QUANTITY)330 1760 y(If)25 ! b(y)m(ou)g(publish)d(prin)m(ted)h(copies)i(\(or)h(copies)f(in)f(media)g ! (that)i(commonly)f(ha)m(v)m(e)h(prin)m(ted)e(co)m(v)m(ers\))j(of)330 ! 1870 y(the)32 b(Do)s(cumen)m(t,)h(n)m(um)m(b)s(ering)d(more)i(than)f ! (100,)j(and)d(the)h(Do)s(cumen)m(t's)h(license)d(notice)i(requires)330 ! 1979 y(Co)m(v)m(er)j(T)-8 b(exts,)36 b(y)m(ou)f(m)m(ust)f(enclose)h ! (the)f(copies)g(in)f(co)m(v)m(ers)j(that)f(carry)-8 b(,)36 ! b(clearly)d(and)h(legibly)-8 b(,)34 b(all)330 2089 y(these)40 ! b(Co)m(v)m(er)g(T)-8 b(exts:)59 b(F)-8 b(ron)m(t-Co)m(v)m(er)41 ! b(T)-8 b(exts)40 b(on)f(the)g(fron)m(t)g(co)m(v)m(er,)44 ! b(and)38 b(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts)40 b(on)330 ! 2198 y(the)29 b(bac)m(k)h(co)m(v)m(er.)42 b(Both)30 b(co)m(v)m(ers)h(m) ! m(ust)e(also)g(clearly)f(and)h(legibly)e(iden)m(tify)g(y)m(ou)j(as)f ! (the)h(publisher)330 2308 y(of)k(these)h(copies.)52 b(The)34 ! b(fron)m(t)h(co)m(v)m(er)h(m)m(ust)e(presen)m(t)g(the)h(full)d(title)i ! (with)e(all)i(w)m(ords)f(of)i(the)f(title)330 2418 y(equally)c ! (prominen)m(t)f(and)h(visible.)40 b(Y)-8 b(ou)31 b(ma)m(y)g(add)g ! (other)g(material)f(on)h(the)g(co)m(v)m(ers)h(in)d(addition.)330 ! 2527 y(Cop)m(ying)35 b(with)g(c)m(hanges)i(limited)d(to)j(the)g(co)m(v) ! m(ers,)i(as)d(long)g(as)h(they)f(preserv)m(e)g(the)h(title)e(of)i(the) ! 330 2637 y(Do)s(cumen)m(t)h(and)e(satisfy)h(these)g(conditions,)h(can)f ! (b)s(e)g(treated)h(as)f(v)m(erbatim)g(cop)m(ying)g(in)f(other)330 ! 2746 y(resp)s(ects.)330 2892 y(If)c(the)h(required)e(texts)j(for)e ! (either)g(co)m(v)m(er)j(are)e(to)s(o)g(v)m(oluminous)e(to)i(\014t)g ! (legibly)-8 b(,)32 b(y)m(ou)h(should)e(put)330 3002 y(the)i(\014rst)f ! (ones)h(listed)e(\(as)j(man)m(y)f(as)g(\014t)g(reasonably\))f(on)h(the) ! g(actual)g(co)m(v)m(er,)i(and)e(con)m(tin)m(ue)g(the)330 ! 3112 y(rest)e(on)m(to)g(adjacen)m(t)h(pages.)330 3258 ! y(If)27 b(y)m(ou)g(publish)c(or)k(distribute)e(Opaque)h(copies)h(of)g ! (the)h(Do)s(cumen)m(t)f(n)m(um)m(b)s(ering)e(more)j(than)e(100,)330 ! 3367 y(y)m(ou)i(m)m(ust)g(either)g(include)d(a)k(mac)m(hine-readable)e ! (T)-8 b(ransparen)m(t)28 b(cop)m(y)h(along)f(with)e(eac)m(h)j(Opaque) ! 330 3477 y(cop)m(y)-8 b(,)38 b(or)d(state)h(in)e(or)h(with)f(eac)m(h)i ! (Opaque)e(cop)m(y)i(a)g(computer-net)m(w)m(ork)g(lo)s(cation)f(from)f ! (whic)m(h)330 3587 y(the)24 b(general)h(net)m(w)m(ork-using)f(public)d ! (has)j(access)i(to)f(do)m(wnload)e(using)g(public-standard)e(net)m(w)m ! (ork)330 3696 y(proto)s(cols)39 b(a)g(complete)g(T)-8 ! b(ransparen)m(t)39 b(cop)m(y)g(of)g(the)h(Do)s(cumen)m(t,)i(free)d(of)g ! (added)f(material.)65 b(If)330 3806 y(y)m(ou)39 b(use)g(the)g(latter)g ! (option,)h(y)m(ou)g(m)m(ust)e(tak)m(e)j(reasonably)d(pruden)m(t)f ! (steps,)k(when)d(y)m(ou)h(b)s(egin)330 3915 y(distribution)c(of)j ! (Opaque)g(copies)g(in)e(quan)m(tit)m(y)-8 b(,)42 b(to)c(ensure)g(that)h ! (this)e(T)-8 b(ransparen)m(t)38 b(cop)m(y)h(will)330 ! 4025 y(remain)29 b(th)m(us)h(accessible)g(at)h(the)f(stated)h(lo)s ! (cation)f(un)m(til)e(at)j(least)g(one)f(y)m(ear)h(after)g(the)f(last)g ! (time)330 4134 y(y)m(ou)37 b(distribute)d(an)j(Opaque)f(cop)m(y)i ! (\(directly)e(or)g(through)g(y)m(our)h(agen)m(ts)h(or)f(retailers\))f ! (of)h(that)330 4244 y(edition)29 b(to)i(the)g(public.)330 ! 4390 y(It)k(is)e(requested,)j(but)e(not)h(required,)f(that)h(y)m(ou)g ! (con)m(tact)h(the)f(authors)f(of)h(the)g(Do)s(cumen)m(t)g(w)m(ell)330 ! 4500 y(b)s(efore)28 b(redistributing)d(an)m(y)k(large)g(n)m(um)m(b)s ! (er)e(of)i(copies,)g(to)g(giv)m(e)g(them)g(a)g(c)m(hance)h(to)f(pro)m ! (vide)f(y)m(ou)330 4609 y(with)h(an)h(up)s(dated)f(v)m(ersion)h(of)h ! (the)f(Do)s(cumen)m(t.)199 4755 y(4.)61 b(MODIFICA)-8 ! b(TIONS)330 4902 y(Y)g(ou)26 b(ma)m(y)g(cop)m(y)g(and)f(distribute)e(a) ! j(Mo)s(di\014ed)e(V)-8 b(ersion)25 b(of)h(the)g(Do)s(cumen)m(t)g(under) ! e(the)h(conditions)330 5011 y(of)c(sections)g(2)h(and)e(3)h(ab)s(o)m(v) ! m(e,)k(pro)m(vided)19 b(that)j(y)m(ou)f(release)h(the)f(Mo)s(di\014ed)e ! (V)-8 b(ersion)21 b(under)e(precisely)330 5121 y(this)28 ! b(License,)h(with)f(the)h(Mo)s(di\014ed)e(V)-8 b(ersion)29 ! b(\014lling)d(the)j(role)g(of)g(the)g(Do)s(cumen)m(t,)h(th)m(us)f ! (licensing)330 5230 y(distribution)h(and)k(mo)s(di\014cation)e(of)j ! (the)f(Mo)s(di\014ed)e(V)-8 b(ersion)34 b(to)h(who)s(ev)m(er)f(p)s ! (ossesses)f(a)i(cop)m(y)g(of)330 5340 y(it.)40 b(In)30 ! b(addition,)f(y)m(ou)h(m)m(ust)h(do)f(these)h(things)e(in)g(the)i(Mo)s ! (di\014ed)d(V)-8 b(ersion:)p eop ! %%Page: 24 28 ! 24 27 bop 150 -116 a Fo(24)2600 b(GNU)31 b(Readline)e(Library)357 ! 299 y(A.)60 b(Use)33 b(in)e(the)i(Title)f(P)m(age)i(\(and)f(on)f(the)h ! (co)m(v)m(ers,)i(if)d(an)m(y\))h(a)g(title)f(distinct)f(from)i(that)g ! (of)g(the)510 408 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f ! (previous)e(v)m(ersions)h(\(whic)m(h)g(should,)g(if)g(there)h(w)m(ere)g ! (an)m(y)-8 b(,)510 518 y(b)s(e)31 b(listed)f(in)g(the)h(History)g ! (section)g(of)h(the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 ! b(ma)m(y)g(use)f(the)g(same)h(title)f(as)510 628 y(a)g(previous)e(v)m ! (ersion)g(if)h(the)g(original)f(publisher)e(of)j(that)h(v)m(ersion)f ! (giv)m(es)h(p)s(ermission.)360 758 y(B.)61 b(List)30 ! b(on)g(the)h(Title)e(P)m(age,)k(as)d(authors,)h(one)g(or)f(more)h(p)s ! (ersons)e(or)h(en)m(tities)h(resp)s(onsible)c(for)510 ! 867 y(authorship)d(of)i(the)h(mo)s(di\014cations)d(in)h(the)h(Mo)s ! (di\014ed)e(V)-8 b(ersion,)27 b(together)h(with)c(at)j(least)g(\014v)m ! (e)510 977 y(of)d(the)g(principal)d(authors)i(of)i(the)f(Do)s(cumen)m ! (t)g(\(all)f(of)i(its)e(principal)e(authors,)k(if)e(it)g(has)h(few)m ! (er)510 1087 y(than)30 b(\014v)m(e\),)h(unless)e(they)i(release)f(y)m ! (ou)h(from)f(this)f(requiremen)m(t.)359 1217 y(C.)60 ! b(State)32 b(on)e(the)h(Title)f(page)h(the)g(name)g(of)g(the)g ! (publisher)c(of)k(the)g(Mo)s(di\014ed)e(V)-8 b(ersion,)31 ! b(as)g(the)510 1326 y(publisher.)355 1456 y(D.)61 b(Preserv)m(e)31 ! b(all)e(the)i(cop)m(yrigh)m(t)g(notices)f(of)h(the)f(Do)s(cumen)m(t.) ! 363 1587 y(E.)60 b(Add)30 b(an)i(appropriate)e(cop)m(yrigh)m(t)i ! (notice)f(for)h(y)m(our)f(mo)s(di\014cations)e(adjacen)m(t)k(to)f(the)g ! (other)510 1696 y(cop)m(yrigh)m(t)f(notices.)365 1826 ! y(F.)61 b(Include,)27 b(immediately)f(after)i(the)h(cop)m(yrigh)m(t)f ! (notices,)h(a)f(license)f(notice)h(giving)f(the)h(public)510 ! 1936 y(p)s(ermission)21 b(to)26 b(use)e(the)g(Mo)s(di\014ed)f(V)-8 ! b(ersion)24 b(under)f(the)i(terms)f(of)h(this)e(License,)j(in)d(the)h ! (form)510 2045 y(sho)m(wn)30 b(in)f(the)h(Addendum)f(b)s(elo)m(w.)353 ! 2176 y(G.)61 b(Preserv)m(e)23 b(in)f(that)h(license)f(notice)h(the)g ! (full)e(lists)g(of)i(In)m(v)-5 b(arian)m(t)22 b(Sections)h(and)f ! (required)f(Co)m(v)m(er)510 2285 y(T)-8 b(exts)31 b(giv)m(en)f(in)f ! (the)i(Do)s(cumen)m(t's)g(license)f(notice.)357 2415 ! y(H.)60 b(Include)29 b(an)h(unaltered)f(cop)m(y)i(of)g(this)e(License.) ! 392 2545 y(I.)60 b(Preserv)m(e)33 b(the)f(section)g(En)m(titled)f ! (\\History",)i(Preserv)m(e)g(its)e(Title,)h(and)f(add)h(to)h(it)e(an)h ! (item)510 2655 y(stating)c(at)h(least)f(the)h(title,)f(y)m(ear,)i(new)d ! (authors,)i(and)e(publisher)d(of)29 b(the)f(Mo)s(di\014ed)e(V)-8 ! b(ersion)510 2765 y(as)32 b(giv)m(en)f(on)g(the)h(Title)e(P)m(age.)45 ! b(If)31 b(there)h(is)e(no)h(section)h(En)m(titled)e(\\History")i(in)e ! (the)h(Do)s(cu-)510 2874 y(men)m(t,)37 b(create)f(one)f(stating)g(the)g ! (title,)g(y)m(ear,)i(authors,)f(and)e(publisher)d(of)k(the)g(Do)s ! (cumen)m(t)510 2984 y(as)h(giv)m(en)g(on)g(its)g(Title)f(P)m(age,)k ! (then)d(add)g(an)g(item)f(describing)f(the)i(Mo)s(di\014ed)f(V)-8 ! b(ersion)36 b(as)510 3093 y(stated)31 b(in)e(the)i(previous)e(sen)m ! (tence.)378 3224 y(J.)60 b(Preserv)m(e)33 b(the)g(net)m(w)m(ork)g(lo)s ! (cation,)g(if)e(an)m(y)-8 b(,)34 b(giv)m(en)e(in)g(the)g(Do)s(cumen)m ! (t)h(for)g(public)c(access)34 b(to)510 3333 y(a)e(T)-8 ! b(ransparen)m(t)30 b(cop)m(y)i(of)g(the)f(Do)s(cumen)m(t,)h(and)f(lik)m ! (ewise)e(the)j(net)m(w)m(ork)g(lo)s(cations)e(giv)m(en)h(in)510 ! 3443 y(the)h(Do)s(cumen)m(t)g(for)g(previous)e(v)m(ersions)h(it)g(w)m ! (as)h(based)f(on.)45 b(These)31 b(ma)m(y)h(b)s(e)f(placed)g(in)g(the) ! 510 3552 y(\\History")26 b(section.)39 b(Y)-8 b(ou)25 ! b(ma)m(y)h(omit)f(a)g(net)m(w)m(ork)h(lo)s(cation)e(for)h(a)h(w)m(ork)f ! (that)g(w)m(as)h(published)510 3662 y(at)36 b(least)g(four)f(y)m(ears)i ! (b)s(efore)e(the)h(Do)s(cumen)m(t)h(itself,)f(or)f(if)g(the)h(original) ! e(publisher)e(of)k(the)510 3771 y(v)m(ersion)30 b(it)g(refers)g(to)h ! (giv)m(es)g(p)s(ermission.)354 3902 y(K.)60 b(F)-8 b(or)24 ! b(an)m(y)h(section)e(En)m(titled)g(\\Ac)m(kno)m(wledgemen)m(ts")j(or)e ! (\\Dedications",)i(Preserv)m(e)e(the)g(Title)510 4011 ! y(of)j(the)f(section,)i(and)e(preserv)m(e)h(in)e(the)i(section)f(all)g ! (the)g(substance)h(and)f(tone)h(of)f(eac)m(h)i(of)f(the)510 ! 4121 y(con)m(tributor)j(ac)m(kno)m(wledgemen)m(ts)i(and/or)e ! (dedications)f(giv)m(en)i(therein.)368 4251 y(L.)60 b(Preserv)m(e)36 ! b(all)e(the)i(In)m(v)-5 b(arian)m(t)35 b(Sections)g(of)g(the)h(Do)s ! (cumen)m(t,)h(unaltered)e(in)f(their)g(text)j(and)510 ! 4361 y(in)e(their)g(titles.)56 b(Section)36 b(n)m(um)m(b)s(ers)e(or)i ! (the)g(equiv)-5 b(alen)m(t)36 b(are)g(not)g(considered)f(part)h(of)g ! (the)510 4470 y(section)31 b(titles.)341 4600 y(M.)61 ! b(Delete)32 b(an)m(y)f(section)g(En)m(titled)e(\\Endorsemen)m(ts".)42 ! b(Suc)m(h)30 b(a)i(section)e(ma)m(y)i(not)f(b)s(e)f(included)510 ! 4710 y(in)f(the)i(Mo)s(di\014ed)d(V)-8 b(ersion.)357 ! 4840 y(N.)60 b(Do)29 b(not)g(retitle)f(an)m(y)g(existing)g(section)g ! (to)h(b)s(e)f(En)m(titled)f(\\Endorsemen)m(ts")i(or)f(to)h(con\015ict)f ! (in)510 4950 y(title)i(with)f(an)m(y)i(In)m(v)-5 b(arian)m(t)30 ! b(Section.)354 5080 y(O.)60 b(Preserv)m(e)31 b(an)m(y)g(W)-8 ! b(arran)m(t)m(y)32 b(Disclaimers.)330 5230 y(If)h(the)g(Mo)s(di\014ed)f ! (V)-8 b(ersion)33 b(includes)e(new)i(fron)m(t-matter)i(sections)e(or)g ! (app)s(endices)f(that)i(qualify)330 5340 y(as)28 b(Secondary)g ! (Sections)f(and)g(con)m(tain)i(no)e(material)h(copied)f(from)g(the)h ! (Do)s(cumen)m(t,)i(y)m(ou)e(ma)m(y)g(at)p eop ! %%Page: 25 29 ! 25 28 bop 150 -116 a Fo(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m ! (ual)2104 b(25)330 299 y(y)m(our)32 b(option)g(designate)h(some)f(or)h ! (all)e(of)h(these)h(sections)g(as)f(in)m(v)-5 b(arian)m(t.)46 ! b(T)-8 b(o)33 b(do)f(this,)g(add)g(their)330 408 y(titles)j(to)h(the)f ! (list)f(of)i(In)m(v)-5 b(arian)m(t)35 b(Sections)g(in)f(the)i(Mo)s ! (di\014ed)e(V)-8 b(ersion's)35 b(license)f(notice.)56 ! b(These)330 518 y(titles)30 b(m)m(ust)g(b)s(e)g(distinct)f(from)g(an)m ! (y)i(other)g(section)f(titles.)330 650 y(Y)-8 b(ou)43 ! b(ma)m(y)g(add)f(a)g(section)h(En)m(titled)e(\\Endorsemen)m(ts",)46 ! b(pro)m(vided)41 b(it)h(con)m(tains)g(nothing)g(but)330 ! 759 y(endorsemen)m(ts)30 b(of)g(y)m(our)f(Mo)s(di\014ed)f(V)-8 ! b(ersion)30 b(b)m(y)f(v)-5 b(arious)29 b(parties|for)g(example,)g ! (statemen)m(ts)j(of)330 869 y(p)s(eer)27 b(review)f(or)h(that)h(the)f ! (text)i(has)d(b)s(een)h(appro)m(v)m(ed)g(b)m(y)g(an)h(organization)f ! (as)g(the)h(authoritativ)m(e)330 978 y(de\014nition)g(of)j(a)f ! (standard.)330 1110 y(Y)-8 b(ou)29 b(ma)m(y)g(add)e(a)i(passage)g(of)g ! (up)e(to)i(\014v)m(e)g(w)m(ords)e(as)i(a)g(F)-8 b(ron)m(t-Co)m(v)m(er) ! 30 b(T)-8 b(ext,)30 b(and)e(a)g(passage)i(of)e(up)330 ! 1219 y(to)g(25)g(w)m(ords)e(as)i(a)f(Bac)m(k-Co)m(v)m(er)j(T)-8 ! b(ext,)29 b(to)f(the)f(end)f(of)i(the)f(list)f(of)h(Co)m(v)m(er)h(T)-8 ! b(exts)27 b(in)f(the)i(Mo)s(di\014ed)330 1329 y(V)-8 ! b(ersion.)57 b(Only)34 b(one)i(passage)h(of)f(F)-8 b(ron)m(t-Co)m(v)m ! (er)38 b(T)-8 b(ext)36 b(and)g(one)g(of)g(Bac)m(k-Co)m(v)m(er)j(T)-8 ! b(ext)36 b(ma)m(y)h(b)s(e)330 1439 y(added)27 b(b)m(y)g(\(or)h(through) ! f(arrangemen)m(ts)h(made)g(b)m(y\))g(an)m(y)g(one)f(en)m(tit)m(y)-8 ! b(.)41 b(If)27 b(the)h(Do)s(cumen)m(t)g(already)330 1548 ! y(includes)k(a)i(co)m(v)m(er)h(text)g(for)f(the)g(same)h(co)m(v)m(er,)h ! (previously)c(added)h(b)m(y)h(y)m(ou)g(or)g(b)m(y)g(arrangemen)m(t)330 ! 1658 y(made)h(b)m(y)g(the)h(same)f(en)m(tit)m(y)h(y)m(ou)g(are)f ! (acting)h(on)f(b)s(ehalf)e(of,)k(y)m(ou)f(ma)m(y)g(not)f(add)g ! (another;)j(but)330 1767 y(y)m(ou)c(ma)m(y)h(replace)f(the)g(old)f ! (one,)j(on)e(explicit)e(p)s(ermission)f(from)i(the)i(previous)d ! (publisher)e(that)330 1877 y(added)g(the)g(old)g(one.)330 ! 2008 y(The)25 b(author\(s\))h(and)f(publisher\(s\))d(of)k(the)f(Do)s ! (cumen)m(t)h(do)g(not)f(b)m(y)h(this)e(License)h(giv)m(e)h(p)s ! (ermission)330 2118 y(to)31 b(use)f(their)f(names)i(for)f(publicit)m(y) ! d(for)k(or)f(to)h(assert)g(or)f(imply)e(endorsemen)m(t)i(of)h(an)m(y)g ! (Mo)s(di\014ed)330 2228 y(V)-8 b(ersion.)199 2359 y(5.)61 ! b(COMBINING)31 b(DOCUMENTS)330 2491 y(Y)-8 b(ou)39 b(ma)m(y)g(com)m ! (bine)g(the)g(Do)s(cumen)m(t)g(with)f(other)g(do)s(cumen)m(ts)h ! (released)f(under)g(this)f(License,)330 2600 y(under)g(the)h(terms)g ! (de\014ned)f(in)g(section)h(4)h(ab)s(o)m(v)m(e)g(for)f(mo)s(di\014ed)e ! (v)m(ersions,)k(pro)m(vided)d(that)i(y)m(ou)330 2710 ! y(include)23 b(in)h(the)h(com)m(bination)g(all)f(of)i(the)f(In)m(v)-5 ! b(arian)m(t)25 b(Sections)g(of)h(all)e(of)h(the)h(original)d(do)s ! (cumen)m(ts,)330 2819 y(unmo)s(di\014ed,)i(and)h(list)f(them)i(all)e ! (as)i(In)m(v)-5 b(arian)m(t)27 b(Sections)f(of)h(y)m(our)g(com)m(bined) ! f(w)m(ork)g(in)g(its)g(license)330 2929 y(notice,)31 ! b(and)f(that)h(y)m(ou)f(preserv)m(e)h(all)e(their)h(W)-8 ! b(arran)m(t)m(y)32 b(Disclaimers.)330 3061 y(The)e(com)m(bined)f(w)m ! (ork)i(need)e(only)h(con)m(tain)g(one)h(cop)m(y)g(of)f(this)f(License,) ! i(and)e(m)m(ultiple)f(iden)m(tical)330 3170 y(In)m(v)-5 ! b(arian)m(t)32 b(Sections)g(ma)m(y)h(b)s(e)f(replaced)g(with)f(a)i ! (single)e(cop)m(y)-8 b(.)48 b(If)32 b(there)h(are)g(m)m(ultiple)d(In)m ! (v)-5 b(arian)m(t)330 3280 y(Sections)26 b(with)g(the)h(same)g(name)g ! (but)f(di\013eren)m(t)g(con)m(ten)m(ts,)j(mak)m(e)f(the)f(title)f(of)h ! (eac)m(h)h(suc)m(h)f(section)330 3389 y(unique)32 b(b)m(y)i(adding)e ! (at)j(the)f(end)g(of)g(it,)g(in)f(paren)m(theses,)j(the)e(name)g(of)g ! (the)g(original)e(author)i(or)330 3499 y(publisher)21 ! b(of)k(that)h(section)f(if)f(kno)m(wn,)i(or)f(else)g(a)g(unique)e(n)m ! (um)m(b)s(er.)38 b(Mak)m(e)26 b(the)g(same)f(adjustmen)m(t)330 ! 3608 y(to)g(the)g(section)f(titles)g(in)f(the)i(list)e(of)h(In)m(v)-5 ! b(arian)m(t)25 b(Sections)f(in)f(the)h(license)g(notice)h(of)f(the)h ! (com)m(bined)330 3718 y(w)m(ork.)330 3850 y(In)41 b(the)g(com)m ! (bination,)j(y)m(ou)d(m)m(ust)g(com)m(bine)g(an)m(y)h(sections)f(En)m ! (titled)f(\\History")i(in)e(the)h(v)-5 b(ari-)330 3959 ! y(ous)32 b(original)e(do)s(cumen)m(ts,)j(forming)e(one)h(section)g(En)m ! (titled)f(\\History";)j(lik)m(ewise)d(com)m(bine)h(an)m(y)330 ! 4069 y(sections)g(En)m(titled)e(\\Ac)m(kno)m(wledgemen)m(ts",)35 ! b(and)c(an)m(y)h(sections)g(En)m(titled)f(\\Dedications".)45 ! b(Y)-8 b(ou)330 4178 y(m)m(ust)30 b(delete)h(all)e(sections)i(En)m ! (titled)e(\\Endorsemen)m(ts.")199 4310 y(6.)61 b(COLLECTIONS)28 ! b(OF)i(DOCUMENTS)330 4441 y(Y)-8 b(ou)32 b(ma)m(y)h(mak)m(e)g(a)f ! (collection)f(consisting)g(of)h(the)g(Do)s(cumen)m(t)g(and)g(other)g ! (do)s(cumen)m(ts)f(released)330 4551 y(under)41 b(this)g(License,)k ! (and)d(replace)g(the)h(individual)38 b(copies)k(of)g(this)f(License)h ! (in)f(the)i(v)-5 b(arious)330 4661 y(do)s(cumen)m(ts)42 ! b(with)f(a)i(single)e(cop)m(y)j(that)f(is)e(included)f(in)h(the)i ! (collection,)i(pro)m(vided)c(that)j(y)m(ou)330 4770 y(follo)m(w)36 ! b(the)i(rules)d(of)i(this)f(License)h(for)g(v)m(erbatim)g(cop)m(ying)g ! (of)g(eac)m(h)h(of)f(the)h(do)s(cumen)m(ts)e(in)g(all)330 ! 4880 y(other)31 b(resp)s(ects.)330 5011 y(Y)-8 b(ou)32 ! b(ma)m(y)g(extract)h(a)f(single)e(do)s(cumen)m(t)h(from)g(suc)m(h)g(a)h ! (collection,)f(and)g(distribute)e(it)i(individu-)330 ! 5121 y(ally)j(under)f(this)h(License,)i(pro)m(vided)e(y)m(ou)h(insert)f ! (a)h(cop)m(y)h(of)f(this)f(License)g(in)m(to)h(the)h(extracted)330 ! 5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)g(this)f(License)h(in)g(all)f ! (other)i(resp)s(ects)f(regarding)g(v)m(erbatim)g(cop)m(ying)h(of)330 ! 5340 y(that)e(do)s(cumen)m(t.)p eop ! %%Page: 26 30 ! 26 29 bop 150 -116 a Fo(26)2600 b(GNU)31 b(Readline)e(Library)199 ! 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS) ! 330 428 y(A)d(compilation)f(of)h(the)g(Do)s(cumen)m(t)h(or)f(its)f ! (deriv)-5 b(ativ)m(es)28 b(with)e(other)j(separate)g(and)e(indep)s ! (enden)m(t)330 538 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)e(or)i ! (on)f(a)g(v)m(olume)g(of)h(a)f(storage)i(or)e(distribution)d(medium,)i ! (is)h(called)330 648 y(an)d(\\aggregate")k(if)29 b(the)h(cop)m(yrigh)m ! (t)h(resulting)d(from)h(the)i(compilation)d(is)h(not)i(used)e(to)i ! (limit)d(the)330 757 y(legal)e(righ)m(ts)g(of)h(the)g(compilation's)e ! (users)h(b)s(ey)m(ond)g(what)g(the)h(individual)22 b(w)m(orks)k(p)s ! (ermit.)38 b(When)330 867 y(the)28 b(Do)s(cumen)m(t)g(is)f(included)e ! (an)i(aggregate,)32 b(this)26 b(License)h(do)s(es)h(not)g(apply)e(to)i ! (the)g(other)g(w)m(orks)330 976 y(in)h(the)i(aggregate)i(whic)m(h)c ! (are)i(not)f(themselv)m(es)h(deriv)-5 b(ativ)m(e)30 b(w)m(orks)g(of)h ! (the)f(Do)s(cumen)m(t.)330 1106 y(If)22 b(the)h(Co)m(v)m(er)h(T)-8 ! b(ext)23 b(requiremen)m(t)f(of)h(section)g(3)g(is)f(applicable)f(to)i ! (these)h(copies)e(of)h(the)g(Do)s(cumen)m(t,)330 1215 ! y(then)f(if)f(the)i(Do)s(cumen)m(t)g(is)f(less)f(than)h(one)h(half)e ! (of)i(the)g(en)m(tire)f(aggregate,)27 b(the)c(Do)s(cumen)m(t's)g(Co)m ! (v)m(er)330 1325 y(T)-8 b(exts)27 b(ma)m(y)g(b)s(e)f(placed)g(on)h(co)m ! (v)m(ers)h(that)f(brac)m(k)m(et)h(the)f(Do)s(cumen)m(t)g(within)d(the)j ! (aggregate,)j(or)d(the)330 1435 y(electronic)35 b(equiv)-5 ! b(alen)m(t)34 b(of)i(co)m(v)m(ers)g(if)e(the)h(Do)s(cumen)m(t)h(is)e ! (in)g(electronic)h(form.)54 b(Otherwise)34 b(they)330 ! 1544 y(m)m(ust)c(app)s(ear)g(on)g(prin)m(ted)f(co)m(v)m(ers)j(that)f ! (brac)m(k)m(et)h(the)f(whole)e(aggregate.)199 1674 y(8.)61 ! b(TRANSLA)-8 b(TION)330 1803 y(T)g(ranslation)39 b(is)g(considered)f(a) ! j(kind)d(of)i(mo)s(di\014cation,)h(so)f(y)m(ou)g(ma)m(y)h(distribute)c ! (translations)330 1913 y(of)45 b(the)f(Do)s(cumen)m(t)h(under)e(the)h ! (terms)h(of)f(section)h(4.)83 b(Replacing)43 b(In)m(v)-5 ! b(arian)m(t)44 b(Sections)g(with)330 2022 y(translations)g(requires)g ! (sp)s(ecial)g(p)s(ermission)f(from)i(their)f(cop)m(yrigh)m(t)i ! (holders,)i(but)d(y)m(ou)g(ma)m(y)330 2132 y(include)22 ! b(translations)i(of)g(some)h(or)g(all)e(In)m(v)-5 b(arian)m(t)24 ! b(Sections)g(in)f(addition)g(to)i(the)g(original)e(v)m(ersions)330 ! 2242 y(of)32 b(these)f(In)m(v)-5 b(arian)m(t)32 b(Sections.)43 ! b(Y)-8 b(ou)32 b(ma)m(y)g(include)d(a)j(translation)e(of)i(this)e ! (License,)i(and)e(all)h(the)330 2351 y(license)40 b(notices)h(in)f(the) ! i(Do)s(cumen)m(t,)j(and)40 b(an)m(y)i(W)-8 b(arran)m(t)m(y)42 ! b(Disclaimers,)h(pro)m(vided)d(that)i(y)m(ou)330 2461 ! y(also)e(include)e(the)i(original)e(English)g(v)m(ersion)h(of)h(this)f ! (License)h(and)f(the)h(original)e(v)m(ersions)i(of)330 ! 2570 y(those)35 b(notices)f(and)f(disclaimers.)50 b(In)33 ! b(case)i(of)g(a)f(disagreemen)m(t)g(b)s(et)m(w)m(een)h(the)f ! (translation)g(and)330 2680 y(the)h(original)f(v)m(ersion)g(of)i(this)e ! (License)h(or)g(a)g(notice)h(or)f(disclaimer,)f(the)i(original)d(v)m ! (ersion)i(will)330 2790 y(prev)-5 b(ail.)330 2919 y(If)28 ! b(a)h(section)g(in)e(the)i(Do)s(cumen)m(t)h(is)d(En)m(titled)h(\\Ac)m ! (kno)m(wledgemen)m(ts",)j(\\Dedications",)f(or)f(\\His-)330 ! 3029 y(tory",)f(the)f(requiremen)m(t)e(\(section)i(4\))g(to)g(Preserv)m ! (e)g(its)e(Title)h(\(section)g(1\))h(will)d(t)m(ypically)h(require)330 ! 3138 y(c)m(hanging)30 b(the)h(actual)g(title.)199 3268 ! y(9.)61 b(TERMINA)-8 b(TION)330 3397 y(Y)g(ou)30 b(ma)m(y)h(not)f(cop)m ! (y)-8 b(,)31 b(mo)s(dify)-8 b(,)29 b(sublicense,)f(or)i(distribute)d ! (the)j(Do)s(cumen)m(t)g(except)h(as)f(expressly)330 3507 ! y(pro)m(vided)40 b(for)i(under)e(this)h(License.)74 b(An)m(y)42 ! b(other)g(attempt)h(to)g(cop)m(y)-8 b(,)46 b(mo)s(dify)-8 ! b(,)43 b(sublicense)d(or)330 3616 y(distribute)34 b(the)j(Do)s(cumen)m ! (t)g(is)f(v)m(oid,)i(and)e(will)e(automatically)i(terminate)h(y)m(our)f ! (righ)m(ts)g(under)330 3726 y(this)27 b(License.)39 b(Ho)m(w)m(ev)m ! (er,)31 b(parties)c(who)g(ha)m(v)m(e)i(receiv)m(ed)f(copies,)h(or)e ! (righ)m(ts,)h(from)g(y)m(ou)g(under)e(this)330 3836 y(License)36 ! b(will)e(not)j(ha)m(v)m(e)h(their)e(licenses)f(terminated)i(so)g(long)f ! (as)h(suc)m(h)f(parties)g(remain)g(in)f(full)330 3945 ! y(compliance.)154 4075 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e ! (LICENSE)330 4204 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8 ! b(oundation)42 b(ma)m(y)g(publish)c(new,)44 b(revised)c(v)m(ersions)h ! (of)h(the)g(GNU)g(F)-8 b(ree)330 4314 y(Do)s(cumen)m(tation)33 ! b(License)e(from)h(time)g(to)h(time.)45 b(Suc)m(h)31 ! b(new)h(v)m(ersions)f(will)f(b)s(e)h(similar)e(in)i(spirit)330 ! 4423 y(to)k(the)g(presen)m(t)f(v)m(ersion,)h(but)f(ma)m(y)h(di\013er)e ! (in)g(detail)g(to)i(address)f(new)g(problems)e(or)j(concerns.)330 ! 4533 y(See)c Fn(http://www.gnu.org/copy)o(left)o(/)p ! Fo(.)330 4663 y(Eac)m(h)f(v)m(ersion)f(of)h(the)f(License)g(is)g(giv)m ! (en)g(a)h(distinguishing)25 b(v)m(ersion)k(n)m(um)m(b)s(er.)39 ! b(If)29 b(the)g(Do)s(cumen)m(t)330 4772 y(sp)s(eci\014es)44 ! b(that)i(a)g(particular)d(n)m(um)m(b)s(ered)h(v)m(ersion)h(of)g(this)f ! (License)h(\\or)h(an)m(y)g(later)f(v)m(ersion")330 4882 ! y(applies)31 b(to)i(it,)g(y)m(ou)f(ha)m(v)m(e)i(the)f(option)f(of)g ! (follo)m(wing)f(the)i(terms)f(and)g(conditions)f(either)h(of)g(that)330 ! 4991 y(sp)s(eci\014ed)k(v)m(ersion)i(or)f(of)h(an)m(y)h(later)f(v)m ! (ersion)f(that)h(has)g(b)s(een)f(published)d(\(not)39 ! b(as)f(a)g(draft\))g(b)m(y)330 5101 y(the)33 b(F)-8 b(ree)34 ! b(Soft)m(w)m(are)f(F)-8 b(oundation.)48 b(If)32 b(the)h(Do)s(cumen)m(t) ! g(do)s(es)g(not)g(sp)s(ecify)e(a)i(v)m(ersion)f(n)m(um)m(b)s(er)g(of) ! 330 5210 y(this)h(License,)j(y)m(ou)e(ma)m(y)i(c)m(ho)s(ose)f(an)m(y)g ! (v)m(ersion)f(ev)m(er)h(published)c(\(not)k(as)g(a)f(draft\))h(b)m(y)f ! (the)h(F)-8 b(ree)330 5320 y(Soft)m(w)m(are)31 b(F)-8 ! b(oundation.)p eop ! %%Page: 27 31 ! 27 30 bop 150 -116 a Fo(App)s(endix)28 b(A:)i(Cop)m(ying)g(This)f(Man)m ! (ual)2104 b(27)150 299 y Fc(A.1.1)62 b(ADDENDUM:)41 b(Ho)m(w)g(to)g ! (use)g(this)g(License)g(for)g(y)m(our)g(do)s(cumen)m(ts)275 ! 543 y Fo(T)-8 b(o)27 b(use)g(this)f(License)h(in)f(a)i(do)s(cumen)m(t)f ! (y)m(ou)h(ha)m(v)m(e)g(written,)f(include)e(a)j(cop)m(y)g(of)f(the)h ! (License)f(in)f(the)150 653 y(do)s(cumen)m(t)k(and)g(put)g(the)g(follo) ! m(wing)f(cop)m(yrigh)m(t)i(and)f(license)f(notices)h(just)g(after)h ! (the)g(title)f(page:)468 765 y Fb(Copyright)42 b(\(C\))79 ! b Fa(year)88 b(your)40 b(name)p Fb(.)468 852 y(Permission)i(is)e ! (granted)g(to)g(copy,)h(distribute)g(and/or)g(modify)f(this)g(document) ! 468 939 y(under)h(the)f(terms)g(of)g(the)g(GNU)g(Free)g(Documentation)i ! (License,)f(Version)g(1.2)468 1026 y(or)f(any)g(later)g(version)h ! (published)h(by)d(the)h(Free)g(Software)h(Foundation;)468 ! 1113 y(with)g(no)e(Invariant)j(Sections,)f(no)f(Front-Cover)h(Texts,)g ! (and)f(no)f(Back-Cover)j(Texts.)468 1200 y(A)e(copy)g(of)g(the)g ! (license)g(is)g(included)h(in)f(the)g(section)h(entitled)g(``GNU)468 ! 1288 y(Free)g(Documentation)h(License''.)275 1410 y Fo(If)d(y)m(ou)h ! (ha)m(v)m(e)h(In)m(v)-5 b(arian)m(t)40 b(Sections,)i(F)-8 ! b(ron)m(t-Co)m(v)m(er)42 b(T)-8 b(exts)41 b(and)e(Bac)m(k-Co)m(v)m(er)k ! (T)-8 b(exts,)43 b(replace)d(the)150 1520 y(\\with...T)-8 ! b(exts.")42 b(line)28 b(with)i(this:)547 1632 y Fb(with)40 ! b(the)g(Invariant)h(Sections)g(being)g Fa(list)f(their)g(titles)p ! Fb(,)h(with)547 1719 y(the)f(Front-Cover)i(Texts)e(being)g ! Fa(list)p Fb(,)h(and)f(with)g(the)g(Back-Cover)h(Texts)547 ! 1806 y(being)f Fa(list)p Fb(.)275 1929 y Fo(If)34 b(y)m(ou)i(ha)m(v)m ! (e)g(In)m(v)-5 b(arian)m(t)35 b(Sections)g(without)f(Co)m(v)m(er)i(T)-8 ! b(exts,)38 b(or)d(some)g(other)h(com)m(bination)e(of)i(the)150 ! 2038 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g(alternativ)m(es)g(to)g ! (suit)e(the)i(situation.)275 2173 y(If)23 b(y)m(our)h(do)s(cumen)m(t)f ! (con)m(tains)h(non)m(trivial)e(examples)i(of)g(program)f(co)s(de,)j(w)m ! (e)e(recommend)g(releasing)150 2283 y(these)44 b(examples)e(in)g ! (parallel)f(under)h(y)m(our)h(c)m(hoice)h(of)f(free)g(soft)m(w)m(are)h ! (license,)i(suc)m(h)d(as)g(the)g(GNU)150 2392 y(General)30 ! b(Public)e(License,)j(to)g(p)s(ermit)d(their)i(use)g(in)f(free)h(soft)m ! (w)m(are.)p eop ! %%Page: 28 32 ! 28 31 bop 150 -116 a Fo(28)2600 b(GNU)31 b(Readline)e(Library)p eop %%Trailer diff -aNrc2 readline-4.3-patched/doc/rluserman.texi readline-5.0/doc/rluserman.texi *** readline-4.3-patched/doc/rluserman.texi Wed Dec 31 19:00:00 1969 --- readline-5.0/doc/rluserman.texi Tue Jul 27 09:29:18 2004 *************** *** 0 **** --- 1,88 ---- + \input texinfo @c -*-texinfo-*- + @comment %**start of header (This is for running Texinfo on a region.) + @setfilename rluserman.info + @settitle GNU Readline Library + @comment %**end of header (This is for running Texinfo on a region.) + + @setchapternewpage odd + + @include version.texi + + @copying + This manual describes the end user interface of the GNU Readline Library + (version @value{VERSION}, @value{UPDATED}), a library which aids in the + consistency of user interface across discrete programs which provide + a command line interface. + + Copyright @copyright{} 1988-2004 Free Software Foundation, Inc. + + Permission is granted to make and distribute verbatim copies of + this manual provided the copyright notice and this permission notice + are preserved on all copies. + + @quotation + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.1 or + any later version published by the Free Software Foundation; with no + Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' + and with the Back-Cover Texts as in (a) below. A copy of the license is + included in the section entitled ``GNU Free Documentation License.'' + + (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify + this GNU Manual, like GNU software. Copies published by the Free + Software Foundation raise funds for GNU development.'' + @end quotation + @end copying + + @dircategory Libraries + @direntry + * RLuserman: (rluserman). The GNU readline library User's Manual. + @end direntry + + @titlepage + @title GNU Readline Library User Interface + @subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}. + @subtitle @value{UPDATED-MONTH} + @author Chet Ramey, Case Western Reserve University + @author Brian Fox, Free Software Foundation + + @page + @vskip 0pt plus 1filll + @insertcopying + + @sp 1 + Published by the Free Software Foundation @* + 59 Temple Place, Suite 330, @* + Boston, MA 02111-1307 @* + USA @* + + @end titlepage + + @contents + + @ifnottex + @node Top + @top GNU Readline Library + + This document describes the end user interface of the GNU Readline Library, + a utility which aids in the consistency of user interface across discrete + programs which provide a command line interface. + + @menu + * Command Line Editing:: GNU Readline User's Manual. + * Copying This Manual:: Copying This Manual. + @end menu + @end ifnottex + + @include rluser.texi + + @node Copying This Manual + @appendix Copying This Manual + + @menu + * GNU Free Documentation License:: License for copying this manual. + @end menu + + @include fdl.texi + + @bye diff -aNrc2 readline-4.3-patched/doc/rluserman.texinfo readline-5.0/doc/rluserman.texinfo *** readline-4.3-patched/doc/rluserman.texinfo Tue Apr 16 17:12:24 2002 --- readline-5.0/doc/rluserman.texinfo Wed Dec 31 19:00:00 1969 *************** *** 1,94 **** - \input texinfo @c -*-texinfo-*- - @comment %**start of header (This is for running Texinfo on a region.) - @setfilename rluserman.info - @settitle GNU Readline Library - @comment %**end of header (This is for running Texinfo on a region.) - @setchapternewpage odd - - @include manvers.texinfo - - @ifinfo - @dircategory Libraries - @direntry - * RLuserman: (rluserman). The GNU readline library User's Manual. - @end direntry - - This document describes the end user interface of the GNU Readline Library, - a utility which aids in the consistency of user interface across discrete - programs that need to provide a command line interface. - - Copyright (C) 1988-2002 Free Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of - this manual provided the copyright notice and this permission notice - pare preserved on all copies. - - @ignore - Permission is granted to process this file through TeX and print the - results, provided the printed document carries copying permission - notice identical to this one except for the removal of this paragraph - (this paragraph not being relevant to the printed manual). - @end ignore - - Permission is granted to copy and distribute modified versions of this - manual under the conditions for verbatim copying, provided that the entire - resulting derived work is distributed under the terms of a permission - notice identical to this one. - - Permission is granted to copy and distribute translations of this manual - into another language, under the above conditions for modified versions, - except that this permission notice may be stated in a translation approved - by the Free Software Foundation. - @end ifinfo - - @titlepage - @title GNU Readline Library User Interface - @subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}. - @subtitle @value{UPDATE-MONTH} - @author Brian Fox, Free Software Foundation - @author Chet Ramey, Case Western Reserve University - - @page - This document describes the end user interface of the GNU Readline Library, - a utility which aids in the consistency of user interface across discrete - programs that need to provide a command line interface. - - Published by the Free Software Foundation @* - 59 Temple Place, Suite 330, @* - Boston, MA 02111 USA - - Permission is granted to make and distribute verbatim copies of - this manual provided the copyright notice and this permission notice - are preserved on all copies. - - Permission is granted to copy and distribute modified versions of this - manual under the conditions for verbatim copying, provided that the entire - resulting derived work is distributed under the terms of a permission - notice identical to this one. - - Permission is granted to copy and distribute translations of this manual - into another language, under the above conditions for modified versions, - except that this permission notice may be stated in a translation approved - by the Free Software Foundation. - - @vskip 0pt plus 1filll - Copyright @copyright{} 1988-2002 Free Software Foundation, Inc. - @end titlepage - - @ifinfo - @node Top - @top GNU Readline Library - - This document describes the end user interface of the GNU Readline Library, - a utility which aids in the consistency of user interface across discrete - programs that need to provide a command line interface. - - @menu - * Command Line Editing:: GNU Readline User's Manual. - @end menu - @end ifinfo - - @include rluser.texinfo - - @contents - @bye --- 0 ---- diff -aNrc2 readline-4.3-patched/doc/texi2dvi readline-5.0/doc/texi2dvi *** readline-4.3-patched/doc/texi2dvi Tue Sep 28 15:36:53 1999 --- readline-5.0/doc/texi2dvi Tue Feb 18 11:11:26 2003 *************** *** 1,7 **** #! /bin/sh # texi2dvi --- produce DVI (or PDF) files from Texinfo (or LaTeX) sources. ! # $Id: texi2dvi,v 0.43 1999/09/28 19:36:53 karl Exp $ # ! # Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify --- 1,8 ---- #! /bin/sh # texi2dvi --- produce DVI (or PDF) files from Texinfo (or LaTeX) sources. ! # $Id: texi2dvi,v 1.14 2003/02/05 00:42:33 karl Exp $ # ! # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, ! # 2002, 2003 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify *************** *** 27,36 **** # This string is expanded by rcs automatically when this file is checked out. ! rcs_revision='$Revision: 0.43 $' rcs_version=`set - $rcs_revision; echo $2` program=`echo $0 | sed -e 's!.*/!!'` ! version="texi2dvi (GNU Texinfo 4.0) $rcs_version ! Copyright (C) 1999 Free Software Foundation, Inc. There is NO warranty. You may redistribute this software under the terms of the GNU General Public License. --- 28,37 ---- # This string is expanded by rcs automatically when this file is checked out. ! rcs_revision='$Revision: 1.14 $' rcs_version=`set - $rcs_revision; echo $2` program=`echo $0 | sed -e 's!.*/!!'` ! version="texi2dvi (GNU Texinfo 4.5) $rcs_version ! Copyright (C) 2003 Free Software Foundation, Inc. There is NO warranty. You may redistribute this software under the terms of the GNU General Public License. *************** *** 47,66 **** when needed. ! Options: ! -@ Use @input instead of \input; for preloaded Texinfo. ! -b, --batch No interaction. ! -c, --clean Remove all auxiliary files. ! -D, --debug Turn on shell debugging (set -x). ! -e, --expand Force macro expansion using makeinfo. ! -I DIR Search DIR for Texinfo files. ! -h, --help Display this help and exit successfully. ! -l, --language=LANG Specify the LANG of FILE: LaTeX or Texinfo. ! -p, --pdf Use pdftex or pdflatex for processing. ! -q, --quiet No output unless errors (implies --batch). ! -s, --silent Same as --quiet. ! -t, --texinfo=CMD Insert CMD after @setfilename in copy of input file. ! Multiple values accumulate. ! -v, --version Display version information and exit successfully. ! -V, --verbose Report on what is done. The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO, --- 48,71 ---- when needed. ! Operation modes: ! -b, --batch no interaction ! -c, --clean remove all auxiliary files ! -D, --debug turn on shell debugging (set -x) ! -h, --help display this help and exit successfully ! -o, --output=OFILE leave output in OFILE (implies --clean); ! Only one input FILE may be specified in this case ! -q, --quiet no output unless errors (implies --batch) ! -s, --silent same as --quiet ! -v, --version display version information and exit successfully ! -V, --verbose report on what is done ! ! TeX tuning: ! -@ use @input instead of \input; for preloaded Texinfo ! -e, -E, --expand force macro expansion using makeinfo ! -I DIR search DIR for Texinfo files ! -l, --language=LANG specify the LANG of FILE (LaTeX or Texinfo) ! -p, --pdf use pdftex or pdflatex for processing ! -t, --texinfo=CMD insert CMD after @setfilename in copy of input file ! multiple values accumulate The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO, *************** *** 69,90 **** Email bug reports to , ! general questions and discussion to ." # Initialize variables for option overriding and otherwise. # Don't use `unset' since old bourne shells don't have this command. # Instead, assign them an empty value. - escape='\' batch=false # eval for batch mode clean= debug= expand= # t for expansion via makeinfo oformat=dvi set_language= - miincludes= # makeinfo include path textra= tmpdir=${TMPDIR:-/tmp}/t2d$$ # avoid collisions on 8.3 filesystems. ! txincludes= # TEXINPUTS extensions txiprereq=19990129 # minimum texinfo.tex version to have macro expansion - quiet= # by default let the tools' message be displayed verbose=false # echo for verbose mode --- 74,97 ---- Email bug reports to , ! general questions and discussion to . ! Texinfo home page: http://www.gnu.org/software/texinfo/" # Initialize variables for option overriding and otherwise. # Don't use `unset' since old bourne shells don't have this command. # Instead, assign them an empty value. batch=false # eval for batch mode clean= debug= + escape='\' expand= # t for expansion via makeinfo + miincludes= # makeinfo include path oformat=dvi + oname= # --output + quiet= # by default let the tools' message be displayed set_language= textra= tmpdir=${TMPDIR:-/tmp}/t2d$$ # avoid collisions on 8.3 filesystems. ! txincludes= # TEXINPUTS extensions, with trailing colon txiprereq=19990129 # minimum texinfo.tex version to have macro expansion verbose=false # echo for verbose mode *************** *** 99,102 **** --- 106,115 ---- fi + # Pacify verbose cds. + CDPATH=${ZSH_VERSION+.}$path_sep + + # In case someone crazy insists on using grep -E. + : ${EGREP=egrep} + # Save this so we can construct a new TEXINPUTS path for each file. TEXINPUTS_orig="$TEXINPUTS" *************** *** 137,148 **** -c | --c*) clean=t;; -D | --d*) debug=t;; ! -e | --e*) expand=t;; -h | --h*) echo "$usage"; exit 0;; -I | --I*) shift miincludes="$miincludes -I $1" ! txincludes="$txincludes$path_sep$1" ;; -l | --l*) shift; set_language=$1;; -p | --p*) oformat=pdf;; -t | --t*) shift; textra="$textra\\ --- 150,168 ---- -c | --c*) clean=t;; -D | --d*) debug=t;; ! -e | -E | --e*) expand=t;; -h | --h*) echo "$usage"; exit 0;; -I | --I*) shift miincludes="$miincludes -I $1" ! txincludes="$txincludes$1$path_sep" ;; -l | --l*) shift; set_language=$1;; + -o | --o*) + shift + clean=t + case "$1" in + /* | ?:/*) oname=$1;; + *) oname="$orig_pwd/$1";; + esac;; -p | --p*) oformat=pdf;; -t | --t*) shift; textra="$textra\\ *************** *** 169,177 **** # Interpret remaining command line args as filenames. ! if test $# = 0; then echo "$0: Missing file arguments." >&2 echo "$0: Try \`--help' for more information." >&2 exit 2 ! fi # Prepare the temporary directory. Remove it at exit, unless debugging. --- 189,206 ---- # Interpret remaining command line args as filenames. ! case $# in ! 0) echo "$0: Missing file arguments." >&2 echo "$0: Try \`--help' for more information." >&2 exit 2 ! ;; ! 1) ;; ! *) ! if test -n "$oname"; then ! echo "$0: Can't use option \`--output' with more than one argument." >&2 ! exit 2 ! fi ! ;; ! esac # Prepare the temporary directory. Remove it at exit, unless debugging. *************** *** 206,217 **** } } ! /^@html/,/^@end html/d ! /^@ifhtml/,/^@end ifhtml/d ! /^@ifnottex/,/^@end ifnottex/d /^@ifinfo/,/^@end ifinfo/{ /^@node/p /^@menu/,/^@end menu/p ! d } EOF # Uncommenting is simple: Remove any leading `@c texi2dvi'. --- 235,255 ---- } } ! /^@html/,/^@end html/{ ! s/^/@c (texi2dvi)/ ! } ! /^@ifhtml/,/^@end ifhtml/{ ! s/^/@c (texi2dvi)/ ! } ! /^@ifnottex/,/^@end ifnottex/{ ! s/^/@c (texi2dvi)/ ! } /^@ifinfo/,/^@end ifinfo/{ /^@node/p /^@menu/,/^@end menu/p ! t ! s/^/@c (texi2dvi)/ } + s/^@ifnotinfo/@c texi2dvi@ifnotinfo/ + s/^@end ifnotinfo/@c texi2dvi@end ifnotinfo/ EOF # Uncommenting is simple: Remove any leading `@c texi2dvi'. *************** *** 231,235 **** # Find all files having root filename with a two-letter extension, # saves the ones that are really Texinfo-related files. .?o? catches ! # LaTeX tables and lists. for this_file in "$1".?o? "$1".aux "$1".?? "$1".idx; do # If file is empty, skip it. --- 269,273 ---- # Find all files having root filename with a two-letter extension, # saves the ones that are really Texinfo-related files. .?o? catches ! # many files: .toc, .log, LaTeX tables and lists, FiXme's .lox, maybe more. for this_file in "$1".?o? "$1".aux "$1".?? "$1".idx; do # If file is empty, skip it. *************** *** 274,278 **** # If the COMMAND_LINE_FILENAME is not absolute (e.g., --debug.tex), # prepend `./' in order to avoid that the tools take it as an option. ! echo "$command_line_filename" | egrep '^(/|[A-z]:/)' >/dev/null \ || command_line_filename="./$command_line_filename" --- 312,316 ---- # If the COMMAND_LINE_FILENAME is not absolute (e.g., --debug.tex), # prepend `./' in order to avoid that the tools take it as an option. ! echo "$command_line_filename" | $EGREP '^(/|[A-z]:/)' >/dev/null \ || command_line_filename="./$command_line_filename" *************** *** 315,328 **** mkdir $tmpdir_src $tmpdir_xtr $tmpdir_bak || exit 1 ! # Source file might include additional sources. Put `.' and ! # directory where source file(s) reside in TEXINPUTS before anything ! # else. `.' goes first to ensure that any old .aux, .cps, # etc. files in ${directory} don't get used in preference to fresher # files in `.'. Include orig_pwd in case we are in clean mode, where # we've cd'd to a temp directory. ! common=".$path_sep$orig_pwd$path_sep$filename_dir$path_sep$txincludes$path_sep" TEXINPUTS="$common$TEXINPUTS_orig" INDEXSTYLE="$common$INDEXSTYLE_orig" # If the user explicitly specified the language, use that. # Otherwise, if the first line is \input texinfo, assume it's texinfo. --- 353,411 ---- mkdir $tmpdir_src $tmpdir_xtr $tmpdir_bak || exit 1 ! # Source file might include additional sources. ! # We want `.:$orig_pwd' before anything else. (We'll add `.:' later ! # after all other directories have been turned into absolute paths.) ! # `.' goes first to ensure that any old .aux, .cps, # etc. files in ${directory} don't get used in preference to fresher # files in `.'. Include orig_pwd in case we are in clean mode, where # we've cd'd to a temp directory. ! common="$orig_pwd$path_sep$filename_dir$path_sep$txincludes" TEXINPUTS="$common$TEXINPUTS_orig" INDEXSTYLE="$common$INDEXSTYLE_orig" + # Convert relative paths to absolute paths, so we can run in another + # directory (e.g., in --clean mode, or during the macro-support + # detection.) + # + # Empty path components are meaningful to tex. We rewrite them + # as `EMPTY' so they don't get lost when we split on $path_sep. + TEXINPUTS=`echo $TEXINPUTS |sed 's/^:/EMPTY:/;s/:$/:EMPTY/;s/::/:EMPTY:/g'` + INDEXSTYLE=`echo $INDEXSTYLE |sed 's/^:/EMPTY:/;s/:$/:EMPTY/;s/::/:EMPTY:/g'` + save_IFS=$IFS + IFS=$path_sep + set x $TEXINPUTS; shift + TEXINPUTS=. + for dir + do + case $dir in + EMPTY) + TEXINPUTS=$TEXINPUTS$path_sep + ;; + [\\/]* | ?:[\\/]*) # Absolute paths don't need to be expansed. + TEXINPUTS=$TEXINPUTS$path_sep$dir + ;; + *) + abs=`cd "$dir" && pwd` && TEXINPUTS=$TEXINPUTS$path_sep$abs + ;; + esac + done + set x $INDEXSTYLE; shift + INDEXSTYLE=. + for dir + do + case $dir in + EMPTY) + INDEXSTYLE=$INDEXSTYLE$path_sep + ;; + [\\/]* | ?:[\\/]*) # Absolute paths don't need to be expansed. + INDEXSTYLE=$INDEXSTYLE$path_sep$dir + ;; + *) + abs=`cd "$dir" && pwd` && INDEXSTYLE=$INDEXSTYLE$path_sep$abs + ;; + esac + done + IFS=$save_IFS + # If the user explicitly specified the language, use that. # Otherwise, if the first line is \input texinfo, assume it's texinfo. *************** *** 330,334 **** if test -n "$set_language"; then language=$set_language ! elif sed 1q "$command_line_filename" | fgrep 'input texinfo' >/dev/null; then language=texinfo else --- 413,417 ---- if test -n "$set_language"; then language=$set_language ! elif sed 1q "$command_line_filename" | grep 'input texinfo' >/dev/null; then language=texinfo else *************** *** 374,380 **** echo '\input texinfo.tex @bye' >$tmpdir/$txiversion_tex # Run in the tmpdir to avoid leaving files. ! eval `cd $tmpdir >/dev/null \ ! && $tex $txiversion_tex 2>/dev/null \ ! | sed -n 's/^.*\[\(.*\)version \(....\)-\(..\)-\(..\).*$/txiformat=\1 txiversion="\2\3\4"/p'` $verbose "texinfo.tex preloaded as \`$txiformat', version is \`$txiversion' ..." if test "$txiprereq" -le "$txiversion" >/dev/null 2>&1; then --- 457,463 ---- echo '\input texinfo.tex @bye' >$tmpdir/$txiversion_tex # Run in the tmpdir to avoid leaving files. ! eval `cd $tmpdir >/dev/null && ! $tex $txiversion_tex 2>/dev/null | ! sed -n 's/^.*\[\(.*\)version \(....\)-\(..\)-\(..\).*$/txiformat=\1 txiversion="\2\3\4"/p'` $verbose "texinfo.tex preloaded as \`$txiformat', version is \`$txiversion' ..." if test "$txiprereq" -le "$txiversion" >/dev/null 2>&1; then *************** *** 468,475 **** # What we'll run texindex on -- exclude non-index files. # Since we know index files are last, it is correct to remove everything ! # before .aux and .?o?. index_files=`echo "$orig_xref_files" \ | sed "s!.*\.aux!!g; ! s!./$filename_noext\..o.!!g; s/^[ ]*//;s/[ ]*$//"` # Run texindex (or makeindex) on current index files. If they --- 551,562 ---- # What we'll run texindex on -- exclude non-index files. # Since we know index files are last, it is correct to remove everything ! # before .aux and .?o?. But don't really do o ! # -- don't match whitespace as . ! # Otherwise, if orig_xref_files contains something like ! # foo.xo foo.whatever ! # the space after the o will get matched. index_files=`echo "$orig_xref_files" \ | sed "s!.*\.aux!!g; ! s!./$filename_noext\.[^ ]o[^ ]!!g; s/^[ ]*//;s/[ ]*$//"` # Run texindex (or makeindex) on current index files. If they *************** *** 490,495 **** # to be `/'. $batch tex_args="\\${escape}nonstopmode\ \\${escape}input" - $verbose "Running $cmd ..." cmd="$tex $tex_args $filename_input" if $cmd >&5; then :; else echo "$0: $tex exited with bad status, quitting." >&2 --- 577,582 ---- # to be `/'. $batch tex_args="\\${escape}nonstopmode\ \\${escape}input" cmd="$tex $tex_args $filename_input" + $verbose "Running $cmd ..." if $cmd >&5; then :; else echo "$0: $tex exited with bad status, quitting." >&2 *************** *** 509,513 **** # subdirs. Performing xref files test is still good since LaTeX # does not report changes in xref files. ! if fgrep "Rerun to get" "$filename_noext.log" >/dev/null 2>&1; then finished= fi --- 596,600 ---- # subdirs. Performing xref files test is still good since LaTeX # does not report changes in xref files. ! if grep "Rerun to get" "$filename_noext.log" >/dev/null 2>&1; then finished= fi *************** *** 551,556 **** # - the temporary file can be removed if test -n "$clean"; then ! $verbose "Copying $oformat file from `pwd` to $orig_pwd" ! cp -p "./$filename_noext.$oformat" "$orig_pwd" cd / # in case $orig_pwd is on a different drive (for DOS) cd $orig_pwd || exit 1 --- 638,648 ---- # - the temporary file can be removed if test -n "$clean"; then ! if test -n "$oname"; then ! dest=$oname ! else ! dest=$orig_pwd ! fi ! $verbose "Copying $oformat file from `pwd` to $dest" ! cp -p "./$filename_noext.$oformat" "$dest" cd / # in case $orig_pwd is on a different drive (for DOS) cd $orig_pwd || exit 1 diff -aNrc2 readline-4.3-patched/doc/texinfo.tex readline-5.0/doc/texinfo.tex *** readline-4.3-patched/doc/texinfo.tex Thu Nov 2 09:50:52 2000 --- readline-5.0/doc/texinfo.tex Tue Feb 4 19:48:35 2003 *************** *** 4,11 **** \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % ! \def\texinfoversion{1999-09-25.10} % ! % Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99 ! % Free Software Foundation, Inc. % % This texinfo.tex file is free software; you can redistribute it and/or --- 4,11 ---- \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % ! \def\texinfoversion{2003-02-03.16} % ! % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, ! % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. % % This texinfo.tex file is free software; you can redistribute it and/or *************** *** 30,43 **** % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: ! % ftp://ftp.gnu.org/gnu/texinfo.tex ! % (and all GNU mirrors, see http://www.gnu.org/order/ftp.html) ! % ftp://texinfo.org/tex/texinfo.tex ! % ftp://us.ctan.org/macros/texinfo/texinfo.tex ! % (and all CTAN mirrors, finger ctan@us.ctan.org for a list). ! % /home/gd/gnu/doc/texinfo.tex on the GNU machines. % The texinfo.tex in any given Texinfo distribution could well be out % of date, so if that's what you're using, please check. ! % Texinfo has a small home page at http://texinfo.org/. ! % % Send bug reports to bug-texinfo@gnu.org. Please include including a % complete document in each bug report with which we can reproduce the --- 30,44 ---- % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: ! % ftp://ftp.gnu.org/gnu/texinfo/texinfo.tex ! % (and all GNU mirrors, see http://www.gnu.org/order/ftp.html) ! % ftp://tug.org/tex/texinfo.tex ! % (and all CTAN mirrors, see http://www.ctan.org), ! % and /home/gd/gnu/doc/texinfo.tex on the GNU machines. ! % ! % The GNU Texinfo home page is http://www.gnu.org/software/texinfo. ! % % The texinfo.tex in any given Texinfo distribution could well be out % of date, so if that's what you're using, please check. ! % % Send bug reports to bug-texinfo@gnu.org. Please include including a % complete document in each bug report with which we can reproduce the *************** *** 51,61 **** % tex foo.texi % tex foo.texi ! % dvips foo.dvi -o # or whatever, to process the dvi file; this makes foo.ps. ! % The extra runs of TeX get the cross-reference information correct. % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. ! % ! % It is possible to adapt texinfo.tex for other languages. You can get ! % the existing language-specific files from ftp://ftp.gnu.org/gnu/texinfo/. \message{Loading texinfo [version \texinfoversion]:} --- 52,63 ---- % tex foo.texi % tex foo.texi ! % dvips foo.dvi -o # or whatever; this makes foo.ps. ! % The extra TeX runs get the cross-reference information correct. % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. ! % ! % It is possible to adapt texinfo.tex for other languages, to some ! % extent. You can get the existing language-specific files from the ! % full Texinfo distribution. \message{Loading texinfo [version \texinfoversion]:} *************** *** 67,70 **** --- 69,79 ---- \catcode`+=\active \catcode`\_=\active} + \message{Basics,} + \chardef\other=12 + + % We never want plain's outer \+ definition in Texinfo. + % For @tex, we can use \tabalign. + \let\+ = \relax + % Save some parts of plain tex whose names we will redefine. \let\ptexb=\b *************** *** 77,93 **** \let\ptexequiv=\equiv \let\ptexexclam=\! \let\ptexi=\i \let\ptexlbrace=\{ \let\ptexrbrace=\} \let\ptexstar=\* \let\ptext=\t - % We never want plain's outer \+ definition in Texinfo. - % For @tex, we can use \tabalign. - \let\+ = \relax - - \message{Basics,} - \chardef\other=12 - % If this character appears in an error message or help string, it % starts a new line in the output. --- 86,99 ---- \let\ptexequiv=\equiv \let\ptexexclam=\! + \let\ptexgtr=> + \let\ptexhat=^ \let\ptexi=\i \let\ptexlbrace=\{ + \let\ptexless=< + \let\ptexplus=+ \let\ptexrbrace=\} \let\ptexstar=\* \let\ptext=\t % If this character appears in an error message or help string, it % starts a new line in the output. *************** *** 136,143 **** --- 142,167 ---- \ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi + % In some macros, we cannot use the `\? notation---the left quote is + % in some cases the escape char. + \chardef\colonChar = `\: + \chardef\commaChar = `\, + \chardef\dotChar = `\. + \chardef\equalChar = `\= + \chardef\exclamChar= `\! + \chardef\questChar = `\? + \chardef\semiChar = `\; + \chardef\spaceChar = `\ % + \chardef\underChar = `\_ + % Ignore a token. % \def\gobble#1{} + % True if #1 is the empty string, i.e., called like `\ifempty{}'. + % + \def\ifempty#1{\ifemptyx #1\emptymarkA\emptymarkB}% + \def\ifemptyx#1#2\emptymarkB{\ifx #1\emptymarkA}% + + % Hyphenation fixes. \hyphenation{ap-pen-dix} \hyphenation{mini-buf-fer mini-buf-fers} *************** *** 146,173 **** % Margin to add to right of even pages, to left of odd pages. ! \newdimen \bindingoffset ! \newdimen \normaloffset \newdimen\pagewidth \newdimen\pageheight % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, ! % since that produces some useless output on the terminal. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% ! \ifx\eTeXversion\undefined ! \def\loggingall{\tracingcommands2 \tracingstats2 ! \tracingpages1 \tracingoutput1 \tracinglostchars1 ! \tracingmacros2 \tracingparagraphs1 \tracingrestores1 ! \showboxbreadth\maxdimen\showboxdepth\maxdimen ! }% ! \else ! \def\loggingall{\tracingcommands3 \tracingstats2 ! \tracingpages1 \tracingoutput1 \tracinglostchars1 ! \tracingmacros2 \tracingparagraphs1 \tracingrestores1 ! \tracingscantokens1 \tracingassigns1 \tracingifs1 ! \tracinggroups1 \tracingnesting2 ! \showboxbreadth\maxdimen\showboxdepth\maxdimen }% ! \fi % For @cropmarks command. --- 170,213 ---- % Margin to add to right of even pages, to left of odd pages. ! \newdimen\bindingoffset ! \newdimen\normaloffset \newdimen\pagewidth \newdimen\pageheight % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, ! % since that produces some useless output on the terminal. We also make ! % some effort to order the tracing commands to reduce output in the log ! % file; cf. trace.sty in LaTeX. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% ! \def\loggingall{% ! \tracingstats2 ! \tracingpages1 ! \tracinglostchars2 % 2 gives us more in etex ! \tracingparagraphs1 ! \tracingoutput1 ! \tracingmacros2 ! \tracingrestores1 ! \showboxbreadth\maxdimen \showboxdepth\maxdimen ! \ifx\eTeXversion\undefined\else % etex gives us more logging ! \tracingscantokens1 ! \tracingifs1 ! \tracinggroups1 ! \tracingnesting2 ! \tracingassigns1 ! \fi ! \tracingcommands3 % 3 gives us more in etex ! \errorcontextlines\maxdimen }% ! ! % add check for \lastpenalty to plain's definitions. If the last thing ! % we did was a \nobreak, we don't want to insert more space. ! % ! \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount ! \removelastskip\penalty-50\smallskip\fi\fi} ! \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount ! \removelastskip\penalty-100\medskip\fi\fi} ! \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount ! \removelastskip\penalty-200\bigskip\fi\fi} % For @cropmarks command. *************** *** 215,218 **** --- 255,261 ---- % the page break happens to be in the middle of an example. \shipout\vbox{% + % Do this early so pdf references go to the beginning of the page. + \ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi + % \ifcropmarks \vbox to \outervsize\bgroup \hsize = \outerhsize *************** *** 244,249 **** \fi % - \ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi - % \ifcropmarks \egroup % end of \vbox\bgroup --- 287,290 ---- *************** *** 263,267 **** \fi }% end of \shipout\vbox ! }% end of group with \turnoffactive \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi --- 304,308 ---- \fi }% end of \shipout\vbox ! }% end of group with \normalturnoffactive \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi *************** *** 423,437 **** - % Single-spacing is done by various environments (specifically, in - % \nonfillstart and \quotations). - \newskip\singlespaceskip \singlespaceskip = 12.5pt - \def\singlespace{% - % Why was this kern here? It messes up equalizing space above and below - % environments. --karl, 6may93 - %{\advance \baselineskip by -\singlespaceskip - %\kern \baselineskip}% - \setleading \singlespaceskip - } - %% Simple single-character @ commands --- 464,467 ---- *************** *** 453,466 **** \let\}=\myrbrace \begingroup ! % Definitions to produce actual \{ & \} command in an index. ! \catcode`\{ = 12 \catcode`\} = 12 \catcode`\[ = 1 \catcode`\] = 2 ! \catcode`\@ = 0 \catcode`\\ = 12 ! @gdef@lbracecmd[\{]% ! @gdef@rbracecmd[\}]% ! @endgroup % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent ! % Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H. \let\, = \c \let\dotaccent = \. --- 483,499 ---- \let\}=\myrbrace \begingroup ! % Definitions to produce \{ and \} commands for indices, ! % and @{ and @} for the aux file. ! \catcode`\{ = \other \catcode`\} = \other \catcode`\[ = 1 \catcode`\] = 2 ! \catcode`\! = 0 \catcode`\\ = \other ! !gdef!lbracecmd[\{]% ! !gdef!rbracecmd[\}]% ! !gdef!lbraceatcmd[@{]% ! !gdef!rbraceatcmd[@}]% ! !endgroup % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent ! % Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. \let\, = \c \let\dotaccent = \. *************** *** 471,475 **** % Other special characters: @questiondown @exclamdown ! % Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} --- 504,508 ---- % Other special characters: @questiondown @exclamdown ! % Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} *************** *** 526,529 **** --- 559,572 ---- % the text is small, which looks bad. % + % Another complication is that the group might be very large. This can + % cause the glue on the previous page to be unduly stretched, because it + % does not have much material. In this case, it's better to add an + % explicit \vfill so that the extra space is at the bottom. The + % threshold for doing this is if the group is more than \vfilllimit + % percent of a page (\vfilllimit can be changed inside of @tex). + % + \newbox\groupbox + \def\vfilllimit{0.7} + % \def\group{\begingroup \ifnum\catcode13=\active \else *************** *** 539,546 **** \def\Egroup{% \egroup % End the \vtop. \endgroup % End the \group. }% % ! \vtop\bgroup % We have to put a strut on the last line in case the @group is in % the midst of an example, rather than completely enclosing it. --- 582,601 ---- \def\Egroup{% \egroup % End the \vtop. + % \dimen0 is the vertical size of the group's box. + \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox + % \dimen2 is how much space is left on the page (more or less). + \dimen2 = \pageheight \advance\dimen2 by -\pagetotal + % if the group doesn't fit on the current page, and it's a big big + % group, force a page break. + \ifdim \dimen0 > \dimen2 + \ifdim \pagetotal < \vfilllimit\pageheight + \page + \fi + \fi + \copy\groupbox \endgroup % End the \group. }% % ! \setbox\groupbox = \vtop\bgroup % We have to put a strut on the last line in case the @group is in % the midst of an example, rather than completely enclosing it. *************** *** 688,713 **** \leftline{\hskip\leftskip{\rm#1}}}} ! % @inmargin{TEXT} puts TEXT in the margin next to the current paragraph. ! ! \def\inmargin#1{% ! \strut\vadjust{\nobreak\kern-\strutdepth ! \vtop to \strutdepth{\baselineskip\strutdepth\vss ! \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}} \newskip\inmarginspacing \inmarginspacing=1cm \def\strutdepth{\dp\strutbox} ! ! %\hbox{{\rm#1}}\hfil\break}} % @include file insert text of that file as input. % Allow normal characters that we make active in the argument (a file name). \def\include{\begingroup ! \catcode`\\=12 ! \catcode`~=12 ! \catcode`^=12 ! \catcode`_=12 ! \catcode`|=12 ! \catcode`<=12 ! \catcode`>=12 ! \catcode`+=12 \parsearg\includezzz} % Restore active chars for included file. --- 743,806 ---- \leftline{\hskip\leftskip{\rm#1}}}} ! % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current ! % paragraph. For more general purposes, use the \margin insertion ! % class. WHICH is `l' or `r'. ! % \newskip\inmarginspacing \inmarginspacing=1cm \def\strutdepth{\dp\strutbox} ! % ! \def\doinmargin#1#2{\strut\vadjust{% ! \nobreak ! \kern-\strutdepth ! \vtop to \strutdepth{% ! \baselineskip=\strutdepth ! \vss ! % if you have multiple lines of stuff to put here, you'll need to ! % make the vbox yourself of the appropriate size. ! \ifx#1l% ! \llap{\ignorespaces #2\hskip\inmarginspacing}% ! \else ! \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}% ! \fi ! \null ! }% ! }} ! \def\inleftmargin{\doinmargin l} ! \def\inrightmargin{\doinmargin r} ! % ! % @inmargin{TEXT [, RIGHT-TEXT]} ! % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right; ! % else use TEXT for both). ! % ! \def\inmargin#1{\parseinmargin #1,,\finish} ! \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing. ! \setbox0 = \hbox{\ignorespaces #2}% ! \ifdim\wd0 > 0pt ! \def\lefttext{#1}% have both texts ! \def\righttext{#2}% ! \else ! \def\lefttext{#1}% have only one text ! \def\righttext{#1}% ! \fi ! % ! \ifodd\pageno ! \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin ! \else ! \def\temp{\inleftmargin\lefttext}% ! \fi ! \temp ! } % @include file insert text of that file as input. % Allow normal characters that we make active in the argument (a file name). \def\include{\begingroup ! \catcode`\\=\other ! \catcode`~=\other ! \catcode`^=\other ! \catcode`_=\other ! \catcode`|=\other ! \catcode`<=\other ! \catcode`>=\other ! \catcode`+=\other \parsearg\includezzz} % Restore active chars for included file. *************** *** 715,718 **** --- 808,812 ---- % Read the included file in a group so nested @include's work. \def\thisfile{#1}% + \let\value=\expandablevalue \input\thisfile \endgroup} *************** *** 720,729 **** \def\thisfile{} ! % @center line outputs that line, centered ! ! \def\center{\parsearg\centerzzz} ! \def\centerzzz #1{{\advance\hsize by -\leftskip ! \advance\hsize by -\rightskip ! \centerline{#1}}} % @sp n outputs n lines of vertical space --- 814,828 ---- \def\thisfile{} ! % @center line ! % outputs that line, centered. ! % ! \def\center{\parsearg\docenter} ! \def\docenter#1{{% ! \ifhmode \hfil\break \fi ! \advance\hsize by -\leftskip ! \advance\hsize by -\rightskip ! \line{\hfil \ignorespaces#1\unskip \hfil}% ! \ifhmode \break \fi ! }} % @sp n outputs n lines of vertical space *************** *** 785,800 **** \def\asis#1{#1} ! % @math means output in math mode. ! % We don't use $'s directly in the definition of \math because control ! % sequences like \math are expanded when the toc file is written. Then, ! % we read the toc file back, the $'s will be normal characters (as they ! % should be, according to the definition of Texinfo). So we must use a ! % control sequence to switch into and out of math mode. % ! % This isn't quite enough for @math to work properly in indices, but it ! % seems unlikely it will ever be needed there. % ! \let\implicitmath = $ ! \def\math#1{\implicitmath #1\implicitmath} % @bullet and @minus need the same treatment as @math, just above. --- 884,937 ---- \def\asis#1{#1} ! % @math outputs its argument in math mode. ! % We don't use $'s directly in the definition of \math because we need ! % to set catcodes according to plain TeX first, to allow for subscripts, ! % superscripts, special math chars, etc. ! % ! \let\implicitmath = $%$ font-lock fix ! % ! % One complication: _ usually means subscripts, but it could also mean ! % an actual _ character, as in @math{@var{some_variable} + 1}. So make ! % _ within @math be active (mathcode "8000), and distinguish by seeing ! % if the current family is \slfam, which is what @var uses. ! % ! {\catcode\underChar = \active ! \gdef\mathunderscore{% ! \catcode\underChar=\active ! \def_{\ifnum\fam=\slfam \_\else\sb\fi}% ! }} % ! % Another complication: we want \\ (and @\) to output a \ character. ! % FYI, plain.tex uses \\ as a temporary control sequence (why?), but ! % this is not advertised and we don't care. Texinfo does not ! % otherwise define @\. ! % ! % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. ! \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} % ! \def\math{% ! \tex ! \mathcode`\_="8000 \mathunderscore ! \let\\ = \mathbackslash ! \mathactive ! \implicitmath\finishmath} ! \def\finishmath#1{#1\implicitmath\Etex} ! ! % Some active characters (such as <) are spaced differently in math. ! % We have to reset their definitions in case the @math was an ! % argument to a command which set the catcodes (such as @item or @section). ! % ! { ! \catcode`^ = \active ! \catcode`< = \active ! \catcode`> = \active ! \catcode`+ = \active ! \gdef\mathactive{% ! \let^ = \ptexhat ! \let< = \ptexless ! \let> = \ptexgtr ! \let+ = \ptexplus ! } ! } % @bullet and @minus need the same treatment as @math, just above. *************** *** 879,896 **** \def\imagewidth{#2}% \def\imageheight{#3}% \ifnum\pdftexversion < 14 ! \pdfimage \else ! \pdfximage \fi \ifx\empty\imagewidth\else width \imagewidth \fi \ifx\empty\imageheight\else height \imageheight \fi ! {#1.pdf}% \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} ! \def\pdfmkdest#1{\pdfdest name{#1@} xyz} ! \def\pdfmkpgn#1{#1@} ! \let\linkcolor = \Cyan \def\endlink{\Black\pdfendlink} % Adding outlines to PDF; macros for calculating structure of outlines --- 1016,1039 ---- \def\imagewidth{#2}% \def\imageheight{#3}% + % without \immediate, pdftex seg faults when the same image is + % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) \ifnum\pdftexversion < 14 ! \immediate\pdfimage \else ! \immediate\pdfximage \fi \ifx\empty\imagewidth\else width \imagewidth \fi \ifx\empty\imageheight\else height \imageheight \fi ! \ifnum\pdftexversion<13 ! #1.pdf% ! \else ! {#1.pdf}% ! \fi \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} ! \def\pdfmkdest#1{{\normalturnoffactive \pdfdest name{#1} xyz}} ! \def\pdfmkpgn#1{#1} ! \let\linkcolor = \Blue % was Cyan, but that seems light? \def\endlink{\Black\pdfendlink} % Adding outlines to PDF; macros for calculating structure of outlines *************** *** 903,941 **** \def\pdfmakeoutlines{{% \openin 1 \jobname.toc ! \ifeof 1\else\bgroup \closein 1 ! \indexnofonts ! \def\tt{} ! % thanh's hack / proper braces in bookmarks \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace % \def\chapentry ##1##2##3{} - \def\unnumbchapentry ##1##2{} \def\secentry ##1##2##3##4{\advancenumber{chap##2}} - \def\unnumbsecentry ##1##2{} \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}} - \def\unnumbsubsecentry ##1##2{} \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}} ! \def\unnumbsubsubsecentry ##1##2{} \input \jobname.toc \def\chapentry ##1##2##3{% \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}} - \def\unnumbchapentry ##1##2{% - \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} \def\secentry ##1##2##3##4{% \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}} - \def\unnumbsecentry ##1##2{% - \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} \def\subsecentry ##1##2##3##4##5{% \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}} - \def\unnumbsubsecentry ##1##2{% - \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} \def\subsubsecentry ##1##2##3##4##5##6{% \pdfoutline goto name{\pdfmkpgn{##6}}{##1}} ! \def\unnumbsubsubsecentry ##1##2{% ! \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} \input \jobname.toc ! \egroup\fi }} \def\makelinks #1,{% --- 1046,1086 ---- \def\pdfmakeoutlines{{% \openin 1 \jobname.toc ! \ifeof 1\else\begingroup \closein 1 ! % Thanh's hack / proper braces in bookmarks \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace % \def\chapentry ##1##2##3{} \def\secentry ##1##2##3##4{\advancenumber{chap##2}} \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}} \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}} ! \let\appendixentry = \chapentry ! \let\unnumbchapentry = \chapentry ! \let\unnumbsecentry = \secentry ! \let\unnumbsubsecentry = \subsecentry ! \let\unnumbsubsubsecentry = \subsubsecentry \input \jobname.toc \def\chapentry ##1##2##3{% \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}} \def\secentry ##1##2##3##4{% \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}} \def\subsecentry ##1##2##3##4##5{% \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}} \def\subsubsecentry ##1##2##3##4##5##6{% \pdfoutline goto name{\pdfmkpgn{##6}}{##1}} ! \let\appendixentry = \chapentry ! \let\unnumbchapentry = \chapentry ! \let\unnumbsecentry = \secentry ! \let\unnumbsubsecentry = \subsecentry ! \let\unnumbsubsubsecentry = \subsubsecentry ! % ! % Make special characters normal for writing to the pdf file. ! % ! \indexnofonts ! \let\tt=\relax ! \turnoffactive \input \jobname.toc ! \endgroup\fi }} \def\makelinks #1,{% *************** *** 987,990 **** --- 1132,1136 ---- \begingroup \normalturnoffactive\def\@{@}% + \let\value=\expandablevalue \leavevmode\Red \startlink attr{/Border [0 0 0]}% *************** *** 1014,1020 **** {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% ! \startlink attr{/Border [0 0 0]} goto name{\mkpgn{#1}} \linkcolor #1\endlink} - \def\mkpgn#1{#1@} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \fi % \ifx\pdfoutput --- 1160,1165 ---- {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% ! \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} \linkcolor #1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \fi % \ifx\pdfoutput *************** *** 1033,1039 **** \def\ttsl{\tenttsl} ! % Use Computer Modern fonts at \magstephalf (11pt). ! \newcount\mainmagstep ! \mainmagstep=\magstephalf % Set the font macro #1 to the font named #2, adding on the --- 1178,1201 ---- \def\ttsl{\tenttsl} ! % Default leading. ! \newdimen\textleading \textleading = 13.2pt ! ! % Set the baselineskip to #1, and the lineskip and strut size ! % correspondingly. There is no deep meaning behind these magic numbers ! % used as factors; they just match (closely enough) what Knuth defined. ! % ! \def\lineskipfactor{.08333} ! \def\strutheightpercent{.70833} ! \def\strutdepthpercent {.29167} ! % ! \def\setleading#1{% ! \normalbaselineskip = #1\relax ! \normallineskip = \lineskipfactor\normalbaselineskip ! \normalbaselines ! \setbox\strutbox =\hbox{% ! \vrule width0pt height\strutheightpercent\baselineskip ! depth \strutdepthpercent \baselineskip ! }% ! } % Set the font macro #1 to the font named #2, adding on the *************** *** 1065,1079 **** \def\scbshape{csc} \ifx\bigger\relax ! \let\mainmagstep=\magstep1 ! \setfont\textrm\rmshape{12}{1000} ! \setfont\texttt\ttshape{12}{1000} \else ! \setfont\textrm\rmshape{10}{\mainmagstep} ! \setfont\texttt\ttshape{10}{\mainmagstep} \fi ! % Instead of cmb10, you many want to use cmbx10. % cmbx10 is a prettier font on its own, but cmb10 ! % looks better when embedded in a line with cmr10. \setfont\textbf\bfshape{10}{\mainmagstep} \setfont\textit\itshape{10}{\mainmagstep} --- 1227,1245 ---- \def\scbshape{csc} + \newcount\mainmagstep \ifx\bigger\relax ! % not really supported. ! \mainmagstep=\magstep1 ! \setfont\textrm\rmshape{12}{1000} ! \setfont\texttt\ttshape{12}{1000} \else ! \mainmagstep=\magstephalf ! \setfont\textrm\rmshape{10}{\mainmagstep} ! \setfont\texttt\ttshape{10}{\mainmagstep} \fi ! % Instead of cmb10, you may want to use cmbx10. % cmbx10 is a prettier font on its own, but cmb10 ! % looks better when embedded in a line with cmr10 ! % (in Bob's opinion). \setfont\textbf\bfshape{10}{\mainmagstep} \setfont\textit\itshape{10}{\mainmagstep} *************** *** 1102,1105 **** --- 1268,1283 ---- \font\smallsy=cmsy9 + % Fonts for small examples (8pt). + \setfont\smallerrm\rmshape{8}{1000} + \setfont\smallertt\ttshape{8}{1000} + \setfont\smallerbf\bfshape{10}{800} + \setfont\smallerit\itshape{8}{1000} + \setfont\smallersl\slshape{8}{1000} + \setfont\smallersf\sfshape{8}{1000} + \setfont\smallersc\scshape{10}{800} + \setfont\smallerttsl\ttslshape{10}{800} + \font\smalleri=cmmi8 + \font\smallersy=cmsy8 + % Fonts for title page: \setfont\titlerm\rmbshape{12}{\magstep3} *************** *** 1114,1117 **** --- 1292,1296 ---- \font\titlesy=cmsy10 scaled \magstep4 \def\authorrm{\secrm} + \def\authortt{\sectt} % Chapter (and unnumbered) fonts (17.28pt). *************** *** 1139,1156 **** \font\secsy=cmsy10 scaled \magstep2 - % \setfont\ssecrm\bxshape{10}{\magstep1} % This size an font looked bad. - % \setfont\ssecit\itshape{10}{\magstep1} % The letters were too crowded. - % \setfont\ssecsl\slshape{10}{\magstep1} - % \setfont\ssectt\ttshape{10}{\magstep1} - % \setfont\ssecsf\sfshape{10}{\magstep1} - - %\setfont\ssecrm\bfshape{10}{1315} % Note the use of cmb rather than cmbx. - %\setfont\ssecit\itshape{10}{1315} % Also, the size is a little larger than - %\setfont\ssecsl\slshape{10}{1315} % being scaled magstep1. - %\setfont\ssectt\ttshape{10}{1315} - %\setfont\ssecsf\sfshape{10}{1315} - - %\let\ssecbf=\ssecrm - % Subsection fonts (13.15pt). \setfont\ssecrm\rmbshape{12}{\magstephalf} --- 1318,1321 ---- *************** *** 1169,1183 **** % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since ! % texinfo doesn't allow for producing subscripts and superscripts, we ! % don't bother to reset \scriptfont and \scriptscriptfont (which would ! % also require loading a lot more fonts). % \def\resetmathfonts{% ! \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy ! \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf ! \textfont\ttfam = \tentt \textfont\sffam = \tensf } - % The font-changing commands redefine the meanings of \tenSTYLE, instead % of just \STYLE. We do this so that font changes will continue to work --- 1334,1347 ---- % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since ! % texinfo doesn't allow for producing subscripts and superscripts except ! % in the main text, we don't bother to reset \scriptfont and ! % \scriptscriptfont (which would also require loading a lot more fonts). % \def\resetmathfonts{% ! \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy ! \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf ! \textfont\ttfam=\tentt \textfont\sffam=\tensf } % The font-changing commands redefine the meanings of \tenSTYLE, instead % of just \STYLE. We do this so that font changes will continue to work *************** *** 1190,1194 **** \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl ! \resetmathfonts} \def\titlefonts{% \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl --- 1354,1358 ---- \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl ! \resetmathfonts \setleading{\textleading}} \def\titlefonts{% \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl *************** *** 1219,1223 **** \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy \let\tenttsl=\smallttsl ! \resetmathfonts \setleading{11pt}} % Set up the default fonts, so we can use them for creating boxes. --- 1383,1412 ---- \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy \let\tenttsl=\smallttsl ! \resetmathfonts \setleading{10.5pt}} ! \def\smallerfonts{% ! \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl ! \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc ! \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy ! \let\tenttsl=\smallerttsl ! \resetmathfonts \setleading{9.5pt}} ! ! % Set the fonts to use with the @small... environments. ! \let\smallexamplefonts = \smallfonts ! ! % About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample ! % can fit this many characters: ! % 8.5x11=86 smallbook=72 a4=90 a5=69 ! % If we use \smallerfonts (8pt), then we can fit this many characters: ! % 8.5x11=90+ smallbook=80 a4=90+ a5=77 ! % For me, subjectively, the few extra characters that fit aren't worth ! % the additional smallness of 8pt. So I'm making the default 9pt. ! % ! % By the way, for comparison, here's what fits with @example (10pt): ! % 8.5x11=71 smallbook=60 a4=75 a5=58 ! % ! % I wish we used A4 paper on this side of the Atlantic. ! % ! % --karl, 24jan03. ! % Set up the default fonts, so we can use them for creating boxes. *************** *** 1236,1239 **** --- 1425,1429 ---- \setfont\shortcontbf\bxshape{12}{1000} \setfont\shortcontsl\slshape{12}{1000} + \setfont\shortconttt\ttshape{12}{1000} %% Add scribe-like font environments, plus @l for inline lisp (usually sans *************** *** 1243,1248 **** % unless the following character is such as not to need one. \def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi} ! \def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx} ! \def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx} \let\i=\smartitalic --- 1433,1438 ---- % unless the following character is such as not to need one. \def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi} ! \def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx} ! \def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx} \let\i=\smartitalic *************** *** 1262,1265 **** --- 1452,1466 ---- \def\restorehyphenation{\hyphenchar\font = `- } + % Set sfcode to normal for the chars that usually have another value. + % Can't use plain's \frenchspacing because it uses the `\x notation, and + % sometimes \x has an active definition that messes things up. + % + \catcode`@=11 + \def\frenchspacing{% + \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m + \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m + } + \catcode`@=\other + \def\t#1{% {\tt \rawbackslash \frenchspacing #1}% *************** *** 1333,1341 **** \def\realdash{-} \def\codedash{-\discretionary{}{}{}} ! \def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}} \def\codex #1{\tclose{#1}\endgroup} - %\let\exp=\tclose %Was temporary - % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. --- 1534,1550 ---- \def\realdash{-} \def\codedash{-\discretionary{}{}{}} ! \def\codeunder{% ! % this is all so @math{@code{var_name}+1} can work. In math mode, _ ! % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.) ! % will therefore expand the active definition of _, which is us ! % (inside @code that is), therefore an endless loop. ! \ifusingtt{\ifmmode ! \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_. ! \else\normalunderscore \fi ! \discretionary{}{}{}}% ! {\_}% ! } \def\codex #1{\tclose{#1}\endgroup} % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. *************** *** 1353,1356 **** --- 1562,1568 ---- \else\ifx\arg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% + \else + \errhelp = \EMsimple + \errmessage{Unknown @kbdinputstyle `\arg'}% \fi\fi\fi } *************** *** 1359,1365 **** \def\wordcode{code} ! % Default is kbdinputdistinct. (Too much of a hassle to call the macro, ! % the catcodes are wrong for parsearg to work.) ! \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl} \def\xkey{\key} --- 1571,1576 ---- \def\wordcode{code} ! % Default is `distinct.' ! \kbdinputstyle distinct \def\xkey{\key} *************** *** 1475,1479 **** \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}% % ! \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}% % % Leave some space at the very top of the page. --- 1686,1691 ---- \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}% % ! \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines ! \let\tt=\authortt}% % % Leave some space at the very top of the page. *************** *** 1522,1525 **** --- 1734,1741 ---- \endgroup % + % Need this before the \...aftertitlepage checks so that if they are + % in effect the toc pages will come out with page numbers. + \HEADINGSon + % % If they want short, they certainly want long too. \ifsetshortcontentsaftertitlepage *************** *** 1535,1542 **** \global\let\shortcontents = \relax \fi - % - \ifpdf \pdfmakepagedesttrue \fi - % - \HEADINGSon } --- 1751,1754 ---- *************** *** 1671,1675 **** % Subroutines used in generating headings ! % Produces Day Month Year style of output. \def\today{% \number\day\space --- 1883,1890 ---- % Subroutines used in generating headings ! % This produces Day Month Year style of output. ! % Only define if not already defined, in case a txi-??.tex file has set ! % up a different format (e.g., txi-cs.tex does this). ! \ifx\today\undefined \def\today{% \number\day\space *************** *** 1680,1683 **** --- 1895,1899 ---- \fi \space\number\year} + \fi % @settitle line... specifies the title of the document, for headings. *************** *** 1752,1759 **** \nobreak \vskip-\parskip % ! % Stop a page break at the \parskip glue coming up. Unfortunately % we can't prevent a possible page break at the following ! % \baselineskip glue. ! \nobreak \endgroup \itemxneedsnegativevskipfalse --- 1968,1983 ---- \nobreak \vskip-\parskip % ! % Stop a page break at the \parskip glue coming up. (Unfortunately % we can't prevent a possible page break at the following ! % \baselineskip glue.) However, if what follows is an environment ! % such as @example, there will be no \parskip glue; then ! % the negative vskip we just would cause the example and the item to ! % crash together. So we use this bizarre value of 10001 as a signal ! % to \aboveenvbreak to insert \parskip glue after all. ! % (Possibly there are other commands that could be followed by ! % @example which need the same treatment, but not section titles; or ! % maybe section titles are the only special case and they should be ! % penalty 10001...) ! \penalty 10001 \endgroup \itemxneedsnegativevskipfalse *************** *** 1861,1869 **** \let\item=\itemizeitem} - % Set sfcode to normal for the chars that usually have another value. - % These are `.?!:;,' - \def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000 - \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 } - % \splitoff TOKENS\endmark defines \first to be the first token in % TOKENS, and \rest to be the remainder. --- 2085,2088 ---- *************** *** 2087,2092 **** \else \global\advance\colcount by 1 ! \setbox0=\hbox{#1\unskip }% Add a normal word space as a separator; ! % typically that is always in the input, anyway. \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi --- 2306,2311 ---- \else \global\advance\colcount by 1 ! \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a ! % separator; typically that is always in the input, anyway. \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi *************** *** 2103,2112 **** } - % This used to have \hskip1sp. But then the space in a template line is - % not enough. That is bad. So let's go back to just & until we - % encounter the problem it was intended to solve again. - % --karl, nathan@acm.org, 20apr99. - \def\tab{&} - % @multitable ... @end multitable definitions: % --- 2322,2325 ---- *************** *** 2114,2118 **** \def\dotable#1{\bgroup \vskip\parskip ! \let\item\crcr \tolerance=9500 \hbadness=9500 --- 2327,2337 ---- \def\dotable#1{\bgroup \vskip\parskip ! \let\item=\crcrwithfootnotes ! % A \tab used to include \hskip1sp. But then the space in a template ! % line is not enough. That is bad. So let's go back to just & until ! % we encounter the problem it was intended to solve again. --karl, ! % nathan@acm.org, 20apr99. ! \let\tab=&% ! \let\startfootins=\startsavedfootnote \tolerance=9500 \hbadness=9500 *************** *** 2122,2126 **** \overfullrule=0pt \global\colcount=0 ! \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}% % % To parse everything between @multitable and @item: --- 2341,2349 ---- \overfullrule=0pt \global\colcount=0 ! \def\Emultitable{% ! \global\setpercentfalse ! \crcrwithfootnotes\crcr ! \egroup\egroup ! }% % % To parse everything between @multitable and @item: *************** *** 2211,2214 **** --- 2434,2456 ---- \fi} + % In case a @footnote appears inside an alignment, save the footnote + % text to a box and make the \insert when a row of the table is + % finished. Otherwise, the insertion is lost, it never migrates to the + % main vertical list. --kasal, 22jan03. + % + \newbox\savedfootnotes + % + % \dotable \let's \startfootins to this, so that \dofootnote will call + % it instead of starting the insertion right away. + \def\startsavedfootnote{% + \global\setbox\savedfootnotes = \vbox\bgroup + \unvbox\savedfootnotes + } + \def\crcrwithfootnotes{% + \crcr + \ifvoid\savedfootnotes \else + \noalign{\insert\footins{\box\savedfootnotes}}% + \fi + } \message{conditionals,} *************** *** 2246,2307 **** % incorrectly. % \def\ignoremorecommands{% \let\defcodeindex = \relax ! \let\defcv = \relax ! \let\deffn = \relax ! \let\deffnx = \relax \let\defindex = \relax ! \let\defivar = \relax ! \let\defmac = \relax ! \let\defmethod = \relax ! \let\defop = \relax ! \let\defopt = \relax ! \let\defspec = \relax ! \let\deftp = \relax ! \let\deftypefn = \relax ! \let\deftypefun = \relax ! \let\deftypeivar = \relax ! \let\deftypeop = \relax ! \let\deftypevar = \relax ! \let\deftypevr = \relax ! \let\defun = \relax ! \let\defvar = \relax ! \let\defvr = \relax ! \let\ref = \relax ! \let\xref = \relax ! \let\printindex = \relax ! \let\pxref = \relax ! \let\settitle = \relax ! \let\setchapternewpage = \relax ! \let\setchapterstyle = \relax ! \let\everyheading = \relax \let\evenheading = \relax - \let\oddheading = \relax \let\everyfooting = \relax ! \let\evenfooting = \relax ! \let\oddfooting = \relax \let\headings = \relax \let\include = \relax \let\lowersections = \relax ! \let\down = \relax \let\raisesections = \relax ! \let\up = \relax \let\set = \relax ! \let\clear = \relax ! \let\item = \relax } ! % Ignore @ignore ... @end ignore. % ! \def\ignore{\doignore{ignore}} ! ! % Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text. ! % ! \def\ifinfo{\doignore{ifinfo}} \def\ifhtml{\doignore{ifhtml}} \def\ifnottex{\doignore{ifnottex}} ! \def\html{\doignore{html}} \def\menu{\doignore{menu}} ! \def\direntry{\doignore{direntry}} % @dircategory CATEGORY -- specify a category of the dir file --- 2488,2602 ---- % incorrectly. % + % We use \empty instead of \relax for the @def... commands, so that \end + % doesn't throw an error. For instance: + % @ignore + % @deffn ... + % @end deffn + % @end ignore + % + % The @end deffn is going to get expanded, because we're trying to allow + % nested conditionals. But we don't want to expand the actual @deffn, + % since it might be syntactically correct and intended to be ignored. + % Since \end checks for \relax, using \empty does not cause an error. + % \def\ignoremorecommands{% \let\defcodeindex = \relax ! \let\defcv = \empty ! \let\defcvx = \empty ! \let\Edefcv = \empty ! \let\deffn = \empty ! \let\deffnx = \empty ! \let\Edeffn = \empty \let\defindex = \relax ! \let\defivar = \empty ! \let\defivarx = \empty ! \let\Edefivar = \empty ! \let\defmac = \empty ! \let\defmacx = \empty ! \let\Edefmac = \empty ! \let\defmethod = \empty ! \let\defmethodx = \empty ! \let\Edefmethod = \empty ! \let\defop = \empty ! \let\defopx = \empty ! \let\Edefop = \empty ! \let\defopt = \empty ! \let\defoptx = \empty ! \let\Edefopt = \empty ! \let\defspec = \empty ! \let\defspecx = \empty ! \let\Edefspec = \empty ! \let\deftp = \empty ! \let\deftpx = \empty ! \let\Edeftp = \empty ! \let\deftypefn = \empty ! \let\deftypefnx = \empty ! \let\Edeftypefn = \empty ! \let\deftypefun = \empty ! \let\deftypefunx = \empty ! \let\Edeftypefun = \empty ! \let\deftypeivar = \empty ! \let\deftypeivarx = \empty ! \let\Edeftypeivar = \empty ! \let\deftypemethod = \empty ! \let\deftypemethodx = \empty ! \let\Edeftypemethod = \empty ! \let\deftypeop = \empty ! \let\deftypeopx = \empty ! \let\Edeftypeop = \empty ! \let\deftypevar = \empty ! \let\deftypevarx = \empty ! \let\Edeftypevar = \empty ! \let\deftypevr = \empty ! \let\deftypevrx = \empty ! \let\Edeftypevr = \empty ! \let\defun = \empty ! \let\defunx = \empty ! \let\Edefun = \empty ! \let\defvar = \empty ! \let\defvarx = \empty ! \let\Edefvar = \empty ! \let\defvr = \empty ! \let\defvrx = \empty ! \let\Edefvr = \empty ! \let\clear = \relax ! \let\down = \relax ! \let\evenfooting = \relax \let\evenheading = \relax \let\everyfooting = \relax ! \let\everyheading = \relax \let\headings = \relax \let\include = \relax + \let\item = \relax \let\lowersections = \relax ! \let\oddfooting = \relax ! \let\oddheading = \relax ! \let\printindex = \relax ! \let\pxref = \relax \let\raisesections = \relax ! \let\ref = \relax \let\set = \relax ! \let\setchapternewpage = \relax ! \let\setchapterstyle = \relax ! \let\settitle = \relax ! \let\up = \relax ! \let\verbatiminclude = \relax ! \let\xref = \relax } ! % Ignore @ignore, @ifhtml, @ifinfo, and the like. % ! \def\direntry{\doignore{direntry}} ! \def\documentdescriptionword{documentdescription} ! \def\documentdescription{\doignore{documentdescription}} ! \def\html{\doignore{html}} \def\ifhtml{\doignore{ifhtml}} + \def\ifinfo{\doignore{ifinfo}} \def\ifnottex{\doignore{ifnottex}} ! \def\ifplaintext{\doignore{ifplaintext}} ! \def\ifxml{\doignore{ifxml}} ! \def\ignore{\doignore{ignore}} \def\menu{\doignore{menu}} ! \def\xml{\doignore{xml}} % @dircategory CATEGORY -- specify a category of the dir file *************** *** 2321,2325 **** % % Make sure that spaces turn into tokens that match what \doignoretext wants. ! \catcode32 = 10 % % Ignore braces, too, so mismatched braces don't cause trouble. --- 2616,2620 ---- % % Make sure that spaces turn into tokens that match what \doignoretext wants. ! \catcode\spaceChar = 10 % % Ignore braces, too, so mismatched braces don't cause trouble. *************** *** 2330,2341 **** \catcode`\@ = 12 % ! % Make the letter c a comment character so that the rest of the line ! % will be ignored. This way, the document can have (for example) ! % @c @end ifinfo ! % and the @end ifinfo will be properly ignored. ! % (We've just changed @ to catcode 12.) ! \catcode`\c = 14 % ! % And now expand that command. \doignoretext } --- 2625,2643 ---- \catcode`\@ = 12 % ! \def\ignoreword{#1}% ! \ifx\ignoreword\documentdescriptionword ! % The c kludge breaks documentdescription, since ! % `documentdescription' contains a `c'. Means not everything will ! % be ignored inside @documentdescription, but oh well... ! \else ! % Make the letter c a comment character so that the rest of the line ! % will be ignored. This way, the document can have (for example) ! % @c @end ifinfo ! % and the @end ifinfo will be properly ignored. ! % (We've just changed @ to catcode 12.) ! \catcode`\c = 14 ! \fi % ! % And now expand the command defined above. \doignoretext } *************** *** 2356,2360 **** \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.} \immediate\write16{ Then upgrade your TeX installation if you can.} ! \immediate\write16{ (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)} \immediate\write16{If you are stuck with version 3.0, run the} \immediate\write16{ script ``tex3patch'' from the Texinfo distribution} --- 2658,2662 ---- \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.} \immediate\write16{ Then upgrade your TeX installation if you can.} ! \immediate\write16{ (See ftp://ftp.gnu.org/non-gnu/TeX.README.)} \immediate\write16{If you are stuck with version 3.0, run the} \immediate\write16{ script ``tex3patch'' from the Texinfo distribution} *************** *** 2378,2383 **** % command, so that nested ignore constructs work. Thus, we put the % text into a \vbox and then do nothing with the result. To minimize ! % the change of memory overflow, we follow the approach outlined on ! % page 401 of the TeXbook: make the current font be a dummy font. % \setbox0 = \vbox\bgroup --- 2680,2685 ---- % command, so that nested ignore constructs work. Thus, we put the % text into a \vbox and then do nothing with the result. To minimize ! % the chance of memory overflow, we follow the approach outlined on ! % page 401 of the TeXbook. % \setbox0 = \vbox\bgroup *************** *** 2400,2405 **** % Set the current font to be \nullfont, a TeX primitive, and define % all the font commands to also use \nullfont. We don't use ! % dummy.tfm, as suggested in the TeXbook, because not all sites ! % might have that installed. Therefore, math mode will still % produce output, but that should be an extremely small amount of % stuff compared to the main input. --- 2702,2707 ---- % Set the current font to be \nullfont, a TeX primitive, and define % all the font commands to also use \nullfont. We don't use ! % dummy.tfm, as suggested in the TeXbook, because some sites ! % might not have that installed. Therefore, math mode will still % produce output, but that should be an extremely small amount of % stuff compared to the main input. *************** *** 2409,2416 **** \let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont \let\tensf=\nullfont ! % Similarly for index fonts (mostly for their use in smallexample). \let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont \let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont \let\smallsf=\nullfont % % Don't complain when characters are missing from the fonts. --- 2711,2722 ---- \let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont \let\tensf=\nullfont ! % Similarly for index fonts. \let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont \let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont \let\smallsf=\nullfont + % Similarly for smallexample fonts. + \let\smallerrm=\nullfont \let\smallerit=\nullfont \let\smallersl=\nullfont + \let\smallerbf=\nullfont \let\smallertt=\nullfont \let\smallersc=\nullfont + \let\smallersf=\nullfont % % Don't complain when characters are missing from the fonts. *************** *** 2426,2430 **** \pretolerance = 10000 % ! % Do not execute instructions in @tex \def\tex{\doignore{tex}}% % Do not execute macro definitions. --- 2732,2736 ---- \pretolerance = 10000 % ! % Do not execute instructions in @tex. \def\tex{\doignore{tex}}% % Do not execute macro definitions. *************** *** 2471,2475 **** % such active characters to their normal equivalents. \gdef\value{\begingroup ! \catcode`\-=12 \catcode`\_=12 \indexbreaks \let_\normalunderscore \valuexxx} --- 2777,2781 ---- % such active characters to their normal equivalents. \gdef\value{\begingroup ! \catcode`\-=\other \catcode`\_=\other \indexbreaks \let_\normalunderscore \valuexxx} *************** *** 2480,2492 **** % properly in indexes (we \let\value to this in \indexdummies). Ones % whose names contain - or _ still won't work, but we can't do anything ! % about that. The command has to be fully expandable, since the result ! % winds up in the index file. This means that if the variable's value ! % contains other Texinfo commands, it's almost certain it will fail ! % (although perhaps we could fix that with sufficient work to do a ! % one-level expansion on the result, instead of complete). % \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax {[No value for ``#1'']}% \else \csname SET#1\endcsname --- 2786,2800 ---- % properly in indexes (we \let\value to this in \indexdummies). Ones % whose names contain - or _ still won't work, but we can't do anything ! % about that. The command has to be fully expandable (if the variable ! % is set), since the result winds up in the index file. This means that ! % if the variable's value contains other Texinfo commands, it's almost ! % certain it will fail (although perhaps we could fix that with ! % sufficient work to do a one-level expansion on the result, instead of ! % complete). % \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax {[No value for ``#1'']}% + \message{Variable `#1', used in @value, is not set.}% \else \csname SET#1\endcsname *************** *** 2497,2507 **** % with @set. % ! \def\ifset{\parsearg\ifsetxxx} ! \def\ifsetxxx #1{% \expandafter\ifx\csname SET#1\endcsname\relax ! \expandafter\ifsetfail \else ! \expandafter\ifsetsucceed \fi } \def\ifsetsucceed{\conditionalsucceed{ifset}} --- 2805,2816 ---- % with @set. % ! \def\ifset{\parsearg\doifset} ! \def\doifset#1{% \expandafter\ifx\csname SET#1\endcsname\relax ! \let\next=\ifsetfail \else ! \let\next=\ifsetsucceed \fi + \next } \def\ifsetsucceed{\conditionalsucceed{ifset}} *************** *** 2512,2522 **** % defined with @set, or has been undefined with @clear. % ! \def\ifclear{\parsearg\ifclearxxx} ! \def\ifclearxxx #1{% \expandafter\ifx\csname SET#1\endcsname\relax ! \expandafter\ifclearsucceed \else ! \expandafter\ifclearfail \fi } \def\ifclearsucceed{\conditionalsucceed{ifclear}} --- 2821,2832 ---- % defined with @set, or has been undefined with @clear. % ! \def\ifclear{\parsearg\doifclear} ! \def\doifclear#1{% \expandafter\ifx\csname SET#1\endcsname\relax ! \let\next=\ifclearsucceed \else ! \let\next=\ifclearfail \fi + \next } \def\ifclearsucceed{\conditionalsucceed{ifclear}} *************** *** 2524,2560 **** \defineunmatchedend{ifclear} ! % @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text ! % following, through the first @end iftex (etc.). Make `@end iftex' ! % (etc.) valid only after an @iftex. % \def\iftex{\conditionalsucceed{iftex}} \def\ifnothtml{\conditionalsucceed{ifnothtml}} \def\ifnotinfo{\conditionalsucceed{ifnotinfo}} \defineunmatchedend{iftex} \defineunmatchedend{ifnothtml} \defineunmatchedend{ifnotinfo} ! % We can't just want to start a group at @iftex (for example) and end it ! % at @end iftex, since then @set commands inside the conditional have no ! % effect (they'd get reverted at the end of the group). So we must ! % define \Eiftex to redefine itself to be its previous value. (We can't ! % just define it to fail again with an ``unmatched end'' error, since ! % the @ifset might be nested.) ! % ! \def\conditionalsucceed#1{% ! \edef\temp{% ! % Remember the current value of \E#1. ! \let\nece{prevE#1} = \nece{E#1}% ! % ! % At the `@end #1', redefine \E#1 to be its previous value. ! \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}% ! }% ! \temp ! } ! ! % We need to expand lots of \csname's, but we don't want to expand the ! % control sequences after we've constructed them. % ! \def\nece#1{\expandafter\noexpand\csname#1\endcsname} % @defininfoenclose. --- 2834,2857 ---- \defineunmatchedend{ifclear} ! % @iftex, @ifnothtml, @ifnotinfo, @ifnotplaintext always succeed; we ! % read the text following, through the first @end iftex (etc.). Make ! % `@end iftex' (etc.) valid only after an @iftex. % \def\iftex{\conditionalsucceed{iftex}} \def\ifnothtml{\conditionalsucceed{ifnothtml}} \def\ifnotinfo{\conditionalsucceed{ifnotinfo}} + \def\ifnotplaintext{\conditionalsucceed{ifnotplaintext}} \defineunmatchedend{iftex} \defineunmatchedend{ifnothtml} \defineunmatchedend{ifnotinfo} + \defineunmatchedend{ifnotplaintext} ! % True conditional. Since \set globally defines its variables, we can ! % just start and end a group (to keep the @end definition undefined at ! % the outer level). % ! \def\conditionalsucceed#1{\begingroup ! \expandafter\def\csname E#1\endcsname{\endgroup}% ! } % @defininfoenclose. *************** *** 2588,2596 **** % @defindex foo == \newindex{foo} ! \def\defindex{\parsearg\newindex} % Define @defcodeindex, like @defindex except put all entries in @code. ! \def\newcodeindex#1{% \iflinks --- 2885,2895 ---- % @defindex foo == \newindex{foo} ! % \def\defindex{\parsearg\newindex} % Define @defcodeindex, like @defindex except put all entries in @code. ! % ! \def\defcodeindex{\parsearg\newcodeindex} ! % \def\newcodeindex#1{% \iflinks *************** *** 2599,2627 **** \fi \expandafter\xdef\csname#1index\endcsname{% ! \noexpand\docodeindex{#1}} } - \def\defcodeindex{\parsearg\newcodeindex} % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. ! % The \closeout helps reduce unnecessary open files; the limit on the ! % Acorn RISC OS is a mere 16 files. ! \def\synindex#1 #2 {% ! \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname ! \expandafter\closeout\csname#1indfile\endcsname ! \expandafter\let\csname#1indfile\endcsname=\synindexfoo ! \expandafter\xdef\csname#1index\endcsname{% define \xxxindex ! \noexpand\doindex{#2}}% ! } ! % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. ! \def\syncodeindex#1 #2 {% ! \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname ! \expandafter\closeout\csname#1indfile\endcsname ! \expandafter\let\csname#1indfile\endcsname=\synindexfoo ! \expandafter\xdef\csname#1index\endcsname{% define \xxxindex ! \noexpand\docodeindex{#2}}% } --- 2898,2930 ---- \fi \expandafter\xdef\csname#1index\endcsname{% ! \noexpand\docodeindex{#1}}% } % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. ! % % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. ! % ! \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}} ! \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}} ! ! % #1 is \doindex or \docodeindex, #2 the index getting redefined (foo), ! % #3 the target index (bar). ! \def\dosynindex#1#2#3{% ! % Only do \closeout if we haven't already done it, else we'll end up ! % closing the target index. ! \expandafter \ifx\csname donesynindex#2\endcsname \undefined ! % The \closeout helps reduce unnecessary open files; the limit on the ! % Acorn RISC OS is a mere 16 files. ! \expandafter\closeout\csname#2indfile\endcsname ! \expandafter\let\csname\donesynindex#2\endcsname = 1 ! \fi ! % redefine \fooindfile: ! \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname ! \expandafter\let\csname#2indfile\endcsname=\temp ! % redefine \fooindex: ! \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}% } *************** *** 2643,2811 **** \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} \def\indexdummies{% ! \def\ { }% ! % Take care of the plain tex accent commands. ! \def\"{\realbackslash "}% ! \def\`{\realbackslash `}% ! \def\'{\realbackslash '}% ! \def\^{\realbackslash ^}% ! \def\~{\realbackslash ~}% ! \def\={\realbackslash =}% ! \def\b{\realbackslash b}% ! \def\c{\realbackslash c}% ! \def\d{\realbackslash d}% ! \def\u{\realbackslash u}% ! \def\v{\realbackslash v}% ! \def\H{\realbackslash H}% ! % Take care of the plain tex special European modified letters. ! \def\oe{\realbackslash oe}% ! \def\ae{\realbackslash ae}% ! \def\aa{\realbackslash aa}% ! \def\OE{\realbackslash OE}% ! \def\AE{\realbackslash AE}% ! \def\AA{\realbackslash AA}% ! \def\o{\realbackslash o}% ! \def\O{\realbackslash O}% ! \def\l{\realbackslash l}% ! \def\L{\realbackslash L}% ! \def\ss{\realbackslash ss}% ! % Take care of texinfo commands likely to appear in an index entry. ! % (Must be a way to avoid doing expansion at all, and thus not have to ! % laboriously list every single command here.) ! \def\@{@}% will be @@ when we switch to @ as escape char. ! % Need these in case \tex is in effect and \{ is a \delimiter again. ! % But can't use \lbracecmd and \rbracecmd because texindex assumes ! % braces and backslashes are used only as delimiters. ! \let\{ = \mylbrace ! \let\} = \myrbrace ! \def\_{{\realbackslash _}}% ! \def\w{\realbackslash w }% ! \def\bf{\realbackslash bf }% ! %\def\rm{\realbackslash rm }% ! \def\sl{\realbackslash sl }% ! \def\sf{\realbackslash sf}% ! \def\tt{\realbackslash tt}% ! \def\gtr{\realbackslash gtr}% ! \def\less{\realbackslash less}% ! \def\hat{\realbackslash hat}% ! \def\TeX{\realbackslash TeX}% ! \def\dots{\realbackslash dots }% ! \def\result{\realbackslash result}% ! \def\equiv{\realbackslash equiv}% ! \def\expansion{\realbackslash expansion}% ! \def\print{\realbackslash print}% ! \def\error{\realbackslash error}% ! \def\point{\realbackslash point}% ! \def\copyright{\realbackslash copyright}% ! \def\tclose##1{\realbackslash tclose {##1}}% ! \def\code##1{\realbackslash code {##1}}% ! \def\uref##1{\realbackslash uref {##1}}% ! \def\url##1{\realbackslash url {##1}}% ! \def\env##1{\realbackslash env {##1}}% ! \def\command##1{\realbackslash command {##1}}% ! \def\option##1{\realbackslash option {##1}}% ! \def\dotless##1{\realbackslash dotless {##1}}% ! \def\samp##1{\realbackslash samp {##1}}% ! \def\,##1{\realbackslash ,{##1}}% ! \def\t##1{\realbackslash t {##1}}% ! \def\r##1{\realbackslash r {##1}}% ! \def\i##1{\realbackslash i {##1}}% ! \def\b##1{\realbackslash b {##1}}% ! \def\sc##1{\realbackslash sc {##1}}% ! \def\cite##1{\realbackslash cite {##1}}% ! \def\key##1{\realbackslash key {##1}}% ! \def\file##1{\realbackslash file {##1}}% ! \def\var##1{\realbackslash var {##1}}% ! \def\kbd##1{\realbackslash kbd {##1}}% ! \def\dfn##1{\realbackslash dfn {##1}}% ! \def\emph##1{\realbackslash emph {##1}}% ! \def\acronym##1{\realbackslash acronym {##1}}% ! % ! % Handle some cases of @value -- where the variable name does not ! % contain - or _, and the value does not contain any ! % (non-fully-expandable) commands. ! \let\value = \expandablevalue ! % ! \unsepspaces ! % Turn off macro expansion ! \turnoffmacros } % If an index command is used in an @example environment, any spaces % therein should become regular spaces in the raw index file, not the ! % expansion of \tie (\\leavevmode \penalty \@M \ ). {\obeyspaces \gdef\unsepspaces{\obeyspaces\let =\space}} ! % \indexnofonts no-ops all font-change commands. ! % This is used when outputting the strings to sort the index by. ! \def\indexdummyfont#1{#1} \def\indexdummytex{TeX} \def\indexdummydots{...} ! \def\indexnofonts{% ! % Just ignore accents. ! \let\,=\indexdummyfont ! \let\"=\indexdummyfont ! \let\`=\indexdummyfont ! \let\'=\indexdummyfont ! \let\^=\indexdummyfont ! \let\~=\indexdummyfont ! \let\==\indexdummyfont ! \let\b=\indexdummyfont ! \let\c=\indexdummyfont ! \let\d=\indexdummyfont ! \let\u=\indexdummyfont ! \let\v=\indexdummyfont ! \let\H=\indexdummyfont ! \let\dotless=\indexdummyfont ! % Take care of the plain tex special European modified letters. ! \def\oe{oe}% ! \def\ae{ae}% ! \def\aa{aa}% ! \def\OE{OE}% ! \def\AE{AE}% ! \def\AA{AA}% ! \def\o{o}% ! \def\O{O}% ! \def\l{l}% ! \def\L{L}% ! \def\ss{ss}% ! \let\w=\indexdummyfont ! \let\t=\indexdummyfont ! \let\r=\indexdummyfont ! \let\i=\indexdummyfont ! \let\b=\indexdummyfont ! \let\emph=\indexdummyfont ! \let\strong=\indexdummyfont ! \let\cite=\indexdummyfont ! \let\sc=\indexdummyfont ! %Don't no-op \tt, since it isn't a user-level command ! % and is used in the definitions of the active chars like <, >, |... ! %\let\tt=\indexdummyfont ! \let\tclose=\indexdummyfont ! \let\code=\indexdummyfont ! \let\url=\indexdummyfont ! \let\uref=\indexdummyfont ! \let\env=\indexdummyfont ! \let\acronym=\indexdummyfont ! \let\command=\indexdummyfont ! \let\option=\indexdummyfont ! \let\file=\indexdummyfont ! \let\samp=\indexdummyfont ! \let\kbd=\indexdummyfont ! \let\key=\indexdummyfont ! \let\var=\indexdummyfont ! \let\TeX=\indexdummytex ! \let\dots=\indexdummydots ! \def\@{@}% ! } ! ! % To define \realbackslash, we must make \ not be an escape. ! % We must first make another character (@) an escape ! % so we do not become unable to do a definition. ! ! {\catcode`\@=0 \catcode`\\=\other ! @gdef@realbackslash{\}} \let\indexbackslash=0 %overridden during \printindex. --- 2946,3197 ---- \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} + % Take care of Texinfo commands that can appear in an index entry. + % Since there are some commands we want to expand, and others we don't, + % we have to laboriously prevent expansion for those that we don't. + % \def\indexdummies{% ! \def\@{@}% change to @@ when we switch to @ as escape char in index files. ! \def\ {\realbackslash\space }% ! % Need these in case \tex is in effect and \{ is a \delimiter again. ! % But can't use \lbracecmd and \rbracecmd because texindex assumes ! % braces and backslashes are used only as delimiters. ! \let\{ = \mylbrace ! \let\} = \myrbrace ! % ! % \definedummyword defines \#1 as \realbackslash #1\space, thus ! % effectively preventing its expansion. This is used only for control ! % words, not control letters, because the \space would be incorrect ! % for control characters, but is needed to separate the control word ! % from whatever follows. ! % ! % For control letters, we have \definedummyletter, which omits the ! % space. ! % ! % These can be used both for control words that take an argument and ! % those that do not. If it is followed by {arg} in the input, then ! % that will dutifully get written to the index (or wherever). ! % ! \def\definedummyword##1{% ! \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}% ! }% ! \def\definedummyletter##1{% ! \expandafter\def\csname ##1\endcsname{\realbackslash ##1}% ! }% ! % ! % Do the redefinitions. ! \commondummies ! } ! ! % For the aux file, @ is the escape character. So we want to redefine ! % everything using @ instead of \realbackslash. When everything uses ! % @, this will be simpler. ! % ! \def\atdummies{% ! \def\@{@@}% ! \def\ {@ }% ! \let\{ = \lbraceatcmd ! \let\} = \rbraceatcmd ! % ! % (See comments in \indexdummies.) ! \def\definedummyword##1{% ! \expandafter\def\csname ##1\endcsname{@##1\space}% ! }% ! \def\definedummyletter##1{% ! \expandafter\def\csname ##1\endcsname{@##1}% ! }% ! % ! % Do the redefinitions. ! \commondummies ! } ! ! % Called from \indexdummies and \atdummies. \definedummyword and ! % \definedummyletter must be defined first. ! % ! \def\commondummies{% ! % ! \normalturnoffactive ! % ! % Control letters and accents. ! \definedummyletter{_}% ! \definedummyletter{,}% ! \definedummyletter{"}% ! \definedummyletter{`}% ! \definedummyletter{'}% ! \definedummyletter{^}% ! \definedummyletter{~}% ! \definedummyletter{=}% ! \definedummyword{u}% ! \definedummyword{v}% ! \definedummyword{H}% ! \definedummyword{dotaccent}% ! \definedummyword{ringaccent}% ! \definedummyword{tieaccent}% ! \definedummyword{ubaraccent}% ! \definedummyword{udotaccent}% ! \definedummyword{dotless}% ! % ! % Other non-English letters. ! \definedummyword{AA}% ! \definedummyword{AE}% ! \definedummyword{L}% ! \definedummyword{OE}% ! \definedummyword{O}% ! \definedummyword{aa}% ! \definedummyword{ae}% ! \definedummyword{l}% ! \definedummyword{oe}% ! \definedummyword{o}% ! \definedummyword{ss}% ! % ! % Although these internal commands shouldn't show up, sometimes they do. ! \definedummyword{bf}% ! \definedummyword{gtr}% ! \definedummyword{hat}% ! \definedummyword{less}% ! \definedummyword{sf}% ! \definedummyword{sl}% ! \definedummyword{tclose}% ! \definedummyword{tt}% ! % ! % Texinfo font commands. ! \definedummyword{b}% ! \definedummyword{i}% ! \definedummyword{r}% ! \definedummyword{sc}% ! \definedummyword{t}% ! % ! \definedummyword{TeX}% ! \definedummyword{acronym}% ! \definedummyword{cite}% ! \definedummyword{code}% ! \definedummyword{command}% ! \definedummyword{dfn}% ! \definedummyword{dots}% ! \definedummyword{emph}% ! \definedummyword{env}% ! \definedummyword{file}% ! \definedummyword{kbd}% ! \definedummyword{key}% ! \definedummyword{math}% ! \definedummyword{option}% ! \definedummyword{samp}% ! \definedummyword{strong}% ! \definedummyword{uref}% ! \definedummyword{url}% ! \definedummyword{var}% ! \definedummyword{w}% ! % ! % Assorted special characters. ! \definedummyword{bullet}% ! \definedummyword{copyright}% ! \definedummyword{dots}% ! \definedummyword{enddots}% ! \definedummyword{equiv}% ! \definedummyword{error}% ! \definedummyword{expansion}% ! \definedummyword{minus}% ! \definedummyword{pounds}% ! \definedummyword{point}% ! \definedummyword{print}% ! \definedummyword{result}% ! % ! % Handle some cases of @value -- where the variable name does not ! % contain - or _, and the value does not contain any ! % (non-fully-expandable) commands. ! \let\value = \expandablevalue ! % ! % Normal spaces, not active ones. ! \unsepspaces ! % ! % No macro expansion. ! \turnoffmacros } % If an index command is used in an @example environment, any spaces % therein should become regular spaces in the raw index file, not the ! % expansion of \tie (\leavevmode \penalty \@M \ ). {\obeyspaces \gdef\unsepspaces{\obeyspaces\let =\space}} ! ! % \indexnofonts is used when outputting the strings to sort the index ! % by, and when constructing control sequence names. It eliminates all ! % control sequences and just writes whatever the best ASCII sort string ! % would be for a given command (usually its argument). ! % \def\indexdummytex{TeX} \def\indexdummydots{...} ! % \def\indexnofonts{% ! \def\ { }% ! \def\@{@}% ! % how to handle braces? ! \def\_{\normalunderscore}% ! % ! \let\,=\asis ! \let\"=\asis ! \let\`=\asis ! \let\'=\asis ! \let\^=\asis ! \let\~=\asis ! \let\==\asis ! \let\u=\asis ! \let\v=\asis ! \let\H=\asis ! \let\dotaccent=\asis ! \let\ringaccent=\asis ! \let\tieaccent=\asis ! \let\ubaraccent=\asis ! \let\udotaccent=\asis ! \let\dotless=\asis ! % ! % Other non-English letters. ! \def\AA{AA}% ! \def\AE{AE}% ! \def\L{L}% ! \def\OE{OE}% ! \def\O{O}% ! \def\aa{aa}% ! \def\ae{ae}% ! \def\l{l}% ! \def\oe{oe}% ! \def\o{o}% ! \def\ss{ss}% ! \def\exclamdown{!}% ! \def\questiondown{?}% ! % ! % Don't no-op \tt, since it isn't a user-level command ! % and is used in the definitions of the active chars like <, >, |, etc. ! % Likewise with the other plain tex font commands. ! %\let\tt=\asis ! % ! % Texinfo font commands. ! \let\b=\asis ! \let\i=\asis ! \let\r=\asis ! \let\sc=\asis ! \let\t=\asis ! % ! \let\TeX=\indexdummytex ! \let\acronym=\asis ! \let\cite=\asis ! \let\code=\asis ! \let\command=\asis ! \let\dfn=\asis ! \let\dots=\indexdummydots ! \let\emph=\asis ! \let\env=\asis ! \let\file=\asis ! \let\kbd=\asis ! \let\key=\asis ! \let\math=\asis ! \let\option=\asis ! \let\samp=\asis ! \let\strong=\asis ! \let\uref=\asis ! \let\url=\asis ! \let\var=\asis ! \let\w=\asis ! } \let\indexbackslash=0 %overridden during \printindex. *************** *** 2839,2868 **** % so it will be output as is; and it will print as backslash. % ! \def\thirdarg{#3}% ! % ! % If third arg is present, precede it with space in sort key. ! \ifx\thirdarg\emptymacro ! \let\subentry = \empty ! \else ! \def\subentry{ #3}% ! \fi ! % ! % First process the index entry with all font commands turned ! % off to get the string to sort by. ! {\indexnofonts \xdef\indexsorttmp{#2\subentry}}% ! % ! % Now the real index entry with the fonts. \toks0 = {#2}% % ! % If third (subentry) arg is present, add it to the index ! % string. And include a space. \ifx\thirdarg\emptymacro \else \toks0 = \expandafter{\the\toks0 \space #3}% \fi % ! % Set up the complete index entry, with both the sort key ! % and the original text, including any font commands. We write ! % three arguments to \entry to the .?? file, texindex reduces to ! % two when writing the .??s sorted result. \edef\temp{% \write\csname#1indfile\endcsname{% --- 3225,3251 ---- % so it will be output as is; and it will print as backslash. % ! % The main index entry text. \toks0 = {#2}% % ! % If third arg is present, precede it with space in sort key. ! \def\thirdarg{#3}% \ifx\thirdarg\emptymacro \else + % If the third (subentry) arg is present, add it to the index + % line to write. \toks0 = \expandafter{\the\toks0 \space #3}% \fi % ! % Process the index entry with all font commands turned off, to ! % get the string to sort by. ! {\indexnofonts ! \edef\temp{\the\toks0}% need full expansion ! \xdef\indexsorttmp{\temp}% ! }% ! % ! % Set up the complete index entry, with both the sort key and ! % the original text, including any font commands. We write ! % three arguments to \entry to the .?? file (four in the ! % subentry case), texindex reduces to two when writing the .??s ! % sorted result. \edef\temp{% \write\csname#1indfile\endcsname{% *************** *** 2890,2899 **** \ifvmode \skip0 = \lastskip ! \ifdim\lastskip = 0pt \else \nobreak\vskip-\lastskip \fi \fi % \temp % do the write % - % \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi \fi --- 3273,3281 ---- \ifvmode \skip0 = \lastskip ! \ifdim\lastskip = 0pt \else \nobreak\vskip-\skip0 \fi \fi % \temp % do the write % \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi \fi *************** *** 3086,3094 **** \newskip\secondaryindent \secondaryindent=0.5cm ! ! \def\secondary #1#2{ ! {\parfillskip=0in \parskip=0in ! \hangindent =1in \hangafter=1 ! \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par }} --- 3468,3483 ---- \newskip\secondaryindent \secondaryindent=0.5cm ! \def\secondary#1#2{{% ! \parfillskip=0in ! \parskip=0in ! \hangindent=1in ! \hangafter=1 ! \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill ! \ifpdf ! \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. ! \else ! #2 ! \fi ! \par }} *************** *** 3150,3154 **** % Double the \vsize as well. (We don't need a separate register here, % since nobody clobbers \vsize.) - \advance\vsize by -\ht\partialpage \vsize = 2\vsize } --- 3539,3542 ---- *************** *** 3164,3167 **** --- 3552,3556 ---- \dimen@ = \vsize \divide\dimen@ by 2 + \advance\dimen@ by -\ht\partialpage % % box0 will be the left-hand column, box2 the right. *************** *** 3171,3177 **** \penalty\outputpenalty } \def\pagesofar{% - % Re-output the contents of the output page -- any previous material, - % followed by the two boxes we just split, in box0 and box2. \unvbox\partialpage % --- 3560,3567 ---- \penalty\outputpenalty } + % + % Re-output the contents of the output page -- any previous material, + % followed by the two boxes we just split, in box0 and box2. \def\pagesofar{% \unvbox\partialpage % *************** *** 3180,3183 **** --- 3570,3575 ---- \hbox to\pagewidth{\box0\hfil\box2}% } + % + % All done with double columns. \def\enddoublecolumns{% \output = {% *************** *** 3204,3209 **** \pagegoal = \vsize } \def\balancecolumns{% - % Called at the end of the double column material. \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120. \dimen@ = \ht0 --- 3596,3602 ---- \pagegoal = \vsize } + % + % Called at the end of the double column material. \def\balancecolumns{% \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120. \dimen@ = \ht0 *************** *** 3360,3399 **** \def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz \def\chapterzzz #1{% ! \secno=0 \subsecno=0 \subsubsecno=0 ! \global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}% ! \chapmacro {#1}{\the\chapno}% ! \gdef\thissection{#1}% ! \gdef\thischaptername{#1}% ! % We don't substitute the actual chapter name into \thischapter ! % because we don't want its macros evaluated now. ! \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}% ! {\the\chapno}}}% ! \temp ! \donoderef ! \global\let\section = \numberedsec ! \global\let\subsection = \numberedsubsec ! \global\let\subsubsection = \numberedsubsubsec ! } \outer\def\appendix{\parsearg\appendixyyy} \def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz \def\appendixzzz #1{% ! \secno=0 \subsecno=0 \subsubsecno=0 ! \global\advance \appendixno by 1 ! \message{\putwordAppendix\space \appendixletter}% ! \chapmacro {#1}{\putwordAppendix{} \appendixletter}% ! \gdef\thissection{#1}% ! \gdef\thischaptername{#1}% ! \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}% ! {\putwordAppendix{} \appendixletter}}}% ! \temp ! \appendixnoderef ! \global\let\section = \appendixsec ! \global\let\subsection = \appendixsubsec ! \global\let\subsubsection = \appendixsubsubsec } --- 3753,3791 ---- \def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz \def\chapterzzz #1{% ! \secno=0 \subsecno=0 \subsubsecno=0 ! \global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}% ! \chapmacro {#1}{\the\chapno}% ! \gdef\thissection{#1}% ! \gdef\thischaptername{#1}% ! % We don't substitute the actual chapter name into \thischapter ! % because we don't want its macros evaluated now. ! \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% ! \writetocentry{chap}{#1}{{\the\chapno}} ! \donoderef ! \global\let\section = \numberedsec ! \global\let\subsection = \numberedsubsec ! \global\let\subsubsection = \numberedsubsubsec ! } ! ! % we use \chapno to avoid indenting back ! \def\appendixbox#1{% ! \setbox0 = \hbox{\putwordAppendix{} \the\chapno}% ! \hbox to \wd0{#1\hss}} \outer\def\appendix{\parsearg\appendixyyy} \def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz \def\appendixzzz #1{% ! \secno=0 \subsecno=0 \subsubsecno=0 ! \global\advance \appendixno by 1 ! \message{\putwordAppendix\space \appendixletter}% ! \chapmacro {#1}{\appendixbox{\putwordAppendix{} \appendixletter}}% ! \gdef\thissection{#1}% ! \gdef\thischaptername{#1}% ! \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% ! \writetocentry{appendix}{#1}{{\appendixletter}} ! \appendixnoderef ! \global\let\section = \appendixsec ! \global\let\subsection = \appendixsubsec ! \global\let\subsubsection = \appendixsubsubsec } *************** *** 3408,3435 **** \def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz \def\unnumberedzzz #1{% ! \secno=0 \subsecno=0 \subsubsecno=0 ! % ! % This used to be simply \message{#1}, but TeX fully expands the ! % argument to \message. Therefore, if #1 contained @-commands, TeX ! % expanded them. For example, in `@unnumbered The @cite{Book}', TeX ! % expanded @cite (which turns out to cause errors because \cite is meant ! % to be executed, not expanded). ! % ! % Anyway, we don't want the fully-expanded definition of @cite to appear ! % as a result of the \message, we just want `@cite' itself. We use ! % \the to achieve this: TeX expands \the only once, ! % simply yielding the contents of . (We also do this for ! % the toc entries.) ! \toks0 = {#1}\message{(\the\toks0)}% ! % ! \unnumbchapmacro {#1}% ! \gdef\thischapter{#1}\gdef\thissection{#1}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}}}% ! \temp ! \unnumbnoderef ! \global\let\section = \unnumberedsec ! \global\let\subsection = \unnumberedsubsec ! \global\let\subsubsection = \unnumberedsubsubsec } --- 3800,3825 ---- \def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz \def\unnumberedzzz #1{% ! \secno=0 \subsecno=0 \subsubsecno=0 ! % ! % This used to be simply \message{#1}, but TeX fully expands the ! % argument to \message. Therefore, if #1 contained @-commands, TeX ! % expanded them. For example, in `@unnumbered The @cite{Book}', TeX ! % expanded @cite (which turns out to cause errors because \cite is meant ! % to be executed, not expanded). ! % ! % Anyway, we don't want the fully-expanded definition of @cite to appear ! % as a result of the \message, we just want `@cite' itself. We use ! % \the to achieve this: TeX expands \the only once, ! % simply yielding the contents of . (We also do this for ! % the toc entries.) ! \toks0 = {#1}\message{(\the\toks0)}% ! % ! \unnumbchapmacro {#1}% ! \gdef\thischapter{#1}\gdef\thissection{#1}% ! \writetocentry{unnumbchap}{#1}{{\the\chapno}} ! \unnumbnoderef ! \global\let\section = \unnumberedsec ! \global\let\subsection = \unnumberedsubsec ! \global\let\subsubsection = \unnumberedsubsubsec } *************** *** 3438,3449 **** \def\secyyy #1{\numhead1{#1}} % normally calls seczzz \def\seczzz #1{% ! \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % ! \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}% ! {\the\chapno}{\the\secno}}}% ! \temp ! \donoderef ! \nobreak } --- 3828,3836 ---- \def\secyyy #1{\numhead1{#1}} % normally calls seczzz \def\seczzz #1{% ! \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % ! \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% ! \writetocentry{sec}{#1}{{\the\chapno}{\the\secno}} ! \donoderef ! \nobreak } *************** *** 3452,3463 **** \def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz \def\appendixsectionzzz #1{% ! \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % ! \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}% ! {\appendixletter}{\the\secno}}}% ! \temp ! \appendixnoderef ! \nobreak } --- 3839,3847 ---- \def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz \def\appendixsectionzzz #1{% ! \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % ! \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% ! \writetocentry{sec}{#1}{{\appendixletter}{\the\secno}} ! \appendixnoderef ! \nobreak } *************** *** 3465,3474 **** \def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz \def\unnumberedseczzz #1{% ! \plainsecheading {#1}\gdef\thissection{#1}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry{\the\toks0}}}% ! \temp ! \unnumbnoderef ! \nobreak } --- 3849,3856 ---- \def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz \def\unnumberedseczzz #1{% ! \plainsecheading {#1}\gdef\thissection{#1}% ! \writetocentry{unnumbsec}{#1}{{\the\chapno}{\the\secno}} ! \unnumbnoderef ! \nobreak } *************** *** 3477,3488 **** \def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz \def\numberedsubseczzz #1{% ! \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % ! \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}% ! {\the\chapno}{\the\secno}{\the\subsecno}}}% ! \temp ! \donoderef ! \nobreak } --- 3859,3867 ---- \def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz \def\numberedsubseczzz #1{% ! \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % ! \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% ! \writetocentry{subsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}} ! \donoderef ! \nobreak } *************** *** 3490,3501 **** \def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz \def\appendixsubseczzz #1{% ! \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % ! \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}% ! {\appendixletter}{\the\secno}{\the\subsecno}}}% ! \temp ! \appendixnoderef ! \nobreak } --- 3869,3877 ---- \def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz \def\appendixsubseczzz #1{% ! \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % ! \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% ! \writetocentry{subsec}{#1}{{\appendixletter}{\the\secno}{\the\subsecno}} ! \appendixnoderef ! \nobreak } *************** *** 3503,3513 **** \def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz \def\unnumberedsubseczzz #1{% ! \plainsubsecheading {#1}\gdef\thissection{#1}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry% ! {\the\toks0}}}% ! \temp ! \unnumbnoderef ! \nobreak } --- 3879,3886 ---- \def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz \def\unnumberedsubseczzz #1{% ! \plainsubsecheading {#1}\gdef\thissection{#1}% ! \writetocentry{unnumbsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}} ! \unnumbnoderef ! \nobreak } *************** *** 3516,3528 **** \def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz \def\numberedsubsubseczzz #1{% ! \gdef\thissection{#1}\global\advance \subsubsecno by 1 % ! \subsubsecheading {#1} ! {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}% ! {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% ! \temp ! \donoderef ! \nobreak } --- 3889,3898 ---- \def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz \def\numberedsubsubseczzz #1{% ! \gdef\thissection{#1}\global\advance \subsubsecno by 1 % ! \subsubsecheading {#1} ! {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% ! \writetocentry{subsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}} ! \donoderef ! \nobreak } *************** *** 3530,3542 **** \def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz \def\appendixsubsubseczzz #1{% ! \gdef\thissection{#1}\global\advance \subsubsecno by 1 % ! \subsubsecheading {#1} ! {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}% ! {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% ! \temp ! \appendixnoderef ! \nobreak } --- 3900,3909 ---- \def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz \def\appendixsubsubseczzz #1{% ! \gdef\thissection{#1}\global\advance \subsubsecno by 1 % ! \subsubsecheading {#1} ! {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% ! \writetocentry{subsubsec}{#1}{{\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}} ! \appendixnoderef ! \nobreak } *************** *** 3544,3554 **** \def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz \def\unnumberedsubsubseczzz #1{% ! \plainsubsubsecheading {#1}\gdef\thissection{#1}% ! \toks0 = {#1}% ! \edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry% ! {\the\toks0}}}% ! \temp ! \unnumbnoderef ! \nobreak } --- 3911,3918 ---- \def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz \def\unnumberedsubsubseczzz #1{% ! \plainsubsubsecheading {#1}\gdef\thissection{#1}% ! \writetocentry{unnumbsubsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}} ! \unnumbnoderef ! \nobreak } *************** *** 3591,3604 **** \def\majorheading{\parsearg\majorheadingzzz} \def\majorheadingzzz #1{% ! {\advance\chapheadingskip by 10pt \chapbreak }% ! {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 ! \parindent=0pt\raggedright ! \rm #1\hfill}}\bigskip \par\penalty 200} \def\chapheading{\parsearg\chapheadingzzz} \def\chapheadingzzz #1{\chapbreak % ! {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 ! \parindent=0pt\raggedright ! \rm #1\hfill}}\bigskip \par\penalty 200} % @heading, @subheading, @subsubheading. --- 3955,3968 ---- \def\majorheading{\parsearg\majorheadingzzz} \def\majorheadingzzz #1{% ! {\advance\chapheadingskip by 10pt \chapbreak }% ! {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 ! \parindent=0pt\raggedright ! \rm #1\hfill}}\bigskip \par\penalty 200} \def\chapheading{\parsearg\chapheadingzzz} \def\chapheadingzzz #1{\chapbreak % ! {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 ! \parindent=0pt\raggedright ! \rm #1\hfill}}\bigskip \par\penalty 200} % @heading, @subheading, @subsubheading. *************** *** 3746,3750 **** \unhbox0 #3}% }% ! \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak } --- 4110,4123 ---- \unhbox0 #3}% }% ! % Add extra space after the heading -- either a line space or a ! % paragraph space, whichever is more. (Some people like to set ! % \parskip to large values for some reason.) Don't allow stretch, though. ! \nobreak ! \ifdim\parskip>\normalbaselineskip ! \kern\parskip ! \else ! \kern\normalbaselineskip ! \fi ! \nobreak } *************** *** 3758,3771 **** % argument, which will end up as the last argument to the \...entry macro. % ! % We open the .toc file here instead of at @setfilename or any other ! % given time so that @contents can be put in the document anywhere. % \newif\iftocfileopened ! \def\writetocentry#1{% \iftocfileopened\else \immediate\openout\tocfile = \jobname.toc \global\tocfileopenedtrue \fi ! \iflinks \write\tocfile{#1{\folio}}\fi } --- 4131,4158 ---- % argument, which will end up as the last argument to the \...entry macro. % ! % Usage: \writetocentry{chap}{The Name of The Game}{{\the\chapno}} ! % We open the .toc file for writing here instead of at @setfilename (or ! % any other fixed time) so that @contents can be anywhere in the document. % \newif\iftocfileopened ! \def\writetocentry#1#2#3{% \iftocfileopened\else \immediate\openout\tocfile = \jobname.toc \global\tocfileopenedtrue \fi ! % ! \iflinks ! \toks0 = {#2}% ! \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}#3{\folio}}}% ! \temp ! \fi ! % ! % Tell \shipout to create a page destination if we're doing pdf, which ! % will be the target of the links in the table of contents. We can't ! % just do it on every page because the title pages are numbered 1 and ! % 2 (the page numbers aren't printed), and so are the first two pages ! % of the document. Thus, we'd have two destinations named `1', and ! % two named `2'. ! \ifpdf \pdfmakepagedesttrue \fi } *************** *** 3798,3802 **** % % Roman numerals for page numbers. ! \ifnum \pageno>0 \pageno = \lastnegativepageno \fi } --- 4185,4189 ---- % % Roman numerals for page numbers. ! \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi } *************** *** 3815,3819 **** \endgroup \lastnegativepageno = \pageno ! \pageno = \savepageno } --- 4202,4206 ---- \endgroup \lastnegativepageno = \pageno ! \global\pageno = \savepageno } *************** *** 3823,3839 **** % \let\chapentry = \shortchapentry \let\unnumbchapentry = \shortunnumberedentry % We want a true roman here for the page numbers. \secfonts ! \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl \rm \hyphenpenalty = 10000 \advance\baselineskip by 1pt % Open it up a little. \def\secentry ##1##2##3##4{} - \def\unnumbsecentry ##1##2{} \def\subsecentry ##1##2##3##4##5{} - \def\unnumbsubsecentry ##1##2{} \def\subsubsecentry ##1##2##3##4##5##6{} ! \def\unnumbsubsubsecentry ##1##2{} \openin 1 \jobname.toc \ifeof 1 \else --- 4210,4228 ---- % \let\chapentry = \shortchapentry + \let\appendixentry = \shortappendixentry \let\unnumbchapentry = \shortunnumberedentry % We want a true roman here for the page numbers. \secfonts ! \let\rm=\shortcontrm \let\bf=\shortcontbf ! \let\sl=\shortcontsl \let\tt=\shortconttt \rm \hyphenpenalty = 10000 \advance\baselineskip by 1pt % Open it up a little. \def\secentry ##1##2##3##4{} \def\subsecentry ##1##2##3##4##5{} \def\subsubsecentry ##1##2##3##4##5##6{} ! \let\unnumbsecentry = \secentry ! \let\unnumbsubsecentry = \subsecentry ! \let\unnumbsubsubsecentry = \subsubsecentry \openin 1 \jobname.toc \ifeof 1 \else *************** *** 3845,3849 **** \endgroup \lastnegativepageno = \pageno ! \pageno = \savepageno } \let\shortcontents = \summarycontents --- 4234,4238 ---- \endgroup \lastnegativepageno = \pageno ! \global\pageno = \savepageno } \let\shortcontents = \summarycontents *************** *** 3858,3871 **** % The arguments in between are the chapter number, section number, ... ! % Chapter-level things, for both the long and short contents. \def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}} ! ! % See comments in \dochapentry re vbox and related settings \def\shortchapentry#1#2#3{% \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}% } % Typeset the label for a chapter or appendix for the short contents. ! % The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter. % We could simplify the code here by writing out an \appendixentry % command in the toc file for appendices, instead of using \chapentry --- 4247,4268 ---- % The arguments in between are the chapter number, section number, ... ! % Chapters, in the main contents. \def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}} ! % ! % Chapters, in the short toc. ! % See comments in \dochapentry re vbox and related settings. \def\shortchapentry#1#2#3{% \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}% } + % Appendices, in the main contents. + \def\appendixentry#1#2#3{% + \dochapentry{\appendixbox{\putwordAppendix{} #2}\labelspace#1}{#3}} + % + % Appendices, in the short toc. + \let\shortappendixentry = \shortchapentry + % Typeset the label for a chapter or appendix for the short contents. ! % The arg is, e.g., `Appendix A' for an appendix, or `3' for a chapter. % We could simplify the code here by writing out an \appendixentry % command in the toc file for appendices, instead of using \chapentry *************** *** 3875,3910 **** % \def\shortchaplabel#1{% ! % Compute width of word "Appendix", may change with language. ! \setbox0 = \hbox{\shortcontrm \putwordAppendix}% ! \shortappendixwidth = \wd0 ! % ! % We typeset #1 in a box of constant width, regardless of the text of ! % #1, so the chapter titles will come out aligned. ! \setbox0 = \hbox{#1}% ! \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi ! % ! % This space should be plenty, since a single number is .5em, and the % widest letter (M) is 1em, at least in the Computer Modern fonts. % (This space doesn't include the extra space that gets added after % the label; that gets put in by \shortchapentry above.) ! \advance\dimen0 by 1.1em ! \hbox to \dimen0{#1\hfil}% } ! \def\unnumbchapentry#1#2{\dochapentry{#1}{#2}} ! \def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}} % Sections. \def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} ! \def\unnumbsecentry#1#2{\dosecentry{#1}{#2}} % Subsections. \def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} ! \def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}} % And subsubsections. \def\subsubsecentry#1#2#3#4#5#6{% \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} ! \def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}} % This parameter controls the indentation of the various levels. --- 4272,4300 ---- % \def\shortchaplabel#1{% ! % This space should be enough, since a single number is .5em, and the % widest letter (M) is 1em, at least in the Computer Modern fonts. + % But use \hss just in case. % (This space doesn't include the extra space that gets added after % the label; that gets put in by \shortchapentry above.) ! \dimen0 = 1em ! \hbox to \dimen0{#1\hss}% } ! % Unnumbered chapters. ! \def\unnumbchapentry#1#2#3{\dochapentry{#1}{#3}} ! \def\shortunnumberedentry#1#2#3{\tocentry{#1}{\doshortpageno\bgroup#3\egroup}} % Sections. \def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} ! \def\unnumbsecentry#1#2#3#4{\dosecentry{#1}{#4}} % Subsections. \def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} ! \def\unnumbsubsecentry#1#2#3#4#5{\dosubsecentry{#1}{#5}} % And subsubsections. \def\subsubsecentry#1#2#3#4#5#6{% \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} ! \def\unnumbsubsubsecentry#1#2#3#4#5#6{\dosubsubsecentry{#1}{#6}} % This parameter controls the indentation of the various levels. *************** *** 3947,3951 **** \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks % Do not use \turnoffactive in these arguments. Since the toc is ! % typeset in cmr, so characters such as _ would come out wrong; we % have to do the usual translation tricks. \entry{#1}{#2}% --- 4337,4341 ---- \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks % Do not use \turnoffactive in these arguments. Since the toc is ! % typeset in cmr, characters such as _ would come out wrong; we % have to do the usual translation tricks. \entry{#1}{#2}% *************** *** 3967,3988 **** % @foo ... @end foo. % Since these characters are used in examples, it should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. ! % Furthermore, these definitions must come after we define our fonts. ! \newbox\dblarrowbox \newbox\longdblarrowbox ! \newbox\pushcharbox \newbox\bullbox ! \newbox\equivbox \newbox\errorbox ! ! %{\tentt ! %\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil} ! %\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil} ! %\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil} ! %\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil} ! % Adapted from the manmac format (p.420 of TeXbook) ! %\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex ! % depth .1ex\hfil} ! %} ! ! % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. \def\point{$\star$} \def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} --- 4357,4365 ---- % @foo ... @end foo. + % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. + % % Since these characters are used in examples, it should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. ! % \def\point{$\star$} \def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} *************** *** 3991,4000 **** \def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} % Adapted from the TeXbook's \boxit. {\tentt \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) \setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} ! \global\setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. --- 4368,4381 ---- \def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} + % The @error{} command. % Adapted from the TeXbook's \boxit. + % + \newbox\errorbox + % {\tentt \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) \setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} ! % \global\setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. *************** *** 4007,4012 **** \hrule height\dimen2} \hfil} ! ! % The @error{} command. \def\error{\leavevmode\lower.7ex\copy\errorbox} --- 4388,4392 ---- \hrule height\dimen2} \hfil} ! % \def\error{\leavevmode\lower.7ex\copy\errorbox} *************** *** 4018,4029 **** \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 ! \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie \catcode `\%=14 ! \catcode 43=12 % plus ! \catcode`\"=12 ! \catcode`\==12 ! \catcode`\|=12 ! \catcode`\<=12 ! \catcode`\>=12 \escapechar=`\\ % --- 4398,4409 ---- \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 ! \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie \catcode `\%=14 ! \catcode `\+=\other ! \catcode `\"=\other ! \catcode `\==\other ! \catcode `\|=\other ! \catcode `\<=\other ! \catcode `\>=\other \escapechar=`\\ % *************** *** 4048,4054 **** \let\Etex=\endgroup} ! % Define @lisp ... @endlisp. % @lisp does a \begingroup so it can rebind things, ! % including the definition of @endlisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. --- 4428,4434 ---- \let\Etex=\endgroup} ! % Define @lisp ... @end lisp. % @lisp does a \begingroup so it can rebind things, ! % including the definition of @end lisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. *************** *** 4079,4087 **** % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the ! % start of the next paragraph will insert \parskip % ! \def\aboveenvbreak{{\advance\envskipamount by \parskip ! \endgraf \ifdim\lastskip<\envskipamount ! \removelastskip \penalty-50 \vskip\envskipamount \fi}} \let\afterenvbreak = \aboveenvbreak --- 4459,4478 ---- % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the ! % start of the next paragraph will insert \parskip. % ! \def\aboveenvbreak{{% ! % =10000 instead of <10000 because of a special case in \itemzzz, q.v. ! \ifnum \lastpenalty=10000 \else ! \advance\envskipamount by \parskip ! \endgraf ! \ifdim\lastskip<\envskipamount ! \removelastskip ! % it's not a good place to break if the last penalty was \nobreak ! % or better ... ! \ifnum\lastpenalty>10000 \else \penalty-50 \fi ! \vskip\envskipamount ! \fi ! \fi ! }} \let\afterenvbreak = \aboveenvbreak *************** *** 4111,4115 **** \newskip\lskip\newskip\rskip ! \long\def\cartouche{% \begingroup \lskip=\leftskip \rskip=\rightskip --- 4502,4507 ---- \newskip\lskip\newskip\rskip ! \def\cartouche{% ! \par % can't be in the midst of a paragraph. \begingroup \lskip=\leftskip \rskip=\rightskip *************** *** 4158,4162 **** \hfuzz = 12pt % Don't be fussy \sepspaces % Make spaces be word-separators rather than space tokens. - \singlespace \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output --- 4550,4553 ---- *************** *** 4197,4221 **** \def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp} ! % @small... is usually equivalent to the non-small (@smallbook ! % redefines). We must call \example (or whatever) last in the ! % definition, since it reads the return following the @example (or ! % whatever) command. ! % ! % This actually allows (for example) @end display inside an ! % @smalldisplay. Too bad, but makeinfo will catch the error anyway. ! % ! \def\smalldisplay{\begingroup\def\Esmalldisplay{\nonfillfinish\endgroup}\display} ! \def\smallexample{\begingroup\def\Esmallexample{\nonfillfinish\endgroup}\lisp} ! \def\smallformat{\begingroup\def\Esmallformat{\nonfillfinish\endgroup}\format} ! \def\smalllisp{\begingroup\def\Esmalllisp{\nonfillfinish\endgroup}\lisp} ! ! % Real @smallexample and @smalllisp (when @smallbook): use smaller fonts. % Originally contributed by Pavel@xerox. ! \def\smalllispx{\begingroup \def\Esmalllisp{\nonfillfinish\endgroup}% \def\Esmallexample{\nonfillfinish\endgroup}% ! \smallfonts \lisp } % @display: same as @lisp except keep current font. --- 4588,4601 ---- \def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp} ! % @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. ! \def\smalllisp{\begingroup \def\Esmalllisp{\nonfillfinish\endgroup}% \def\Esmallexample{\nonfillfinish\endgroup}% ! \smallexamplefonts \lisp } + \let\smallexample = \smalllisp + % @display: same as @lisp except keep current font. *************** *** 4226,4235 **** \gobble } - - % @smalldisplay (when @smallbook): @display plus smaller fonts. % ! \def\smalldisplayx{\begingroup \def\Esmalldisplay{\nonfillfinish\endgroup}% ! \smallfonts \rm \display } --- 4606,4615 ---- \gobble } % ! % @smalldisplay: @display plus smaller fonts. ! % ! \def\smalldisplay{\begingroup \def\Esmalldisplay{\nonfillfinish\endgroup}% ! \smallexamplefonts \rm \display } *************** *** 4243,4252 **** \gobble } - - % @smallformat (when @smallbook): @format plus smaller fonts. % ! \def\smallformatx{\begingroup \def\Esmallformat{\nonfillfinish\endgroup}% ! \smallfonts \rm \format } --- 4623,4632 ---- \gobble } % ! % @smallformat: @format plus smaller fonts. ! % ! \def\smallformat{\begingroup \def\Esmallformat{\nonfillfinish\endgroup}% ! \smallexamplefonts \rm \format } *************** *** 4266,4269 **** --- 4646,4650 ---- } + % @quotation does normal linebreaking (hence we can't use \nonfillstart) % and narrows the margins. *************** *** 4272,4276 **** \begingroup\inENV %This group ends at the end of the @quotation body {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip - \singlespace \parindent=0pt % We have retained a nonzero parskip for the environment, since we're --- 4653,4656 ---- *************** *** 4288,4308 **** \message{defuns,} % @defun etc. % Allow user to change definition object font (\df) internally ! \def\setdeffont #1 {\csname DEF#1\endcsname} \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt - \newskip\deftypemargin \deftypemargin=12pt \newskip\deflastargmargin \deflastargmargin=18pt \newcount\parencount ! % define \functionparens, which makes ( and ) and & do special things. ! % \functionparens affects the group it is contained in. \def\activeparens{% ! \catcode`\(=\active \catcode`\)=\active \catcode`\&=\active ! \catcode`\[=\active \catcode`\]=\active} % Make control sequences which act like normal parenthesis chars. --- 4668,4922 ---- + % LaTeX-like @verbatim...@end verbatim and @verb{...} + % If we want to allow any as delimiter, + % we need the curly braces so that makeinfo sees the @verb command, eg: + % `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org + % + % [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. + % + % [Knuth] p.344; only we need to do the other characters Texinfo sets + % active too. Otherwise, they get lost as the first character on a + % verbatim line. + \def\dospecials{% + \do\ \do\\\do\{\do\}\do\$\do\&% + \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% + \do\<\do\>\do\|\do\@\do+\do\"% + } + % + % [Knuth] p. 380 + \def\uncatcodespecials{% + \def\do##1{\catcode`##1=12}\dospecials} + % + % [Knuth] pp. 380,381,391 + % Disable Spanish ligatures ?` and !` of \tt font + \begingroup + \catcode`\`=\active\gdef`{\relax\lq} + \endgroup + % + % Setup for the @verb command. + % + % Eight spaces for a tab + \begingroup + \catcode`\^^I=\active + \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }} + \endgroup + % + \def\setupverb{% + \tt % easiest (and conventionally used) font for verbatim + \def\par{\leavevmode\endgraf}% + \catcode`\`=\active + \tabeightspaces + % Respect line breaks, + % print special symbols as themselves, and + % make each space count + % must do in this order: + \obeylines \uncatcodespecials \sepspaces + } + + % Setup for the @verbatim environment + % + % Real tab expansion + \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount + % + \def\starttabbox{\setbox0=\hbox\bgroup} + \begingroup + \catcode`\^^I=\active + \gdef\tabexpand{% + \catcode`\^^I=\active + \def^^I{\leavevmode\egroup + \dimen0=\wd0 % the width so far, or since the previous tab + \divide\dimen0 by\tabw + \multiply\dimen0 by\tabw % compute previous multiple of \tabw + \advance\dimen0 by\tabw % advance to next multiple of \tabw + \wd0=\dimen0 \box0 \starttabbox + }% + } + \endgroup + \def\setupverbatim{% + % Easiest (and conventionally used) font for verbatim + \tt + \def\par{\leavevmode\egroup\box0\endgraf}% + \catcode`\`=\active + \tabexpand + % Respect line breaks, + % print special symbols as themselves, and + % make each space count + % must do in this order: + \obeylines \uncatcodespecials \sepspaces + \everypar{\starttabbox}% + } + + % Do the @verb magic: verbatim text is quoted by unique + % delimiter characters. Before first delimiter expect a + % right brace, after last delimiter expect closing brace: + % + % \def\doverb'{'#1'}'{#1} + % + % [Knuth] p. 382; only eat outer {} + \begingroup + \catcode`[=1\catcode`]=2\catcode`\{=12\catcode`\}=12 + \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next] + \endgroup + % + \def\verb{\begingroup\setupverb\doverb} + % + % + % Do the @verbatim magic: define the macro \doverbatim so that + % the (first) argument ends when '@end verbatim' is reached, ie: + % + % \def\doverbatim#1@end verbatim{#1} + % + % For Texinfo it's a lot easier than for LaTeX, + % because texinfo's \verbatim doesn't stop at '\end{verbatim}': + % we need not redefine '\', '{' and '}'. + % + % Inspired by LaTeX's verbatim command set [latex.ltx] + %% Include LaTeX hack for completeness -- never know + %% \begingroup + %% \catcode`|=0 \catcode`[=1 + %% \catcode`]=2\catcode`\{=12\catcode`\}=12\catcode`\ =\active + %% \catcode`\\=12|gdef|doverbatim#1@end verbatim[ + %% #1|endgroup|def|Everbatim[]|end[verbatim]] + %% |endgroup + % + \begingroup + \catcode`\ =\active + \obeylines % + % ignore everything up to the first ^^M, that's the newline at the end + % of the @verbatim input line itself. Otherwise we get an extra blank + % line in the output. + \gdef\doverbatim#1^^M#2@end verbatim{#2\end{verbatim}}% + \endgroup + % + \def\verbatim{% + \def\Everbatim{\nonfillfinish\endgroup}% + \begingroup + \nonfillstart + \advance\leftskip by -\defbodyindent + \begingroup\setupverbatim\doverbatim + } + + % @verbatiminclude FILE - insert text of file in verbatim environment. + % + % Allow normal characters that we make active in the argument (a file name). + \def\verbatiminclude{% + \begingroup + \catcode`\\=\other + \catcode`~=\other + \catcode`^=\other + \catcode`_=\other + \catcode`|=\other + \catcode`<=\other + \catcode`>=\other + \catcode`+=\other + \parsearg\doverbatiminclude + } + \def\setupverbatiminclude{% + \begingroup + \nonfillstart + \advance\leftskip by -\defbodyindent + \begingroup\setupverbatim + } + % + \def\doverbatiminclude#1{% + % Restore active chars for included file. + \endgroup + \begingroup + \let\value=\expandablevalue + \def\thisfile{#1}% + \expandafter\expandafter\setupverbatiminclude\input\thisfile + \endgroup + \nonfillfinish + \endgroup + } + + % @copying ... @end copying. + % Save the text away for @insertcopying later. Many commands won't be + % allowed in this context, but that's ok. + % + % We save the uninterpreted tokens, rather than creating a box. + % Saving the text in a box would be much easier, but then all the + % typesetting commands (@smallbook, font changes, etc.) have to be done + % beforehand -- and a) we want @copying to be done first in the source + % file; b) letting users define the frontmatter in as flexible order as + % possible is very desirable. + % + \def\copying{\begingroup + % Define a command to swallow text until we reach `@end copying'. + % \ is the escape char in this texinfo.tex file, so it is the + % delimiter for the command; @ will be the escape char when we read + % it, but that doesn't matter. + \long\def\docopying##1\end copying{\gdef\copyingtext{##1}\enddocopying}% + % + % We must preserve ^^M's in the input file; see \insertcopying below. + \catcode`\^^M = \active + \docopying + } + + % What we do to finish off the copying text. + % + \def\enddocopying{\endgroup\ignorespaces} + + % @insertcopying. Here we must play games with ^^M's. On the one hand, + % we need them to delimit commands such as `@end quotation', so they + % must be active. On the other hand, we certainly don't want every + % end-of-line to be a \par, as would happen with the normal active + % definition of ^^M. On the third hand, two ^^M's in a row should still + % generate a \par. + % + % Our approach is to make ^^M insert a space and a penalty1 normally; + % then it can also check if \lastpenalty=1. If it does, then manually + % do \par. + % + % This messes up the normal definitions of @c[omment], so we redefine + % it. Similarly for @ignore. (These commands are used in the gcc + % manual for man page generation.) + % + % Seems pretty fragile, most line-oriented commands will presumably + % fail, but for the limited use of getting the copying text (which + % should be quite simple) inserted, we can hope it's ok. + % + {\catcode`\^^M=\active % + \gdef\insertcopying{\begingroup % + \parindent = 0pt % looks wrong on title page + \def^^M{% + \ifnum \lastpenalty=1 % + \par % + \else % + \space \penalty 1 % + \fi % + }% + % + % Fix @c[omment] for catcode 13 ^^M's. + \def\c##1^^M{\ignorespaces}% + \let\comment = \c % + % + % Don't bother jumping through all the hoops that \doignore does, it + % would be very hard since the catcodes are already set. + \long\def\ignore##1\end ignore{\ignorespaces}% + % + \copyingtext % + \endgroup}% + } + \message{defuns,} % @defun etc. % Allow user to change definition object font (\df) internally ! \def\setdeffont#1 {\csname DEF#1\endcsname} \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt \newskip\deflastargmargin \deflastargmargin=18pt \newcount\parencount ! ! % We want ()&[] to print specially on the defun line. ! % \def\activeparens{% ! \catcode`\(=\active \catcode`\)=\active ! \catcode`\&=\active ! \catcode`\[=\active \catcode`\]=\active ! } % Make control sequences which act like normal parenthesis chars. *************** *** 4351,4436 **** % Active &'s sneak into the index arguments, so make sure it's defined. { ! \catcode`& = 13 \global\let& = \ampnr } ! % First, defname, which formats the header line itself. ! % #1 should be the function name. ! % #2 should be the type of definition, such as "Function". ! ! \def\defname #1#2{% ! % Get the values of \leftskip and \rightskip as they were ! % outside the @def... ! \dimen2=\leftskip ! \advance\dimen2 by -\defbodyindent ! \noindent ! \setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}% ! \dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line ! \dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations ! \parshape 2 0in \dimen0 \defargsindent \dimen1 ! % Now output arg 2 ("Function" or some such) ! % ending at \deftypemargin from the right margin, ! % but stuck inside a box of width 0 so it does not interfere with linebreaking ! {% Adjust \hsize to exclude the ambient margins, ! % so that \rightline will obey them. ! \advance \hsize by -\dimen2 ! \rlap{\rightline{{\rm #2}\hskip -1.25pc }}}% ! % Make all lines underfull and no complaints: ! \tolerance=10000 \hbadness=10000 ! \advance\leftskip by -\defbodyindent ! \exdentamount=\defbodyindent ! {\df #1}\enskip % Generate function name ! } ! ! % Actually process the body of a definition ! % #1 should be the terminating control sequence, such as \Edefun. ! % #2 should be the "another name" control sequence, such as \defunx. ! % #3 should be the control sequence that actually processes the header, ! % such as \defunheader. ! ! \def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody ! \medbreak % ! % Define the end token that this defining construct specifies ! % so that it will exit this group. ! \def#1{\endgraf\endgroup\medbreak}% ! \def#2{\begingroup\obeylines\activeparens\spacesplit#3}% ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent ! \begingroup % ! \catcode 61=\active % 61 is `=' ! \obeylines\activeparens\spacesplit#3} % #1 is the \E... control sequence to end the definition (which we define). ! % #2 is the \...x control sequence for consecutive fns (which we define). ! % #3 is the control sequence to call to resume processing. % #4, delimited by the space, is the class name. % ! \def\defmethparsebody#1#2#3#4 {\begingroup\inENV % ! \medbreak % ! % Define the end token that this defining construct specifies ! % so that it will exit this group. ! \def#1{\endgraf\endgroup\medbreak}% ! \def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}% ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent ! \begingroup\obeylines\activeparens\spacesplit{#3{#4}}} % Used for @deftypemethod and @deftypeivar. ! % #1 is the \E... control sequence to end the definition (which we define). ! % #2 is the \...x control sequence for consecutive fns (which we define). ! % #3 is the control sequence to call to resume processing. % #4, delimited by a space, is the class name. % #5 is the method's return type. % ! \def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV ! \medbreak ! \def#1{\endgraf\endgroup\medbreak}% ! \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}% ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent ! \begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}} % Used for @deftypeop. The change from \deftypemethparsebody is an --- 4965,5086 ---- % Active &'s sneak into the index arguments, so make sure it's defined. { ! \catcode`& = \active \global\let& = \ampnr } ! % \defname, which formats the name of the @def (not the args). ! % #1 is the function name. ! % #2 is the type of definition, such as "Function". ! % ! \def\defname#1#2{% ! % How we'll output the type name. Putting it in brackets helps ! % distinguish it from the body text that may end up on the next line ! % just below it. ! \ifempty{#2}% ! \def\defnametype{}% ! \else ! \def\defnametype{[\rm #2]}% ! \fi ! % ! % Get the values of \leftskip and \rightskip as they were outside the @def... ! \dimen2=\leftskip ! \advance\dimen2 by -\defbodyindent ! % ! % Figure out values for the paragraph shape. ! \setbox0=\hbox{\hskip \deflastargmargin{\defnametype}}% ! \dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line ! \dimen1=\hsize \advance \dimen1 by -\defargsindent % size for continuations ! \parshape 2 0in \dimen0 \defargsindent \dimen1 ! % ! % Output arg 2 ("Function" or some such) but stuck inside a box of ! % width 0 so it does not interfere with linebreaking. ! \noindent ! % ! {% Adjust \hsize to exclude the ambient margins, ! % so that \rightline will obey them. ! \advance \hsize by -\dimen2 ! \dimen3 = 0pt % was -1.25pc ! \rlap{\rightline{\defnametype\kern\dimen3}}% ! }% ! % ! % Allow all lines to be underfull without complaint: ! \tolerance=10000 \hbadness=10000 ! \advance\leftskip by -\defbodyindent ! \exdentamount=\defbodyindent ! {\df #1}\enskip % output function name ! % \defunargs will be called next to output the arguments, if any. ! } + % Common pieces to start any @def... % #1 is the \E... control sequence to end the definition (which we define). ! % #2 is the \...x control sequence (which our caller defines). ! % #3 is the control sequence to process the header, such as \defunheader. ! % ! \def\parsebodycommon#1#2#3{% ! \begingroup\inENV ! % If there are two @def commands in a row, we'll have a \nobreak, ! % which is there to keep the function description together with its ! % header. But if there's nothing but headers, we want to allow a ! % break after all. Check for penalty 10002 (inserted by ! % \defargscommonending) instead of 10000, since the sectioning ! % commands insert a \penalty10000, and we don't want to allow a break ! % between a section heading and a defun. ! \ifnum\lastpenalty=10002 \penalty0 \fi ! \medbreak ! % ! % Define the \E... end token that this defining construct specifies ! % so that it will exit this group. ! \def#1{\endgraf\endgroup\medbreak}% ! % ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent ! } ! ! % Common part of the \...x definitions. ! % ! \def\defxbodycommon{% ! % As with \parsebodycommon above, allow line break if we have multiple ! % x headers in a row. It's not a great place, though. ! \ifnum\lastpenalty=10000 \penalty1000 \fi ! % ! \begingroup\obeylines ! } ! ! % Process body of @defun, @deffn, @defmac, etc. ! % ! \def\defparsebody#1#2#3{% ! \parsebodycommon{#1}{#2}{#3}% ! \def#2{\defxbodycommon \activeparens \spacesplit#3}% ! \catcode\equalChar=\active ! \begingroup\obeylines\activeparens ! \spacesplit#3% ! } ! ! % #1, #2, #3 are the common arguments (see \parsebodycommon above). % #4, delimited by the space, is the class name. % ! \def\defmethparsebody#1#2#3#4 {% ! \parsebodycommon{#1}{#2}{#3}% ! \def#2##1 {\defxbodycommon \activeparens \spacesplit{#3{##1}}}% ! \begingroup\obeylines\activeparens ! % The \empty here prevents misinterpretation of a construct such as ! % @deffn {whatever} {Enharmonic comma} ! % See comments at \deftpparsebody, although in our case we don't have ! % to remove the \empty afterwards, since it is empty. ! \spacesplit{#3{#4}}\empty ! } % Used for @deftypemethod and @deftypeivar. ! % #1, #2, #3 are the common arguments (see \defparsebody). % #4, delimited by a space, is the class name. % #5 is the method's return type. % ! \def\deftypemethparsebody#1#2#3#4 #5 {% ! \parsebodycommon{#1}{#2}{#3}% ! \def#2##1 ##2 {\defxbodycommon \activeparens \spacesplit{#3{##1}{##2}}}% ! \begingroup\obeylines\activeparens ! \spacesplit{#3{#4}{#5}}% ! } % Used for @deftypeop. The change from \deftypemethparsebody is an *************** *** 4441,4502 **** % the \E... definition to assign the category name to. % ! \def\deftypeopparsebody#1#2#3#4#5 #6 {\begingroup\inENV ! \medbreak ! \def#1{\endgraf\endgroup\medbreak}% ! \def#2##1 ##2 ##3 {% ! \def#4{##1}% ! \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}% ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent ! \begingroup\obeylines\activeparens\spacesplit{#3{#5}{#6}}} ! \def\defopparsebody #1#2#3#4#5 {\begingroup\inENV % ! \medbreak % ! % Define the end token that this defining construct specifies ! % so that it will exit this group. ! \def#1{\endgraf\endgroup\medbreak}% ! \def#2##1 ##2 {\def#4{##1}% ! \begingroup\obeylines\activeparens\spacesplit{#3{##2}}}% ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent ! \begingroup\obeylines\activeparens\spacesplit{#3{#5}}} % These parsing functions are similar to the preceding ones % except that they do not make parens into active characters. % These are used for "variables" since they have no arguments. - - \def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody - \medbreak % - % Define the end token that this defining construct specifies - % so that it will exit this group. - \def#1{\endgraf\endgroup\medbreak}% - \def#2{\begingroup\obeylines\spacesplit#3}% - \parindent=0in - \advance\leftskip by \defbodyindent - \exdentamount=\defbodyindent - \begingroup % - \catcode 61=\active % - \obeylines\spacesplit#3} - - % This is used for \def{tp,vr}parsebody. It could probably be used for - % some of the others, too, with some judicious conditionals. % ! \def\parsebodycommon#1#2#3{% ! \begingroup\inENV % ! \medbreak % ! % Define the end token that this defining construct specifies ! % so that it will exit this group. ! \def#1{\endgraf\endgroup\medbreak}% ! \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent \begingroup\obeylines } \def\defvrparsebody#1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% \spacesplit{#3{#4}}% } --- 5091,5136 ---- % the \E... definition to assign the category name to. % ! \def\deftypeopparsebody#1#2#3#4#5 #6 {% ! \parsebodycommon{#1}{#2}{#3}% ! \def#2##1 ##2 ##3 {\def#4{##1}% ! \defxbodycommon \activeparens \spacesplit{#3{##2}{##3}}}% ! \begingroup\obeylines\activeparens ! \spacesplit{#3{#5}{#6}}% ! } ! % For @defop. ! \def\defopparsebody #1#2#3#4#5 {% ! \parsebodycommon{#1}{#2}{#3}% ! \def#2##1 ##2 {\def#4{##1}% ! \defxbodycommon \activeparens \spacesplit{#3{##2}}}% ! \begingroup\obeylines\activeparens ! \spacesplit{#3{#5}}% ! } % These parsing functions are similar to the preceding ones % except that they do not make parens into active characters. % These are used for "variables" since they have no arguments. % ! \def\defvarparsebody #1#2#3{% ! \parsebodycommon{#1}{#2}{#3}% ! \def#2{\defxbodycommon \spacesplit#3}% ! \catcode\equalChar=\active ! \begingroup\obeylines ! \spacesplit#3% ! } ! ! % @defopvar. ! \def\defopvarparsebody #1#2#3#4#5 {% ! \parsebodycommon{#1}{#2}{#3}% ! \def#2##1 ##2 {\def#4{##1}% ! \defxbodycommon \spacesplit{#3{##2}}}% \begingroup\obeylines + \spacesplit{#3{#5}}% } \def\defvrparsebody#1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% + \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}}% + \begingroup\obeylines \spacesplit{#3{#4}}% } *************** *** 4513,4516 **** --- 5147,5152 ---- \def\deftpparsebody #1#2#3#4 {% \parsebodycommon{#1}{#2}{#3}% + \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}}% + \begingroup\obeylines \spacesplit{\parsetpheaderline{#3{#4}}}\empty } *************** *** 4529,4545 **** }% ! \def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV % ! \medbreak % ! % Define the end token that this defining construct specifies ! % so that it will exit this group. ! \def#1{\endgraf\endgroup\medbreak}% ! \def#2##1 ##2 {\def#4{##1}% ! \begingroup\obeylines\spacesplit{#3{##2}}}% ! \parindent=0in ! \advance\leftskip by \defbodyindent ! \exdentamount=\defbodyindent ! \begingroup\obeylines\spacesplit{#3{#5}}} ! ! % Split up #2 at the first space token. % call #1 with two arguments: % the first is all of #2 before the space token, --- 5165,5169 ---- }% ! % Split up #2 (the rest of the input line) at the first space token. % call #1 with two arguments: % the first is all of #2 before the space token, *************** *** 4547,4564 **** % If #2 contains no space token, all of it is passed as the first arg % and the second is passed as empty. ! ! {\obeylines ! \gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}% ! \long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{% ! \ifx\relax #3% ! #1{#2}{}\else #1{#2}{#3#4}\fi}} ! ! % So much for the things common to all kinds of definitions. % Define @defun. ! % First, define the processing that is wanted for arguments of \defun ! % Use this to expand the args and terminate the paragraph they make up \def\defunargs#1{\functionparens \sl % Expand, preventing hyphenation at `-' chars. --- 5171,5199 ---- % If #2 contains no space token, all of it is passed as the first arg % and the second is passed as empty. ! % ! {\obeylines % ! \gdef\spacesplit#1#2^^M{\endgroup\spacesplitx{#1}#2 \relax\spacesplitx}% ! \long\gdef\spacesplitx#1#2 #3#4\spacesplitx{% ! \ifx\relax #3% ! #1{#2}{}% ! \else % ! #1{#2}{#3#4}% ! \fi}% ! } % Define @defun. ! % This is called to end the arguments processing for all the @def... commands. ! % ! \def\defargscommonending{% ! \interlinepenalty = 10000 ! \advance\rightskip by 0pt plus 1fil ! \endgraf ! \nobreak\vskip -\parskip ! \penalty 10002 % signal to \parsebodycommon. ! } + % This expands the args and terminates the paragraph they comprise. + % \def\defunargs#1{\functionparens \sl % Expand, preventing hyphenation at `-' chars. *************** *** 4569,4575 **** {\tensl\hyphenchar\font=45}% \ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi% ! \interlinepenalty=10000 ! \advance\rightskip by 0pt plus 1fil ! \endgraf\nobreak\vskip -\parskip\nobreak } --- 5204,5208 ---- {\tensl\hyphenchar\font=45}% \ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi% ! \defargscommonending } *************** *** 4580,4586 **** \boldbraxnoamp \tclose{#1}% avoid \code because of side effects on active chars ! \interlinepenalty=10000 ! \advance\rightskip by 0pt plus 1fil ! \endgraf\nobreak\vskip -\parskip\nobreak } --- 5213,5217 ---- \boldbraxnoamp \tclose{#1}% avoid \code because of side effects on active chars ! \defargscommonending } *************** *** 4593,4597 **** \def\deffnheader #1#2#3{\doind {fn}{\code{#2}}% \begingroup\defname {#2}{#1}\defunargs{#3}\endgroup % ! \catcode 61=\other % Turn off change made in \defparsebody } --- 5224,5228 ---- \def\deffnheader #1#2#3{\doind {fn}{\code{#2}}% \begingroup\defname {#2}{#1}\defunargs{#3}\endgroup % ! \catcode\equalChar=\other % Turn off change made in \defparsebody } *************** *** 4603,4607 **** \begingroup\defname {#1}{\putwordDeffunc}% \defunargs {#2}\endgroup % ! \catcode 61=\other % Turn off change made in \defparsebody } --- 5234,5238 ---- \begingroup\defname {#1}{\putwordDeffunc}% \defunargs {#2}\endgroup % ! \catcode\equalChar=\other % Turn off change made in \defparsebody } *************** *** 4615,4621 **** \def\deftypefunheaderx #1#2 #3\relax{% \doind {fn}{\code{#2}}% Make entry in function index ! \begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypefun}% \deftypefunargs {#3}\endgroup % ! \catcode 61=\other % Turn off change made in \defparsebody } --- 5246,5252 ---- \def\deftypefunheaderx #1#2 #3\relax{% \doind {fn}{\code{#2}}% Make entry in function index ! \begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypefun}% \deftypefunargs {#3}\endgroup % ! \catcode\equalChar=\other % Turn off change made in \defparsebody } *************** *** 4624,4630 **** \def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader} ! % \defheaderxcond#1\relax$$$ % puts #1 in @code, followed by a space, but does nothing if #1 is null. ! \def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi} % #1 is the classification. #2 is the data type. #3 is the name and args. --- 5255,5261 ---- \def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader} ! % \defheaderxcond#1\relax$.$ % puts #1 in @code, followed by a space, but does nothing if #1 is null. ! \def\defheaderxcond#1#2$.${\ifx#1\relax\else\code{#1#2} \fi} % #1 is the classification. #2 is the data type. #3 is the name and args. *************** *** 4636,4642 **** \normalparens % notably, turn off `&' magic, which prevents % at least some C++ text from working ! \defname {\defheaderxcond#2\relax$$$#3}{#1}% \deftypefunargs {#4}\endgroup % ! \catcode 61=\other % Turn off change made in \defparsebody } --- 5267,5273 ---- \normalparens % notably, turn off `&' magic, which prevents % at least some C++ text from working ! \defname {\defheaderxcond#2\relax$.$#3}{#1}% \deftypefunargs {#4}\endgroup % ! \catcode\equalChar=\other % Turn off change made in \defparsebody } *************** *** 4648,4652 **** \begingroup\defname {#1}{\putwordDefmac}% \defunargs {#2}\endgroup % ! \catcode 61=\other % Turn off change made in \defparsebody } --- 5279,5283 ---- \begingroup\defname {#1}{\putwordDefmac}% \defunargs {#2}\endgroup % ! \catcode\equalChar=\other % Turn off change made in \defparsebody } *************** *** 4658,4662 **** \begingroup\defname {#1}{\putwordDefspec}% \defunargs {#2}\endgroup % ! \catcode 61=\other % Turn off change made in \defparsebody } --- 5289,5293 ---- \begingroup\defname {#1}{\putwordDefspec}% \defunargs {#2}\endgroup % ! \catcode\equalChar=\other % Turn off change made in \defparsebody } *************** *** 4667,4673 **** % \def\defopheader#1#2#3{% ! \dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index ! \begingroup\defname {#2}{\defoptype\ \putwordon\ #1}% ! \defunargs {#3}\endgroup % } --- 5298,5306 ---- % \def\defopheader#1#2#3{% ! \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% function index entry ! \begingroup ! \defname{#2}{\defoptype\ \putwordon\ #1}% ! \defunargs{#3}% ! \endgroup } *************** *** 4682,4686 **** \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index \begingroup ! \defname{\defheaderxcond#2\relax$$$#3} {\deftypeopcategory\ \putwordon\ \code{#1}}% \deftypefunargs{#4}% --- 5315,5319 ---- \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index \begingroup ! \defname{\defheaderxcond#2\relax$.$#3} {\deftypeopcategory\ \putwordon\ \code{#1}}% \deftypefunargs{#4}% *************** *** 4697,4701 **** \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index \begingroup ! \defname{\defheaderxcond#2\relax$$$#3}{\putwordMethodon\ \code{#1}}% \deftypefunargs{#4}% \endgroup --- 5330,5334 ---- \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index \begingroup ! \defname{\defheaderxcond#2\relax$.$#3}{\putwordMethodon\ \code{#1}}% \deftypefunargs{#4}% \endgroup *************** *** 4711,4715 **** \dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index \begingroup ! \defname{#3}{\putwordInstanceVariableof\ \code{#1}}% \defvarargs{#3}% \endgroup --- 5344,5349 ---- \dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index \begingroup ! \defname{\defheaderxcond#2\relax$.$#3} ! {\putwordInstanceVariableof\ \code{#1}}% \defvarargs{#3}% \endgroup *************** *** 4735,4741 **** \def\defcvarheader #1#2#3{% ! \dosubind {vr}{\code{#2}}{\putwordof\ #1}% Make entry in var index ! \begingroup\defname {#2}{\defcvtype\ \putwordof\ #1}% ! \defvarargs {#3}\endgroup % } --- 5369,5377 ---- \def\defcvarheader #1#2#3{% ! \dosubind{vr}{\code{#2}}{\putwordof\ \code{#1}}% variable index entry ! \begingroup ! \defname{#2}{\defcvtype\ \putwordof\ #1}% ! \defvarargs{#3}% ! \endgroup } *************** *** 4745,4749 **** % \def\defivarheader#1#2#3{% ! \dosubind {vr}{\code{#2}}{\putwordof\ #1}% entry in var index \begingroup \defname{#2}{\putwordInstanceVariableof\ #1}% --- 5381,5385 ---- % \def\defivarheader#1#2#3{% ! \dosubind{vr}{\code{#2}}{\putwordof\ \code{#1}}% entry in var index \begingroup \defname{#2}{\putwordInstanceVariableof\ #1}% *************** *** 4757,4762 **** % This must expand the args and terminate the paragraph they make up \def\defvarargs #1{\normalparens #1% ! \interlinepenalty=10000 ! \endgraf\nobreak\vskip -\parskip\nobreak} % @defvr Counter foo-count --- 5393,5398 ---- % This must expand the args and terminate the paragraph they make up \def\defvarargs #1{\normalparens #1% ! \defargscommonending ! } % @defvr Counter foo-count *************** *** 4793,4799 **** \def\deftypevarheader #1#2{% \dovarind#2 \relax% Make entry in variables index ! \begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypevar}% ! \interlinepenalty=10000 ! \endgraf\nobreak\vskip -\parskip\nobreak \endgroup} \def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}} --- 5429,5434 ---- \def\deftypevarheader #1#2{% \dovarind#2 \relax% Make entry in variables index ! \begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypevar}% ! \defargscommonending \endgroup} \def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}} *************** *** 4804,4810 **** \def\deftypevrheader #1#2#3{\dovarind#3 \relax% ! \begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1} ! \interlinepenalty=10000 ! \endgraf\nobreak\vskip -\parskip\nobreak \endgroup} --- 5439,5444 ---- \def\deftypevrheader #1#2#3{\dovarind#3 \relax% ! \begingroup\defname {\defheaderxcond#2\relax$.$#3}{#1} ! \defargscommonending \endgroup} *************** *** 4855,4859 **** \begingroup \newlinechar`\^^M % Undo catcode changes of \startcontents and \doprintindex ! \catcode`\@=0 \catcode`\\=12 \escapechar=`\@ % Append \endinput to make sure that TeX does not see the ending newline. \toks0={#1\endinput}% --- 5489,5493 ---- \begingroup \newlinechar`\^^M % Undo catcode changes of \startcontents and \doprintindex ! \catcode`\@=0 \catcode`\\=\other \escapechar=`\@ % Append \endinput to make sure that TeX does not see the ending newline. \toks0={#1\endinput}% *************** *** 4869,4873 **** \begingroup \newlinechar`\^^M % Undo catcode changes of \startcontents and \doprintindex ! \catcode`\@=0 \catcode`\\=12 \escapechar=`\@ \let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup} \fi --- 5503,5507 ---- \begingroup \newlinechar`\^^M % Undo catcode changes of \startcontents and \doprintindex ! \catcode`\@=0 \catcode`\\=\other \escapechar=`\@ \let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup} \fi *************** *** 4899,4903 **** % Trim a single trailing ^^M off a string. ! {\catcode`\^^M=12\catcode`\Q=3% \gdef\eatcr #1{\eatcra #1Q^^MQ}% \gdef\eatcra#1^^MQ{\eatcrb#1Q}% --- 5533,5537 ---- % Trim a single trailing ^^M off a string. ! {\catcode`\^^M=\other \catcode`\Q=3% \gdef\eatcr #1{\eatcra #1Q^^MQ}% \gdef\eatcra#1^^MQ{\eatcrb#1Q}% *************** *** 4914,4940 **** \def\macrobodyctxt{% ! \catcode`\~=12 ! \catcode`\^=12 ! \catcode`\_=12 ! \catcode`\|=12 ! \catcode`\<=12 ! \catcode`\>=12 ! \catcode`\+=12 ! \catcode`\{=12 ! \catcode`\}=12 ! \catcode`\@=12 ! \catcode`\^^M=12 \usembodybackslash} \def\macroargctxt{% ! \catcode`\~=12 ! \catcode`\^=12 ! \catcode`\_=12 ! \catcode`\|=12 ! \catcode`\<=12 ! \catcode`\>=12 ! \catcode`\+=12 ! \catcode`\@=12 ! \catcode`\\=12} % \mbodybackslash is the definition of \ in @macro bodies. --- 5548,5574 ---- \def\macrobodyctxt{% ! \catcode`\~=\other ! \catcode`\^=\other ! \catcode`\_=\other ! \catcode`\|=\other ! \catcode`\<=\other ! \catcode`\>=\other ! \catcode`\+=\other ! \catcode`\{=\other ! \catcode`\}=\other ! \catcode`\@=\other ! \catcode`\^^M=\other \usembodybackslash} \def\macroargctxt{% ! \catcode`\~=\other ! \catcode`\^=\other ! \catcode`\_=\other ! \catcode`\|=\other ! \catcode`\<=\other ! \catcode`\>=\other ! \catcode`\+=\other ! \catcode`\@=\other ! \catcode`\\=\other} % \mbodybackslash is the definition of \ in @macro bodies. *************** *** 4964,4968 **** \else \expandafter\ifx\csname \the\macname\endcsname \relax ! \else \errmessage{The name \the\macname\space is reserved}\fi \global\cslet{macsave.\the\macname}{\the\macname}% \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% --- 5598,5602 ---- \else \expandafter\ifx\csname \the\macname\endcsname \relax ! \else \errmessage{Macro name \the\macname\space already defined}\fi \global\cslet{macsave.\the\macname}{\the\macname}% \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% *************** *** 4977,5000 **** \fi} ! \def\unmacro{\parsearg\unmacroxxx} ! \def\unmacroxxx#1{% \if1\csname ismacro.#1\endcsname \global\cslet{#1}{macsave.#1}% \global\expandafter\let \csname ismacro.#1\endcsname=0% ! % Remove the macro name from \macrolist \begingroup ! \edef\tempa{\expandafter\noexpand\csname#1\endcsname}% ! \def\do##1{% ! \def\tempb{##1}% ! \ifx\tempa\tempb ! % remove this ! \else ! \toks0 = \expandafter{\newmacrolist\do}% ! \edef\newmacrolist{\the\toks0\expandafter\noexpand\tempa}% ! \fi}% ! \def\newmacrolist{}% ! % Execute macro list to define \newmacrolist ! \macrolist ! \global\let\macrolist\newmacrolist \endgroup \else --- 5611,5624 ---- \fi} ! \def\unmacro{\parsearg\dounmacro} ! \def\dounmacro#1{% \if1\csname ismacro.#1\endcsname \global\cslet{#1}{macsave.#1}% \global\expandafter\let \csname ismacro.#1\endcsname=0% ! % Remove the macro name from \macrolist: \begingroup ! \expandafter\let\csname#1\endcsname \relax ! \let\do\unmacrodo ! \xdef\macrolist{\macrolist}% \endgroup \else *************** *** 5003,5006 **** --- 5627,5641 ---- } + % Called by \do from \dounmacro on each macro. The idea is to omit any + % macro definitions that have been changed to \relax. + % + \def\unmacrodo#1{% + \ifx#1\relax + % remove this + \else + \noexpand\do \noexpand #1% + \fi + } + % This makes use of the obscure feature that if the last token of a % is #, then the preceding argument is delimited by *************** *** 5185,5197 **** \gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} ! % \setref{NAME}{SNT} defines a cross-reference point NAME, namely ! % NAME-title, NAME-pg, and NAME-SNT. Called from \foonoderef. We have ! % to set \indexdummies so commands such as @code in a section title ! % aren't expanded. It would be nicer not to expand the titles in the ! % first place, but there's so many layers that that is hard to do. % \def\setref#1#2{{% ! \indexdummies \pdfmkdest{#1}% \dosetq{#1-title}{Ytitle}% \dosetq{#1-pg}{Ypagenumber}% --- 5820,5840 ---- \gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} ! % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an ! % anchor), namely NAME-title (the corresponding @chapter/etc. name), ! % NAME-pg (the page number), and NAME-snt (section number and type). ! % Called from \foonoderef. ! % ! % We have to set \indexdummies so commands such as @code in a section ! % title aren't expanded. It would be nicer not to expand the titles in ! % the first place, but there's so many layers that that is hard to do. % + % Likewise, use \turnoffactive so that punctuation chars such as underscore + % and backslash work in node names. + % \def\setref#1#2{{% ! \atdummies \pdfmkdest{#1}% + % + \turnoffactive \dosetq{#1-title}{Ytitle}% \dosetq{#1-pg}{Ypagenumber}% *************** *** 5245,5255 **** \leavevmode \getfilename{#4}% ! \ifnum\filenamelength>0 ! \startlink attr{/Border [0 0 0]}% ! goto file{\the\filename.pdf} name{#1@}% ! \else ! \startlink attr{/Border [0 0 0]}% ! goto name{#1@}% ! \fi \linkcolor \fi --- 5888,5900 ---- \leavevmode \getfilename{#4}% ! {\turnoffactive \otherbackslash ! \ifnum\filenamelength>0 ! \startlink attr{/Border [0 0 0]}% ! goto file{\the\filename.pdf} name{#1}% ! \else ! \startlink attr{/Border [0 0 0]}% ! goto name{#1}% ! \fi ! }% \linkcolor \fi *************** *** 5263,5267 **** % printing. So we \turnoffactive for the \refx-snt, back on for the % printing, back off for the \refx-pg. ! {\normalturnoffactive % Only output a following space if the -snt ref is nonempty; for % @unnumbered and @anchor, it won't be. --- 5908,5912 ---- % printing. So we \turnoffactive for the \refx-snt, back on for the % printing, back off for the \refx-pg. ! {\turnoffactive \otherbackslash % Only output a following space if the -snt ref is nonempty; for % @unnumbered and @anchor, it won't be. *************** *** 5272,5327 **** [\printednodename],\space % page 3 ! \turnoffactive \putwordpage\tie\refx{#1-pg}{}% \fi \endlink \endgroup} ! % \dosetq is the interface for calls from other macros ! ! % Use \normalturnoffactive so that punctuation chars such as underscore ! % and backslash work in node names. (\turnoffactive doesn't do \.) \def\dosetq#1#2{% {\let\folio=0% - \normalturnoffactive \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}% ! \iflinks ! \next ! \fi }% } ! % \internalsetq {foo}{page} expands into ! % CHARACTERS 'xrdef {foo}{...expansion of \Ypage...} ! % When the aux file is read, ' is the escape character ! ! \def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}} ! ! % Things to be expanded by \internalsetq \def\Ypagenumber{\folio} - \def\Ytitle{\thissection} - \def\Ynothing{} - \def\Ysectionnumberandtype{% ! \ifnum\secno=0 \putwordChapter\xreftie\the\chapno % ! \else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno % ! \else \ifnum \subsubsecno=0 % ! \putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno % ! \else % ! \putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno % ! \fi \fi \fi } \def\Yappendixletterandtype{% ! \ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}% ! \else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno % ! \else \ifnum \subsubsecno=0 % ! \putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno % ! \else % ! \putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % ! \fi \fi \fi } ! ! \gdef\xreftie{'tie} % Use TeX 3.0's \inputlineno to get the line number, for better error --- 5917,5967 ---- [\printednodename],\space % page 3 ! \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}% \fi \endlink \endgroup} ! % \dosetq is called from \setref to do the actual \write (\iflinks). ! % \def\dosetq#1#2{% {\let\folio=0% \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}% ! \iflinks \next \fi }% } ! % \internalsetq{foo}{page} expands into ! % CHARACTERS @xrdef{foo}{...expansion of \page...} ! \def\internalsetq#1#2{@xrdef{#1}{\csname #2\endcsname}} + % Things to be expanded by \internalsetq. + % \def\Ypagenumber{\folio} \def\Ytitle{\thissection} \def\Ynothing{} \def\Ysectionnumberandtype{% ! \ifnum\secno=0 ! \putwordChapter@tie \the\chapno ! \else \ifnum\subsecno=0 ! \putwordSection@tie \the\chapno.\the\secno ! \else \ifnum\subsubsecno=0 ! \putwordSection@tie \the\chapno.\the\secno.\the\subsecno ! \else ! \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno ! \fi\fi\fi ! } \def\Yappendixletterandtype{% ! \ifnum\secno=0 ! \putwordAppendix@tie @char\the\appendixno{}% ! \else \ifnum\subsecno=0 ! \putwordSection@tie @char\the\appendixno.\the\secno ! \else \ifnum\subsubsecno=0 ! \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno ! \else ! \putwordSection@tie ! @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno ! \fi\fi\fi ! } % Use TeX 3.0's \inputlineno to get the line number, for better error *************** *** 5329,5333 **** % \ifx\inputlineno\thisisundefined ! \let\linenumber = \empty % Non-3.0. \else \def\linenumber{\the\inputlineno:\space} --- 5969,5973 ---- % \ifx\inputlineno\thisisundefined ! \let\linenumber = \empty % Pre-3.0. \else \def\linenumber{\the\inputlineno:\space} *************** *** 5336,5342 **** % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. % If its value is nonempty, SUFFIX is output afterward. ! \def\refx#1#2{% ! \expandafter\ifx\csname X#1\endcsname\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright --- 5976,5988 ---- % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. % If its value is nonempty, SUFFIX is output afterward. ! % \def\refx#1#2{% ! {% ! \indexnofonts ! \otherbackslash ! \expandafter\global\expandafter\let\expandafter\thisrefX ! \csname X#1\endcsname ! }% ! \ifx\thisrefX\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright *************** *** 5353,5357 **** \else % It's defined, so just use it. ! \csname X#1\endcsname \fi #2% Output the suffix in any case. --- 5999,6003 ---- \else % It's defined, so just use it. ! \thisrefX \fi #2% Output the suffix in any case. *************** *** 5360,5369 **** % This is the macro invoked by entries in the aux file. % ! \def\xrdef#1{\begingroup ! % Reenable \ as an escape while reading the second argument. ! \catcode`\\ = 0 ! \afterassignment\endgroup ! \expandafter\gdef\csname X#1\endcsname ! } % Read the last existing aux file, if any. No error if none exists. --- 6006,6010 ---- % This is the macro invoked by entries in the aux file. % ! \def\xrdef#1{\expandafter\gdef\csname X#1\endcsname} % Read the last existing aux file, if any. No error if none exists. *************** *** 5396,5402 **** \catcode`\^^^=\other \catcode`\^^_=\other ! \catcode`\@=\other ! \catcode`\^=\other ! % It was suggested to define this as 7, which would allow ^^e4 etc. % in xref tags, i.e., node names. But since ^^e4 notation isn't % supported in the main text, it doesn't seem desirable. Furthermore, --- 6037,6041 ---- \catcode`\^^^=\other \catcode`\^^_=\other ! % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc. % in xref tags, i.e., node names. But since ^^e4 notation isn't % supported in the main text, it doesn't seem desirable. Furthermore, *************** *** 5411,5414 **** --- 6050,6056 ---- % and then to call \auxhat in \setq. % + \catcode`\^=\other + % + % Special characters. Should be turned off anyway, but... \catcode`\~=\other \catcode`\[=\other *************** *** 5422,5426 **** --- 6064,6070 ---- \catcode`\#=\other \catcode`\&=\other + \catcode`\%=\other \catcode`+=\other % avoid \+ for paranoia even though we've turned it off + % % Make the characters 128-255 be printing characters {% *************** *** 5432,5446 **** }% }% ! % The aux file uses ' as the escape (for now). % Turn off \ as an escape so we do not lose on % entries which were dumped with control sequences in their names. ! % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^ % Reference to such entries still does not work the way one would wish, % but at least they do not bomb out when the aux file is read in. \catcode`\{=1 \catcode`\}=2 ! \catcode`\%=\other ! \catcode`\'=0 ! \catcode`\\=\other % \openin 1 \jobname.aux --- 6076,6091 ---- }% }% ! % % Turn off \ as an escape so we do not lose on % entries which were dumped with control sequences in their names. ! % For example, @xrdef{$\leq $-fun}{page ...} made by @defun ^^ % Reference to such entries still does not work the way one would wish, % but at least they do not bomb out when the aux file is read in. + \catcode`\\=\other + % + % @ is our escape character in .aux files. \catcode`\{=1 \catcode`\}=2 ! \catcode`\@=0 % \openin 1 \jobname.aux *************** *** 5487,5491 **** \unskip \thisfootno\@sf ! \footnotezzz }% --- 6132,6136 ---- \unskip \thisfootno\@sf ! \dofootnote }% *************** *** 5497,5504 **** % the footnote is read. --karl, 16nov96. % ! \long\gdef\footnotezzz{\insert\footins\bgroup % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. \interlinepenalty\interfootnotelinepenalty \splittopskip\ht\strutbox % top baseline for broken footnotes --- 6142,6156 ---- % the footnote is read. --karl, 16nov96. % ! % The start of the footnote looks usually like this: ! \gdef\startfootins{\insert\footins\bgroup} ! % ! % ... but this macro is redefined inside @multitable. ! % ! \gdef\dofootnote{% ! \startfootins % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. + \hsize=\pagewidth \interlinepenalty\interfootnotelinepenalty \splittopskip\ht\strutbox % top baseline for broken footnotes *************** *** 5513,5518 **** \smallfonts \rm % ! % Hang the footnote text off the number. ! \hang \textindent{\thisfootno}% % --- 6165,6177 ---- \smallfonts \rm % ! % Because we use hanging indentation in footnotes, a @noindent appears ! % to exdent this text, so make it be a no-op. makeinfo does not use ! % hanging indentation so @noindent can still be needed within footnote ! % text after an @example or the like (not that this is good style). ! \let\noindent = \relax ! % ! % Hang the footnote text off the number. Use \everypar in case the ! % footnote extends for more than one paragraph. ! \everypar = {\hang}% \textindent{\thisfootno}% % *************** *** 5523,5552 **** \futurelet\next\fo@t } - \def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t - \else\let\next\f@t\fi \next} - \def\f@@t{\bgroup\aftergroup\@foot\let\next} - \def\f@t#1{#1\@foot} - \def\@foot{\strut\par\egroup} - }%end \catcode `\@=11 - % Set the baselineskip to #1, and the lineskip and strut size - % correspondingly. There is no deep meaning behind these magic numbers - % used as factors; they just match (closely enough) what Knuth defined. - % - \def\lineskipfactor{.08333} - \def\strutheightpercent{.70833} - \def\strutdepthpercent {.29167} - % - \def\setleading#1{% - \normalbaselineskip = #1\relax - \normallineskip = \lineskipfactor\normalbaselineskip - \normalbaselines - \setbox\strutbox =\hbox{% - \vrule width0pt height\strutheightpercent\baselineskip - depth \strutdepthpercent \baselineskip - }% - } - % @| inserts a changebar to the left of the current line. It should % surround any changed text. This approach does *not* work if the --- 6182,6187 ---- *************** *** 5593,5598 **** \ifeof 1 \else \closein 1 ! % Do not bother showing banner with post-v2.7 epsf.tex (available in ! % doc/epsf.tex until it shows up on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex --- 6228,6233 ---- \ifeof 1 \else \closein 1 ! % Do not bother showing banner with epsf.tex v2.7k (available in ! % doc/epsf.tex and on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex *************** *** 5613,5617 **** \fi \else ! \imagexxx #1,,,\finish \fi } --- 6248,6252 ---- \fi \else ! \imagexxx #1,,,,,\finish \fi } *************** *** 5620,5650 **** % #1 is (mandatory) image filename; we tack on .eps extension. % #2 is (optional) width, #3 is (optional) height. ! % #4 is just the usual extra ignored arg for parsing this stuff. ! \def\imagexxx#1,#2,#3,#4\finish{% \ifpdf ! \centerline{\dopdfimage{#1}{#2}{#3}}% \else % \epsfbox itself resets \epsf?size at each figure. \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi ! \begingroup ! \catcode`\^^M = 5 % in case we're inside an example ! % If the image is by itself, center it. ! \ifvmode ! \nobreak\bigskip ! % Usually we'll have text after the image which will insert ! % \parskip glue, so insert it here too to equalize the space ! % above and below. ! \nobreak\vskip\parskip ! \nobreak ! \centerline{\epsfbox{#1.eps}}% ! \bigbreak ! \else ! % In the middle of a paragraph, no extra space. ! \epsfbox{#1.eps}% ! \fi ! \endgroup \fi ! } --- 6255,6289 ---- % #1 is (mandatory) image filename; we tack on .eps extension. % #2 is (optional) width, #3 is (optional) height. ! % #4 is (ignored optional) html alt text. ! % #5 is (ignored optional) extension. ! % #6 is just the usual extra ignored arg for parsing this stuff. ! \newif\ifimagevmode ! \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup ! \catcode`\^^M = 5 % in case we're inside an example ! \normalturnoffactive % allow _ et al. in names ! % If the image is by itself, center it. ! \ifvmode ! \imagevmodetrue ! \nobreak\bigskip ! % Usually we'll have text after the image which will insert ! % \parskip glue, so insert it here too to equalize the space ! % above and below. ! \nobreak\vskip\parskip ! \nobreak ! \line\bgroup\hss ! \fi ! % ! % Output the image. \ifpdf ! \dopdfimage{#1}{#2}{#3}% \else % \epsfbox itself resets \epsf?size at each figure. \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi ! \epsfbox{#1.eps}% \fi ! % ! \ifimagevmode \hss \egroup \bigbreak \fi % space after the image ! \endgroup} *************** *** 5715,5722 **** % Parameters in order: 1) textheight; 2) textwidth; 3) voffset; ! % 4) hoffset; 5) binding offset; 6) topskip. Then whoever calls us can ! % set \parskip and call \setleading for \baselineskip. % ! \def\internalpagesizes#1#2#3#4#5#6{% \voffset = #3\relax \topskip = #6\relax --- 6354,6364 ---- % Parameters in order: 1) textheight; 2) textwidth; 3) voffset; ! % 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8) ! % physical page width. ! % ! % We also call \setleading{\textleading}, so the caller should define ! % \textleading. The caller should also set \parskip. % ! \def\internalpagesizes#1#2#3#4#5#6#7#8{% \voffset = #3\relax \topskip = #6\relax *************** *** 5737,5740 **** --- 6379,6389 ---- \bindingoffset = #5\relax % + \ifpdf + \pdfpageheight #7\relax + \pdfpagewidth #8\relax + \fi + % + \setleading{\textleading} + % \parindent = \defaultparindent \setemergencystretch *************** *** 5744,5751 **** \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt ! \setleading{13.2pt}% % % If page is nothing but text, make it come out even. ! \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}% }} --- 6393,6403 ---- \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt ! \textleading = 13.2pt % % If page is nothing but text, make it come out even. ! \internalpagesizes{46\baselineskip}{6in}% ! {\voffset}{.25in}% ! {\bindingoffset}{36pt}% ! {11in}{8.5in}% }} *************** *** 5753,5759 **** \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt ! \setleading{12pt}% % ! \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}% % \lispnarrowing = 0.3in --- 6405,6414 ---- \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt ! \textleading = 12pt % ! \internalpagesizes{7.5in}{5in}% ! {\voffset}{.25in}% ! {\bindingoffset}{16pt}% ! {9.25in}{7in}% % \lispnarrowing = 0.3in *************** *** 5761,5802 **** \hfuzz = 1pt \contentsrightmargin = 0pt - \deftypemargin = 0pt \defbodyindent = .5cm - % - \let\smalldisplay = \smalldisplayx - \let\smallexample = \smalllispx - \let\smallformat = \smallformatx - \let\smalllisp = \smalllispx }} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 - \setleading{12pt}% \parskip = 3pt plus 2pt minus 1pt % ! \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}% % \tolerance = 700 \hfuzz = 1pt }} ! % A specific text layout, 24x15cm overall, intended for A4 paper. Top margin ! % 29mm, hence bottom margin 28mm, nominal side margin 3cm. \def\afourlatex{{\globaldefs = 1 - \setleading{13.6pt}% - % \afourpaper ! \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}% % \globaldefs = 0 }} ! % Use @afourwide to print on European A4 paper in wide format. ! \def\afourwide{% \afourpaper ! \internalpagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}% ! % \globaldefs = 0 ! } % @pagesizes TEXTHEIGHT[,TEXTWIDTH] --- 6416,6489 ---- \hfuzz = 1pt \contentsrightmargin = 0pt \defbodyindent = .5cm }} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt + \textleading = 13.2pt % ! % Double-side printing via postscript on Laserjet 4050 ! % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm. ! % To change the settings for a different printer or situation, adjust ! % \normaloffset until the front-side and back-side texts align. Then ! % do the same for \bindingoffset. You can set these for testing in ! % your texinfo source file like this: ! % @tex ! % \global\normaloffset = -6mm ! % \global\bindingoffset = 10mm ! % @end tex ! \internalpagesizes{51\baselineskip}{160mm} ! {\voffset}{\hoffset}% ! {\bindingoffset}{44pt}% ! {297mm}{210mm}% % \tolerance = 700 \hfuzz = 1pt + \contentsrightmargin = 0pt + \defbodyindent = 5mm }} ! % Use @afivepaper to print on European A5 paper. ! % From romildo@urano.iceb.ufop.br, 2 July 2000. ! % He also recommends making @example and @lisp be small. ! \def\afivepaper{{\globaldefs = 1 ! \parskip = 2pt plus 1pt minus 0.1pt ! \textleading = 12.5pt ! % ! \internalpagesizes{160mm}{120mm}% ! {\voffset}{\hoffset}% ! {\bindingoffset}{8pt}% ! {210mm}{148mm}% ! % ! \lispnarrowing = 0.2in ! \tolerance = 800 ! \hfuzz = 1.2pt ! \contentsrightmargin = 0pt ! \defbodyindent = 2mm ! \tableindent = 12mm ! }} ! ! % A specific text layout, 24x15cm overall, intended for A4 paper. \def\afourlatex{{\globaldefs = 1 \afourpaper ! \internalpagesizes{237mm}{150mm}% ! {\voffset}{4.6mm}% ! {\bindingoffset}{7mm}% ! {297mm}{210mm}% % + % Must explicitly reset to 0 because we call \afourpaper. \globaldefs = 0 }} ! % Use @afourwide to print on A4 paper in landscape format. ! \def\afourwide{{\globaldefs = 1 \afourpaper ! \internalpagesizes{241mm}{165mm}% ! {\voffset}{-2.95mm}% ! {\bindingoffset}{7mm}% ! {297mm}{210mm}% \globaldefs = 0 ! }} % @pagesizes TEXTHEIGHT[,TEXTWIDTH] *************** *** 5811,5817 **** % \parskip = 3pt plus 2pt minus 1pt ! \setleading{13.2pt}% % ! \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}% }} --- 6498,6513 ---- % \parskip = 3pt plus 2pt minus 1pt ! \setleading{\textleading}% ! % ! \dimen0 = #1 ! \advance\dimen0 by \voffset % ! \dimen2 = \hsize ! \advance\dimen2 by \normaloffset ! % ! \internalpagesizes{#1}{\hsize}% ! {\voffset}{\normaloffset}% ! {\bindingoffset}{44pt}% ! {\dimen0}{\dimen2}% }} *************** *** 5841,5845 **** \def\normalgreater{>} \def\normalplus{+} ! \def\normaldollar{$} % This macro is used to make a character print one way in ttfont --- 6537,6541 ---- \def\normalgreater{>} \def\normalplus{+} ! \def\normaldollar{$}%$ font-lock fix % This macro is used to make a character print one way in ttfont *************** *** 5877,5881 **** \def_{\ifusingtt\normalunderscore\_} % Subroutine for the previous macro. ! \def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}} \catcode`\|=\active --- 6573,6577 ---- \def_{\ifusingtt\normalunderscore\_} % Subroutine for the previous macro. ! \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } \catcode`\|=\active *************** *** 5890,5896 **** \def+{{\tt \char 43}} \catcode`\$=\active ! \def${\ifusingit{{\sl\$}}\normaldollar} ! %\catcode 27=\active ! %\def^^[{$\diamondsuit$} % Set up an active definition for =, but don't enable it most of the time. --- 6586,6590 ---- \def+{{\tt \char 43}} \catcode`\$=\active ! \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix % Set up an active definition for =, but don't enable it most of the time. *************** *** 5909,5950 **** \catcode`\@=0 ! % \rawbackslashxx output one backslash character in current font \global\chardef\rawbackslashxx=`\\ - %{\catcode`\\=\other - %@gdef@rawbackslashxx{\}} ! % \rawbackslash redefines \ as input to do \rawbackslashxx. {\catcode`\\=\active ! @gdef@rawbackslash{@let\=@rawbackslashxx }} % \normalbackslash outputs one backslash in fixed width font. \def\normalbackslash{{\tt\rawbackslashxx}} - % \catcode 17=0 % Define control-q \catcode`\\=\active % Used sometimes to turn off (effectively) the active characters % even after parsing them. ! @def@turnoffactive{@let"=@normaldoublequote ! @let\=@realbackslash ! @let~=@normaltilde ! @let^=@normalcaret ! @let_=@normalunderscore ! @let|=@normalverticalbar ! @let<=@normalless ! @let>=@normalgreater ! @let+=@normalplus ! @let$=@normaldollar} ! ! @def@normalturnoffactive{@let"=@normaldoublequote ! @let\=@normalbackslash ! @let~=@normaltilde ! @let^=@normalcaret ! @let_=@normalunderscore ! @let|=@normalverticalbar ! @let<=@normalless ! @let>=@normalgreater ! @let+=@normalplus ! @let$=@normaldollar} % Make _ and + \other characters, temporarily. --- 6603,6646 ---- \catcode`\@=0 ! % \rawbackslashxx outputs one backslash character in current font, ! % as in \char`\\. \global\chardef\rawbackslashxx=`\\ ! % \rawbackslash defines an active \ to do \rawbackslashxx. ! % \otherbackslash defines an active \ to be a literal `\' character with ! % catcode other. {\catcode`\\=\active ! @gdef@rawbackslash{@let\=@rawbackslashxx} ! @gdef@otherbackslash{@let\=@realbackslash} ! } ! ! % \realbackslash is an actual character `\' with catcode other. ! {\catcode`\\=\other @gdef@realbackslash{\}} % \normalbackslash outputs one backslash in fixed width font. \def\normalbackslash{{\tt\rawbackslashxx}} \catcode`\\=\active % Used sometimes to turn off (effectively) the active characters % even after parsing them. ! @def@turnoffactive{% ! @let"=@normaldoublequote ! @let\=@realbackslash ! @let~=@normaltilde ! @let^=@normalcaret ! @let_=@normalunderscore ! @let|=@normalverticalbar ! @let<=@normalless ! @let>=@normalgreater ! @let+=@normalplus ! @let$=@normaldollar %$ font-lock fix ! } ! ! % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of ! % the literal character `\'. (Thus, \ is not expandable when this is in ! % effect.) ! % ! @def@normalturnoffactive{@turnoffactive @let\=@normalbackslash} % Make _ and + \other characters, temporarily. diff -aNrc2 readline-4.3-patched/doc/version.texi readline-5.0/doc/version.texi *** readline-4.3-patched/doc/version.texi Wed Dec 31 19:00:00 1969 --- readline-5.0/doc/version.texi Tue Jul 27 09:28:29 2004 *************** *** 0 **** --- 1,10 ---- + @ignore + Copyright (C) 1988-2004 Free Software Foundation, Inc. + @end ignore + + @set EDITION 5.0 + @set VERSION 5.0 + @set UPDATED 28 January 2004 + @set UPDATED-MONTH January 2004 + + @set LASTCHANGE Wed Jan 28 15:46:54 EST 2004 diff -aNrc2 readline-4.3-patched/examples/Makefile.in readline-5.0/examples/Makefile.in *** readline-4.3-patched/examples/Makefile.in Thu Jan 24 10:16:05 2002 --- readline-5.0/examples/Makefile.in Tue Dec 3 11:12:09 2002 *************** *** 51,55 **** EXECUTABLES = fileman rltest rl rlcat rlversion histexamp ! OBJECTS = fileman.o rltest.o rl.o rlversion.o histexamp.o all: $(EXECUTABLES) --- 51,55 ---- EXECUTABLES = fileman rltest rl rlcat rlversion histexamp ! OBJECTS = fileman.o rltest.o rl.o rlcat.o rlversion.o histexamp.o all: $(EXECUTABLES) diff -aNrc2 readline-4.3-patched/examples/histexamp.c readline-5.0/examples/histexamp.c *** readline-4.3-patched/examples/histexamp.c Tue Apr 16 16:52:36 2002 --- readline-5.0/examples/histexamp.c Tue Jul 29 10:14:01 2003 *************** *** 32,38 **** { char line[1024], *t; ! int len, done = 0; line[0] = 0; using_history (); --- 32,39 ---- { char line[1024], *t; ! int len, done; line[0] = 0; + done = 0; using_history (); *************** *** 43,112 **** t = fgets (line, sizeof (line) - 1, stdin); if (t && *t) ! { ! len = strlen (t); ! if (t[len - 1] == '\n') ! t[len - 1] = '\0'; ! } if (!t) ! strcpy (line, "quit"); if (line[0]) ! { ! char *expansion; ! int result; ! ! using_history (); ! ! result = history_expand (line, &expansion); ! if (result) ! fprintf (stderr, "%s\n", expansion); ! ! if (result < 0 || result == 2) ! { ! free (expansion); ! continue; ! } ! ! add_history (expansion); ! strncpy (line, expansion, sizeof (line) - 1); ! free (expansion); ! } if (strcmp (line, "quit") == 0) ! done = 1; else if (strcmp (line, "save") == 0) ! write_history ("history_file"); else if (strcmp (line, "read") == 0) ! read_history ("history_file"); else if (strcmp (line, "list") == 0) ! { ! register HIST_ENTRY **the_list; ! register int i; ! ! the_list = history_list (); ! if (the_list) ! for (i = 0; the_list[i]; i++) ! printf ("%d: %s\n", i + history_base, the_list[i]->line); ! } else if (strncmp (line, "delete", 6) == 0) ! { ! int which; ! if ((sscanf (line + 6, "%d", &which)) == 1) ! { ! HIST_ENTRY *entry = remove_history (which); ! if (!entry) ! fprintf (stderr, "No such entry %d\n", which); ! else ! { ! free (entry->line); ! free (entry); ! } ! } ! else ! { ! fprintf (stderr, "non-numeric arg given to `delete'\n"); ! } ! } } } --- 44,122 ---- t = fgets (line, sizeof (line) - 1, stdin); if (t && *t) ! { ! len = strlen (t); ! if (t[len - 1] == '\n') ! t[len - 1] = '\0'; ! } if (!t) ! strcpy (line, "quit"); if (line[0]) ! { ! char *expansion; ! int result; ! ! using_history (); ! ! result = history_expand (line, &expansion); ! if (result) ! fprintf (stderr, "%s\n", expansion); ! ! if (result < 0 || result == 2) ! { ! free (expansion); ! continue; ! } ! ! add_history (expansion); ! strncpy (line, expansion, sizeof (line) - 1); ! free (expansion); ! } if (strcmp (line, "quit") == 0) ! done = 1; else if (strcmp (line, "save") == 0) ! write_history ("history_file"); else if (strcmp (line, "read") == 0) ! read_history ("history_file"); else if (strcmp (line, "list") == 0) ! { ! register HIST_ENTRY **the_list; ! register int i; ! time_t tt; ! char timestr[128]; ! ! the_list = history_list (); ! if (the_list) ! for (i = 0; the_list[i]; i++) ! { ! tt = history_get_time (the_list[i]); ! if (tt) ! strftime (timestr, sizeof (timestr), "%a %R", localtime(&tt)); ! else ! strcpy (timestr, "??"); ! printf ("%d: %s: %s\n", i + history_base, timestr, the_list[i]->line); ! } ! } else if (strncmp (line, "delete", 6) == 0) ! { ! int which; ! if ((sscanf (line + 6, "%d", &which)) == 1) ! { ! HIST_ENTRY *entry = remove_history (which); ! if (!entry) ! fprintf (stderr, "No such entry %d\n", which); ! else ! { ! free (entry->line); ! free (entry); ! } ! } ! else ! { ! fprintf (stderr, "non-numeric arg given to `delete'\n"); ! } ! } } } diff -aNrc2 readline-4.3-patched/examples/rl-fgets.c readline-5.0/examples/rl-fgets.c *** readline-4.3-patched/examples/rl-fgets.c Wed Dec 31 19:00:00 1969 --- readline-5.0/examples/rl-fgets.c Thu Apr 22 16:52:17 2004 *************** *** 0 **** --- 1,374 ---- + /* + Date: Tue, 16 Mar 2004 19:38:40 -0800 + From: Harold Levy + Subject: fgets(stdin) --> readline() redirector + To: chet@po.cwru.edu + + Hi Chet, + + Here is something you may find useful enough to include in the readline + distribution. It is a shared library that redirects calls to fgets(stdin) + to readline() via LD_PRELOAD, and it supports a custom prompt and list of + command names. Many people have asked me for this file, so I thought I'd + pass it your way in hope of just including it with readline to begin with. + + Best Regards, + + -Harold + */ + + /****************************************************************************** + ******************************************************************************* + + FILE NAME: fgets.c TARGET: libfgets.so + AUTHOR: Harold Levy VERSION: 1.0 + hlevy@synopsys.com + + ABSTRACT: Customize fgets() behavior via LD_PRELOAD in the following ways: + + -- If fgets(stdin) is called, redirect to GNU readline() to obtain + command-line editing, file-name completion, history, etc. + + -- A list of commands for command-name completion can be configured by + setting the environment-variable FGETS_COMMAND_FILE to a file containing + the list of commands to be used. + + -- Command-line editing with readline() works best when the prompt string + is known; you can set this with the FGETS_PROMPT environment variable. + + -- There special strings that libfgets will interpret as internal commands: + + _fgets_reset_ reset the command list + + _fgets_dump_ dump status + + _fgets_debug_ toggle debug messages + + HOW TO BUILD: Here are examples of how to build libfgets.so on various + platforms; you will have to add -I and -L flags to configure access to + the readline header and library files. + + (32-bit builds with gcc) + AIX: gcc -fPIC fgets.c -shared -o libfgets.so -lc -ldl -lreadline -ltermcap + HP-UX: gcc -fPIC fgets.c -shared -o libfgets.so -lc -ldld -lreadline + Linux: gcc -fPIC fgets.c -shared -o libfgets.so -lc -ldl -lreadline + SunOS: gcc -fPIC fgets.c -shared -o libfgets.so -lc -ldl -lgen -lreadline + + (64-bit builds without gcc) + SunOS: SUNWspro/bin/cc -D_LARGEFILE64_SOURCE=1 -xtarget=ultra -xarch=v9 \ + -KPIC fgets.c -Bdynamic -lc -ldl -lgen -ltermcap -lreadline + + HOW TO USE: Different operating systems have different levels of support + for the LD_PRELOAD concept. The generic method for 32-bit platforms is to + put libtermcap.so, libfgets.so, and libreadline.so (with absolute paths) + in the LD_PRELOAD environment variable, and to put their parent directories + in the LD_LIBRARY_PATH environment variable. Unfortunately there is no + generic method for 64-bit platforms; e.g. for 64-bit SunOS, you would have + to build both 32-bit and 64-bit libfgets and libreadline libraries, and + use the LD_FLAGS_32 and LD_FLAGS_64 environment variables with preload and + library_path configurations (a mix of 32-bit and 64-bit calls are made under + 64-bit SunOS). + + EXAMPLE WRAPPER: Here is an example shell script wrapper around the + program "foo" that uses fgets() for command-line input: + + #!/bin/csh + #### replace this with the libtermcap.so directory: + set dir1 = "/usr/lib" + #### replace this with the libfgets.so directory: + set dir2 = "/usr/fgets" + #### replace this with the libreadline.so directory: + set dir3 = "/usr/local/lib" + set lib1 = "${dir1}/libtermcap.so" + set lib2 = "${dir2}/libfgets.so" + set lib3 = "${dir3}/libreadline.so" + if ( "${?LD_PRELOAD}" ) then + setenv LD_PRELOAD "${lib1}:${lib2}:${lib3}:${LD_PRELOAD}" + else + setenv LD_PRELOAD "${lib1}:${lib2}:${lib3}" + endif + if ( "${?LD_LIBRARY_PATH}" ) then + setenv LD_LIBRARY_PATH "${dir1}:${dir2}:${dir3}:${LD_LIBRARY_PATH}" + else + setenv LD_LIBRARY_PATH "${dir1}:${dir2}:${dir3}" + endif + setenv FGETS_COMMAND_FILE "${dir2}/foo.commands" + setenv FGETS_PROMPT "foo> " + exec "foo" $* + + Copyright (C)©2003-2004 Harold Levy. + + This code links to the GNU readline library, and as such is bound by the + terms of the GNU General Public License as published by the Free Software + Foundation, either version 2 or (at your option) any later version. + + The GNU General Public License is often shipped with GNU software, and is + generally kept in a file called COPYING or LICENSE. If you do not have a + copy of the license, write to the Free Software Foundation, 59 Temple Place, + Suite 330, Boston, MA 02111 USA. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. + + ******************************************************************************* + ******************************************************************************/ + + + + #include + #include + #include + #include + #include + + #include + #include + + + + /* for dynamically connecting to the native fgets() */ + #if defined(RTLD_NEXT) + #define REAL_LIBC RTLD_NEXT + #else + #define REAL_LIBC ((void *) -1L) + #endif + typedef char * ( * fgets_t ) ( char * s, int n, FILE * stream ) ; + + + + /* private data */ + /* -- writeable data is stored in the shared library's data segment + -- every process that uses the shared library gets a private memory copy of + its entire data segment + -- static data in the shared library is not copied to the application + -- only read-only (i.e. 'const') data is stored in the shared library's + text segment + */ + static char ** my_fgets_names = NULL ; + static int my_fgets_number_of_names = 0 ; + static int my_fgets_debug_flag = 0 ; + + + + /* invoked with _fgets_reset_ */ + static void + my_fgets_reset ( + void + ) { + if ( my_fgets_names && (my_fgets_number_of_names > 0) ) { + int i ; + if ( my_fgets_debug_flag ) { + printf ( "libfgets: removing command list\n" ) ; + } + for ( i = 0 ; i < my_fgets_number_of_names ; i ++ ) { + if ( my_fgets_names[i] ) free ( my_fgets_names[i] ) ; + } + free ( my_fgets_names ) ; + } + my_fgets_names = NULL ; + my_fgets_number_of_names = 0 ; + } + + + + /* invoked with _fgets_dump_ */ + static void + my_fgets_dump ( + void + ) { + char * s ; + printf ( "\n" ) ; + s = getenv ( "FGETS_PROMPT" ) ; + printf ( "FGETS_PROMPT = %s\n", s ? s : "" ) ; + s = getenv ( "FGETS_COMMAND_FILE" ) ; + printf ( "FGETS_COMMAND_FILE = %s\n", s ? s : "" ) ; + printf ( "debug flag = %d\n", my_fgets_debug_flag ) ; + printf ( "#commands = %d\n", my_fgets_number_of_names ) ; + if ( my_fgets_debug_flag ) { + if ( my_fgets_names && (my_fgets_number_of_names > 0) ) { + int i ; + for ( i = 0 ; i < my_fgets_number_of_names ; i ++ ) { + printf ( "%s\n", my_fgets_names[i] ) ; + } + } + } + printf ( "\n" ) ; + } + + + + /* invoked with _fgets_debug_ */ + static void + my_fgets_debug_toggle ( + void + ) { + my_fgets_debug_flag = my_fgets_debug_flag ? 0 : 1 ; + if ( my_fgets_debug_flag ) { + printf ( "libfgets: debug flag = %d\n", my_fgets_debug_flag ) ; + } + } + + + + /* read the command list if needed, return the i-th name */ + static char * + my_fgets_lookup ( + int index + ) { + if ( (! my_fgets_names) || (! my_fgets_number_of_names) ) { + char * fname ; + FILE * fp ; + fgets_t _fgets ; + int i ; + char buf1[256], buf2[256] ; + fname = getenv ( "FGETS_COMMAND_FILE" ) ; + if ( ! fname ) { + if ( my_fgets_debug_flag ) { + printf ( "libfgets: empty or unset FGETS_COMMAND_FILE\n" ) ; + } + return NULL ; + } + fp = fopen ( fname, "r" ) ; + if ( ! fp ) { + if ( my_fgets_debug_flag ) { + printf ( "libfgets: cannot open '%s' for reading\n", fname ) ; + } + return NULL ; + } + _fgets = (fgets_t) dlsym ( REAL_LIBC, "fgets" ) ; + if ( ! _fgets ) { + fprintf ( stderr, + "libfgets: failed to dynamically link to native fgets()\n" + ) ; + return NULL ; + } + for ( i = 0 ; _fgets(buf1,255,fp) ; i ++ ) ; + if ( ! i ) { fclose(fp) ; return NULL ; } + my_fgets_names = (char**) calloc ( i, sizeof(char*) ) ; + rewind ( fp ) ; + i = 0 ; + while ( _fgets(buf1,255,fp) ) { + buf1[255] = 0 ; + if ( 1 == sscanf(buf1,"%s",buf2) ) { + my_fgets_names[i] = strdup(buf2) ; + i ++ ; + } + } + fclose ( fp ) ; + my_fgets_number_of_names = i ; + if ( my_fgets_debug_flag ) { + printf ( "libfgets: successfully read %d commands\n", i ) ; + } + } + if ( index < my_fgets_number_of_names ) { + return my_fgets_names[index] ; + } else { + return NULL ; + } + } + + + + /* generate a list of partial name matches for readline() */ + static char * + my_fgets_generator ( + const char * text, + int state + ) + { + static int list_index, len ; + char * name ; + if ( ! state ) { + list_index = 0 ; + len = strlen ( text ) ; + } + while ( ( name = my_fgets_lookup(list_index) ) ) { + list_index ++ ; + if ( ! strncmp ( name, text, len ) ) { + return ( strdup ( name ) ) ; + } + } + return ( NULL ) ; + } + + + + /* partial name completion callback for readline() */ + static char ** + my_fgets_completion ( + const char * text, + int start, + int end + ) + { + char ** matches ; + matches = NULL ; + if ( ! start ) { + matches = rl_completion_matches ( text, my_fgets_generator ) ; + } + return ( matches ) ; + } + + + + /* fgets() intercept */ + char * + fgets ( + char * s, + int n, + FILE * stream + ) + { + if ( ! s ) return NULL ; + if ( stream == stdin ) { + char * prompt ; + char * my_fgets_line ; + rl_already_prompted = 1 ; + rl_attempted_completion_function = my_fgets_completion ; + rl_catch_signals = 1 ; + rl_catch_sigwinch = 1 ; + rl_set_signals () ; + prompt = getenv ( "FGETS_PROMPT" ) ; + for ( + my_fgets_line = 0 ; ! my_fgets_line ; my_fgets_line=readline(prompt) + ) ; + if ( ! strncmp(my_fgets_line, "_fgets_reset_", 13) ) { + my_fgets_reset () ; + free ( my_fgets_line ) ; + strcpy ( s, "\n" ) ; + return ( s ) ; + } + if ( ! strncmp(my_fgets_line, "_fgets_dump_", 12) ) { + my_fgets_dump () ; + free ( my_fgets_line ) ; + strcpy ( s, "\n" ) ; + return ( s ) ; + } + if ( ! strncmp(my_fgets_line, "_fgets_debug_", 13) ) { + my_fgets_debug_toggle () ; + free ( my_fgets_line ) ; + strcpy ( s, "\n" ) ; + return ( s ) ; + } + (void) strncpy ( s, my_fgets_line, n-1 ) ; + (void) strcat ( s, "\n" ) ; + if ( *my_fgets_line ) add_history ( my_fgets_line ) ; + free ( my_fgets_line ) ; + return ( s ) ; + } else { + static fgets_t _fgets ; + _fgets = (fgets_t) dlsym ( REAL_LIBC, "fgets" ) ; + if ( ! _fgets ) { + fprintf ( stderr, + "libfgets: failed to dynamically link to native fgets()\n" + ) ; + strcpy ( s, "\n" ) ; + return ( s ) ; + } + return ( + _fgets ( s, n, stream ) + ) ; + } + } diff -aNrc2 readline-4.3-patched/funmap.c readline-5.0/funmap.c *** readline-4.3-patched/funmap.c Tue Jan 22 12:18:14 2002 --- readline-5.0/funmap.c Wed Jan 28 15:41:27 2004 *************** *** 132,135 **** --- 132,136 ---- { "undo", rl_undo_command }, { "universal-argument", rl_universal_argument }, + { "unix-filename-rubout", rl_unix_filename_rubout }, { "unix-line-discard", rl_unix_line_discard }, { "unix-word-rubout", rl_unix_word_rubout }, diff -aNrc2 readline-4.3-patched/histexpand.c readline-5.0/histexpand.c *** readline-4.3-patched/histexpand.c Tue Apr 16 11:47:59 2002 --- readline-5.0/histexpand.c Mon Mar 22 08:27:31 2004 *************** *** 1,5 **** /* histexpand.c -- history expansion. */ ! /* Copyright (C) 1989, 1992 Free Software Foundation, Inc. This file contains the GNU History Library (the Library), a set of --- 1,5 ---- /* histexpand.c -- history expansion. */ ! /* Copyright (C) 1989-2004 Free Software Foundation, Inc. This file contains the GNU History Library (the Library), a set of *************** *** 53,56 **** --- 53,58 ---- #define HISTORY_QUOTE_CHARACTERS "\"'`" + #define slashify_in_quotes "\\`\"$" + typedef int _hist_search_func_t PARAMS((const char *, int)); *************** *** 66,69 **** --- 68,73 ---- static char *get_history_word_specifier PARAMS((char *, char *, int *)); static char *history_find_word PARAMS((char *, int)); + static int history_tokenize_word PARAMS((const char *, int)); + static char *history_substring PARAMS((const char *, int, int)); static char *quote_breaks PARAMS((char *)); *************** *** 212,217 **** /* These produce warnings because we're passing a const string to a function that takes a non-const string. */ ! _rl_adjust_point (string, i, &ps); ! if ((v = _rl_get_char_len (string + i, &ps)) > 1) { i += v - 1; --- 216,221 ---- /* These produce warnings because we're passing a const string to a function that takes a non-const string. */ ! _rl_adjust_point ((char *)string, i, &ps); ! if ((v = _rl_get_char_len ((char *)string + i, &ps)) > 1) { i += v - 1; *************** *** 518,522 **** { int i, n, starting_index; ! int substitute_globally, want_quotes, print_only; char *event, *temp, *result, *tstr, *t, c, *word_spec; int result_len; --- 522,526 ---- { int i, n, starting_index; ! int substitute_globally, subst_bywords, want_quotes, print_only; char *event, *temp, *result, *tstr, *t, c, *word_spec; int result_len; *************** *** 600,604 **** /* Perhaps there are other modifiers involved. Do what they say. */ ! want_quotes = substitute_globally = print_only = 0; starting_index = i; --- 604,608 ---- /* Perhaps there are other modifiers involved. Do what they say. */ ! want_quotes = substitute_globally = subst_bywords = print_only = 0; starting_index = i; *************** *** 607,611 **** c = string[i + 1]; ! if (c == 'g') { substitute_globally = 1; --- 611,615 ---- c = string[i + 1]; ! if (c == 'g' || c == 'a') { substitute_globally = 1; *************** *** 613,616 **** --- 617,626 ---- c = string[i + 1]; } + else if (c == 'G') + { + subst_bywords = 1; + i++; + c = string[i + 1]; + } switch (c) *************** *** 684,688 **** { char *new_event; ! int delimiter, failed, si, l_temp; if (c == 's') --- 694,698 ---- { char *new_event; ! int delimiter, failed, si, l_temp, ws, we; if (c == 's') *************** *** 761,791 **** /* Find the first occurrence of THIS in TEMP. */ ! si = 0; for (failed = 1; (si + subst_lhs_len) <= l_temp; si++) ! if (STREQN (temp+si, subst_lhs, subst_lhs_len)) ! { ! int len = subst_rhs_len - subst_lhs_len + l_temp; ! new_event = (char *)xmalloc (1 + len); ! strncpy (new_event, temp, si); ! strncpy (new_event + si, subst_rhs, subst_rhs_len); ! strncpy (new_event + si + subst_rhs_len, ! temp + si + subst_lhs_len, ! l_temp - (si + subst_lhs_len)); ! new_event[len] = '\0'; ! free (temp); ! temp = new_event; ! failed = 0; ! if (substitute_globally) ! { ! si += subst_rhs_len; ! l_temp = strlen (temp); ! substitute_globally++; ! continue; ! } ! else ! break; ! } if (substitute_globally > 1) --- 771,835 ---- /* Find the first occurrence of THIS in TEMP. */ ! /* Substitute SUBST_RHS for SUBST_LHS in TEMP. There are three ! cases to consider: ! ! 1. substitute_globally == subst_bywords == 0 ! 2. substitute_globally == 1 && subst_bywords == 0 ! 3. substitute_globally == 0 && subst_bywords == 1 ! ! In the first case, we substitute for the first occurrence only. ! In the second case, we substitute for every occurrence. ! In the third case, we tokenize into words and substitute the ! first occurrence of each word. */ ! ! si = we = 0; for (failed = 1; (si + subst_lhs_len) <= l_temp; si++) ! { ! /* First skip whitespace and find word boundaries if ! we're past the end of the word boundary we found ! the last time. */ ! if (subst_bywords && si > we) ! { ! for (; temp[si] && whitespace (temp[si]); si++) ! ; ! ws = si; ! we = history_tokenize_word (temp, si); ! } ! if (STREQN (temp+si, subst_lhs, subst_lhs_len)) ! { ! int len = subst_rhs_len - subst_lhs_len + l_temp; ! new_event = (char *)xmalloc (1 + len); ! strncpy (new_event, temp, si); ! strncpy (new_event + si, subst_rhs, subst_rhs_len); ! strncpy (new_event + si + subst_rhs_len, ! temp + si + subst_lhs_len, ! l_temp - (si + subst_lhs_len)); ! new_event[len] = '\0'; ! free (temp); ! temp = new_event; ! failed = 0; ! ! if (substitute_globally) ! { ! /* Reported to fix a bug that causes it to skip every ! other match when matching a single character. Was ! si += subst_rhs_len previously. */ ! si += subst_rhs_len - 1; ! l_temp = strlen (temp); ! substitute_globally++; ! continue; ! } ! else if (subst_bywords) ! { ! si = we; ! l_temp = strlen (temp); ! continue; ! } ! else ! break; ! } ! } if (substitute_globally > 1) *************** *** 880,884 **** { register int j; ! int i, r, l, passc, cc, modified, eindex, only_printing; char *string; --- 924,928 ---- { register int j; ! int i, r, l, passc, cc, modified, eindex, only_printing, dquote; char *string; *************** *** 943,947 **** /* `!' followed by one of the characters in history_no_expand_chars is NOT an expansion. */ ! for (i = 0; string[i]; i++) { #if defined (HANDLE_MULTIBYTE) --- 987,991 ---- /* `!' followed by one of the characters in history_no_expand_chars is NOT an expansion. */ ! for (i = dquote = 0; string[i]; i++) { #if defined (HANDLE_MULTIBYTE) *************** *** 985,991 **** break; } ! /* XXX - at some point, might want to extend this to handle ! double quotes as well. */ ! else if (history_quotes_inhibit_expansion && string[i] == '\'') { /* If this is bash, single quotes inhibit history expansion. */ --- 1029,1045 ---- break; } ! /* Shell-like quoting: allow backslashes to quote double quotes ! inside a double-quoted string. */ ! else if (dquote && string[i] == '\\' && cc == '"') ! i++; ! /* More shell-like quoting: if we're paying attention to single ! quotes and letting them quote the history expansion character, ! then we need to pay attention to double quotes, because single ! quotes are not special inside double-quoted strings. */ ! else if (history_quotes_inhibit_expansion && string[i] == '"') ! { ! dquote = 1 - dquote; ! } ! else if (dquote == 0 && history_quotes_inhibit_expansion && string[i] == '\'') { /* If this is bash, single quotes inhibit history expansion. */ *************** *** 1000,1003 **** --- 1054,1058 ---- i++; } + } *************** *** 1011,1015 **** /* Extract and perform the substitution. */ ! for (passc = i = j = 0; i < l; i++) { int tchar = string[i]; --- 1066,1070 ---- /* Extract and perform the substitution. */ ! for (passc = dquote = i = j = 0; i < l; i++) { int tchar = string[i]; *************** *** 1062,1070 **** break; case '\'': { /* If history_quotes_inhibit_expansion is set, single quotes inhibit history expansion. */ ! if (history_quotes_inhibit_expansion) { int quote, slen; --- 1117,1130 ---- break; + case '"': + dquote = 1 - dquote; + ADD_CHAR (tchar); + break; + case '\'': { /* If history_quotes_inhibit_expansion is set, single quotes inhibit history expansion. */ ! if (dquote == 0 && history_quotes_inhibit_expansion) { int quote, slen; *************** *** 1161,1165 **** --- 1221,1227 ---- if (only_printing) { + #if 0 add_history (result); + #endif return (2); } *************** *** 1224,1228 **** first = 0; else if (spec[i] == '^') ! first = 1; else if (_rl_digit_p (spec[i]) && expecting_word_spec) { --- 1286,1293 ---- first = 0; else if (spec[i] == '^') ! { ! first = 1; ! i++; ! } else if (_rl_digit_p (spec[i]) && expecting_word_spec) { *************** *** 1339,1343 **** } ! #define slashify_in_quotes "\\`\"$" /* Parse STRING into tokens and return an array of strings. If WIND is --- 1404,1504 ---- } ! static int ! history_tokenize_word (string, ind) ! const char *string; ! int ind; ! { ! register int i; ! int delimiter; ! ! i = ind; ! delimiter = 0; ! ! if (member (string[i], "()\n")) ! { ! i++; ! return i; ! } ! ! if (member (string[i], "<>;&|$")) ! { ! int peek = string[i + 1]; ! ! if (peek == string[i] && peek != '$') ! { ! if (peek == '<' && string[i + 2] == '-') ! i++; ! i += 2; ! return i; ! } ! else ! { ! if ((peek == '&' && (string[i] == '>' || string[i] == '<')) || ! (peek == '>' && string[i] == '&') || ! (peek == '(' && (string[i] == '>' || string[i] == '<')) || /* ) */ ! (peek == '(' && string[i] == '$')) /* ) */ ! { ! i += 2; ! return i; ! } ! } ! ! if (string[i] != '$') ! { ! i++; ! return i; ! } ! } ! ! /* Get word from string + i; */ ! ! if (member (string[i], HISTORY_QUOTE_CHARACTERS)) ! delimiter = string[i++]; ! ! for (; string[i]; i++) ! { ! if (string[i] == '\\' && string[i + 1] == '\n') ! { ! i++; ! continue; ! } ! ! if (string[i] == '\\' && delimiter != '\'' && ! (delimiter != '"' || member (string[i], slashify_in_quotes))) ! { ! i++; ! continue; ! } ! ! if (delimiter && string[i] == delimiter) ! { ! delimiter = 0; ! continue; ! } ! ! if (!delimiter && (member (string[i], history_word_delimiters))) ! break; ! ! if (!delimiter && member (string[i], HISTORY_QUOTE_CHARACTERS)) ! delimiter = string[i]; ! } ! ! return i; ! } ! ! static char * ! history_substring (string, start, end) ! const char *string; ! int start, end; ! { ! register int len; ! register char *result; ! ! len = end - start; ! result = (char *)xmalloc (len + 1); ! strncpy (result, string + start, len); ! result[len] = '\0'; ! return result; ! } /* Parse STRING into tokens and return an array of strings. If WIND is *************** *** 1352,1356 **** char **result; register int i, start, result_index, size; - int len, delimiter; /* If we're searching for a string that's not part of a word (e.g., " "), --- 1513,1516 ---- *************** *** 1363,1368 **** for (i = result_index = size = 0, result = (char **)NULL; string[i]; ) { - delimiter = 0; - /* Skip leading whitespace. */ for (; string[i] && whitespace (string[i]); i++) --- 1523,1526 ---- *************** *** 1372,1445 **** start = i; - - if (member (string[i], "()\n")) - { - i++; - goto got_token; - } - - if (member (string[i], "<>;&|$")) - { - int peek = string[i + 1]; ! if (peek == string[i] && peek != '$') ! { ! if (peek == '<' && string[i + 2] == '-') ! i++; ! i += 2; ! goto got_token; ! } ! else ! { ! if ((peek == '&' && (string[i] == '>' || string[i] == '<')) || ! ((peek == '>') && (string[i] == '&')) || ! ((peek == '(') && (string[i] == '$'))) ! { ! i += 2; ! goto got_token; ! } ! } ! if (string[i] != '$') ! { ! i++; ! goto got_token; ! } ! } ! ! /* Get word from string + i; */ ! if (member (string[i], HISTORY_QUOTE_CHARACTERS)) ! delimiter = string[i++]; ! ! for (; string[i]; i++) { ! if (string[i] == '\\' && string[i + 1] == '\n') ! { ! i++; ! continue; ! } ! ! if (string[i] == '\\' && delimiter != '\'' && ! (delimiter != '"' || member (string[i], slashify_in_quotes))) ! { ! i++; ! continue; ! } ! ! if (delimiter && string[i] == delimiter) ! { ! delimiter = 0; ! continue; ! } ! ! if (!delimiter && (member (string[i], history_word_delimiters))) ! break; ! ! if (!delimiter && member (string[i], HISTORY_QUOTE_CHARACTERS)) ! delimiter = string[i]; } - got_token: - /* If we are looking for the word in which the character at a particular index falls, remember it. */ --- 1530,1547 ---- start = i; ! i = history_tokenize_word (string, start); ! /* If we have a non-whitespace delimiter character (which would not be ! skipped by the loop above), use it and any adjacent delimiters to ! make a separate field. Any adjacent white space will be skipped the ! next time through the loop. */ ! if (i == start && history_word_delimiters) { ! i++; ! while (string[i] && member (string[i], history_word_delimiters)) ! i++; } /* If we are looking for the word in which the character at a particular index falls, remember it. */ *************** *** 1447,1457 **** *indp = result_index; - len = i - start; if (result_index + 2 >= size) result = (char **)xrealloc (result, ((size += 10) * sizeof (char *))); ! result[result_index] = (char *)xmalloc (1 + len); ! strncpy (result[result_index], string + start, len); ! result[result_index][len] = '\0'; ! result[++result_index] = (char *)NULL; } --- 1549,1557 ---- *indp = result_index; if (result_index + 2 >= size) result = (char **)xrealloc (result, ((size += 10) * sizeof (char *))); ! ! result[result_index++] = history_substring (string, start, i); ! result[result_index] = (char *)NULL; } diff -aNrc2 readline-4.3-patched/histfile.c readline-5.0/histfile.c *** readline-4.3-patched/histfile.c Tue Mar 26 09:00:26 2002 --- readline-5.0/histfile.c Wed Mar 3 22:39:33 2004 *************** *** 1,5 **** /* histfile.c - functions to manipulate the history file. */ ! /* Copyright (C) 1989, 1992 Free Software Foundation, Inc. This file contains the GNU History Library (the Library), a set of --- 1,5 ---- /* histfile.c - functions to manipulate the history file. */ ! /* Copyright (C) 1989-2003 Free Software Foundation, Inc. This file contains the GNU History Library (the Library), a set of *************** *** 24,29 **** --- 24,34 ---- don't have to know what data types are used, just what functions you can call. I think I have done that. */ + #define READLINE_LIBRARY + #if defined (__TANDEM) + # include + #endif + #if defined (HAVE_CONFIG_H) # include *************** *** 33,37 **** #include ! #ifndef _MINIX # include #endif --- 38,42 ---- #include ! #if ! defined (_MINIX) && defined (HAVE_SYS_FILE_H) # include #endif *************** *** 53,57 **** #endif ! #ifdef HAVE_MMAP # include --- 58,62 ---- #endif ! #ifdef HISTORY_USE_MMAP # include *************** *** 68,72 **** # endif ! #endif /* HAVE_MMAP */ /* If we're compiling for __EMX__ (OS/2) or __CYGWIN__ (cygwin32 environment --- 73,77 ---- # endif ! #endif /* HISTORY_USE_MMAP */ /* If we're compiling for __EMX__ (OS/2) or __CYGWIN__ (cygwin32 environment *************** *** 94,97 **** --- 99,109 ---- #include "xmalloc.h" + /* If non-zero, we write timestamps to the history file in history_do_write() */ + int history_write_timestamps = 0; + + /* Does S look like the beginning of a history timestamp entry? Placeholder + for more extensive tests. */ + #define HIST_TIMESTAMP_START(s) (*(s) == history_comment_char) + /* Return the string that should be used in the place of this filename. This only matters when you don't specify the *************** *** 152,162 **** int from, to; { ! register char *line_start, *line_end; ! char *input, *buffer, *bufend; int file, current_line, chars_read; struct stat finfo; size_t file_size; ! buffer = (char *)NULL; input = history_filename (filename); file = open (input, O_RDONLY|O_BINARY, 0666); --- 164,181 ---- int from, to; { ! register char *line_start, *line_end, *p; ! char *input, *buffer, *bufend, *last_ts; int file, current_line, chars_read; struct stat finfo; size_t file_size; + #if defined (EFBIG) + int overflow_errno = EFBIG; + #elif defined (EOVERFLOW) + int overflow_errno = EOVERFLOW; + #else + int overflow_errno = EIO; + #endif ! buffer = last_ts = (char *)NULL; input = history_filename (filename); file = open (input, O_RDONLY|O_BINARY, 0666); *************** *** 170,192 **** if (file_size != finfo.st_size || file_size + 1 < file_size) { ! #if defined (EFBIG) ! errno = EFBIG; ! #elif defined (EOVERFLOW) ! errno = EOVERFLOW; ! #endif goto error_and_exit; } ! #ifdef HAVE_MMAP /* We map read/write and private so we can change newlines to NULs without affecting the underlying object. */ buffer = (char *)mmap (0, file_size, PROT_READ|PROT_WRITE, MAP_RFLAGS, file, 0); if ((void *)buffer == MAP_FAILED) ! goto error_and_exit; chars_read = file_size; #else buffer = (char *)malloc (file_size + 1); if (buffer == 0) ! goto error_and_exit; chars_read = read (file, buffer, file_size); --- 189,213 ---- if (file_size != finfo.st_size || file_size + 1 < file_size) { ! errno = overflow_errno; goto error_and_exit; } ! #ifdef HISTORY_USE_MMAP /* We map read/write and private so we can change newlines to NULs without affecting the underlying object. */ buffer = (char *)mmap (0, file_size, PROT_READ|PROT_WRITE, MAP_RFLAGS, file, 0); if ((void *)buffer == MAP_FAILED) ! { ! errno = overflow_errno; ! goto error_and_exit; ! } chars_read = file_size; #else buffer = (char *)malloc (file_size + 1); if (buffer == 0) ! { ! errno = overflow_errno; ! goto error_and_exit; ! } chars_read = read (file, buffer, file_size); *************** *** 195,204 **** { error_and_exit: ! chars_read = errno; if (file >= 0) close (file); FREE (input); ! #ifndef HAVE_MMAP FREE (buffer); #endif --- 216,228 ---- { error_and_exit: ! if (errno != 0) ! chars_read = errno; ! else ! chars_read = EIO; if (file >= 0) close (file); FREE (input); ! #ifndef HISTORY_USE_MMAP FREE (buffer); #endif *************** *** 221,226 **** if (*line_end == '\n') { ! current_line++; ! line_start = line_end + 1; } --- 245,254 ---- if (*line_end == '\n') { ! p = line_end + 1; ! /* If we see something we think is a timestamp, continue with this ! line. We should check more extensively here... */ ! if (HIST_TIMESTAMP_START(p) == 0) ! current_line++; ! line_start = p; } *************** *** 232,236 **** if (*line_start) ! add_history (line_start); current_line++; --- 260,279 ---- if (*line_start) ! { ! if (HIST_TIMESTAMP_START(line_start) == 0) ! { ! add_history (line_start); ! if (last_ts) ! { ! add_history_time (last_ts); ! last_ts = NULL; ! } ! } ! else ! { ! last_ts = line_start; ! current_line--; ! } ! } current_line++; *************** *** 243,247 **** FREE (input); ! #ifndef HAVE_MMAP FREE (buffer); #else --- 286,290 ---- FREE (input); ! #ifndef HISTORY_USE_MMAP FREE (buffer); #else *************** *** 260,264 **** int lines; { ! char *buffer, *filename, *bp; int file, chars_read, rv; struct stat finfo; --- 303,307 ---- int lines; { ! char *buffer, *filename, *bp, *bp1; /* bp1 == bp+1 */ int file, chars_read, rv; struct stat finfo; *************** *** 323,331 **** /* Count backwards from the end of buffer until we have passed ! LINES lines. */ ! for (bp = buffer + chars_read - 1; lines && bp > buffer; bp--) { ! if (*bp == '\n') lines--; } --- 366,377 ---- /* Count backwards from the end of buffer until we have passed ! LINES lines. bp1 is set funny initially. But since bp[1] can't ! be a comment character (since it's off the end) and *bp can't be ! both a newline and the history comment character, it should be OK. */ ! for (bp1 = bp = buffer + chars_read - 1; lines && bp > buffer; bp--) { ! if (*bp == '\n' && HIST_TIMESTAMP_START(bp1) == 0) lines--; + bp1 = bp; } *************** *** 336,344 **** this line until the end of the buffer. */ for ( ; bp > buffer; bp--) ! if (*bp == '\n') ! { ! bp++; ! break; ! } /* Write only if there are more lines in the file than we want to --- 382,393 ---- this line until the end of the buffer. */ for ( ; bp > buffer; bp--) ! { ! if (*bp == '\n' && HIST_TIMESTAMP_START(bp1) == 0) ! { ! bp++; ! break; ! } ! bp1 = bp; ! } /* Write only if there are more lines in the file than we want to *************** *** 375,381 **** char *output; int file, mode, rv; size_t cursize; - #ifdef HAVE_MMAP mode = overwrite ? O_RDWR|O_CREAT|O_TRUNC|O_BINARY : O_RDWR|O_APPEND|O_BINARY; #else --- 424,430 ---- char *output; int file, mode, rv; + #ifdef HISTORY_USE_MMAP size_t cursize; mode = overwrite ? O_RDWR|O_CREAT|O_TRUNC|O_BINARY : O_RDWR|O_APPEND|O_BINARY; #else *************** *** 391,395 **** } ! #ifdef HAVE_MMAP cursize = overwrite ? 0 : lseek (file, 0, SEEK_END); #endif --- 440,444 ---- } ! #ifdef HISTORY_USE_MMAP cursize = overwrite ? 0 : lseek (file, 0, SEEK_END); #endif *************** *** 409,416 **** /* Calculate the total number of bytes to write. */ for (buffer_size = 0, i = history_length - nelements; i < history_length; i++) ! buffer_size += 1 + strlen (the_history[i]->line); /* Allocate the buffer, and fill it. */ ! #ifdef HAVE_MMAP if (ftruncate (file, buffer_size+cursize) == -1) goto mmap_error; --- 458,473 ---- /* Calculate the total number of bytes to write. */ for (buffer_size = 0, i = history_length - nelements; i < history_length; i++) ! #if 0 ! buffer_size += 2 + HISTENT_BYTES (the_history[i]); ! #else ! { ! if (history_write_timestamps && the_history[i]->timestamp && the_history[i]->timestamp[0]) ! buffer_size += strlen (the_history[i]->timestamp) + 1; ! buffer_size += strlen (the_history[i]->line) + 1; ! } ! #endif /* Allocate the buffer, and fill it. */ ! #ifdef HISTORY_USE_MMAP if (ftruncate (file, buffer_size+cursize) == -1) goto mmap_error; *************** *** 437,440 **** --- 494,503 ---- for (j = 0, i = history_length - nelements; i < history_length; i++) { + if (history_write_timestamps && the_history[i]->timestamp && the_history[i]->timestamp[0]) + { + strcpy (buffer + j, the_history[i]->timestamp); + j += strlen (the_history[i]->timestamp); + buffer[j++] = '\n'; + } strcpy (buffer + j, the_history[i]->line); j += strlen (the_history[i]->line); *************** *** 442,446 **** } ! #ifdef HAVE_MMAP if (msync (buffer, buffer_size, 0) != 0 || munmap (buffer, buffer_size) != 0) rv = errno; --- 505,509 ---- } ! #ifdef HISTORY_USE_MMAP if (msync (buffer, buffer_size, 0) != 0 || munmap (buffer, buffer_size) != 0) rv = errno; diff -aNrc2 readline-4.3-patched/history.c readline-5.0/history.c *** readline-4.3-patched/history.c Tue Mar 12 11:27:34 2002 --- readline-5.0/history.c Tue Jul 15 16:04:24 2003 *************** *** 1,5 **** ! /* History.c -- standalone history library */ ! /* Copyright (C) 1989, 1992 Free Software Foundation, Inc. This file contains the GNU History Library (the Library), a set of --- 1,5 ---- ! /* history.c -- standalone history library */ ! /* Copyright (C) 1989-2003 Free Software Foundation, Inc. This file contains the GNU History Library (the Library), a set of *************** *** 53,56 **** --- 53,58 ---- #define DEFAULT_HISTORY_GROW_SIZE 50 + static char *hist_inittime PARAMS((void)); + /* **************************************************************** */ /* */ *************** *** 124,128 **** /* Return the number of bytes that the primary history entries are using. ! This just adds up the lengths of the_history->lines. */ int history_total_bytes () --- 126,131 ---- /* Return the number of bytes that the primary history entries are using. ! This just adds up the lengths of the_history->lines and the associated ! timestamps. */ int history_total_bytes () *************** *** 131,135 **** for (i = result = 0; the_history && the_history[i]; i++) ! result += strlen (the_history[i]->line); return (result); --- 134,138 ---- for (i = result = 0; the_history && the_history[i]; i++) ! result += HISTENT_BYTES (the_history[i]); return (result); *************** *** 207,210 **** --- 210,247 ---- } + time_t + history_get_time (hist) + HIST_ENTRY *hist; + { + char *ts; + time_t t; + + if (hist == 0 || hist->timestamp == 0) + return 0; + ts = hist->timestamp; + if (ts[0] != history_comment_char) + return 0; + t = (time_t) atol (ts + 1); /* XXX - should use strtol() here */ + return t; + } + + static char * + hist_inittime () + { + time_t t; + char ts[64], *ret; + + t = (time_t) time ((time_t *)0); + #if defined (HAVE_VSNPRINTF) /* assume snprintf if vsnprintf exists */ + snprintf (ts, sizeof (ts) - 1, "X%lu", (unsigned long) t); + #else + sprintf (ts, "X%lu", (unsigned long) t); + #endif + ret = savestring (ts); + ret[0] = history_comment_char; + + return ret; + } + /* Place STRING at the end of the history list. The data field is set to NULL. */ *************** *** 226,233 **** /* If there is something in the slot, then remove it. */ if (the_history[0]) ! { ! free (the_history[0]->line); ! free (the_history[0]); ! } /* Copy the rest of the entries, moving down one slot. */ --- 263,267 ---- /* If there is something in the slot, then remove it. */ if (the_history[0]) ! (void) free_history_entry (the_history[0]); /* Copy the rest of the entries, moving down one slot. */ *************** *** 261,268 **** --- 295,333 ---- temp->data = (char *)NULL; + temp->timestamp = hist_inittime (); + the_history[history_length] = (HIST_ENTRY *)NULL; the_history[history_length - 1] = temp; } + /* Change the time stamp of the most recent history entry to STRING. */ + void + add_history_time (string) + const char *string; + { + HIST_ENTRY *hs; + + hs = the_history[history_length - 1]; + FREE (hs->timestamp); + hs->timestamp = savestring (string); + } + + /* Free HIST and return the data so the calling application can free it + if necessary and desired. */ + histdata_t + free_history_entry (hist) + HIST_ENTRY *hist; + { + histdata_t x; + + if (hist == 0) + return ((histdata_t) 0); + FREE (hist->line); + FREE (hist->timestamp); + x = hist->data; + free (hist); + return (x); + } + /* Make the history entry at WHICH have LINE and DATA. This returns the old entry so you can dispose of the data. In the case of an *************** *** 284,287 **** --- 349,353 ---- temp->line = savestring (line); temp->data = data; + temp->timestamp = savestring (old_value->timestamp); the_history[which] = temp; *************** *** 328,335 **** /* This loses because we cannot free the data. */ for (i = 0, j = history_length - max; i < j; i++) ! { ! free (the_history[i]->line); ! free (the_history[i]); ! } history_base = i; --- 394,398 ---- /* This loses because we cannot free the data. */ for (i = 0, j = history_length - max; i < j; i++) ! free_history_entry (the_history[i]); history_base = i; *************** *** 373,378 **** for (i = 0; i < history_length; i++) { ! free (the_history[i]->line); ! free (the_history[i]); the_history[i] = (HIST_ENTRY *)NULL; } --- 436,440 ---- for (i = 0; i < history_length; i++) { ! free_history_entry (the_history[i]); the_history[i] = (HIST_ENTRY *)NULL; } diff -aNrc2 readline-4.3-patched/history.h readline-5.0/history.h *** readline-4.3-patched/history.h Wed Aug 22 09:37:23 2001 --- readline-5.0/history.h Thu Jul 31 08:38:44 2003 *************** *** 1,4 **** ! /* History.h -- the names of functions that you can call in history. */ ! /* Copyright (C) 1989, 1992 Free Software Foundation, Inc. This file contains the GNU History Library (the Library), a set of --- 1,4 ---- ! /* history.h -- the names of functions that you can call in history. */ ! /* Copyright (C) 1989-2003 Free Software Foundation, Inc. This file contains the GNU History Library (the Library), a set of *************** *** 27,30 **** --- 27,32 ---- #endif + #include /* XXX - for history timestamp code */ + #if defined READLINE_LIBRARY # include "rlstdc.h" *************** *** 44,50 **** --- 46,56 ---- typedef struct _hist_entry { char *line; + char *timestamp; /* char * rather than time_t for read/write */ histdata_t data; } HIST_ENTRY; + /* Size of the history-library-managed space in history entry HS. */ + #define HISTENT_BYTES(hs) (strlen ((hs)->line) + strlen ((hs)->timestamp)) + /* A structure used to pass the current state of the history stuff around. */ typedef struct _hist_state { *************** *** 77,80 **** --- 83,90 ---- extern void add_history PARAMS((const char *)); + /* Change the timestamp associated with the most recent history entry to + STRING. */ + extern void add_history_time PARAMS((const char *)); + /* A reasonably useless function, only here for completeness. WHICH is the magic number that tells us which element to delete. The *************** *** 82,85 **** --- 92,99 ---- extern HIST_ENTRY *remove_history PARAMS((int)); + /* Free the history entry H and return any application-specific data + associated with it. */ + extern histdata_t free_history_entry PARAMS((HIST_ENTRY *)); + /* Make the history entry at WHICH have LINE and DATA. This returns the old entry so you can dispose of the data. In the case of an *************** *** 120,123 **** --- 134,141 ---- extern HIST_ENTRY *history_get PARAMS((int)); + /* Return the timestamp associated with the HIST_ENTRY * passed as an + argument */ + extern time_t history_get_time PARAMS((HIST_ENTRY *)); + /* Return the number of bytes that the primary history entries are using. This just adds up the lengths of the_history->lines. */ *************** *** 231,234 **** --- 249,254 ---- extern char *history_search_delimiter_chars; extern int history_quotes_inhibit_expansion; + + extern int history_write_timestamps; /* Backwards compatibility */ diff -aNrc2 readline-4.3-patched/histsearch.c readline-5.0/histsearch.c *** readline-4.3-patched/histsearch.c Tue Mar 12 11:28:12 2002 --- readline-5.0/histsearch.c Mon Sep 22 08:58:37 2003 *************** *** 78,86 **** return (-1); ! if (!history_length || ((i == history_length) && !reverse)) return (-1); ! if (reverse && (i == history_length)) ! i--; #define NEXT_LINE() do { if (reverse) i--; else i++; } while (0) --- 78,86 ---- return (-1); ! if (!history_length || ((i >= history_length) && !reverse)) return (-1); ! if (reverse && (i >= history_length)) ! i = history_length - 1; #define NEXT_LINE() do { if (reverse) i--; else i++; } while (0) diff -aNrc2 readline-4.3-patched/input.c readline-5.0/input.c *** readline-4.3-patched/input.c Thu Feb 21 09:50:45 2002 --- readline-5.0/input.c Mon Jul 12 15:33:44 2004 *************** *** 22,25 **** --- 22,29 ---- #define READLINE_LIBRARY + #if defined (__TANDEM) + # include + #endif + #if defined (HAVE_CONFIG_H) # include *************** *** 155,158 **** --- 159,168 ---- } + int + _rl_pushed_input_available () + { + return (push_index != pop_index); + } + /* If a character is available to be read, then read it and stuff it into IBUFFER. Otherwise, just return. Returns number of characters read *************** *** 163,167 **** int tty; register int tem, result; ! int chars_avail; char input; #if defined(HAVE_SELECT) --- 173,177 ---- int tty; register int tem, result; ! int chars_avail, k; char input; #if defined(HAVE_SELECT) *************** *** 203,206 **** --- 213,221 ---- if (chars_avail == -1 && errno == EAGAIN) return 0; + if (chars_avail == 0) /* EOF */ + { + rl_stuff_char (EOF); + return (0); + } } #endif /* O_NDELAY */ *************** *** 226,230 **** { while (chars_avail--) ! rl_stuff_char ((*rl_getc_function) (rl_instream)); } else --- 241,250 ---- { while (chars_avail--) ! { ! k = (*rl_getc_function) (rl_instream); ! rl_stuff_char (k); ! if (k == NEWLINE || k == RETURN) ! break; ! } } else diff -aNrc2 readline-4.3-patched/keymaps.c readline-5.0/keymaps.c *** readline-4.3-patched/keymaps.c Mon Oct 30 12:05:43 2000 --- readline-5.0/keymaps.c Mon Oct 7 13:25:51 2002 *************** *** 65,68 **** --- 65,69 ---- } + #if 0 for (i = 'A'; i < ('Z' + 1); i++) { *************** *** 70,73 **** --- 71,75 ---- keymap[i].function = rl_do_lowercase_version; } + #endif return (keymap); *************** *** 80,85 **** { register int i; ! Keymap temp = rl_make_bare_keymap (); for (i = 0; i < KEYMAP_SIZE; i++) { --- 82,88 ---- { register int i; ! Keymap temp; + temp = rl_make_bare_keymap (); for (i = 0; i < KEYMAP_SIZE; i++) { *************** *** 110,119 **** #if KEYMAP_SIZE > 128 ! /* Printing characters in some 8-bit character sets. */ ! for (i = 128; i < 160; i++) ! newmap[i].function = rl_insert; ! ! /* ISO Latin-1 printing characters should self-insert. */ ! for (i = 160; i < 256; i++) newmap[i].function = rl_insert; #endif /* KEYMAP_SIZE > 128 */ --- 113,118 ---- #if KEYMAP_SIZE > 128 ! /* Printing characters in ISO Latin-1 and some 8-bit character sets. */ ! for (i = 128; i < 256; i++) newmap[i].function = rl_insert; #endif /* KEYMAP_SIZE > 128 */ diff -aNrc2 readline-4.3-patched/kill.c readline-5.0/kill.c *** readline-4.3-patched/kill.c Thu Dec 13 14:10:39 2001 --- readline-5.0/kill.c Wed Jan 28 15:38:39 2004 *************** *** 340,343 **** --- 340,384 ---- rl_mark = rl_point; } + + return 0; + } + + /* This deletes one filename component in a Unix pathname. That is, it + deletes backward to directory separator (`/') or whitespace. */ + int + rl_unix_filename_rubout (count, key) + int count, key; + { + int orig_point, c; + + if (rl_point == 0) + rl_ding (); + else + { + orig_point = rl_point; + if (count <= 0) + count = 1; + + while (count--) + { + c = rl_line_buffer[rl_point - 1]; + while (rl_point && (whitespace (c) || c == '/')) + { + rl_point--; + c = rl_line_buffer[rl_point - 1]; + } + + while (rl_point && (whitespace (c) == 0) && c != '/') + { + rl_point--; + c = rl_line_buffer[rl_point - 1]; + } + } + + rl_kill_text (orig_point, rl_point); + if (rl_editing_mode == emacs_mode) + rl_mark = rl_point; + } + return 0; } diff -aNrc2 readline-4.3-patched/mbutil.c readline-5.0/mbutil.c *** readline-4.3-patched/mbutil.c Wed May 7 14:54:55 2003 --- readline-5.0/mbutil.c Wed Jan 14 09:44:52 2004 *************** *** 1,5 **** /* mbutil.c -- readline multibyte character utility functions */ ! /* Copyright (C) 2001 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for --- 1,5 ---- /* mbutil.c -- readline multibyte character utility functions */ ! /* Copyright (C) 2001-2004 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for *************** *** 93,102 **** started byte. So correct the point and consume count */ if (seed < point) ! count --; while (count > 0) { tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps); ! if ((size_t)(tmp) == (size_t)-1 || (size_t)(tmp) == (size_t)-2) { /* invalid bytes. asume a byte represents a character */ --- 93,102 ---- started byte. So correct the point and consume count */ if (seed < point) ! count--; while (count > 0) { tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps); ! if (MB_INVALIDCH ((size_t)tmp)) { /* invalid bytes. asume a byte represents a character */ *************** *** 106,112 **** memset(&ps, 0, sizeof(mbstate_t)); } ! else if (tmp == (size_t)0) ! /* found '\0' char */ ! break; else { --- 106,111 ---- memset(&ps, 0, sizeof(mbstate_t)); } ! else if (MB_NULLWCH (tmp)) ! break; /* found wide '\0' */ else { *************** *** 161,165 **** { tmp = mbrtowc (&wc, string + point, length - point, &ps); ! if ((size_t)(tmp) == (size_t)-1 || (size_t)(tmp) == (size_t)-2) { /* in this case, bytes are invalid or shorted to compose --- 160,164 ---- { tmp = mbrtowc (&wc, string + point, length - point, &ps); ! if (MB_INVALIDCH ((size_t)tmp)) { /* in this case, bytes are invalid or shorted to compose *************** *** 170,175 **** in this case effect of mbstate is undefined */ memset(&ps, 0, sizeof (mbstate_t)); } ! else if (tmp == 0) break; /* Found '\0' char. Can this happen? */ else --- 169,178 ---- in this case effect of mbstate is undefined */ memset(&ps, 0, sizeof (mbstate_t)); + + /* Since we're assuming that this byte represents a single + non-zero-width character, don't forget about it. */ + prev = point; } ! else if (MB_NULLWCH (tmp)) break; /* Found '\0' char. Can this happen? */ else *************** *** 274,278 **** { tmp = mbrlen (string + pos, length - pos, ps); ! if((size_t)(tmp) == (size_t)-1 || (size_t)(tmp) == (size_t)-2) { /* in this case, bytes are invalid or shorted to compose --- 277,281 ---- { tmp = mbrlen (string + pos, length - pos, ps); ! if (MB_INVALIDCH ((size_t)tmp)) { /* in this case, bytes are invalid or shorted to compose *************** *** 285,289 **** memset (ps, 0, sizeof (mbstate_t)); } ! else if (tmp == 0) pos++; else --- 288,292 ---- memset (ps, 0, sizeof (mbstate_t)); } ! else if (MB_NULLWCH (tmp)) pos++; else diff -aNrc2 readline-4.3-patched/misc.c readline-5.0/misc.c *** readline-4.3-patched/misc.c Tue Feb 5 13:59:32 2002 --- readline-5.0/misc.c Wed Jul 7 08:56:32 2004 *************** *** 1,5 **** /* misc.c -- miscellaneous bindable readline functions. */ ! /* Copyright (C) 1987-2002 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for --- 1,5 ---- /* misc.c -- miscellaneous bindable readline functions. */ ! /* Copyright (C) 1987-2004 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for *************** *** 254,257 **** --- 254,259 ---- if (_rl_saved_line_for_history) { + /* Can't call with `1' because rl_undo_list might point to an undo + list from a history entry, as in rl_replace_from_history() below. */ rl_replace_line (_rl_saved_line_for_history->line, 0); rl_undo_list = (UNDO_LIST *)_rl_saved_line_for_history->data; *************** *** 275,278 **** --- 277,287 ---- _rl_saved_line_for_history->data = (char *)rl_undo_list; } + else if (STREQ (rl_line_buffer, _rl_saved_line_for_history->line) == 0) + { + free (_rl_saved_line_for_history->line); + _rl_saved_line_for_history->line = savestring (rl_line_buffer); + _rl_saved_line_for_history->data = (char *)rl_undo_list; /* XXX possible memleak */ + } + return 0; } *************** *** 299,303 **** #if defined (VI_MODE) ! if (rl_editing_mode == vi_mode) rl_point = 0; #endif /* VI_MODE */ --- 308,312 ---- #if defined (VI_MODE) ! if (rl_editing_mode == vi_mode && _rl_keymap != vi_insertion_keymap) rl_point = 0; #endif /* VI_MODE */ *************** *** 312,315 **** --- 321,326 ---- int flags; /* currently unused */ { + /* Can't call with `1' because rl_undo_list might point to an undo list + from a history entry, just like we're setting up here. */ rl_replace_line (entry->line, 0); rl_undo_list = (UNDO_LIST *)entry->data; *************** *** 436,439 **** --- 447,451 ---- _rl_history_set_point (); } + return 0; } diff -aNrc2 readline-4.3-patched/nls.c readline-5.0/nls.c *** readline-4.3-patched/nls.c Mon Oct 15 14:32:29 2001 --- readline-5.0/nls.c Fri Oct 18 22:05:50 2002 *************** *** 76,79 **** --- 76,96 ---- #endif /* !HAVE_SETLOCALE */ + static char *_rl_get_locale_var PARAMS((const char *)); + + static char * + _rl_get_locale_var (v) + const char *v; + { + char *lspec; + + lspec = sh_get_env_value ("LC_ALL"); + if (lspec == 0 || *lspec == 0) + lspec = sh_get_env_value (v); + if (lspec == 0 || *lspec == 0) + lspec = sh_get_env_value ("LANG"); + + return lspec; + } + /* Check for LC_ALL, LC_CTYPE, and LANG and use the first with a value to decide the defaults for 8-bit character input and output. Returns *************** *** 85,92 **** value, and go into eight-bit mode if it's not C or POSIX. */ #if defined (HAVE_SETLOCALE) ! char *t; /* Set the LC_CTYPE locale category from environment variables. */ ! t = setlocale (LC_CTYPE, ""); if (t && *t && (t[0] != 'C' || t[1]) && (STREQ (t, "POSIX") == 0)) { --- 102,120 ---- value, and go into eight-bit mode if it's not C or POSIX. */ #if defined (HAVE_SETLOCALE) ! char *lspec, *t; /* Set the LC_CTYPE locale category from environment variables. */ ! lspec = _rl_get_locale_var ("LC_CTYPE"); ! /* Since _rl_get_locale_var queries the right environment variables, ! we query the current locale settings with setlocale(), and, if ! that doesn't return anything, we set lspec to the empty string to ! force the subsequent call to setlocale() to define the `native' ! environment. */ ! if (lspec == 0 || *lspec == 0) ! lspec = setlocale (LC_CTYPE, (char *)NULL); ! if (lspec == 0) ! lspec = ""; ! t = setlocale (LC_CTYPE, lspec); ! if (t && *t && (t[0] != 'C' || t[1]) && (STREQ (t, "POSIX") == 0)) { *************** *** 106,112 **** appropriate variables and set eight-bit mode if they have the right values. */ ! lspec = sh_get_env_value ("LC_ALL"); ! if (lspec == 0) lspec = sh_get_env_value ("LC_CTYPE"); ! if (lspec == 0) lspec = sh_get_env_value ("LANG"); if (lspec == 0 || (t = normalize_codeset (lspec)) == 0) return (0); --- 134,139 ---- appropriate variables and set eight-bit mode if they have the right values. */ ! lspec = _rl_get_locale_var ("LC_CTYPE"); ! if (lspec == 0 || (t = normalize_codeset (lspec)) == 0) return (0); diff -aNrc2 readline-4.3-patched/parens.c readline-5.0/parens.c *** readline-4.3-patched/parens.c Tue Feb 5 13:14:31 2002 --- readline-5.0/parens.c Wed Mar 3 22:39:51 2004 *************** *** 22,25 **** --- 22,29 ---- #define READLINE_LIBRARY + #if defined (__TANDEM) + # include + #endif + #include "rlconf.h" diff -aNrc2 readline-4.3-patched/posixdir.h readline-5.0/posixdir.h *** readline-4.3-patched/posixdir.h Tue Jan 8 10:47:15 2002 --- readline-5.0/posixdir.h Mon Mar 22 16:00:44 2004 *************** *** 26,30 **** #if defined (HAVE_DIRENT_H) # include ! # define D_NAMLEN(d) (strlen ((d)->d_name)) #else # if defined (HAVE_SYS_NDIR_H) --- 26,34 ---- #if defined (HAVE_DIRENT_H) # include ! # if defined (HAVE_STRUCT_DIRENT_D_NAMLEN) ! # define D_NAMLEN(d) ((d)->d_namlen) ! # else ! # define D_NAMLEN(d) (strlen ((d)->d_name)) ! # endif /* !HAVE_STRUCT_DIRENT_D_NAMLEN */ #else # if defined (HAVE_SYS_NDIR_H) *************** *** 43,51 **** #endif /* !HAVE_DIRENT_H */ ! #if defined (STRUCT_DIRENT_HAS_D_INO) && !defined (STRUCT_DIRENT_HAS_D_FILENO) # define d_fileno d_ino #endif ! #if defined (_POSIX_SOURCE) && (!defined (STRUCT_DIRENT_HAS_D_INO) || defined (BROKEN_DIRENT_D_INO)) /* Posix does not require that the d_ino field be present, and some systems do not provide it. */ --- 47,55 ---- #endif /* !HAVE_DIRENT_H */ ! #if defined (HAVE_STRUCT_DIRENT_D_INO) && !defined (HAVE_STRUCT_DIRENT_D_FILENO) # define d_fileno d_ino #endif ! #if defined (_POSIX_SOURCE) && (!defined (HAVE_STRUCT_DIRENT_D_INO) || defined (BROKEN_DIRENT_D_INO)) /* Posix does not require that the d_ino field be present, and some systems do not provide it. */ diff -aNrc2 readline-4.3-patched/readline.c readline-5.0/readline.c *** readline-4.3-patched/readline.c Thu Sep 5 11:06:08 2002 --- readline-5.0/readline.c Thu Sep 18 11:04:18 2003 *************** *** 69,77 **** #ifndef RL_LIBRARY_VERSION ! # define RL_LIBRARY_VERSION "4.3" #endif #ifndef RL_READLINE_VERSION ! # define RL_READLINE_VERSION 0x0403 #endif --- 69,77 ---- #ifndef RL_LIBRARY_VERSION ! # define RL_LIBRARY_VERSION "5.0" #endif #ifndef RL_READLINE_VERSION ! # define RL_READLINE_VERSION 0x0500 #endif *************** *** 86,89 **** --- 86,90 ---- static void readline_default_bindings PARAMS((void)); + static void reset_default_bindings PARAMS((void)); /* **************************************************************** */ *************** *** 348,352 **** #if defined (VI_MODE) if (rl_editing_mode == vi_mode) ! rl_vi_insertion_mode (1, 0); #endif /* VI_MODE */ --- 349,353 ---- #if defined (VI_MODE) if (rl_editing_mode == vi_mode) ! rl_vi_insertion_mode (1, 'i'); #endif /* VI_MODE */ *************** *** 651,655 **** already taken care of pushing any necessary input back onto the input queue with _rl_unget_char. */ ! r = _rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key)); else if (r && map[ANYOTHERKEY].function) { --- 652,670 ---- already taken care of pushing any necessary input back onto the input queue with _rl_unget_char. */ ! { ! #if 0 ! r = _rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key)); ! #else ! /* XXX - experimental code -- might never be executed. Save ! for later. */ ! Keymap m = FUNCTION_TO_KEYMAP (map, key); ! int type = m[ANYOTHERKEY].type; ! func = m[ANYOTHERKEY].function; ! if (type == ISFUNC && func == rl_do_lowercase_version) ! r = _rl_dispatch (_rl_to_lower (key), map); ! else ! r = _rl_dispatch (ANYOTHERKEY, m); ! #endif ! } else if (r && map[ANYOTHERKEY].function) { *************** *** 840,844 **** been set yet, then do so now. */ if (rl_completer_word_break_characters == (char *)NULL) ! rl_completer_word_break_characters = rl_basic_word_break_characters; } --- 855,859 ---- been set yet, then do so now. */ if (rl_completer_word_break_characters == (char *)NULL) ! rl_completer_word_break_characters = (char *)rl_basic_word_break_characters; } *************** *** 852,855 **** --- 867,879 ---- } + /* Reset the default bindings for the terminal special characters we're + interested in back to rl_insert and read the new ones. */ + static void + reset_default_bindings () + { + rl_tty_unset_default_bindings (_rl_keymap); + rl_tty_set_default_bindings (_rl_keymap); + } + /* Bind some common arrow key sequences in MAP. */ static void *************** *** 863,885 **** #if defined (__MSDOS__) ! _rl_bind_if_unbound ("\033[0A", rl_get_previous_history); ! _rl_bind_if_unbound ("\033[0B", rl_backward_char); ! _rl_bind_if_unbound ("\033[0C", rl_forward_char); ! _rl_bind_if_unbound ("\033[0D", rl_get_next_history); ! #endif ! ! _rl_bind_if_unbound ("\033[A", rl_get_previous_history); ! _rl_bind_if_unbound ("\033[B", rl_get_next_history); ! _rl_bind_if_unbound ("\033[C", rl_forward_char); ! _rl_bind_if_unbound ("\033[D", rl_backward_char); ! _rl_bind_if_unbound ("\033[H", rl_beg_of_line); ! _rl_bind_if_unbound ("\033[F", rl_end_of_line); ! ! _rl_bind_if_unbound ("\033OA", rl_get_previous_history); ! _rl_bind_if_unbound ("\033OB", rl_get_next_history); ! _rl_bind_if_unbound ("\033OC", rl_forward_char); ! _rl_bind_if_unbound ("\033OD", rl_backward_char); ! _rl_bind_if_unbound ("\033OH", rl_beg_of_line); ! _rl_bind_if_unbound ("\033OF", rl_end_of_line); _rl_keymap = xkeymap; --- 887,909 ---- #if defined (__MSDOS__) ! rl_bind_keyseq_if_unbound ("\033[0A", rl_get_previous_history); ! rl_bind_keyseq_if_unbound ("\033[0B", rl_backward_char); ! rl_bind_keyseq_if_unbound ("\033[0C", rl_forward_char); ! rl_bind_keyseq_if_unbound ("\033[0D", rl_get_next_history); ! #endif ! ! rl_bind_keyseq_if_unbound ("\033[A", rl_get_previous_history); ! rl_bind_keyseq_if_unbound ("\033[B", rl_get_next_history); ! rl_bind_keyseq_if_unbound ("\033[C", rl_forward_char); ! rl_bind_keyseq_if_unbound ("\033[D", rl_backward_char); ! rl_bind_keyseq_if_unbound ("\033[H", rl_beg_of_line); ! rl_bind_keyseq_if_unbound ("\033[F", rl_end_of_line); ! ! rl_bind_keyseq_if_unbound ("\033OA", rl_get_previous_history); ! rl_bind_keyseq_if_unbound ("\033OB", rl_get_next_history); ! rl_bind_keyseq_if_unbound ("\033OC", rl_forward_char); ! rl_bind_keyseq_if_unbound ("\033OD", rl_backward_char); ! rl_bind_keyseq_if_unbound ("\033OH", rl_beg_of_line); ! rl_bind_keyseq_if_unbound ("\033OF", rl_end_of_line); _rl_keymap = xkeymap; diff -aNrc2 readline-4.3-patched/readline.h readline-5.0/readline.h *** readline-4.3-patched/readline.h Wed Mar 13 17:02:37 2002 --- readline-5.0/readline.h Tue Jul 13 10:54:27 2004 *************** *** 1,5 **** /* Readline.h -- the names of functions callable from within readline. */ ! /* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for --- 1,5 ---- /* Readline.h -- the names of functions callable from within readline. */ ! /* Copyright (C) 1987-2004 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for *************** *** 41,47 **** /* Hex-encoded Readline version number. */ ! #define RL_READLINE_VERSION 0x0403 /* Readline 4.3 */ ! #define RL_VERSION_MAJOR 4 ! #define RL_VERSION_MINOR 3 /* Readline data structures. */ --- 41,47 ---- /* Hex-encoded Readline version number. */ ! #define RL_READLINE_VERSION 0x0500 /* Readline 5.0 */ ! #define RL_VERSION_MAJOR 5 ! #define RL_VERSION_MINOR 0 /* Readline data structures. */ *************** *** 161,164 **** --- 161,165 ---- extern int rl_kill_full_line PARAMS((int, int)); extern int rl_unix_word_rubout PARAMS((int, int)); + extern int rl_unix_filename_rubout PARAMS((int, int)); extern int rl_unix_line_discard PARAMS((int, int)); extern int rl_copy_region_to_kill PARAMS((int, int)); *************** *** 259,262 **** --- 260,265 ---- extern int rl_vi_bracktype PARAMS((int)); + extern void rl_vi_start_inserting PARAMS((int, int, int)); + /* VI-mode pseudo-bindable commands, used as utility functions. */ extern int rl_vi_fWord PARAMS((int, int)); *************** *** 291,300 **** extern int rl_unbind_key PARAMS((int)); extern int rl_unbind_key_in_map PARAMS((int, Keymap)); extern int rl_unbind_function_in_map PARAMS((rl_command_func_t *, Keymap)); extern int rl_unbind_command_in_map PARAMS((const char *, Keymap)); ! extern int rl_set_key PARAMS((const char *, rl_command_func_t *, Keymap)); extern int rl_generic_bind PARAMS((int, const char *, char *, Keymap)); extern int rl_variable_bind PARAMS((const char *, const char *)); /* Backwards compatibility, use rl_generic_bind instead. */ extern int rl_macro_bind PARAMS((const char *, const char *, Keymap)); --- 294,311 ---- extern int rl_unbind_key PARAMS((int)); extern int rl_unbind_key_in_map PARAMS((int, Keymap)); + extern int rl_bind_key_if_unbound PARAMS((int, rl_command_func_t *)); + extern int rl_bind_key_if_unbound_in_map PARAMS((int, rl_command_func_t *, Keymap)); extern int rl_unbind_function_in_map PARAMS((rl_command_func_t *, Keymap)); extern int rl_unbind_command_in_map PARAMS((const char *, Keymap)); ! extern int rl_bind_keyseq PARAMS((const char *, rl_command_func_t *)); ! extern int rl_bind_keyseq_in_map PARAMS((const char *, rl_command_func_t *, Keymap)); ! extern int rl_bind_keyseq_if_unbound PARAMS((const char *, rl_command_func_t *)); ! extern int rl_bind_keyseq_if_unbound_in_map PARAMS((const char *, rl_command_func_t *, Keymap)); extern int rl_generic_bind PARAMS((int, const char *, char *, Keymap)); extern int rl_variable_bind PARAMS((const char *, const char *)); + /* Backwards compatibility, use rl_bind_keyseq_in_map instead. */ + extern int rl_set_key PARAMS((const char *, rl_command_func_t *, Keymap)); + /* Backwards compatibility, use rl_generic_bind instead. */ extern int rl_macro_bind PARAMS((const char *, const char *, Keymap)); *************** *** 359,363 **** extern int rl_crlf PARAMS((void)); ! #if (defined (__STDC__) || defined (__cplusplus)) && defined (USE_VARARGS) && defined (PREFER_STDARG) extern int rl_message (const char *, ...) __attribute__((__format__ (printf, 1, 2))); #else --- 370,374 ---- extern int rl_crlf PARAMS((void)); ! #if defined (USE_VARARGS) && defined (PREFER_STDARG) extern int rl_message (const char *, ...) __attribute__((__format__ (printf, 1, 2))); #else *************** *** 385,388 **** --- 396,400 ---- extern void rl_deprep_terminal PARAMS((void)); extern void rl_tty_set_default_bindings PARAMS((Keymap)); + extern void rl_tty_unset_default_bindings PARAMS((Keymap)); extern int rl_reset_terminal PARAMS((const char *)); *************** *** 604,608 **** rl_complete_internal. The default list is the contents of rl_basic_word_break_characters. */ ! extern const char *rl_completer_word_break_characters; /* List of characters which can be used to quote a substring of the line. --- 616,625 ---- rl_complete_internal. The default list is the contents of rl_basic_word_break_characters. */ ! extern /*const*/ char *rl_completer_word_break_characters; ! ! /* Hook function to allow an application to set the completion word ! break characters before readline breaks up the line. Allows ! position-dependent word break characters. */ ! extern rl_cpvfunc_t *rl_completion_word_break_hook; /* List of characters which can be used to quote a substring of the line. *************** *** 688,691 **** --- 705,713 ---- extern int rl_completion_type; + /* Up to this many items will be displayed in response to a + possible-completions call. After that, we ask the user if she + is sure she wants to see them all. The default value is 100. */ + extern int rl_completion_query_items; + /* Character appended to completed words when at the end of the line. The default is a space. Nothing is added if this is '\0'. */ *************** *** 696,703 **** extern int rl_completion_suppress_append; ! /* Up to this many items will be displayed in response to a ! possible-completions call. After that, we ask the user if she ! is sure she wants to see them all. The default value is 100. */ ! extern int rl_completion_query_items; /* If non-zero, a slash will be appended to completed filenames that are --- 718,733 ---- extern int rl_completion_suppress_append; ! /* Set to any quote character readline thinks it finds before any application ! completion function is called. */ ! extern int rl_completion_quote_character; ! ! /* Set to a non-zero value if readline found quoting anywhere in the word to ! be completed; set before any application completion function is called. */ ! extern int rl_completion_found_quote; ! ! /* If non-zero, the completion functions don't append any closing quote. ! This is set to 0 by rl_complete_internal and may be changed by an ! application-specific completion function. */ ! extern int rl_completion_suppress_quote; /* If non-zero, a slash will be appended to completed filenames that are *************** *** 750,753 **** --- 780,784 ---- #define RL_STATE_UNDOING 0x10000 /* doing an undo */ #define RL_STATE_INPUTPENDING 0x20000 /* rl_execute_next called */ + #define RL_STATE_TTYCSAVED 0x40000 /* tty special chars saved */ #define RL_STATE_DONE 0x80000 /* done; accepted line */ *************** *** 785,788 **** --- 816,825 ---- int catchsigs; int catchsigwinch; + + /* search state */ + + /* completion state */ + + /* options state */ /* reserved for future expansion, so the struct size doesn't change */ diff -aNrc2 readline-4.3-patched/rldefs.h readline-5.0/rldefs.h *** readline-4.3-patched/rldefs.h Tue May 7 15:40:07 2002 --- readline-5.0/rldefs.h Wed Aug 27 15:57:02 2003 *************** *** 78,82 **** #endif ! #if defined (HAVE_STRPBRK) # define _rl_strpbrk(a,b) strpbrk((a),(b)) #else --- 78,82 ---- #endif ! #if defined (HAVE_STRPBRK) && !defined (HAVE_MULTIBYTE) # define _rl_strpbrk(a,b) strpbrk((a),(b)) #else diff -aNrc2 readline-4.3-patched/rlmbutil.h readline-5.0/rlmbutil.h *** readline-4.3-patched/rlmbutil.h Thu Dec 20 09:54:38 2001 --- readline-5.0/rlmbutil.h Tue May 13 09:38:37 2003 *************** *** 36,44 **** # include # include ! # if defined (HAVE_MBSRTOWCS) /* system is supposed to support XPG5 */ # define HANDLE_MULTIBYTE 1 # endif #endif /* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ #if HANDLE_MULTIBYTE && !defined (HAVE_MBSTATE_T) --- 36,51 ---- # include # include ! # if defined (HAVE_MBSRTOWCS) && defined (HAVE_MBRTOWC) && defined (HAVE_MBRLEN) && defined (HAVE_WCWIDTH) ! /* system is supposed to support XPG5 */ # define HANDLE_MULTIBYTE 1 # endif #endif + /* If we don't want multibyte chars even on a system that supports them, let + the configuring user turn multibyte support off. */ + #if defined (NO_MULTIBYTE_SUPPORT) + # undef HANDLE_MULTIBYTE + #endif + /* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */ #if HANDLE_MULTIBYTE && !defined (HAVE_MBSTATE_T) *************** *** 91,94 **** --- 98,104 ---- extern int _rl_is_mbchar_matched PARAMS((char *, int, int, char *, int)); + #define MB_INVALIDCH(x) ((x) == (size_t)-1 || (x) == (size_t)-2) + #define MB_NULLWCH(x) ((x) == 0) + #else /* !HANDLE_MULTIBYTE */ *************** *** 101,104 **** --- 111,117 ---- #define _rl_find_prev_mbchar(b, i, f) (((i) == 0) ? (i) : ((i) - 1)) #define _rl_find_next_mbchar(b, i1, i2, f) ((i1) + (i2)) + + #define MB_INVALIDCH(x) (0) + #define MB_NULLWCH(x) (0) #endif /* !HANDLE_MULTIBYTE */ diff -aNrc2 readline-4.3-patched/rlprivate.h readline-5.0/rlprivate.h *** readline-4.3-patched/rlprivate.h Wed Mar 13 16:46:20 2002 --- readline-5.0/rlprivate.h Sat May 8 19:38:09 2004 *************** *** 2,6 **** but not intended for use by applications. */ ! /* Copyright (C) 1999 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for --- 2,6 ---- but not intended for use by applications. */ ! /* Copyright (C) 1999-2004 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for *************** *** 104,108 **** /* bind.c */ - extern void _rl_bind_if_unbound PARAMS((const char *, rl_command_func_t *)); /* complete.c */ --- 104,107 ---- *************** *** 132,135 **** --- 131,135 ---- extern void _rl_insert_typein PARAMS((int)); extern int _rl_unget_char PARAMS((int)); + extern int _rl_pushed_input_available PARAMS((void)); /* macro.c */ *************** *** 220,223 **** --- 220,224 ---- /* complete.c */ extern int _rl_complete_show_all; + extern int _rl_complete_show_unmodified; extern int _rl_complete_mark_directories; extern int _rl_complete_mark_symlink_dirs; *************** *** 281,284 **** --- 282,288 ---- extern int _rl_doing_an_undo; extern int _rl_undo_group_level; + + /* vi_mode.c */ + extern int _rl_vi_last_command; #endif /* _RL_PRIVATE_H_ */ diff -aNrc2 readline-4.3-patched/rlstdc.h readline-5.0/rlstdc.h *** readline-4.3-patched/rlstdc.h Wed Sep 12 09:57:31 2001 --- readline-5.0/rlstdc.h Fri May 30 15:08:02 2003 *************** *** 38,42 **** #ifndef __attribute__ ! # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__ # define __attribute__(x) # endif --- 38,42 ---- #ifndef __attribute__ ! # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) # define __attribute__(x) # endif diff -aNrc2 readline-4.3-patched/rltty.c readline-5.0/rltty.c *** readline-4.3-patched/rltty.c Mon Feb 18 12:37:29 2002 --- readline-5.0/rltty.c Fri Jan 31 23:35:20 2003 *************** *** 187,190 **** --- 187,192 ---- static void prepare_terminal_settings PARAMS((int, TIOTYPE, TIOTYPE *)); + static void set_special_char PARAMS((Keymap, TIOTYPE *, int, rl_command_func_t)); + static void save_tty_chars (tiop) *************** *** 401,404 **** --- 403,409 ---- static void prepare_terminal_settings PARAMS((int, TIOTYPE, TIOTYPE *)); + static void set_special_char PARAMS((Keymap, TIOTYPE *, int, rl_command_func_t)); + static void _rl_bind_tty_special_chars PARAMS((Keymap, TIOTYPE)); + #if defined (FLUSHO) # define OUTPUT_BEING_FLUSHED(tp) (tp->c_lflag & FLUSHO) *************** *** 653,657 **** --- 658,665 ---- otio = tio; + rl_tty_unset_default_bindings (_rl_keymap); save_tty_chars (&otio); + RL_SETSTATE(RL_STATE_TTYCSAVED); + _rl_bind_tty_special_chars (_rl_keymap, tio); prepare_terminal_settings (meta_flag, otio, &tio); *************** *** 777,844 **** /* **************************************************************** */ ! /* Set the system's default editing characters to their readline equivalents ! in KMAP. Should be static, now that we have rl_tty_set_default_bindings. */ ! void ! rltty_set_default_bindings (kmap) ! Keymap kmap; ! { ! TIOTYPE ttybuff; ! int tty = fileno (rl_instream); #if defined (NEW_TTY_DRIVER) ! #define SET_SPECIAL(sc, func) \ ! do \ ! { \ ! int ic; \ ! ic = sc; \ ! if (ic != -1 && kmap[(unsigned char)ic].type == ISFUNC) \ ! kmap[(unsigned char)ic].function = func; \ ! } \ ! while (0) ! if (get_tty_settings (tty, &ttybuff) == 0) { ! if (ttybuff.flags & SGTTY_SET) ! { ! SET_SPECIAL (ttybuff.sgttyb.sg_erase, rl_rubout); ! SET_SPECIAL (ttybuff.sgttyb.sg_kill, rl_unix_line_discard); ! } # if defined (TIOCGLTC) ! if (ttybuff.flags & LTCHARS_SET) ! { ! SET_SPECIAL (ttybuff.ltchars.t_werasc, rl_unix_word_rubout); ! SET_SPECIAL (ttybuff.ltchars.t_lnextc, rl_quoted_insert); ! } ! # endif /* TIOCGLTC */ } #else /* !NEW_TTY_DRIVER */ ! #define SET_SPECIAL(sc, func) \ ! do \ ! { \ ! unsigned char uc; \ ! uc = ttybuff.c_cc[sc]; \ ! if (uc != (unsigned char)_POSIX_VDISABLE && kmap[uc].type == ISFUNC) \ ! kmap[uc].function = func; \ ! } \ ! while (0) ! if (get_tty_settings (tty, &ttybuff) == 0) ! { ! SET_SPECIAL (VERASE, rl_rubout); ! SET_SPECIAL (VKILL, rl_unix_line_discard); # if defined (VLNEXT) && defined (TERMIOS_TTY_DRIVER) ! SET_SPECIAL (VLNEXT, rl_quoted_insert); # endif /* VLNEXT && TERMIOS_TTY_DRIVER */ # if defined (VWERASE) && defined (TERMIOS_TTY_DRIVER) ! SET_SPECIAL (VWERASE, rl_unix_word_rubout); # endif /* VWERASE && TERMIOS_TTY_DRIVER */ ! } #endif /* !NEW_TTY_DRIVER */ } --- 785,879 ---- /* **************************************************************** */ ! #define SET_SPECIAL(sc, func) set_special_char(kmap, &ttybuff, sc, func) #if defined (NEW_TTY_DRIVER) + static void + set_special_char (kmap, tiop, sc, func) + Keymap kmap; + TIOTYPE *tiop; + int sc; + rl_command_func_t *func; + { + if (sc != -1 && kmap[(unsigned char)sc].type == ISFUNC) + kmap[(unsigned char)sc].function = func; + } ! #define RESET_SPECIAL(c) \ ! if (c != -1 && kmap[(unsigned char)c].type == ISFUNC) ! kmap[(unsigned char)c].function = rl_insert; ! static void ! _rl_bind_tty_special_chars (kmap, ttybuff) ! Keymap kmap; ! TIOTYPE ttybuff; ! { ! if (ttybuff.flags & SGTTY_SET) { ! SET_SPECIAL (ttybuff.sgttyb.sg_erase, rl_rubout); ! SET_SPECIAL (ttybuff.sgttyb.sg_kill, rl_unix_line_discard); ! } # if defined (TIOCGLTC) ! if (ttybuff.flags & LTCHARS_SET) ! { ! SET_SPECIAL (ttybuff.ltchars.t_werasc, rl_unix_word_rubout); ! SET_SPECIAL (ttybuff.ltchars.t_lnextc, rl_quoted_insert); } + # endif /* TIOCGLTC */ + } #else /* !NEW_TTY_DRIVER */ + static void + set_special_char (kmap, tiop, sc, func) + Keymap kmap; + TIOTYPE *tiop; + int sc; + rl_command_func_t *func; + { + unsigned char uc; ! uc = tiop->c_cc[sc]; ! if (uc != (unsigned char)_POSIX_VDISABLE && kmap[uc].type == ISFUNC) ! kmap[uc].function = func; ! } ! /* used later */ ! #define RESET_SPECIAL(uc) \ ! if (uc != (unsigned char)_POSIX_VDISABLE && kmap[uc].type == ISFUNC) \ ! kmap[uc].function = rl_insert; ! ! static void ! _rl_bind_tty_special_chars (kmap, ttybuff) ! Keymap kmap; ! TIOTYPE ttybuff; ! { ! SET_SPECIAL (VERASE, rl_rubout); ! SET_SPECIAL (VKILL, rl_unix_line_discard); # if defined (VLNEXT) && defined (TERMIOS_TTY_DRIVER) ! SET_SPECIAL (VLNEXT, rl_quoted_insert); # endif /* VLNEXT && TERMIOS_TTY_DRIVER */ # if defined (VWERASE) && defined (TERMIOS_TTY_DRIVER) ! SET_SPECIAL (VWERASE, rl_unix_word_rubout); # endif /* VWERASE && TERMIOS_TTY_DRIVER */ ! } ! #endif /* !NEW_TTY_DRIVER */ + + /* Set the system's default editing characters to their readline equivalents + in KMAP. Should be static, now that we have rl_tty_set_default_bindings. */ + void + rltty_set_default_bindings (kmap) + Keymap kmap; + { + TIOTYPE ttybuff; + int tty; + static int called = 0; + + tty = fileno (rl_instream); + + if (get_tty_settings (tty, &ttybuff) == 0) + _rl_bind_tty_special_chars (kmap, ttybuff); } *************** *** 850,853 **** --- 885,912 ---- { rltty_set_default_bindings (kmap); + } + + /* Rebind all of the tty special chars that readline worries about back + to self-insert. Call this before saving the current terminal special + chars with save_tty_chars(). This only works on POSIX termios or termio + systems. */ + void + rl_tty_unset_default_bindings (kmap) + Keymap kmap; + { + /* Don't bother before we've saved the tty special chars at least once. */ + if (RL_ISSTATE(RL_STATE_TTYCSAVED) == 0) + return; + + RESET_SPECIAL (_rl_tty_chars.t_erase); + RESET_SPECIAL (_rl_tty_chars.t_kill); + + # if defined (VLNEXT) && defined (TERMIOS_TTY_DRIVER) + RESET_SPECIAL (_rl_tty_chars.t_lnext); + # endif /* VLNEXT && TERMIOS_TTY_DRIVER */ + + # if defined (VWERASE) && defined (TERMIOS_TTY_DRIVER) + RESET_SPECIAL (_rl_tty_chars.t_werase); + # endif /* VWERASE && TERMIOS_TTY_DRIVER */ } diff -aNrc2 readline-4.3-patched/rltty.h readline-5.0/rltty.h *** readline-4.3-patched/rltty.h Thu Aug 5 08:12:47 1999 --- readline-5.0/rltty.h Fri Jan 31 22:43:11 2003 *************** *** 62,81 **** typedef struct _rl_tty_chars { ! char t_eof; ! char t_eol; ! char t_eol2; ! char t_erase; ! char t_werase; ! char t_kill; ! char t_reprint; ! char t_intr; ! char t_quit; ! char t_susp; ! char t_dsusp; ! char t_start; ! char t_stop; ! char t_lnext; ! char t_flush; ! char t_status; } _RL_TTY_CHARS; --- 62,81 ---- typedef struct _rl_tty_chars { ! unsigned char t_eof; ! unsigned char t_eol; ! unsigned char t_eol2; ! unsigned char t_erase; ! unsigned char t_werase; ! unsigned char t_kill; ! unsigned char t_reprint; ! unsigned char t_intr; ! unsigned char t_quit; ! unsigned char t_susp; ! unsigned char t_dsusp; ! unsigned char t_start; ! unsigned char t_stop; ! unsigned char t_lnext; ! unsigned char t_flush; ! unsigned char t_status; } _RL_TTY_CHARS; diff -aNrc2 readline-4.3-patched/rltypedefs.h readline-5.0/rltypedefs.h *** readline-4.3-patched/rltypedefs.h Wed Aug 22 09:38:02 2001 --- readline-5.0/rltypedefs.h Wed Jan 28 13:31:26 2004 *************** *** 1,5 **** /* rltypedefs.h -- Type declarations for readline functions. */ ! /* Copyright (C) 2000 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for --- 1,5 ---- /* rltypedefs.h -- Type declarations for readline functions. */ ! /* Copyright (C) 2000-2004 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for *************** *** 80,83 **** --- 80,89 ---- typedef void rl_vcpfunc_t PARAMS((char *)); typedef void rl_vcppfunc_t PARAMS((char **)); + + typedef char *rl_cpvfunc_t PARAMS((void)); + typedef char *rl_cpifunc_t PARAMS((int)); + typedef char *rl_cpcpfunc_t PARAMS((char *)); + typedef char *rl_cpcppfunc_t PARAMS((char **)); + #endif /* _RL_FUNCTION_TYPEDEF */ diff -aNrc2 readline-4.3-patched/savestring.c readline-5.0/savestring.c *** readline-4.3-patched/savestring.c Mon Sep 10 10:07:46 2001 --- readline-5.0/savestring.c Tue Dec 9 16:06:01 2003 *************** *** 1,5 **** /* savestring.c */ ! /* Copyright (C) 1998 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for --- 1,5 ---- /* savestring.c */ ! /* Copyright (C) 1998,2003 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for *************** *** 20,23 **** --- 20,24 ---- have a copy of the license, write to the Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + #define READLINE_LIBRARY #include diff -aNrc2 readline-4.3-patched/search.c readline-5.0/search.c *** readline-4.3-patched/search.c Tue Jan 22 16:49:58 2002 --- readline-5.0/search.c Thu Sep 25 08:51:57 2003 *************** *** 83,88 **** HIST_ENTRY *entry; { ! rl_replace_line (entry->line, 0); rl_undo_list = (UNDO_LIST *)entry->data; if (_rl_saved_line_for_history) --- 83,93 ---- HIST_ENTRY *entry; { ! #if 0 ! rl_replace_line (entry->line, 1); rl_undo_list = (UNDO_LIST *)entry->data; + #else + _rl_replace_text (entry->line, 0, rl_end); + _rl_fix_point (1); + #endif if (_rl_saved_line_for_history) *************** *** 189,192 **** --- 194,202 ---- saved_point = rl_point; saved_mark = rl_mark; + + /* Clear the undo list, since reading the search string should create its + own undo list, and the whole list will end up being freed when we + finish reading the search string. */ + rl_undo_list = 0; /* Use the line buffer to read the search string. */ diff -aNrc2 readline-4.3-patched/shell.c readline-5.0/shell.c *** readline-4.3-patched/shell.c Wed Aug 22 09:39:58 2001 --- readline-5.0/shell.c Mon Sep 29 11:42:26 2003 *************** *** 127,130 **** --- 127,131 ---- sprintf (b, "LINES=%d", lines); putenv (b); + b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("COLUMNS=") + 1); sprintf (b, "COLUMNS=%d", cols); *************** *** 135,141 **** --- 136,145 ---- sprintf (b, "%d", lines); setenv ("LINES", b, 1); + free (b); + b = (char *)xmalloc (INT_STRLEN_BOUND (int) + 1); sprintf (b, "%d", cols); setenv ("COLUMNS", b, 1); + free (b); # endif /* HAVE_SETENV */ #endif /* !HAVE_PUTENV */ diff -aNrc2 readline-4.3-patched/shlib/Makefile.in readline-5.0/shlib/Makefile.in *** readline-4.3-patched/shlib/Makefile.in Thu Jan 24 10:15:02 2002 --- readline-5.0/shlib/Makefile.in Wed Dec 10 12:02:47 2003 *************** *** 2,6 **** # Makefile for the GNU readline library shared library support. # ! # Copyright (C) 1998 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify --- 2,6 ---- # Makefile for the GNU readline library shared library support. # ! # Copyright (C) 1998-2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify *************** *** 18,21 **** --- 18,29 ---- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. + PACKAGE = @PACKAGE_NAME@ + VERSION = @PACKAGE_VERSION@ + + PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + PACKAGE_NAME = @PACKAGE_NAME@ + PACKAGE_STRING = @PACKAGE_STRING@ + PACKAGE_VERSION = @PACKAGE_VERSION@ + RL_LIBRARY_VERSION = @LIBVERSION@ RL_LIBRARY_NAME = readline *************** *** 47,50 **** --- 55,60 ---- includedir = @includedir@ libdir = @libdir@ + datadir = @datadir@ + localedir = $(datadir)/locale # Support an alternate destination root directory for package building *************** *** 73,77 **** SHOBJ_LIBS = @SHOBJ_LIBS@ ! SHLIB_XLDFLAGS = @SHLIB_XLDFLAGS@ SHLIB_LIBS = @SHLIB_LIBS@ SHLIB_LIBSUFF = @SHLIB_LIBSUFF@ --- 83,87 ---- SHOBJ_LIBS = @SHOBJ_LIBS@ ! SHLIB_XLDFLAGS = @LDFLAGS@ @SHLIB_XLDFLAGS@ SHLIB_LIBS = @SHLIB_LIBS@ SHLIB_LIBSUFF = @SHLIB_LIBSUFF@ *************** *** 391,395 **** signals.so: $(topdir)/signals.c terminal.so: $(topdir)/terminal.c ! text.so: $(topdir)/terminal.c tilde.so: $(topdir)/tilde.c undo.so: $(topdir)/undo.c --- 401,405 ---- signals.so: $(topdir)/signals.c terminal.so: $(topdir)/terminal.c ! text.so: $(topdir)/text.c tilde.so: $(topdir)/tilde.c undo.so: $(topdir)/undo.c *************** *** 425,429 **** shell.so: shell.c terminal.so: terminal.c ! text.so: terminal.c tilde.so: tilde.c undo.so: undo.c --- 435,439 ---- shell.so: shell.c terminal.so: terminal.c ! text.so: text.c tilde.so: tilde.c undo.so: undo.c diff -aNrc2 readline-4.3-patched/signals.c readline-5.0/signals.c *** readline-4.3-patched/signals.c Thu Jan 24 11:23:37 2002 --- readline-5.0/signals.c Wed Apr 23 08:32:06 2003 *************** *** 74,77 **** --- 74,81 ---- #endif /* !HAVE_POSIX_SIGNALS */ + #ifndef SA_RESTART + # define SA_RESTART 0 + #endif + static SigHandler *rl_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *)); static void rl_maybe_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *)); *************** *** 86,89 **** --- 90,95 ---- #ifdef SIGWINCH int rl_catch_sigwinch = 1; + #else + int rl_catch_sigwinch = 0; /* for the readline state struct in readline.c */ #endif *************** *** 234,238 **** act.sa_handler = handler; ! act.sa_flags = 0; /* XXX - should we set SA_RESTART for SIGWINCH? */ sigemptyset (&act.sa_mask); sigemptyset (&ohandler->sa_mask); --- 240,244 ---- act.sa_handler = handler; ! act.sa_flags = (sig == SIGWINCH) ? SA_RESTART : 0; sigemptyset (&act.sa_mask); sigemptyset (&ohandler->sa_mask); diff -aNrc2 readline-4.3-patched/support/config.guess readline-5.0/support/config.guess *** readline-4.3-patched/support/config.guess Wed Apr 3 11:47:14 2002 --- readline-5.0/support/config.guess Wed Sep 10 09:16:43 2003 *************** *** 4,8 **** # 2000, 2001, 2002 Free Software Foundation, Inc. ! timestamp='2002-03-20' # This file is free software; you can redistribute it and/or modify it --- 4,8 ---- # 2000, 2001, 2002 Free Software Foundation, Inc. ! timestamp='2002-11-30' # This file is free software; you can redistribute it and/or modify it *************** *** 89,109 **** fi ! dummy=dummy-$$ ! trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 - # CC_FOR_BUILD -- compiler used by this script. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. ! set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in ! ,,) echo "int dummy(){}" > $dummy.c ; for c in cc gcc c89 c99 ; do ! ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; ! if test $? = 0 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; ! rm -f $dummy.c $dummy.o $dummy.rel ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; --- 89,118 ---- fi + trap 'exit 1' 1 2 15 ! # CC_FOR_BUILD -- compiler used by this script. Note that the use of a ! # compiler to aid in system detection is discouraged as it requires ! # temporary files to be created and, as you can see below, it is a ! # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. ! # This shell variable is my proudest work .. or something. --bje ! ! set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ; ! (old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old) ! || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ; ! dummy=$tmpdir/dummy ; ! files="$dummy.c $dummy.o $dummy.rel $dummy" ; ! trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ; ! case $CC_FOR_BUILD,$HOST_CC,$CC in ! ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do ! if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; ! rm -f $files ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; *************** *** 112,116 **** ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; ! esac' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. --- 121,126 ---- ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; ! esac ; ! unset files' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. *************** *** 118,126 **** if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH - elif (test -f /usr/5bin/uname) >/dev/null 2>&1 ; then # bash - PATH=$PATH:/usr/5bin fi - UNAME=`(uname) 2>/dev/null` || UNAME=unknown # bash UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown --- 128,133 ---- *************** *** 131,189 **** case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - # NOTE -- begin cases added for bash (mostly legacy) -- NOTE - mac68k:machten:*:*) - echo mac68k-apple-machten${UNAME_RELEASE} - exit 0 ;; - concurrent*:*:*:*) - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo concurrent-concurrent-sysv3 - else - echo concurrent-concurrent-bsd - fi - exit 0 ;; - ppc*:SunOS:5.*:*) - echo ppc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sparc:UNIX_SV:4.*:*) - echo sparc-unknown-sysv${UNAME_RELEASE} - exit 0 ;; - mips:UNIX_SV:4.*:*) - echo mips-mips-sysv${UNAME_RELEASE} - exit 0 ;; - mips:OSF*1:*:*) - echo mips-mips-osf1 - exit 0 ;; - mips:4.4BSD:*:*) - echo mips-mips-bsd4.4 - exit 0 ;; - MIS*:SMP_DC.OSx:*:dcosx) # not the same as below - echo pyramid-pyramid-sysv4 - exit 0 ;; - news*:NEWS*:*:*) - echo mips-sony-newsos${UNAME_RELEASE} - exit 0 ;; - *370:AIX:*:*) - echo ibm370-ibm-aix${UNAME_RELEASE} - exit 0 ;; - ksr1:OSF*1:*:*) - echo ksr1-ksr-osf1 - exit 0 ;; - esa:OSF*1:*:* | ESA:OSF*:*:*) - echo esa-ibm-osf1 - exit 0 ;; - DNP*:DNIX:*:*) - echo m68k-dnix-sysv - exit 0 ;; - *3b2*:*:*:*) - echo we32k-att-sysv3 - exit 0 ;; - Alpha*:Windows_NT:*:SP*) - echo alpha-pc-opennt - exit 0 ;; - *:Windows_NT:*:SP*) - echo i386-pc-opennt - exit 0 ;; - - # NOTE -- end legacy cases added for bash -- NOTE *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or --- 138,141 ---- *************** *** 201,204 **** --- 153,157 ---- /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; *************** *** 226,230 **** esac # The OS release ! release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: --- 179,194 ---- esac # The OS release ! # Debian GNU/NetBSD machines have a different userland, and ! # thus, need a distinct triplet. However, they do not need ! # kernel version information, so it can be replaced with a ! # suitable tag, in the style of linux-gnu. ! case "${UNAME_VERSION}" in ! Debian*) ! release='-gnu' ! ;; ! *) ! release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ! ;; ! esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: *************** *** 265,271 **** echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; - vax:OpenBSD:*:*) # bash - echo vax-dec-openbsd${UNAME_RELEASE} - exit 0 ;; wgrisc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} --- 229,232 ---- *************** *** 282,285 **** --- 243,247 ---- # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. + eval $set_cc_for_build cat <$dummy.s .data *************** *** 307,314 **** .end main EOF ! eval $set_cc_for_build ! $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null if test "$?" = 0 ; then ! case `./$dummy` in 0-0) UNAME_MACHINE="alpha" --- 269,275 ---- .end main EOF ! $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null if test "$?" = 0 ; then ! case `$dummy` in 0-0) UNAME_MACHINE="alpha" *************** *** 332,338 **** UNAME_MACHINE="alphaev68" ;; esac fi ! rm -f $dummy.s $dummy echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; --- 293,302 ---- UNAME_MACHINE="alphaev68" ;; + 3-1307) + UNAME_MACHINE="alphaev7" + ;; esac fi ! rm -f $dummy.s $dummy && rmdir $tmpdir echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; *************** *** 375,378 **** --- 339,346 ---- echo pyramid-pyramid-svr4 exit 0 ;; + DRS?6000:UNIX_SV:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7 && exit 0 ;; + esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` *************** *** 481,488 **** } EOF ! $CC_FOR_BUILD $dummy.c -o $dummy \ ! && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ ! && rm -f $dummy.c $dummy && exit 0 ! rm -f $dummy.c $dummy echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; --- 449,456 ---- } EOF ! $CC_FOR_BUILD -o $dummy $dummy.c \ ! && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ ! && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 ! rm -f $dummy.c $dummy && rmdir $tmpdir echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; *************** *** 490,493 **** --- 458,467 ---- echo powerpc-motorola-powermax exit 0 ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix *************** *** 562,567 **** } EOF ! $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 ! rm -f $dummy.c $dummy echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then --- 536,541 ---- } EOF ! $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 ! rm -f $dummy.c $dummy && rmdir $tmpdir echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then *************** *** 661,667 **** } EOF ! (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`./$dummy` if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi ! rm -f $dummy.c $dummy fi ;; esac --- 635,641 ---- } EOF ! (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi ! rm -f $dummy.c $dummy && rmdir $tmpdir fi ;; esac *************** *** 699,704 **** } EOF ! $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 ! rm -f $dummy.c $dummy echo unknown-hitachi-hiuxwe2 exit 0 ;; --- 673,678 ---- } EOF ! $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 ! rm -f $dummy.c $dummy && rmdir $tmpdir echo unknown-hitachi-hiuxwe2 exit 0 ;; *************** *** 782,787 **** echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) ! echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit 0 ;; i*:CYGWIN*:*) --- 756,776 ---- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; + amd64:FreeBSD:*:*) + echo x86_64-unknown-freebsd + exit 0 ;; *:FreeBSD:*:*) ! # Determine whether the default compiler uses glibc. ! eval $set_cc_for_build ! sed 's/^ //' << EOF >$dummy.c ! #include ! #if __GLIBC__ >= 2 ! LIBC=gnu ! #else ! LIBC= ! #endif ! EOF ! eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` ! rm -f $dummy.c && rmdir $tmpdir ! echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} exit 0 ;; i*:CYGWIN*:*) *************** *** 795,799 **** exit 0 ;; x86:Interix*:3*) ! echo i386-pc-interix3 exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) --- 784,791 ---- exit 0 ;; x86:Interix*:3*) ! echo i586-pc-interix3 ! exit 0 ;; ! [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) ! echo i${UNAME_MACHINE}-pc-mks exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) *************** *** 801,805 **** # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? ! echo i386-pc-interix exit 0 ;; i*:UWIN*:*) --- 793,797 ---- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? ! echo i586-pc-interix exit 0 ;; i*:UWIN*:*) *************** *** 844,849 **** EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` ! rm -f $dummy.c ! test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0 ;; ppc:Linux:*:*) --- 836,861 ---- EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` ! rm -f $dummy.c && rmdir $tmpdir ! test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ! ;; ! mips64:Linux:*:*) ! eval $set_cc_for_build ! sed 's/^ //' << EOF >$dummy.c ! #undef CPU ! #undef mips64 ! #undef mips64el ! #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ! CPU=mips64el ! #else ! #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ! CPU=mips64 ! #else ! CPU= ! #endif ! #endif ! EOF ! eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` ! rm -f $dummy.c && rmdir $tmpdir ! test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ;; ppc:Linux:*:*) *************** *** 907,911 **** a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ! exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" --- 919,923 ---- a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ! exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" *************** *** 940,944 **** EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` ! rm -f $dummy.c test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 --- 952,956 ---- EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` ! rm -f $dummy.c && rmdir $tmpdir test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 *************** *** 958,961 **** --- 970,990 ---- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit 0 ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit 0 ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit 0 ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit 0 ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` *************** *** 979,989 **** echo ${UNAME_MACHINE}-pc-isc$UNAME_REL elif /bin/uname -X 2>/dev/null >/dev/null ; then ! UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` ! (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 ! (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 ! (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ && UNAME_MACHINE=i686 ! (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL --- 1008,1018 ---- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL elif /bin/uname -X 2>/dev/null >/dev/null ; then ! UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` ! (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 ! (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 ! (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 ! (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL *************** *** 992,998 **** fi exit 0 ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; pc:*:*:*) # Left here for compatibility: --- 1021,1024 ---- *************** *** 1018,1024 **** echo m68010-convergent-sysv exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; ! 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ --- 1044,1056 ---- echo m68010-convergent-sysv exit 0 ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit 0 ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; ! 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ *************** *** 1037,1043 **** echo m68k-atari-sysv4 exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} --- 1069,1072 ---- *************** *** 1111,1114 **** --- 1140,1146 ---- echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} *************** *** 1131,1135 **** echo i386-pc-qnx exit 0 ;; ! NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; --- 1163,1167 ---- echo i386-pc-qnx exit 0 ;; ! NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *************** *** 1154,1162 **** echo ${UNAME_MACHINE}-unknown-plan9 exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 --- 1186,1189 ---- *************** *** 1177,1186 **** echo pdp10-unknown-its exit 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; esac --- 1204,1207 ---- *************** *** 1303,1308 **** EOF ! $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 ! rm -f $dummy.c $dummy # Apollos put the system type in the environment. --- 1324,1329 ---- EOF ! $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 ! rm -f $dummy.c $dummy && rmdir $tmpdir # Apollos put the system type in the environment. *************** *** 1335,1349 **** esac fi - - # NOTE -- Begin fallback cases added for bash -- NOTE - case "$UNAME" in - uts) echo uts-amdahl-sysv${UNAME_RELEASE}; exit 0 ;; - esac - - if [ -f /bin/fxc.info ]; then - echo fxc-alliant-concentrix - exit 0 - fi - # NOTE -- End fallback cases added for bash -- NOTE cat >&2 <, 1996 + # + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by + # the Free Software Foundation; either version 2 of the License, or + # (at your option) any later version. + # + # This program is distributed in the hope that it will be useful, but + # WITHOUT ANY WARRANTY; without even the implied warranty of + # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License + # along with this program; if not, write to the Free Software + # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a + # configuration script generated by Autoconf, you may include it under + # the same distribution terms that you use for the rest of that program. + # + # The first argument passed to this file is the canonical host specification, + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM + # or + # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM + # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld + # should be set by the caller. + # + # The set of defined variables is at the end of this script. + + # Known limitations: + # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer + # than 256 bytes, otherwise the compiler driver will dump core. The only + # known workaround is to choose shorter directory names for the build + # directory and/or the installation directory. + + # All known linkers require a `.a' archive for static linking (except M$VC, + # which needs '.lib'). + libext=a + shrext=.so + + host="$1" + host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` + host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` + host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + + # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. + + wl= + if test "$GCC" = yes; then + wl='-Wl,' + else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + mingw* | pw32* | os2*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + newsos6) + ;; + linux*) + case $CC in + icc|ecc) + wl='-Wl,' + ;; + ccc) + wl='-Wl,' + ;; + esac + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + sco3.2v5*) + ;; + solaris*) + wl='-Wl,' + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + uts4*) + ;; + esac + fi + + # Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. + + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_direct=no + hardcode_minus_L=no + + case "$host_os" in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + if test "$with_gnu_ld" = yes; then + case "$host_os" in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can use + # them. + ld_shlibs=no + ;; + beos*) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + cygwin* | mingw* | pw32*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + netbsd*) + ;; + solaris* | sysv5*) + if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + sunos4*) + hardcode_direct=yes + ;; + *) + if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + esac + if test "$ld_shlibs" = yes; then + # Unlike libtool, we use -rpath here, not --rpath, since the documented + # option of GNU ld is called -rpath, not --rpath. + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + fi + else + case "$host_os" in + aix3*) + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + else + aix_use_runtimelinking=no + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + esac + fi + hardcode_direct=yes + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct=yes + else + # We have old collect2 + hardcode_direct=unsupported + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + esac + fi + # Begin _LT_AC_SYS_LIBPATH_AIX. + echo 'int main () { return 0; }' > conftest.c + ${CC} ${LDFLAGS} conftest.c -o conftest + aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } + }'` + if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } + }'` + fi + if test -z "$aix_libpath"; then + aix_libpath="/usr/lib:/lib" + fi + rm -f conftest.c conftest + # End _LT_AC_SYS_LIBPATH_AIX. + if test "$aix_use_runtimelinking" = yes; then + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + else + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + fi + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + bsdi4*) + ;; + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + libext=lib + ;; + darwin* | rhapsody*) + if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then + hardcode_direct=no + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd1*) + ld_shlibs=no + ;; + freebsd2.2*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + freebsd2*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + hpux9*) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + hpux10* | hpux11*) + if test "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=no + ;; + ia64*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=no + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + *) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + irix5* | irix6* | nonstopux*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + netbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + newsos6) + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + openbsd*) + hardcode_direct=yes + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + else + case "$host_os" in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + osf3*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + osf4* | osf5*) + if test "$GCC" = yes; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + # Both cc and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + sco3.2v5*) + ;; + solaris*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + sunos4*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + ;; + sysv4) + case $host_vendor in + sni) + hardcode_direct=yes # is this really true??? + ;; + siemens) + hardcode_direct=no + ;; + motorola) + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + ;; + sysv4.3*) + ;; + sysv4*MP*) + if test -d /usr/nec; then + ld_shlibs=yes + fi + ;; + sysv4.2uw2*) + hardcode_direct=yes + hardcode_minus_L=no + ;; + sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) + ;; + sysv5*) + hardcode_libdir_flag_spec= + ;; + uts4*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + *) + ld_shlibs=no + ;; + esac + fi + + # Check dynamic linker characteristics + # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. + libname_spec='lib$name' + case "$host_os" in + aix3*) + ;; + aix4* | aix5*) + ;; + amigaos*) + ;; + beos*) + ;; + bsdi4*) + ;; + cygwin* | mingw* | pw32*) + shrext=.dll + ;; + darwin* | rhapsody*) + shrext=.dylib + ;; + dgux*) + ;; + freebsd1*) + ;; + freebsd*) + ;; + gnu*) + ;; + hpux9* | hpux10* | hpux11*) + case "$host_cpu" in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + ;; + irix5* | irix6* | nonstopux*) + case "$host_os" in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; + *) libsuff= shlibsuff= ;; + esac + ;; + esac + ;; + linux*oldld* | linux*aout* | linux*coff*) + ;; + linux*) + ;; + netbsd*) + ;; + newsos6) + ;; + nto-qnx) + ;; + openbsd*) + ;; + os2*) + libname_spec='$name' + shrext=.dll + ;; + osf3* | osf4* | osf5*) + ;; + sco3.2v5*) + ;; + solaris*) + ;; + sunos4*) + ;; + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + ;; + sysv4*MP*) + ;; + uts4*) + ;; + esac + + sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` + shlibext=`echo "$shrext" | sed -e 's,^\.,,'` + escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + + sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' < + # Created: 1993-05-16 + # Public domain + + errstatus=0 + dirmode="" + + usage="\ + Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." + + # process command line arguments + while test $# -gt 0 ; do + case $1 in + -h | --help | --h*) # -h for help + echo "$usage" 1>&2 + exit 0 + ;; + -m) # -m PERM arg + shift + test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } + dirmode=$1 + shift + ;; + --) # stop option processing + shift + break + ;; + -*) # unknown option + echo "$usage" 1>&2 + exit 1 + ;; + *) # first non-opt arg + break + ;; + esac + done + + for file + do + if test -d "$file"; then + shift + else + break + fi + done + + case $# in + 0) exit 0 ;; + esac + + case $dirmode in + '') + if mkdir -p -- . 2>/dev/null; then + echo "mkdir -p -- $*" + exec mkdir -p -- "$@" + fi + ;; + *) + if mkdir -m "$dirmode" -p -- . 2>/dev/null; then + echo "mkdir -m $dirmode -p -- $*" + exec mkdir -m "$dirmode" -p -- "$@" + fi + ;; + esac + + for file + do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d + do + pathcomp="$pathcomp$d" + case $pathcomp in + -*) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + else + if test ! -z "$dirmode"; then + echo "chmod $dirmode $pathcomp" + lasterr="" + chmod "$dirmode" "$pathcomp" || lasterr=$? + + if test ! -z "$lasterr"; then + errstatus=$lasterr + fi + fi + fi + fi + + pathcomp="$pathcomp/" + done + done + + exit $errstatus + + # Local Variables: + # mode: shell-script + # sh-indentation: 2 + # End: + # mkinstalldirs ends here diff -aNrc2 readline-4.3-patched/support/shlib-install readline-5.0/support/shlib-install *** readline-4.3-patched/support/shlib-install Thu Aug 23 10:38:25 2001 --- readline-5.0/support/shlib-install Mon Aug 18 16:16:01 2003 *************** *** 89,94 **** esac ! INSTALL_LINK1='cd $INSTALLDIR ; ln -s $LIBNAME $LINK1' ! INSTALL_LINK2='cd $INSTALLDIR ; ln -s $LIBNAME $LINK2' # --- 89,94 ---- esac ! INSTALL_LINK1='${echo} cd $INSTALLDIR && ${echo} ${LN} $LIBNAME $LINK1' ! INSTALL_LINK2='${echo} cd $INSTALLDIR && ${echo} ${LN} $LIBNAME $LINK2' # *************** *** 96,104 **** # case "$host_os" in ! *linux*|bsdi4*|*gnu*|darwin*|macosx*) # libname.so.M -> libname.so.M.N ${echo} ${RM} ${INSTALLDIR}/$LINK2 if [ -z "$uninstall" ]; then ! ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK2 fi --- 96,118 ---- # case "$host_os" in ! *linux*) # libname.so.M -> libname.so.M.N ${echo} ${RM} ${INSTALLDIR}/$LINK2 if [ -z "$uninstall" ]; then ! eval $INSTALL_LINK2 ! fi ! ! # libname.so -> libname.so.M ! ${echo} ${RM} ${INSTALLDIR}/$LINK1 ! if [ -z "$uninstall" ]; then ! ${echo} cd $INSTALLDIR && ${echo} ${LN} $LINK2 $LINK1 ! fi ! ;; ! ! bsdi4*|*gnu*|darwin*|macosx*|k*bsd*-gnu) ! # libname.so.M -> libname.so.M.N ! ${echo} ${RM} ${INSTALLDIR}/$LINK2 ! if [ -z "$uninstall" ]; then ! eval $INSTALL_LINK2 fi *************** *** 106,110 **** ${echo} ${RM} ${INSTALLDIR}/$LINK1 if [ -z "$uninstall" ]; then ! ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1 fi ;; --- 120,124 ---- ${echo} ${RM} ${INSTALLDIR}/$LINK1 if [ -z "$uninstall" ]; then ! eval $INSTALL_LINK1 fi ;; *************** *** 114,118 **** ${echo} ${RM} ${INSTALLDIR}/$LINK1 if [ -z "$uninstall" ]; then ! ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1 fi ;; --- 128,132 ---- ${echo} ${RM} ${INSTALLDIR}/$LINK1 if [ -z "$uninstall" ]; then ! eval $INSTALL_LINK1 fi ;; *************** *** 125,129 **** ${echo} ${RM} ${INSTALLDIR}/$LINK1 if [ -z "$uninstall" ]; then ! ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1 fi else --- 139,143 ---- ${echo} ${RM} ${INSTALLDIR}/$LINK1 if [ -z "$uninstall" ]; then ! eval $INSTALL_LINK1 fi else *************** *** 131,135 **** ${echo} ${RM} ${INSTALLDIR}/$LINK2 if [ -z "$uninstall" ]; then ! ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK2 fi --- 145,149 ---- ${echo} ${RM} ${INSTALLDIR}/$LINK2 if [ -z "$uninstall" ]; then ! eval $INSTALL_LINK2 fi *************** *** 137,141 **** ${echo} ${RM} ${INSTALLDIR}/$LINK1 if [ -z "$uninstall" ]; then ! ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1 fi fi --- 151,155 ---- ${echo} ${RM} ${INSTALLDIR}/$LINK1 if [ -z "$uninstall" ]; then ! eval $INSTALL_LINK1 fi fi *************** *** 146,151 **** ${echo} ${RM} ${INSTALLDIR}/$LINK1.sl if [ -z "$uninstall" ]; then ! # ${echo} ln -s $LIBNAME ${INSTALLDIR}/${LINK1}.sl ! ${echo} ln -s $LIBNAME ${INSTALLDIR}/${LINK1} fi ;; --- 160,164 ---- ${echo} ${RM} ${INSTALLDIR}/$LINK1.sl if [ -z "$uninstall" ]; then ! eval $INSTALL_LINK1 fi ;; diff -aNrc2 readline-4.3-patched/support/shobj-conf readline-5.0/support/shobj-conf *** readline-4.3-patched/support/shobj-conf Wed Apr 17 13:27:46 2002 --- readline-5.0/support/shobj-conf Thu Nov 13 09:36:19 2003 *************** *** 98,102 **** # All versions of Linux or the semi-mythical GNU Hurd. ! linux*|gnu*) SHOBJ_CFLAGS=-fPIC SHOBJ_LD='${CC}' --- 98,102 ---- # All versions of Linux or the semi-mythical GNU Hurd. ! linux*-*|gnu*-*|k*bsd*-gnu-*) SHOBJ_CFLAGS=-fPIC SHOBJ_LD='${CC}' *************** *** 139,153 **** SHLIB_STATUS=supported ! SHOBJ_CFLAGS='-dynamic -fno-common' ! SHOBJ_LD=/usr/bin/libtool SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)' SHLIB_LIBSUFF='dylib' ! SHOBJ_LDFLAGS='-dynamic' ! SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' ! SHLIB_LIBS='-lSystem' ;; --- 139,159 ---- SHLIB_STATUS=supported ! SHOBJ_CFLAGS='-fno-common' ! SHOBJ_LD='${CC}' SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)' SHLIB_LIBSUFF='dylib' ! case "${host_os}" in ! darwin7*) SHOBJ_LDFLAGS='' ! SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' ! ;; ! *) SHOBJ_LDFLAGS='-dynamic' ! SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' ! ;; ! esac ! SHLIB_LIBS='-lncurses' # see if -lcurses works on MacOS X 10.1 ;; *************** *** 297,300 **** --- 303,308 ---- SHOBJ_CFLAGS='-fpic' SHOBJ_LD='${CC}' + # if you have problems linking here, moving the `-Wl,+h,$@' from + # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s' diff -aNrc2 readline-4.3-patched/terminal.c readline-5.0/terminal.c *** readline-4.3-patched/terminal.c Mon Mar 4 12:23:09 2002 --- readline-5.0/terminal.c Thu Sep 18 11:03:42 2003 *************** *** 348,356 **** for (i = 0; i < NUM_TC_STRINGS; i++) - # ifdef __LCC__ *(tc_strings[i].tc_value) = tgetstr ((char *)tc_strings[i].tc_var, bp); - # else - *(tc_strings[i].tc_value) = tgetstr (tc_strings[i].tc_var, bp); - # endif #endif tcap_initialized = 1; --- 348,352 ---- *************** *** 490,500 **** _rl_keymap = map; ! _rl_bind_if_unbound (_rl_term_ku, rl_get_previous_history); ! _rl_bind_if_unbound (_rl_term_kd, rl_get_next_history); ! _rl_bind_if_unbound (_rl_term_kr, rl_forward); ! _rl_bind_if_unbound (_rl_term_kl, rl_backward); ! _rl_bind_if_unbound (_rl_term_kh, rl_beg_of_line); /* Home */ ! _rl_bind_if_unbound (_rl_term_at7, rl_end_of_line); /* End */ _rl_keymap = xkeymap; --- 486,496 ---- _rl_keymap = map; ! rl_bind_keyseq_if_unbound (_rl_term_ku, rl_get_previous_history); ! rl_bind_keyseq_if_unbound (_rl_term_kd, rl_get_next_history); ! rl_bind_keyseq_if_unbound (_rl_term_kr, rl_forward_char); ! rl_bind_keyseq_if_unbound (_rl_term_kl, rl_backward_char); ! rl_bind_keyseq_if_unbound (_rl_term_kh, rl_beg_of_line); /* Home */ ! rl_bind_keyseq_if_unbound (_rl_term_at7, rl_end_of_line); /* End */ _rl_keymap = xkeymap; diff -aNrc2 readline-4.3-patched/text.c readline-5.0/text.c *** readline-4.3-patched/text.c Thu May 30 13:46:13 2002 --- readline-5.0/text.c Mon May 10 08:45:19 2004 *************** *** 1,5 **** /* text.c -- text handling commands for readline. */ ! /* Copyright (C) 1987-2002 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for --- 1,5 ---- /* text.c -- text handling commands for readline. */ ! /* Copyright (C) 1987-2004 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for *************** *** 171,174 **** --- 171,177 ---- #undef _RL_FIX_POINT + /* Replace the contents of the line buffer between START and END with + TEXT. The operation is undoable. To replace the entire line in an + undoable mode, use _rl_replace_text(text, 0, rl_end); */ int _rl_replace_text (text, start, end) *************** *** 802,812 **** #endif for (i = 0; i < count; i++) { - rl_begin_undo_group (); - - if (rl_point < rl_end) - rl_delete (1, c); - #if defined (HANDLE_MULTIBYTE) if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) --- 805,812 ---- #endif + rl_begin_undo_group (); + for (i = 0; i < count; i++) { #if defined (HANDLE_MULTIBYTE) if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) *************** *** 816,822 **** _rl_insert_char (1, c); ! rl_end_undo_group (); } return 0; } --- 816,825 ---- _rl_insert_char (1, c); ! if (rl_point < rl_end) ! rl_delete (1, c); } + rl_end_undo_group (); + return 0; } *************** *** 878,882 **** { _rl_vi_done_inserting (); ! _rl_vi_reset_last (); } #endif /* VI_MODE */ --- 881,886 ---- { _rl_vi_done_inserting (); ! if (_rl_vi_textmod_command (_rl_vi_last_command) == 0) /* XXX */ ! _rl_vi_reset_last (); } #endif /* VI_MODE */ *************** *** 936,942 **** /* Emacs puts point at the beginning of the sequence of spaces. */ ! opoint = rl_point; ! _rl_insert_char (l, ' '); ! rl_point = opoint; rl_end_undo_group (); --- 940,949 ---- /* Emacs puts point at the beginning of the sequence of spaces. */ ! if (rl_point < rl_end) ! { ! opoint = rl_point; ! _rl_insert_char (l, ' '); ! rl_point = opoint; ! } rl_end_undo_group (); diff -aNrc2 readline-4.3-patched/util.c readline-5.0/util.c *** readline-4.3-patched/util.c Wed Mar 13 16:45:43 2002 --- readline-5.0/util.c Wed Aug 27 15:51:15 2003 *************** *** 251,255 **** v = _rl_get_char_len (string1, &ps); if (v > 1) ! string += v - 1; /* -1 to account for auto-increment in loop */ } #endif --- 251,255 ---- v = _rl_get_char_len (string1, &ps); if (v > 1) ! string1 += v - 1; /* -1 to account for auto-increment in loop */ } #endif diff -aNrc2 readline-4.3-patched/vi_mode.c readline-5.0/vi_mode.c *** readline-4.3-patched/vi_mode.c Wed May 7 15:20:07 2003 --- readline-5.0/vi_mode.c Tue Jul 13 14:08:27 2004 *************** *** 2,6 **** Derived from code written by Jeff Sparkes (jsparkes@bnr.ca). */ ! /* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for --- 2,6 ---- Derived from code written by Jeff Sparkes (jsparkes@bnr.ca). */ ! /* Copyright (C) 1987-2004 Free Software Foundation, Inc. This file is part of the GNU Readline Library, a library for *************** *** 64,67 **** --- 64,69 ---- #endif + int _rl_vi_last_command = 'i'; /* default `.' puts you in insert mode */ + /* Non-zero means enter insertion mode. */ static int _rl_vi_doing_insert; *************** *** 84,88 **** static int vi_insert_buffer_size; - static int _rl_vi_last_command = 'i'; /* default `.' puts you in insert mode */ static int _rl_vi_last_repeat = 1; static int _rl_vi_last_arg_sign = 1; --- 86,89 ---- *************** *** 136,139 **** --- 137,150 ---- } + /* A convenience function that calls _rl_vi_set_last to save the last command + information and enters insertion mode. */ + void + rl_vi_start_inserting (key, repeat, sign) + int key, repeat, sign; + { + _rl_vi_set_last (key, repeat, sign); + rl_vi_insertion_mode (1, key); + } + /* Is the command C a VI mode text modification command? */ int *************** *** 298,305 **** if (key == '*' || key == '\\') ! { ! _rl_vi_set_last (key, 1, rl_arg_sign); ! rl_vi_insertion_mode (1, key); ! } return (0); } --- 309,314 ---- if (key == '*' || key == '\\') ! rl_vi_start_inserting (key, 1, rl_arg_sign); ! return (0); } *************** *** 311,316 **** { rl_tilde_expand (0, key); ! _rl_vi_set_last (key, 1, rl_arg_sign); /* XXX */ ! rl_vi_insertion_mode (1, key); return (0); } --- 320,324 ---- { rl_tilde_expand (0, key); ! rl_vi_start_inserting (key, 1, rl_arg_sign); return (0); } *************** *** 430,434 **** /* Move to the next non-whitespace character (to the start of the next word). */ ! while (++rl_point < rl_end && whitespace (rl_line_buffer[rl_point])); if (rl_point && rl_point < rl_end) --- 438,443 ---- /* Move to the next non-whitespace character (to the start of the next word). */ ! while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point])) ! rl_point++; if (rl_point && rl_point < rl_end) *************** *** 641,645 **** else { ! if (_rl_vi_last_key_before_insert == 'i' && rl_undo_list) _rl_vi_save_insert (rl_undo_list); /* XXX - Other keys probably need to be checked. */ --- 650,654 ---- else { ! if ((_rl_vi_last_key_before_insert == 'i' || _rl_vi_last_key_before_insert == 'a') && rl_undo_list) _rl_vi_save_insert (rl_undo_list); /* XXX - Other keys probably need to be checked. */ *************** *** 705,709 **** if (wc) { ! mblen = wctomb (mb, wc); if (mblen >= 0) mb[mblen] = '\0'; --- 714,718 ---- if (wc) { ! mblen = wcrtomb (mb, wc, &ps); if (mblen >= 0) mb[mblen] = '\0'; *************** *** 726,730 **** int count, ignore; { ! char c = 0; /* Don't try this on an empty line. */ --- 735,739 ---- int count, ignore; { ! int c, p; /* Don't try this on an empty line. */ *************** *** 732,735 **** --- 741,745 ---- return (0); + c = 0; #if defined (HANDLE_MULTIBYTE) if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) *************** *** 753,758 **** if (c) { rl_begin_undo_group (); ! rl_delete (1, c); _rl_insert_char (1, c); rl_end_undo_group (); --- 763,771 ---- if (c) { + p = rl_point; rl_begin_undo_group (); ! rl_vi_delete (1, c); ! if (rl_point < p) /* Did we retreat at EOL? */ ! rl_point++; _rl_insert_char (1, c); rl_end_undo_group (); *************** *** 772,776 **** rl_point = _rl_find_next_mbchar (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO); ! rl_yank (1, key); rl_backward_char (1, key); return (0); --- 785,791 ---- rl_point = _rl_find_next_mbchar (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO); ! while (count--) ! rl_yank (1, key); ! rl_backward_char (1, key); return (0); *************** *** 820,823 **** --- 835,839 ---- save = rl_numeric_arg; rl_numeric_arg = _rl_digit_value (c); + rl_explicit_arg = 1; rl_digit_loop1 (); rl_numeric_arg *= save; *************** *** 1018,1023 **** if (_rl_uppercase_p (key) == 0) _rl_vi_doing_insert = 1; ! _rl_vi_set_last (key, count, rl_arg_sign); ! rl_vi_insertion_mode (1, key); } --- 1034,1038 ---- if (_rl_uppercase_p (key) == 0) _rl_vi_doing_insert = 1; ! rl_vi_start_inserting (key, rl_numeric_arg, rl_arg_sign); } *************** *** 1268,1272 **** /* XXX - think about reading an entire mbchar with _rl_read_mbchar and inserting it in one bunch instead of the loop below (like in ! rl_vi_char_search or _rl_vi_change_mbchar_case. Set c to mbchar[0] for test against 033 or ^C. Make sure that _rl_read_mbchar does this right. */ --- 1283,1287 ---- /* XXX - think about reading an entire mbchar with _rl_read_mbchar and inserting it in one bunch instead of the loop below (like in ! rl_vi_char_search or _rl_vi_change_mbchar_case). Set c to mbchar[0] for test against 033 or ^C. Make sure that _rl_read_mbchar does this right. */ *************** *** 1275,1279 **** int count, key; { ! int c; if (vi_redoing) --- 1290,1294 ---- int count, key; { ! int c, p; if (vi_redoing) *************** *** 1289,1297 **** return -1; while (count-- && rl_point < rl_end) { ! rl_begin_undo_group (); ! ! rl_delete (1, c); #if defined (HANDLE_MULTIBYTE) if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) --- 1304,1312 ---- return -1; + rl_begin_undo_group (); while (count-- && rl_point < rl_end) { ! p = rl_point; ! rl_vi_delete (1, c); #if defined (HANDLE_MULTIBYTE) if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) *************** *** 1304,1313 **** else #endif ! _rl_insert_char (1, c); ! if (count == 0) ! rl_backward_char (1, c); ! ! rl_end_undo_group (); } return (0); } --- 1319,1330 ---- else #endif ! { ! if (rl_point < p) /* Did we retreat at EOL? */ ! rl_point++; ! _rl_insert_char (1, c); ! } } + rl_end_undo_group (); + return (0); } *************** *** 1319,1323 **** /* If we are redoing, rl_vi_change_to will stuff the last motion char */ if (vi_redoing == 0) ! rl_stuff_char ((key == 'S') ? 'c' : ' '); /* `S' == `cc', `s' == `c ' */ return (rl_vi_change_to (count, 'c')); --- 1336,1340 ---- /* If we are redoing, rl_vi_change_to will stuff the last motion char */ if (vi_redoing == 0) ! rl_stuff_char ((key == 'S') ? 'c' : 'l'); /* `S' == `cc', `s' == `cl' */ return (rl_vi_change_to (count, 'c'));