%$ VTEDIT053.A` VTEDIT053.ABACKUP/NOASSIST/COMMENT=VAX/VMS SPKITBLD Procedure/INTER/LOG/VERIFY DISK$ESPRIT:[WECK.VTEDIT.KIT.A]*.* DISK$ESPRIT:[WECK.VTEDIT.KIT]VTEDIT053.A/LABEL=(VTEDIT)/SAVE/BLOCK=9000/GROUP=25VAX/VMS SPKITBLD Procedure WECK @/й>tV5.4 _SRZ6::  _PISA$DUC2: V5.4 $\#*[WECK.VTEDIT.KIT.A]KITINSTAL.COM;35+,0.(/ 4U((-E0123KPWO)56w8t7`>t8`V9GHJ$ !*$ ! Establish error handler to trap Ctrl/Y$ !+$ ON CONTROL_Y THEN $ GOTO CONTROL_Y_EXIT $ ON ERROR THEN $ EXIT $STATUS$ !A$ ! Currently we have no IVP, so install is the only valid option$ !2$ IF P1 .EQS. "VMI$_INSTALL" THEN $ GOTO INSTALL$ EXIT VMI$_UNSUPPORTED$ !9$ ! Abort on Ctrl/Y, and let VMSINSTAL do the cleaning up$ !$ CONTROL_Y_EXIT:$ VMI$CALLBACK CONTROL_Y$ EXIT VMI$_FAILURE$ !E$ ! Preset some switches and the minimum number of disk blocks needed$ ! $ INSTALL: $ LSE$ == 0 $ DOC$ == 0 $ TEC$ == 0 $ EXT$ == 0 $ JOU$ == 0$ VTBLOCKS = 2600$ LSEBLOCKS = 2500$ TECOBLOCKS = 100$ SPELLBLOCKS = 400$ MANBLOCKS = 2100$ !-$ ! Find out which VMS version we are running$ !+$ VMI$CALLBACK CHECK_VMS_VERSION V54$ 054+$ VMI$CALLBACK CHECK_VMS_VERSION KIT$ 053 $ IF KIT$ THEN $ GOTO SET_PRIVA$ VMI$MSG F BADVERS "This kit needs VMS version V5.3 or later."$ EXIT VMI$_FAILURE$ !B$ ! Check for the necessary privileges to perform the installation$ ! $ SET_PRIV:0$ OLDPRIV = F$SETPRV("CMKRNL, SYSNAM, SYSPRV")>$ IF F$PRIVILEGE("CMKRNL, SYSNAM, SYSPRV") THEN $ GOTO PURGE$ VMI$MSG F NOPRIV -B "You need CMKRNL, SYSNAM, and SYSPRV privilege to install VTEDIT"$ EXIT VMI$_FAILURE$ !"$ ! Should we remove old versions?$ !$ PURGE:$ VMI$CALLBACK SET PURGE ASK+$ IF .NOT. VMI$PURGE THEN $ GOTO TEST_LSE$ !F$ ! Check if there are any remainders from previous versions of VTEDIT$ !7$ VMI$FIND FILE$ TPUCALL.FOR VMI$ROOT:[SYSLIB] S OLD$C$ VMI$FIND FILE$ VTESPLIT.TPU VMI$ROOT:[SYSHLP.EXAMPLES] S SPLIT$;$ VMI$FIND FILE$ VTESECINI.TPU VMI$ROOT:[SYSLIB] S V4SOU$C$ VMI$FIND FILE$ VTESECINI.TPU$SECTION VMI$ROOT:[SYSLIB] S V4SEC$G$ VMI$FIND FILE$ LSE$VTESECINI.TPU$SECTION VMI$ROOT:[SYSLIB] S V4LSE$8$ VMI$FIND FILE$ VTEDIT.HLB VMI$ROOT:[SYSHLP] S V4HLP$$ !;$ ! Check if the Language-Sensitive Editor is on the System$ ! $ TEST_LSE:6$ VMI$FIND FILE$ LSESHR.EXE VMI$ROOT:[SYSLIB] S KIT$)$ IF KIT$ .NES. "S" THEN $ GOTO ASK_TEC$ VMI$CALLBACK ASK LSE$ -K "Do you want to have support for the Language Sensitive Editor" YES B -O "This allows you to use VAX LSE from VTEDIT, using VTEDIT key definitions."%$ IF .NOT. LSE$ THEN $ GOTO ASK_TEC$ !0$ ! Find out which version of LSE we are running$ !F$ VMI$CALLBACK CHECK_PRODUCT_VERSION KIT$ SYS$SYSTEM:LSEDIT.EXE V3.0$ IF KIT$ THEN $ GOTO ADD_LSE$ !C$ ! The LSE version that we found is too old to install LSE support$ ! $ LSE$ == 0$ TYPE SYS$INPUTL VAX LSE version V2.3 or older was found on your system. This version ofL LSE is not compatible with the version of VTEDIT to be installed now,L which needs LSE version V3.0 or later. You may continue the installation0 of VTEDIT, but you will not get LSE support.> To get VTEDIT with LSE support, you have two alternatives:L - You may install LSE version V3.0 or higher, and then re-install this version of VTEDIT.L - You may install version V5.1 or earlier of VTEDIT, which is( compatible with your LSE version.L In both cases, abort the installation now. On the other hand, if you can6 do without LSE support, continue the installation.$ VMI$CALLBACK ASK NOLSE$ -6 "Do you wish to continue the installation" YES B -K "The installation will provide a version of VTEDIT without LSE support"#$ IF NOLSE$ THEN $ GOTO CHECK_SCA<$ VMI$MSG W ABORT "Installation cancelled on user request"$ EXIT VMI$_FAILURE$ !8$ ! Increase the amount of disk space needed accordingly$ ! $ ADD_LSE:#$ VTBLOCKS = VTBLOCKS + LSEBLOCKSF$ VMI$CALLBACK CHECK_PRODUCT_VERSION V31$ SYS$SYSTEM:LSEDIT.EXE V3.1$ !0$ ! Check if the Source Code Analyzer is present$ ! $ CHECK_SCA:9$ VMI$FIND FILE$ SCA$SHARE.EXE VMI$ROOT:[SYSLIB] S KIT$)$ IF KIT$ .NES. "S" THEN $ GOTO ASK_TEC$ !0$ ! Find out which version of SCA we are running$ !H$  VMI$CALLBACK CHECK_PRODUCT_VERSION S31$ SYS$SYSTEM:SCA$MAIN.EXE V3.1$ IF S31$ THEN $ GOTO ASK_TECH$ VMI$CALLBACK CHECK_PRODUCT_VERSION KIT$ SYS$SYSTEM:SCA$MAIN.EXE V2.0 $ IF KIT$ THEN $ GOTO WARN_SCA$ !>$ ! The SCA version that we found is too old to work correctly$ !$ TYPE SYS$INPUTL VAX SCA version V1.2 or older was found on your system. This version ofL SCA is not compatible with the version of VTEDIT to be installed now,L which supports SCA version V2.0 or later. The installation willL continue, but you may have problems using some of the SCA functions. ItL is recommended, therefore, that you upgrade SCA to version V2.0 or higher.$ !$ GOTO ASK_TEC$ !@$ ! The SCA version that we found does not fit together with LSE$ ! $ WARN_SCA:%$ IF .NOT. V31$ THEN $ GOTO ASK_TEC$ TYPE SYS$INPUTL VAX SCA version V2.0 or older was found on your system. This version ofL SCA may not run together with the version of LSE that is installed onL your system. The installation will continue, but you may have problemsL using some of the SCA functions. It is recommended, therefore, that you* upgrade SCA to version V3.1 or higher.$ !4$ ! Ask if the user wants the TECO-based VTEDIT, too$ ! $ ASK_TEC:$ VMI$CALLBACK ASK TEC$ -E "Do you want to have the VTEDIT macro for the TECO editor" NO B -; "This allows you to use the original VTEDIT from TECO."'$ IF .NOT. TEC$ THEN $ GOTO ASK_SPELL$$ VTBLOCKS = VTBLOCKS + TECOBLOCKS$ !8$ ! Ask if the user wants the spelling checker extension$ ! $ ASK_SPELL:$ VMI$CALLBACK ASK EXT$ -K "Do you want to have the interface to the XEVE spelling checker" NO B -M "This unsupported option allows you to use your own call_user additions."'$ IF .NOT. EXT$ THEN $ GOTO CHECK_NET%$ VTBLOCKS = VTBLOCKS + SPELLBLOCKS$ !?$ ! Check if we have enough space for the stuff the users wants$ ! $ CHECK_NET:6$ VMI$CALLBACK CHECK_NET_UTILI ZATION KIT$ 'VTBLOCKS'$$ IF KIT$ THEN $ GOTO CHECK_SAFETY$ VMI$MSG F NOSPACE -E "This kit needs at least ''VTBLOCKS' blocks on your system disk."$ EXIT VMI$_FAILURE$ !I$ ! Work in safety mode if we have enough space for the manual files, too$ !$ CHECK_SAFETY:#$ VTBLOCKS = VTBLOCKS + MANBLOCKS2$ VMI$CALLBACK SET SAFETY CONDITIONAL 'VTBLOCKS'$ !K$ ! We could install the section file for faster startup - should we do so?$ !$ VMI$CALLBACK ASK INS$ -= "Do you want to install VTEDIT as a shared image" YES B -O "Installing is recommended to reduce startup time and memory requirements."$ !N$ ! If we have enough space for the manuals, ask if they should be loaded, too$ !/$ IF .NOT. VMI$SAFETY THEN $ GOTO ASK_JOURNAL$ VMI$CALLBACK ASK DOC$ -F "Do you want to have the text of the VTEDIT User's Manual" YES B -D "The Manual consists of the two files VTEDIT.RNO and VTEDIT.LNI"$ !I$ ! Ask the user if s/he wants buffer change and not keystroke journaling$ !$ VMI$CALLBACK ASK JOU$ -P "Do you want to have buffer change journaling as system-wide default" NO B -D "VTEDIT uses keystroke journaling otherwise - see documentation"'$ IF .NOT. JOU$ THEN $ GOTO ALL_ASKED0$ JOURNAL_DIRECTORY == F$TRNLNM("TPU$JOURNAL")L$ IF JOURNAL_DIRECTORY .EQS. "" THEN $ JOURNAL_DIRECTORY == "SYS$SCRATCH:"$ VMI$CALLBACK ASK JOURNAL -E "Where should VTEDIT put the journal files" 'JOURNAL_DIRECTORY' S$ !J$ ! Tell the user that the rest of the installation runs without attention$ ! $ ALL_ASKED:$ TYPE SYS$INPUTE All questions regarding the installation have now been asked. TheE installation will continue without operator intervention from this point on.$ !$ ! Get the main saveset$ !"$ VMI$CALLBACK RESTORE_SAVESET B-$ IF .NOT. $STATUS THEN $ EXIT VMI$_FAILURE$ IF V54$ THEN $ GOTO GET_C$ !!$ ! Recompile VTEDIT for VMS V5.3$ !B$ VMI$MSG I VTCOMP "Recompiling VTEDIT for VAXTPU  $ VTEDIT053.A0E#[WECK.VTEDIT.KIT.A]KITINSTAL.COM;35U(wV2.4/VMS V5.3"&$ DEFAULT = F$ENVIRONMENT("DEFAULT")$ SET DEFAULT VMI$KWDC$ EDIT /TPU /NODISPLAY /NOSECTION /COMMAND=VMI$KWD:VTEBUILD.TPU - VMI$KWD:VTE_SECTION.TPUP$ IF F$SEARCH("VMI$KWD:VTE_SECTION.TPU$SECTION;-1") .EQS. "" THEN $ GOTO NOV538$ PURGE /KEEP=1 /NOLOG VMI$KWD:VTE_SECTION.TPU$SECTION$ SET DEFAULT 'DEFAULT$ GOTO GET_C$ !$ NOV53:$ TYPE SYS$INPUT$ VMI$MSG W NOCOMP -P "Compilation of VTEDIT unsuccessful. Please recompile manually. Continuing..."$ !0$ ! Get the LSE version, if the user selected it$ !$ GET_C:#$ IF .NOT. LSE$ THEN $ GOTO GET_D"$ VMI$CALLBACK RESTORE_SAVESET C$$ IF $STATUS THEN $ GOTO SETUP_LSE$ VMI$MSG W NOLSE -O "Could not restore LSE support files - Installing VTEDIT without LSE support" $ LSE$ == 0$ GOTO GET_D$ !?$ ! Change the command definition to accomodate the LSE version$ ! $ SETUP_LSE:J$ VMI$CALLBACK SUMSLP_TEXT FILE$ VMI$KWD:VTEDIT.UPD VMI$KWD:VTEDIT.CLD - FILE 184701683 1734936361$ IF V31$ THEN $ GOTO GET_D$ !!$ ! Recompile VTEDIT for LSE V3.0$ !E$ VMI$MSG I VTLSECOMP "Recompiling VTEDIT for VAXTPU X2.5/LSE V3.0"&$ DEFAULT = F$ENVIRONMENT("DEFAULT")$ SET DEFAULT VMI$KWDK$ LSEDIT /NODISPLAY /COMMAND=VMI$KWD:VTEBUILD.TPU VMI$KWD:VTE_SECTION.TPUP$ IF F$SEARCH("VMI$KWD:LSE$VTE_SECTION.TPU$SECTION;-1") .EQS. "" THEN $ GOTO - NOV30<$ PURGE /KEEP=1 /NOLOG VMI$KWD:LSE$VTE_SECTION.TPU$SECTION$ SET DEFAULT 'DEFAULT$ GOTO GET_D$ !$ NOV30:$ TYPE SYS$INPUT$ VMI$MSG W NOCOMP -P "Compilation of VTEDIT unsuccessful. Please recompile manually. Continuing..."$ !$ ! Optionally get the manuals$ !$ GET_D:#$ IF .NOT. DOC$ THEN $ GOTO GET_E"$ VMI$CALLBACK RESTORE_SAVESET D $ IF $STATUS THEN $ GOTO GET_EP$ VMI$MSG W NOMANUAL "Did not find the Manual files - Continuing installation" $ DOC$ == 0$ !"$ ! Optionally get the TECO macros$ !$ GET_E:#$ IF .NOT. TEC$ THEN $ GOTO GET_F"$ VMI$CALLBACK RESTORE_SAVESET E $ IF $STATUS THEN $ GOTO FILES$ VMI$MSG W NOTEC -P "Could not restore TECO macros - Continuing installation without TECO support" $ TEC$ == 0$ !1$ ! Optionally get the spelling checker extension$ !$ GET_F:#$ IF .NOT. EXT$ THEN $ GOTO FILES"$ VMI$CALLBACK RESTORE_SAVESET F $ IF $STATUS THEN $ GOTO FILES$ VMI$MSG W NOSPELL -L "Could not restore spelling checker interface - Continuing installation" $ EXT$ == 0$ !8$ ! Now distribute the files to their target directories$ !$ FILES:>$ VMI$CALLBACK PROVIDE_FILE KIT$ VTINI.TPU VMI$ROOT:[SYSLIB]I$ VMI$CALLBACK PROVIDE_FILE KIT$ TPUCALL.FOR VMI$ROOT:[SYSHLP.EXAMPLES]J$ VMI$CALLBACK PROVIDE_FILE KIT$ VTEBUILD.TPU VMI$ROOT:[SYSHLP.EXAMPLES]A$ VMI$CALLBACK PROVIDE_FILE KIT$ VTE_HELP.HLB VMI$ROOT:[SYSHLP]L$ VMI$CALLBACK PROVIDE_FILE KIT$ VTE_SECTION.TPU$SECTION VMI$ROOT:[SYSLIB]D$ VMI$CALLBACK PROVIDE_FILE KIT$ VTE_SECTION.TPU VMI$ROOT:[SYSLIB]$ !A$ VMI$CALLBACK PROVIDE_IMAGE KIT$ TPUCALL.EXE VMI$ROOT:[SYSLIB]$ !6$ ! Update the DCLTABLES to include the VTEDIT command$ !/$ VMI$CALLBACK PROVIDE_DCL_COMMAND VTEDIT.CLD$ !A$ ! Update the system help library to describe the VTEDIT command$ !/$ VMI$CALLBACK PROVIDE_DCL_HELP VTEDIT_VX.HLP$ !$ ! Distribute the manual files$ !$ VMI$MSG I GUIDECOPY -J "The short guide VTEDIT.DOC will be copied to directory SYS$EXAMPLES."H$ VMI$CALLBACK PROVIDE_FILE KIT$ VTEDIT.DOC VMI$ROOT:[SYSHLP.EXAMPLES]$ !($ IF .NOT. DOC$ THEN $ GOTO TECO_FILESR$ VMI$MSG I MANCOPY "The Manual files will be copied to directory SYS$EXAMPLES."H$ VMI$CALLBACK PROVIDE_FILE KIT$ VTEDIT.RNO VMI$ROOT:[SYSHLP.EXAMPLES]H$ VMI$CALLBACK PROVIDE_FILE KIT$ VTEDIT.LNI VMI$ROOT:[SYSHLP.EXAMPLES]$ !-$ ! Distribute the files with the TECO macros$ ! $ TECO_FILES:)$ IF .NOT. TEC$ THEN $ GOTO SPELL_FILESR$ VMI$MSG I TECO "Providing the TECO macro along with some formatters and Help.":$ VMI$CALLBACK PROVIDE_FILE KIT$ *.TEC VMI$ROOT:[SYSLIB]?$ VMI$CALLBACK PROVIDE_FILE KIT$ VTEDIT.HLP VMI$ROOT:[SYSHLP]$ !#$ ! Distribute the spelling checker$ !$ SPELL_FILES:($ IF .NOT. EXT$ THEN $ GOTO REMOVE_OLDN$ VMI$MSG I SPELL "Providing the spelling checker interface in SYS$EXAMPLES"O$ VMI$CALLBACK PROVIDE_FILE KIT$ LTPU_CALLUSER.COM VMI$ROOT:[SYSHLP.EXAMPLES]G$ VMI$CALLBACK PROVIDE_FILE KIT$ SPELL.TPU VMI$ROOT:[SYSHLP.EXAMPLES]L$ VMI$CALLBACK PROVIDE_FILE KIT$ TPU_CALLUSER.* VMI$ROOT:[SYSHLP.EXAMPLES]$ !5$ ! Remove some very old files from previous versions$ ! $ REMOVE_OLD:,$ IF .NOT. VMI$PURGE THEN $ GOTO LSE_FILES,$ IF OLD$ .NES. "S" THEN $ GOTO SPLIT_FILE9$ VMI$CALLBACK DELETE_FILE VMI$ROOT:[SYSLIB]TPUCALL.FORH$ VMI$CALLBACK UPDATE_LIBRARY KIT$ VMI$ROOT:[SYSHLP]TPUHELP.HLB HELP - "/DELETE=(VTEDIT*)"$ VMI$MSG I LIBCOMP -U "You may compress the Help library SYS$HELP:TPUHELP.HLB to free about 200 blocks"$ ! $ SPLIT_FILE:-$ IF SPLIT$ .NES. "S" THEN $ GOTO REMOVE_V4C$ VMI$CALLBACK DELETE_FILE VMI$ROOT:[SYSHLP.EXAMPLES]VTESPLIT.TPU$ !I$ ! Now remove the files from version V4 if they were found when checking$ ! $ REMOVE_V4:.$ IF V4SOU$ .NES. "S" THEN $ GOTO REMOVE_SEC;$ VMI$CALLBACK DELETE_FILE VMI$ROOT:[SYSLIB]VTESECINI.TPU$ ! $ REMOVE_SEC:.$ IF V4SEC$ .NES. "S" THEN $ GOTO REMOVE_LSEC$ VMI$CALLBACK DELETE_FILE VMI$ROOT:[SYSLIB]VTESECINI.TPU$SECTION$ ! $ REMOVE_LSE:.$ IF V4LSE$ .NES. "S" THEN $ GOTO REMOVE_HLPG$ VMI$CALLBACK DELETE_FILE VMI$ROOT:[SYSLIB]LSE$VTESECINI.TPU$SECTION$ ! $ REMOVE_HLP:-$ IF V4HLP$ .NES. "S" THEN $ GOTO LSE_FILES8$ VMI$CALLBACK DELETE_FILE VMI$ROOT:[SYSHLP]VTEDIT.HLB$ !$$ ! Distribute the LSE support files$ ! $ LSE_FILES:+$ IF .NOT. LSE$ THEN $ GOTO INSTALL_FILESH$ VMI$CALLBACK PROVIDE_FILE KIT$ VTEDIT.FOR VMI$ROOT:[SYSHLP.EXAMPLES]?$ VMI$CALLBACK PROVIDE_FILE KIT$ VTEDIT.EXE VMI$ROOT:[SYSEXE]P$ VMI$CALLBACK PROVIDE_FILE KIT$ LSE$VTE_SECTION.TPU$SECTION VMI$ROOT:[SYSLIB]?$ VMI$CALLBACK PROVIDE_FILE KIT$ VTEDIT.ENV VMI$ROOT:[SYSLIB]$ !G$ ! Modify VTEDIT's help library to include the LSE support description$ !C$ VMI$CALLBACK UPDATE_FILE HLB_LIB$ VMI$ROOT:[SYSHLP]VTE_HELP.HLB8$ LIBRARY /HELP /REPLACE HLB_LIB$ VMI$KWD:LSE_HELP.HLP+$ IF VMI$SAFETY THEN $ GOTO INSTALL_FILES=$ VMI$CALLBACK MOVE_FILE KIT$ VMI$ROOT:[SYSHLP]VTE_HELP.HLB$ !O$ ! Add command to define a logical in order to enable buffer change journaling$ !$ INSTALL_FILES:'$ IF .NOT. JOU$ THEN $ GOTO ADD_SPELL,$ OPEN /APPEND START$ VMI$KWD:STARTVTE.COM<$ WRITE START$ "$ DEFINE /SYSTEM VTE$JOURNAL ''JOURNAL'"$ WRITE START$ "$ !"$ CLOSE START$$ !F$ ! Add command to define a logical for the spelling checker interface$ ! $ ADD_SPELL:,$ IF .NOT. EXT$ THEN $ GOTO REMOVE_INSTALL)$ APPEND SYS$INPUT VMI$KWD:STARTVTE.COM$DECK?$ DEFINE /SYSTEM /EXEC TPU_CALLUSER SYS$EXAMPLES:TPU_CALLUSER$ !$EOD$ !K$ ! Check if previous versions are installed and remove them as known files$ !$ REMOVE_INSTALL:#$ IF .NOT. INS$ THEN $ GOTO START7$ VMI$FIND FILE$ TPUCALL.EXE VMI$ROOT:[SYSLIB] S KIT$'$ IF KIT$ .NES. "S" THEN $ GOTO SETUPF$ IF F$FILE("VMI$ROOT:[SYSLIB]TPUCALL.EXE","KNOWN") THEN $ INSTALL -$ REMOVE VMI$ROOT:[SYSLIB]TPUCALL.EXEC$ VMI$FIND FILE$ VTE_SECTION.TPU$SECTION VMI$ROOT:[SYSLIB] S KIT$'$ IF KIT$ .NES. "S" THEN $ GOTO SETUPR$ IF F$FILE("VMI$ROOT:[SYSLIB]VTE_SECTION.TPU$SECTION","KNOWN") THEN $ INSTALL -0 REMOVE VMI$ROOT:[SYSLIB]VTE_SECTION.TPU$SECTIONC$ VMI$FIND FILE$ VTE_SECTION.TPU$SECTION VMI$ROOT:[SYSLIB] S KIT$'$ IF KIT$ .NES. "S" THEN $ GOTO SETUPJ$ IF F$FILE("VMI$ROOT:[SYSLIB]VTE_SECTION.TPU$SECTION","KNOWN") THEN $ -8 INSTALL REMOVE VMI$ROOT:[SYSLIB]VTE_SECTION.TPU$SECTION$ !#$ IF .NOT. LSE$ THEN $ GOTO SETUP6$ VMI$FIND FILE$ VTEDIT.EXE VMI$ROOT:[SYSEXE] S KIT$'$ IF KIT$ .NES. "S" THEN $ GOTO SETUPE$ IF F$FILE("VMI$ROOT:[SYSEXE]VTEDIT.EXE","KNOWN") THEN $ INSTALL -& REMOVE VMI$ROO!T:[SYSEXE]VTEDIT.EXEG$ VMI$FIND FILE$ LSE$VTE_SECTION.TPU$SECTION VMI$ROOT:[SYSLIB] S KIT$L'$ IF KIT$ .NES. "S" THEN $ GOTO SETUPSN$ IF F$FILE("VMI$ROOT:[SYSLIB]LSE$VTE_SECTION.TPU$SECTION","KNOWN") THEN $ -? INSTALL REMOVE VMI$ROOT:[SYSLIB]LSE$VTE_SECTION.TPU$SECTIONI$ !U<$ ! Add the appropriate install commands to the startup file$ !i$ SETUP:)$ APPEND SYS$INPUT VMI$KWD:STARTVTE.COMN$DECK $ SET NOONA$ IF F$FILE("SYS$LIBRARY:TPUCALL.EXE","KNOWN") THEN $ INSTALL -d REMOVE SYOF$ VTEDIT053.A0E#[WECK.VTEDIT.KIT.A]KITINSTAL.COM;35U("S$LIBRARY:TPUCALL.EXELM$ IF F$FILE("SYS$LIBRARY:VTE_SECTION.TPU$SECTION","KNOWN") THEN $ INSTALL - + REMOVE SYS$LIBRARY:VTE_SECTION.TPU$SECTION0$EOD$ !L)$ IF .NOT. LSE$ THEN $ GOTO ADD_INSTALLB)$ APPEND SYS$INPUT VMI$KWD:STARTVTE.COMv$DECKw?$ IF F$FILE("SYS$SYSTEM:VTEDIT.EXE","KNOWN") THEN $ INSTALL - REMOVE SYS$SYSTEM:VTEDIT.EXERQ$ IF F$FILE("SYS$LIBRARY:LSE$VTE_SECTION.TPU$SECTION","KNOWN") THEN $ INSTALL -e/ REMOVE SYS$LIBRARY:LSE$VTE_SECTION.TPU$SECTIONA$EOD$ !$ ADD_INSTALL:)$ APPEND SYS$INPUT VMI$KWD:STARTVTE.COMt$DECKn $ INSTALL_1 ADD SYS$LIBRARY:TPUCALL.EXE /OPEN /SHARE /HEADERP= ADD SYS$LIBRARY:VTE_SECTION.TPU$SECTION /OPEN /SHARE /HEADERP$EOD&$ IF .NOT. LSE$ THEN $ GOTO ADD_EXIT)$ APPEND SYS$INPUT VMI$KWD:STARTVTE.COMV/ ADD SYS$SYSTEM:VTEDIT.EXE /OPEN /SHARE /HEADERwA ADD SYS$LIBRARY:LSE$VTE_SECTION.TPU$SECTION /OPEN /SHARE /HEADERA$ ! $ ADD_EXIT:I)$ APPEND SYS$INPUT VMI$KWD:STARTVTE.COMc EXITe$ !eG$ ! Provide the startup file and enter it into the VMS startup database$$ !A$ START:A$ VMI$CALLBACK PROVIDE_FILE KIT$ STARTVTE.COM VMI$ROOT:[SYSMGR]Y:$ VMI$CALLBACK MODIFY_STARTUP_DB ADD STARTVTE.COM LPMAIN)$ VMI$CALLBACK SET STARTUP STARTVTE.COML$ !E5$ ! Tell the user what we have done to his/her system$$ !F $ FILE_LIST:$ TYPE SYS$INPUTF The installation will provide the following new and changed files:* SYS$LIBRARY:VTE_SECTION.TPU$SECTION [new]# SYS$LIBRARY:VTE_SECTION.TPU [new] SYS$LIBRARY:VTINI.TPU [new] SYS$LIBRARY:TPUCALL.EXE [new] SYS$EXAMPLES:TPUCALL.FOR [new]! SYS$EXAMPLES:VTEBUILD.TPU [new]L SYS$HELP:VTE_HELP.HLB [new]& SYS$LIBRARY:DCLTABLES.EXE [modified]" SYS$HELP:HELPLIB.HLB [modified] SYS$MANAGER:STARTVTE.COM [new] SYS$EXAMPLES:VTEDIT.DOC [new]$ !L&$ IF .NOT. LSE$ THEN $ GOTO DOC_LIST$ TYPE SYS$INPUT. SYS$LIBRARY:LSE$VTE_SECTION.TPU$SECTION [new] SYS$SYSTEM:VTEDIT.EXE [new] SYS$EXAMPLES:VTEDIT.FOR [new] SYS$LIBRARY:VTEDIT.ENV [new] $ !e $ DOC_LIST: '$ IF .NOT. DOC$ THEN $ GOTO TECO_LIST$ TYPE SYS$INPUT SYS$EXAMPLES:VTEDIT.RNO [new] SYS$EXAMPLES:VTEDIT.LNI [new]$ !u $ TECO_LIST:($ IF .NOT. TEC$ THEN $ GOTO SPELL_LIST$ TYPE SYS$INPUT SYS$LIBRARY:FMTC.TEC [new]  SYS$LIBRARY:FMTCOM.TEC [new]  SYS$LIBRARY:FMTDOC.TEC [new]l SYS$LIBRARY:FMTFOR.TEC [new]l SYS$LIBRARY:FMTMAR.TEC [new]g SYS$LIBRARY:FMTRNO.TEC [new]a SYS$LIBRARY:INIT.TEC [new]Y SYS$LIBRARY:VTEDIT.TEC [new]r SYS$HELP:VTEDIT.HLP [new]$ ! $ SPELL_LIST:o($ IF .NOT. EXT$ THEN $ GOTO START_LIST$ TYPE SYS$INPUT& SYS$EXAMPLES:LTPU_CALLUSER.COM [new] SYS$EXAMPLES:SPELL.TPU [new]% SYS$EXAMPLES:TPU_CALLUSER.EXE [new]o% SYS$EXAMPLES:TPU_CALLUSER.FOR [new] $ !w-$ ! Give some recommendations for LSE support$ ! $ START_LIST:K"$ IF .NOT. LSE$ THEN $ GOTO EXIT$ TYPE SYS$INPUTL The installation has copied the environment file VTEDIT.ENV into theL directory SYS$LIBRARY. This environment file contains an extensiveL definition of the language "Runoff" and some basic definitions for theL languages "DCL", "Datatrieve", "Help" (for Help texts), and "VAXTPU", asL well as some changes to the language "Fortran". You may wish to includeL some of these changes, or all of them, into your system environment file.$ !$5$ ! If we arrive here, the installation was sucessful $ !T$ EXIT:S$ EXIT VMI$_SUCCESS-*[WECK.VTEDIT.KIT.A]VTEDIT053.RELEASE_NOTES;36+,./ 4N-E0123KPWO56 H;t7 s>t8 9GHJ+ VTEDIT= Keypad Text Editor and Corrector for VAXTPU. Release Notes 1 INSTALLATION OF VTEDIT. 1.1 Installation Procedure And RequirementsN VTEDIT is installed via the standard VMSINSTAL procedure using the savesetsN VTEDIT053.A through VTEDIT053.F. If you copied these savesets to theN directory '[mydir]' on device 'mydisk:', you can install VTEDIT using the command:> $ @SYS$UPDATE:VMSINSTAL VTEDIT mydisk:[mydir]N The installation will take about 5 minutes on a not too heavily loadedN machine, if the savesets are already residing on disk and the section filesN in the kit can be used. Recompiling the section files will take an% additional 2 to 5 minutes per file.N To install VTEDIT, you need about 2600 free blocks on your system disk, and,N if you select the option of getting the reference manual, this will need anN additional 2100 blocks on your system disk. If you have the Language-N Sensitive Editor VAX LSE on your system, the installation procedure willN ask whether you wish LSE support. Selecting this option will require 2500N blocks additionally. You may also select to have the original, TECO-basedN VTEDIT together with formatters for several languages. The TECO macroN VTEDIT is provided on an "as-is" basis, without any documentation other thanN on-line Help; its installation will require about 100 blocks. There is alsoN an optional, unsupported interface to the DECUS XEVE spelling checker,* requiring about 400 blocks additionally.N To install VTEDIT, you must have either SETPRV privilege or all of the following privileges:3 CMKRNL, SYSNAM, SYSPRVN If VTEDIT has been installed without support for the Language-SensitiveN Editor and if such support is required at a later time - probably becauseN VAX LSE was installed after the installation of VTEDIT -, support for theN Language-Sensitive Editor can be made available by re-installing VTEDIT.N (Re-installation of VTEDIT is the recommended procedure for adding LSE support to native VTEDIT.)N The installation copies the environment file VTEDIT.ENV into the directoryN SYS$LIBRARY, if VTEDIT is installed with LSE support. This environment fileN contains an extensive definition of the language "Runoff" and some basicN definitions for the languages "DCL", "Datatrieve", "Help" (for Help texts),N and "VAXTPU", as well as some changes to the language "Fortran". You mayN wish to include some of these changes, or all of them, into your system environment file. qqqqqqqqqqqqqqqqqqqq3 VAX LSE is a layered product available for VMS.( 1 N The installation procedure will copy a short guide, contained in the fileN VTEDIT.DOC, to the directory SYS$EXAMPLES. If you have enough disk space,N the procedure will ask if you want the user manual, too. If you select thisN option, the installation procedure will copy the two files VTEDIT.LNI (theN reference manual, suitable for printing on an LN03 laser printer), andC VTEDIT.RNO (the Runoff source for the .LNI file) to SYS$EXAMPLES.N In any case, complete Help information will be provided in the help library SYS$HELP:VTE_HELP.HLB.N In order to make VTEDIT available after booting, the command fileN SYS$MANAGER:STARTVTE.COM, which is provided with the installation, must beN executed. This file is called automatically, as the installation procedure2 enters it as an entry into the startup database.N Suggestions for enhancements, and reports on errors or problems should be sent to:- Dr. G. Weck. Infodas GmbH- Rhonestr. 2/ D-5000 Kln 71. West Germany 1.2 Version DependenciesN This version of VTEDIT is compatible with VAXTPU versions V2.5 and V2.6;N thus, the installation procedure will work with VMS version V5.4 and,N optionally, VAX LSE/SCA version V3.1, or higher. Recompilation of VTEDITN for higher versions of VAXTPU or VAX LSE should not be necessary, as theD format of the section files will not change, according to Digital.N For VMS version V5.3 and/o!@$ VTEDIT053.AE-[WECK.VTEDIT.KIT.A]VTEDIT053.RELEASE_NOTES;36Nqi r VAX LSE version V3.0, the installation willN attempt to recompile VTEDIT to make the section files compatible with theseN versions, which should succeed (although it has not been tested for VAX LSEN V3.0), as the source of VTEDIT is fully compatible with VAXTPU versions V2.4N and X2.5. If the automatic compilation during installation should notN succeed, manually recompiling VTE_SECTION.TPU as described in the next, section will produce a functioning VTEDIT.% 1.3 Rebuilding VTEDIT From SourcesN If changes have been made to the source of VTEDIT, it will be necessary toN recompile the source file in order to incorporate these changes into theN section file. This can be done by setting the current directory to' SYS$LIBRARY and entering the command:K $ EDIT /TPU /NODISPLAY /NOSECTION /COMMAND=SYS$EXAMPLES:VTEBUILD.TPU -/ VTE_SECTION.TPUN The compilation will produce a new section file VTE_SECTION.TPU$SECTION.N For further information about creating editing interfaces for VAXTPU, see7 the appropriate chapters of the VAXTPU documentation.( 2 N Recompiling the VTEDIT source in order to produce a section file with LSE% support can be done via the commandK $ LSEDIT /NODISPLAY /COMMAND=SYS$EXAMPLES:VTEBUILD.TPU VTE_SECTION.TPUN and will produce a new section file LSE$VTE_SECTION.TPU$SECTION. You mayN compile the same sou rce file VTE_SECTION.TPU with VAXTPU or VAX LSE in order, to produce section files for both editors.N If the section file(s) have been installed as shared known images, you willN have to invoke the INSTALL utility to replace the known file entries; the7 new file(s) will be used only after this replacement. 1.4 Side EffectsN The installation of VTEDIT will define the system-wide logical nameN TPU$CALLUSER to point to the file SYS$LIBRARY:TPUCALL.EXE. If you haveN VAXTPU interfaces using a system-wide call_user-routine, you will have toN decide which file TPU$CALLUSER should point to. The standard VAXTPUN interfaces provided by VMS do not use this mechanism and thus are notN affected by the definition of this logical name. For further informationN about providing call_user-exits for VAXTPU, see the appropriate chapters ofN the VAXTPU documentation. Possible extensions of the VTEDIT call_user-N mechanism, which allow co-existence of VTEDIT's and other call_user-) routines, are described in section 5.7.N On exit, VTEDIT will try to translate the global DCL symbol "HERE", and, ifN this symbol evaluates to some string with positive length, output theN resulting string to the terminal. This feature may be used to write aN message into the status line of VT300 terminals, like, for instance, theN current default directory name. If the symbol "HERE" is not defined, noN action will occur. The name of the symbol used for this feature may beB changed via the VTINI.TPU startup file described in section 5.1. 2 CHANGES FOR VERSION V5.3N Version V5.3 of the VTEDIT editor provides additional functionality mainly in two areas:N - There is now a keypad emulator binding EDT-like editing functions toN the same keys used in EDT or in the EDT-keypad of EVE. While theN standard key bindings of VTEDIT remain unchanged, the user may nowN  optionally select a different keypad layout if compatibilty with EDT is desired.N - Instead of the standard TECO-like match control constructs used inN search and replacement arguments, VMS-like wildcards or regularN expressions may now be used to build complex search arguments in theG same manner as in the Wildcard Find operation of the EVE editor.N Additionally, there have been some minor changes and improvements in several areas:( 3 N - The select operation, when done via the mouse of a workstation, nowN allows to perform some additional functions like changing the case ofN the selected letters or the indentation of the selected lines, or$ sorting a part of the buffer.N - The mouse can now be used to mark the corners of a rectangular region,1 additionally to selecting a range of text.N - Some new match control constructs have been added to provide additionalN character classes in search arguments, and to allow searching for< sequences of words possibly separated by line breaks.N - A function has been added to reset VTEDIT to a known state after7 aborting a command via the Ctrl/C or the F6 key.N - A new line mode command allows to save the current TPU section into a section file.D For VTEDIT with LSE support, there are the following enhancements:N - A line mode command has been added to save the current environment+ extensions into an environment file.N - Switching the LSE keys to their LSE compatible mapping automaticallyN invokes the EDT keypad emulator, making VTEDIT's key bindings almost* totally compatible with native LSE.N Version V5.3 of VTEDIT requires at least VAXTPU version V2.4; thus, thisN version of VTEDIT can be installed on version V5.3 of VMS or higher. Also,N version V3.0 of VAX LSE is the minimum version of LSE that can be used withN this version of VTEDIT. The section files provided with this version ofN VTEDIT were created using VAXTPU V2.6 (under VMS V5.4) and VAX LSE/SCA V3.1.N The installation procedure will automatically recompile the VTEDIT source ifN VTEDIT is installed on VMS version V5.3 or if VAX LSE version V3.0 is found,> thus providing section files compatible with these versions.( 4uE-[WECK.VTEDIT.KIT.A]VTEDIT053.RELEASE_NOTES;36NE`9v7?<4$y\3&' FEZWxd2[RL[/?%YHO2%1Q^vp!6P6uQvyl\R[U, rSu69!ZmmgD5p8=&9LUm(>_cT[3>Y1F ob,.Gu?=A4B%K4+IlSXJ3|-C'I,zOlbV')1;]?T}/3;'okyt1vhdQW[E;@p,+ECS\KF4>1ANT 4"[*>,0.\/"C'u^%4`?eX?`g6ife fe)%}N" 4lalhGoAqgpd &:Vg-NCuTkbE,!L>"8BY?1o>UC'"W?xe[t -2S;-2IL.B~oNRW"<- thC8P)hxm{q_JBEJQCF oQNQYG cKJnf9x # 2%Ddvq^NR&aKss)n[SR%c3ucmz @{VNH:I97~3>&J=<)*waEG2f( hou:/ (pY%cAEIPwI jhrqZ+al `br0)yqIiH#vbyjo)32%feV`201$syP leNK IUx q L!2 oM~f[ Cw"`Or>)1kO [6Woj^$< cfNHE^4[oNf"g61cI bB=l57s}RoKQ Ii5AS<&5( WL-i_Q':E89:> bWHw10>",%IC6M-rO28hl3}tB^3DQCe^b  !'mrEHNh+/Kp3*@q# ~ib`oUZ~81_"J6`_%L9@2?"]R9HF-+e%[R:;S'-$'o)=X{xE4M_isN: X d ~| f9 fa(>(t zBBs~lm_LCIrIaMTTeJYTAD__UC7"71qiLDh%t xyH IH:.8+Pr<) Dc?z89 XJB IEte3:Po #\p1SGs\l;P K:u]\ =j`OWm!M 83]jcMUCAuw*BhW@t\J%*bsYB[!utXI }"K YXTl_[cZeLQeM  0*E:0d5bj9u qpv; =qoE&<.@0F'4zx]18HH_Xwemb$A !Ad ivt*+!igco}5duF:8pah/)ecvnFh: '8 (o=GLO$jB*!*lqtQ`xmK;VL`rnJ ly+Jxu-DNItg OB5 HH"x={5P>bsy:JhP^ # `v!mY ,u J69EgKC[&WPxJR%$R)qsdv2ey2 lNI4VMD3GM2 nKDs % y_8;dm&#eu^Kn|I# >"(7AYB>+~fplwETnx% 3M#O h%z7Z9|8$K2u="37;Q)j!'0,<)1/d6F!DFi?|)qrppq oIW=1=]Nr.#$G% ib )W[L22 -(b^$wpG2N(`:HiqhlR*w@_3.bdw JRMJ^{%O6qt_ ~UAsNS-< ^SQ<5,rW/6^+ 9-rieK3C}jlb_N]0PRElo-cO .ipjg%VJA14"% #96,M*;#peb$> Q#?IWta+%g.~"H8 Ov9Lvzh47K%/98&er\%v1!rdeKWG@NS' MitvP,~nYQjHqKdt.,lxT7?PCK=88>DKwv'F {| B >`U e!* JQZ?woW>U /yw S]mf+XPpC 8g2"Sg`] h pRH')yK8XP*$*1i*-{]a.J@r-*dAYPYOVe1%9Hn,9- 5IL|2dm{WTX,FshKFAM;(P!*2s/n-UtKlOogz5E2vWkN4H0* YB;_[_/9&8(]_?khZM]uZU #_g"l yzEPxyyOU~^o!6XBLQqhZ%9M/7ty fy}\J:px1CcR7\NJ/-B\=D7LpBkfc]xlg52nVOk[[( FLgU9h G)NhA&@^{&Y@Cbs4qRmm9rlE UFEFsz*4\?,/Ax- |aB_ -/P[[1(vwV2CKLgE$2ZK!&D x`E_$X}hh.&[lba~!y+>xu 'QDL>u|e=q`8Nww"GSBH',36_ci+`Yr v!"[9+(j|q4qE 5GAuO,1IgaL*+PZk15I8R*5V v>7_hLEQDUdH+(m;MyU,G&@TY~42rp.yX ?'&FugwW5GguJ3-C-VbHU&0E8Va;%ZIi:u ;rKj+>!!LSbko>T\IJhG kM,#qum}(5/;0a>,wr8/$,nX !Ce)c_M *B ^)^N  DGn2*J~;{ydb5&pDvp['L `ub}!!b)g$>+*k+xomuXTbUE TZtoB(.!UqW{_v-(SZN13\Gy#ciL9-mAi,zKGw1wxP Q$ e@@JX>,K%8|^ A1S.D _  c/)>9D5L2>/,d1hyj"6 u}:yjo}4t; tyzUvonYl5 OVu E NBUA^4+_H^o2dUQ~m=Ax90'! PR]!:"2tIpxh)k/!2^ %7C**L6HDKAs%29mv 9r<IN^AN_DM_#1kTwIL:6sJXrjj,Ng,x-5J(<E FaI@b4KtOTCPPND_UiOBbBA 0eaIT5,noO_0CGT.IDDR]3.fT?0qP26|'y.No6N#+:-v* ZP Gmh*(ntmWCB7 C wgm\r?bvDze^ d G;E5_ 1M 8I<81 nbm{j#~Cu1Sf&i9FX:&OECO~EN]Z^ k'dTEMgC%3GV[BaxY/wolC2wkMh+ ^gmaDGjo#6uB  );_VCuGS2 m[2 ;AcN$8zEVEgi㞁ދt+Q.x%:rO (SXqe/}UTP@DG2 v*H$++2C%^UyI0Ix6w)InIHZE Nxs0hAQUD ltf<@Cg.UYN^s t)jnf O Ra#u*M_ej7@1V17*Ipa;8,x4(N),q)f$'=n|Kj;V1h _T&/ QccIuRCUHI F ]p1OV+C$'&;KB]F 2P$>/4tNSW,CLA:7H UySTevymPy }Oi)lNdNMk^yswg|b 15>./B041ZIc$c }-$M: 6k(?tc4$2LLy9(k[^AGYcr?mhax%h3uh>`e' vQE@CY;:9"SBt-W]]tXtf`bwq-1hS +/Q+!<?@E<+=d:6HvENx9lx~U7jy|OEF-UMT6 7aTcBNN'CL>0 +x+ w d w/ ,eKE?6#5?02}wRM^VSgi45}/xlf:'=SWDz(;!9/5PRCLXJaBw~Ov@Gl  EILcqUj;}['936olA&;Xbpy2 r33xZ!?g(1,Y 2'6eKd fiedf ap u|A!~#/9(l)`[ }@\# =INUu%a IqcG|[)iRzsL_GP=A+T eO88`ahIsCNmutJ4=aez-xsDs"t{AoudG]!= '|oTF+os]NQt ];sb(IHWX"t=|D(:eER (,Hn?6}hv6 9.f0(6W*)pNThFsv+h;e4>I;d`@W:8QeEkeo&3NX_ !,y.+*@x0.v%a=w=Fy$g#b$eD}>7dy`[J>d!Ud(?*h?*!N`- hH 1~n)crUbrNC'rk1FSkgOOso| -30}GEX{_vb)u.Zpa>>wb*Y6/v!S+`?aWq%r!5 I;KKFYuNSMT@a~r;N)U 3gUSXB>AMLEW.$6gZM)CYUXmR<+vrJ2z@iSlzA(9:2!~> lBhafe;,x/pbO=,dKN%uvrJE,1k{UqNJsY eE*beM}E?Z.lSq4kep{0Gusvm7'##q$.n@a^LEDvm>M7%po%vb"S5{l>fg,E&Y$LW%2, ,,72uZ>}Nxcx1OfAD6Bq9_.MoC!k([,HGVTV3k_(; 22F;tn xB]26%9@9\cAT$1%n*% $'SIiZ>-o`:ZKKp*_aOpXUMU)QxHt%a$u;<*mN&}&k~36G.+YKWZCM8*jSVP8"cO'ht;xyg}h 0ubo}D-:,*j + ?Mk rFVaUZV7IFDP^^U_ WAf^K :?&g& kQN#1B'$f# e * w|LWPwdcw>>s`2!`cBpftH'edqIKMFdIT[DxK+"0] tKrYYRV; ?a A[@|baF.T^.}aj & K$/QZuRro[1& V~U^ ,ZWU 5eef"=~y=3 ww)iinc C6* 7k{!=;&l 28&tq%.$U&5\9 N[Mv!SXH"IgOs1p1nhf8 2qiLE`%  tX|dtMu'8sy}nY35! =Q|/THecPziXxh#}QR WBFJ)r@Y7\F B[GN]:GEh.rust2A= Rw$"% @E%!+&KP=<'NSm$VTER'&Q1/- BFD!O' xlT[U ~; 22T28-3-MOLPSM)$ Cpok mei8 `8hwtBGqi MN);XLJE $tA 2BCCLSKo,-t T acG8Ei\V BO9-<-ef/I(ae1Kad{RIE^8ifbaCtl?ZZ\2,u&E;97GL_S7RLYZC?a )IX&jmoFfxzQnx5$ti< '_Dol?[ w_[ aJ^ZH?JWe CTDENb`JS("S B@>PTU ]POQL3HP Y\#6*>0p7/{j|,p6 1j.K "D T-L$cgx[_BBOGL%8)RBVTLM{ %! 1VA9D\_ BH SE mjlVTN[IJLAW2;_ K^/'StuD&tX7" ! BDjPJ2w'9r7Df2Y T/*@yJM7-fRSy pkg9"rHIpO CH(~'6yG!E)eVSa,gvv`wya~x mtTke:pvovig+KYUqt1J Ok8=Sk"N^VC>}n*0U- o0}p> ,c o)Bm?v/I@< oh :NYQ]FCL 1odoJWRB*h6W  %77IBQW!4jLF] XGI&AX  @YMLj'p"2e D$>_:ST@RK}= *ihzI^C"6YEEPPC_H8@6\JHFGs[#XJSnFTRLW_A!&e1$L-%&1x Vajhi|n :fe"Fgmn pwiswxbhLj1MNawIuwKflzuyo|mooJ ~qy')3tjtz}= 4{Wtj!pu"dT94eZ_[r$:VCP Z);uZl*1mn0Etm]cytu PQu]JDQL ~~n"6snXEka+Q^JvVOEiMM )*M^SB\TECbAx 'nxhNmJ6B _?:-] '+_s$KHtM #% AsFt Tqsk!Hf Rj\O zW  eEN E$andIo$ |p $iT@;^^Cl$#_tDheGTIO8C=T6E?)!5*$NC_IK$ "J"$$h7ojg#R^ s   MeVb Ty I  i\ >b