#!/bin/sed -nf y/[A-Z]/[a-z]/;s/\(.*\)/\1%\1$aS bcdefghijklmnopqrstuvwxyz/;: s!\\(.*\\)!\1\1!; s/\([a-z]\)\(S*\) \(.\)/\1\2\3\2S /;t s!\\(.*\\)!\1\1!; s/\(.*\)/\1:/ : s!\\(.*\\)!\1\2!; s/\([^\n]\)\(.*%.*\)\1\(S*\)\(.*:.*\)/\2\1\3\4\1\3/; t s!\\(.*\\)!\1\2!; s/%\(.*\)$.*:/ \1/ : s!\\(.*\\)!\1\3!; s/\([^S]\)\(S*\)\([^S]\)\(\2SS*\)/\3\4\1\2/; t s!\\(.*\\)!\1\3!; s/S//g; H $ { g; s/\(.*\)/\1@/; h; : s!\\(.*\\)!\1\4!; s/@//; s/^\n\([^\n]*\) \([^\n]*\)\(.*\)/\1 \2\3:\2/; : s!\\(.*\\)!\1\5!; s/^\([^\n]*\) \([^\n]*\)\(.*\n\)\1 \([^\n]*\)\(.*\):\(.*\)/\1 \2\3\5:\6 \4/;t s!\\(.*\\)!\1\5!; s/.*://;p;g; s/^\(\n[^\n]*\) \([^\n]*\)\(.*\)@/\3@\1 \2/; h; /^@/ !{ t s!\\(.*\\)!\1\4!} }; d