[Logwatch-Devel] more iptables improvements

James Wysynski wysynskij@yahoo.com
Wed, 7 Aug 2002 07:59:10 -0700 (PDT)


--0-893446420-1028732350=:64701
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Here's an attachment.  My guess is that Yahoo! mail
probably wrapped the line text.  I'll keep that in
mind for future postings.

-James

--- mark@winksmith.com wrote:
> your mailer (or possibly mine) seems to have wrapped
> all the line text.
> could you resend as an attachment or indicate where
> i can download to
> try it out?  thanks.
> 
> On Tue, Aug 06, 2002 at 04:59:57PM -0700, James
> Wysynski wrote:
> > # Revision 1.8d 2002/06/13 gs     order by
> $fromhost
> > again
> > # Revision 1.8c 2002/06/12 gs     fix bug that
> > prevented output
> > # Revision 1.8b 2002/06/11 gs     improved
> iptables
> > support
> > # Revision 1.8a 2002/06/07 gs     added iptables
> > support again
> > # Revision 1.8  2002/03/28 05:00:00  kirk
> > # - Implemented several bug fixes and patches that
> > have been sent in
> ....
> 
> -- 
> Mark Smith
> mark at winksmith dot com
> mark at tux dot org



__________________________________________________
Do You Yahoo!?
Yahoo! Health - Feel better, live better
http://health.yahoo.com
--0-893446420-1028732350=:64701
Content-Type: application/octet-stream; name=kernel
Content-Transfer-Encoding: base64
Content-Description: kernel
Content-Disposition: attachment; filename=kernel

