diff options
author | joerg <joerg@FreeBSD.org> | 1995-03-05 22:50:24 +0000 |
---|---|---|
committer | joerg <joerg@FreeBSD.org> | 1995-03-05 22:50:24 +0000 |
commit | 874ecc50c1283069f2e8d00e318e980081b3a972 (patch) | |
tree | 3b3f631c533e8beb23c439f0e4440711cb6e583f /usr.sbin/pcvt | |
parent | 74e86179dfe3b7a3937399fa625138c016c9436b (diff) | |
download | FreeBSD-src-874ecc50c1283069f2e8d00e318e980081b3a972.zip FreeBSD-src-874ecc50c1283069f2e8d00e318e980081b3a972.tar.gz |
Adding the various documentation files that are accompanying
the regular pcvt distribution under pcvt/Misc.
Diffstat (limited to 'usr.sbin/pcvt')
-rw-r--r-- | usr.sbin/pcvt/Misc/Doc/Acknowledgements | 111 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Doc/Bibliography | 189 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Doc/BugList | 77 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Doc/ChangeLog | 811 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Doc/CharGen | 149 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Doc/Charsets | 99 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Doc/EscapeSequences | 268 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Doc/Keyboard.HP | 286 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Doc/Keyboard.VT | 231 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Doc/Makefile | 11 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Doc/Manifest | 162 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Doc/NotesAndHints | 256 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Doc/TestedHardware | 79 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Etc/Termcap | 284 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Etc/Terminfo | 41 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Etc/pcvt.el | 19 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Etc/rc.local | 264 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Etc/uemacs.tar.Z.uu | 594 | ||||
-rw-r--r-- | usr.sbin/pcvt/Misc/Etc/xmodmap-german | 117 |
19 files changed, 4048 insertions, 0 deletions
diff --git a/usr.sbin/pcvt/Misc/Doc/Acknowledgements b/usr.sbin/pcvt/Misc/Doc/Acknowledgements new file mode 100644 index 0000000..a9575d1 --- /dev/null +++ b/usr.sbin/pcvt/Misc/Doc/Acknowledgements @@ -0,0 +1,111 @@ +Thank You, (in the order of appearance) + + + Lynne and Bill Jolitz + + for your work on 386BSD and making all this possible ! + + + Holger Veit (veit@du9ds3.uni-duisburg.de) + + for the permission to use a modified version of his keyboard + driver and utilities for keyboard remapping / multinational + keyboard support. + + + Per Lindberg + + for the extremely helpful vt100 terminal testprogram found + in the directory vttest. + + + John Birchfield + + for the ncsa telnet package, which contains a vt100 emulation + and which was very helpful in studying some concepts. + + + Ralf Friedl (friedl@informatik.uni-kl.de) + + for making his implementation of multi-sceens for the net-2 + distribution available. i looked at this and took some ideas + and lines from his code. + + + Bruce Evans (bde@runx.oz.au) + + for contributing some bugfixes and a complete termcap entry + + + Brian H. Dunford-Shore (brian@morpheus.wustl.edu) + + for contributing most of the EGA/VGA screen switching code + and being a fast, reliable and responsive co-author. This + driver would not be what it is without Brian, Thank You ! + + + Frank da Cruz (fdc@columbia.edu) + + for my famous datacomm program and for giving the permission + to redistribute files from the msdos kermit distribution + located in the directory support/demo. + + + Joerg Wunsch (joerg_wunsch@uriah.sax.de) + + for contributing precise bugreports and -fixes, the 8x10 + EGA/VGA fonts and the color palette ioctls and for being + a very responsive contributor of various ideas. + Joerg wrote pcvt's interface to XFree86 1.2 and 1.3 and + the SYSV/syscons - like interface to XFree86 2.0. + There would be no support for X without Joerg's work! + Thank you very much Joerg, i enjoy it !!! :-) + + + Scott Turner (scotty@gagetalker.com) + + for contributing code to change the winsize structure, many + discussions on the keyboard code and fine-tuning the driver + + + Gordon L. Burditt (gordon@sneaky.lonestar.org) + + for the nicest and most complete bugreports i ever got + + + Theo Deraadt (deraadt@fsa.ca) + + for pushing me forward. There would be no 3.00 release + if Theo didn't asked for features ... ;-) + + + Onno van der Linden (c/o vdlinden@fwi.uva.nl) + + for writing the 132 column support for the Cirrus + chipsets although he had no time to do it ... :-) + + + Wolfram Solfrank, Ingo Koenig + + for putting some data onto tape (and handling and shipping + in the case of Wolfgang) to provide me with some latest + sources because i still have no ip-connectivity .... + + + Michael Havemester (tik@abqhh.hanse.de) + + for giving me a chance to stay up to date with NetBSD- + current, for programming the initial version of the fast + scrolling code and for the keyboard fifo code! + + + Charles Hannum (mycroft@gnu.ai.mit.edu) + + for getting bored by a slow-scrolling video driver and + for leaving me some bugs to fix ;-) + + + The NetBSD and FreeBSD teams + + for giving me something to play, work and learn with ! + There would be nothing to write a driver for without you !!! diff --git a/usr.sbin/pcvt/Misc/Doc/Bibliography b/usr.sbin/pcvt/Misc/Doc/Bibliography new file mode 100644 index 0000000..2cce039 --- /dev/null +++ b/usr.sbin/pcvt/Misc/Doc/Bibliography @@ -0,0 +1,189 @@ + +VGA BOOKS +--------- + + Richard Wilton, "Programmers Guide to PC & PS/2 Video Systems", + Microsoft Press 1987 + + + Richard F. Ferraro, "Programmers Guide to the EGA and VGA Cards", + Second Edition, Addison-Wesley 1990 + + + Richard F. Ferraro, "Programmers Guide to the EGA and VGA Cards", + Third Edition, Addison-Wesley 1994 + + + Matthias Uphoff, "Die Programmierung der EGA/VGA Grafikkarte", + Addison Wesley 1992 + + + Bradley Dyck Kliewer, "EGA/VGA A Programmers Reference Guide", + McGraw Hill, 2nd Edition 1990 + + +UNIX AND UNIX DEVICE DRIVERS +---------------------------- + + Bell Telephone Laboratories, Inc. "UNIX Programmer's Manual, Seventh + Edition, Volume 2". Revised and Expanded Version. + Holt, Rinehart and Winston 1983 + + + George Pajari, "Writing Unix Device Drivers" + Addison Wesley 1992 + + + Janet I. Egan and Thomas J. Teixeira, "Writing a UNIX Device Driver" + John Wiley & Sons 1988 + + + Janet I. Egan and Thomas J. Teixeira, "Writing a UNIX Device Driver" + Second Edition. John Wiley & Sons 1992 + + + Leffler, McKusick, Karels, Quarterman, "The Design and Implementation + of the 4.3BSD UNIX Operating System" + Addison Wesley 1988, corrected Reprint 1989 + + + Leffler, McKusick, "The Design and Implementation of the 4.3BSD UNIX + Operating System, Answer Book" + Addison Wesley 1991 + + + Maurice J. Bach, "The Design of the UNIX Operating System" + Prentice-Hall 1986 + + + Sun Microsystems Inc., "Writing Device Drivers" + Part No. 800-3851-10, Revision A of 27 March 1990 + + + Hewlett-Packard Company, "HP-UX Driver Development Guide", + Part No. 98577-90013, First Edition 07/91 + + + W. Richard Stevens, "Advanced Programming in the UNIX Environment", + Addison Wesley 1992 + + + Phillip M. Adams, Clovis L. Tondo, "Writing Unix Device Drivers in C", + Prentice Hall 1993 + + + Berny Goodheart, James Cox, "The Magic Garden Explained", + Prentice Hall 1994 + + + Peter Kettle, Steve Statler, "Writing Device Drivers for SCO Unix" + Addison Wesley 1993 + + +TERMINAL MANUALS +---------------- + + Digital Equipment, VT100 Users Manual, 2nd ed. 1979 + Digital Equipment, VT132 Users Manual + Digital Equipment, VT220 Programmers Reference Manual, 2nd ed. 1984 + Digital Equipment Corporation + + + Hewlett Packard, 700/92 Technical Reference Manual (ANSI Operation) + Hewlett Packard, 2392a Users Manual (ANSI Operation) + Hewlett-Packard Company + + + Walker Richer & Quinn, Inc., "Reflection 2 and Reflection 4 Technical + Reference Manual", Version 4.2 + Walker, Richer & Quinn, Seattle, August 1992 + + +IBM PC HARDWARE/FIRMWARE +------------------------ + + Frank van Gilluwe, "The Undocumented PC", + Addison Wesley, First Edition May 1994 + + + IBM Corporation, "Technical Reference Personal Computer AT", + Part No. 6280070, Form No. S229-9611-00, First Edition 1985 + + + Phoenix Technologies Ltd., "System BIOS for IBM PC/XT/AT Computers + and Compatibles", Addison Wesley, Fourth Printing June 1990 + + + Phoenix Technologies Ltd., "System BIOS for IBM PCs, Compatibles, + and EISA Computers", Second Edition + Addison Wesley, First Printing May 1991 + + + American Megatrends, Inc., "Hi-Flex ISA and EISA AMIBIOS Technical + Reference", American Megatrends, Inc. 1992 (9/25/92) + + + Thom Hogan, "The Programmers PC Sourcebook", 2nd Edition + Microsoft Press, 1991 + + +TERMCAP/TERMINFO +---------------- + + John Strang, Linda Mui and Tim O'Reilly, "Termcap and Terminfo", + O'Reilly & Associates, Inc. , April 1991 + + + Richard M. Stallman, "Termcap - The Termcap Library and Data Base", + Free Software Foundation, Second Edition November 1988 + + + +DATABOOKS/DATASHEETS +-------------------- + + Intel Corporation, "Microsystem Components Handbook Volume II", + Intel Corporation, 1984 + + + Intel Corporation, "Peripheral Design Handbook", + Intel Corporation, 1980 + + + Tseng Labs, Inc. "ET4000 Graphics Controller Data Book", 1990 + + + Western Digital Corporation, "WD90C11, WD90C11A (PVGA1C) Enhanced + VGA Controller", Western Digital 9/18/91 + + + Western Digital Corporation, "WD90C00 Enhanced VGA Controller", + Western Digital 1/14/91 + + + Western Digital Corporation, "WD90C00 Interface Guide", + Western Digital 1/10/91 + + + Western Digital Corporation, "VGA Register Based Programmers Manual", + Western Digital 1/30/91 + + + Western Digital Corporation, "VGA BIOS Programmers Manual", + Western Digital 1/10/91 + + + Cirrus Logic, "True Color VGA Family - CL-GD542X", Technical Ref. + Manual, Cirrus Logic, Inc. April 1993 + + + S3 Inc, "86C801/86C805 GUI Accelerators" + S3 Incorporated, September 1992 + + + S3 Inc, "86C928 GUI Accelerator" + S3 Incorporated, July 1993 + + + Trident Microsystems Inc., "TVGA9000i Technical Reference Manual", + Trident Microsystems, Inc. (c) 1992, March 1993, Rev 1 diff --git a/usr.sbin/pcvt/Misc/Doc/BugList b/usr.sbin/pcvt/Misc/Doc/BugList new file mode 100644 index 0000000..4ee10e0 --- /dev/null +++ b/usr.sbin/pcvt/Misc/Doc/BugList @@ -0,0 +1,77 @@ +List of known Bugs, ToDo's etc. +-------------------------------------------------------------------------------- + Last Edit-Date: [Mon Feb 20 19:54:39 1995] + + +Description: Fixed/done by/date +------------------------------------------- -------------------------------- +Util/keycap/man5/keycap.5 does STILL not +build correctly when doing a make obj. +Will there ever be a solution ... :-) +------------------------------------------- -------------------------------- +NetBSD PR #404: Meta-Control-Space broken +with PCVT_META_ESC and PCVT_NULLCHARS set +Meta-Control-Space should (theoretically) +send ESC NUL if PCVT_NULLCHARS and +PCVT_META_ESC are defined; in reality, it +just sends ESC. Because of the grody +encoding hack used by sgets() to implement +PCVT_NULLCHARS (if the first character is +a null, send it), there isn't a trivial +one-line fix. +How-To-Repeat: in a kernel with +PCVT_NULLCHARS and PCVT_META_ESC, type a +M-C-SPC to emacs. +------------------------------------------- -------------------------------- +when auto switching to vt0 is enabled by +PCVT_SW0CNOUTP and the screen is switched +from an X-vt to screen 0, the video mem +is irrecoverably destroyed - no data loss +------------------------------------------- -------------------------------- +kernel messages to the console transmitted +while one of the screens is in x mode do +not scroll up and/or not wrap at lower right fixed 02/95 +------------------------------------------- -------------------------------- +Numlock repeats, so by keeping numlock +pressed, the LED will blink. The other lock +keys don't do this. This has shown up on +several keyboards, including a Cherry. +------------------------------------------- -------------------------------- +Altgr+Shift+key is not separately They way the keyboard mapping +mappable. is done is subject to a sub- + stantial rewrite in a future + release +------------------------------------------- -------------------------------- +132 column mode not working with #9 GXE +(S3-based) (sorry, i don't have one -hm) +(see discussion of 132 column mode in the + NotesAndHints file!) +------------------------------------------- -------------------------------- +When entering/leaving X from/to a 132 col +screen, it results in garbage. Does the +X server save ALL vga registers ?????? +(see discussion of 132 column mode in the + NotesAndHints file!) +------------------------------------------- -------------------------------- +WD90Cxx chip detection fails to detect +chips other than C00,C10 and C11. C30 +chips are detected as C11s .... +------------------------------------------- -------------------------------- +Xfree86 2.0 locks the console when started +under NetBSD 0.9. SuperProbe and X both +show process status "DE+" in ps. Work- +around is to disable PCVT_USL_VT_COMPAT. +------------------------------------------- -------------------------------- +On one keyboard, if a "Lock" key is pressed +the leds do not get updated and the key- +board hangs. +------------------------------------------- -------------------------------- +HP function key labels code needs to set +the user defined fkey string somehow! +------------------------------------------- -------------------------------- +Video 7 1024i not fully supported yet, has +sometimes problems with some chars to displ +------------------------------------------- -------------------------------- +The HP-Escape sequences need to be FULLY 28.12.93, -hm did a bit to supp- +implemented port elm. Needs MORE work ! +------------------------------------------- -------------------------------- diff --git a/usr.sbin/pcvt/Misc/Doc/ChangeLog b/usr.sbin/pcvt/Misc/Doc/ChangeLog new file mode 100644 index 0000000..5587635 --- /dev/null +++ b/usr.sbin/pcvt/Misc/Doc/ChangeLog @@ -0,0 +1,811 @@ +ChangeLog last edit-date: [Sat Feb 25 18:18:52 1995] +================================================================================ + +Changes 3.10 -> 3.20 February 1995 +-------------------------------------------------------------------------------- + +- patch from Thomas Eberhardt to fix the bell frequency and duration setting + for NetBSD + +- some fixes from Onno van der Linden for NetBSD + +- added patch for NetBSD-current from Rafal Boni and Lon Willett + +- added another mega patch from Lon Willett fixing several bugs: + + 1 -- Misc porting changes to deal with NetBSD-current, including + a new Util/Makefile.inc.NetBSD-current. + + 2 -- The Control_R scancodes were being mapped to the Control_L + pcvt keynum. + + 3 -- FASTSCROLL/graphics-mode problem: there was a problem where + switching from a graphics screen to a text screen would corrupt + the text screen's content if it had been scrolling using the + FASTSCROLL code. (The problem is the bcopy() from kernel to + video memory was using the vs[i].Memory pointer as the source, + instead of the vs[i].Crtat pointer). This is fixed in the beta + 21 release by just disabling the fast scroll code for screens + which aren't active. + + The patch I'm sending you re-enables the fast scroll code on + inactive (i.e. in kernel memory) screens, saving a few cpu + cycles. + + 4 -- This is a big one: running multiple X servers was not + really working. The USL handshaking code was a mess (not very + well designed to begin with, but there's not much that can be + done about that). I did manage to get it fairly functional, but + there's a lot of changes. + +- changing example rc.local to take care of good old EGA's + +- fixing support for EGA boards in vt_coldinit() + +- removing vt100 font files from Util/fonts, updated Manifest + +- fixing an obviously longstanding bug in roll_up() / roll_down() which was + triggered by Joergs "Crtat" cleanup mega patch. + +- removing PCVT_FAKE_SYSCONS10 + +- removing duplicate names in termcap entries + +- fixing vt_coldinit: setting variable "color" for mda/hercules and cga + initializing cursor position + +- fixing roll_up() and roll_down() for mda/hercules: mda's have ALWAYS + just one page of memory, original hercules boards too so they + can NEVER use the fastscroll option. SOME hercules are somehow + enhanced in that they support 2 pages. pcvt now just supports + one page hercules/mda! + +- made cleanups to 8x14 high and 8x8 high fonts: adjust the 5 scanline + characters to adjust with the corner characters from the low fonts + +- applying patch from Joerg which fixes some bugs: + + writing to a tty containing an X server resulted in some stange + behaviour depending on the opsys and opsys version used + + the init code preserving the screen contents and cursor shape + can only be done on boards allowing the reading of + several crtc registers + +- removed bcopyb declaration from pcvt_hdr.h for FreeBSD 2.1 + +- another patch from Lon Willett (willett@math.utah.edu), he writes: + + 1 -- Very minor: One of my previous changes didn't get merged + into "pcvt_out.c"; the caclulation of ws_row doesn't account for + "force24" at one spot. It's easier to just set it from + screen_rows anyway, unless there's something that I didn't + understand happening here. + + 2 -- Debugging stuff: I don't know if you care to add it, but I + found it useful, so I left it in. I rearranged the + PCVT_SHOWKEYS code a little, and added a few lines to show + keyboard commands and responses, with special delimiters. + [file: pcvt_kbd.c] + + 3 -- "kcon" utility enhancement: I added a "-R" switch to kcon + to do a KBDRESET ioctl. [file: Util/kcon/kcon.c] + + 4 -- KBDRESET-ioctl bug: the code was trying to read kbd + responses without an spltty(), so naturally it would fail, since + pcrint() was grabbing the ACKs. [file: pcvt_kbd.c] + + 5 -- update_led() makes kbd hang: the problem here is that + update_led() makes the keyboard generate two KEYB_R_ACK + responses, and one of the interrupts sometimes gets lost when + there is a lot of other I/O happening. See the comment in the + code. My fix seems to work for me, but you may want to handle + it some other way. It would probably be quite reasonable to + check for lost interrupts periodically anyway, whether + update_led() has been called or not. [file: pcvt_kbd.c] + + (NOTE: item 5 has been disabled because it causes older + FreeBSD's to panic because of the timer queue not being + initialized at the time called. -hm) + +- partly rewrote doreset() in pcvt_kbd.c to enable boot procedure to proceed + if no (PC) keyboard is found. The current behaviour and implementation + is subject to change. + +- patch from Thomas Gellekum to Util/keycap/keycap.src + +- minor modification to main.c in Util/set2061 + +- patch from Onno and John Kohl to make pcvt beta 16 work on NetBSD current: + 1. pcvt_conf.h + _real_ 1.0 ===> NetBSD1_0 == 1 + current 1.0 (1.0A) ===> NetBSD1_0 == 2 + 2. pcvt_hdr.h + Put pcvt_conf.h before _all_ the #ifdef PCVT_*. This way + the #ifdef NetBSDx_y stuff can do its work. + +- size of PCVT_BURST was still reported as 1 for FreeBSD 2.0, fixed + +- made some adjustments for FreeBSD 2.0 in Util/vgaio + +- Another patch from Joerg for FreeBSD 2.0 + +- included vgaio, kbdio and set2061 into the outer Makefile, this programs + are build and cleaned but don't install anything. + All program's in the Util dir should now cleanly make <anything> ... + +- enable 132 column support for Trident TVGA8900CL, some NetBSDisms + +- addend patch from Joerg for pcvt-320b7 to fix FreeBSD 2.0's ttymalloc's + encapsulation into #if's. Also new keycap.src entry. + +- fixed keyboard status/LED not updated on soft reset emulator + +- on 23rd of December i had some spare time, so i added some demos to the + Util/demo directory as well a a time-killer program (playvt) to view + some of the VT animations and a christmas animation i got from Joerg. + +- added a new utility set2061 to program the clock generator on my S3 based + ELSA Winner VGA board. This eventually lets me use 132 columns on this + board, because i'm now able to program the clock to generate 40MHz + on clock output #2. + +- debugged winsize patch on FreeBSD 1.1, line discipline open init's the + queues, winsize initialization must happen after line disc. open! + +- got a bunch of NetBSD PR's from J.T. Conklin: + + PR #214: PCVT treats ctrl-shift exactly like shift for most characters. + (fixed by Lon Willet's Mega Patch described below -hm) + + PR #399: If you define PCVT_META_ESC when builting PCVT, Meta-Return + sends 0x8d instead of ESC RET. + (fixed by applying the patch from Bill Sommerfeld. -hm) + + PR #400: pcvt sometimes gets confused about window size + (fixed by applying the patch from Bill Sommerfeld. -hm) + + PR #404: Meta-Control-Space broken with PCVT_META_ESC and PCVT_NULLCHARS + (put into "BugList" file, no solution yet .. -hm) + + PR #488: pcvt can loose keyboard control if you start an xserver from + an xterm + (already fixed by a patch from John Kohl, see below -hm) + + PR #580: NetBSD i386/pcvt bugs/enhancements; fixes included + (already integrated the patch from Lon Willet, see below -hm) + +- on coldinit, if FAT_CURSOR is defined, the old large blockcursor is used + +- enhanced the vgaio output in an attempt to make 132 column mode work + for my S3 board .... + +- applied patch from Thomas Gellekum: install instructions for FreeBSD 2.0, + patch to fontedit to compile under FreeBSD 2.0, an addition to + keycap.src and a fix for kbdio + +- changed installation instructions to reflect recent changes, removed + instructions for FreeBSD 1.0 and added instructions for FreeBSD 2.0 + +- upgraded all utilities version strings to 3.20 + +- new example of rc.local + +- changing timeout()/untimeout() function parameter type to TIMEOUT_FUNC_T + definition in pcvt_hdr.h + +- changed install instructions to reference Etc dir instead of Doc dir for + several files which were moved from Doc to Etc. + +- new parameter -d for the cursor utility, updated cursor manpage + +- applying a patch from Lon Willett, willett@math.utah.edu which fixes + several bugs and provides some enhancements. Lon writes: + + 1 -- The displayed cursor is not updated during kernel I/O, + because async_update() doesn't get called. This is merely ugly + while the system startup messages are being displayed, but it is + positively annoying when using the kernel debugger. + + 2 -- CONTROL-SHIFT-<KEY> is taken to be the same as SHIFT-<KEY>. + It should be interpretted as CONTROL-<KEY>, or even have its own + binding. One of the lines below fixes it in the former way. + This is especially bad (i.e. clearly buggy) when I type + CONTROL-SHIFT-<6/^> to get a "Control-^", and instead get a "^". + + 3 -- The "special" region at the bottom of the screen, i.e. the + function-key-labels/status-line in HPVT mode, and the blank line + in FORCE24LINES mode, do not get properly cleared/updated. + + 4 -- When switching screen sizes/modes, the FORCE24LINES setting + is not always handled. + + 5 -- The PCVT_VT220KEYB functions are missing some features. + The control key settings are bug fixes; they apply only if + system function key labels are on, and match the labels. The + shift key definitions are enhancements. + + The new keys (previously undefined) are: + + Control-F1 -- toggle 80/132 columns + Control-F2 -- soft reset emulator + Control-F3 -- toggle force 24 lines mode + Control-F4 -- toggle keyboard debugging + + Shift-F1 -- select screen 4 + Shift-F2 -- select screen 5 + Shift-F3 -- select screen 6 + Shift-F4 -- select screen 7 + Shift-F5 -- select (current screen - 1) + + 6 -- [Enhancement] The initial startup screen is cleared, and + the screen gets cleared when changing modes/sizes. I don't like + this. I want a chance to see bootstrap loader messages, and I + also want the command "scon -d/dev/ttyv0 -H -s28" in my + rc.local, but then I lose various messages from daemons, etc + (which aren't always logged to syslog). So I have fixed the + code so that it tries to preserve the contents of the screen + when starting up, and when changing modes/sizes. + + 7 -- [Enhancement?] I added code to preserve the initial cursor + shape at startup. This isn't really necessary, since the + "cursor" command can be used to set it to your preference; but + it seems like this is the preferable policy to use for the + default. + +- applying patches from Onno van der Linden and Martin Husemann: adding + support for post 1.0 NetBSD-current and adding PCVT_NO_LED_UPDATE + +- patch from Joerg Wunsch: support for FreeBSD 2.0 and better support + for serial console coexistence + +- bugreport from Michael Havemester regarding PCVT_NOFASTSCROLL: it was + not enabled in pcvt_vtf.c, fixed. + +- renamed pcvt_disable_intr and pcvt_enable_intr to PCVT_DISABLE_INTR and + PCVT_ENABLE_INTR (Joerg) + +- attempt to automatically compile time configure in pcvt_conf.h, how + does FreeBSD do this ? should work for NetBSD (from Onno v.d. Linden) + +- split off pcvt_kbd.h from pcvt_kbd.c, file > 100k + +- split off pcvt_config.h from pcvt_hdr.h. All compile time configurations + should be put into pcvt_config.h now. + +- moved version definitions to begin of file in pcvt_ioctl.h and pcvt_hdr.h + +- fixing NetBSD #ifdef in pcvt_drv.c + +- fixed bug in scon. when doing "scon -c <num>" the destination screen was + cleared, this is fixed now by properly setting "force_24lines" + +- added kbdio utility from Joerg into Util directory + +- changed font dir from /usr/share/misc/vgafonts to /usr/share/misc/pcvtfonts + +- Fix for Gateway 2000 keyboard problems from Brian Moore + +- Starting to implement more keymoard mapping layers in pcvt_kbd.c. This + section is a building site, enclosed in NOT_YET_DEF ifdef's + +- VT_SETMODE ioctl patch from John Kohl <jtk@kolvir.blrc.ma.us>, see text + from John in the source file pcvt_ext.c + +- patch from Joerg for kbd_emulate_pc(), intro of timeout + +- fixed bug in soft/hard reset and real system fkey labels + +- added patch from Joerg for FreeBSD 1.1.5.1R + +- fixed both SR and SF entries in termcap database file + +- removed SR entry in termcap database file (bugreport from John Perry) + +- bugfix in cirrus 132 column switching got from Onno/Charles + +- french keycap database entry from Matthieu Herrb + +- cleanup patch from Joerg for Util/demo/Makefile und Util/fonts/Makefile + + +Changes 3.00 -> 3.10 June 1994 +-------------------------------------------------------------------------------- + +- patch from Joerg correcting my assumed timeout/untimeout FreeBSD casts + +- adjusted some #if's while validating NetBSD 0.9 and NetBSD-current + +- rolled in Joerg's changes for a pre-1.1.5 (?) FreeBSD-current + +- Util/fonts: install only the necessary fontfiles, vt100 not used anymore + +- updated and commented Etc/rc.local and updated to more recent /etc/ttys files + +- updated all installation instructions and changed their names + +- documenting more PCVT_ options in pcvt_hdr.h + +- adding CONF_ options to driver config ioctl and upgrading ispcvt + +- commenting the source, housekeeping, step up to 3.10 beta 2 + +- casting timeout()/untimeout() for FreeBSD 1.1R :-( + +- unprotecting vgapage() routine with #if !PCVT_KBD_FIFO + +- adding Michael Havemester's keyboard fifo diffs to source tree + +- pcvt_drv.c: made declaration of Crtat global for this file for NetBSD + +- changing Util/fonts/Makefile and Util/demo/Makefile to run in all + supported environments + +- moving inline from pcvt_vtf.h into pcvt_hdr.h, i still feel that this is + not the best solution, but i got annoyed by the 10 line pcvt_vtf.h + +- bugfix, in hpmode, clear last 4 lines when 28 column mode and force + 24 lines are true + +- applying patch from Thomas Gellekum <thomas@ghpc8.ihf.rwth-aachen.de>: + - discard escape sequences ESC space F and ESC space G + - discard escape sequences DECELR = enable locator report + and DECSLE = select type of locator event + - disable scrolling when writing outside the scrolling region + at an absolute position. + + [ pcvt now seems to be "VAX resistant" :-) ] + +- optional switch to screen 0 can be done on kernel/console output + +- fixed kernel output cursor positioning + +- removed PCVT_FORCE8BIT + +- pcvt_ext.c, changed screen switching bcopyb's to bcopy's + +- new patch from Onno to support all BIOS versions of the Cirrus chipset. + +- pcvt_x_hook() has to care about fkey labels now + +- updated Doc/NotesAndHints and Doc/BugList + +- applied patch from Onno van der Linden for updated Cirrus chipset support + +- updated Doc/Bibliography + +- removed paranoid delay()/DELAY() from vga_test() + +- added prototype ttrstrt() into pcvt_drv.c for NetBSD 0.9 + +- made INSTALLATION.NetBSD and INSTALLATION.NetBSD.bundled from mycrofts base + +- Charles Hannum took Michael Havemesters speedup modifications, made some + further enhancements and after adding support for pcvt, put it into + the NetBSD-current tree. THANK YOU, Charles ! + The NetBSD version of May 20th '94 was taken as the base for 3.10. + + +Changes 2.20 -> 3.00 March 1994 +-------------------------------------------------------------------------------- + +- Release 3.00 + +- last minute patch from Joerg (pcvt_hdr.h, BugList, NotesAndHints) + +- included speedup patch from Michael Havemester as Etc/LAST-MINUTE + +- updated Doc/pcvt.4 + +- removed bug in Util/ispcvt/Makefile which caused ispcvt to be installed + into /usr/sbin and /usr/local/bin + +- split ioctl VGAPCVTID into two: intro of ioctl VGAPCVTINFO for compile + time options only. + VGAPCVTID is now frozen for identification purposes (XFree86 3.0) + updated Util/ispcvt for the above mentioned changes + +- issued patch to upgrade beta14 to beta16 + +- bugfix: when scrolling up (bcopy) is interrupted by a keystroke requesting + a change of the current screen, the "new" screen is scrolled up. Fixed + in pcvt_kbd.c and pcvt_out.c (check_scroll) + +- fixed bug "Jumping through vt's with ALT-F12 does jump over vt0" + +- PCVT_PCBURST intro, update of ioctl and Util/ispcvt + +- NetBSD speedup patch from Michael Havemester (factor 6-10) + +- issued patch to upgrade beta14 to beta15 (never officially announced) + +- added patch for ttioctl parameters NetBSD-current 12 Feb 94 from Michael + Havemester in pcvt_drv.c + +- INSTALLATION.xxx(x)BSD upgraded to reflect changes in Util and NetBSD-current + +- struct pcvtid changed to hold the value of PCVT_xxx(x)BSD, ispcvt upgraded + +- applied patch from Szabolcs Szigeti for 132 column operation for Trident + TVGA 8900B and TVGA8900C based boards + +- PCVT_NETBSD can/must now be 1 or 09 for Release 0.9 and > 09 for current + +- applied patches from John Brezak and Szabolcs Szigeti for recent + NetBSD-current changes (syscframe -> trapframe) + +- in Util, removed Makefile.inc. Make Makefile.inc.FreeBSD and + Makefile.inc.NetBSD and added a check to the toplevel and every + other Makefile in this part of the tree. sigh ... + +- patch from Joerg for pcvt.4 Makefile and Debugger in FreeBSD + +- issued pcvt-beta14, code freeze for 3.00 release, just bugfixes now + +- INSTALLATION.FreeBSD and a small cleanup patch from Joerg + +- large patch from Joerg to get pcvt FreeBSD-current compliant + +- permission/owner cleanup, files:664, dirs:775, user:root, group:wheel + +- got rid of the verbose error message when installing in Util/fonts + +- new make-method in Util/kcon to workaround make portability problems + +- NetBSD-current detection workaroundaroundaround for NEW_AVERRUNNABLE in + pcvt_header.h + +- MONO_BUF and COLOR_BUF now ifndef'ed + +- fixed typo in pcvt_kbd.h in cfkey11() and cfkey12() + +- machine/pio.h must be included in pcvt_hdr.h for recent NetBSD-current + +- protected every tsleep call with an "if(curproc)" otherwise there is + chance to panic the system (Joerg has an idea why ...) + +- more fixes from Joerg: keyboard scansets fixed, X server is now aware + of redefined keys (ioctl implemented) + +- patch from Heiko Rupp, configuration with XSERVER not defined didn't compile + +- new version of vgaio from Joerg installed + +- large keyboard cleanup patch from Joerg merged in + +- bugfixes from Joerg: fix crash on not-open vt, remove pcxint, add option + PCVT_INHIBIT_NUMLOCK (for notebook owners :-), support for EGA/VGA + fonts with up to 32 scanlines. + +- included vgaio, a program to read/write vga register values from Joerg. + +- included mcon, the keyboard mouse emulator control program from Joerg. + +- applied averrunnable patch to satisfy the most recent NetBSD-current. + +- fixing cursor not updated bug if usl/vt server is running on vt0 + +- polished some chars in Util/fonts/vt220l.810, fixed all permissions in + the uuencoded fontfiles. + +- debugged the EGA/VGA curses based font editor 'fed' in Util/fed. It seems + it's working ok now now. + +- updated copyright header files + +- synchronize asynchronous cursor position update with having a valid + (new) cursor (row) position from sputc(). (Otherwise a cursor + would appear temporarily in the first position of the first + function key label in the HP mode) + +- updated screeninfo ioctl and scon to report the monitor type + +- added file Doc/Notes for random notes and hints for pcvt-users. + +- enhanced the pcvtid-ioctl and the ispcvt(8) utility to print out the + values of all "PCVT_XXXXXX" compile time options. + +- included work from Joerg to convert all ifdef's to if's, to be able + to compile various configurations of pcvt without changing + options in the header file. + +- included (currently untested !) patch for a keyboard mouse emulator + from Joerg. (he got problems after he bought a notebook with + just one serial port, which he wanted to use for slip ...) + +- screensaver reset is now also done asynchronously to get more speed. the + function average() was renamed to async_update(). + +- cursor position update and cursor position display in HP mode is now done + asynchronously in function average() in pcvt_sup.c. the function + update_cursor does no longer exist. this gave about 10..30% increase + in speed depending on the data cat'ed (termcap, kernel, 1Mb nulls) + +- HP function key emulation processing debugged, this has to be rewritten + to use a stack and a new parser. elm -K now works a bit more, the + display is not garbled anymore, but fkey strings do not work. + +- pcvt_vtf.c split off from pcvt_out.c, file got > 100k. Checked all + forward declarations in header and source files + +- 132 column support for Cirrus Logic CL-GD542X chipsets written by + Onno van der Linden, c/o vdlinden@fwi.uva.nl + +- keyboard scancode display (#define PCVT_SHOWKEYS) + +- printscreen keycode fix form Onno van der Linden + +- Util/Makefile.inc added .depend dependency for make depend + +- pcvt_ioctl.h is now installed into /usr/include/machine. + +- keyboard scancode 1 is now used by default, perhaps it cures some problems + +- support for keyboard scancodes sets 1 and 2 (compile time selectable via + PCVT_SCANSET), patch from Onno van der Linden, c/o vdlinden@fwi.uva.nl + +- Util/fontedit.c updated to "#if defined (__386BSD__) || defined (__NetBSD__)" + (suggested by Mark Weaver, Mark_Weaver@brown.edu) + +- 132 column support for S3 86c928 chipsets + +- split off pcvt_ext.c from pcvt_sup.c, it was more than 100k .... + +- intro of Doc/Manifest and Doc/TestedHardware, removed README.X-PATCH because + it was now really outdated + +- superprobe compatibility patches from Joerg + +- intro of file Doc/BugList + +- another powerpatch from Joerg: + - some vgaioctl's are now available if in X mode (i.e. to scon to + another screen from within an xterm) + - removed bug in keyboardhandling, numlock'ed numkeys did send an + additional null (0x00) char, this has been fixed now. + - SysRq key made functional + +- made force 24 lines (see below) the default configuration to have a well + behaving vt220 emulator at startup. + +- every vt now has a separate caps-lock, num-lock and scroll-lock flag and + a separate handling of these lock-keys. + +- made sleeping in case of scroll lock working from an earlier patch from Joerg. + +- large patch from Joerg: + - Doc/pcvt.4 updated to reflect recent changes + - struct winsize set ok when switching between HP/VT + - struct winsize pixels reflect real values now + - ioctl for switching between 80 and 132 cols + - 132 columns for generic VGA's + - updated scon to provide access to ioctl 80/132 col switching + +- removed pcconcoftc and kbdsoftc structures from header files, removed + pcconsintr variable and introduced kbd polling synchronization + variable kbd_polling. + +- merging Joerg's patch to support 132 columns on Tseng Labs ET3000 + +- moved Util/uemacs/* --> Etc/uemacs.tar.Z.uu + +- added patches from Joerg for new Makefiles in Util + +- added keyboard security define's to the new X server code + +- adding bugfixes from Joerg Wunsch for "old" (= non vt switching) X server + +- Control-Alt-Functionkey(1...12) switches now virtual screens/terminals to + behave consistently with xfree 2.0, also the pages are now checked + against the real no. of terminals available ALL the time ... + +- pcvt_hdr.h: changed "int pcstart();" to "void pcstart();" to avoid warning + message when compiling under NetBSD-current + +- Doc dir split into Doc and Etc, Support renamed to Util + +- adding NetBSD-current support for new X server support (syscframe changed + to trapframe in NetBSD-current as of 11/11/93) + +- adding Joergs changes for XFree86 2.0 multiple X server and/or terminal + session support + +- adding entries from patchkit 0.2.4 codrv keymap to Support/keycap/keycap.src + +- Keyboard security introduced into the XSERVER dependent part in pcvt_drv.c + +- renamed device files from /dev/ttycXX to /dev/ttyvXX + +- added file Doc/pcvt.el from Joerg Wunsch to distribution + +- added HP-mode function key map from Gordon L. Burditt to description + in Doc/Keyboard.HP + +- fixed bug in scon which prevents it from showing the correct status of + 132 column support of chipset + +- 132 column mode for Trident TVGA9000 works now, after 2 1/5 months of + calling everybody i eventually got a tech ref manual from Trident .... + +- it is now possible to "force" pcvt into a 24 line mode when operating + in pure VT mode with 25 lines or in HP mode with 28 lines. This + is sometimes necessary when running software which assumes it runs + on a "real" VT220 which has just 24 lines. + +- updated scon to support the 24 lines force mode (scon -f [ on | off ]) + +- soft reset fkey now positions cursor into left upper corner, update_cursor() + made global function + +- updated scon (-l) to print out additional info about the vga chipset, + family and 132 column support if VGA detected. + +- added additional fields to screeninfo structure in pcvt_ioctl.h to be + able to return information about current vga chipset. + +- moved VGA type/family definitions from pcvt_hdr.h to pcvt_ioctl.h + +- Terminfo and Termcap updated to support 132 columns + +- fixed bug in kcon which outputs garbage for remapped keys in kcon -l. + (reported by Gordon L. Burditt, gordon@sneaky.lonestar.org) + +- modified Makefile for Support/ispcvt to copy it for installation instead + of moving it .. + +- renamed /usr/share/misc/keycap -> /usr/share/misc/keycap.pcvt to + avoid nameclash with same file for codrv (Gordon Burditt) + +- security bit no longer ignored when initializing keyboard (see #define + PCVT_USEKBDSEC in pcvt_hdr.h, suggested by Terry Lambert) + +- cpufunc.h include made only for NetBSD (Gordon Burditt) + +- switch statement in pcvt_drv.c removed for 386BSD (Gordon Burditt) + +- Trident cursor size bug removed + +- keyboard initialization for ddb + +- added support for cursor on/of switching, screensaver and DECTCEM + +- removed explicit Hercules support, MDA = Hercules in this context now + +- patchkit from Joerg Wunsch (kbd-overlay malloc, scroll_sleep, clip fix) + +- ispcvt now installed into /usr/sbin + +- removed PCVT_NETBSD08 and PCVT_NETBSDCU, intro of PCVT_NETBSD + +- implemented 132 column operation for wd90c11 chipsets + +- PCVT_PREPATCH022 renamed to PCVT_NEEDPG + +- INSTALLATION.NetBSD written + +- DEVICE in kcon makefile changed from /dev/console to /dev/ttyc0 + +- new keyboard code in pcvt_kbd.c from NetBSD current + +- new /etc/rc.local script in INSTALLATION + +- implemented 132 column operation for et4000 chipsets + +- detection of super vga chipsets as a prerequisite for 132 col mode + +- switched to memory mapped virtual screen operation, configurable no. of + virtual screens, virtual screens now also on MDA and Hercules boards + + +Changes 2.10 -> 2.20 June 1993 +-------------------------------------------------------------------------------- + +- added new option -a to scon to get the video adaptor in scripts + +- support for NetBSD-current, define PCVT_NETBSDCU to enable it + +- Support for NetBSD 0.8, define PCVT_NETBSD08 in pcvt_hdr.h to enable it. + +- Change Support/Makefile to use <bsd.subdir.mk> instead of <bsd.prog.mk> + +- Font editor for the EGA/VGA font-files added to support the design of new + fonts. One will need Zeyd M. Ben-Halim's ncurses library to compile it, see + file README.FIRST for information where to get it + +- Doc/INSTALLATION upgraded + +- Terminfo entry added to support Zeyd M. Ben-Halim's ncurses port + +- ispcvt is now installed in /sbin to have it at boottime if /usr is not + yet mounted. + +- applied a patch which prevents CAPS LOCK, SHIFT LOCK, and SCROLL LOCK + from being repeated (causing i.e a flashing CAPS LOCK led while + holding CAPS LOCK key down). + (diff from Gordon L. Burditt, gordon@sneaky.lonestar.org) + +- merging patches to support the pccons-model of X11 server support + (diff from Joerg Wunsch, joerg_wunsch@uriah.sax.de) + +- file pcvt_drv.c routine pg() enclosed in "#ifdef PCVT_PREPATCH022" to solve + multiple defined symbols beginning with patchkit 0.2.2 + (reported by Marko Karppinen, dreamer@purkki.apu.fi) + +- added british keycap entry into keycap source file + (from Andy Duplain, duplain@rtf.bt.co.uk) + + +Changes 2.00 -> 2.10 March 1993 +-------------------------------------------------------------------------------- + +- detecting the presence of video boards has been changed to ask the + BIOS "equipment byte" in the RTC-CMOS ram what's installed. this caused + many discussions but solved also many problems .... + +- driver name changed from "pc" to "vt" for multiple driver coexistence + (diff from Joerg Wunsch, joerg_wunsch@uriah.sax.de) + +- new devicenames recommended for showup in utils like "ps" + (many people suggested that ..) + +- new location for manual pcvt.0 + (diff from Joerg Wunsch, joerg_wunsch@uriah.sax.de) + +- new demo file "sgr.vt" to show available graphic renditions + +- intro of Doc/ChangeLog (this file) + +- fixed bug in Support/keycap/Makefile + (diff from Gordon L. Burditt, gordon@sneaky.lonestar.org) + +- make vttest (main.c) compile after applying patchkit-beta2 + +- screensaver fixed by Joerg Wunsch + +- screensaver now compiled in by default + +- made recognition of CONTROL-ALT-DELETE an optional #ifdef'ed feature + +- added sgr-conversion table for MDA adaptors + +- fixed sgr-conversion table for VGA monochrome environments + +- added support for using the kernel debugger + (diff from Bruce Evans, bde@runx.oz.au) + +- fixed several bugs regarding monochrome environments in pcvt_sup.c + +- fixed bug in scon preventing one from piping output though more + (reported by Gordon L. Burditt, gordon@sneaky.lonestar.org) + +- display current screen number in HP-mode in the bottom right of screen + +- changed names of all #define-able compile time options to start with + "PCVT_" for easy identification and installation into the kernel config file + +- applied another pcvt_kbd.c patchkit from Bruce Evans, bde@runx.oz.au. he + writes: + + These fixes are mainly related to ddb. sgetc has a weird interface that + has caused some bugs, and it was too easy for ddb to reenter itself. + + 1. Don't use char for keypad2num, char might be unsigned. Space is not + important since the array is small. + + 2. Don't use u_short for n. + + 3. Change some 0's to NULLs. + + 4. sgetc must not return NULL for the !noblock case. Only callers with + noblock set check for the null pointer. When the kernel follows a + null pointer, I think page 0 is sometimes mapped in so nothing bad + happens. The kernel panics if the page is not mapped in. + + 5. Reentrancy fix. The debugger really ought to check for reentrancy + itself, but the driver still needs to return early after the + debugger returns, so that it doesn't return a junk ESC from + ctrl-alt-ESC. + + 6. xlatkey2ascii may return NULL too. + +-------------------------------------------------------------------------------- diff --git a/usr.sbin/pcvt/Misc/Doc/CharGen b/usr.sbin/pcvt/Misc/Doc/CharGen new file mode 100644 index 0000000..c047bfa --- /dev/null +++ b/usr.sbin/pcvt/Misc/Doc/CharGen @@ -0,0 +1,149 @@ +Character Generator description (before it gets lost ..) +-------------------------------------------------------------------------------- + +The lower character generator is the default IBM character set II. + +The description of the higher character generator follows below. The +character names are taken from the "Postscript Language Reference +Manual", 2nd Edition, Fourth printing July 1991, pp 596. + +NOTE: The hex values here are NOT the values the character is identified + by in the emulator. The "physical" (vt220 character) to "logical" + (this table, character generator) conversion is done in the character + output routine by using the tables from file pcvt_tbl.h. + +The order of the characters is not regular and was largely influenced by +the status of my brain while pixel-placing characters .... + +HEX What +--- ------------------------------------------------- +00 Control code display for +. control characters in the +1f range 0x00 - 0x1f + +20 Control code display for +. control characters in the +3f range 0x80 - 0x9f + +HEX What +--- ------------------------------------------------- +40 rho +41 psi +42 partialdiff +43 lambda +44 iota +45 eta +46 epsilon +47 chi +48 logicaland +49 logicalor +4a union +4b propersuperset +4c propersubset +4d gamma +4e Xi +4f Psi + +HEX What +--- ------------------------------------------------- +50 Pi +51 arrowdblright +52 arrowdblboth +53 Lambda +54 Theta +55 congruent +56 gradient +57 Delta +58 proportional +59 therefore +5a integral +5b fraction +5c (inverted fraction ????) +5d angle +5e (inverted angle ????) +5f braceleftmid + +HEX What +--- ------------------------------------------------- +60 bracerightmid +61 bracelefttp +62 braceleftbt +63 bracerighttp +64 bracerightbt +65 radical +66 omega +67 (Yen ??) +68 xi +69 yacute +6a thorn +6b eth +6c Thorn +6d Yacute +6e multiply +6f Eth + +HEX What +--- ------------------------------------------------- +70 threequarters +71 Cedillasmall +72 Acutesmall +73 emdash +74 registered +75 endash +76 logicalnot +77 dieresis +78 notequal +79 scan 9 +7a scan 7 +7b scan 5 +7c scan 3 +7d scan 1 +7e upsilon +7f emptyset + +HEX What +--- ------------------------------------------------- +80 oe +81 Otilde +82 atilde +83 Ydieresis +84 Ucircumflex +85 Uacute +86 Ugrave +87 Oslash +88 OE +89 Otilde +8a Ocircumflex +8b Oacute +8c Ograve +8d Idieresis +8e Icircumflex +8f Iacute + +HEX What +--- ------------------------------------------------- +90 Igrave +91 Edieresis +92 Ecircumflex +93 Egrave +94 Atilde +95 Acircumflex +96 Aacute +97 Agrave +98 onesuperior +99 (small black rectangle) +9a zeta +9b threesuperior +9c copyright +9d currency +9e kappa +9f (inverted question mark) + +HEX What +--- ------------------------------------------------- +a0 the remaining positions +. are used for the vt220 +ff downloadable characterset + +------------------------------------------------------------------------------- + (phoooo ..) diff --git a/usr.sbin/pcvt/Misc/Doc/Charsets b/usr.sbin/pcvt/Misc/Doc/Charsets new file mode 100644 index 0000000..b30dd8a --- /dev/null +++ b/usr.sbin/pcvt/Misc/Doc/Charsets @@ -0,0 +1,99 @@ + +I. Character Set Selection on VT220 Terminals +================================================== + + +name C0 GL C1 GR + +---+ +-------------------+ +---+ +-------------------+ + |00h| | | |80h| | | +range | | | | 20h .. 7fh | | | | | a0h .. ffh | + |1fh| | | |9fh| | | + +---+ +-------------------+ +---+ +-------------------+ +length 32 96 32 96 + + /\ +SECOND /||\ "lock"- or "single"-shift one set of G0, G1, G2 or +STEP || G3 into one of the "displayable" charactersets GL + || or GR. (escape) sequences are: SI, SO, ESC ~, ESC n, + || ESC }, ESC o, ESC |, ESC N and ESC O. + + +----+ +----+ +----+ +----+ +name | G0 | | G1 | | G2 | | G3 | +length |(96)| |(96)| |(96)| |(96)| + +----+ +----+ +----+ +----+ + + /\ + /||\ designate a hard or a soft character set as + || one of G0, G1, G2 or G3, used escape sequences +FIRST || are, ESC ( X, ESC ) X, ESC * X and ESC + X - where X is +STEP || B for ascii, < for supplemental, 0 for special, A for + || british, 4 for dutch, C and 5 for finnish etc. etc. ... + || + + +-----+ +------------+ +--------+ +-----------+ +------------+ +name |ascii| |supplemental| |special | | national | |downloadable| + | | | graphics | |graphics| |replacement| |characterset| +length | (96)| | (96)| | (96)| | (96)| | (96)| + +-----+ +------------+ +--------+ +-----------+ +------------+ + + \-------\ /----------/ norway/danish + | dutch + together, this is also finnish + referred to as the french + multinational character french canada + set (power on default german + on a dec vt220) italian + spanish + swedish + swiss + + +II. Emulating Character Set Selection +========================================= + +MDA/HCG/CGA: + + just a partial emulation is done, because these boards don't allow + downloadable charactersets. some characters simply don't display + because they are not in the characterset roms on the video board. + + if you want to change the mapping, have a look at the default tables + in pcvt_tbl.h. + +EGA/VGA: + + these cards have provisions for downloadable charactersets and so + many vt220/vt320 charactersets are fully supported: + + - US Ascii + - DEC Supplemental + - DEC Special Graphic + - DEC Technical + - ISO Latin-1 + - Downloadable + + when the emulator is started, it behaves initially similar to + the MDA/CGA/HCG method described above. + + when a second (special) characterset for a given screen resolution + is loaded via the "loadfont" utility, the emulator detects this fact + and uses from then on extended tables to access the second charset + as an upper half 512 characterset in terms of ega/vga speak. + + from this time on, vt220 downloadable fonts are usable. + + the organization of this extended characterset is as follows: + + 0x00 ... 0x1f C0 display function fonts + 0x20 ... 0x3f C1 display function fonts + 0x40 ... 0x9f fonts for DEC Supplemental, DEC Special + Graphic, DEC Technical and ISO Latin-1 + 0xa0 ... 0xff VT220 Downloadable Font + + the mapping between vt220 charactersets and the charactersets inside + the ega/vga is done by tables found in the file pcvt_tbl.h. + + there is a MSDOS fonteditor called "EVAFONT" available on the + SIMTEL-20 archive, which i used to edit the character sets in the + distribution. + diff --git a/usr.sbin/pcvt/Misc/Doc/EscapeSequences b/usr.sbin/pcvt/Misc/Doc/EscapeSequences new file mode 100644 index 0000000..8e0e2c7 --- /dev/null +++ b/usr.sbin/pcvt/Misc/Doc/EscapeSequences @@ -0,0 +1,268 @@ + Control Codes and Escape Sequences supported by pcvt +=============================================================================== + +CONTROL CODES +------------------------------------------------------------------------------- + + NUL (0x00) ignored + SOH (0x01) ignored + STX (0x02) ignored + ETX (0x03) ignored + EOT (0x04) ignored + ENQ (0x05) ignored + ACK (0x06) ignored + + BEL (0x07) beep + + BS (0x08) move one character position to the left + until at left margin + + HT (0x09) move to next tab stop + + LF (0x0a) move to next line, same column + VT (0x0b) move to next line, same column + FF (0x0c) move to next line, same column + + CR (0x0d) move to left margin on current column + + SO (0x0e) invoke character set G1 into GL + SI (0x0f) invoke character set G0 into GL + + DLE (0x10) ignored + DC1 (0x11) ignored + DC2 (0x12) ignored + DC3 (0x13) ignored + DC4 (0x14) ignored + NAK (0x15) ignored + SYN (0x16) ignored + ETB (0x17) ignored + + CAN (0x18) abort current escape sequence + + EM (0x19) ignored + + SUB (0x1a) abort current escape sequence + + ESC (0x1b) start of escape sequence + + FS (0x1c) ignored + GS (0x1d) ignored + RS (0x1e) ignored + US (0x1f) ignored + + VT220 control codes in the range 0x80 .. 0x9f are completely ignored, + but displayed as C1 display controls. + + +ESCAPE SEQUENCES DIGITAL EQUIPMENT +------------------------------------------------------------------------------- + +(ni) = not implemented yet, all hooks available inside emulator! +<p> = numeric parameter + + ESC space F select 7-bit c1 control transmission (ni) + ESC space G select 8-bit c1 control transmission (ni) + + ESC # 3 double height top half (ni) + ESC # 4 double height bottom half (ni) + ESC # 5 single width single height (ni) + ESC # 6 double width single height (ni) + + ESC # 8 fill screen with 'E's + + ESC 7 save cursor + + ESC 8 restore cursor + + ESC = keypad application mode + + ESC > keypad numeric mode + + ESC D index + + ESC E next line + + ESC H set tab at cur col + + ESC M reverse index + + ESC N single shift G2 + + ESC O single shift G3 + + ESC Z who are you + + ESC d Only available if PCVT_SETCOLOR was defined when + compiling the kernel, allows to set custom color table + for more info, see pcvt_out.c ... + + ESC c power up reset + + ESC n Lock Shift G2 -> GL + + ESC o Lock Shift G3 -> GL + + ESC } Lock Shift G2 -> GR + + ESC | Lock Shift G3 -> GR + + ESC ~ Lock Shift G1 -> GR + + ESC [ ? <p> h set dec private modes + ESC [ ? <p> l reset dec private modes + 1 CKM - cursor key mode + 6 OM - origin mode + 7 AWM - auto wrap mode + + ESC [ <p> ' z DECELR - Enable Locator Report (ni) + + ESC [ <p> ' { DECSLE - Select type of locator events (ni) + + ESC [ ? n Terminal Reports + + ESC [ ? K selective erase in line + + ESC [ ? J selective erase in display + + ESC [ <p> @ insert char(s) + + ESC [ <p> A cursor up + + ESC [ <p> B cursor down + + ESC [ <p> C cursor forward + + ESC [ <p> D cursor backward + + ESC [ <p> H cursor direct cursor addressing + + ESC [ <p> J erase screen + + ESC [ <p> K erase line + + ESC [ <p> L insert line + + ESC [ <p> M delete line + + ESC [ <p> P delete char + + ESC [ <p> S scroll up + + ESC [ <p> T scroll down + + ESC [ <p> X erase character + + ESC [ <p> c device attributes + + ESC [ <p> f direct cursor addressing + + ESC [ <p> g clear tabs + + ESC [ <p> h set mode + ESC [ <p> l reset mode + 4 IRM - insert replacement mode + 20 LNM - line feed / newline mode + + ESC [ <p> i media copy (ni) + + ESC [ <p> m select graphic rendition + 0 reset to normal attributes + 1 bold + 4 underline + 5 blinking + 7 reverse + 22 bold off + 24 underline off + 25 blinking off + 27 reverse off + 30-37 foreground colors (on color display) + 40-47 background colors (on color display) + + ESC [ <p> n device status report + + ESC [ <p> r set scrolling region + + ESC [ <p> x request / report terminal parameters + + ESC [ <p> y invoke selftests (ni) + + + ESC [ x request/report parameters + ESC [ y invoke seftest(s) + + ESC [ " q SCA + ESC [ ! p SCA + + ESC ( <p> designate G0 + ESC ) <p> designate G1 + ESC * <p> designate G2 + ESC + <p> designate G3 + ESC - <p> designate G1 (96) + ESC . <p> designate G2 (96) + ESC / <p> designate G3 (96) + A British or ISO-Latin-1 + B USASCII + C Finnish + 5 Finnish + E Norwegian/Danish + 6 Norwegian/Danish + H Swedish + 7 Swedish + K German + Q French Canadien + R French + Y Italian + Z Spanish + 0 special graphics + 1 alternate ROM + 2 alt ROM, spec graphics + 3 HP Roman 8, upper 128 chars*/ + 4 Dutch + < DEC Supplemental + = Swiss + > DEC Technical + + +ESCAPE SEQUENCES HEWLETT-PACKARD +------------------------------------------------------------------------------- + +ESC&f<attr>a<key>k<llen>d<slen>L<label><string> set function key label + + attr = attribute, 0 - normal (not implemented) + 1 - local only (not implemented) + 2 - transmit only (not implemented) + + key = function key number, range 1 .. 8 + + llen = label string length + + slen = string string length + + label = label data (up to 16 chars per label) + + string = string to send data (up to 80 chars per label) + (not implemented) + +EXAMPLE: +======== + + ESC&f0a1k16d1LFUNCTION KEY 0 + + sets function key label 1 to "FUNCTION KEY ". + should program fkey 1 to emit "0" on keypress + + +ESC&j<parm> function key operations + + parm = '@' remove the function key labels from screen + + parm = 'A' display the modes set of function key labels + + parm = 'B' enable & display user function key labels + + parm = 'C' clear message & restore the current key labels + + parm = 'R' enable usr/sys and menu and label modes + + parm = 'S' disable usr/sys and menu and label modes + diff --git a/usr.sbin/pcvt/Misc/Doc/Keyboard.HP b/usr.sbin/pcvt/Misc/Doc/Keyboard.HP new file mode 100644 index 0000000..06ad5b7 --- /dev/null +++ b/usr.sbin/pcvt/Misc/Doc/Keyboard.HP @@ -0,0 +1,286 @@ +================================================================================ +# # +# Function key mapping for the "more HP" - like layout # +# # +================================================================================ + + +I. Function Key Map +======================== + + +PC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +Key + _________________________________________________________________________ +UNSHF| 132 | Soft| | | | 7/8 | Dspl| Auto| SCRN| SCRN| SCRN| SCRN| +SYS | Cols|Reset| | | Beep| Bit | Func| Wrap| 0 | 1 | 2 | 3 | +LABEL|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____| +UNSHF| | | | | | | | | SCRN| SCRN| SCRN| SCRN| +USER | F6 | F7 | F8 | F9 | F10 | F11 | F12 | F13 | 0 | 1 | 2 | 3 | +LABEL|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____| + | | | | | | | | | Fkey| U/S |VT/HP| Next| +ALT | F14 | HELP| DO | F17 | F18 | F19 | F20 | F21 |Label|Label| Mode| SCRN| + |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____| + | User| User| User| User| User| User| User| User| | | | | +SHIFT| F6 | F7 | F8 | F9 | F10 | F11 | F12 | F13 | | | | | + |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____| +ALT- | User| User| User| User| User| User| User| User| | | | | +SHIFT| F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | | | | | + |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____| +CTRL-| SCRN| SCRN| SCRN| SCRN| SCRN| SCRN| SCRN| SCRN| SCRN| SCRN| SCRN| SCRN| +ALT | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | + |_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____| + +PC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | +Key + + + +II. Special Keys Used To Change The General Runtime Functionality +===================================================================== + + + To be consistent with XFfree86 2.0 Virtual Screen switching, it is + now also possible to switch screens by using: + + CTRL - ALT - Fx , where x can be 1 ... No of screens compiled, + see the definition of PCVT_NSCREENS ! + + + Virtual Screen/Terminal switching + --------------------------------- + + F9 or CTRL-ALT-F1 switches to screen 0 + F10 or CTRL-ALT-F2 switches to screen 1 + F11 or CTRL-ALT-F3 switches to screen 2 + F12 or CTRL-ALT-F4 switches to screen 3 + CTRL-ALT-F5 switches to screen 4 + CTRL-ALT-F6 switches to screen 5 + CTRL-ALT-F7 switches to screen 6 + CTRL-ALT-F8 switches to screen 7 + CTRL-ALT-F9 switches to screen 8 + CTRL-ALT-F10 switches to screen 9 + CTRL-ALT-F11 switches to screen 10 + CTRL-ALT-F12 switches to screen 11 + + (see also ALT-F12 below) + + + ALT-F9 Function key labels ON / OFF + ------------------------------------ + + this key is only operational, when in HP/VT mode, see F11 + + ALT-F9 toggles between function key labels displayed or not. + + ON: screen has either 25-3 = 22, 28-3 = 25 or 50-3 = 47 lines + 2 lines fkey labels displayed + row/col display enabled + 1 line status/load avg line + + OFF: screen has either 25-3 = 22, 28-3 = 25 or 50-3 = 47 lines + no function key labels displayed + no row/col display + no status/load avg line + + applicable escape sequences: + + switch OFF: + ESC & j @ remove labels from screen + + switch ON: + ESC & j A display system fkey labels + ESC & j B display user fkey labels + ESC & j C display current fkey labels + + + ALT-F10 User / System Function key labels + ----------------------------------------- + + this key is only operational, when in HP/VT mode, see ALT-F11 + + ALT-F10 toggles between the display of user or system + function key labels + + this key is only active if labels are toggled on via + the ALT-F9 function key + + screen has either 25-3 = 22, 28-3 = 25 or 50-3 = 47 lines + 2 lines fkey labels displayed + row/col display enabled + 1 line status/load avg line + + + applicable escape sequences: (see above) + + ESC & j A display system fkey labels + ESC & j B display user fkey labels + ESC & j C display current fkey labels + + + ALT-F11 Toggle between pure VT and HP-VT Emulation + -------------------------------------------------- + + This key switches between pure vt100/vt220 mode and + vt100/vt220 with hp-fkey-labels mode of operation. + this is not dependent of any screen resolution the + virtual consoles are in. + + initially, after power on, all virtual screens are in + the pure vt-mode: + + - the emulator does not execute any hp escape sequences + - the function key label lines are switched off + - no load average or status line is displayed + - no row / column counter is displayed + - no window number is displayed + - the full screen 25x80, 28x80 or 50x80 is usable + - ALT-F9 and ALT-F10 have no function + + when toggled to the vt/hp mix of operation, the following + changes take place: + + - the emulator executes the supported hp-esc sequences + - the function key labels are displayable depending + on the state of ALT-F9/F10 + - the load average is displayed + - the row / column counters are displayed + - the window number is displayed in the lower right corner + - in any screen resolution, the last 3 lines are lost, + so one has a 22x80, 25x80 and 47x80 resolution + - F9 and F10 are operational. + + when switching modes by means of ALT-F11, the following + changes to the current environment, the emulator may + be in, apply: + + - the screen is cleared + - the cursor moves to the home position + - the scrolling region is reset to default + + (this functionality is available via an ioctl) + + ALT-F12 Cycle current screen + ---------------------------- + + This key cycles through the display of the video + screens. on startup, screen 0 is displayed; with every + keypress of F12, the next screen is displayed, wrapping + from the maximum screen number back to screen 0. + + (this functionality is available via an ioctl) + + +III. Special Keys used to change the Runtime Functionality of a Page +======================================================================= + + when in mixed HP/VT mode, one has two types of function key labels + on screen, user function keys and system function keys. + + this functionality is NOT available in pure VT220 mode ! + + the user function keys emit the below mentioned VT220 function- + key sequences. the labels can be reprogrammed by use of escape + sequences. + + in system function key mode, several pre-programmed functions inside + the emulator can be toggled, currently implemented are: + + - F1, if a chipset is detected for which 132 operation is supported, + F1 toggles between 80 columns and 132 columns. + - F2, does a soft reset of the emulator code + - F3, -/- + - F4, -/- + - F5, toggle the audible beep generation + - F6, toggle 7/8 bit char width + - F7, toggle display functions. this means that control codes + in the range 0x00 to 0x1f are not EXECUTED by the emulator + any longer, but displayed on the screen + - F8, toggle automatic cursor wraparound at end of line + + these functions operate just for the selected screen + + +IV. Keyboard VT220 compatibility +==================================== + + The following keys behave different as probably expected. + + They were mapped to provide more VT220 compatibility. + + To have F1-F8 emit something in HP-mode, you have to switch + to user function key labels by using ALT-F10 (see ALT-F10 above) ! + + PC Keyboard VT220 Keyboard + ------------- -------------------------------------------------- + F1 F6 (ESC [ 17 ~) + F2 F7 (ESC [ 18 ~) + F3 F8 (ESC [ 19 ~) + F4 F9 (ESC [ 20 ~) + F5 F10 (ESC [ 21 ~) + F6 F11 (ESC [ 23 ~) + F7 F12 (ESC [ 24 ~) + F8 F13 (ESC [ 25 ~) + ALT-F1 F14 (ESC [ 26 ~) + ALT-F2 HELP (ESC [ 28 ~) + ALT-F3 DO (ESC [ 29 ~) + ALT-F4 F17 (ESC [ 31 ~) + ALT-F5 F18 (ESC [ 32 ~) + ALT-F6 F19 (ESC [ 33 ~) + ALT-F7 F20 (ESC [ 34 ~) + ALT-F8 F21 (ESC [ 35 ~) (i know !!!!) + + SHIFT-F1 ... SHIFT-F8 + User Defined Keys for F6 - F13 + + ALT-SHIFT-F1 ... ALT-SHIFT-F8 + User Defined Keys for F14 - F20 + + Insert Insert Here (ESC [ 2 ~) + + Delete Remove (ESC [ 3 ~) + + Home Find (ESC [ 1 ~) + + End Select (ESC [ 4 ~) + + PgUp Prev Screen (ESC [ 5 ~) + + PgDn Next Screen (ESC [ 6 ~) + + PrtSc (ignored) + + Pause (ignored) + + Break (ignored) + + Cursor Keys dependent upon state of cursor key mode either + ESC [ A ... ESC [ D or ESC O A ... ESC O D + + NumLock toggles Numeric Keypad for Keypad Numeric Mode + and Keypad Application Mode + + ALT-Keypad-0 can be used to generate any keycode in the + ALT-Keypad-1 rage 0-255. + ALT-Keypad-2 this was modeled with the behaviour of a + ALT-Keypad-3 popular boot loader in mind + ALT-Keypad-4 + ALT-Keypad-5 + ALT-Keypad-6 + ALT-Keypad-7 + ALT-Keypad-8 + ALT-Keypad-9 + + Numeric Keypad dependent upon state of keypad numeric/application + mode either 0 ... 9 or ESC O p ... ESC O y + + ALT-NumLock emits PF1 sequence (ESC O P) + + ALT-Keypad-/ emits PF2 sequence (ESC O Q) + + ALT-Keypad-* emits PF3 sequence (ESC O R) + + ALT-Keypad-- emits PF4 sequence (ESC O S) + + +/* EOF */ diff --git a/usr.sbin/pcvt/Misc/Doc/Keyboard.VT b/usr.sbin/pcvt/Misc/Doc/Keyboard.VT new file mode 100644 index 0000000..4353ec7 --- /dev/null +++ b/usr.sbin/pcvt/Misc/Doc/Keyboard.VT @@ -0,0 +1,231 @@ +================================================================================ +# # +# Function key mapping for the "more VT220" - like layout # +# # +================================================================================ + + +I. Special Keys Used To Change The General Runtime Functionality +===================================================================== + + + CTRL-F9 Function key labels ON / OFF + ------------------------------------ + + this key is only operational, when in HP/VT mode, see CTRL-F11 + + CTRL-F9 toggles between function key labels displayed or not. + + ON: screen has either 25-3 = 22, 28-3 = 25 or 50-3 = 47 lines + 2 lines fkey labels displayed + row/col display enabled + 1 line status/load avg line + + OFF: screen has either 25-3 = 22, 28-3 = 25 or 50-3 = 47 lines + no function key labels displayed + no row/col display + no status/load avg line + + applicable escape sequences: + + switch OFF: + ESC & j @ remove labels from screen + + switch ON: + ESC & j A display system fkey labels + ESC & j B display user fkey labels + ESC & j C display current fkey labels + + + CTRL-F10 User / System Function key labels + ------------------------------------------------- + + this key is only operational, when in HP/VT mode, see CTRL-F11 + + CTRL-F10 toggles between the display of user or system + function key labels + + this key is only active if labels are toggled on via + the CTRL-F9 function key + + screen has either 25-3 = 22, 28-3 = 25 or 50-3 = 47 lines + 2 lines fkey labels displayed + row/col display enabled + 1 line status/load avg line + + + applicable escape sequences: (see above) + + ESC & j A display system fkey labels + ESC & j B display user fkey labels + ESC & j C display current fkey labels + + + CTRL-F11 Toggle between pure VT and HP-VT Emulation + ---------------------------------------------------------- + + This key switches between pure vt100/vt220 mode and + vt100/vt220 with hp-fkey-labels mode of operation. + this is not dependent of any screen resolution the + virtual consoles are in. + + initially, after power on, all virtual screens are in + the pure vt-mode: + + - the emulator does not execute any hp escape sequences + - the function key label lines are switched off + - no load average or status line is displayed + - no row / column counter is displayed + - the full screen 25x80, 28x80 or 50x80 is usable + - CTRL-F9 and CTRL-F10 have no function + + when toggled to the vt/hp mix of operation, the following + changes take place: + + - the emulator executes the supported hp-esc sequences + - the function key labels are displayable depending + on the state of CTRL-F9/CTRL-F10 + - the load average is displayed + - the row / column counters are displayed + - in any screen resolution, the last 3 lines are lost, + so one has a 22x80, 25x80 and 47x80 resolution + - CTRL-F9 and CTRL-F10 are operational. + + when switching modes by means of CTRL-F11, the following + changes to the current environment, the emulator may + be in, apply: + + - the screen is cleared + - the cursor moves to the home position + - the scrolling region is reset to default + + (this functionality is available via an ioctl) + + F5 Cycle current page + -------------------------- + + This key cycles through the display of the video + pages. on startup, page 0 is displayed; with every + keypress of F5, the next page is displayed, wrapping + from the maximum page number back to page 0. + + F1 switches to page 0 + F2 switches to page 1 + F3 switches to page 2 + F4 switches to page 3 + + Shift-F1 -- select screen 4 + Shift-F2 -- select screen 5 + Shift-F3 -- select screen 6 + Shift-F4 -- select screen 7 + Shift-F5 -- select (current screen - 1) + + (this functionality is available via an ioctl) + + +II. Special Keys used to change the Runtime Functionality of a Page +======================================================================= + + when in mixed HP/VT mode, one has two types of function key labels + on screen, user function keys and system function keys. they are + accessed by using the CTRL key while pressing a function key. + + the function key labels are NOT available in pure VT220 mode--although + the function keys are still active + + the user function keys and their labels can be reprogrammed by use of + escape sequences. + + in system function key mode, several pre-programmed functions inside + the emulator can be toggled, currently implemented are: + + - CTRL-F1, toggle 80/132 columns + - CTRL-F2, soft reset emulator + - CTRL-F3, toggle force 24 lines mode + - CTRL-F4, toggle keyboard debugging (if compiled in) + - CTRL-F5, toggle the audible beep generation + - CTRL-F6, toggle 7/8 bit char width + - CTRL-F7, toggle display functions. this means that control codes + in the range 0x00 to 0x1f are not EXECUTED by the emulator + any longer, but displayed on the screen + - CTRL-F8, toggle automatic cursor wraparound at end of line + + these functions operate just for the selected page + + +III. Keyboard VT220 compatibility +==================================== + + The following keys behave different as probably expected. + + They were mapped to provide more VT220 compatibility. + + + PC Keyboard VT220 Keyboard + ------------- -------------------------------------------------- + F6 - F12 emit the sequences for VT220 F6 - F12 keys + (ESC [ 17 ~ .... ESC [ 24 ~) + + ALT F1 - F10 emit the sequences for VT220 F11 - F14, HELP, DO, + F17 - F20 keys + (ESC [ 23 ~ .... ESC [ 34 ~) + + SHIFT F6 - F12 emit the User Definable Key sequences for VT220 + F6 - F12 keys or + (ESC [ 17 ~ .... ESC [ 24 ~) for cleared sequences + + ALTSHIFT F1-F10 emit the User Definable Key sequences for VT220 + F11 - F14, HELP, DO, F17 - F20 keys or + (ESC [ 23 ~ .... ESC [ 34 ~) for cleared sequences + + Insert Insert Here (ESC [ 2 ~) + + Delete Remove (ESC [ 3 ~) + + Home Find (ESC [ 1 ~) + + End Select (ESC [ 4 ~) + + PgUp Prev Screen (ESC [ 5 ~) + + PgDn Next Screen (ESC [ 6 ~) + + PrtSc (ignored) + + Pause (ignored) + + Break (ignored) + + Cursor Keys dependent upon state of cursor key mode either + ESC [ A ... ESC [ D or ESC O A ... ESC O D + + NumLock toggles Numeric Keypad for Keypad Numeric Mode + and Keypad Application Mode + + ALT-Keypad-0 can be used to generate any keycode in the + ALT-Keypad-1 rage 0-255. + ALT-Keypad-2 this was modeled with the behaviour of a + ALT-Keypad-3 popular boot loader in mind + ALT-Keypad-4 + ALT-Keypad-5 + ALT-Keypad-6 + ALT-Keypad-7 + ALT-Keypad-8 + ALT-Keypad-9 + + Numeric Keypad dependent upon state of keypad numeric/application + mode either 0 ... 9 or ESC O p ... ESC O y + + ALT-NumLock emits PF1 sequence (ESC O P) + + ALT-Keypad-/ emits PF2 sequence (ESC O Q) + + ALT-Keypad-* emits PF3 sequence (ESC O R) + + ALT-Keypad-- emits PF4 sequence (ESC O S) + + ALT-F11 emits PF1 sequence (ESC O P) + + ALT-F12 emits PF2 sequence (ESC O Q) + +/* EOF */ diff --git a/usr.sbin/pcvt/Misc/Doc/Makefile b/usr.sbin/pcvt/Misc/Doc/Makefile new file mode 100644 index 0000000..537515e --- /dev/null +++ b/usr.sbin/pcvt/Misc/Doc/Makefile @@ -0,0 +1,11 @@ +# 386BSD and NetBSD +#MAN4= pcvt.0 +#MLINKS= pcvt.0 ../pcvt.0 + +# FreeBSD +#MAN4= pcvt.4 +#MLINKS= pcvt.4 ../pcvt.4 + +MANSUBDIR= /i386 + +.include <bsd.prog.mk> diff --git a/usr.sbin/pcvt/Misc/Doc/Manifest b/usr.sbin/pcvt/Misc/Doc/Manifest new file mode 100644 index 0000000..d4855c4 --- /dev/null +++ b/usr.sbin/pcvt/Misc/Doc/Manifest @@ -0,0 +1,162 @@ + +FILES AND DIRECTORIES - Base Directory [pcvt Release 3.20] +-------------------------------------------------------------------------------- + +Doc Documentation, see below +Etc Additional things, see below +README.FIRST guess what +Util Additional utilities and support, see below + +Driversource Description +------------ -------------------------------------------------------- +pcvt_conf.h Driver, compile-time configuration file +pcvt_drv.c Driver, os-interface +pcvt_ext.c Driver, USL-VT Xserver ioctl's and 132 column support +pcvt_hdr.h Driver, global include file +pcvt_ioctl.h Driver, ioctl's available for the driver +pcvt_kbd.c Driver, keyboard handling +pcvt_kbd.h Driver, keyboard handling header file +pcvt_out.c Driver, VT220 emulator state machine and misc +pcvt_sup.c Driver, support code for ega's/vga's +pcvt_tbl.h Driver, character set to vga charset mapping tables +pcvt_vtf.c Driver, VT220 emulator support functions + +FILES AND DIRECTORIES - Doc +-------------------------------------------------------------------------------- + +Acknowledgements Everyone and everything who/what helped +Bibliography Useful Books and documentation +BugList Things to do +ChangeLog Driver development history +CharGen Description of the character set files +Charsets VT220 and mda/cga/hcs/ega/vga charactersets +EscapeSequences List of supported control codes & escape sequences +INSTALL.386BSD-0.1 Install instructions for 386BSD 0.1 + pk 0.2.4 +INSTALL.FreeBSD-1.1 Install instructions for FreeBSD Release 1.1 or 1.1.5.1 +INSTALL.FreeBSD-2.0 Install instructions for FreeBSD Release 2.0 +INSTALL.NetBSD-0.9 Install instructions for NetBSD Release 0.9 +INSTALL.NetBSD-1.0 Install instructions for NetBSD Release 1.0 +Keyboard.HP Special keys and emulated VT220 keys, one style +Keyboard.VT Special keys and emulated VT220 keys, other style +Makefile Makefile for the pcvt.4 manualpage +Manifest This file +NotesAndHints Random notes and hints +TestedHardware A list of tested Hardware, this is just what we got ... +pcvt.4 Manual page for the driver and ioctl's + + +FILES AND DIRECTORIES - Etc +-------------------------------------------------------------------------------- + +MAKEDEV.pcvt A shell script to mknod the device files +Terminfo A terminfo entry for the emulator, this IS in + fact a VT220 terminfo entry ! +Termcap A termcap entry for the emulator, this IS in fact + a series of VT220 termcap entries which + are extended by 24/25/40/50 lines, 80/132 + columns and HP-function key labels +pcvt.el GNU emacs configuration +rc.local sample script for driver initialization +ttys.pcvt.netbsd sample /etc/ttys.pcvt for NetBSD-current +ttys.pcvt.freebsd sample /etc/ttys.pcvt for FreeBSD 1.1R +ttys.pccons.netbsd sample /etc/ttys.pccons for NetBSD-current +ttys.pccons.freebsd sample /etc/ttys.pccons for FreeBSD 1.1R +uemacs.tar.Z.uu an example of how to use the function key labels. + It consists of some files from/for MicroEmacs 3.11a: + - dot-emacsrc, to be moved to /usr/local/.emacsrc, + startup file for micro emacs, contains setup of + the function key labels + - emacs.hlp, interactive uemacs help system + - unix.c-3.11a the source for the terminal handling +xmodmap-german X-server german keyboard mapping sample + + +FILES AND DIRECTORIES - Util +-------------------------------------------------------------------------------- + +directory description +--------- --------------------------------------------------------------- + +loadfont Program to download charactersets into EGA/VGA character + generator memory. + +cursor Very simple program to set the cursor shape. + +scon Program to control various aspects of terminal emulation, + such as: emulation mode, screen switching etc. + +kcon Program to control various aspects of the keyboard such as + key remapping for national keyboards etc. + +keycap A library for accessing the keycap database + +ispcvt A short program usable in shell scripts to verify that the + current running kernel has pcvt compiled in and that the + the utility version and the driver version are the same. + +fontedit A program to edit VT220 downloadable character sets. + +userkeys A program to edit the VT220 programmable function keys. + +fonts Contains uuencoded binary fontfiles following the naming rule: + + vt220<X>.<YYY>.uu + + <X> can be 'l' or 'h', where 'l' stands for a standard + IBM II charset and is to be loaded first for the + base characterset to support a desired resolution, + and 'h' is the extended characterset needed for proper + VT220 emulation and is to be loaded as the second set + in addition to the above mentioned base characterset. + + <YYY> is the identifier for the character cell size, currently + we have: + 808 = 8x8 - 50 lines on VGA, 43 lines on EGA + 810 = 8x10 - 40 lines on VGA + 814 = 8x14 - 28 lines on VGA, 25 lines on EGA + 816 = 8x16 - 25 lines on VGA + + Files distributed: + + vt220l.808.uu, vt220h.808.uu + vt220l.810.uu, vt220h.810.uu + vt220l.814.uu, vt220h.814.uu + vt220l.816.uu, vt220h.816.uu + +vttest A VT100 compatibility tester. This is a test tool for + VT100 emulation writers and terminal buyers. + +demo - chardemo.vt and colors.vt: These two files are from the + MSDOS-Kermit distribution from the Columbia University. + They can be "cat"-ed to the terminal screen and display + all supported VT220 charactersets and all possible colors + respectively. + - sgr.vt: A demonstration of the various display enhancement + combinations for the DECSGR escape sequence. + - some other VT animations i collected over the time and a + program to play them on pcvt with adjustable delay. + +fed - a simple, System V curses based font-editor for the EGA/VGA + fonts in the above mentioned font - directory. + Fed was developed using Zeyd M. Ben-Halim's ncurses library, + which is available by ftp from netcom.com:pub/zmbenhal/. + +mcon - a program to control the mouse emulation via the keyboard + +kbdio - keyboard controller debugging utility + +vgaio - a program to read and write VGA registers. + ---------------------- CAUTION ------------------------------ + Because you are able to change the timings without check + or warning, this program may permanently damage your monitor. + If you don't know what you are doing, DO NOT USE IT !!!!!!!!! + ------------------------------------------------------------- + +set2061 - a program to set the programmable clock generator on my S3- + based ELSA Winner 1000 VGA board. + ---------------------- CAUTION ------------------------------ + Because you are able to change the timings without check + or warning, this program may permanently damage your monitor. + If you don't know what you are doing, DO NOT USE IT !!!!!!!!! + ------------------------------------------------------------- + diff --git a/usr.sbin/pcvt/Misc/Doc/NotesAndHints b/usr.sbin/pcvt/Misc/Doc/NotesAndHints new file mode 100644 index 0000000..fc5a01a --- /dev/null +++ b/usr.sbin/pcvt/Misc/Doc/NotesAndHints @@ -0,0 +1,256 @@ +Random Notes, Hints and Thoughts +-------------------------------------------------------------------------------- + Last Edit-Date: [Sun Feb 26 12:27:54 1995] + + +First of all, please read the file BugList in this directory ! + + +386BSD port +=========== + +I don't have access to a 386BSD 0.1 machine anymore so the 386BSD pcvt is +considered unsupported and will disappear in the future. + + +Keyboard hangs after first update of keyboard LED's +=================================================== + +Define PCVT_NO_LED_UPDATE and recompile pcvt. + + +Garbled screen when running vi +============================== + +When the terminal speed in the tty structure is set to low speeds (i.e. 1200 +Baud), pcvt shows a strange behaviour in some environments due to the changed +screen update sequences from vi. + +Please check your shell startup files, /etc/ttys and /etc/gettytab and change +the baudrate (i.e. by using stty(1)) to a higher value, i.e. 19200 Baud. + + +Stty influences on the driver +============================= + +There used to be an entry in the BugList: + + (printf with 9 x tab) printf "\n\t\t\t\t\t\t\t\t\tGotcha" works ok, + while one tab more: printf "\n\t\t\t\t\t\t\t\t\t\tGotcha" doesn't + work (it doesn't print Gotcha at column 80, but at column 131). + +This was solved some time ago: + + On another note: if I use stty xtabs, the 'printf "\t\t\t\t\t\t\t" + bug goes away. With stty xtabs the tab handling is done in the kernel. + +(See also below: "Vttest shows strange results") + + +After running some graphics application, the cursor is stuck on the +bottom line, though everything else appears well +=================================================================== + +Though this might initially appear to be a driver problem, it's rather +an application program's bogosity. The cursor update is done asynchron- +ously (to gain output speed), but this cursor update is inhibited while +an application has put a virtual terminal into ``graphics mode'' (i.e., +the application program tells the driver that it's now responsible for +anything and all on this vty). This is notably the case while X11 is +running. + +If the application fails to properly shut down itself, the terminal +might be left in an undefined state. The driver stand no chance there, +even if it could detect this bad status, since it doesn't know enough +about each piece of hardware to deal with. One possibility is that +the X server has been shot up and didn't get it to do its cleanups. +Another case (which i've often noticed on my slow notebook) is, killing +the Xserver is too slow for the (unfortunately hard-coded) 10-second +timeout from xinit, so it's being aborted ridiculously. (``X server +slow to shut down, sending KILL signal.'') This way, the state of +damage might range from ``almost okay, but cursor is stuck'' up to +a totally unusable machine (moon bitmap from xphoon still displayed, +no keyboard responses, only network is working and can be used to +shut down cleanly). +If the state of damage is only minimal, you might try to run the pure +X server on that vty again, and exit it with Ctrl-Alt-BkSpc. This might +be a workaround. + + +Vttest shows strange results +============================ + +Verify your stty "oxtabs" settings, it has to be "oxtabs", NOT "-oxtabs". +Get yourself an original DEC terminal to verify vttest's output, i have +until now not seen any (!) VTxxx clone, which does it right !!! + + +VT220-like Keyboard Layout +========================== + +I have to say, i don't use it and i don't like it, so it's mostly unsupported +and untested. Patches welcome! + + +132-column mode +=============== + +There are known difficulties running pcvt in 132 column mode in conjunction +with X. Switching to 132 column mode does not only depend on a given chipset, +but on the board/manufacturers method of clock generation also. Even if your +chipset is detected, there may be still a problem with your board and it's +method of generating clocks. You may run in severe difficulties if your +board has a programmable clock generator and you run X and you switch from +132 col mode into X and back. + +I have currently no idea how to solve this, other than having a similar +scheme as XFree86 applied to pcvt: Letting the user probe his board by using +SuperProbe and recompiling pcvt according to the result. + +I stumbled a bit deeper into this with my ELSA Winner 1000, which is equipped +with a ICD2061 clock synthesizer chip. For 132 column mode to work properly, +clock generator 2 must deliver 40 MHz to the S3 VGA chip, but this value has +to be programmed or initialized. If this VGA board has ever been switched +into 132 colums, i.e. in my case from a DOS program, it will continue to do +so until X runs or the machine is power cycled. If that occurs, the clock +generator 2 does contain nothing or garbage (in case of power cycling) or it +does contain the value for the current resolution in X in case of having been +in the X Server screen recently. + +The X Server reprograms the clock generator each time the server is entered, +so the only thing to do is to reprogram the clock generator too when pcvt is +entered. Until now i found no way of identifying the clock oscillator chip +used, so an automatic clock switching seems to be a problem. + + +NetBSD 0.9 and Xfree86 2.0 +========================== + +To get the X server up and running on 0.9, you have to compile pcvt with +PCVT_USL_VT_COMPAT disabled, otherwise X (and SuperProbe) will hang the +video driver (not the whole machine !). This bug is reproducible but not +found yet ... +This does not apply to NetBSD-current, 386BSD and FreeBSD. + + +X server ioctl compatibility: +============================= + +The compatibility X-Mode ioctl commands CONSOLE_X_MODE_ON and +CONSOLE_X_MODE_OFF should not be used intermixed with the USL VT style +commands on another virtual terminal. NB, that this situation could happen +if you run an XFree86 2.0 server on one virtual terminal and attempt to +run SuperProbe version 1.0 (as delivered with the XFree86 2.0 release) +on another vty. SuperProbe is still using the old commands in order to +gain IO privileges. +Since the old commands cannot care for things like terminal switching, +serious corruption could result from this, which need not to be detected +immediately (i.e., apparently SuperProbe ran well). Known problems are +font corruptions after the X server has been shut down later, or palette +flickers in 1-second intervals due to an erroneously re-enabled screen +saver. + +Once that SuperProbe has been fixed in its release to use the USL VT style +commands, any support for the old CONSOLE_X_MODE_XXX commands will be +eliminated. + +(Recent comment: SuperProbe 1.3 has been fixed. It will be delivered with +XFree86 2.1.) + + +How to set the foreground intensity to high on VGA mono screens: +=============================================================== + +try to issue the command: "scon -p8,60,60,60", EXPERIMENT !!! + + +How to change the color palette on VGA cards: +============================================= + +try out the following commands: + + /usr/local/bin/scon -d/dev/ttyv0 -pblack:0,0,0 -pblue:20,20,40 + /usr/local/bin/scon -d/dev/ttyv0 -pbrown:55,55,15 -plightgray:0,42,0 + /usr/local/bin/scon -d/dev/ttyv1 -pblack:42,42,42 -pblue:60,60,60 + /usr/local/bin/scon -d/dev/ttyv1 -pbrown:60,60,30 -plightgray:30,10,0 + /usr/local/bin/scon -d/dev/ttyv2 -pblack:42,42,42 -pblue:63,63,63 + /usr/local/bin/scon -d/dev/ttyv2 -pbrown:60,60,20 -plightgray:0,22,0 + /usr/local/bin/scon -d/dev/ttyv3 -pblack:38,38,38 -pblue:63,63,63 + /usr/local/bin/scon -d/dev/ttyv3 -pbrown:60,40,0 -plightgray:0,0,20 + + ("scon -p default" resets the colors ...) + + +I have the screensaver compiled in, but can't see any effect +============================================================ + +Don't forget to turn it on with the scon utility. E.g., + + scon -t 120 + +sets the timeout to 2 minutes. + + +Your Notebook uses the NumLock state to switch half of the keyboard +into a numeric keypad +=================================================================== + +Sigh, each time you leave "vi", your NumLock LED is on again and you +get a "6" instead of "o"? Try + + options "PCVT_INHIBIT_NUMLOCK" + +this prevents applications from turning NumLock on/off (except the +Xserver - but you want this). + + +Your notebook significantly loses contrast when using pcvt +========================================================== + +Pcvt turns off the "high intensity" attribute bit internally (to enable +the use of a 512-characters charset). Some notebooks hard-code the out- +put intensity versus the character attribute though (i know it for a +Cirrus Logic CL-GD610/620 chipset). + +As a quick & dirty workaround, you can reverse what pcvt did to the +Attribute Controller. Do not hack pcvt_sup.c, instead patch your +VGA registers during rc.local with the help of the vgaio utility: + + echo "ar12=0f" | vgaio > /dev/null + +For the CL-GD610/620, i'm remapping some attribute registers and +get a simple gray scale emulation with this (i.e., i DO NOT use +the hack above): + + eagle_id=`echo 'cr1f?' | vgaio | cut -dx -f2` + echo "sr 6 = $eagle_id" | vgaio > /dev/null # enable extended regs + echo "sr d5 = 40" | vgaio > /dev/null # not inverse, enable + # color emulation + echo "ar0=0;ar1=9;ar2=12;ar3=1b;ar4=24;ar5=2d;ar6=36;ar7=3f"|vgaio>/dev/null + echo "ar8=0;ar9=9;ara=12;arb=1b;arc=24;ard=2d;are=36;arf=3f"|vgaio>/dev/null + +NOTE THAT THIS IS ONLY FROM EXPERIMENTS! There's no warranty that something +like this wouldn't damage your screen/VGA! + +(If you have chipset documentation, you're lucky...) + + +How to set the "LINES"-Environment variable for sh/csh: +======================================================= + +(Note: this is mostly obsoleted now since the driver properly generates +SIGWINCH'es to notify applications about a changed screen size.) + + first for the csh: + + alias linesw scon -s \!^ \; setenv LINES \!^ + + now for the bash/ash/sh/bash users: + + linesw() + { + scon -s $1 + LINES=$1; export LINES + } + +/* EOF */ diff --git a/usr.sbin/pcvt/Misc/Doc/TestedHardware b/usr.sbin/pcvt/Misc/Doc/TestedHardware new file mode 100644 index 0000000..5d37681 --- /dev/null +++ b/usr.sbin/pcvt/Misc/Doc/TestedHardware @@ -0,0 +1,79 @@ +Tested Hardware List last edit-date: [Mon Feb 20 19:36:20 1995] + +This is by no means a complete list of hardware pcvt runs on, it is just +compiled from reports people sent in and from hardware owned/loaned ! + + +TESTED VIDEO BOARDS (80 column operation) +-------------------------------------------------------------------------------- + +Manufacturer Chipset Monitor Notes +------------------------------ -------------- ---------------------- -------- +2theMax (?) ET4000 VGA Color +Video7 Inc. VEGA VGA VGA Color/Mono (2) +Diamond Stealth VRAM S3 NEC 3FGx +Trident TVGA 8800CS NEC 3D +Trident TVGA 9000B VGA Color/Mono (2) +Data General C&T P82C604 VGA Color +NoName Hercules W86855AF Mono +Tandon Monochrome (Hercules) TD3088A Tandon Mono +Kyocera ML III25 (Mainboard) WD90C00 JVC VGA Color (1) +Kyocera ML III25 (Mainboard) WD90C00 Nokia CED1 VGA Mono (1) +Kyocera ML IIII33 (Mainboard) WD90C11 Nokia CED1 VGA Mono (1) +NoName VGA TVGA9000B JVC VGA Color (1,2) +Tseng Labs ET3000AX JVC VGA Color (2) +Video7 Inc. VEGA VGA VGA Mono (2) +Video7 Inc. 1024i VGA Mono (2) +ELSA GmbH S3 928 VGA Mono/Color +IBM EGA 6845 Monochrome (2,3) +IBM EGA 6845 Tandon EGA Color (2,3) +Trident TVGA 8900CL VGA Mono (2) + +Notes: +(1) - slight display distortion when switching between screens +(2) - remarkable display distortion and/or loss of sync while loading fonts +(3) - snow while scrolling with HP function key labels turned on + +TESTED VIDEO BOARDS (132 column operation) +-------------------------------------------------------------------------------- + +Manufacturer Chipset Monitor Notes +------------------------------ -------------- ---------------------- -------- +2theMax (?) ET4000 VGA Color +2theMax (?) ET4000 Tandon VGA Mono +Kyocera ML III33 (Mainboard) WD90C11 Tandon VGA Mono (1,2) +Kyocera ML IIII33 (Mainboard) WD90C11 Tandon VGA Mono (1,2) +Kyocera ML IIII33 (Mainboard) WD90C11 VGA Color (1,2) +Trident (?) TVGA9000B VGA Mono (1,3) +Tseng Labs (?) ET3000 NEC 3D +ELSA GmbH S3 928 VGA Mono/Color +Trident TVGA 8900CL VGA Mono + +Notes: +(1) - slight display distortion when switching between screens +(2) - all fonts must be loaded in ascending order prior to switching to 132 cols +(3) - remarkable display distortion and/or loss of sync while loading fonts + + +TESTED KEYBOARDS +-------------------------------------------------------------------------------- + +Manufacturer Type Layout +------------------------------ ---------------------- ------------------------ +Cherry MF II US +Cherry/Tandon MF II German +Hewlett-Packard MF II US +Hewlett-Packard MF II German +Tatung AT German +Kyocera MF II German + +There is absolutely NO support for the ancient PC-keyboards (they had 83 keys). + +There is only limited support for AT-keyboards (they have 84 keys, and a +separate numeric keypad, they don't have F9-F12 keys) because the emulator +needs F9-F12 for control functions, and due to the current design of the +keyboard driver there is no (full) support for national keyboards because +of the lack of a ALTGR key. + +MF-keyboards are fully supported, 101- and 102-key versions. + diff --git a/usr.sbin/pcvt/Misc/Etc/Termcap b/usr.sbin/pcvt/Misc/Etc/Termcap new file mode 100644 index 0000000..5826f7e --- /dev/null +++ b/usr.sbin/pcvt/Misc/Etc/Termcap @@ -0,0 +1,284 @@ +#--------------------------------------------------------------------------- +# +# pcvt termcap database entry (release 3.20) +# +# last edit-date: [Sun Feb 19 12:47:20 1995] +# +# -hm new entries for SR and SF +# -hm removing duplicate entries +# +#--------------------------------------------------------------------------- + +#--------------------------------------------------------------------------- +# 386bsd vt220 terminal emulator console (pc keyboard & monitor) +# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and +# 50 lines entries +# 80 columns +#--------------------------------------------------------------------------- +pcvt25|dec vt220 with 25 lines:\ + :li#25:\ + :co#80:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;25r\E[25;1H:\ + :tc=pcvtXX: + +pcvt28|dec vt220 with 28 lines:\ + :li#28:\ + :co#80:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;28r\E[28;1H:\ + :tc=pcvtXX: + +pcvt35|dec vt220 with 35 lines:\ + :li#35:\ + :co#80:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;35r\E[35;1H:\ + :tc=pcvtXX: + +pcvt40|dec vt220 with 40 lines:\ + :li#40:\ + :co#80:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;40r\E[40;1H:\ + :tc=pcvtXX: + +pcvt43|dec vt220 with 43 lines:\ + :li#43:\ + :co#80:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;43r\E[43;1H:\ + :tc=pcvtXX: + +pcvt50|dec vt220 with 50 lines:\ + :li#50:\ + :co#80:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;50r\E[50;1H:\ + :tc=pcvtXX: + +#--------------------------------------------------------------------------- +# 386bsd vt220 terminal emulator console (pc keyboard & monitor) +# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and +# 50 lines entries +# 132 columns +#--------------------------------------------------------------------------- +pcvt25w|dec vt220 with 25 lines and 132 cols:\ + :li#25:\ + :co#132:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;25r\E[25;1H:\ + :tc=pcvtXX: + +pcvt28w|dec vt220 with 28 lines and 132 cols:\ + :li#28:\ + :co#132:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;28r\E[28;1H:\ + :tc=pcvtXX: + +pcvt35w|dec vt220 with 35 lines and 132 cols:\ + :li#35:\ + :co#132:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;35r\E[35;1H:\ + :tc=pcvtXX: + +pcvt40w|dec vt220 with 40 lines and 132 cols:\ + :li#40:\ + :co#132:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;40r\E[40;1H:\ + :tc=pcvtXX: + +pcvt43w|dec vt220 with 43 lines and 132 cols:\ + :li#43:\ + :co#132:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;43r\E[43;1H:\ + :tc=pcvtXX: + +pcvt50w|dec vt220 with 50 lines and 132 cols:\ + :li#50:\ + :co#132:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;50r\E[50;1H:\ + :tc=pcvtXX: + +#--------------------------------------------------------------------------- +# 386bsd vt220 terminal emulator console (pc keyboard & monitor) +# termcap entries for HP-Emulation and 25, 28, 35, 40, 43 and 50 +# lines entries. note that the HP-Emulation uses the bottom 3 lines +# for status and function key labels, so we get always 3 lines less. +# "Xs" is a nonstandard, private flag indicating HP-like fkey labels +# 80 column entries +#--------------------------------------------------------------------------- +pcvt22h|dec vt220 with HP-fkey labels and 22 lines:\ + :li#22:\ + :co#80:\ + :Xs:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;22r\E[22;1H:\ + :tc=pcvtXX: + +pcvt25h|dec vt220 with HP-fkey labels and 25 lines:\ + :li#25:\ + :co#80:\ + :Xs:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;25r\E[25;1H:\ + :tc=pcvtXX: + +pcvt32h|dec vt220 with HP-fkey labels and 32 lines:\ + :li#32:\ + :co#80:\ + :Xs:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;32r\E[32;1H:\ + :tc=pcvtXX: + +pcvt37h|dec vt220 with HP-fkey labels and 37 lines:\ + :li#37:\ + :co#80:\ + :Xs:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;37r\E[37;1H:\ + :tc=pcvtXX: + +pcvt40h|dec vt220 with HP-fkey labels and 40 lines:\ + :li#40:\ + :co#80:\ + :Xs:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;40r\E[40;1H:\ + :tc=pcvtXX: + +pcvt47h|dec vt220 with HP-fkey labels and 47 lines:\ + :li#47:\ + :co#80:\ + :Xs:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;47r\E[47;1H:\ + :tc=pcvtXX: + +#--------------------------------------------------------------------------- +# 386bsd vt220 terminal emulator console (pc keyboard & monitor) +# termcap entries for HP-Emulation and 25, 28, 35, 40, 43 and 50 +# lines entries. note that the HP-Emulation uses the bottom 3 lines +# for status and function key labels, so we get always 3 lines less. +# "Xs" is a nonstandard, private flag indicating HP-like fkey labels +# 132 column entries +#--------------------------------------------------------------------------- +pcvt22hw|dec vt220 with HP-fkey labels, 22 lines and 132 cols:\ + :li#22:\ + :co#132:\ + :Xs:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;22r\E[22;1H:\ + :tc=pcvtXX: + +pcvt25hw|dec vt220 with HP-fkey labels, 25 lines and 132 cols:\ + :li#25:\ + :co#132:\ + :Xs:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;25r\E[25;1H:\ + :tc=pcvtXX: + +pcvt32hw|dec vt220 with HP-fkey labels, 32 lines and 132 cols:\ + :li#32:\ + :co#132:\ + :Xs:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;32r\E[32;1H:\ + :tc=pcvtXX: + +pcvt37hw|dec vt220 with HP-fkey labels, 37 lines and 132 cols:\ + :li#37:\ + :co#132:\ + :Xs:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;37r\E[37;1H:\ + :tc=pcvtXX: + +pcvt40hw|dec vt220 with HP-fkey labels, 40 lines and 132 cols:\ + :li#40:\ + :co#132:\ + :Xs:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;40r\E[40;1H:\ + :tc=pcvtXX: + +pcvt47hw|dec vt220 with HP-fkey labels, 47 lines and 132 cols:\ + :li#47:\ + :co#132:\ + :Xs:\ + :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;47r\E[47;1H:\ + :tc=pcvtXX: + +#--------------------------------------------------------------------------- +# main entry, without "is" and "li" capabilities +# +# NOTE: because the 386BSD "vi"/"elvis" seems to have a bug if +# both "ic" and "im" are specified (an original VT220 +# shows the same buggy behaviour!), "ic" has been taken +# out of this entry. for reference, it should be "ic=\E[@". +# +#--------------------------------------------------------------------------- +pcvtXX|pcvt vt200 emulator (DEC VT220):\ + :AL=\E[%dL:\ + :DC=\E[%dP:\ + :DL=\E[%dM:\ + :DO=\E[%dB:\ + :IC=\E[%d@:\ + :LE=\E[%dD:\ + :RI=\E[%dC:\ + :SF=\E[%dS:\ + :SR=\E[%dT:\ + :UP=\E[%dA:\ + :ae=^O:\ + :al=\E[L:\ + :am:\ + :as=^N:\ + :bl=^G:\ + :bs:\ + :cb=\E[1K:\ + :cd=\E[J:\ + :ce=\E[K:\ + :cl=\E[H\E[J:\ + :cm=\E[%i%d;%dH:\ + :cr=^M:\ + :cs=\E[%i%d;%dr:\ + :ct=\E[3g:\ + :dc=\E[P:\ + :dl=\E[M:\ + :do=^J:\ + :ei=\E[4l:\ + :ho=\E[H:\ + :im=\E[4h:\ + :it#8:\ + :k1=\E[17~:\ + :k2=\E[18~:\ + :k3=\E[19~:\ + :k4=\E[20~:\ + :k5=\E[21~:\ + :k6=\E[23~:\ + :k7=\E[24~:\ + :k8=\E[25~:\ + :kD=\E[3~:\ + :kH=\E[4~:\ + :kI=\E[2~:\ + :kN=\E[6~:\ + :kP=\E[5~:\ + :kb=\177:\ + :kd=\EOB:\ + :ke=\E[?1l\E>:\ + :kh=\E[1~:\ + :kl=\EOD:\ + :km:\ + :kr=\EOC:\ + :ks=\E[?1h\E=:\ + :ku=\EOA:\ + :le=^H:\ + :mb=\E[5m:\ + :md=\E[1m:\ + :me=\E[m:\ + :mi:\ + :mr=\E[7m:\ + :ms:\ + :nd=\E[C:\ + :pb#16000000:\ + :pt:\ + :rc=\E8:\ + :rf=/usr/share/tabset/vt100:\ + :rs=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\ + :sc=\E7:\ + :se=\E[27m:\ + :sf=\ED:\ + :so=\E[7m:\ + :sr=\EM:\ + :st=\EH:\ + :ue=\E[24m:\ + :up=\E[A:\ + :us=\E[4m:\ + :vt#3:\ + :xn: + +#---------------------------- E O F ------------------------------------------- diff --git a/usr.sbin/pcvt/Misc/Etc/Terminfo b/usr.sbin/pcvt/Misc/Etc/Terminfo new file mode 100644 index 0000000..072f885 --- /dev/null +++ b/usr.sbin/pcvt/Misc/Etc/Terminfo @@ -0,0 +1,41 @@ +pcvt25h|pcvt vt220 emulator video driver 80 cols, + lines#25, cols#80, + am, bel=^G, blink=^[[5m, bold=^[[1m, clear=^[[H^[[J, + cr=^M, csr=^[[%i%p1%d;%p2%dr, cub1=^H, cub=^[[%p1%dD, cud1=^J, + cud=^[[%p1%dB, cuf1=^[[C, cuf=^[[%p1%dC, cup=^[[%i%p1%d;%p2%dH, + cuu1=^[[A, cuu=^[[%p1%dA, dch1=^[[P, dch=^[[%p1%dP, dl1=^[[M, + dl=^[[%p1%dM, ed=^[[J, el=^[[K, home=^[[H, ht=^I, hts=^[H, + ich1=^[[@, ich=^[[%p1%d@, il1=^[[L, il=^[[%p1%dL, ind=^[D, + indn=^[%p1%dD, is1=^[>^[[?3l^[[?4l^[[?5l^[[?7h^[[?8h^[[1;25r^[[25;1H, + it#8, kbs=^?, kcub1=^[OD, kcud1=^[OB, kcuf1=^[OC, kcuu1=^[OA, + kdch1=^[[3~, kf1=^[[17~, kf2=^[[18~, kf3=^[[19~, kf4=^[[20~, + kf5=^[[21~, kf6=^[[23~, kf7=^[[24~, kf8=^[[25~, khome=^[[1~, + kich1=^[[2~, kll=^[[4~, km, knp=^[[6~, kpp=^[[5~, + mir, msgr, nel=^M^J, pb#16000000, rc=^[8, rev=^[[7m, + rf=/usr/share/tabset/vt100, ri=^[M, rin=^[%p1%dM, rmacs=^O, + rmir=^[[4l, rmkx=^[[?1l^[>, rmso=^[[27m, rmul=^[[24m, + rs1=^[c^[>^[[?3l^[[?4l^[[?5l^[[?7h^[[?8h, sc=^[7, sgr0=^[[m, + smacs=^N, smir=^[[4h, smkx=^[[?1h^[=, smso=^[[7m, smul=^[[4m, + tbc=^[[3g, vt#3, xenl, colors#8, pairs#64, setf=\E[%p1%{30}%+%dm, + setb=\E[%p1%{40}%+%dm, + +pcvt25hw|pcvt vt220 emulator video driver 132 cols, + lines#25, cols#132, + am, bel=^G, blink=^[[5m, bold=^[[1m, clear=^[[H^[[J, + cr=^M, csr=^[[%i%p1%d;%p2%dr, cub1=^H, cub=^[[%p1%dD, cud1=^J, + cud=^[[%p1%dB, cuf1=^[[C, cuf=^[[%p1%dC, cup=^[[%i%p1%d;%p2%dH, + cuu1=^[[A, cuu=^[[%p1%dA, dch1=^[[P, dch=^[[%p1%dP, dl1=^[[M, + dl=^[[%p1%dM, ed=^[[J, el=^[[K, home=^[[H, ht=^I, hts=^[H, + ich1=^[[@, ich=^[[%p1%d@, il1=^[[L, il=^[[%p1%dL, ind=^[D, + indn=^[%p1%dD, is1=^[>^[[?3l^[[?4l^[[?5l^[[?7h^[[?8h^[[1;25r^[[25;1H, + it#8, kbs=^?, kcub1=^[OD, kcud1=^[OB, kcuf1=^[OC, kcuu1=^[OA, + kdch1=^[[3~, kf1=^[[17~, kf2=^[[18~, kf3=^[[19~, kf4=^[[20~, + kf5=^[[21~, kf6=^[[23~, kf7=^[[24~, kf8=^[[25~, khome=^[[1~, + kich1=^[[2~, kll=^[[4~, km, knp=^[[6~, kpp=^[[5~, + mir, msgr, nel=^M^J, pb#16000000, rc=^[8, rev=^[[7m, + rf=/usr/share/tabset/vt100, ri=^[M, rin=^[%p1%dM, rmacs=^O, + rmir=^[[4l, rmkx=^[[?1l^[>, rmso=^[[27m, rmul=^[[24m, + rs1=^[c^[>^[[?3l^[[?4l^[[?5l^[[?7h^[[?8h, sc=^[7, sgr0=^[[m, + smacs=^N, smir=^[[4h, smkx=^[[?1h^[=, smso=^[[7m, smul=^[[4m, + tbc=^[[3g, vt#3, xenl, colors#8, pairs#64, setf=\E[%p1%{30}%+%dm, + setb=\E[%p1%{40}%+%dm, diff --git a/usr.sbin/pcvt/Misc/Etc/pcvt.el b/usr.sbin/pcvt/Misc/Etc/pcvt.el new file mode 100644 index 0000000..bd6484f --- /dev/null +++ b/usr.sbin/pcvt/Misc/Etc/pcvt.el @@ -0,0 +1,19 @@ +;; pcvt25.el, by J"org Wunsch <joerg_wunsch@uriah.sax.de> +;; +;; pcvt is a good VT emulator + +(load "term/vt220") + +;; ...but i don't like `find' and `select' on `home' and `end' keys +(global-set-key [find] 'beginning-of-line) +(global-set-key [select] 'end-of-line) + +;; and the f1 thru f8 keys are designated as f6 thru f13 +(define-key function-key-map "\e[17~" [f1]) +(define-key function-key-map "\e[18~" [f2]) +(define-key function-key-map "\e[19~" [f3]) +(define-key function-key-map "\e[20~" [f4]) +(define-key function-key-map "\e[21~" [f5]) +(define-key function-key-map "\e[23~" [f6]) +(define-key function-key-map "\e[24~" [f7]) +(define-key function-key-map "\e[25~" [f8]) diff --git a/usr.sbin/pcvt/Misc/Etc/rc.local b/usr.sbin/pcvt/Misc/Etc/rc.local new file mode 100644 index 0000000..7a7bb4a --- /dev/null +++ b/usr.sbin/pcvt/Misc/Etc/rc.local @@ -0,0 +1,264 @@ +#--------------------------------------------------------------------------- +# +# sample rc.local +# --------------- +# +# last edit-date: [Sun Feb 19 19:20:42 1995] +# +#--------------------------------------------------------------------------- +# +# NOTE: +# assumptions: - 8 screens configured +# - /dev/ttyv0 ... /dev/ttyv7 exist +# +#--------------------------------------------------------------------------- + +# start xdm on screen 8 +#xdm_start=YES +xdm_start=NO + +# setup german keyboard layout +#set_keybd=YES +set_keybd=NO + +# setup keyboard delay & rate +set_keydr=YES +# very fast settings +set_keydr_rate=0 +set_keydr_delay=0 +#set_keydr=NO + +# constuct a new /etc/motd file +construct_motd=NO +#construct_motd=YES + +# setup cursor start and end scanline +set_cursor=YES +#set_cursor=NO +# block cursor +set_cur_start=0 +set_cur_end=15 + +#----------------------------------------------------- +# construct /etc/motd file +#----------------------------------------------------- + +if [ X${construct_motd} = X"YES" ] +then + if [ -f /netbsd ] + then + if [ ! -f /etc/motd ]; then + install -c -o root -g wheel -m 664 /dev/null /etc/motd + fi + T=/tmp/_motd + rm -f $T + sysctl -n kern.version | sed 1q > $T + echo "" >> $T + sed '1,/^$/d' < /etc/motd >> $T + cmp -s $T /etc/motd || cp $T /etc/motd + rm -f $T + echo 'runtime link editor directory cache' + ldconfig + else + T=/tmp/_motd + rm -f $T + uname -a > $T + echo "" >> $T + sed '1,/^$/d' < /etc/motd >> $T + cp $T /etc/motd + chmod 644 /etc/motd + rm -f $T + + fi +fi + +#----------------------------------------------------- +# local daemons +#----------------------------------------------------- + +echo -n 'starting local daemons:' + +# Kerberos runs ONLY on the Kerberos server machine +if [ X${kerberos_server} = X"YES" ]; then + echo -n ' kerberos'; kerberos >> /var/log/kerberos.log & +fi + +echo '.' + +#----------------------------------------------------- +# check for correct driver and driver version matching +#----------------------------------------------------- + +if [ -x /usr/sbin/ispcvt ] +then + if /usr/sbin/ispcvt + then + +#-------------------------------------------------- +# loading fonts into vga +#-------------------------------------------------- + echo 'console driver type: pcvt' + if [ -x /usr/local/bin/loadfont -a -x /usr/local/bin/scon ] + then + adaptor=`/usr/local/bin/scon -a` + if [ $adaptor = VGA ] + then + echo 'loading 25 lines base font into character set 0' + /usr/local/bin/loadfont -c0 -f/usr/share/misc/pcvtfonts/vt220l.816 + echo 'loading 25 lines extension font into character set 1' + /usr/local/bin/loadfont -c1 -f/usr/share/misc/pcvtfonts/vt220h.816 + echo 'loading 28 lines base font into character set 2' + /usr/local/bin/loadfont -c2 -f/usr/share/misc/pcvtfonts/vt220l.814 + echo 'loading 28 lines extension font into character set 3' + /usr/local/bin/loadfont -c3 -f/usr/share/misc/pcvtfonts/vt220h.814 + echo 'loading 40 lines base font into character set 4' + /usr/local/bin/loadfont -c4 -f/usr/share/misc/pcvtfonts/vt220l.810 + echo 'loading 40 lines extension font into character set 5' + /usr/local/bin/loadfont -c5 -f/usr/share/misc/pcvtfonts/vt220h.810 + echo 'loading 50 lines base font into character set 6' + /usr/local/bin/loadfont -c6 -f/usr/share/misc/pcvtfonts/vt220l.808 + echo 'loading 50 lines extension font into character set 7' + /usr/local/bin/loadfont -c7 -f/usr/share/misc/pcvtfonts/vt220h.808 + elif [ $adaptor = EGA ] + then + echo 'loading 25 lines base font into character set 0' + /usr/local/bin/loadfont -c0 -f/usr/share/misc/pcvtfonts/vt220l.814 + echo 'loading 25 lines extension font into character set 1' + /usr/local/bin/loadfont -c1 -f/usr/share/misc/pcvtfonts/vt220h.814 + echo 'loading 35 lines base font into character set 2' + /usr/local/bin/loadfont -c2 -f/usr/share/misc/pcvtfonts/vt220l.810 + echo 'loading 35 lines extension font into character set 3' + /usr/local/bin/loadfont -c3 -f/usr/share/misc/pcvtfonts/vt220h.810 + +# echo 'loading 43 lines base font into character set 2' +# /usr/local/bin/loadfont -c2 -f/usr/share/misc/pcvtfonts/vt220l.808 +# echo 'loading 43 lines extension font into character set 3' +# /usr/local/bin/loadfont -c3 -f/usr/share/misc/pcvtfonts/vt220h.808 + + fi + fi + +#-------------------------------------------------- +# setting screen sizes and emulation +#-------------------------------------------------- + if [ -x /usr/local/bin/scon ] + then + if [ $adaptor = VGA ] + then + size=-s28 + echo 'switching to 28 lines and VT/HP-emulation' + elif [ $adaptor = EGA ] + then + size=-s25 + echo 'switching to 25 lines and VT/HP-emulation' + else + size= + echo 'switching to VT/HP-emulation' + fi + +# get monitor type (mono/color) + + monitor=`/usr/local/bin/scon -m` + +# for all screens do + + for device in /dev/ttyv* + do + +# setup HP mode + + /usr/local/bin/scon -d$device $size -H + +# setup cursor size + + if [ X${set_cursor} = X"YES" -a -x /usr/local/bin/cursor ] + then + /usr/local/bin/cursor -d$device -s$set_cur_start -e$set_cur_end + fi + +# if monochrome monitor, set color palette to use a higher intensity + + if [ $monitor = MONO ] + then + if [ $adaptor = VGA ] + then + /usr/local/bin/scon -d$device -p8,60,60,60 + fi + fi + done + +# switch to screen 0 + + /usr/local/bin/scon -c0 + +# set screensaver timeout to one minute + + /usr/local/bin/scon -t360 + fi + +#------------------------------------------------------ +# if desired, setup keyboard for german keyboard layout +#------------------------------------------------------ + + if [ X${set_keybd} = X"YES" -a -x /usr/local/bin/kcon ] + then + echo 'switching to german keyboard layout' + /usr/local/bin/kcon -m de + fi + +#------------------------------------------------------ +# if desired, setup rate and delay keyboard values +#------------------------------------------------------ + + if [ X${set_keydr} = X"YES" -a -x /usr/local/bin/kcon ] + then + echo setting keyboard typematic rate = $set_keydr_rate and delay = $set_keydr_delay + /usr/local/bin/kcon -r $set_keydr_rate -d $set_keydr_delay + fi + +#-------------------------------------------------- +# if desired, start xdm on screen 8 +#-------------------------------------------------- + + if [ X${xdm_start} = X"YES" -a -x /usr/X386/bin/xdm ] + then + /usr/local/bin/scon -c 7 + /usr/X386/bin/xdm + sleep 5 + /usr/local/bin/scon -c 0 + fi + +#-------------------------------------------------- +# cp /etc/ttys corresponding to console driver +#-------------------------------------------------- + + if [ -f /etc/ttys.pcvt ] + then + echo 'copying /etc/ttys.pcvt -> /etc/ttys' + cp /etc/ttys.pcvt /etc/ttys + fi + + else + echo 'console driver type: not pcvt or pcvt utility/driver mismatch:' + echo '--------------------------------------------------------------' + /usr/sbin/ispcvt -v + echo '--------------------------------------------------------------' + if [ -f /etc/ttys.pccons ] + then + echo 'copying /etc/ttys.pccons -> /etc/ttys' + cp /etc/ttys.pccons /etc/ttys + fi + fi +else + echo 'console driver type: not pcvt' + if [ -f /etc/ttys.pccons ] + then + echo 'copying /etc/ttys.pccons -> /etc/ttys' + cp /etc/ttys.pccons /etc/ttys + fi +fi + +echo + +# EOF ---------------------------------------------------------------------- + diff --git a/usr.sbin/pcvt/Misc/Etc/uemacs.tar.Z.uu b/usr.sbin/pcvt/Misc/Etc/uemacs.tar.Z.uu new file mode 100644 index 0000000..25fba07 --- /dev/null +++ b/usr.sbin/pcvt/Misc/Etc/uemacs.tar.Z.uu @@ -0,0 +1,594 @@ +begin 666 uemacs.tar.Z +M'YV09-[0:5&F39@Q<^2,`<"PH<.'$"-*G$BQHL6*(#+:V`@"0,:/,#I^S!C2 +MXT@0,F3,N%$C8XT:,&+`H#$CA@T:&6/$F%&#AD<8%X,*'4JT:,0Z<^B$D9,1 +M@)PW`HU.O(.F3!DV4K-JW<JUJ]>O6G>T&$NVK-FS:-.J7<M6K8(=;Q-,42J' +M3ATX(,RD85,F[QNF3=*,>5JD29`A4T#,<(%##`O%+F0^7JPS3-RVF#.??1OW +MCIPT=.B4<0-"3!X02*ZR:5.'#AH0@<>@"7,US1P0,7+@R,$B=PX8O7/DB!$\ +MAXRX"4`4.7.FC)RD9<C022K'!4H<R%'"V(XZ3!LQ=>2<`0$S`0HT;8"@08@& +MC8OU<UR0*9."\XX$=\F$$4U&!VX<+<`@0PN[@=`">LB9\1<(;\S10@XOV(## +M&B#<`=IK2$#1`A7.M9&&&V&P<9L)(+`!U1HAIK%&&7,@)QIT9%1X(0AHP"&# +M#3+0\$*-,<"THXTS&/?C#=OE@,<+8]3!&AM(O:#':**-@4.0,H`05W[[1><? +M#`#&,&"!![:1X((9ME`%%B`4=-!ME,'@(HO\R>@:"$DNB10(HLGA(8@B@H`" +M"#WT0"->1,+P0@XXU7<?EOSY)T,.`<;P8$AA(L=&&$D11`9H+>@G&@@&#?;& +ME7!XJB4(,-S0@DP/QF`@@O?AIR9"D.GTV'S@,??A&8_!\08;MJ&Q*P@NN&!? +M`M%Q:JI_6TQ1!VE!U#&>3;C5H$,--EP;DF\R=!%7$9L.9(5S<S`;PPW>PC5' +M&72`0,*F<XS11HQ&!,'$%$4HX!EH9;30!HMSA-$<""(TRRX=P]X%@A'/CH'P +M&VZTL$09IS4Q6AT@S)$'=&T06ZP+78A@7Z`D"XI$$4Q``<(464Q!16&`EBSS +MS#3/'!>4SM%X%5X:<ZR`JTG]U6^H3RF0P+KMOFN;O/3:BZ_18GQ(1@MTO-'" +MBJ>5@4<928KF[T%/M5"E$4[$8+2KEXIQ50MF-/QPQ%@3G%$16"1!Q4@GIYR1 +MR`E$[<;455]-<9I;=STTV%;/L+`3QR509=IKM^V&PVE`+/AI(IRD^4E\^PVX +MU7%KS75KAXO:@N)DSV"TXI"SP;;;E<,]>.:;U]ZYU%2#/KCHAG]M.NI.T&`T +M3JV_/OG;E\M=^^:W_YU[\KR3[GO8P-=@=$O%2TZYY7'3OCSG4.,>>.B%2T]T +MXHO;8+0-)8:AMNO:(]_]]YHW_SGTY7M]?@LXD7V#T3=HW_N,MSW982XC<)!# +M&>PPDGC)@30$"Y_SQK>[_)4N;"TA&W82@`,!1@YVW)M=1MR@M79]Q($0Y)NK +M2(B'@5CH;V^X@]&JP@8X&*V#"IQ#&I[4@A<&1(8)"`,9IM:&-\R'8`HD0^?* +M<(8/N6%7+7B#&=BVES(8K4H*DL,=EC(UV2SE('DRVACXLA1_`4Q@_0(6"8V& +M-'?!BVD@H((4JI"O$(R&#&*Z&1Y`H[,:*J!*05/@]$:%+`L.L@4V2(#1YL,7 +MK_DPAF(DHQS,.(>`-:<%:K2B'?^6Q_N<3S&`RDA`W'""=H7(1'?`4U761:<W +MM,$@?[L-R4!PA"(XH0A2L!<(H%`%*4#A"?B*60\4,(.C54V0YS/:OO1WQH$5 +M#`1+*$(64!.$Q#CA"0NK@A.&0(4D/,$)(`A!"$`0,@5L$H\*B$L"%UBY.]$0 +M+W!`HP)P$L@+$E)M373#$]UPABA.,9-L+,-29-,"!=J!7'T100]\H$(0)%$. +M8;A#IVP#ATOEX8I^T2(76^!%B#K,.>:\8R<3P,)VO1,$\6R.`EI2ST%"C8E. +MA*(4,?DA*SHNHUN40Q=GX]$P'DV@"D$#V_Z2TQ@IE*%G<VAT("I1>%4T#!<] +MIYAV4+-9&B8)X&R"+:N0S6UV\YO0E&9B2-2$)$QA",*465S::)`/Y06$I(E; +MZUK$OI8F\Z=)>^.\%N:T?/5-?+K+FB'WYRJRF2T!(<CB&/J"-O=]\'BQ2Q[M +M\J:RCQ@A"4PHPMXD>#_RC4Y_B&M!`,G6N,3^9;$H\2#\X"K9C%SA"5(@PD>: +M\`0KO(`(*+/?\SS;N_UU,'5&,ZU"^L(ZQZX6LB$\(&IXB::/3`$*14!K!/\Z +MP<`2[K/V?-#BA(=8Q?:%>,8EH/Q$>`6L$N$)5_C($)I`A,1,UW.[K2!V#RF3 +MQ5FONZ?M"_;"&[_(S@]?09#"$)"0$2D4`0I,.$P1=$M!P<Z7L(5U@OKP.UP0 +ML"][K)T?;,PJW8RLM[V;I6YGY=O;T'II<?^C,&H#B&'D&E!N!CZ"-\'I8?:Z +ME\'6U1JG9G4;#0;7NR#H8(L+V%KEU.UN'RG,81+#MS$"E9*63&--`YK7I>U5 +MCG0,*2??4E40O#:V7>7FC!-3U3*3+"[@V4N,[O"7J6'M-O]R0QT4$$"[(H[* +M;K1RT^[E5_@V&*4&;:>#V*S3Q1VVL0/L;W*5]V79@NH-!P4!#\:"X^25M(=M +M7ESC'L??#(O0R[!U=!$C/1:DBCB^IV$DN_JU3CL(&M.%!FX"BIMH3RNWT:*\ +M2D8FW8)*QTW57KLTH>D5O.&I5KS^_32N0<#(C)3:UX,;`Z;Z-6R.A@$.H$G1 +MD^Q[O6,K^L6T6[:TL:T4-N@!VJ>1]KI@/354YHQL$[YPIUU<Y&6C4B'31C>= +MILWN%MP%#N]V0HI9/&\B:WC9_\;WNO0=/=":CGT^YJ"W;:T\NMDM(U3`)FR" +M@-4F2Q+*:*3I&O&:YWA=>8YU%"F7N_P$#;$L,8<90A&F,%80#.$)33",$V1+ +MM^BFM:H*Z*"=185GI9E\ST\[]9_G0$/7C<&5L"3VH2=.;PUGZ$P9D=??,JGO +M-+2`Z:K1-$:'/%[E7KVY&0$[&]CP7L`F3XA$-&)?9$WKQQK\TT$@@J-G^P3< +MAMC/U@7VT.2^76.3/=D'Q&UF7\9WO[>]NOA[L(G[YX3[[K?651>A888@!8UG +M!`I!J.7?W<Y;Z8'H7UV$>AC^EK[U4?WNRNUYA^G4!M8_?L0.[IU>^()B`+Z^ +M[!7'@L\_LON^W![5URWQPQ>W02$7'/BTLSB2,YZ1JSK!XT_^5R5##E"2&QV. +M6$[YEJG:Y?+N'+T;=T+H"V/+NYGY_2530`XR=DQ[%EVO2.\SZ0<G;*G%T-!) +M=7B+1CNWA`5()B,PE$KZUFJO]DBI1%IC]WR(ISQ08&!6\!$.>'Q_)G@]Y'\/ +MZ`2J,VN_-X&THW@?D21,X4/ZQH$"4163Y(`]5FP)`%Z8!WO*8X(9T8((J$2< +MA7QS4%&<@H(*Y`8NY('<E@"79W?0EQ'/Q007MX/_IV],]QENL`8=F("MEP#R +M5H-+.`5((`58M009D8'Z=@9/(5$9Z#^^)X#@IAQ.D&!2('IDV(-_UG#9!7%. +MT'PC.(!S<V08IW'6AWUEI'U1)G(VU4;?=W)9)E4K5S,K4P0!-F`O8&`(IF`_ +M!W]F]C,A,71%XWWXQU=\1H?6M2X#)5195%0`F`"(IH0D^(B12&`XQ452"%0$ +M95`()78WQ8:M!6`"1F!B<!!K4%3ZID!/M5A?1P=4.!YTMX=MR(L#!@(F0(R7 +MLECZ%@=UX!QY4%!E4(S]0AW#0C;<18.L.(!3T(N^Q`1H=0<O8(W8J&]H\"P# +M<8I<=(1)>%PVF#F4"(E(EA!CD!=WP(-*9UWO2(0M\(MC$(SS"&^NIXOSDX]! +M<#?\6!K`R'"#%5K`,W#,6&3T\Q$4*7G+%W'.QX6M:&1/2'T;UW&1E'W-)&4C +MAXB?&'Y:AD[DYXAE=58V9V.7B(DZ^3-`4W\NY8EZ!HI)!WC)<P8"834&00>R +M`45F,!JH95@!*(%\2$M/8))#P#9.F5"B6)1':8BXR&DB.95'4)6>5R(U-7J0 +M%S=MM(P,^6GX<H!VL!1IX#Y\H6_@809-.4F^HD-O4W@SF)$:YH7HAU(-`AJQ +M8Y<P%3&?1#:6!Y@BY#(!=H"?I($YYCR+*6$+*95MZ(9[!RJ(@Y:XEWSF\YEJ +MF``$%Y:;*7L?,9D=J7QA@X=ZV):QYX=Q!(@<=WTI.8@K:8CW%Y0PR8@S23,@ +M$&,S=I,@II/(&7\GQHF$Y))!62^A&)#)@S1?(P<4`I6JZ)C*]98G81#6"9K( +MIS5>Q$^L]@8?,A"K1T1+<9V,$X&H6618,&!'@$!$:`+>N0;ZM@9[X3H*U$00 +MLS@A6'?VN(30A%E,\!']&3N4F3Q/!P?9F*#_"8Z&IYE%=G-0,$T9`:&DH6_J +MUB\:BDDQ%'"-*9L$PP3H)6#5I%D:NJ!QTZ':Z)\1\V\!%V_:23!5``45.`0I +MJE0PRJ(D-IJ_TWNF6:/>LY$^FGM`^IK,=T-$VH<E:9LHF0!.IIO;=TG=YYQ' +M%T<H%Y.=E)Q>FIQQ,07L`@(*$P:M\08WV7?Y$IQ?VJ9`1P,P8$Q"\Y-M5`(* +M00=M@!<FH$.D00)C8`:GEU`NP#<AD`9F`(UE8(T@8*<.DZ>H8C2(I4!V\4#! +M=4>&BF>,BJ=ZZB$QXJ>`ZAU]80)PMZAWZJBN<E^%>J@FL"![FJBDVJAX(0)C +MD#FM&@>OJJD$@P9\$T1#Y"^$)ZM%-!^$:JEFP*4*@(@*)$1H<"*BZ7!A`Z?I +MQ*9NVJ9QP01O($0@$`8@0$*IE%)6)*W3ZJ4_0P-RBDQWAEB&"HWK8JLFH!>L +MQZW>Z@)P)`*[NDQ#LY($LP5#L'K;*A!Y(34@<$M7`'JUY`(?5DZ(=17K`JEV +M2$6\!Z]H)*_S4JE_<ZF,V(CA&JX8RYD@\`1&\(A4<*./`9E2<#=*AA@?DY,U +M@[$9ZZ8*T+#[HSYP`7>^>D1T<QA4H``T>P8F\HNN$ZQ]<;/<Q!E8"GY;"A<[ +MX`-*JQQ$8#=$\)!%8+#L92#92@9J@!3MXAI]D2SM8BK9RGI<NZU*HC9R<"Q4 +M4!5I$B[,EB4@8!NJU!=>ZQK[\;;_RGM;=!N7DA1I"QIQ`C'6<;;?BBQJ*V?? +MD3-N>[5ZRZ\?,A@%`27#0KADJTISVQS341I*`G!K5A4D=%!E>Q]:6[=]X;9< +MRQ_&@K0)8`1_D92W(45T&[9>FYY[VRZ0FS-Z<14QLA1EH`/'D@#@PBE$D"7, +M<@71`0+1,AXQ@1LPH`,P8"T[@1O"D2X)P+OAT@+C\AS,`@/I$A=9\`88PW3< +MRP:W*R)H"@>M0;=TP&;9*@:0UA>9=!MS^[E5@Q>LFP?<V[G($BKQH1"@FS%H +M*K?M0A6CL4`Y0[\8$[9\I+6G<0=KQW:42RJF0@8A<"R,PB*Z&RLMD#%A$&E" +M""6$R9>Q@QP7'#`:'!Y#V"ZD&%3TEXP@K%1MI#5@]&A'1!55E#&T*"S\E%$$ +MT[L#\;NBP2SE!!<I4:[VEP#S1YWWV1F?P4Q5FE#Z6A4'.2SI>I=YV;:WX596 +MD`1%D%Y`B["IBJC6&"+0^(NLYZ=`BQOLXR;16Z>TA5M3$`16H%ED+'>06J<) +MYC+E^(PD<,*R,<=C&L='9`)BW*GR0GB`[`;^ND$)8*\@YTQ;8*UOH)\WG$7* +M,;T\G+L@L`5=@+!]DYC[U$\S57R0*ERHI<>F2%3S:`+2UBXBH,,M4,G^D3D% +MLZM=7*ONDA3[<2<P&;T)L(GL4IUK`*D_58I#I5&%)@*:G)T&B9`ZQ5$\!48@ +MI<OZN78O^L&Z_"'K4A?'F(SN@C#_$LK$"JF*3(AHE*^.#,GC(<FL7+WE<LF9 +M+,M`1LK#C(JH/+>K/+WJ_,KY*LOI2LMYK!1V<1NY'+V\/!!'K,OP+(_%?,RN +MDLQ%Q<Q?]%%E"\W[.<T0`\S6[!P#X8TW+*I#Y"[1S':'E;`56ZS1BT\QQ4_^ +MY+`V):4?)\Y6.F5IW,>#?$0EL,8SY\9^Y7VDO*AU3`5WC`04NRG%.G_B.1OD +MV0*^<IXMD)Z^;*SJTL?VNJR/W*S9E1(*`!98G=5:O=5<W=5>'1$\]AXU]-5D +M710?L1'L8Q(@(1(C41*:(P,"\A(N`1,R01,VT1*X(1,R$`,_4=9^O158NQ1- +M\111\14`?!5_G=B*O=B,O5#1&QN$L7F)01FNDAHUE#&,.QIS$+TH``,S\`*Y +M\0*[41]&TP07#"H"Y0:W435DRDJ?RP,S-P0^``)QDT"5PQ2LC13#LGHMF#-8 +M8S1>$`09\2^KM]IHBA1]\;E/1X1/P79Q\[YH&S#_@B=I,-V80K?"_=L*X`47 +MN"!;``7C001NT`7)L3*BLG;,%D-N\-@MP`,,PA0\@`0X5P0^D`!"D)C#PKJ@ +M[`5:\-Z7#-X@4`5P0-Y,>-YL=Q?L/=L+`ML[5]]%P'KZ747II!D47N$6;A8* +MX-CF$0,I`!NUA57S204G8W.]-`6PE4Y>\+$+8\J%UE'.+`<)8-HJGA&H2\QK +MUF;1.S%Y$$^W*P=GV")>(`09(03`B(HN#M$QW@)"_A%$?I"H.&S1B[O92CD' +M%<'!3>-/080,<JB9E.3S^1%'<)39:I9KY`6:I1P0SN4U%;W;36-.4$)D7@;L +M36-8#C'MPKKQ!%%F>&UHL-V5!06!QKUXN^:F75ESD^8H]45[#@=]?N&._NAL +MD>'U;1XRT.&*5P3=Y`3S22)8A2\E"^+IQ&O12P17L6J`QDZ"3B?-#-';+5L+ +M?NDO4]^DWDA]45*J_M!AY`5HM>"=CDM44-])H-H8/>8_>!!69-JBG@"S;NH, +MF.K#I@"F302C7NJ?8NO/[@5+$+U#8"*LA`*"U^&L?4=;'N<*`.GF?NYC(>F< +M+0-AT.&T96`@`.L@#HT@T.N?KNFA;F`A*P5.,-L9$>S7;$K;6@8*O.8)P`-4 +M$`1"X.]!0`9Q.3G)C::VKA1B0']O8$->H`3E7>_"7A=CSJV9]+4Q(C50DN1> +MD%X9L>R?DN<"`U&,OMU/L/%/`'"D@0(771<=#E`GO_$JWQ<KJC;G:Q6D<9]^ +MTD:Z?</(7NR+]8MRX`,=#KLH.`=_`>TM<`4;/P07?QHKRMH?;;EX"5)>@`5> +M$/,?T?.E<2E5&.?N^Q3/$B-1/_7H'O>.KN[F,0,=[HQ(`.K;/05R4<.Q6&AF +M\!0=\_9,L9>&Z;?;+04)(`4"_!Q]L=.![TIT$AY27_B%^3;&$O9\7^.HN+@* +M%&?E1L.EN-U8H/B,S[FLY/F-2X1@3,H*P`/V\NLKT_>EB,.?:^MO,`8HF)7C +M_KEY:\+(."PHD`1"4.B[[@9LD`?U`?M,(/N*+Z:U+\F^CREWKOOAP?NL._UZ +MJ]'C,?S%WP)0</S)7Q]R7_X43O<H0`,=3HD)-@1Z;]I2\!&,SXW9BM[6K!00 +MO[J'JA?/D;4['ATMP*UP/SGQ&M;%<B,#1B,CT('_-S4$8/#C)]8!S<4(@2(; +M4MBPL!!S(K89"]/F!>+?<-I&TZ@O8,#7P([D0!Z(@$%`M=V!G#$"=5<"\`)? +M3MI`/#80O3Y"!"0<!PQ-00D32)C.4W!!4"#0V-&M'$('HA>&RE!!$+60B.6& +M,.2,3?D!8&Y,:2M@H;=8U\5[&YN-SADRI<*-0!^]8X(?XAJ5._-'!B.=AD,! +M-:##Z2@H8#?L11+0`O..1,B1(.`$G@LP>7]F(@'<*.B"HH+)LS-M0R`!["MR +MHVU$8*;9>"#`"U`!1$@%((IJVTM]X<CEB19AVIA``G`W"L<0ZA32YP4L(2;L +M4#SJ@X4]+U`%\`,<`#B9,!16-"\0!1)`%*@#`J'6P;D=F`<>@]237.V""3:W +M5C(?X`Q4*0U;BP@YA^%UGOI7"1F#93`9;H8S:`/67Q&0,=^DYH@XS;($#!0( +M$`)5P`@8`5R23I)>/%EZ2Z&^M1'#(`7$T-S:8%K.\+T-3H@%HE<9P`+C:6`0 +M/:A'^::>`A!NQ`FL6`CTIK5(@]IH)40H#`JZY-<IRH"[&E[7[7/A+FT%]%;@ +M:*!;\_!O*`#E1L(X&.'K8(?/#41`P%6@F,"!PH;:$)=0,?,%YV18!9P-MT%M +MC`8%4$3TE@)9+$0H^6&P@Q(C%H3@(0/&0AGJQ+*`_FZ`&FPY66#>T4'90ENN +M&+[;;BC/[*&`*Y`&`$Z'TU#LS>HU**T'4_X3:ZN&'M'KY:7MAJ&RP.I9`\EL +M)O8%*98SSF$]+%M'((!!E+53"^E6`LE]T>'ZX;"IF-^8PJ@9%J*AA5`QW342 +M.%R,6T]C+A^"DZ,W'KRAL6-ZLVUNF31]LMM8ST6<6W?$6(R$2J?LJ%WH:A<H +M8`0FPBO0X1;$5&Q;F%$SFC;.V+:(4/]"6UCQ0)'%ZJ``1H+=BW'KBVY=1-;V +MN7IA&D@B)2+W[0<%!;ORP%<$C1+I(/D)S>@%LD`*R(D[<2>B/QS@[M148O!8 +M'8L//J090_J:0`)H>#&BC+F5U<C>FL!(P(X@@&>]`9\%PZS(*+2.9D\[^L,Z +M\/5@G,GSCBG/,H;'G@7&@)8"J"VX)'K-OQ!X&U#`^M(B28Q%/,7]X((D%VFX +M>95+$I(+!7`%<@D4B%Y4(#RH-@9!&H9-A7!Y?L),58VD)!@&7L$C(7.@/ERQ +M+!:]@L#:B2&WP=40O&%1?`@@]VH7")(WLAY@\\'6BYHJD6>*0_8CDA<0(]F" +M0"MO<<]U#%JH`(06%7@!AD'&!,(A8-2:PVU85JEDI\$N:20$G\XK24^W@=!0 +M"!2P+F2A7O16Y"\YZD3TEP/N'B3J1<1KYPRG`]/^-(M-FP+IQ$CJP5.("E\` +M)MPWJ>\V&#(8>08,&6X4@#6,14"[T),$`B'C.P-UX%(4OOV0)X;>?EA*-TQ! +M/H=LI4"F',(X**W1!OY%I;1*OM9I@!B1<-6%D9&@`C:E;&`1GC)5SBZFD/W0 +MUCI9+)LB4HI*D#(2O(!]XV3Y3<V1D.2P!<B)>IF53&&,8(K;X)2XW?7+E!F! +M!/`N1-?ED@,7.`FO,!8./+TH*9&AF"R#Z$\F=+AOT@+.BH&Q)0L#MA@&*I#I +MC@"*PP)&('J)J7:Q>]C.TV$2M0?:10P>0/'JV[K$$^XC8WQ#O"CQ;MU+G(3` +M,.@]1(IW&X(&'*"$+:`5GJ[4-;=8WJ(K@*?Q?<$Y8($J&Z+0\TSBP9J1OAX0 +MO:#`Y5-0Q.@OM(NQP&PHBD49="1$;!4N.?`8.DHK@4<L`)AMO!:I0[8-U`.6 +M9.IOY`S"1_5TG;;C7EINV,P!.UE3AF9'J6*.TCH-+PUE+:^E^<N6'`XV5('F +MEP00C&8Q/^?E"L!):+=Z3@/61"^)P2"<AG\(1M)`I)E;$`.U6,7HEMDT8D8P +MD6P'!GFFT^"]9(A0RTL<+,]5KE;Y^$"55G0.CV%!4,#7(#9+Y@^R*&/N;@Y# +M+0<J,Q\6D`%R`0AE+;2%#O^7$7(KY^L-O$`L$/.8Y.H9&*S-VGD@TA>G!,_D +M\W$<S`%%K[#W(#TG><(3XRO0W0D'1/IB0`(PG:>$06BM%.2!-AL'M`()``J, +MLQ]"&D1G`I*9)D\+!,]QIC!Z&^\\GDXS&6;+2F=SOHD<>0(><=Y]3:V9)F7+ +M-%P9G*<(V))S:2L?G*(<&)43"MV!Y(#LW,!L"WLH[P/63!%HA%@;#W"?:H\3 +M*L\I@`:H$(5(G[1S%#H!V!AI,A#QY(0/L@G$Q@QT%WJF)9Q_'_,_!=`':A!S +MR&OX7`Y$Z#7-Z!GWLJ7=DYI4TVI>PVRX#:4`G!1N(+&$CD1M%:AZG$`!B$KA +M0^RV]%8G.)C:&!9<*SI$P";0-?_F<V")OY!L4KDL<;ON',1SG$)`+F#`"LC: +M>-ON]*$1D`=PGMDF*)`;"$!<`Z'9W8G52/K:X118HA=4XL&YU5@:?:A92@H] +M<X"ZSH$1J,9=^N2B82_;F3T6:CF<BD497JO1<08Y96<R@RA[G&*;XE_^A=/@ +M5K05[>2@9#!;JK\UF7?FG1'H/-ZQ:4V!)4`^TZ41`%C%9P<H%6Q5##\>P3.C +MC(N(Y@7!![H"E;$P#V?+;;FMSX44Z@`8VR*G@;4MQM@U0[D5Z'(!]6$4FCZ! +M$B-:9"=]HW\4<*8)B,*GQ@-HN`U:]#8P02@1'XR&$Q"CJ82,[D.V\P]#*>GB +MA$D@`0"\8>=+3>/I+&%FU"P^A[]P`O"6;L1\G!!X7E+6HZU:)&LS""OBFW(P +M*X;%M)@<0Z1/\PSVB+OGQN9="L4E,$=-"L;$0'TD*27EA'QO"F2P2%@1M1P9 +M96WPXI>-0JMW!0*D/'6HP12WH:F(2OK4:)/L"RVRC;(N8-H>J9[RK*C\@D&4 +MK]P9#_%H1G5?8&N/M`O(]@9.%IP,>SS@+\;3QI<'7$-^:PTZY(A01-2IY5;4 +MAW`U`4,,\`725]\87STIC4@U#2C5Y'8,\6GYRY;-D'@-`9E#<^;=]VPYN&0Z +M:KJ5T3)>1A,XER&@[T&XE&DEHP[LI%L7SSGLQAO6,T1#QYB2[$)"DCX@$#R; +M8E\X+XFAK>+5.9`H*Y<LS:BD;P2<KKV0)\RH:V![9^`U`-:ZU5B#)$01$V$O +M$,Z%I2#P;*E@93UO<;%4D@71]G(&3;6II$_:.8L?).Y.JV0KC;01;24S,P0T +M8P0*T"9)`$T(@2E`!&B`"Z@2$&/\<<)`6`1D*FP0#)%MR6Q0J_KHLJ5/#"O3 +M1`B8%Q`74&7+S<DY0W%KFK9L)P0`EK:*&TVTE5Q)VZ,Y3)MPBW<L8C!(U;Z@ +MK81E)7&CJB>6],QL5P7<@.<8<W$C\MU5\1IU2-\/J(P.9+WR5]BEOMK>6_VN +M%(/JM</BBET^'JBRK;!K+^D0I7H:GD6!_1L=[K,BP#U`Z@*LVBA(4F-7S($^ +M8#2(0!\]#5/0-MRY0\52XRL9@*DQ(FYX#A%[8'WH<F6N%RY;,L?JB5W5I.RI +M`E_%"2@`K#=>7^R^\8>/#^",`4.5!A"B,G6Q:J^,?JXLT@9<(`^X@K$#C!$C +M@9(+@28=F&U[0,.V@$#5!R0-EH488&PI($K0-P=\@`+8`PRV=XC93-('"DF# +MU58+$'.540U+[N"L(5F-==8./=DBBS)192&UL7YVOA2?.FMG#<>@=:OM:Y1* +MOG8JX<)L2]M-=):E`975AK9<&OLZ2V0@/.#0_/'!9DL+\`.Z;$I-RL\5K)CL +M\#(#E^*<+0B&B%AQ++K+EF5RXW`>;/)C@^RY1`%R@2ZTBY?89H8%UE!?\RB9 +MA+T4$&POGE)Y.CK%V%(,9%MHE*WPX5T6A+9-VVM5;>],^P2SS*G.;E:/1VRC +M[0UKH9Z)Z&@.J:(NX]>S+;;G]L&FVZ*Q!V!6:'$#=3;.DHYYVR\SHPNJ=2-1 +MO^*&MPK7PJ2MA73HK^"N#.CB_G1)-&D9*.X(:+O5LUC<94/MLD56Y"F5244: +M:*.SY0L'A>W@N:<@6HMIYN,J?R%ZU5>S22ZT[#;BLCLTB(+47^%N8H1I^%JP +ME8GD#&]G$,T4&V@7@D+]43T>L"F:R)<-(JQGR^X'3NLE,:Y;]5^>R0W$TNK& +M(C9@"VB'V/;.;BMYBP(B;(.8L#+1PM;6#.MBTTDZ86QH-^VJW;7+=MLN17@6 +M:0`/R*O3$1EB0!APNV3MK'$$M482V-I:X[MYC0;HM;D6$V9"3>`(>4TG``54 +M@7?7;F!C"AV!L-$!L'#8L$+CO;R85^V^`!5P<.6>"FB-GQ<$E$HF0/TFF>\" +M7I?,64`+:6'&S)CR2EXRH(-P"V\A>D%O`B@3'$)/?`@PA@32DQH9#\M$-/C# +MBR)ZHY=E6PVMX37$AME0&^;`8^B]WR$\\`I:TB&ZINT]''O!/Z`']<`>W`-\ +MD`]4E0WXAQ5``R`%G&H!+^$WS``W47N+;Y@PA9Z"19)2'E,K0@)KHVP!TS(4 +MWP00PO!?0"A?>W*83AN;^RDYE[TRG$_E-!@U,O![;2__?2LN1MLJ8-^[*QSP +M!?LV$EBU#(L%W(#W[P4[MMRV)M*\+\CM?-Z++)H6&`(7D`S<.KZ@G6.FP7$- +M*(QZ`GIM[_ME%/PR3>`O$(#Z%!1E>P&43?^6RO?;:LU`'L"+'6+<X,NI:H/1 +M0P(P`U@#DQB7VR#)9@`.L`%B8`[$"%=3%UPIVREN7D<E&`<\T2%V+QNHP:*W +M\\8]%?`"TLGF_;P)X,VEDJ9TRW*([CH;?XOJOL@L&08,TPW[3^T4KF3@V1!I +M5")I:*F]5/"M#IC`'5@;(]X.(<%#B`H#"#%>K+&X(M8!.V9$,(8U#,(IQ*', +MK<DJ4W[U#PW"$1&XRJWL7L+/Z4H'QLVU#81UAI;3/A9/&LFGP`.X^`1L1+1% +M9=$F2</%>&"%6L`;=MT4Q(F\`^4"4HF`AVL85,:Q#;$W++U>FVZ4J*X1Q!,! +MIY0*H*E1)0)@VUGQ`3Q@"X#C(,!0LI7[DL`S]@\?*K+A!!X#++Y&+C`!+&-I +MTHP7!SCQ`EM@"P0!;.Q,I274_5S2&.#XRQ<W3NH=C#S'R6H"QHMI/)!9'=(= +M>72@G)ZZT)!J#)5>2!(_]ZWB#-:X.JP#UC,1DU+*$=93*#)U:$:HK_.!*7`< +M-)&*07*6W$_`$*4D2KZ``!-`(<V1NW&,G$`:MR"<9YIP`UP88K#9QT#`CFR: +MN!!E<8@8#?B5A*_-3PY^+.(Q#`'[BZ:(P`V(@$\`MU'.7_$7?.'8A%L&L:;4 +M9,(H&Z$LVD.4X^P55Y(Z((L142T^&'T!&)\`,>)B=_',U1.^&`0`8V$\`(LQ +MS461\5@$#`$F(`7J\0A($PL9X'R=:IR5^'$"X(BK4AA'9H%+E:O%8P!@E;(R +M!Y!56A6,1A9A(FS/,7+EY_`88%<'86T]PAS'8-IJ8-]E5\[&V[BC?6;6+)I! +M,JK`86"8#.M>/N%\J1AAS5W*>#`7YB"@,D("/MX"Z[<-.&:C<0(\9EUX7+$P +M&1N-)$`C%BJ>^`S#B[59T^0F+*CP#+N%4)>/>*]$>>.LD]&X;BL0O5TW"2M5 +M[=:%>)&WCCRM+M)`P!9E7;C$MS=$<2YW?*BDWK_PJ3<L(*!*HW0A(<;T3<AT +MRQBCD@J<`-Y)VV`[-FPZW&%59!V>`&F8`MJD!0`3&O`8=F?H.L=O<:IV#&1T +MA&\8:UM<3.*(J"_7L)315I[P$&_@/6C<RN$PV(",+C[QX=_)"*:S,IY%A?A> +M,8)RO:W;>)X=!NRD7"XH`A:!@])QEY6T>`U%64B;B+UYJ))(6"8AV7$E.5^C +M(9Z=-/@B);G03+&2'AJB^4(;>,ES8LJ:808A!M0`UZ`#^%D&6(=@9[[^WU*K +M"MAJ/D2)OO1TYD.'1ELAUM6$6C"&6[$`&]D8=O4H/U&4..8NRS<Q,'G'OVDK +M1QU;!HP8HM%TP%V>DE.*!.+J@TY^1+E^90Q$71!:&ZH$E;VO*MQ5UN-34R)8 +MWM/1@2ZCSAJ=P-[S2I6Z.5<.,&ETVI&)E_C*C8\,/DNR0/JF!VEUWCJ[PBZ# +M3VR"!49#W!W5/L,F,]T*409N8R]L%TG@!$2:+ND&'H,"L4:W<8:RUB4+QDP$ +MM@)EYJ%+`D-4<AR9D"OI"Z'"AD7"W/FY<DAA'7?:*B$'4A2084_)>288U*$. +M&&EB[3`RQX(0`0%[8-]&*(&-_]WD2-&H$D=32IN";A5G"9.)\X'FQ<KQP#<[ +MU@N8`A$P"1RJ^@RM$[6`G@-@>H989WX55RN6'.#72*($[^L4\`+T]6WDUV9) +M#$`4'BAMULZ?7HD)H"B/9_!EJMUB'5"J'3(@M!72T!KV`FC`'"Z;'QL-;2Q> +ML0U?B,=$UFJS5_0FL?VD06"+L)G,K8%X+*;X@I%&U1U;0<>0_(8*Y^IXJ*L% +M(1GKLK/"K)TU'HC'T<N*B@!,\J+'3>:`77N;#>`!$0`7YK8V`26PBP;@;?S` +M2@)WW[XVA!N8$3_X1P4>P^1N`2OY,3RDNU&H-??/;1`!S@GD5LLM#'L*RUW< +M>AN31#T6P8]5`!MVPZZ;XXV1.G"*J\AM<-UM>`2@:-K=%WA`4M@4,1H-3+H$ +ML'E7AO^=1TG@!6"3^>"N,N)F>]VZ^V'S;H(!)^2`P(;3NDJ7%>\BL(.9MPS% +M@M'K=2N`-QSO)%X+&A9LKPGV!=RM`,X39MN3-NP,\.LW:S0DE83L;"D`+I#8 +M\1V[+;1,M)):&X<5ZG0KKV\W]$Y7NU6V\`$^$."FP'Q:X"N#MB0&"'YV0``$ +MQ]#@!((+']&-)B!X/Z6._!N'66$;D,!1A0N``;84!82)#G?`#U4"'^$*8`1X +M[Y19!?#%%\">1.`+D,LL$,._&?]6`;(;8H,N`YZ[=_<1$0';Z"E4C?<@`K0W +M$&<8$7B&.^_P7<2E]Q&/#@:1B3MQ6D(?V4Y<^@QT"2PW;_!]P*UX0KD*GU.+ +M1Z_B37KY22L6X]\[=FRV!""^R?<2@,GK9(8/+_8]`DKKH>(F4L`2;G%`-Q[- +M-)I^#8!<D-?Q_LVY<J<1!ZFV6_26\=E]1'SWQG@!>;;J"N\M/@5(]8C^?\SF +M2D_Q22[$+?G0M&78>W@7[TO*>U#YG9#B9+R*4_+>W3->`*:VT9M\C0/QY(U- +M=.&O".5C7([3\3;\PXG7$-G$;.>1#W%)7L1=.&^-X<K<E&-RJOL>5#D0IP)4 +MERG`<F$^S'OX2`,!Q;N$M_!KR%LM.`/'X.9\N6`=#W[%J&/TGN621H?TR1!1 +MS3EY&ICG;&>;0XPY#KV)%3@'XB7\@A]N"LY<TOD'!ROCO(8_\',NP=-Y!1?H +M&9R!;_#<"LW-N*1YT96CGNOR.%*&^42]4][`/([O\VX^`OQY\5;HZ7P*-'2" +MOL[/^4"7Z+8DMXK>9DZ\VODWJ>CPG%Z6X0:AT8GW->_H8(R7A_0G$LN]N5#[ +MYS4]"12G<3X$2MS,P>FE?'7'AUSNTVT.Y4.5&?0AODCR501)NA_W,N8%O>BR +MJOX$7H,A2ZM4W*BGJ^+=U$WHS)GIL!N(9^U&HJ"4N<1FW^3;Q`I2'G@02NZN +M\`^-$,6R'KV`*"MEJU:I<+I8M*V1S;V.[#CAXPC\F;_S4E[+`VE/+]YZO5CS +M0%HXU$=Y[M;C\2X)&!@G($>RP.U<V`Y#K1^J<%[.Q_E$[^`,W`H\)*@^O:6Y +MR[[L0#RS.PQCS=GUN6HCZ:"]:8WVTG[:_Z5J1^JO':[K[D-U6QTX-"(1(4"V +M4X$.=\%7.@-_Z"X]HB=U=Q[-B341PNWQ#K4?DZS!W%*-*"_J,OQ*_U71WGZD +M@&GW[G3@N)]TYU[=@8E#+^@0W:#;='"RR(&X4ZT_ITZ/QPC?3L1C^%=/Y&.] +M>/]WH6%SY(@@!^[JO<$'<E2!!PJOFRCFPO.RKII)R<=!NQ-XN.TG>JW?.%75 +MG<#8RAFLJQ,[Y1THBB'\00Q86&7`!)CH=1,V>K#CZF9T?J;U]/[BKPF0E?&* +M3P9@BXW^!%H#CB>C.IZDIZN749C78`SW\&L0)$8OO4:NJGKN;0-*.)",LR3? +MS[]Y\6;R36`-*G?03@YES`#E(!N=AV9,TI#D7?Q9\I93X`W2^"I?O*>`@<-A +MWBF?['@/#WIJ>!&8\B2^>!]F;H8J'RO&F&!O-9Y8T?Y>/>M@PB/MB:'#1_AN +MHE6>`)"-7D*^!FST9]J0&VL&Z\-I@R]T\V).!4`Y@6?FQPH976\)S,'V0((' +MXCK.,WWB:%S>T[HQL=Y&&FMP,"`NW=B`'6`#L8*MX\S_)-W8EP"C@:_[UJ]Z +M7:_E@+@;:"&^'MAO=,_94U!\\9R8Q[Z;XP?5=L^QM+]4=<%>K@-+79;LW7>? +M+@.QHJH[U<(J;?/`N4_K?0`N+/<X@DO"/'%.];@^3,.!^^KJI_VU<1].>P&6 +M!F@\'FBAMG>9SAY4I?LOWY3Q0J`B]VU82O$4T6OQ%,C"!^)SX2^,LR\^EZ8J +MO%<7JC[73UN`U>^KNHY+QP6_UA_\B9_P_\7%Y^AZ0@D_?%OOON,2DT#W6[R[ +M5JP;9O.OT<=7``@_AXPI08$".HH*Z'!.8&HR@7#/PL;4`%P#:J`?=?FC_N7K +MO9AG]-:J9_-@N13&"_R\3^"I/B>GL%4_!\X`1:YX4<_L+T"F/P0N;GGDYVT8 +ME7?(A&W"U'X>J'B_XL7:?::?E>_YF@9:<#_L(XQ^1/?QQ-%D$."+4RZ%.<#V +MW;[B?PYI7>X3_I#?+G[NX<_[;.!HW@>V[O8M/T\)_)+_VRO5K[@%;$`7`!0Y +M'^U1"/@L*6E8$4SV>\!`$`?9_QA61>V?_;9?]H.`>"_?`7IKI^DHO;Y/\.N. +MW[-[.G_M@G_N4W[=#*-/YXMN_$2U70#^R._/E'^^9_Z5`_%+AP[!]S]#/JF/ +M<B?PEW0O#\2#/T.W[RP=MJ^,EPX"DOLX/^A"-O07?HP.NE'0\Y_V;G_Z=W/Y +MO_SI_^I*_-P?D>?]_7WAWXYGT@%Q\)]RM^19??=>Z.<R*277QEVR!6P3Q!E( +MU`4P?5>>$M;Z:7G-@9N7,JU!7\!@)M!,>Y*$1H;H>"M[7H0'`JX74Q[^-T[9 +M10)![)`"OG@KX)_G.)"`0(4)6!/I2G*.!]@7@(#X@HBWT6U6,$3Y<D>(?Z`= +M$!CSS"!#H/\%GZ$`MHCCPX.E`?/!&\!L06])(''V!9@5T8NF5]4%.X9)(839 +M*!"CP0QXEH"`2P#?HX5L=#H.CU,>T1^<%1*H`FJ!T43T<@.P@12#&UC&'(%F +MX`>H!5H!212:5]59`;9!>S86J080'S3WQV%/)PZ/=P9J@5-9])(#;'0U#FA6 +M6[42MMD(0.)A@7,@%!`"VDZJ2*#WQ`D-M)G;,YJ!`",`*,@)TH"0(.2DBH"" +MJQPI&)J9@IF@*[@*/H*>X!!03*@BKF`LV)_,@IC@@C`"[(*WH!^8"U9Y.P$E +M*`M>@JX94S`"5'G%X`\("7J!,0"=-PK^@LS@*3@">('1H,T!"282JH@7Z`M: +M@JV9-@@.=H,KX!VHBH"#XV`I&`PZ@^H@.J@%$@$DWKFPT34Y:X`[V`RB@IO@ +M9]<)?@%$`"@8`^``]R`PH@]J@ZJ@/\@*>H)$@"N8&Q2$!\E!6`OV@=(@0[@+ +MPC4083X(#.Z#PR!%Z`TRA%7>7I,12H3"(#2H$.*"`*$7&,14=?@@2>@,<H,G +MH3$($(*#*L%(N!&:@QXA"&B587K6X#5D$-Z$F6`\F+L=@-63B1+_O&[\W_4W +M;MQ72Z'4@,F$$JX>6_?O10W`@L"'\IU1KU_$%_O)*FQ`YM`'L`!;W+:3`X8[ +M)R`:8>MMA?*"5P@6NH"5SZ/Q-IR%!`,ULONMA56=6"C8D(4[8)P#%R)L98!: +MR,DY@49@++$72CU^81.8GCR!42`K(:B5`5:@MK<5V@:%X1=(U,TEP,*VD=6M +M-XXAP;`&S`&18?'6!F(K98PM4Q<$?@G`5K@B=(:P7AX(&A(>?&!F*`+8`6(` +M:@@"$()@UR&X=B2"\][-810:#6@A#"`;5H(N(3^X%XX!,<!ON`R6@YE@0L@; +MQH4R@'&(#2*'PJ`MJ!7&A3.`<T@.UF;"(#$X'<HJ-(!U&!P^@\-A#>`=`H7" +M($RX',HJ-L!XF`UF@N?@=C@&W`#J(70(#^Z%9(!O.!?F?#_A>B@,]H/G(1E0 +M'-Z'-J%^Z`PJAZ4AP4`&-(<`(DN8'\J'J*!TV!]6APEB.+<@8H?.H';8'W:' +M$2)`-R'2@B4A?2@>9H@^841('KZ$]&%Z""*VA",B*M@>]H?PX>Z''XJ(`B(J +M*!3V?D4A;`'7\7ZY(2,H!21_.Y*6\Z?L@X+"J@#]@5-9A$NX_U5_/6(N)`8` +MB;+?D&A#;8CO($E'%.J&-B)2B"2.?2+?W0>P/&-_PU,H*$2%J:&6N/.-!U10 +M5P?[$0QB`!T@`HPL2(`10`7P`8D<'W`"I`$GP'TH(1XD5$.^A#4D@@6B"+`& +M%(<C"\,E)\8`=>)72`FZ"GOB7K@&-(>!8G0A)\H`A>):N,I5"8FB:[@&5(>- +MXA`@)\X`D2(EJ#A4BF>BG]@=9HIR(@W0*59U1@!.`"INAVN`>$@JG@`UP*FX +MRK4$J^)YN`:DAZ^B#2`K/G'L0ZW8)ZX!\.&K>`/LB@M#`.$KFH8XP)JX<#F* +M)P`.0"P:`1W$L:@9Y@#*XG/!+.8`S^+\(2WZB;[AJP@#/(LAP8)@!-07B>+K +M!@+\BCM`M2@HG@#?(H"XRH6+3,&X&!+LB2@`U#<&7(&LXCXFE3EX<N(30"QN +M4QY/R%,NLHJQX;X8R,F)2`"QB`\J/7W!P&@K#@'*8IQX`C`!Q*)=R!1<AA*8 +MHD@$1(S\X@E`!!"+9D_KYS#^BDJ$P<@$R(E.`,BHWE!*9TC&:"DN&":CG+@$ +M5(PE(%XX[@B,%(.E:`1PC$P`%L`'P``57AE@*%9U=EYSPW8@-#%6SG@>M`'X +MHJV(!"B+6D7"(R?Z`,1BIS;=$$\NH[G8)P(!P2)L@.D$`5-CU?BNI3=W0%RA +M--J+3>.OJ*L\!E$CV'@"\`!BXW2S+:X!20#'>#">`$/`O]CQY$(XT\AH&C(! +M=N/)>`+,C.YB;B<?X8QY@*+8%<:,)X`00"PR`0:1*>'C_!]^HV9X?3".5@"Q +M^.9\2>-,Y>@G0@&!HYRH!1"+@`ZJ<R=X*UDCJR@%\(P^(]`H$PR-==Z=Q]#, +M(_0B>I`VFH9R0.AX`A@!Q*(4<,^A`9)CR^@YRF"Z(Q10*&YT`@[+2#GFC#_? +M^$?U77,,H,I@)8I][MN'(`&*;ML$$A!@7(`VGAMPY&54B6#HY[X!<=8C>_0: +M<$P;76J`K;`N'\+WV![1?/85>P3R48_-7FETEP!=6QP5`.J-.^UC^<(=:7OE +MHQD@[RV`35X#>"4^"_*<M^<RO4C7HZ5'!0!YW&/Q5N31`>YC7D+]B7T(9+<W +MO"!\B-W]&$J0=4:>_YA1X4M[@:W'0,J/-"*8=_7%?0<DM]<G;9`3WYN1J&P! +M0I[IM_D!<:6C7A",!62/#V,&\2QAHM[T./AAB>T"LU=$4@R>V`0(XI%V$628 +M*.N%CU=BX6=$4GS/'AT0-Z"/Q=OFR"Z1@1F8P:?MJ7APP/PX1`IWHE<@!0<@ +M(Z%$TN<1.8E:#L$VWJ4P`D4;<"2*?2Y3/.$:3("716;A!'"/59WP-"=$.+P' +M:^.ND`$7Y!#I,LD!UV,>:4OPD0I>7O5`["__HQ#9(2%\@<H9*0>\?%``&AE/ +MZ"WB#IY#()51B"1[-.J1;U?>FN;;G3VY#X7`OKEO\4++QJ_90KI/"?9*X@ET +M`.4R!LR2H0%7=TNF`!T:'0!K(05H`+\&%["2@\Q!,4O&"U;!KW!,+A:,(1RP +M3*I$SB0O.08N$,)D^Z;EQ`MK@"LI36*38T2#4$WFB+LA,6D&O$O/)#F9O]&( +M5.)1V(:!><P?5+@^``>O'FP0!NP1K$''$)FQ+C^.M@=/AH5NWSU9I:%(VMY. +M(`/0A54=#T5/*@DJ4^0R4OT*2L)OE^SMDRX@..5/8H(-Y?,6\95Y6`5!6;RI +M>?D$#E-"6"HW3/NB[<%Y;Y!&B?'=>?.31]E"@)1G@#[Y&$"459V,PA3P!69` +ME_5`Y`S,F\]EPK1-<%T<UN?A"R8E*DC=:!^JA/5&II0*;`MKH^BM"]I>*TGS +M!)4SS\`$U+$=Z=N:D^S%"]WDND`7LG4E&/;GT565N])5>9"T;%LE$!=5FHUW +M7PCF4)Q@867$QTUR.V6ES=%5@F#S"%@IYR1[H8$M&52F17PCKI,SV)7:7B[9 +M&HP!02444+ZT?H`E7NE+,@E,1UQI!#"6K\%65[X`EDUE,5D&!)4*U`CS`JZ5 +M3=NN5%DFDVQ`4%D$$%,1ST^6%X8\B:5;R4Q>/*(E::D#CCNH8VK)1JR6<$!0 +M:3'2+;W0&A"_V'KQ`C095-XWV\@X05F*E09%4'DO)89]P6*(ILB61\,8`+_M +M"G'E<<DB,)1]B6P)3IXXS>4X^2L8EV-*D9@B,I>]Y;L43]Y+L]5WR5;>E4,A +M^5<CJI,*`.]G39H49V0`N-'!6@)#:0!1D#S82HU`-4R5'H-U\+JY;S4"%$8Q +MO'STY7B`T7ETC)I^"2S$4P)F-C)7P'7%W%GI58(Q\X&K@5JLDEI.:*!-TF]? +MWS-7U?&5M.1I`/CUE.F*S9/[9&J=S6/P50P!M005``4\!JL*^%+V4634'1\` +MJ=QR*68<X4VPF)C.$`!CYGV/7XADSMV8)R8;D&.NF$=`\^-C0B.8W]&4`M0' +MT8O]]D"H<!P.7&`TU'G6&6OS%_A]'ET9P_%U?3UEVD>1A1)YWXRY]J431..8 +M8DN-F,F>F+D`N0!EWQ=08-X&?("@,`0(`9#:$E"XN9DG4)PY9T(C@H(?@`)$ +M%_(-G%B8]1WGY)6)\8TI8R:;&?&5F#@F<*!C/@&(`:;S8D(C?&:-2636:$?F +MCOF6+)FC7Q6B:48OD::*Z6DJF8]!J+D&/)F0BI3I!E"9YZ3SN-;Y?K)%0D?? +MG7_#GSJG_J%S&EQ,9Z@I@A$<,*%H*@<KI<X4(R`-3=`9P/@%&;^!#9`;M`%H +MP&T0!"@.5R6[\`7D.6U`BFG[K0JQ)E&HTMEWXMN'.:8XFEP:<U=JQA$\9L+S +M8P*`>L*3"0+L`9`**O04O&R"V>H1@#V0+>8^=DY&F8[DJ\EM%F[[&]&89:(I +M6^;WQW9XF5S?5!5FA@<O&IG);K8!5F::*;M\4N3FYB6E,)P=@KSR!1@JL1:@ +M"0((FE@%.B(%\`&%$K]S,B8!1\`V(07D;TC=%N0%)`:P"RO4P=2&X42;B7'J +M"1HGQUE?F@"!YO#SAG`>)"?G\8:0G"DGT)E;?1,D)^>D#>V;]E_&.09\`6Q` +M@>EQ@IPZRC7A!)"<<=X1P`<0FD\`TWESM@$:I^ZS!5@!9<4>&4K$`'OFUQEV +MC@%C)Z57!)Q^@@(,8&7.>]\FG.33N6XJ@(AC5M0[,,<UA'+2$G0$S=&Q9!73 +M!.A1LJ0LJ=@1@8@E0+`3FL(:5$`6TT/4@^US>%YI^0\15H9==R8CH#=:$M5" +M!#0!!TJX6;S!3?_'DH`P5!1]@;?CA74XZT(E(<<M=O5/0D;>A7$Q@LU9%SB= +M4*?4*2@`F;AGU-EQ<CI99\1YTK$2>=_*<`4\D`2&RY2ND!`EUU)P&I1[S%W3 +MB7,^G;YG?1D"Q)U0YL5Y>TZ?7X#8:05,`<?G@`%W:G\OVMHY=H*?R.<%B&:R +M=5G/;-A-N'[)ID4I1JB=3Z?W205(5U3`^,E[<I_V)_ZI?@Z;Q97P-1\<FP># +MB*5)[08P@+.9`T";TB:UZ59:F]BFMDD<_)LT8MT)84J<(>8;"'WZ">?F`_F6 +M!`$PIO3)-'8X\&;T(F_^!2A`O:E/^"L>Z-<H`NR;"8"K"6L"G#2B^1=LYIK8 +MW?JGW;E_-!W\-VR"F.2F3<;<*264"Z/TLDF:,>;VUVZ2H/&F<S!OIJ#[R@J: +MM8P!16AHD#O"H#(H!9H`!)Q89J2A90Z`72;A\64JG+9GP[E[/IS"YZ(Y<:82 +M0:@(FG-*G3SGQ^ESBIQ!I\E)=*J<7N?V"792GW!HSUDHT4%(IUF!<FZ=`T;7 +MF7;JH>8GV8E5C)]HY_R)B-:?;*<5X':.GW)G.C'O^:`8:,CS1C1%(8\DP\-H +M*VD1";$6+9R/*-1YEL2=\AY1F`"*GFIH!EK&;*`H@%*"-!BA1R9B`(A>`2'H +MU^ENEJ`)P`E*;T:A`9@LRBX8H2]HX1:#]ILSJ-%`8LF:JQT"N-]=H'6>P%9R +M]90R*`QP3NYOY-NVTR!05;L9A<E.7)C_98:IE,B2]4$)VD@^507GFG9@@G^] +M$(G)W`E][<+UZ2<8?2F`&LD$9)_V"@HP^\&CMA`RPA>\FO#HDSEW1G9$0+G) +M@1:9G2:E^99<FDFHF:G\#)FD)D(J::Z8G^:Z*1TXF1"I32:1FIH**:K)9((O +MF=_GQVKRFQQ7,LJ,(G7B'#$W[]F@%FCZE]*Q?\@?W2G!`:#%Y@`*?QJ@S&8" +M^FQ&F\2+`TIE7)M+0;8)'&R;568%VM#!HAUHI:EN?J1*Z`C::B*C%.A).M\M +M=#?H?=?2Z:#'GZ\)85ZB^]VP>2\UFH0'+"J,^C/(2"W:QEP3N"A3^J*-I,=H +M21J5JJ+/*"O:H^D^``,UBHQ:H_I;7+<P0):(7069,T!4)Q:JY[Z%!K\DTS&_ +MP9OSG@IY[]ED6LX_FH;:'*X$5V?L\1-_Y*%R@"5[_RB9V1IXD!?,"2E`&J0H +M0&8:**`*V6<UFFBJ>RS"F$)&J4,*2K+GF0)='20*.6Q"`<X!E74AI52L#<:8 +M[,F@^>CLYYD^!O]HAR./!J>IJ'JIF$J/*FFZTM;A"W:G`A'XL`C!9+>I7BZG +M;YWXMMSI3(?*<;K1.4\6`BNQ`H5'4A#`YL^L/K*+OY*LG$I*A,=@EY:D>*EJ +MUU[JI89E7UGML4K>E!WU"V&860L%.5@6?6A`?>`RR0;I7EV(,P&FAQ-4D=8A +MI@2DO0<%#)M,$M=`(4@R9-2GYH[Z":]IS,!D;J;LT18P/TD1_A&&:@:D`%U` +M]DF80I;5Y+`)'AU6[5%/J0*\IBO`"A!*`*@I9/2XE2JG3IW=6;S%IYV>M3=- +M/D3)'MPA&_"GTNGS2.*X=9$>,=>6WF_M*38:NX%'&Z`/B5IP/13#N?>4\4#L +MFQU@GMPN0P36P"4E*H\!H%(?9)`OI-O#\M$P<<#+1^V].&2J-;98I'7N&Z`2 +MH**FA-7/U>Z]>]U<"=JFWD9)0>$F15(,N][I]!@X>RT$"O*83@'ZB?Q2/,UD +M:6I6<KL]FLQ="+"NE*;]YJ!:J&8,NP+OT:2R(_G/A,HE^:.CP98:!W0X[DVE +M\Y1R7(^IR-:O2&"W@8#W&!!H;J1,=*+MC1IHQ,?_Z"V"0B,JA/H)563<((^" +MD4PHFV,8>CSOB[.5X@T.GEA/J7V&$F"D,0JIL'%0`5X`C^P%G@FGA"II#2A1 +MNY#L)3+"`N^!`J@`C^J["<P`,Y@=FO*=)B454/K4^EVKM^JVNJY8J"A("^`# +MR`:]JBXC,XV>#@_%55K:.B"7KH&N_A1Q0(MJC$8O*,B+&AZXJU5DM/>O/F%X +M*FQ:B>HR99;"TA?PHKYJ_L@#V3JM'['G-^6K;,>^6D4&K()"N^H#]'J_WL$Z +MKV)\[M;RZ7@R>/MJB;FQA@?99ZH5'H02*^LE*3,YK,B3SB90K`'_*HD5O>BL +M.BN#ZL0\J`L"8=,QN!5@I*9*'?RCGFJ',]M\>-)$^T&UH`"YZN#P@2&1UP9; +MZFHJJU_@_I.PYJA,`:"$J:(6JM3>&!V49AV-4NF</FL4#^\!B\ZJ=$#V*4/& +M`5L`MYJH,*)8:_%FJDI*:X^Q5U,R"/M9:13PO"U#JS=5)O:4D@P*P+:>G9J4 +MW%JF_BO]3RAAC7JK$>M&&0;$4[849W>M1JW9R+MZ/HI>ZXJ_"JE@KNZJE"HH +MN*F0RK*ZR_V3`L%C\%R::!L5FG*MJJPMA*XJ*/"JD&O$BH$>KKFI=Q#M!4Z[ +MDW&SK4![OYZQFJZRK2VK]NFN@JQLAZ"`N?ZK-.M8Y[$6K,&K\AJ[#IB02L!9 +MU34\#\^3*D;I17'#M<JQ_JY6),7@N6ZA[VDQ=P1`%!5/_RB?OCB]F6:T1?`1 +M[!N8JD!.?'N.&/"^T@&'*;`)]FU["20,*=C`J+-I;9JZ;%*U)Z/J)R1D.28J +M@P8\!E&3/!HU\:)<W1R0@L9NG9J/8P@2L,/4O,D@6#^XD>M6C#(L,I4^NF_J +MK#(HO%J<"JDI*;#)DEIWNN9+NH-JI>R<4G?3\:\:I)CZOZ(!C^D:!:_)'?S9 +MP--\4JD&;-%'?W:?D>@D&J^ZH9#HV%EVTJV0"A)+Q+:=28!608D.D(?*"HO^ +M$7]7*:\)TW%PFR:*.9$JI2`HIJF+GK"S9@-'E;:D6.RN"9-JI>]?5QJ]C*6T +MZ!=[EJ(7N:@>&J26L:OH"^"K<J$XI`"K)V"PL"@"BX3*!@RL<%JKQJL1[`0+ +MQ%6PGX'"B:`YH3T9![O'J0`?K#L4PA:EY.NPR?AP7!X2U[J>WF\F;`UZ:U:E +M+FE^UVMR</J=#,O?M6%**A!WON9+ZBO7VIMY+Q[/_8KJR:_^*U-0OQHR]VO^ +MVF$6I,:$V#?_45TVWU`)GWV)J,)C\(AM!P<*[\>8=EDPDT,QJ)8Z1EHLNYLB +MKG09/!)*K`MF&_XZ^T4CCX$]&LXJ?3`F-_,B[9LEYM.AS8ZFUNBH>K^YG0XD +M.AM]>EF2!FE:NR:R(@`%^Q<TLJT<-=LN0+*LDB1;>U*R,*B.X<V.L.MG'RL' +MV*8(VFZ*C-:OO:Q`2B.FL"OI*(O&MK"F[!8KT\6PU-$S^S(1(84;+FO#!DLX +M;$)K<WQ4Y5$/RWR>$4`L:.K$VI]1[-MIH3ZNO.A+&XDNL8ZK,6K30K%2;"A1 +M`U"Q9FQ*Q\+FH%IL^^=K=K%&IAS[-=:Q:RD9VXP&M<*?5:K&OK"H;!NKRD(J +M<*P5:I;>HDQMAW#'/K5Y[!YKTM*F"^T`V]!&?.JLEB,H"+(AZ`*+&\BS\R@] +MZ][0M/$F4*7(H@;[[`7[R$Z.`>WN,]!6LH4$:"#"TJ#I:EH+=&&?[NR4"<\" +M6:=I(\G)>E8XDT-;DH:R4FGY9]$.M<4?5GK*;K0,7!Y;OI)OKU`9<(V41CC> +MN?JZ6:E4(`@0!WP(0.I[">Z-=0*J7ZE152V$9)WJLSJH.,Q_!&O]'TAI_+BW +MCJ8F0`"IH>X0C*$98//XMB!JO&JZ$B\K:(5US1BKO:55$$T:HU>K,FHTF*@= +MS;D:\:D``20=T**^J"5M*PN93C6Q+-Z*ZJ&VIN`CD[_2L&'JMP>C*GM98I\J +MJ%ZWXB:[M+6V?L\JZA%F;JX0;1^&O^Z;J^VK&<HJ$D3CI)JN?"YQ@VT`IA$[ +M2A9E6"+P4CA48M9#?JWK6Q#[MFX!L@'<B=B2I!+2H"IL92O#%E2P8DE@Q:KM +MB:Q2K6&D2>O(.*L!D7.#XA(.U>JBJDQDJZDG"L*$+K<FUIH!R;%3T2JD-!YH +MMS=F]#FP:J[L:G_JK8*KNQRGQ9D%0P6L12/D3A(^`/2:O`H*]NB-&T_N1T(0 +M2X4S:4:VU+JBIE:X,E-W&TH$D`=K@"O$0KGG'@S*X3X0.6N:("(\K".K,9>] +MWJO87L@EO!ZK'>N0*^7^JW$NB$FQ`DL=&M75Y#JO_"WZRLOZM]7D6)?.GH^" +MPF([W2%/U6V<&]J.MD#N6&?F#K@[:_7JYBXL$NMI\.?*MA02!C/=8*S"Z_?J +ML2*O-*AXN\E*2*W$(Y/+LJ^"J3AJ2ZZWYEY).VRNN#D3PN`NX4P*@H&5[,DP +MVNH#2]_6MZ1M^2)PK48][*>W%X1QQBJDZ=N^!O)H=QNO2GRA!'?[[(ZOI*:Y +M^>Q:J-)NF+OM"@IB+KCKV_ZK-NOD:HPVK&\NFDD)PF2Q+!F%KCX=ZBU"2^`Z +MMJSNISN??K)39BB[OR6F60!T$00`-8/ICA,&X&ED`*WK(WI9TVSH<JB<)\Z! +M1T=&N2V&3,10$)R1SV<0&T!"N^+N_0BIEJ1%Z;#Y3*42IY)PI!G!;1U#"\>\ +M+0PS!J3F:!1O5\"C%%FV!@59*O5DD6<#WZ=`P#QV$5_QYN>>>*S2H:*Q#0OF +M+5*ZD:*\CQHD0@2$H%Z6U7J7[ILE;-*;BKZY+:>_XJ@Y`2JO`F@&G+S27?VV +M]#Z]K$3Q%H!)=SWEZ#D'4`@\!1F04]QE'ZVUBM;2L^#NT$NI$0&6VDL)UQ9] +M<BUIFMB^FNWID9KO.KVJW2#XD"AW1.'46_6^;LLH44@%]+N0"(%AG2:H3A[Y +MAJ/"9UYN5G*9S0@\SL9VWEZI,AD%*40DK4#?F+JN!*C"'J@;^4(\!^IM*QQ) +M,G(&>@.+.JJ)RL;;X9JT^PIZ8Q4U?&_5NL!ZC+X79L2GGTX'GBH#VTOJDM=H +MC%I`(J=Z*1B(,(B!&.,WA"(,#/@I9K-A(JC9:?0H1HRI8T!M:?A)@%2>^NG1 +MNG*,'QNQ_#6%K`<0-P:(`7KJ\L<EUIZT38H[_0HV0!SE,AK8`;,D$%=+L@O4 +M08EZG6*]LYTCF#)1`2VFRR`%=%TL@!C`;,V_TT%9VG5)DRB``%P?E'3IKO[; +M%_"_F([_"P`+P`D``5S_'L!_:@+,:C*CEFBZDH-FO55=F8!UG&P+;I<THJ$I +MA!AWEII*62X:[0LLZ&S.YWXKV(0_?VJ``P7HJ<N*Q],@`!S1`=?;%WB]_DH% +ME^Q]E(^DRT0#4WPW2N%&!+-Y.?"=PUKUP#2B$&RDZKR,)G^9R869>(&@X/X" +M92DHF%?)EI@A0/6+R-JUJPQ0=AL)91S,&,I[<`$B`)C'!O<K78MZ%P(`M@;M +M8&O=#IN!W5MEKL4(CQM><%7Z,W>"H$``0PFQZ/C+'K5,<,#<R_U:J-SF/4L& +M`Z/^2LO&_"EAQ0<=?,G*NR7F(LS.(K)4B"^9@G)ZG)WT8P6#<FQP"3`'L,%< +M@!N@+(K!QF@=C,GRL=27"4/<2EHC&NV+5V:<=,`7X`:TC((PY4*XI*#`P@M* +MM=BJY6<N/#G\<KTPN_`+RRIOP!<\A.+"NG#+Z-XH#A!<,:P+OTOU[`<%P9+! +M1>/%E%*N4E!!QO"UL0%S<$%["=.@7NF'6[_Z#08F[:MAR;A22A9L^$6`LBFQ +M6Z^EIL"/-N/0MA&-;O\K1Z2@D&$(F@@_IB#FY^(&5KHEI@5<EHH`<,"L(A"S +MI>%/*`$![GL9*O9"$(\I"D/(,VX`?%5AQ6LTW"BA!`3LT_S#(L!=H"RB,@.Q +M20MB^F0;,55HF*!*;6;%T[%&@%)#X0;LUK@5CWLSS^Q[3N&&:MR"OV0`S>83 +M;ZM`<7);NXZ_QRN`UP]'P/\P4ASE@BH/L4XK!HROL'"#>OHN"'M"=8-0KKY` +ML;X""3(!70"<">"9`"0""A`&T\1=X@K8!(3%3Q4$%P+<*+MH7<O[ML&:YSJ: +MS[T!+,*"FP+_9-Q+9$68K$"SK?4V]"!7-17^4@ZWPN?P'8R!(I=38!6H<<E5 +MKHT.Q"R=);!H5ZP$LL5C\1*$%I,!7K$GB"]@QD(#I'I0[!&TJI9"1Q1N8+!E +M#`F^G6)Q:,RP_`HZ1FD,G>`+%_$1*29N;/#P&B`/G[\V,8WK)^C&]:P)</X. +MMT\"AWK^"L7$+8>J`AS'(6KM"G=HJ2*Q!*P;$ZQ0,::9"#\&T[$/T//1!\:H +M;DP5HYDU@AF*)U`N!68*B@=PAOE;5:<EY3>D`>[%7_X`\/&K4/)&?`'F%3D> +MLPOEL0B`!:#'-^2@0%,PF%'8@RF72IAV<2AG88*YZ:J&2?/P:V/P7`P)WSDC +MF%UL"0NVK[!)>R\]P;W4@E#Y#@NX+TQ,T^VO.[!5$"/DN<^!W0=GG@%?0(@, +M!5>VY%RM"?Q=ME<L1FO\;;:&6@*@(H_(SA_N^:?\GC:'$!`$5`%$@%.+U%FQ +M.&AF6]3RH,`F)GHCOZAF`.5R(Z,`J,P82R-ZMO/NH@GAE"]QG+:Q&Q%[3JJ' +M;#1P=3Q.T;<9=\9;X!0`&BL0YZ3%"29OOJJQ)Y@&GLG<<490O(4)/24VJ4V^ +M?'3RU%?&'J<SZA]7HPZ;QB]E.`OKIH\F4>=`E*@8:$K)NA#*2QDTO`O_'X*" +M$W)+)`87##'L*&/#=B;V-`4\I@0R?UEA"@8(<D(<OW2J<;$)^@C;FY%PA#Q5 +M3L@'+0W*(E.G1:J%+(W6I9(MDAK\%G/:*"N1_`(CXTSSBU62HQPFX[N8?GFL +MKA1QJ&`->F!8VH:IR48>FSPFHX&L<3V1'L_)Z$&=?)!DE<+D%I<GY[QR75=9 +M('_*N>]2-HYNH]^DX2NC+KY^,I&*!Q?+>,GIU'KVE'?$"X$H<Y7;Z(29SWVC +M"')HD%66`>7R=%JCAKT8WZS\7M7*4V:2"KLQ"",875EH;,NNK9V\()>CBN#) +M>YQ^R<URP=LF?P%O<FN,)A=N(RHPF>C""U\`>[0&],M"S6<K_LZ5V]8\PC`3 +MDVL`M@PQ+W<2L_3;BU;,8C)/G!;3@=%R_;%O=LR&Z;X),L\!4!C)?*F(MYDE +M0[59^LJ6)1080[1,OT)]X+Z=(:"O?_=_K$J)H+GW*T3-D"F\=*BN3*6OQ,?^ +MUI)'R3<I+"^H=6'N-/O&?$Z9=I:L?`JCQH3[Y?:4:W+!"S97#36SYT`FKQ=P +M,M,<6JZ5=X!$RR+SR>CRD,J<&@UML])\!^C-7RU2!RM#HP$S73HP1WRF:5Y: +MS(V6T\9KR;J$/$@S:.G+CLU>J;@#&;O-O$^R%S?7S4YA#0@G)\Y5W_#;)PO. +M3QU+4Q?@Q<HDZBS7_<MRJ;/@.,/#D;/)W"WG@+II.+I3)I/19+`<_0Z_P&8Z +M.5MJET;F&8`\_P7[9GBI3)X!2^)H)CNOEP#SRB#NJ%J)Z@\I.M/,%_-@=CH+ +MR:FS@KHZP\I&P^<L-#^UB[/XYI4*S+CSUJL[6\_#5N.C&%*!C"$<^"D@S0;% +MIIHE.,W7Y'B*-<MA]G,/:-LFIM+O=;DC>K0U99Z2:FHJ3)]=Y2OL;*+87#2: +MR;BOLH[(.,//2@7JDUS2SV@**H<@C\X>-`@`!5W,)@Z<#`+X!R1TSAP:#Z2+ +MX&Z8KH;0H^EL7`3$JPFT//PCCF;&:)KHJ'2LT3-(IM,NSTQ!D&BK2BD]]((@ +M1!NC\0+R;+AJ*C"H\VQDZM`I,?E:01N%@*]Q>BXGI^GRX/Q"CZ?9IRU3!/ZW +M2G"ZF\;X7W?$^:PXT\Y3<.,\C1+,>.^M3+X!EWXP4CC^2K>;\_"LH`*;(<`U +M85;P<&GFE=PN1%4*Y_NP-Z<K?$1L7+E4QL_R'R@$G,YR<9A\,0."WW/YW``3 +MA0&8'LTR&*M?'MI2?'K19,#-]9\M*X-N!;S[WI(G`!<P+$[/@#,6S3K;G3YJ +M,%E*G]),WV6!)NB=4\`X`4WB;+`+?<FC64FHDL+@QXEE5;20FCZGT7/I&@TY +MN\_[KG*J(Q9S]])LEB(BS4IT,\@_=UD^]+1W"N:F[$(B"/W2>\1S@=L4P9XA +M@NQ9ELUJU/2"4!F?@J/I#0V2N;X%<V.+\1FXA\H^J."6$D/='A?$GL4V,V>\ +M`F(O&C-]</?B;].L'_T.9L_A\LRL^5K,B70N&!*XJ'2O;48B^$21=.><"[E] +M^V";"42_J#BT\"L^!\[D<U4'!>G)Z#,:K?6RIVYT[$9>0HD5M>^,V?30#37S +M[-HV@V;J-=U!9].E+P'=3==Y\'3LR4O%4EL9.3U0G].V63I=1,L!['0;+:E^ +MT^F*/(VRT=,"GJ:*3]O-^S0CO>8:U19R)WE8GH(=,MS,/2?4`.%"'=<ZU"`` +M1-U/N],8M+EZ"IJ+F\/XRR3"U!KU"MD!9]&M<_'V4:>7PK1(K?=2U87O=&I! +M,WKWTEL6&JQO*G6Q8V0R#?XI]3LO8,W"DRT6";E87;/5[*>E-\GJ^LL4B+_J +MKX"*VTHR8"2V$2E!6;`H=3`YY"E%W[SP&,QC64`]IBP^5YLPI!(0%*VU:AB] +ML-C4=[0!#9IZUO*",\DTC-;"F6G]&*#6&^[MY.KF`<4J*BI)O]93XEY-5^_) +M5_0_G??"$2N`H'`#/*;E#`[#,!*N"T+19T,?UJ)7]1M."`JE]+>H256_+6KV +M66*J`-KU:%HGG@#3+GD-!WRWW#47X%T#,^4NSEJ]@J;JM87:7:/7_W3'VT?Z +ML1U#7`51]"6PZ&J-XEJY=2'$P+ED+6@*UB"E>J^$AZ`0-!PDH750''%>KV5K +M_\)%7JO/,<5@73/-\P%""UL[>;(UL@#UPIO++=8#E`T[VMDI&)DQV$>$H+`? +MF"<1-@R:SA(><VTZ)Z7.-OL4,".#ZM<%96RT#TJIVME4&/#1392?7.2]<M53 +M&0C@HIY[)K2@,`[G/INJ'("TBL%*]EMKC*:S2+97S62/U<`,=5#]Y@&D\\VL +M4%?96W8]@0A[V,4U%0U2(W6I]$AM*TO.OZP+*]6FLM11-*I`R$1%1.;)KV!1 +M+7+)%K>E-ZJ$V\+HD;6VJ;9B,%&J^%RLVRZ(`;IE@]!T&*ZJ*\0,IS*:+7`W +M^H6Q'@1:;,6^E%Z8<\1G!X0&5""8O6\.FT\`BM`6&4PI2[+WT:``E`NV4?!* +MDUGG2`P%D-7"2\;@I<4(O&Q,%A;]6]E*3?E7L@A*PK`@ES(^DC`&Q5/B560` +M4V$MW\F.Z!T`![BK=X"<V7$*"E>`$:`]QA9ZZAFP%(@!ATJCBW(,JNPSOHM7 +M6Z)$84`W(Z>Q=#9"1\R1;P4QU37NZ`?/Y^O&01)Z2,-Z:R+<,.[;7:))U7FW +M=DQ&Z'T!:J]D3?'](#5P]1MQ<I"4P[\P+[NR3I\G-U3FRU07E'R7D-7"TWM% +M\C[<;]5R<V#G#%>E#4WH2=SL$5E=!,PM(,]94ND6KN6UOI2X&MQTPGJ]`HC7 +MS%U];5ZGPNAU[4K'I=SW-;F;K,C7F>Y=S26EQ,ET%0LC%\E7*?)'OC$^;12E +MI;:JU$,(J&*X5A&S7_$AJG*0Q0?:&4\^`41;2`6JI'54=Q4A`_S/GY36_2]T +MS84?*N?UV*IEMS_C]7S=)BVG9Y08$;"GU!,>H!8M$@E,3QO21JL_\W3S!=_L +M7<+A%-7)J.D+M.(V:M:8TEGKW5(WC'F74$^;\)$[!%H%L*<O-:T5>\TN<^=W +MB\5?0(5IH2[>F+?F31;#U^Q1#(!Y?PAHRFC*>2<%&Z<A0]IL<<_4Q/G#QE++ +MY6C@-[5(Z&KNG,D2NY]!7D@7"&G)WK.@1HS,4C=9S01\"!1"YK3,50U(&L<= +MQ/[>>W<9$'5[W4JO6ZI?GW3(#_']WG"98`SM?4R7I+XW\=U\_]UY*8M,),_9 +M-#*$F8V>$O!9;NIP*Y7\]8`5_JK4/9N)T!K$V)TO^TM[D`%8,Y'U=.E`%D1C +MW3_?,MTO@]I58HUB9>%L#3_*AS-IRC$OEAYS\WPM<SO9,K4\'XO+^_+"7;ZY +MWX.N)NQG9YN$]4S[F/YWG-4&#M?5#F7?MMUMF\9%@)XZ5C[,_3'#G""/RJ]F +MJ6Q02[#Y+!`W6FJP"D3+AH19V@8RJ"S)L<IV\.T=C=[.(_CF((-ROR6U7+<V +M/SY'F]J1L0;6\439.$:D`9#VMC)-YP5OZBH7:\UQW9S[Y@9DX0B@>*`D6$1> +M5M?,03(=!_>8N@7#OV0U$0`QT-/H=RIQV/%9Z0H1]!E\%(-NB4D$%9B`-Q'D +MA#+(M;&M'7;8D:_!5<G?KAI<L`C@A:`,@./<ZZCVI_IK.0?1S3&;JPCP`O@- +M2`+3$;FQR.8V5FIKGK&8;=$-PW:V;NS14(E?XA_""Z")@\^6+2@>(^>@R1U' +MJVZ;M&ZX(*[Z;M^@+/H]?S,=$JUX.P5$X:1!>\590^$1Q:MI!D3:KJT`"=MJ +MX0(#%ZY2?^'+>!B^9I'A\(@9/O%E$A.@I/QVHL;7Y&/JAB^X<7B@_6C!+G5X +M]288Q`F!+)S`A__3?KB/`XBKQ&,*G]5ILQ&A1!O`!D@C8+8(,`<#IS5%.*N- +M.^(ATC\=(CVFA/8`FXIE7%?EBZJ+XZ^9!%F=KGRG4@[#:[H=%+V"F-87\-J5 +M,5]0.%BH,G2O6CO8X_EHP?#@D`$A`PS*,T>GQFA>R2[LDG!![4!BU0Y'>!). +M;#98EI5WH&@G'PF$_':,6^').!B^ES;C5;.6`XW'DT&`&.X%&;9=,Y9IW11, +MP+BX_7,7XU6X&]"+PZ=^55]:OHQ<;X"0]%:YNRHUMJ%DS0M1^16NC,>3CR50 +MSJ8*Y3YY43Z-'[S5N&WK-<^4-44VCE5LXUQ:-VXT_%-'86F0XB8`VQ/%YVR7 +MOW3DQ+=[G!Y>8ESH8D5NP^8W#H<?8^(X!@Y[VN'GN#T-FN[AL58?#B?\X1+M +M#SJF>.7]@EO!9R7D3O8]#@+EXT"`LIA)^.-S.4`.>`_D\/BPE=IV;'R69+EH +MCY"$]#]+&A_2$9\8(`]SVU+#WGUZ/`8RM-R+&EO>B7#M^N7Q0._4Y,J$5TH0 +M>:5D+.^HI,&UZFR'$@",$+&78ZLS3&94G$.L)::S#6U_`7=)%BPHZ.;3KHV, +M_.0!/@0*$)Q;V3)3?)VS`C/3N:#@G?L`T7;92`9<YSIKNAH"Z`$"P5V2`"?" +M+:OM#0N#1[*YOL0U,%FI3&OJ5B(CJ4QHVH\3#`Q%\\R@[P<..@G1I>X%IT<; +MCJ9\YFZE0GXBS=\-^7#N)SBJJSE9_8M7A;*1VY>!).?QE-!J^VQE&5>!OOH> +M3J!!>KZ>_]W*-5G],>!5V`H&91>TRV[%ZDL>5Q&^N7<`G/<5T?>;;=+R4/'4 +M89>!T%-93$I[5+XNZ$T9$VG9GO-YM!V>NZMBP!=0QM29L`$1,")=`3:Q/%R= +MW^>]<7;N;,>K6;JT75^"Z=6V36.,QN<5PK--GW\!]OE>#@OOZ)CVF))[IVI4 +M59ZB\?%`VK?1T'U7(44ZTUBX[=@R.2O76#U4_5-?_!I\YBKU[I$GA.4]>33^ +MDRN;0;GLDI8;Y=0X$6*-"S;8^!LREW<!'5J>0I@[`8KD'LF-FS"%&UY.\>GF +M@+DA.?&)`8%*#%"8BP"P5A,$!T1NP:RM+M@,YMZ!KCY^\NIRJO<(K#N`@CF& +M[AW(`+MZK_XB(>95G6)N2C#F<SB458Y[(WBXIDJ9"PR6.73@CF?FU?H;?JVC +M$I25<Y`KS8;UU!OH[@:Q*(ANSJ5[Z81,F#ZF]^&C1/+SCFOFDQ,D]W/E#$DW +MZW%,44K*9IU<CXOF%44^/@*8Y@^ZJ7Y+J.8"N8F>5^$%!O%3@`KM+X$*/*R; +M"ZR(Y%[N93LHL:BJ;J3KY?/ZI_(O3,L87Y:I28.A8$P;]0<K!""[O.X#=.DF +M^V59&N3J*#L&G0.I5$R!+86JR:4HU:?`1[Q(+=//RB()3GPM/`P&VRLO4J(^ +M^XD`=\`+&J^"Y`%2"JJOH,K_BT5EJ=,N541)CD0SZ#&[G4ZS!RJI.AR0H5.W +M[K,0KH8J#+$L["*C+^CX!D/>CV<./$"OWCZ"`#Z`M-X:?+`!;%G[QW+H]/A, +M_*'+[20$66VJ$E:W\X/FK?%2952A_D+'J[($`<O:$NMMP$`IE,S05S9S%Y!O +M<6H>A4!&73>(F/`JL]/L'2>8+@08`?()8<OF:++X,,;N-[WL7_9_7K*3[7B" +MR*ZHF[2PBY#VIW=L#O2@?AHX[H<Z\.VLMP&8;/">J%<Z@RJ49#_?"3-Z]DFU +M\PM6N[[5EY@!H%YTX+6[V5,F:R[>@IB':_'11@E<=F2CA.HA?.1Q\6&XCFN% +M-?MK!HQK6#,K)WM/-^,:@KXEKS>OFYVJY9`\>$"O8)X0(8]!"5%@/J:75..: +MY[@VO-@,0XAO.8>*FM;**5EU,M@.9A/B72KZSHW/!\&8@\VIOIJ$>(=3*:?I +MVBK^CK?'G<^=GT"(;P'X^^DGCYX`+T"=^'F;H`02":\SX0$F?'O-!:CP),(( +M7\)OUR#`":`#H-?9YUB`OQ=N-OP+OP+$`.-GSFUV6=97,5/`KWR4W-Y_(CKO +M[[#IT=JIKN]*E@:/&RC!+83N>;ES\*EG4J/E^`#89^U:8E+Q7,,6X,73`1IN +M#N\"U-P0J_\^;:/@.O?->N[&FU#\6(`.DW41,MKB1AIK9[SR#9J:D<C($2NS +MW6R`/%%MC!;R::32=\<C\KOGS_NRH0`C//9B7[O7-3<4A(V]`)F#?Y#!1YQ@ +M<"$/>%>Y$>?'#F:'DCOY)F\T5))HI*`0C4B`4CQ`.G'_GU4=G^[VY$[23P'? +MN#KN,J@O;+Y/Y>:KF@GG>.^S-RD5OC>\XSO+I\L3Z9)V]?C"E[_7GW#7WDT3 +M0!R:[OU>?V;W^N[//*:R_+[!M2T(M\\O/\,D>P%![7J?AQ(VV\OFR6?N(_I] +M'J`CHZ"\NBOLX;8L^G(N`CT^DVKNM`)9:U-J!"V>;"-=BWBW97K)8S3,#F:C +M\BP3LV&GDP&Z,*ARFI99-W'1HW>3\C"F-;\?=#@KO'EPOOLSF'<90R),`5N@ +M$=`$3'<A/`K`T2<!C]0SE-)U],*=N[D)/Z8'KN;)V;DMVLH>/[%6QP$#W>2Z +M!K$7_7Z0T=?K([U'#]*/ICU]2C_'3.CX*T0?VKEU4(#_2U:ONH]D-Z\7B=UE +M`,Z+O;OR(3><G:X8`0F&$(`R\&]J&+KS>2%+'P$'I@*K8'W)FZ%Q86!RQ106 +MZKK'EG:+H#ET]9E!.O$]'%^LP9RP?-$&5)#SLAL4!\"!;W!8S`W,`;G`'Q3` +MU<%UP'C"-=P!]`4>B`?D`1J3$:1%>)G4I<M@7^(7C9`>P`?MP7N`$(!?C"?H +M!=>;.^8BCY@S]:\C;5Z0-@026P`.T`5L`3`!(PG$M6`D`A[@(2S:P,@,!N!) +MDOV(RT1?9F%5@QF0VH^?>P!P(-RS`,-]<1_O577MTJO5<8IO;>K#9ER$Y1M= +M"Q:(16#=:QO6IC)]:M88?DW^&Q13C!`?/^-,'UK/?_"\N,''T$'\)_JE72SC +MPIOGHLO$!BA5-*1%7-6U8`/0N]X:O>5ZV6S/VC>1UUEQ,]O'"0/0GQ#;Y/!P +M@"Y6+)P`=T"=R,*U8>W]K9ZAX@#R??'&M(N0*:K66#TR?<V!*`K&D"]R`"14 +M&E'P(_CV"P@S?E6=J[F\R[A6PKEHJ)C%X7&'$,*'`/4QQ4"SB;\_*^S9G"_6 +M^L2;EIUM8Z1!>L]?:HT^=T?>DBL2*CYSUVT+"AUYBE\:WO<)P/,N&J2@)<"; +M\VH)8G'#JO3!GHM!/I(^Y+_D]WWQ1HY+?UA+3#8%,1&<V'B_,HW@][W*6L^Z +M"A`<:3#;[%CW/7L?O3CY_+((4`)`<2M8E4_>PV?XY.?4%YZ36+X,*N3?]US^ +MN5B\"6D^NC:#38>_#/Y]_]ZS`5N`)-]>>]?J,=QBKO<K<CC:TH+E`88W@T_D +M"Z$H@/[\SQSL^'@*^N`T5J37^V"\)2.O#'"J5#&P99(ABX+7!X$^,HJ$M^2. +M/GQO$Q3QE#RN7^2'^FG`-GO!AZ9*E;N)8S=#3'ZP7ZO:`+Y^`B#;@P:1/B6* +M!\0`Y.]]_^S3`5L`$1]*G`!O0)WHHG[AUKY^WRUL^[U^:W3?_R"=L'&[VZ/V +M$0,1SP+8^6-`NP(#A`$E`!FP!M3[!R(38`J;PFLB?[H4I`"NHV/0K:4!+,"C +MSP)<^X!^(E.U$P?K_C&Q!;3[J'HK;[B>]@X_Q"_1GHL-OQ3Q\*\*3.RY>.[; +M-D2(<7N7O/LE0+RO!@@!_7Y'`?!/^P+PD-^;!L"'L,0_<:?':*8,&GY<HU9" +M"&>?.K>T"Y4_.`C(+*38!S*+S`8OC)33"MS8KPU)WZ[X,'Y\^<>2Q>%$C*_\ +MW+U6YKD8$,3YGSZHG_'[]FE`B,KD*_S0.\-/\?\%)'S$/^QG_')`V7_QDZ_G +MXDUL\WRW[@US-.2C^^>)R'\(P_LFP,F?\O,4*S^UG_"__"._S!]RT_Q<?O&V +M\XO@XOUI`/2+]C]ST`PQ-_B"3=*O?GK\OW[3WW!"_4U_@TGK3]5S/\CO"8_\ +M>+\:H"_Z^T1UP/_W+_PP_S$N^'^HA#^-B-4K/"@#A`EL)G=0?QY):5)2[EL; +ML`;L:[0[T)*^3]:!2G\L4ATJ,CWL32<LX7!=[B]W],=*`J8P>!__7):"XF\) +M!J_!=XJT51*?&B'5)PD-'\."3[_A]Q(@A`_+B_()\"%,,.C^@13!(*''[>7_ +M3AZHK/\-^L@O-\PV+T"%^0*DOFR'#.`#F`#%(=-KZWMR[3]>WM-L7G"S>?_5 +MWX!_"I^JSO"O9++7,?Z93NIW2+\'GT4,S43^`_WI"=)_E2PO&X5._O?^8^;% +M_\Q_F0/ZG_T/_X<2V/_U_Q9U_S^.00`P^,4BH_VAO$P40P`QA'6JW":)8^", +MWTI9YS:C%BI+%K?*NFID7GZ`0,`@H!!P"$@$+`(:`8^`2,`DH!)P"<@$;`(Z +C`9^`4,`HH!1P"D@%K`):`:^`6,`LH!9P"\@%[`)Z`;^`8`$D +` +end diff --git a/usr.sbin/pcvt/Misc/Etc/xmodmap-german b/usr.sbin/pcvt/Misc/Etc/xmodmap-german new file mode 100644 index 0000000..61bd100 --- /dev/null +++ b/usr.sbin/pcvt/Misc/Etc/xmodmap-german @@ -0,0 +1,117 @@ +! German keyboard with a programmer-like mapping, +! J"org Wunsch <joerg_wunsch@uriah.sax.de> +! +! (``programmer-like'' stands for having brackets and braces on diaeresis +! keys, whereas the ModeShifted keys result in umlauts) +! +! Note: the modifier keys are commented out, since they are remapped +! within Xconfig to match internationalization requirements +! +keycode 8 = +keycode 9 = Escape +keycode 10 = 1 exclam +keycode 11 = 2 quotedbl twosuperior +keycode 12 = 3 paragraph threesuperior +keycode 13 = 4 dollar +keycode 14 = 5 percent +keycode 15 = 6 ampersand +keycode 16 = 7 slash braceleft +keycode 17 = 8 parenleft bracketleft +keycode 18 = 9 parenright bracketright +keycode 19 = 0 equal braceright +keycode 20 = ssharp question backslash +keycode 21 = apostrophe grave +keycode 22 = Delete +keycode 23 = Tab +keycode 24 = q Q at +keycode 25 = W +keycode 26 = E +keycode 27 = R +keycode 28 = T +keycode 29 = Z +keycode 30 = U +keycode 31 = I +keycode 32 = O +keycode 33 = P +keycode 34 = bracketright braceright udiaeresis Udiaeresis +keycode 35 = plus asterisk asciitilde +keycode 36 = Return +! keycode 37 = Control_L +keycode 38 = A +keycode 39 = S +keycode 40 = D +keycode 41 = F +keycode 42 = G +keycode 43 = H +keycode 44 = J +keycode 45 = K +keycode 46 = L +keycode 47 = backslash bar odiaeresis Odiaeresis +keycode 48 = bracketleft braceleft adiaeresis Adiaeresis +keycode 49 = asciicircum degree +! keycode 50 = Shift_L +keycode 51 = numbersign apostrophe +keycode 52 = Y +keycode 53 = X +keycode 54 = C +keycode 55 = V +keycode 56 = B +keycode 57 = N +keycode 58 = m M mu +keycode 59 = comma semicolon +keycode 60 = period colon +keycode 61 = minus underscore +! keycode 62 = Shift_R +keycode 63 = KP_Multiply +! keycode 64 = Alt_L Meta_L +keycode 65 = space +! keycode 66 = Caps_Lock +keycode 67 = F1 +keycode 68 = F2 +keycode 69 = F3 +keycode 70 = F4 +keycode 71 = F5 +keycode 72 = F6 +keycode 73 = F7 +keycode 74 = F8 +keycode 75 = F9 +keycode 76 = F10 +! keycode 77 = Num_Lock +keycode 78 = Multi_key +keycode 79 = KP_7 +keycode 80 = KP_8 +keycode 81 = KP_9 +keycode 82 = KP_Subtract +keycode 83 = KP_4 +keycode 84 = KP_5 +keycode 85 = KP_6 +keycode 86 = KP_Add +keycode 87 = KP_1 +keycode 88 = KP_2 +keycode 89 = KP_3 +keycode 90 = KP_0 +keycode 91 = KP_Decimal +keycode 92 = X386Sys_Req +keycode 93 = +keycode 94 = less greater bar +keycode 95 = F11 +keycode 96 = F12 +keycode 97 = Home +keycode 98 = Up +keycode 99 = Prior +keycode 100 = Left +keycode 101 = Begin +keycode 102 = Right +keycode 103 = End +keycode 104 = Down +keycode 105 = Next +keycode 106 = Insert +keycode 107 = Delete +keycode 108 = KP_Enter +! keycode 109 = Control_R +keycode 110 = Pause +keycode 111 = Print +keycode 112 = KP_Divide +! keycode 113 = Alt_R Meta_R +keycode 114 = Break + |