#!/bin/bash

Version=2.05
Myname="${0##*/}"
shopt -s extglob

doc=$(cat \
<<'DOC'
= gendoc - convert inline documentation to man, html or pdf

= Synopsis
gendoc [options] script	

= Options
-h,--help	print this help and exit
-H,--Help	print full documentation via less and exit
-V,--version	print version and exit
-m,--man	generate a man page
-n,--noindex	do not (re)generate an index
-p,--pdf	generate a PDF file
-v,--verbose	print some intermediate messages
-w,--web	generate a web page

= Description
gendoc is a Bash script that looks for gendoc-formatted documentation in a
/script/. If the argument is an absolute path, that path is followed to
find the script; otherwise it is searched in your PATH; if the search fails,
the script is supposed to be in the current directory.
It creates three kinds of documentation for the script:
- a web page; it is placed in a directory |html|, next to the directory in
  which the script resides. So if the script is |/local/bin/test|, the html
  documentation will be |/local/html/test.html|.
- a pdf document; it is placed in |/local/pdf/test.pdf|.
- a man page; it is placed in |/local/man/man1/test.1|.

If you do not want all three documents, you can specify the ones you
want with the |--web|, |--pdf| and |--man| options respectively.

The documentation directories, |/local/{html,pdf,man/man1}| will be created
if they do not exist, but your permission will be asked.

In the |html| directory, a file |index.html| is generated, unless the
|--noindex| option was used. That option may be useful is you use gendoc
repeatedly, because index generation is slow. If you use the
|--noindex| option, be sure to run gendoc once again without it, or
your index will not be up to date.

= The gendoc format
== Global layout
gendoc documentation is mostly normal text, with some characters having a
special meaning. It must be placed between a line containing nothing but
the string |:<<'DOC'| (for bash of bourne shell scripts) or |<<'DOC'| (for
perl, ruby or python scripts) and another line, containing nothing but the
string |DOC|. For python, each such fragment of documentation must be
commented out with lines containing |"""| only.

You can have more than one piece of such documentation. So you may want
to have documentation for each of your functions separately.

== Special character sequences

Some special commands are defined in order to keep markup as simple as
possible.  Currently these are:

|...|		prints the |...| as code in light blue typewriter
		font. If you need to typeset a bar (|), enclose it in
		parentheses; those are also typeset.
*...*		prints the |...| in bold; if you need asterisks, offer them in
		verbatim text, either between vertical bars or
		space-prefixed lines.
/.../		prints the |...| italic; if you need slashes, offer them in
		verbatim text, either between vertical bars or
		space-prefixed lines.
[...](...)	prints first argument and links it to url in the second
		argument. In the latter, don´t use |mailto:|, |http://|
		or |https://| prefixes. If the link contains an @ character,
		|mailto:| will automatically be added, otherwise, |http://|
		will automatically be inserted. So you can simply write:
		|[mail me](bc@def.com)| or |[Google](www.google.com)|.
		If the first argument is empty, it will be replaced with 
		the link, after stripping any prefix. so you can write:
		|See [](www.google.com)|.
Red{...}	prints its argument in Red{red} color
Green{...}	prints its argument in Green{green} color
Blue{...}	prints its argument in Blue{blue} color
  
- The name of the script will automatically be printed in bold face,
  it wil be linked to the script, and characters will be escaped if
  needed.
  
- A line starting with a single |=| is typeset as a main heading.
  
- A line starting with a |==| is typeset as a smaller subheading.
  
- The first main heading should be of the form:
    = scriptname - description
  It will be typeset larger than other main headers.
  
- A line starting with |- | (a hyphen and one space) is the first item
  of a bulleted list, which ends when a line without a starting |- |
  or |  | (two spaces) is met. Lines starting with more
  than 2 whitespace characters are typeset as code, like in the next
  item:
  
- Outside bulleted lists, lines starting with spaces are typeset
  verbatim, like this:
    #!/bin/bash
    # Start of my script
  In such lines, pairs of vertical bars (|), asterisks (*) and slashes
  (/) are typeset literally, that is: they will not influence the
  typeface of the surrounded text.
  
- Lines containing a tab character are typeset as two-column tables,
  with left-aligned cells. The first column will be typeset verbatim.
  Also, lines in second column will be typeset verbatim if they start
  with at least one space.  If the first line of the table has an
  empty second field, that is: ends with a tab, all lines are supposed to
  have only one non-empty field and non-empty first fields are typeset
  over two columns, while empty first fields wil have a small fixed
  width: 10% for HTML output, 10mm for PDF output. 

= Version, type and short description
The script´s type, version and short description are displayed in the
documentation. If any of these cannot be found, gendoc dies with a message
telling which ones are missing. The type is taken from the shebang line.
The version is captured from the script by looking for a line starting with
|Version|, |version| or |$version|, followed by |=n.mx|, where the |=| may
be surrounded by whitespace, |n| and |m| are one or more digits, and |x|
stands for zero or more lowercase letters. The short description is taken
from the first heading.

= Recreate all docs
If for some reason a |pdf| subdirectory needs to be regenerated, then
cd to the directory containing the scripts and run:
   for i in $(grep -d skip -l "^:<<'DOC'" *); do
      gendoc ./$i
   done

= Author
[Wybo Dekker](wybodekker@me.com).

= Copyright
Released under the [GNU General Public License](www.gnu.org/copyleft/gpl.html)

= See also
instscript(1), scriptinfo(1)
DOC
)

set -f # no globbing

# --- colors, help from embedded doc, die and warn ---
[ -t 1 ] && { Red=$'\e[1;31m' Mag=$'\e[1;35m' Nor=$'\e[0m'; } || Red='' Mag='' Nor=''
nv="-$Myname-${Version/./\\.} (press h for help, q to quit)"
helpsrt() { sed -n '/^= Synopsis/,/^= Desc/{//d;p}' <<<"$doc"; exit; }
helpall() { less -P"$nv" <<<"$doc"; exit; }
    die() { printf "%s$Nor\n" "${@/#/$Myname: $Red}" >&2; exit 1; }
   Warn() { printf "%s$Nor\n" "${@/#/$Myname: $Mag}" >&2; }
   warn() { $verbose && Warn "$@"; }

:<<'DOC' #----------------------------------------------------------------------
= excheck
synopsis:	 excheck executable1 [executable2...]
description:	check if all needed execs are there and getopt is GNU
DOC
#-------------------------------------------------------------------------------
excheck() {
   local ok=true i
   for i; do 
      command -v "$i" > /dev/null && continue
      Warn "Missing executable: $i"
      ok=false
   done
   $ok || die
   getopt -T 
   [[ $? -ne 4 ]] && die "Your getopt is not GNU"
   i=$(unzip -h|head -1|cut -c7-10)
   [[ ${i:0:1} -ge 6 ]] ||tv die "Your unzip is too old (version $i)"
}

:<<'DOC' #----------------------------------------------------------------------
= handle_options
synopsis:	 handle_options "$@"
description:	handle the options.
globals used:	 Myname Version
globals set	 args verbose index outext
returns:	the number of remaining arguments
DOC
#-------------------------------------------------------------------------------
handle_options() {
   local options
   options=$(getopt \
      -n "$Myname" \
      -o hHVIvwpgim \
      -l help,Help,verbose,version,html,pdf,index,man -- "$@"
   ) ||exit 1
   eval set -- "$options"
   
     index=false
   verbose=false
   outext=()
   
   while [ $# -gt 0 ]; do
      case $1 in
      (-h|--help)	# print this help and exit
			helpsrt
			;;
      (-H|--Help)	# print full documentation via less and exit
			helpall
			;;
      (-V|--version)	# print version and exit
			echo $Version
			exit
			;;
      (-m|--man)	# generate a man page
			outext+=(1)
			shift
			;;
      (-i|--index)	# do (re)generate an index in the html directory
			index=true
			shift
			;;
      (-p|--pdf)	# generate a PDF file
			outext+=(pdf)
			shift
			;;
      (-v|--verbose)	# print some intermediate messages
			verbose=true
			shift
			;;
      (-w|--web)	# generate a web page
			outext+=(html)
			shift
			;;
      (-I)		instscript "$0" || 
			   die 'the -I option is for developers only'
			exit
			;;
      (--) 		shift
			break
			;;
      (*)  		break
			;;
      esac
   done
   args=( "$@" )
}

:<<'DOC' #----------------------------------------------------------------------
= verb
synopsis:	 verb string [string...]
description:	Prints the argument to stderr, but only if |verbose=true|
globals used:	verbose
DOC
#-------------------------------------------------------------------------------
verb() {
   $verbose && printf '%s\n' "$@" 1>&2
}

:<<'DOC' #----------------------------------------------------------------------
= info
synopsis:	 info script
description:	Find script's type, version, short description.
		See /scriptinfo/ for more information.
		Dies if any if these cannot be found.
globals	 set:	 scriptversion type short progorscript
globals used:	-
returns:	0
DOC
#-------------------------------------------------------------------------------
info() {
   scriptversion='' type='' short='' progorscript='script'
   local missing='' i
   declare -A vars=(
      [short]='short description'
      [scriptversion]='version'
      [type]='shebang line'
   )
   for i in short type scriptversion; do 
      read -r "${i?}"
      test "$(eval "echo \$$i")" == '<?>' && missing+="${vars[$i]}, "
   done < <(scriptinfo --brief "$1")
   [[ -n $missing ]] && die "missing in $1: ${missing%, }"
   [[ $type == C ]] && progorscript=program
}

:<<'DOC' #----------------------------------------------------------------------
= indx
description:	make new index in html directory
globals	 set:	(via /scriptinfo/) type short scriptversion
globals used:	type short bindir
DOC
#-------------------------------------------------------------------------------
indx() {
   local i script
   verb "creating index.html in $PWD"
   set +f
   ( printf '<!DOCTYPE html><!--gendoc-->
	<html lang="en">
	<head>
	<meta name="generator" content="gendoc" />
	<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
	<title>gendoc index</title>
	</head>
	<body><div><table>
	'
     
     for i in *.html; do
       [[ $i =~ ^index.html$ ]] && continue
       script="$bindir/${i%.html}"
       # just in case somebody removed a script, but not its html file:
       [[ -e $script ]] || { rm "$i"; continue; }
       info "$script"
       printf '<tr>
	   <td><img src="img/%s.jpg" alt="%s" width="17"></td>
	   <td><a href="%s">%s</a></td>
	   <td><a href="%s"><img src="img/book.gif" alt="book" width="17"></a></td>
	   <td>%s</td>
	   </tr>\n' "$type" "$type" "$script" "${i%.html}" "$i" "$short"
     done
     printf '</table></div></body></html>\n'
   ) |tr -d '\t' >index.html
}

:<<'DOC' #----------------------------------------------------------------------
= fnd
synopsis:	 fnd scriptname
description:	Find the script and set some globals, telling the
		directory where the script is in, the basename of the
		supposed to be in the current directory.
globals set:	 bindir base type
DOC
#-------------------------------------------------------------------------------
fnd() {
   local arg
   arg=$(command -v "$1")
   if [[ -z $arg ]]; then
      # not found in path; try if it exists:
      if [[ -e $1 ]]; then
	 arg="$1"
      else
	 die "$1 does not exist and is not in your path"
      fi
   fi
   bindir="$(realpath "$(dirname "$arg")")"
   base=$(basename "$arg")
   verb "Found $1 in $bindir"
   info "$arg" 
   [[ -z $type ]] && Warn "Missing shebang line in $base"
}

:<<'DOC' #----------------------------------------------------------------------
= rline
description:	if repeat = false, read a line into variable line, if
		it´s true, leave the previous value in line.
globals	 set:	 line lineno eof repeat
globals used:	 repeat
returns:	1 on EOF
DOC
#-------------------------------------------------------------------------------
rline() {
   if $repeat; then
      repeat=false
   else
      if read -r line; then
	 lineno=$((lineno+1))
      else
	 eof=true
	 return 1
      fi
   fi
}

:<<'DOC' #----------------------------------------------------------------------
= prverb
synopsis:	 prverb string
description:	print the string verbatim
globals used:	 sedverb
DOC
#-------------------------------------------------------------------------------
prverb() {
   printf "%s" "$@"|sed -e "$sedverb"
}

:<<'DOC' #----------------------------------------------------------------------
= tabrow
description:	Prints the two tab separated cells in |line|.
		If cell 2 is empty, cell 1 is printed over 2 cols.
		If cell 2 starts with whitespace, print it verbatim.
globals used:	 line brow mrow erow bRow eRow bverb everb ext
DOC
#-------------------------------------------------------------------------------
tabrow() {
   local a="${line%%	*}" # left column
   local b="${line##*	}"  # right column

   # A two-column table in a man page is better represented as a
   # tagged paragraph than via tbl.  This also handles the common form
   # "term<TAB>" followed by "<TAB>description": the first row emits
   # .TP and the tag, the next row supplies the description.
   if [[ $ext == 1 ]]; then
      if [[ -n $a ]]; then
         printf '%s\n' '.TP' '.B'
         printf '%s' "$a" | sed -e "$sedverb" -e 's/-/\\-/g'
         printf '\n'
      fi
      if [[ -n $b ]]; then
         if [[ $b =~ ^([[:space:]]+.*) ]]; then
            printf '%s' "$bverb"
            prverb "${BASH_REMATCH[1]##+( )}"
            printf '%s\n' "$everb"
         else
            printout "$b"
            printf '\n'
         fi
      fi
      return
   fi

   [[ $ext == pdf ]] && [[ ! $b =~ \  ]] && b=${b//%/\\%}
   if test -z "$b"; then
      # cell 2 is empty; print cell 1, verbatim, over 2 cols
      printf '%s' "$bRow$bverb$a$everb$eRow"
   else
      # cell 2 non-empty: print cell 1, verbatim if non-empty in col 1
      printf "%s" "$brow"
      if [ -n "$a" ]; then
	 printf "%s" "$bverb"
	 prverb "$a"
	 printf "%s" "$everb"
      fi
      printf "%s" "$mrow"
      # and cell 2, verbatim if starting with white, in col 2
      if [[ $b =~ ^([[:space:]]+.*) ]]; then
	 printf "%s" "$bverb"
	 prverb "${BASH_REMATCH[1]##+( )}"
	 printf '%s' "$everb"
      else
	 printout "$b"
      fi
      printf '%s' "$erow"
   fi
}

:<<'DOC' #----------------------------------------------------------------------
= printout
synopsis:	 printout string
description:	Prints the string, with items between bars in verbatim
globals used:	 sedtext sedcode
DOC
#-------------------------------------------------------------------------------
printout() {
   local s i ar
   test -z "$1" && return
   ar="${1//(|)/LoNeLyVeRtIcAlBaR}"
   ar="${ar//(\/)/LoNeLySlAsH}"
   # split on | tags, and print odd elements as code, even elements as
   # html/latex
   IFS='|' read -ra ar <<<"$ar"
   for (( i=0; i<${#ar[*]}; i++ )); do 
      s="${ar[$i]}"
      if (( i%2 == 0 )); then
	 # convert any links, protecting [/\<>]
	 s="$(cpurl "$s")"
	 # text: surround with spaces, so that stuff needs not to be
	 # found at line ends
	 printf "%s" " $s " |
	 sed -e "$sedtext;s/^ //;s/ $//" # and remove the spaces
      else
	 # code:
	 printf "%s" "$s" |
	 sed -e "$sedcode"
      fi
   done	    
}

:<<'DOC' #----------------------------------------------------------------------
= cpurl
synopsis:	 cpurl string
description:	Prints the argument with converted/protected links.
		URL's are of the form |[X](Y)|.
		This function finds them in a string and converts them
		in advance, protecting |/|'s, |<|'s, |>|'s and |\|'s
		with U+2620, U+2621, U+2622 and U+2623 respectively. 
		The |X| is the representation of the link. If empty, the 
		link itself is used.
		The |Y| is the link. It may be an email address
		or a URL like |x.y.z/a/b|.  
		For html and pdf, the final link will then replace the
		|[...](...)| version, prefixed with mailto: or https:// and 
		protecting special characters as described.
		For man pages, |http://| and |mailto:| prefixes are
		not needed, and |[X](Y)| will be replaced with |Y (X)|
		or, if |X| and |Y| are identical, with just |X|. 
globals used:	  ext
DOC
#-------------------------------------------------------------------------------
cpurl() { local lnk txt lft rgt arg parens
   arg="$1 "
   if [[ $arg =~ (.*)\[([^\]]*)\]\(([^\)]+)\)(.*) ]]
      #		 ----  --------	   --------  ----
      #		  lft	 txt	     lnk     rgt
   then
      # left [text](url-link) right
      parens=true
      lft="${BASH_REMATCH[1]}"
      txt="${BASH_REMATCH[2]}"
      lnk="${BASH_REMATCH[3]}"
      txt="${txt:-$lnk}"
      rgt="${BASH_REMATCH[4]% }"
   else
      printf "%s" "${arg% }"
      return
   fi

   if [[ $ext != 1 ]]; then
      case $lnk in
      (*@*) # add mailto:
         lnk="mailto:$lnk"
         ;;
      (*) # add https://
         lnk="https://$lnk"
         ;;
      esac
   fi

   lnk="${lnk//\//☠}" # protect / by replacing it with ☠
   case "$ext" in
   (1)	  if $parens; then
	     printf '%s (%s)%s' "$lft$txt" "$lnk" "$rgt"
	  else
	     printf '%s' "$☣href{lft$txt$rgt"
	  fi
	  ;;
   (html) # protect /<> with U+2620-2622 (☠☡☢)
	  printf '%s☡a href="%s"☢%s☡☠a☢%s' "$lft" "$lnk" "$txt" "$rgt"
	  ;;
   (pdf)  # protect \ with U+2623 (☣)
	  printf '%s☣href{%s}{%s}%s' "$lft" "$lnk" "$txt" "$rgt"
	  ;;
   esac
}

:<<'DOC' #----------------------------------------------------------------------
= do_presets
synopsis:	 do_presets extension
description:	Preset many global variables, depending on the output
		extension (html, pdf or 1)
globals	 set:	too many to report here
globals used:	 base type progorscript scriptversion bindir
DOC
#-------------------------------------------------------------------------------
do_presets () {
   generated='doc generated from the script with '
   refgendoc='http://www.dekkerdocumenten.nl/unix/doc/gendoc.html'
   local re='\(mailto:\|https\?:\/\/\)*\(.*\)'
   local yn='' ext='' n=$'\n'
   case $1 in
   (html) 
      bcode='<pre>'
      ecode="</pre>"
      bcompact='<ul><li>'
      ecompact='</li></ul>'
      edoc='</div></div></body></html>'
      bHead='<h1' # closing > see kopcolor
      eHead='</h1>'
      bhead='<h4>'
      ehead='</h4>'
      bRow='<tr><td colspan="2">'
      eRow='</td></tr>'
      brow='<tr><td>'
      mrow='</td><td>'
      erow='</td></tr>'
      btablX='<table>'
      btabpX='<table><colgroup><col style="width:10%"/><col style="width:90%"/></colgroup><tr><td></td><td></td></tr>'
      etab='</table>'
      bverb='<pre>'
      everb='</pre>'
      ext=html
      functionsused="<h1>Functions used:</h1>"
      horrule="<hr/>"
      item="</li><li>"
      kopcolor='>'
      par='<p>'

      sedtext='
	s/&/\&amp;/g	# & → &amp;
	s/</\&lt;/g	# < → &lt;
	s/>/\&gt;/g	# > → &gt;
	s/\([^<]\)\/\([^/]*\)\([^<]\)\//\1<i>\2\3<\/i>/g      #	 /.../ → <i>...</i>
	s/\*\([^*]*\)\*/<b>\1<\/b>/g			      #	 *...* → <b>...</b>
	s/\bRed{\([^}]*\)}/<span class="red">\1<\/span>/g     # Red{...} → <span class="red">...<\/span>
	s/\bBlue{\([^}]*\)}/<span class="blue">\1<\/span>/g   # Blue{...} → <span class="blue">...<\/span>
	s/\bGreen{\([^}]*\)}/<span class="green">\1<\/span>/g # Green{...} → <span class="green">...<\/span>
	s/\(^\|\s\)'$base'\(\s\|$\)/\1<b><a href="..\/'$base'">'$base'<\/a><\/b>\2/g	# make scriptname a bold link if inside whitespace
	s/LoNeLyVeRtIcAlBaR/(<code>|<\/code>)/g # put singular "(|)" back
	s/LoNeLySlAsH/(<code>\/<\/code>)/g	# put singular "(/)" back
	'
      sedcode='
	s/&/\&amp;/g		# & → &amp;
	s/</\&lt;/g		# < → &lt;
	s/>/\&gt;/g		# > → &gt;
	s/ /\&#x2423;/g		# space→␣
	s/.*/<code>&<\/code>/g
	'
      sedverb='
	s/&/\&amp;/g	# & → &amp;
	s/</\&lt;/g	# < → &lt;
	s/>/\&gt;/g	# > → &gt;
	'

      HEAD() { # basename shortdesc 
	printf '<hr class="top"/>
		<span class="big">%s</span>
		<span class="kop">%s</span>
		<hr class="bot"/>
		<div class="left">%s<a href="%s">gendoc</a></div>
		<div class="right">%s %s, version=%s</div><div><br/>
	' "$1" "$2" "$generated" "$refgendoc" \
	  "$type" "$progorscript" "$scriptversion"
      }

      preamble='<!DOCTYPE html>
	<html Lang="en">
	<head>
	  <meta name="generator" content="gendoc" />
	  <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
	  <title>'"$base"' documentation</title>
	  <style media="screen">
	    tr { vertical-align:baseline; }
	    p { margin-top:10px; }
	    * { padding: 0; margin: 0; }
	    body {
	      font-family:Fontin,serif;
	      font-size:small;
	     color:#444;
	      margin-left: 30px;
	      max-width: 40em;
	    }
	    .top {
	      margin-top:10px;
	      margin-bottom:5px;
	    }
	    .bot {
	      margin-top:10px;
	      margin-bottom:0px;
	    }
	    h1 {
	      font-size: 120%;
	      color:#a00;
	      text-shadow: rgba(135,145,135,0.65) 3px 3px 4px;
	      margin-top: 30px;
	      padding-bottom: 0.4em;
	    }
	    h4 {
	      margin-top:15px;
	      margin-bottom:0px;
	    }
	    :link,
	    :visited {
	      color: #aa0000;
	      text-decoration: none;
	    }
	    :link:hover,
	    :visited:hover {
	      border-bottom: 1px dotted #6C8C22;
	    }
	    ul { list-style-type: circle; }
	    li { margin-left: 1.5em; }
	    pre,code {
	      font-family:monospace;
	      font-size: medium;
	      color: #023aaa;
	    }
	    td { padding-right: 1em; }
	    .red { color:#f00; }
	    .green { color:#0f0; }
	    .blue { color:#00f; }
	    .big {
	      font-size:xx-large;
	      font-weight:900;
	      color:#a00; 
	      text-shadow: rgba(135,145,135,0.65) 3px 3px 4px;
	      padding-right: .4em;
	    }
	    .kop {
	      font-size:large;
	      font-weight:900;
	      color:#a00;
	      text-shadow: rgba(135,145,135,0.65) 3px 3px 4px;
	    }
	    .left {
	       font-size:xx-small;
	       font-family:sans-serif;
	       margin-top:0px;
	       float: left;
	       width: 53%;
	    }
	    .right {
	       font-size:xx-small;
	       font-family:sans-serif;
	       text-align:right;
	       margin-top:0px;
	       float: right;
	       width: 45%;
	    }
	    img { vertical-align:top; }
	    h1.sub { color:#770; margin-top:2px; }
	    </style>
	    </head>
	    <body class="file">
	    <div>
	'
	preamble=${preamble## }
	docdir=$(realpath "$bindir/../html")
	
	local err=true
	if [[ ! -d $docdir ]]; then
	   Warn "Directory $docdir does not exist"
	elif [[ ! -e $docdir/index.html ]]; then 
	   Warn "there is no index.html in $docdir"
	elif [[ ! -w $docdir/index.html ]]; then
	   Warn "$docdir/index.html is not writable"
	elif [[ ! "$(head -1 "$docdir/index.html")" =~ --gendoc-- ]]; then
	   Warn "the $docdir/index.html has not been generated by gendoc"
	elif [[ ! -e $docdir/img/$type.jpg ]]; then
	   Warn "no icon image $type.jpg in $docdir/img"
	else 
	   err=false
	fi
	if $err; then 
	   read -rp "Do you want me to (re)create the html directory and its contents (yN)?" yn 
	   [[ $yn =~ ^[yY] ]] || exit 1
	   mkdir -p "$docdir"/img >& /dev/null || die "could not create $docdir"
	   cd "$docdir" || die "Could not cd to $docdir"
           uudecode "$realme" && unzip -oq index.zip && rm index.zip
	fi
      ;;
   (1)
      bcode="$n.nf$n\\f(CW"
      ecode="\\fP$n.fi"
      bcompact="$n.PD 0$n.IP ‣ 2"
      ecompact="$n.PP"
      edoc=''
      bHead="$n.SH "
      eHead=''
      bhead="$n.SS "
      ehead=''
      eRow=''
      bRow=''
      brow=''
      # Man pages: two-column source tables become .TP tagged paragraphs
      # in tabrow(), so no tbl prologue/epilogue is needed here.
      mrow=''
      erow=''
      btablX=''
      btabpX=''
      etab=''
      bverb='\f(CW'
      everb='\fP'
      ext=1
      item=".IP ‣ 2"
      kopcolor=''
      par="$n.PP"

      sedcode='s/\\/\\\\/g'
      sedtext='
	s/\([^<]\)\/\([^/]*\)\([^<]\)\//\1\\fI\2\3\\fR/g      #	 /.../ → \fI...\fR
	s/\*\([^*]*\)\*/\\fB\1\\fR/g			      #	 *...* → \fB...\fR
	s/LoNeLyVeRtIcAlBaR/(|)/g		# put singular (|) back
	s/LoNeLySlAsH/(\/)/g			# put singular (/) back
      '
      sedverb='s/\\/\\\\/g'

      HEAD() { # base shortdesc
         printf '.TH %s 1 "%s" "%s version %s" "DekDoc scripts"\n' \
            "$1" "$(date +'%B %d, %Y')" "$1" "$scriptversion"
         printf '.SH NAME\n'
         printf '%s \\- %s\n' "$1" "$2"
      }

      preamble=''
      docdir=$(realpath "$bindir"/../man)/man1
      if [[ ! -d $docdir ]]; then
	 echo "Directory $docdir does not exist"
	 read -rp "Do you want me to (re)create it (yN)?" yn 
	 [[ $yn =~ ^[yY] ]] || exit 1
	 mkdir -p "$docdir" >& /dev/null || die "could not create $docdir"
      fi
      ;; 
      
   (pdf)
      bcode='\begin{code}'
      ecode='\end{code}'
      bcompact='\begin{compactitem}\item '
      ecompact='\end{compactitem}'
      edoc='\end{document}'
      bHead='\Kop{'
      eHead='}'
      bhead='\kop{'
      ehead='}'
      bRow='\multicolumn{2}{@{}l@{}}{'
      eRow="}\\\\"
      brow=
      mrow='&'
      erow="\\\\"
      btablX='\par\begin{tabularx}{\textwidth}[l]{@{}lX@{}}'
      btabpX='\par\begin{tabularx}{\textwidth}[l]{@{}p{10mm}X@{}}'
      etab='\end{tabularx}\par{}'
      bverb='\V‡'
      everb='‡\K{}'
      ext=tex
      functionsused='\Kop{\color{kopred}Functions used:}\vskip-3ex'
      horrule='\textcolor{gray}{\rule{\textwidth}{.1pt}}\\[-7ex]'
      item=' \item '
      kopcolor='\color{kopred}'
      par='\par{}'

      sedtext='
	s/\\/&textbackslash{}/g		# \ → \textbackslash{}
	s/\([_%$#&]\)/\\\1/g		# some tex-escapes
	s/\/\([^/]*\)\//\I{\1}/g	# /.../ → \I{...}
	s/\*\([^}]*\)\*/\B{\1}/g	# *...* → \B{...} 
	s/\b\(Red\|Green\|Blue\|I\|B\|U\){\([^}]*\)}/\\\1{\2}/g
					# \´s before the X{...} commands
	s/→/\\MVRightarrow/g		  # → replaced with marvosym command
	s/\(^\|\s\)'$base'\(\s\|$\)/\1\\textbf{'${base//_/\\\\_}'\2}/g
					# make scriptname bold
	s/LoNeLyVeRtIcAlBaR/(\\V{\\textbar}\\K)/g
					# put singular "(|)" back
	s/LoNeLySlAsH/(\\V{\/}\\K)/g	# put singular "(/)" back
	'
      sedcode='
	s/ /␣/g
	s/.*/\\V‡&‡\\K{}/
	s/</\</g
	s/>/\>/g
	'
      sedverb='
	s/</\</g
	s/>/\>/g
	'

      HEAD() { # basename shortdesc 
	printf '\KOP{\color{kopred}\Huge %s\large\quad %s}
		\makebox[\hsize][r]{\scriptsize %s \href{%s}{gendoc}\hfill
		%s %s, version=%s}
	' "$1" "${2//_/\\_}" "$generated" "$refgendoc" \
	  "$type" "$progorscript" "$scriptversion"
      }

      preamble='%!lualatex
	\documentclass[10pt]{article}
	\usepackage[a4paper,margin=20mm,nohead]{geometry}
	\usepackage{xspace,ltablex,array,xcolor,ragged2e,textcomp}
	\usepackage{verbatim,shortvrb,paralist,marvosym}
	\usepackage{fontspec}
	\setmonofont{DejaVuSansMono}
	\setmainfont[
		Ligatures=TeX,
		BoldFont=DejaVuSerifCondensed-Bold,
		ItalicFont=DejaVuSerifCondensed-Italic,
	]{DejaVuSerifCondensed}
	\usepackage[colorlinks]{hyperref}
	\MakeShortVerb{‡}
	\parindent0pt\parskip0ex\topsep0pt\partopsep0pt
	\def\kop#1{\section*{\normalsize #1}\vskip-2ex}
	\def\Kop#1{\section*{\large #1}\vskip-2ex}
	\def\KOP#1{\section*{#1}\vskip-4ex\textcolor{kopred}{\hrulefill}\\[-.5ex]}
	\def\Red#1{\textcolor{red}{#1}}
	\def\Green#1{\textcolor{green!50!black}{#1}}
	\def\Blue#1{\textcolor{blue}{#1}}
	\def\I#1{\textit{#1}}
	\def\B#1{\textbf{#1}}
	\def\S#1{\textsl{#1}}
	\def\F#1{\textsf{#1}}
	\parindent0pt\parskip1ex
	\definecolor{verbblue}	{HTML}{023a72}
	\definecolor{kopred}	{HTML}{aa0000}
	\definecolor{kopgreen}	{HTML}{007700}
	\makeatletter
	\def\hrulefill{\leavevmode\leaders\hrule height 2pt\hfill\kern\z@}
	\def\V{\color{verbblue}}\def\K{\color{black}\xspace}
	\makeatother
	\newenvironment{code}%
	   {\color{verbblue}\small\verbatim}%
	   {\endverbatim}
	\renewcommand{\thefootnote}{\fnsymbol{footnote}}
	\begin{document}
	\catcode`\$=\active \def$ {\$} % disable math, we do not need it.
	\catcode`\_=\active
	\catcode`\%=\active
	'
	 docdir=$(realpath "$bindir"/../pdf)
	 if [[ ! -d $docdir ]]; then
	    echo "Directory $docdir does not exist"
	    read -rp "Do you want me to (re)create it (yN)?" yn 
	    [[ $yn =~ ^[yY] ]] || exit 1
	    mkdir -p "$docdir" >& /dev/null || die "could not create $docdir"
	 fi
      ;;
   esac
}

excheck getopt scriptinfo uudecode lualatex

docdir=''
handle_options "$@"
set -- "${args[@]}"
realme="$(realpath "$0")"

test $# -eq 1 || die "I need 1 input file"

fnd "$1"

cat <<-EOF 1>&2
	script:	 ${1##*/} - $short
	type:	 $type
	version: ${scriptversion:-?????}
	EOF

(( ${#outext} == 0 )) && outext=(1 pdf html)
for ext in "${outext[@]}"; do
   outfile="$base.${ext/pdf/tex}"
   do_presets "$ext"
   cd "$docdir" || die "could not cd to $docdir"
   verb "running in $docdir"
   
   if [[ $ext == html ]]; then
      # if the script is a link, just create a link for the html file too:
      if [[ -L ../$1 ]]; then
	 verb "$1 is a link"
	 i=$(readlink ../"$1")
	 ln -sf "$i".html "$1".html
	 $index && indx
	 exit
      fi
   fi
   
   eof=false IFS= DOCblocks=0
   printf "%s" "$preamble" |tr -d '\t' > "$outfile"
   while true; do
      : "${lineno:=0}"
      repeat=false
      while rline; do
	 if [[ "$line" =~ ^==\ (.*) ]]; then
	    printf '%s%s%s\n' "$bhead" "$(sed "$sedtext" <<<"${BASH_REMATCH[1]}")" "$ehead"
	 elif [[ $line =~ ^===$ ]]; then
	    # this is the start of a new documentation block
	    # stop in case a man page is generated
	    ((DOCblocks++))
	    case $DOCblocks in
	    (2) [[ $ext == 1 ]] && break 2
		if [[ $ext == pdf ]]; then
		   # change header font color for function documentation
		   kopcolor='\color{kopgreen}'
		else
		   kopcolor=' class="sub">'
		fi
		# after the first DOC block, documentation is for
		# functions:
		sep=$functionsused$horrule
		;;
	    (3) sep=$horrule
		;;
	    esac
	 else
	    if [[ $line =~ ^[[:space:]] ]]; then
	       # line starting with spaces is start of verbatim
	       # read lines until one found starting with non-space
	       # and enclose all in begin/end verbatim
	       printf '%s' "$bcode"
	       prverb "$line"
	       echo
	       rline
	       while [[ $line =~ ^[[:space:]] ]]; do
		  prverb "$line"
		  echo
		  rline
	       done
	       printf '%s\n' "$ecode"
	       repeat=true # last line to be used again
	    elif [[ $line =~ ^-\ (.*) ]]; then
	       # line starting with -: first of itemize list.
	       printf '%s\n' "$bcompact"
	       printout "${BASH_REMATCH[1]} "
	       rline
	       # re: 1. start with hyphen+space or 2 spaces, 
	       #     2. then maybe more whitespace, (which initiates code)
	       #     3. the text
	       re='^([- ]) (.*)'
	       while [[ $line =~ $re ]]; do
		  if [[ $line =~ ^- ]]; then
		     printf '%s\n' "$item"
		     printout "${line:2}"
		     echo
		     rline
		  elif [[ $line =~ ^\ {3} ]]; then
		     printf '%s\n' "$bcode"
		     while [[ $line =~ ^\ {3} ]]; do
			prverb "${line##+( )}"
			echo 
			rline
		     done
		     printf '%s\n' "$ecode"
		  else
		     printout "$line"
		     echo
		     rline
		  fi
	       done
	       printf '%s\n' "$ecompact"
	       repeat=true # last line to be used again
	    elif [[ $line =~ $'\t' ]]; then
	       # if there is a tab in the line, it´s a row in a 2-column
	       # table; this was the first of them, so we start the table
	       # here, read in the remaining rows and then close the
	       # table.
	       # If this first row ends with a tab (2nd column is empty):
	       #    make a table (tabpl) with a fixed-width first column
	       #    and print all first columns over two columns
	       #    suppose all rows have either an empty left column or
	       #    an empty right column
	       # otherwise:
	       #    make a normal table (tabll), with columns wide enough
	       #    for the content
	       if [[ -z ${line##*	} ]]; then
		  printf '%s' "$btabpX"
	       else
		  printf '%s' "$btablX"
	       fi
	       while [[ $line =~ $'\t' ]]; do
		  tabrow
		  rline
	       done
	       printf '%s' "$etab"
	       repeat=true # last line to be used again
	    elif [[ "$line" =~ ^=\ $base\ -\ (.*) ]]; then
	       HEAD "$base" "${BASH_REMATCH[1]}" 
	    elif [[ $line =~ ^=\ (.*) ]]; then
	       i=${BASH_REMATCH[1]}
	       [[ $ext == pdf ]] && i=${i//_/\\_}
	       printf '%s\n' "$sep$bHead$kopcolor$i$eHead"
	    elif [[ -z $line ]]; then
	       printf '%s\n' "$par"
	    else
	       printout "$line "
	    fi
	 fi
      done
   
      # rline may set eof
      $eof && {
	 printf '%s\n' "$edoc"
	 break
      }
   done < <(
      if [[ $(file --mime-encoding -bL "$bindir/$base") == binary ]]; then
	 verb "binary file: get the DOC with the -H option"
	 "$bindir/$base" -H
      else
	 tmp=$(mktemp -t "$Myname".XXXXXXXXXX)
	 verb "extract the DOC sections"
	 sed -n "
	     /^:\?<<'DOC'/,/^DOC/{
		     /^DOC/d
		     s/^:\?<<'DOC'.*/===/
		     p
	     }" "$bindir/$base" >"$tmp"
	 # join lines starting with a tab and a non-space character,
	 # to fill available space
	 sed '/^\t\+[^ ]/!{p;d}; :a; N; s/\n\t\+\([^ ]\)/ \1/;ta' "$tmp"
      fi
      rm -f "$tmp"
   ) |
   sed -e 's/\t//g;			     # remove tabs
	   s/<pre><\/pre>//g;		     # remove empty <pre>s
	   s/‡\\‡/‡\\ ‡/g;		     # make ‡\‡ possible in latex
	   s/☠/\//g;s/☣/\\/g;s/☡/</g;s/☢/>/g # restore [/\<>]
	   /\.RE/{N;N;N;s/\.RE\n\n\.RS\n//}  # combine empty 1st cells to multirow
	  ' |
   cat -s >>"$outfile"
   
   if [[ $ext == pdf ]]; then 
      echo x | lualatex "$outfile" &>/dev/null ||
	 die "$Myname: Here's the directory where I produced and" \
	     "compiled the latex file: $PWD"
      test -e "$base.pdf" || die "$base.pdf not found after compilation"
      rm -f "$base".{aux,fls,log,out,tex,synctex.gz}
   elif [[ $ext == html ]]; then
      $index && indx
   fi
   cd "$bindir" || die "Could not re-enter $bindir"
done

:<<'INDEX'
begin-base64 644 index.zip
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
ySJYOncSAxfnEJfqUEsnv64uyizMCLaElz+LF/unyYLZ8viqXMl1Kbav4Lwh
P6aH0yDx77mYOuWI8ycXOeAmZkrnwj2SCO7wT2ef7WrKzh5t4Pjz9SP6Bbn5
xaHpqfQb3gTP8IBF96Dw1iGMq+x5TSgnebaI387pjf2YFHI6N6uIlnA+V5ws
3Zl3qS21Mn2Lb5qn2CYvbIrfKTdIXDYKJ+NMdYvaXc7y9lVTn0THdtpp5S8f
5HTedYRtjNdNCYV7dXtNA148Ly3yu8lPTy22y6xuXoNG6tmmZOVG6B69c6Yy
oOs7kaFNxtX5aKlw2TSndNjwcmSclTw+rqQqwaD2h9A25khfAK0r23o12YRL
pa1/2xGwKMbnCIVn1rFI2JfmNtvsf5UZmPc2ORB7Kl9S1R3iWhJvf2bzKIQI
FwC99tJLEAOtpDrihKSQIqywX/ANBDHsC9RPC3qJDyq+uF49zG5gH8LtcRNS
t6eGU3jBnWFuzI8pXdo4lyPCBH+vhuP0SOKdRC0qckEnyZRju9b5VlOwlfr+
fc9b8WRaGpErFa3J3GER0OQbUyQy6qg3EzeSMp60Z/C/78E1PniVM7Z5eJny
TYq3NnOVxSM+2c+ZHDEt397a33c2cZjl0i6Km7lhLnDesF9vFt9Yp89hKQB9
X5TjvRzTnQOvtlpwQ/pae14PyY8dj3rD4jUuZHpC0+lxmbe4a3eaBxXY2Jsy
+7tZ3g9TIuvRq8fFjvS7myxahxv1W/q3Oe8+4ZElc4j9ZZYU1So5szie5Y5S
ABon0PDbsFebab8xKqY/YMUQiC1w+x0nabaeMnJzopqIvEMPES+NfZJphrfs
mVOAxEramx+6davno/fe171O+exBW3QK2+xzm/nZ0/A4+9bQR2YJTz7RcRkE
PD7Y/JS28YDb5GIgq4oUNV7tSpw9kFrHzK/1dpDkdCc7u6X7jrAjnXFYLPpK
Y4HHhzIG15fOKLTb9XT+nDyI3QvLtM1GofET0m6vwYJ5iznX0bZ7carCZ8Vl
YZR4yCHk3A2BXU9Wg1W9rN5rkDqCIBNsrcN6zzuRWf5HU9M4yaVfHC0Hk4Jc
zYbfWg7M7N7Y/G6UMnYu8Y+B92WMlusXW9qtAiV5EqvxgQ6Nh6diIJ3ydOpw
xOkyRjaGu1sx+CdQSwMEFAAAAAgAaHQ9T1h5ga6lIAAAgiQAAAwAHABpbWcv
cnVieS5qcGdVVAkAAwSlkF1Lq5BddXgLAAEE6AMAAAToAwAAzXlnWFRLs+4a
hiEOwhCUnCWD5CQZySCZQTKSQRGQIChZQAaRHCXnnIPkHCUHiSJJJCgZyXAG
9+fe7vOcH/fcP/fWrFqrntW9uru6qt/qrrmevl4E8BRlFWQBEJLYQGwAcL2E
7yfzwsYSABQUWAAMAAAgACkIAoCQkiKSyf4jayCZCQT+JaMgmQuEAkCRTz0k
cyNlQuQT2QjggWQ2ZCXQH085BRU1am4OLk4OQYCbk0tImFNImFuImotXmIdP
mIvnplcQ6q+aNzfQHzIKskcwUlxEMvg/vaPd8B8y0X/km3oglL++XbsZ5X/k
KBjwizB+/a7/nIObPpC36zlAGsBAQ0NHg2Cgo6NjYmJgQQlxoNjYUBJ8AlxC
ClIqSgpScnJqeg5Galo2OnJyJgFmNk4uXl5eKkYhUUFuEQ4eXu6bRkCYmJhQ
bCgxDg4xNw05Dff/mq5bARjGzZjAIFoABQYCw0DXnQAVcpwQ0C8C/kMgFDAq
BA0dAxMLG1mhGu9mpsAoqGAIBBUVWeqJLAdQYRB8Gi5JNAJ1U3RaR0Ju34h0
DDqp8jYijdFdep7HTn6YWLfvEJOQ3mVgZGJm4eXjFxAUEpZ+ICMrJ6+gqKml
rQPXfaRnZm5haWVtY/vc2cXV7YW7h//rgMCgN8GIyKjomNi4+ITEjMys7Jzc
vPyCisqq6praD3X17R2dXd09vX39Y+MTk5+mpmdml5ZXVr+ufVvf2NzbPzg8
+nl8cnp2o9eNnr/pf9QLhtQLBRUVjIp+oxcIxe2mAgwVQsOFhi+pjm7qSEDL
7YtBKBWRXt6GScejsUv02GkU6zY979LdvRvVfmn2f6aY3/+VZn8r9o9eswAU
DEIaDwwDxIHjM6YMH6z/H5ml+irdJkef7P3MJ2JJLMPKt4kHl3bLjnJcNnjM
5uH5kaZ1hnJSnJJrlcm6HctWRmQQY/xrwI3i/uH9rR+KwyrBWQ11CDZmh6JF
HtAUcFQCNjpJqDP3l3u7FP60zouETOQiC8/77OjbFPw4rkvl8/wxRFCTN2Dv
cBBewhKfryS/7slBQJeptFBwmrr4qHGCo3Qnq6k+us+RBpIKWIHBvj0SLNb3
wKbmi2eTWKyxl6pP7xJZlFdh0FGvIT4ilpZFFSgDSzuEBwS3NpTNq9TVVYX1
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
Hx/SJ3NYaLesIqfr2mxj8n0PIP/Rfpas6V9cN2XGwahdQ5yfBkabLstJ0O6/
j16339QhzgsaJPfO1Jn1eudVZ2XGEOr5DLigu+fHP+0Nrf/6scRoYuci0o0h
DaVm/FBktOdM1kDPixvZF1dOhMBUT6IP91ZcYxN6r1OOD0gfaZePqmNXcPGx
M/dHzhXPillf4ddMRdWQ2G31zUGzyzxz/m1JXKQbMOIBIKTjooAgvz0BDEKB
AKhoePgE1Oiw24R3aPnUOJEugYF0FRAE5cq8xNiCQinxS3gqY4TeKW8MAWs4
gVxqX+iue1dR5jXQbcVSHeyco/CStdCgWKvu4pZVwpkpwbvosp2o1Q3yKSGj
7djiw/Y56IT1FH/SpO0i2krqj98lxfaf1i1DBzuJGVY/O+VXB1c8j9nesv/c
6dkbpBptq7kzcAZnLewZ+BLuTEMKG1So15Mu1C3VH3lSu7Gisx2zkaTsiJ7X
naWDg/bainpSlCPMLWvvufDX9rW4dRpmomJZhriOlQ+j2/PNXFR52wkCO1Ax
AdqXOXOik61tVW6dFFgPnmVpOWnFX75780PEfhDpOMrvj+MEVKQy6JwjGFqt
uRsVmfkUNd59f+D12YHme7ewpZu4Kmfhj6cK/VgRDAeHot39pp5bb8JCyDZS
g955ZfQ9dO2um/ucX1JNwutnRc6ovIAzFktk+5CuN8qEl2ZWmCbpYeZdvbDA
uaI1mB3TgQm+v6bpuABWikiMi2d5413sLpycFyViASvyjiO7GAysXEyOI+l0
xRu+xMitLdJwgrCblDMSNNAhfy9fABVCDcaD4XOh0XBLqvuml4/SckqbOhIQ
0UmptS3x8GloRvyyJHLZi4POzJJgX7eqSvpfnXFTc1g/dF44Yvzejo0rRkUw
2dSHe9XMWPgyklJEjLFQozVpKg3L7ag61aRqKOPsvsJ2EvXhTsYVwvXQSlCz
MsU5RLuqX6W6O8m/mO/QuvDDayns0Z8Ts+TXABSQL1OWKdLUcr+TzD5t9e8C
N4bBp+T15PCGpBHrF545NVGSgocmKDJ+L6WN7bqL0viFcY0qsu/aYj68m77t
2zevDnU5Gyq623/3FT3jkEGKY3PFYSMaZdO2OtUYZYuNSVMQKZ/t8MAxS7dy
ujgFuF+X4YUn5ZWlfpdfgF2kSKHR92nUMtW59eMDNm29spI5YvZiNPm+6qOX
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
veSWIf5LEwTvxKZDx6S5QLzOTPWcLTk7gz+ZqZ7oFWm69oXLOhXIJWPLD1Il
Q6mYxga1o45Hv8hX34lxT/Qt0cgtNZ60XjqeQF144Qyj7y3YpvViruL+Sh9X
sd0ISMUt4xM5tvBVT87e/ZiJxPNDIjuTly3oanqEtXEIB/LljYFHhIRXar12
GMLumZ0WuswpPGTkOyzK6+ML+y94Ul4738xSyAu8/1VXsz375+dkzg4/c/7K
zSKjx7Mc9FcbvniW+k7s3EmdGYtuPdzuaLFoeMESnxDfgDz7Y+tK/b9indyW
8TF198nuiJyG3vttzke17oa3fMHaIm/eilVLnaN6a2/it5vstY0vq20dNykm
Zog76iasYfsZHm7b+NbapenU3V2+rcEK6a3fkCUWyZSeei02tS8x9ra88pWM
ywLOzY7PxqWfnvkwW+3bzcLZLMFxVlGOxhm2DYlz5cKJDeJHHCSyqLV6Hios
Sy6gO2gtn1yv7azDPOafUw9ZjZTjMs0+Psf3Vudr6FVzB6BMHXiuDirW1eou
XoKtFl0e8uS2xPoFq1y4gLDb4fYdJrnBJ2Y/kmsvsu01lC4Nr1v0ZhGr5+1i
8fsh+DVs5Ut9FxM1GiNuZIYcczxxW3GPyGmn45w8KiWro10gWYAi9ElyE808
sehMgdpF43fdPMAxzXDkt8PphierDRYbjLE/FmzZf0cda0YT/eKnPBck3lUr
GYs5a7EXY+P6gN5P/jut++sPmb8xIvzgXDlfsB752jx4EhQUMu+oMiF+Y0tk
1oUdNelnv/MTVUqJrbXrW1XluAcktuVWnyDUJWsDT4klr+TYyt9w9y70NPQs
lNF3zFnkYHp5ouVfYSGghhvkVEgwW2I//wP1cwhDiSoq6bkwSLpm5t6g6ltK
pSohwF90nT3MCnlYfrE7nWb6BgI+YUpHwD3sQ5KiVX0W/93fZl/86fetrHO9
1wZv9F5jrBI4nvr8Wk/q86ogjdUBgc8PBmw4FemvrZxISXGy1XNV1w+UTCru
vuHmptmxgpIi5quSSjK/Z6+XFmpHSZfuE3PnwxeUtj6Z13ttGM54vs7o+gEd
o+LFWCsgEwirF7Hfl16LMbCaePR0kS5//WkzMPuJBklN3vVY85gk/Cz1u8os
dQ2mLd3oekzn0tLWl9flWl8J7nL9tHLri5CV4do4hwebngc/2LQkRsZMqNAR
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
====
INDEX
