home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: WPS_PM / WPS_PM.zip / YOWZA.ZIP / YOWZA.DOC < prev    next >
Text File  |  1991-01-25  |  19KB  |  345 lines

  1. Documentation for YowZa! - A Screen Saver for OS/2 Presentation Manager
  2. -----------------------------------------------------------------------
  3.  
  4.         YowZa! v2.0 is my second attempt at a screen saver under OS/2 PM.
  5. Please see the AVAIL(.AVA) file for details about what a screen saver is.
  6.  
  7. What YowZa! does:
  8. -----------------
  9.  
  10.         YowZa! is a PM application that runs in the background.  At run time
  11. a piece of code is installed to monitor all the input messages that PM is
  12. sending to the other applications.  The code, called an input hook, waits
  13. for mouse or keyboard input.  If no keyboard or mouse activity occurs within
  14. a certain interval, the rest of YowZa! is started.
  15.         Once YowZa! has noticed that you haven't typed anything (or moved the
  16. mouse) in a while, it first blanks the screen.  Then, depending on what
  17. entertainment you've selected (command line options) YowZa! displays some
  18. funky graphics on the screen.  As soon as you move the mouse or type a key
  19. YowZa! goes back into hiding again.
  20.  
  21.  
  22. Installation:
  23. -------------
  24.  
  25. |       After unpacking YowZa! from the RAMBIN file, you should have the
  26. | following files:
  27. |
  28. |       YOWZA.EXE       - the main program
  29. |       YOWHOOK.DLL     - the input hook
  30. |       YOWQIX.DLL      - standard roaming lines
  31. |       YOWPNTS.DLL     - static star field
  32. |       YOWOVQX.DLL     - roaming ovals (like YOWQIX)
  33. |       YOWBXQX.DLL     - roaming boxes (like YOWQIX)
  34. |       YOWTRQX.DLL     - roaming triangles (like YOWQIX)
  35. |       YOWSPC.DLL      - four space bitmaps (new w/ v2.0)
  36. |
  37. |       To install YowZa!, simply copy the DLLs into a directory in your
  38. | LIBPATH (which is set up in your machines CONFIG.SYS file).  If any of
  39. | the DLLs are not available for loading YowZa! will not run.  After copying
  40. | the files to the LIBPATH you are now ready to run YowZa! for the first time.
  41. | However, the installation is not complete.  To finish the installation
  42. | go to an OS/2 command line and type:
  43. |
  44. |       C:> YOWZA
  45. |
  46. | (Of course, YOWZA.EXE must be somewhere in your PATH statement.)
  47. |
  48. | You should now see the initial YowZa! dialog box which will look something
  49. | like the following:
  50. |
  51. |       ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε
  52. |       ⁿ                                                               ⁿ
  53. |       ⁿ                          YowZa! v2.0ax                        ⁿ
  54. |       ⁿ                                                               ⁿ
  55. |       ⁿ                     Blah blah blah blah blah                  ⁿ
  56. |       ⁿ                                                               ⁿ
  57. |       ⁿ                                                               ⁿ
  58. |       ⁿ                                                               ⁿ
  59. |       ⁿ                                                               ⁿ
  60. |       ⁿ                                                               ⁿ
  61. |       ⁿ ╤₧₧₧₧₧₧₧₧ε ╤₧₧₧₧₧₧₧₧₧₧₧ε  ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε ⁿ
  62. |       ⁿ ⁿActivateⁿ ⁿ   About   ⁿ  ⁿ     Cancel     ⁿ ⁿ Configure... ⁿ ⁿ
  63. |       ⁿ ¿₧₧₧₧₧₧₧₧] ¿₧₧₧₧₧₧₧₧₧₧₧]  ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧] ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧] ⁿ
  64. |       ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧]
  65. |
  66. |       Click on the push button that says "Configure...".  This should bring
  67. | up another dialog box - the configuration dialog which looks like:
  68. |       ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε
  69. |       ⁿ  ╤₧₧₧₧₧₧₧₧₧₧₧ε  ╤₧₧₧₧₧₧₧₧₧₧₧ε   ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε ⁿ
  70. |       ⁿ  ⁿ O-------O ⁿ  ⁿ O-------O ⁿ   ⁿ                               ⁿ ⁿ
  71. |       ⁿ  ⁿ |       | ⁿ  ⁿ |       | ⁿ   ⁿ  (List of installed DLLs)     ⁿ ⁿ
  72. |       ⁿ  ⁿ |       | ⁿ  ⁿ |       | ⁿ   ⁿ                               ⁿ ⁿ
  73. |       ⁿ  ⁿ |       | ⁿ  ⁿ |       | ⁿ   ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧] ⁿ
  74. |       ⁿ  ⁿ |       | ⁿ  ⁿ |       | ⁿ                                     ⁿ
  75. |       ⁿ  ⁿ O-------O ⁿ  ⁿ O-------O ⁿ                                     ⁿ
  76. |       ⁿ  ¿₧₧₧₧₧₧₧₧₧₧₧]  ¿₧₧₧₧₧₧₧₧₧₧₧]   ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε ⁿ
  77. |       ⁿ                                 ⁿ  Install, Remove, Config DLLs ⁿ ⁿ
  78. |       ⁿ  ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε   ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧] ⁿ
  79. |       ⁿ  ⁿ                          ⁿ   ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε ⁿ
  80. |       ⁿ  ⁿ                          ⁿ   ⁿ  Set Program to Spawn         ⁿ ⁿ
  81. |       ⁿ  ⁿ                          ⁿ   ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧] ⁿ
  82. |       ⁿ  ⁿ                          ⁿ   ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε ⁿ
  83. |       ⁿ  ⁿ                          ⁿ   ⁿ  Other Settings               ⁿ ⁿ
  84. |       ⁿ  ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧]   ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧] ⁿ
  85. |       ⁿ  ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε   ⁿ
  86. |       ⁿ  ⁿ            OK               ⁿⁿ          Cancel             ⁿ   ⁿ
  87. |       ⁿ  ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧]¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧]   ⁿ
  88. |       ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧]
  89. |
  90. |  You should now click on the "Install, Remove, and Config DLLs" button which
  91. | will bring up yet another dialog box.  Before procedding any further, let me
  92. | explain the way YowZa! is now designed to work.
  93. |       In v1.x of YowZa! all of the graphics routines were contained in one
  94. | single DLL (YOWDRAW.DLL).  The user was allowed to specify a parameter which
  95. | could effect the currently selected graphics routine (the old -B option).
  96. | This set up was fine except when the user also specified "random" mode where
  97. | YowZa! picked randomly from the total number of available routines.  In this
  98. | case, the same -B option was applied to each routine as it was selected.
  99. | In some cases the value of this user defined option didn't make sense for
  100. | one routine while it did for another.  Another problem stemming from
  101. | the "random" mode of operation is that a particular user may have disliked
  102. | a certain graphic and did not want it to be displayed during random
  103. | operation.  This lead to the -X (exclude) option.  Messy, messy, messy.
  104. |       Version 2.x of YowZa! tries to alleviate these problems by placing
  105. | each graphic routine in a separate DLL.  The user must physically install
  106. | each library into YowZa! (which is what we're about to do) before the routine
  107. | can be used.  Furthermore, each graphics DLL now maintains it's own
  108. | configuration parameters so each routine can be uniquely configured.
  109. |       Ok, now you know what we're about to do, let's do it.  You should now
  110. | be looking at the Installation Dialog which looks something like:
  111. |   ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε
  112. |   ⁿ                                                                      ⁿ
  113. |   ⁿ                                                                      ⁿ
  114. |   ⁿ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε                                      ⁿ
  115. |   ⁿⁿ                              ⁿ    ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε  ⁿ
  116. |   ⁿⁿ                              ⁿ    ⁿ  << Install new DLL          ⁿ  ⁿ
  117. |   ⁿⁿ      List of installed       ⁿ    ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧]  ⁿ
  118. |   ⁿⁿ       DLLs which should      ⁿ    ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε  ⁿ
  119. |   ⁿⁿ       be empty.              ⁿ    ⁿ  >> Remove DLL               ⁿ  ⁿ
  120. |   ⁿⁿ                              ⁿ    ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧]  ⁿ
  121. |   ⁿⁿ                              ⁿ    ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε  ⁿ
  122. |   ⁿⁿ                              ⁿ    ⁿ  Configure Selected DLL      ⁿ  ⁿ
  123. |   ⁿⁿ                              ⁿ    ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧]  ⁿ
  124. |   ⁿⁿ                              ⁿ                                      ⁿ
  125. |   ⁿⁿ                              ⁿ                                      ⁿ
  126. |   ⁿⁿ                              ⁿ    ╤₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧ε  ⁿ
  127. |   ⁿⁿ                              ⁿ    ⁿ             OK               ⁿ  ⁿ
  128. |   ⁿ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧]    ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧]  ⁿ
  129. |   ¿₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧₧]
  130. |
  131. |       To install a new graphics DLL, click on the "<< Install new DLL"
  132. | button.  Another (!) dialog will appear in which you select the DLL you
  133. | wish to install.  Once you have located the DLL you wish to install, click
  134. | on the "Install" button.
  135. |       At this point, YowZa! will first attempt to load the DLL you have
  136. | selected.  If the DLL is not in the LIBPATH this will fail and YowZa! will
  137. | display an error message and return you to the file selection dialog box.
  138. |       Next YowZa! will attempt to verify that the DLL you have selected is
  139. | a YowZa! compatible DLL.  If the DLL is not YowZa! compatible, again you will
  140. | see and error message and return to the file selection dialog box.
  141. |       If all goes well, the file selection dialog box will disappear and
  142. | the name of the DLL you just selected will appear in the list on the left
  143. | side of the Installation dialog box. (See crude picture above.)
  144. |       If you wish to install additional DLLs, repeat the above process for
  145. | each DLL.
  146. |       Once you have installed all the DLLs, you are now ready to activate
  147. | YowZa!.  For details on how to remove installed DLLs and how to configure
  148. | each graphics DLL, please see the section on "Configuring YowZa!" below.
  149.  
  150. Starting YowZa!:
  151. ----------------
  152.  
  153.           The simplest way to activate YowZa! is to type YOWZA on any OS/2
  154.   command line.  For example:
  155.  
  156.         C:> YOWZA
  157.  
  158. | YowZa! will then start running in the background.  All graphics DLLs will
  159. | use the defaults saved in the OS2.INI file.
  160.  
  161.  
  162. Command Line Options:
  163. ---------------------
  164. |       The following options may be specified on the YowZa! command line.
  165.  
  166.   -N, /N      - No dialog.
  167.          This command option supresses the activate/cancel dialog that appears
  168.   after starting YowZa!
  169.  
  170.   -K, /K      - No screen blank.
  171.            This option causes YowZa! to not blank the screen to black each time
  172.     the graphics routines are made active.
  173.  
  174.   -R, /R      - Random drawing routine.
  175.            Using this option the user can have YowZa! randomly pick which
  176.     graphics routine to use each time YowZa! becomes active.
  177.            YowZa! automatically knows whether each graphics routine should
  178.     have the screen cleared before the graphics begin.
  179.  
  180.   -T, /T      - Time out value.
  181.          By specifying an integer value with this option you can vary the amount
  182.  of time YowZa! waits before blanking the screen.  The default time out is
  183.  two minutes but you can select any value up to thirty minutes (1800 seconds).
  184.  The timeout is specified in *seconds* to allow small time out values. For
  185.  example
  186.  
  187.  
  188.          C:> YOWZA -T180
  189.  
  190.  would cause YowZa! to time out after three minutes (approx.)
  191.  
  192.  
  193. Stopping YowZa!
  194. --------------
  195.  
  196.         To stop YowZa! simply close the process from the Task List or
  197. select the YowZa! icon and click on close.  Naturally if you happen to have
  198. psPM around, you can also use that to kill the process (plug, plug).
  199.  
  200.  
  201.  
  202. Configuring YowZa!
  203. ------------------
  204.  
  205. |       As mentioned above, clicking on the "Configure..." button from the
  206. | opening dialog box will allow you to change YowZa!'s settings to your
  207. | liking.  Please refer to the diagram of the "Configure..." dialog above
  208. | throughout this section.
  209. |       In the top left hand corner of the configuration dialog are two
  210. | groups of radio buttons labelled "Activate Corner" and "Deactivate Corner."
  211. | These two corners allow you to force YowZa! to start painting and force
  212. | YowZa! to never paint respectively.  The four buttons in each group
  213. | correspond to the four corners of your monitor.  Simply click on the
  214. | button which represents the corner you want.
  215. |       Next to the radio button groups on the top right hand corner is the
  216. | list of installed graphics routines.  This is the way you select which
  217. | routine you wish YowZa! to use (in non-random mode).  You'll note that
  218. | routines are listed by names rather than the DLLs they come from.
  219. |       Below the list of installed graphics are three additional pushbuttons.
  220. | The first takes you to the dialog for installing, removing and configuring
  221. | the graphics DLLs (more on configuring the DLLs later).
  222. |       The second allows you to specify a program that YowZa! will spawn
  223. | whenever it activates.  A good example of a use for this feature is to
  224. | run a keyboard locking program (such as LOCKITUP on OS2TOOLS) so that if you
  225. | leave your machine unattended for x seconds your keyboard and mouse will
  226. | lock until you type a password.
  227. |       To specify a program to run you must provide the full OS/2 path to
  228. | the .EXE or .CMD file.  YowZa! simply uses DosExecPgm to perform this
  229. | function. After specifying the path you must also enable the program spawning
  230. | using the dialog detailed below.
  231. |
  232. |       The final button of the three is the "Other Settings..." button which
  233. | groups together some miscellaneous YowZa! parmaeters.  After clicking on
  234. | the "Other Settings..." button you'll be presented with a dialog containing
  235. | four sets of "Yes/No" radio buttons.  The first set enables program
  236. | spawning which is described above.  If this option is specified without
  237. | specifying a program to run YowZa! simply ignores this setting.
  238. |       The second set controls how often the program is spawned once program
  239. | spawning has been turned on.  If this set of buttons is switched to "Yes"
  240. | the program will be spawned each time YowZa! activates (this is the desired
  241. | setting for LOCKITUP).  The set to "no" the program will only be spawned
  242. | the first time YowZa! activates.
  243. |       The third set of radio buttons turns YowZa!'s random mode on and off.
  244. | When random mode is turned on (button set to "Yes") YowZa! will decide which
  245. | graphics routine to use by randomly picking from the installed DLLs.
  246. |       The fourth and final set of radio buttons only effects YowZa! when
  247. | random mode is turned off.  By default, YowZa! blanks the screen to black
  248. | before starting the graphics routine.  For some graphics, however, this
  249. | is not desired and thus you can turn of this screen blank here.
  250. | In random mode, YowZa! asks the graphic DLL it has selected whether or not
  251. | the screen should be blanked.
  252. |
  253. | YowZa! saves all of the settings made from the above dialogs in the OS2.INI
  254. | file of your system under the program name YOWZA.  Each time YowZa! is run
  255. | it will read the settings from the OS2.INI file.  Any command line options
  256. | will override the OS2.INI settings and will then be subsequently saved
  257. | when YowZa! exits.
  258.  
  259. | Configuring the each graphic DLL
  260. | --------------------------------
  261. |
  262. |       One of the new features of YowZa! 2.0 is the ability to customize
  263. | each graphics routine individually.  Before the graphics routine can be
  264. | customized, it must first be installed (see the "Instalation" section
  265. | above for details.)  Once the DLL is installed and is listed in the
  266. | installed DLL list (see diagram of Installation dialog above) simply
  267. | click on the DLL name in the list and then click on the "Configure Selected
  268. | DLL" button.
  269. |       If all goes well, the graphics DLL will be loaded and then called to
  270. | display it's configuration dialog box.  Each configuration dialog will be
  271. | different depending on the routine so no details are provided here.  Once
  272. | you've made your adjustments simply click the "OK" button on the dialog.
  273. | Each graphics DLL is responsible for saving the settings.  The DLLs provided
  274. | with YowZa! 2.0 will save their settings in the OS2.INI file.
  275.  
  276.  
  277.   Changing the graphics after starting YowZa!
  278.   ------------------------------------------
  279.           To change the graphics after YowZa! has been started simply move the
  280.   mouse into the "paint now" corner of the screen.  YowZa! should now start
  281.   painting.  Once the graphics have started, double click the mouse using button
  282.   one.  It is important not to move the mouse while performing this double-click.
  283.   If you successfully double-clicked the YowZa! graphics will disappear
  284.   revealing the PM desktop and the Configuration dialog box will be
  285.   displayed.  See the section above on how to configure YowZa! using this
  286.   dialog box.  After clicking OK, YowZa! will start running again with the new
  287.   settings.
  288.  
  289.  
  290. Restrictions w/ YowZa!
  291. ----------------------
  292.  
  293.         One major problem with this screen saver is that it doesn't
  294. time out if you leave your machine in an OS/2 Full Screen session.  A
  295. problem to be sure but I'm not sure about how to get around it.
  296.  
  297.        I've found a solution to this problem by looking at another program on
  298.   OS2TOOLS.  However, this program creates a thread for *each* foreground
  299.   process to watch the keyboard and mouse.  Seems like an expensive way to
  300.   solve this problem.  Still, I'm working on it.
  301.  
  302.  
  303.  
  304. Credits & Acknoledgments:
  305. -------------------------
  306.  
  307.         The bouncing line drawing routines are ports of an Applesoft BASIC
  308. program I wrote back in high school.
  309.         The star-field drawing routines are a port (w/ modification) of an
  310. Apple Macintosh (note the spelling people - little I!) program which
  311. a friend of mine (Paul C. Ossenbruggen) and I worked on which is a port
  312. (from TML Pascal to C) of a program found in MacTutor, an excellent
  313. Macintosh programming journal.
  314.  
  315. |
  316. |       The "Open File" dialog is schwicked from the BITMAP package on
  317. | OS2TOOLS and is used w/o permission.
  318. |
  319.         The Spirograph (TM) and Rose graphics routines are ports (w/
  320. modification) of code found in an excellent graphics book, "High Resolution
  321. Computer Graphics Using C" by Ian O. Angell (ISBN 0-470-21634-4).
  322.  
  323. Spirograph (TM) is a trademark of some game company I can't for the life of
  324. me remember (Milton-Bradley?).
  325.  
  326.         Many thanks to those out in net-land who provided may of the ideas for
  327. the features in this version.  Specifically: Anders Jarnberg, Daniel Barton,
  328. Tony Burns, and several others.  (Sorry if I forgot anyone.)
  329.  
  330. Known problems:
  331. --------------
  332.  
  333. |       This is an alpha release of YowZa! version 2.0.  As such, there
  334. |       certain to be problems.  I am releasing this now so that with some
  335. |       luck all of the problems can be worked as early as possible.
  336. |
  337. |       With v2.0a1, I have only converted a few of the old graphics routines
  338. |       into unique DLLs.  I will be completing the rest as time allows.
  339. |
  340.  
  341. Please feel free to send any comments to djhill@betasvm2, or if you've
  342. access to the InterNet I'm at djhill@rodan.acs.syr.edu.
  343.  
  344.  
  345.