IyEvdXNyL2Jpbi9wZXJsIC13CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjCiMgJElkOiBrZXJuZWwsdiAxLjkgMjAwMi8wNi8xNyAwMjo0Nzo0MiBr
aXJrIEV4cCAkCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgJExv
Zzoga2VybmVsLHYgJAojIFJldmlzaW9uIDEuOSAgMjAwMi8wNi8xNyAwMjo0
Nzo0MiAga2lyawojICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKIwojIFJl
dmlzaW9uIDEuOGQgMjAwMi8wNi8xMyBncyAJb3JkZXIgYnkgJGZyb21ob3N0
IGFnYWluCiMgUmV2aXNpb24gMS44YyAyMDAyLzA2LzEyIGdzIAlmaXggYnVn
IHRoYXQgcHJldmVudGVkIG91dHB1dAojIFJldmlzaW9uIDEuOGIgMjAwMi8w
Ni8xMSBncyAJaW1wcm92ZWQgaXB0YWJsZXMgc3VwcG9ydAojIFJldmlzaW9u
IDEuOGEgMjAwMi8wNi8wNyBncyAJYWRkZWQgaXB0YWJsZXMgc3VwcG9ydCBh
Z2FpbgojIFJldmlzaW9uIDEuOCAgMjAwMi8wMy8yOCAwNTowMDowMCAga2ly
awojIC0gSW1wbGVtZW50ZWQgc2V2ZXJhbCBidWcgZml4ZXMgYW5kIHBhdGNo
ZXMgdGhhdCBoYXZlIGJlZW4gc2VudCBpbgojIC0gRml4ZWQgYSBwb3NzaWJs
ZSByb290IGV4cGxvaXQgdXNpbmcgYSByYWNlIGNvbmRpdGlvbiBpbiAvdG1w
CiMgLSBGaXhlZCBidWdzIDQ2MzcxLCA1NjE5MSwgNTg1NzgsIDYxMjAyLCA2
MTgyOSwgNjE4MzEsIDYxODMyIGZyb20gYnVnemlsbGEucmVkaGF0LmNvbQoj
CiMgUmV2aXNpb24gMS43ICAyMDAwLzA5LzIyIDE1OjU5OjA1ICBraXJrCiMg
UHJlcHBpbmcgZm9yIFZlcnNpb24gMi4wLjEKIwojIFJldmlzaW9uIDEuNiAg
MjAwMC8wOS8yMiAxNDo0NzowNCAga2lyawojICoqKiBlbXB0eSBsb2cgbWVz
c2FnZSAqKioKIwojIFJldmlzaW9uIDEuNSAgMTk5OS8wMi8yMyAwMDozOTo1
NCAga2lyawojIEFkZGVkIGNvZGUgd3JpdHRlbiBieSBGYWJyaXppbyBaZW5v
IENvcm5lbGxpIDx6ZW5vQGZpbGlidXN0YS5jcmVtYS51bmltaS5pdD4uCiMK
IyBSZXZpc2lvbiAxLjQgIDE5OTgvMDQvMDggMTg6MzI6MDMgIGtpcmsKIyBB
cHBsaWVkIGNoYW5nZXMgc3VibWl0dGVkIGJ5IEx1dWsgZGUgQm9lciA8bHV1
a19kZV9ib2VyQHBpLm5ldD4uLiBUaGFua3MhCiMKIyBSZXZpc2lvbiAxLjMg
IDE5OTgvMDIvMjMgMDE6MTY6NTcgIGtpcmsKIyBHZXR0aW5nIHJlYWR5IGZv
ciBhIGZpcnN0IGRpc3RyaWJ1dGlvbgojCiMgUmV2aXNpb24gMS4yICAxOTk4
LzAyLzIyIDIyOjM2OjI4ICBraXJrCiMgQ3JlYXRlZCBuYW1lZC4uLgojCiMg
UmV2aXNpb24gMS4xICAxOTk4LzAyLzIyIDIxOjQ1OjQxICBraXJrCiMgQWRk
ZWQga2VybmVsIG1lc3NhZ2UgcHJvY2Vzc2luZwojCiMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFRoaXMgd2FzIHdyaXR0
ZW4gYW5kIGlzIG1haW50YWluZWQgYnk6CiMgICAgS2lyayBCYXVlciA8a2ly
a0BrYXliZWUub3JnPgojCiMgUGxlYXNlIHNlbmQgYWxsIGNvbW1lbnRzLCBz
dWdnZXN0aW9ucywgYnVnIHJlcG9ydHMsCiMgICAgZXRjLCB0byBraXJrQGth
eWJlZS5vcmcuCiMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCiREZXRhaWwgPSAkRU5WeydMT0dX
QVRDSF9ERVRBSUxfTEVWRUwnfTsKIyRNYXhGbG9vZCA9ICRFTlZ7J01BWEZM
T09EJ307CiRNYXhGbG9vZCA9IDEwOwokTWF4TnVtID0wOwoKc3ViIExvb2t1
cElQIHsKICAgbXkgKCRuYW1lLCAkYTEsICRhMiwkYTMsJGE0LCRQYWNrZWRB
ZGRyLCRBZGRyKTsKICAgJEFkZHIgPSAkX1swXTsKICAgKCRhMSwkYTIsJGEz
LCRhNCkgPSBzcGxpdCAvXC4vLCRBZGRyOwogICAkUGFja2VkQWRkciA9IHBh
Y2soJ0M0JywkYTEsJGEyLCRhMywkYTQpOwogICBpZiAoJG5hbWUgPSBnZXRo
b3N0YnlhZGRyICgkUGFja2VkQWRkciwyKSkgewogICAgICByZXR1cm4gKCRu
YW1lIC4gIiAoIiAuICRBZGRyIC4gIikiKTsKICAgfSBlbHNlIHsKICAgICAg
cmV0dXJuICgkQWRkcik7CiAgIH0KfQoKc3ViIExvb2t1cFNlcnZpY2Ugewog
ICBteSAoJHBvcnQsICRwcm90bywgJHNlcnZpY2UpOwogICAoJHBvcnQsICRw
cm90bykgPSAoJF9bMF0sICRfWzFdKTsKICAgaWYgKCRzZXJ2aWNlID0gZ2V0
c2VydmJ5cG9ydCAoJHBvcnQsICRwcm90bykpIHsKICAgICAgcmV0dXJuICgk
c2VydmljZSk7CiAgIH0KICAgcmV0dXJuICgkcG9ydCk7Cn0KCnN1YiBMb29r
dXBQcm90b2NvbCB7CiAgIG15ICgkcHJvdG8sICRuYW1lKTsKICAgJHByb3Rv
ID0gJF9bMF07CiAgIGlmICgkbmFtZSA9IGdldHByb3RvYnludW1iZXIgKCRw
cm90bykpIHsKICAgICAgcmV0dXJuICgkbmFtZSk7CiAgIH0KICAgcmV0dXJu
ICgkcHJvdG8pOwp9Cgp3aGlsZSAoZGVmaW5lZCgkVGhpc0xpbmUgPSA8U1RE
SU4+KSkgewogICBjaG9tcCgkVGhpc0xpbmUpOwogICBuZXh0IGlmICgkVGhp
c0xpbmUgZXEgIiIpOwogICAKICAgIyBJUENIQUlOUyAKICAgaWYgKCAoJGZy
b20sJG9uKSA9ICggJFRoaXNMaW5lID1+IC9eV2FybmluZzogcG9zc2libGUg
U1lOIGZsb29kIGZyb20gKFteIF0rKSBvbiAoW14gXSspOi4rIFNlbmRpbmcg
Y29va2llcy8gKSApIHsKICAgICAgJEZ1bGxmcm9tID0gTG9va3VwSVAoJGZy
b20pOwogICAgICAkRnVsbG9uID0gTG9va3VwSVAoJG9uKTsKICAgICAgJFNZ
TmZsb29keyRGdWxsb259eyRGdWxsZnJvbX0rKzsKICAgfSBlbHNpZiggKCRU
VSwkZnJvbSwkcG9ydCwkb24pID0gKCAkVGhpc0xpbmUgPX4gL0lQIGZ3LWlu
IGRlbnkgXHcrIChcdyspIChbXjpdKyk6XGQrIChbXjpdKyk6KFxkKykgLyAp
ICl7CiAgICAgIGlmKCRNYXhOdW0gPCArKyRUQ1BzY2FueyRUVX17JGZyb219
KSB7CiAgICAgICAgICRNYXhOdW0gPSAkVENQc2NhbnskVFV9eyRmcm9tfQog
ICAgICB9CiAgICAgICRwb3J0PTA7CiAgIH0gZWxzaWYgKCAoJGNoYWluLCRp
ZiwkcHJvdG8sJGlwLCRwb3J0KSA9ICggJFRoaXNMaW5lID1+IC9eUGFja2V0
IGxvZzogKFx3KykgUkVKRUNUIChcdyspIFBST1RPPShbMC05XSspIChbXjpd
Kyk6WzAtOV0rIFteOl0rOihbMC05XSspLyApICl7CiAgICAgICRob3N0ID0g
TG9va3VwSVAoJGlwKTsKICAgICAgJHByb3RvID0gTG9va3VwUHJvdG9jb2wo
JHByb3RvKTsKICAgICAgJHBvcnQgPSBMb29rdXBTZXJ2aWNlKCRwb3J0LCRw
cm90byk7CiAgICAgIGlmICgkcG9ydCBuZSAnYXV0aCcpIHsKICAgICAgICAg
JFJlamVjdENvdW50eyRob3N0fSsrOwogICAgICAgICAkUmVqZWN0ZWR7JGhv
c3R9eyIkcG9ydFx0XCgkcHJvdG8sJGlmLCRjaGFpblwpIn0rKzsKICAgICAg
fQogICB9IGVsc2lmKCAoJGNoYWluLCRpZiwkcHJvdG8sJGlwLCRwb3J0KSA9
ICggJFRoaXNMaW5lID1+IC9eUGFja2V0IGxvZzogKFx3KykgREVOWSAoXHcr
KSBQUk9UTz0oWzAtOV0rKSAoW146XSspOlswLTldKyBbXjpdKzooWzAtOV0r
KS8gKSApewogICAgICAkaG9zdCA9IExvb2t1cElQKCRpcCk7CiAgICAgICRw
cm90byA9IExvb2t1cFByb3RvY29sKCRwcm90byk7CiAgICAgICRwb3J0ID0g
TG9va3VwU2VydmljZSgkcG9ydCwkcHJvdG8pOwogICAgICBpZiAoJHBvcnQg
bmUgImF1dGgiKSB7ICMgZG9uJ3QgY2FyZSBhYm91dCBhdXRoCiAgICAgICAg
ICREZW55Q291bnR7JGhvc3R9Kys7CiAgICAgICAgICREZW5pZWR7JGhvc3R9
eyIkcG9ydFx0XCgkcHJvdG8sJGlmLCRjaGFpblwpIn0rKzsKICAgICAgfQog
ICB9IGVsc2lmKCAoJGNoYWluLCRpZiwkcHJvdG8sJGlwLCRwb3J0KSA9ICgg
JFRoaXNMaW5lID1+IC9eUGFja2V0IGxvZzogKFx3KykgQUNDRVBUIChcdysp
IFBST1RPPShbMC05XSspIChbXjpdKyk6WzAtOV0rIFteOl0rOihbMC05XSsp
LyApICl7CiAgICAgICRob3N0ID0gTG9va3VwSVAoJGlwKTsKICAgICAgJHBy
b3RvID0gTG9va3VwUHJvdG9jb2woJHByb3RvKTsKICAgICAgJHBvcnQgPSBM
b29rdXBTZXJ2aWNlKCRwb3J0LCRwcm90byk7CiAgICAgIGlmICgkcG9ydCBu
ZSAiYXV0aCIpIHsgIyBkb24ndCBjYXJlIGFib3V0IGF1dGgKICAgICAgICAg
JEFjY2VwdENvdW50eyRob3N0fSsrOwogICAgICAgICAkQWNjZXB0ZWR7JGhv
c3R9eyIkcG9ydFx0XCgkcHJvdG8sJGlmLCRjaGFpblwpIn0rKzsKICAgICAg
fQogICB9CgogICAjIElQVEFCTEVTCiAgICAgZWxzaWYgKCAoJGNoYWluLCRp
ZmluLCRpZm91dCwkZnJvbWlwLCR0b2lwLCRwcm90bywkZnJvbXBvcnQsJHRv
cG9ydCkgPSAoJFRoaXNMaW5lID1+IC9eKC4qKVxzK0lOPShcdyopLipPVVQ9
KFx3KikuKlNSQz0oW1xkfFwuXSopLipEU1Q9KFtcZHxcLl0qKS4qUFJPVE89
KFx3KikuKlNQVD0oXHcqKS4qRFBUPShcdyopLyApICl7CiAgICAgICRmcm9t
aG9zdCA9IExvb2t1cElQKCRmcm9taXApOwogICAgICAkdG9ob3N0ID0gTG9v
a3VwSVAoJHRvaXApOwogICAgICBpZiAoICRwcm90byA9fiAvXGQrLyApIHsK
ICAgICAgICAgJHByb3RvID0gTG9va3VwUHJvdG9jb2woJHByb3RvKTsKICAg
ICAgfSBlbHNlIHsKICAgICAgICAgJHByb3RvID0gbGMoJHByb3RvKTsKICAg
ICAgfQogICAgICAkZnJvbXBvcnQgPSBMb29rdXBTZXJ2aWNlKCRmcm9tcG9y
dCwkcHJvdG8pOwogICAgICAkdG9wb3J0ID0gTG9va3VwU2VydmljZSgkdG9w
b3J0LCRwcm90byk7CiAgICAgIAogICAgICAjIHRoaXMgaXMgZm9yIGludGVy
ZmFjZSBncm91cGluZwogICAgICBpZiAoJGlmaW4gID1+IC9cdysvICkgewog
ICAgICAgICAjIElOIHNob3VsZCBkb21pbmF0ZQoJICRpbnRlcmZhY2UgPSAk
aWZpbjsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKCSAkaW50ZXJmYWNl
ID0gJGlmb3V0OwogICAgICB9CgogICAgICBpZiAoJHRvcG9ydCBuZSAiYXV0
aCIpIHsgIyBkb24ndCBjYXJlIGFib3V0IGF1dGgKCSAjIGNob29zZSBhbiBh
Y3Rpb24gdHlwZQoJIGlmICggJGNoYWluID1+IC8uKnJlamVjdC4qL2kgKSB7
CSAgICAKCSAgICAgJGFjdGlvblR5cGUgPSAiUmVqZWN0ZWQiOwogICAgICAg
ICB9IGVsc2lmICggJGNoYWluID1+IC8uKmRyb3AuKi9pICkgewoJICAgICAk
YWN0aW9uVHlwZSA9ICJEcm9wcGVkIjsKICAgICAgICAgfSBlbHNpZiAoICRj
aGFpbiA9fiAvLipkZW55LiovaSApIHsKCSAgICAgJGFjdGlvblR5cGUgPSAi
RGVuaWVkIjsKICAgICAgICAgfSBlbHNpZiAoICRjaGFpbiA9fiAvLiphY2Nl
cHQuKi9pICkgewoJICAgICAkYWN0aW9uVHlwZSA9ICJBY2NlcHRlZCI7CiAg
ICAgICAgIH0gZWxzZSB7CgkgICAgJGFjdGlvblR5cGUgPSAiTG9nZ2VkIjsK
ICAgICAgICAgfQoJIAoJICMgYWRkIHRoZSBwYWNrZXQKICAgICAgICAgJGlw
dHskYWN0aW9uVHlwZX17JGludGVyZmFjZX17JGZyb21ob3N0fXskdG9ob3N0
fXsiUG9ydDogJHRvcG9ydCBcKCRwcm90bywkaWZpbiwkaWZvdXQsJGNoYWlu
XCkifSsrOwogICAgICB9CiAgIH0gZWxzaWYgKCAoJGNoYWluLCRpZmluLCRp
Zm91dCwkZnJvbWlwLCR0b2lwLCRwcm90bykgPSAoJFRoaXNMaW5lID1+IC9e
KC4qKVxzK0lOPShcdyopLipPVVQ9KFx3KikuKlNSQz0oW1xkfFwuXSopLipE
U1Q9KFtcZHxcLl0qKS4qUFJPVE89KFx3KikvICkgKXsKICAgICAgJGZyb21o
b3N0ID0gTG9va3VwSVAoJGZyb21pcCk7CiAgICAgICR0b2hvc3QgPSBMb29r
dXBJUCgkdG9pcCk7CiAgICAgIGlmICggJCBwcm90byA9fiAvXGQrLyApIHsK
ICAgICAgICAgJHByb3RvID0gTG9va3VwUHJvdG9jb2woJHByb3RvKTsKICAg
ICAgfSBlbHNlIHsKICAgICAgICAgJHByb3RvID0gbGMoJHByb3RvKTsKICAg
ICAgfQoKICAgICAgIyB0aGlzIGlzIGZvciBpbnRlcmZhY2UgZ3JvdXBpbmcK
ICAgICAgaWYgKCRpZmluICA9fiAvXHcrLyApIHsKCSAjIElOIHNob3VsZCBk
b21pbmF0ZSAKCSAkaW50ZXJmYWNlID0gJGlmaW47CiAgICAgIH0KICAgICAg
ZWxzZQogICAgICB7CgkgJGludGVyZmFjZSA9ICRpZm91dDsKICAgICAgfQoK
ICAgICAgIyBjaG9vc2UgYW4gYWN0aW9uIHR5cGUKICAgICAgaWYgKCAkY2hh
aW4gPX4gLy4qcmVqZWN0LiovaSApIHsJICAgIAogICAgICAgICAgJGFjdGlv
blR5cGUgPSAiUmVqZWN0ZWQiOwogICAgICB9IGVsc2lmICggJGNoYWluID1+
IC8uKmRyb3AuKi9pICkgewogICAgICAgICAgJGFjdGlvblR5cGUgPSAiRHJv
cHBlZCI7CiAgICAgIH0gZWxzaWYgKCAkY2hhaW4gPX4gLy4qZGVueS4qL2kg
KSB7CiAgICAgICAgICAkYWN0aW9uVHlwZSA9ICJEZW5pZWQiOwogICAgICB9
IGVsc2lmICggJGNoYWluID1+IC8uKmFjY2VwdC4qL2kgKSB7CiAgICAgICAg
ICAkYWN0aW9uVHlwZSA9ICJBY2NlcHRlZCI7CiAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICRhY3Rpb25UeXBlID0gIkxvZ2dlZCI7CiAgICAgIH0KCQogICAg
ICAjIGFkZCB0aGUgcGFja2V0CiAgICAgICRpcHR7JGFjdGlvblR5cGV9eyRp
bnRlcmZhY2V9eyRmcm9taG9zdH17JHRvaG9zdH17IlBvcnQ6IG5vbmUgXCgk
cHJvdG8sJGlmaW4sJGlmb3V0LCRjaGFpblwpIn0rKzsKICAgfSAKICAgCiAg
ICMgT1RIRVIKICAgICBlbHNlIHsKICAgICAgIyBYWFggRm9yIG5vdywgZ29p
bmcgdG8gaWdub3JlIGFsbCBvdGhlciBrZXJuZWwgbWVzc2FnZXMgYXMgdGhl
cmUKICAgICAgIyBYWFggYXJlIHByYWN0aWNhbGx5IGFuIGluZmluaXRlIG51
bWJlciBhbmQgbW9zdCBvZiB0aGVtIGFyZSBvYnZpb3VzbHkKICAgICAgIyBY
WFggbm90IHBhcnNlZCBoZXJlIGF0IHRoaXMgdGltZS4KICAgICAgJEtlcm5l
bHskVGhpc0xpbmV9Kys7ICAgICAKICAgfQp9CgogICBpZiAoICAgKGtleXMg
JVNZTmZsb29kKQogICAgICAgICBvciAoKCRNYXhOdW0gPiAkTWF4Rmxvb2Qp
IGFuZCAoa2V5cyAlVENQc2NhbikpCiAgICAgICAgIG9yIChrZXlzICVSZWpl
Y3RlZCkgb3IgKGtleXMgJURlbmllZCkgCgkgb3IgKCgkRGV0YWlsID49IDUp
IGFuZCAoa2V5cyAlS2VybmVsKSkgCgkgb3IgKGtleXMgJWlwdCkgCiAgICAg
ICkgewoKICAgICAgcHJpbnQgIlxuXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSBLZXJuZWwgQmVnaW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBcblxu
IjsKCiAgICAgICMgSVBDSEFJTlMKICAgICAgaWYgKGtleXMgJVNZTmZsb29k
KSB7CiAgICAgICAgIHByaW50ICJcbldhcm5pbmc6IFNZTiBmbG9vZCBvbjpc
biI7CiAgICAgICAgIGZvcmVhY2ggJFRoaXNPbmUgKHNvcnQgeyRhIGNtcCAk
Yn0ga2V5cyAlU1lOZmxvb2QpIHsKICAgICAgICAgICAgcHJpbnQgIiAgICIg
LiAkVGhpc09uZSAuICIgZnJvbTpcbiI7CiAgICAgICAgICAgIGZvcmVhY2gg
JE5leHQgKHNvcnQgeyRhIGNtcCAkYn0ga2V5cyAleyRTWU5mbG9vZHskVGhp
c09uZX19KSB7CiAgICAgICAgICAgICAgIHByaW50ICIgICAgICAiIC4gJE5l
eHQgLiAiOiAkU1lOZmxvb2R7JFRoaXNPbmV9eyROZXh0fSBUaW1lKHMpXG4i
OwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgfQogICAgICBpZiAo
a2V5cyAlVENQc2NhbiBhbmQgJE1heE51bT4kTWF4Rmxvb2QpIHsKICAgICAg
ICAgcHJpbnQgIlxuV2FybmluZzogaXBmd2FkbSBzY2FuIGRldGVjdGVkIG9u
OlxuIjsKICAgICAgICAgZm9yZWFjaCAkVGhpc09uZSAoc29ydCB7JGEgY21w
ICRifSBrZXlzICVUQ1BzY2FuKSB7CiAgICAgICAgICAgIHByaW50ICIgICAi
IC4gJFRoaXNPbmUgLiAiIGZyb206XG4iOwogICAgICAgICAgICBmb3JlYWNo
ICROZXh0IChzb3J0IHskYSBjbXAgJGJ9IGtleXMgJXskVENQc2NhbnskVGhp
c09uZX19KSB7CiAgICAgICAgICAgICAgICRUQ1BzY2FueyRUaGlzT25lfXsk
TmV4dH0+JE1heEZsb29kICYmCiAgICAgICAgICAgICAgICAgIHByaW50ICIg
ICAgICAiIC4gTG9va3VwSVAoJE5leHQpLiAiOiAkVENQc2NhbnskVGhpc09u
ZX17JE5leHR9IFRpbWUocylcbiI7CiAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgICB9CgogICAgICBpZiAoa2V5cyAlUmVqZWN0ZWQpIHsKICAgICAg
ICAgZm9yZWFjaCAkaG9zdCAoa2V5cyAlUmVqZWN0ZWQpIHsKICAgICAgICAg
ICAgcHJpbnQgIlxuUmVqZWN0ZWQgcGFja2V0cyBmcm9tICRob3N0LlxuIjsK
ICAgICAgICAgICAgZm9yZWFjaCAkVGhpc09uZSAoa2V5cyAleyRSZWplY3Rl
ZHskaG9zdH19KSB7CiAgICAgICAgICAgICAgIHByaW50ICIgIFBvcnQgJFRo
aXNPbmU6ICRSZWplY3RlZHskaG9zdH17JFRoaXNPbmV9IHBhY2tldChzKS5c
biI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcHJpbnQgIlRvdGFsIG9m
ICRSZWplY3RDb3VudHskaG9zdH0gcGFja2V0KHMpLlxuIjsKICAgICAgICAg
fQogICAgICB9CgogICAgICBpZiAoa2V5cyAlRGVuaWVkKSB7CiAgICAgICAg
IGZvcmVhY2ggJGhvc3QgKGtleXMgJURlbmllZCkgewogICAgICAgICAgICBw
cmludCAiXG5EZW5pZWQgcGFja2V0cyBmcm9tICRob3N0LlxuIjsKICAgICAg
ICAgICAgZm9yZWFjaCAkVGhpc09uZSAoa2V5cyAleyREZW5pZWR7JGhvc3R9
fSkgewogICAgICAgICAgICAgICBwcmludCAiICBQb3J0ICRUaGlzT25lOiAk
RGVuaWVkeyRob3N0fXskVGhpc09uZX0gcGFja2V0KHMpLlxuIjsKICAgICAg
ICAgICAgfQogICAgICAgICAgICBwcmludCAiVG90YWwgb2YgJERlbnlDb3Vu
dHskaG9zdH0gcGFja2V0KHMpLlxuIjsKICAgICAgICAgfQogICAgICB9Cgog
ICAgICBpZiAoa2V5cyAlQWNjZXB0ZWQpIHsKICAgICAgICAgZm9yZWFjaCAk
aG9zdCAoa2V5cyAlQWNjZXB0ZWQpIHsKICAgICAgICAgICAgcHJpbnQgIlxu
QWNjZXB0ZWQgcGFja2V0cyBmcm9tICRob3N0LlxuIjsKICAgICAgICAgICAg
Zm9yZWFjaCAkVGhpc09uZSAoa2V5cyAleyRBY2NlcHRlZHskaG9zdH19KSB7
CiAgICAgICAgICAgICAgIHByaW50ICIgIFBvcnQgJFRoaXNPbmU6ICRBY2Nl
cHRlZHskaG9zdH17JFRoaXNPbmV9IHBhY2tldChzKS5cbiI7CiAgICAgICAg
ICAgIH0KICAgICAgICAgICAgcHJpbnQgIlRvdGFsIG9mICRBY2NlcHRDb3Vu
dHskaG9zdH0gcGFja2V0KHMpLlxuIjsKICAgICAgICAgfQogICAgICB9CgoK
ICAgICAgIyBJUFRBQkxFUwogICAgICBpZiAoa2V5cyAlaXB0KSB7CgkgZm9y
ZWFjaCAkYWN0aW9uVHlwZSAoa2V5cyAlaXB0KSB7CgkgICAgcHJpbnQgIlxu
JGFjdGlvblR5cGUgcGFja2V0cyAiOwoJICAgIGZvcmVhY2ggJGludGVyZmFj
ZSAoa2V5cyAleyRpcHR7JGFjdGlvblR5cGV9fSkgewogICAgICAgICAgICAg
ICBwcmludCAib24gaW50ZXJmYWNlICRpbnRlcmZhY2U6XG4iOwoJICAgICAg
ICRpbnRlcmZhY2VDb3VudCA9IDA7CiAgICAgICAgICAgICAgIGZvcmVhY2gg
JGZyb21ob3N0IChrZXlzICV7JGlwdHskYWN0aW9uVHlwZX17JGludGVyZmFj
ZX19KSB7CgkgICAgICAgICAgJGZyb21Ib3N0Q291bnQgPSAwOwoJCSAgcHJp
bnQgIlxuICAgRnJvbSAkZnJvbWhvc3QuXG4iOwoJCSAgZm9yZWFjaCAkdG9o
b3N0IChrZXlzICV7JGlwdHskYWN0aW9uVHlwZX17JGludGVyZmFjZX17JGZy
b21ob3N0fX0pIHsKCQkgICAgICR0b0hvc3RDb3VudCA9IDA7CgkJICAgICBw
cmludCAiICAgICAgVG8gJHRvaG9zdC5cbiI7CgkJICAgICBmb3JlYWNoICRk
ZXRhaWxzIChrZXlzICV7JGlwdHskYWN0aW9uVHlwZX17JGludGVyZmFjZX17
JGZyb21ob3N0fXskdG9ob3N0fX0pIHsgCQkgCgkJICAgICAgICAkcGFja2V0
Q291bnQgPSAkaXB0eyRhY3Rpb25UeXBlfXskaW50ZXJmYWNlfXskZnJvbWhv
c3R9eyR0b2hvc3R9eyRkZXRhaWxzfTsKCQkJJHRvSG9zdENvdW50ICs9ICRw
YWNrZXRDb3VudDsKCQkgICAgICAgIHByaW50ICIgICAgICAgICAkZGV0YWls
cyAtICRwYWNrZXRDb3VudCBwYWNrZXQocykuXG4iOwoKICAgICAgICAgICAg
ICAgICAgICAgfQoJCSAgICAgJGZyb21Ib3N0Q291bnQgKz0gJHRvSG9zdENv
dW50OwoJCSAgICAgcHJpbnQgIiAgICAgIFRvdGFsIG9mICR0b0hvc3RDb3Vu
dCBwYWNrZXQocykuXG4iOwoJCSAgfQoJCSAgJGludGVyZmFjZUNvdW50ICs9
ICRmcm9tSG9zdENvdW50OwoJCSAgcHJpbnQgIiAgIFRvdGFsIG9mICRmcm9t
SG9zdENvdW50IHBhY2tldChzKS5cbiI7CgkgICAgICAgfQogICAgICAgICAg
ICAgICBwcmludCAiXG5Ub3RhbCBvZiAkaW50ZXJmYWNlQ291bnQgcGFja2V0
KHMpLlxuIjsgCiAgICAgICAgICAgIH0KCSB9CiAgICAgIH0KCiAgICAgICMg
T1RIRVIKICAgICAgaWYgKCAoJERldGFpbCA+PSA1KSBhbmQgKGtleXMgJUtl
cm5lbCkgKSB7CiAgICAgICAgIHByaW50ICJcbiI7CiAgICAgICAgIGZvcmVh
Y2ggJFRoaXNPbmUgKHNvcnQgeyRhIGNtcCAkYn0ga2V5cyAlS2VybmVsKSB7
CiAgICAgICAgICAgIHByaW50ICRLZXJuZWx7JFRoaXNPbmV9IC4gIiBUaW1l
KHMpOiAiIC4gJFRoaXNPbmUgLiAiXG4iOwogICAgICAgICB9CiAgICAgIH0K
CiAgICAgIHByaW50ICJcblxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gS2Vy
bmVsIEVuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFxuXG4iOwogICB9
CgoKZXhpdCgwKTsKCgo=

--0-893446420-1028732350=:64701--