From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26803 invoked from network); 3 Jan 2002 06:52:28 -0000 Received: from sunsite.dk (130.225.247.90) by ns1.primenet.com.au with SMTP; 3 Jan 2002 06:52:28 -0000 Received: (qmail 16691 invoked by alias); 3 Jan 2002 06:52:24 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 16395 Received: (qmail 16680 invoked from network); 3 Jan 2002 06:52:23 -0000 Message-ID: <20020103065221.80134.qmail@web10405.mail.yahoo.com> Date: Wed, 2 Jan 2002 22:52:21 -0800 (PST) From: Felix Rosencrantz Subject: Zsh Completion function generation via XML To: zsh-workers MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-1809211197-1010040741=:79246" --0-1809211197-1010040741=:79246 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Forgot to attach the perl script. -FR __________________________________________________ Do You Yahoo!? Send your FREE holiday greetings online! http://greetings.yahoo.com --0-1809211197-1010040741=:79246 Content-Type: application/x-perl; name="help2simple.pl" Content-Transfer-Encoding: base64 Content-Description: help2simple.pl Content-Disposition: attachment; filename="help2simple.pl" IyEvdXNyL2Jpbi9wZXJsCiMgQ29weXJpZ2h0IChjKSAyMDAyIEZlbGl4IFJv c2VuY3JhbnR6CiMKIyBJbmZvcm1hdGlvbiBhYm91dCB0aGlzIHRvb2wgY2Fu IGJlIGZvdW5kIGF0OgojICAgICAgIGh0dHA6Ly93d3cuZ2VvY2l0aWVzLmNv bS9mX3Jvc2VuY3JhbnR6L3htbF9jb21wbGV0aW9uLmh0bQojCiMgVGhpcyBz Y3JpcHQgaXMgZGVzaWduZWQgdG8gdGFrZSBjb21tYW5kIGhlbHAgb3V0cHV0 IGFuZCBnZW5lcmF0ZSBhbiBYTUwKIyB2ZXJzaW9uIHRoYXQgY2FuIGJlIGNv bnZlcnRlZCB0byBjb21wbGV0aW9uIGZ1bmN0aW9uIGZvciB6c2guICBQb3Rl bnRpYWxseQojIG90aGVyIHVzZWZ1bCB0aGluZ3MgY291bGQgYmUgZ2VuZXJh dGVkIChlLmcuIGJhc2gsdGNzaCBjb21wbGV0aW9uIGNvZGUpLgoKI3VzZSB3 YXJuaW5nczsgICAgICAgICAgVXNlZCBmb3IgZGVidWdnaW5nCiNyZXF1aXJl IERhdGE6OkR1bXBlcjsgIFVzZWQgZm9yIGRlYnVnZ2luZwp1c2UgR2V0b3B0 OjpMb25nOyAKCiMjIERlZmluZSBjb21tYW5kIGxpbmUgb3B0aW9ucwpteSAk dXNhZ2UgPSAwLCRtdWx0aXBsZSA9IDAsICRjb21tYW5kID0gJycsICRzaW5n bGVfY2hhcl9mbGFncyA9IDA7Cm15ICR1bmlxdWVfYXJncyA9IDAsICRub19h cmdzPTAsICRweXggPSAwOwpteSAoQG1fYXJyYXksIEB4X2FycmF5LCBAcF9h cnJheSwgQGFyZ3MpOwpteSAlb3B0aW9ucyA9ICgKICAgICAgICAiYyIgPT4g XCRjb21tYW5kLAogICAgICAgICJtIiA9PiBcJG11bHRpcGxlLAogICAgICAg ICJ4IiA9PiBcQHhfYXJyYXksCiAgICAgICAgIk0iID0+IFxAbV9hcnJheSwK ICAgICAgICAidSIgPT4gXCR1c2FnZSwKICAgICAgICAicCIgPT4gXEBwX2Fy cmF5LAogICAgICAgICJTIiA9PiBcJHNpbmdsZV9jaGFyX2ZsYWdzLAogICAg ICAgICJuIiA9PiBcJHVuaXF1ZV9hcmdzLAogICAgICAgICJhIiA9PiBcQGFy Z3MsCiAgICAgICAgIkEiID0+IFwkbm9fYXJncywKICAgICAgICAicHl4IiA9 PiBcJHB5eCwKKTsKIApteSAkY21kbGluZSA9IGpvaW4oIiAiLEBBUkdWKTsK IyMgUGFyc2UgY29tbWFuZCBsaW5lIG9wdGlvbnMKR2V0b3B0OjpMb25nOjpD b25maWd1cmUoIm5vX2lnbm9yZV9jYXNlIik7CkdldE9wdGlvbnMoXCVvcHRp b25zLCAiY3xjb21tYW5kPXMiLCAidXx1c2FnZSIsICJtfG11bHRpcGxlKyIs Ik18bXVsdGlwbGUtZmxhZ3M9c0AiLCJ4fGV4Y2x1c2lvbi1zZXQ9c0AiLCJw fHByZWZpeC1mbGFncz1zQCIsIlN8c2luZ2xlLWNoYXItZmxhZ3MiLCJufHVu aXF1ZS1hcmdzIiwgImF8YXJncz1zQCIsICJweXgiKSAgfHwgICZ1c2FnZSgp OwomdXNhZ2UoKSBpZiAoJHVzYWdlKTsKCiMgQ3JlYXRlIGEgZnVuY3Rpb24g dGhhdCBwZXJmb3JtcyBmbGFnIHByZWZpeCBwYXJzaW5nLgomY3JlYXRlX2hh bmRsZV9wcmVmaXgoKTsKCgojR2VuZXJhdGUgaW5mb3JtYXRpb24gUFlYIGZv cm1hdCwgd2hpY2ggY2FuIGJlIGVhc2lseSBjb252ZXJ0ZWQgdG8gWE1MLgom b3Blbl9weXgoKTsKI0dlbmVyYXRlIHRoZSBoZWFkZXIKJnNlbmRfcHl4KCIo Y29tbWFuZFxuIik7CiZzZW5kX3B5eCgiQWNvbW1hbmQgJGNvbW1hbmRcbiIp Owomc2VuZF9weXgoIkFtdWx0aXBsZSB0cnVlXG4iKSBpZiAkbXVsdGlwbGU7 CiMgUmVhZCB0aGUgaGVscC91c2FnZSBpbmZvcm1hdGlvbgoKJG9yZGVyID0g MDsKd2hpbGUgKDw+KQp7CiAgICAjVGhlIGV4dHJhY3RfZmxhZyBzdWIgZXh0 cmFjdHMgaW5mb3JtYXRpb24gYWJvdXQgYSBmbGFnLgogICAgbXkgJGZsYWdf aGFzaCA9ICZleHRyYWN0X2ZsYWcoJF8pOwogICAgbXkgJGZsYWcgPSAkZmxh Z19oYXNoLT57ZmxhZ307CiAgICBteSAkZmxhZzIgPSAiIjsKICAgICMgU29t ZXRpbWVzIGEgZmxhZyBoYXMgYW4gYWxpYXMsIGZsYWcyCiAgICAkZmxhZzIg PSAkZmxhZ19oYXNoLT57ZmxhZzJ9IGlmIChkZWZpbmVkICRmbGFnX2hhc2gt PntmbGFnMn0pOwogICAgCiAgICBuZXh0IGlmICghZGVmaW5lZCAkZmxhZyB8 fCAkZmxhZyBlcSAiIik7CiAgICAjQWRkIHRoZSBmbGFnIChhbmQgaXQncyBh bGlhcykKICAgICZhZGRfZmxhZygkZmxhZywkZmxhZ19oYXNoKTsKICAgICZh ZGRfZmxhZygkZmxhZzIsJGZsYWdfaGFzaCkgaWYgKGRlZmluZWQgJGZsYWcy ICYmICRmbGFnMiBuZSAiIik7Cn0KICAgIAoKI1JlY29yZCBpZiBhIGZsYWcg Y2FuIGJlIHVzZWQgbW9yZSB0aGFuIG9uY2UuCiNFYWNoIGVsZW1lbnQgb2Yg bV9hcnJheSBpcyB0aGUgYXJndW1lbnQgdG8gLU0gZmxhZyBvbiB0aGUgY29t bWFuZCBsaW5lLgojIFNvIGVhY2ggZWxlbWVudCBpcyBhIGNvbW1hIHNlcGFy YXRlZCBsaXN0IG9mIGZsYWdzIHRoYXQgc2hvdWxkIGJlIG1hcmtlZAojIGFz IGJlaW5nIGFsbG93ZWQgbXVsdGlwbGUgdGltZXMuCmZvcmVhY2ggbXkgJGZs YWdzZXQgKEBtX2FycmF5KQp7CiAgICBteSBAcGFydHMgPSAoKTsKICAgIGlm ICgkZmxhZ3NldCA9fiBtIywjKQogICAgewogICAgICAgIEBwYXJ0cyA9IHNw bGl0KC8sLywkZmxhZ3NldCk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAg ICAgQHBhcnRzID0gKCRmbGFnc2V0KQogICAgfQogICAgZm9yZWFjaCAkZmxh ZyAoQHBhcnRzKQogICAgewogICAgICAgICRmbGFnc3skZmxhZ317bXVsdGlw bGV9ICA9IDEgaWYgZGVmaW5lZCAkZmxhZ3N7JGZsYWd9OwoKICAgIH0KfQoK I0hhbmRsZSBjb21tYW5kIGxpbmUgc3BlY2lmaWVkIGV4Y2x1c2lvbiBsaXN0 cy4KI0VhY2ggZWxlbWVudCBvZiB0aGUgeF9hcnJheSBpcyB0aGUgYXJndW1l bnQgdG8gdGhlIC14IGZsYWcgb24gdGhlIGNvbW1hbmQgbGluZS4KI1NvIGVh Y2ggZWxlbWVudCBpcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZsYWdz IHRoYXQgc2hvdWxkIGJlIG11dHVhbGx5CiNleGNsdXNpdmUuCmZvcmVhY2gg bXkgJGVfbGlzdCAoQHhfYXJyYXkpCnsKICAgIG15IEBwYXJ0cz0gc3BsaXQo LywvLCRlX2xpc3QpOwogICAgbXkgJWxpc3Q7CiAgICBmb3JlYWNoIG15ICRw IChAcGFydHMpCiAgICB7CiAgICAgICAgbmV4dCBpZiAkcCBlcSAiIjsgIyBH ZXQgcmlkZSBvZiBlbXB0eSBmbGFncyBjYXVzZWQgYnkgc3BsaXQgY29tbWFu ZC4KICAgICAgICAkbGlzdHskcH0gPSAxOwogICAgICAgICNJZiBhIGZsYWcg aGFzIGEgc2FtZWFzIGFsaWFzLCB0aGVuIHRoZSBhbGlhcyBpcyBhbHNvIGV4 Y2x1ZGVkLgogICAgICAgICRsaXN0eyRmbGFnc3skcH17Zn1bMF17c2FtZWFz fX0gPSAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoZGVmaW5lZCAkZmxhZ3N7JHB9e2Z9WzBde3NhbWVhc30KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm JiAkZmxhZ3N7JHB9e211bHRpcGxlfSAhPSAxKTsKICAgIH0KICAgIGZvcmVh Y2ggbXkgJGsgKGtleXMgJWxpc3QpCiAgICB7CiAgICAgICAgbXkgJGV4X3Nl dCA9ICIiOwogICAgICAgICRleF9zZXQ9JGZsYWdzeyRrfXtleGNsdXNpb25s aXN0fSBpZiBkZWZpbmVkICRmbGFnc3ska317ZXhjbHVzaW9ubGlzdH07CiAg ICAgICAgbXkgQHNldCA9IGdyZXAoISgvXiRrJC8gfHwgL14kLykgLGtleXMg JWxpc3QsJGV4X3NldCk7CiAgICAgICAgZm9yZWFjaCBteSAkZiAoQHNldCkK ICAgICAgICB7CiAgICAgICAgICAgICRmbGFnc3ska317ZXhjbHVzaW9ubGlz dH0gLj0gJGYgLiAiICI7CiAgICAgICAgfQogICAgfQp9CgojQXV0b21hdGlj YWxseSBHZW5lcmF0ZSBleGNsdXNpb24gbGlzdHMgZm9yIHNhbWVhcyBhbGlh c2VzLgojSWYgYSBmbGFnIGlzIGFsbG93ZWQgbXVsdGlwbGUgdGltZXMsIHRo ZW4gbm8gZXhjbHVzaW9uIGxpc3QgaXMgZ2VuZXJhdGVkLgpmb3JlYWNoIG15 ICRrIChrZXlzICVmbGFncykKewogICAgICAgIG5leHQgaWYgJG11bHRpcGxl OyAjQWxsIGZsYWdzIGFyZSBhbGxvd2VkIG11bHRpcGxlIHRpbWVzLiAoc2hv dWxkIGhvaXN0KQogICAgICAgIG5leHQgaWYgZGVmaW5lZCAkZmxhZ3N7JGt9 e2V4Y2x1c2lvbmxpc3R9OyAjQWxyZWFkeSBoYW5kbGVkIGFib3ZlLgogICAg ICAgIG5leHQgaWYgZGVmaW5lZCAkZmxhZ3N7JGt9e211bHRpcGxlfSAmJiAk ZmxhZ3N7JGt9e211bHRpcGxlfTsgCiAgICAgICAgaWYgKGRlZmluZWQgJGZs YWdzeyRrfXtmfVswXXtzYW1lYXN9KQogICAgICAgIHsKICAgICAgICAgICAg JGZsYWdzeyRrfXtleGNsdXNpb25saXN0fSAuPSAiJGZsYWdzeyRrfXtmfVsw XXtzYW1lYXN9IjsKICAgICAgICB9Cn0KCiNGaXggdXAgJWZsYWdzLgojICAg RmlndXJlIG91dCBpZiBhIGZsYWcgaXMgbGlzdGVkIG1vcmUgdGhhbiBvbmNl LCB3aGljaCB3ZSBhc3N1bWUgbWVhbnMKIyAgIGZpeGVkIHN0cmluZ3MuCiMg ICBGaWd1cmUgb3RoZXIgdGhpbmdzLgpmb3JlYWNoICRmbGFnIChrZXlzICVm bGFncykKewogICAgIyBXZSBoYXZlIGZpeGVkIHN0cmluZ3MuCiAgICBpZiAo JCN7JGZsYWdzeyRmbGFnfXtmfX0gPiAwKQogICAgewogICAgICAgIG15ICRw YXJ0cyA9ICR7ZmxhZ3N7JGZsYWd9e2Z9fTsKICAgICAgICAjcHJpbnQgRGF0 YTo6RHVtcGVyOjpEdW1wZXIoJHBhcnRzKSwiXG4iOyAjbGxsCiAgICAgICAg aWYgKCEgZGVmaW5lZCAkeyQkcGFydHNbMF19e3RhZ30pCiAgICAgICAgewog ICAgICAgICAgICAjIFdlIHNob3VsZCBoYXZlIGEgdGFnIHdpdGggbXVsdGlw bGUgbGluZXMuLi4KICAgICAgICAgICAgIyBwcmludCBTVERFUlIgIkZsYWcg KCRmbGFnKTogc2VlbXMgbm90IHRvIGhhdmUgYSB0YWcuLi5cbiI7CiAgICAg ICAgfQogICAgICAgIGZvcmVhY2ggbXkgJG9wdGlvbiAoQCRwYXJ0cykKICAg ICAgICB7CiAgICAgICAgICAgICRmbGFnc3skZmxhZ317Zml4ZWRzdHJpbmdz fSAuPSAiJCRvcHRpb257dGFnfTokJG9wdGlvbnt0YWdoZWxwfSAiOwogICAg ICAgIH0KICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICAjV2UgaGF2ZSBv bmx5IG9uZSBpbmZvcm1hdGlvbiAgdGFnIG9uIHRoaXMgZmxhZywgc2F2ZSB0 aGUgaW5mb3JtYXRpb24KICAgICAgICAjIGF0IHRoZSB0b3AgbGV2ZWwgb2Yg dGhlIGVudHJ5LiAgKFdlIHNob3VsZCBwcm9iYWJseSBkbyBzb21ldGhpbmcK ICAgICAgICAjIGxpa2UgdGhpcyBhYm92ZS4uLiBwb3NzaWJsZSBidWcpCiAg ICAgICAgbXkgJGluZm8gPSAkZmxhZ3N7JGZsYWd9e2Z9WzBdOwogICAgICAg IGZvcmVhY2ggJGtleSAoa2V5cyAlJGluZm8pCiAgICAgICAgewogICAgICAg ICAgICAkeyRmbGFnc3skZmxhZ319eyRrZXl9ID0gJCRpbmZveyRrZXl9Owog ICAgICAgIH0KICAgIH0KfQoKCmZvcmVhY2ggJGZsYWcgKHNvcnQgYnlfZmxh Z19vcmRlciBrZXlzICVmbGFncykKewoKICAgICZzZW5kX3B5eCgiKGZsYWdc biIpOwogICAgJnNlbmRfcHl4KCJBbmFtZSAkZmxhZ1xuIik7CiAgICAmc2Vu ZF9weXgoIkFhcmd0YWcgJGZsYWdzeyRmbGFnfXt0YWd9XG4iKSBpZiAoJGZs YWdzeyRmbGFnfXt0YWd9IG5lICIiKTsKICAgICZzZW5kX3B5eCgiQWZpeGVk c3RyaW5ncyAkZmxhZ3N7JGZsYWd9e2ZpeGVkc3RyaW5nc31cbiIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRlZmluZWQg JGZsYWdzeyRmbGFnfXtmaXhlZHN0cmluZ3N9CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJiYgJGZsYWdzeyRmbGFnfXtmaXhl ZHN0cmluZ3N9IG5lICIiKTsKICAgICZzZW5kX3B5eCgiQWV4Y2x1c2lvbmxp c3QgJGZsYWdzeyRmbGFnfXtleGNsdXNpb25saXN0fVxuIikKICAgICAgICAg ICAgICAgIGlmIChkZWZpbmVkICRmbGFnc3skZmxhZ317ZXhjbHVzaW9ubGlz dH0gCiAgICAgICAgICAgICAgICAgICAgJiYgJGZsYWdzeyRmbGFnfXtleGNs dXNpb25saXN0fSBuZSAiIik7CiAgICAmc2VuZF9weXgoIkFtdWx0aXBsZSB0 cnVlXG4iKSBpZiAoZGVmaW5lZCAkZmxhZ3N7JGZsYWd9e211bHRpcGxlfQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAkZmxh Z3N7JGZsYWd9e211bHRpcGxlfSBuZSAiIik7CiAgICAmc2VuZF9weXgoIkFz YW1lX3dvcmQgdHJ1ZVxuIikgaWYgKCRmbGFnc3skZmxhZ317c2FtZXdvcmR9 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICRm bGFnc3skZmxhZ317c2FtZXdvcmR9IG5lICIiKTsKICAgICZzZW5kX3B5eCgi QXRhZ2hlbHAgJGZsYWdzeyRmbGFnfXt0YWdoZWxwfVxuIikgaWYgZGVmaW5l ZCAkZmxhZ3N7JGZsYWd9e3RhZ2hlbHB9OwogICAgJnNlbmRfcHl4KCJBZmxh Z2hlbHAgJGZsYWdzeyRmbGFnfXtmbGFnaGVscH1cbiIpIGlmIGRlZmluZWQg JGZsYWdzeyRmbGFnfXtmbGFnaGVscH07CiAgICAmc2VuZF9weXgoIilmbGFn XG4iKTsKCn0KCiMgTm93IGhhbmRsZSBjb21tYW5kbGluZSBhcmd1bWVudHMu Li4KbXkgQGNtZF9hcmdzOwppZiAoISRub19hcmdzICYmICgkI2FyZ3MgPCAw KSkKewogICAgQGNtZF9hcmdzID0gKCJmaWxlcyIpOwp9CmVsc2lmICgkbm9f YXJncykKewogICAgQGNtZF9hcmdzPSgpOwp9CmVsc2UKewogICAgQGNtZF9h cmdzID0gKEBhcmdzKTsKfQoKZm9yKG15ICRpPTA7JGk8PSAkI2NtZF9hcmdz OyRpKyspCnsKICAgIG15ICRhcmc9JGNtZF9hcmdzWyRpXTsKICAgIG15ICRw b3M9JGkrMTsKICAgICRwb3MgPSAiYW55IiBpZiAoJGk9PSAkI2NtZF9hcmdz KTsKICAgICZzZW5kX3B5eCgiKGFyZ1xuIik7CiAgICAmc2VuZF9weXgoIkFw b3NpdGlvbiAkcG9zXG4iKTsKICAgICZzZW5kX3B5eCgiQWFyZ3RhZyAkYXJn XG4iKTsKICAgICZzZW5kX3B5eCgiKWFyZ1xuIik7CiAgICAKfQoKI1NhdmUg aW5mb3JtYXRpb24gYWJvdXQgaG93IHRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVk Lgomc2VuZF9weXgoIihnZW5lcmF0aW9uXG4iKTsKJnNlbmRfcHl4KCJBY29t bWFuZCBoZWxwMnNpbXBsZS5wbCAkY21kbGluZVxuIik7CiZzZW5kX3B5eCgi KWdlbmVyYXRpb25cbiIpOwomc2VuZF9weXgoIiljb21tYW5kXG4iKTsKCiNX ZSdyZSBkb25lLgomY2xvc2VfcHl4KCk7CgpleGl0IDA7CgojIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpzdWIgdXNhZ2UKewogICAgcHJp bnQgPDxFT0Y7ClVzYWdlOiBoZWxwMnNpbXBsZS5wbCAtYyBjb21tYW5kX25h bWUgLXUgLW0gLU0gZjEsZjIsLi4uIC14IGYxLGYyLC4uLiAtcCBmMSxmMiwu LiAtUyAtcHl4CiAgICAtYyBjb21tYW5kX25hbWUgICAgICAgIFRoZSBuYW1l IG9mIHRoZSBjb21tYW5kIHRoYXQgd2lsbCBiZSBjb21wbGV0ZWQKICAgIC11 ICAgICAgICAgICAgICAgICAgICAgVXNhZ2UgaW5mb3JtYXRpb24KICAgIC1t ICAgICAgICAgICAgICAgICAgICAgQWxsIGZsYWdzIHNob3VsZCBiZSBhbGxv d2VkIG1vcmUgdGhhbiBvbmNlCiAgICAtTSBmbGFnX2NvbW1hX2xpc3QgICAg IEZsYWdzIHRoYXQgc2hvdWxkIGJlIGFsbG93ZWQgbW9yZSB0aGFuIG9uY2UK ICAgIC14IGZsYWdfY29tbWFfbGlzdCAgICAgRXhjbHVzaW9uIGxpc3Qgb2Yg ZmxhZ3MKICAgIC1wIGZsYWdfcHJlZml4ICAgICAgICAgRmxhZyBwcmVmaXgs IHVzZWQgdG8gZGlzdGluZ3Vpc2ggcHJlZml4IGZsYWdzCiAgICAtUyAgICAg ICAgICAgICAgICAgICAgIEFsbCBzaW5nbGUgZGFzaCBmbGFncyBhcmUgc2lu Z2xlIGxldHRlciBmbGFncy4gCiAgICAtbiAgICAgICAgICAgICAgICAgICAg IEFkZCBmbGFnIG5hbWUgdG8gYXJnLCB0byBtYWtlIGFyZ25hbWVzIHVuaXF1 ZS4KICAgIC1hIGFyZ3RhZyAgICAgICAgICAgICAgTmFtZSBvZiBhcmd0YWcg dG8gdXNlIGZvciB0aGF0IHBvc2l0aW9uLgogICAgLXB5eCAgICAgICAgICAg ICAgICAgICBPdXRwdXQgaW4gcHl4IGZvcm1hdC4KRU9GCmV4aXQgMDsKfQoK CiMgVXNlZCB0byBzb3J0IHRoZSBrZXlzIG9mICVmbGFncyBieSB0aGUgJ29y ZGVyJyBrZXksIHdoaWNoIGlzIHRoZSBvcmRlcgojIHRoYXQgZmxhZ3Mgd2Vy ZSBmb3VuZC4Kc3ViIGJ5X2ZsYWdfb3JkZXIgCnsKICAgIHJldHVybiAkZmxh Z3N7JGF9e29yZGVyfSA8PT4gJGZsYWdzeyRifXtvcmRlcn07Cn0KCiMgb3Bl bl9weXgsIHNlbmRfcHl4LCBjbG9zZV9weXggZnVuY3Rpb25zIGFyZSB1c2Vk IHRvIGdlbmVyYXRlIFBZWCBvciBYTUwKIyBvdXRwdXQuIFRoaXMgc2NyaXB0 IGNhbGxzIHRoZXNlIGZ1bmN0aW9ucyB0byBoYW5kbGUgdGhlIGdlbmVyYXRp b24KIyBvZiB0aGUgZGF0YS4gIFRoZSBzY3JpcHQgaGFuZHMgUFlYIHRvIHNl bmRfcHl4LCB3aGljaCBlaXRoZXIgc3BpdHMgdGhhdAojIG91dCwgb3IgZ2Vu ZXJhdGVzIFhNTC4KCgpzdWIgb3Blbl9weXggewoKJUVuY29kZSA9ICgKCSc8 JyA9PiAnJmx0OycsCgknPicgPT4gJyZndDsnLAoJJyYnID0+ICcmYW1wOycs CgknIicgPT4gJyZxdW90OycsCik7CgokRW5jb2RlID0gam9pbignJywga2V5 cyglRW5jb2RlKSk7CgokVGFnX29wZW4gPSAwOwp9CgpzdWIgY2xvc2VfcHl4 CnsKICAgIHJldHVybiBpZiAoJHB5eCk7CiAgICBwcmludCAnPicgaWYgJFRh Z19vcGVuOwogICAgcmV0dXJuOwogICAgCn0KCnN1YiBzZW5kX3B5eAp7CiAg ICBteSAkc3RyaW5nID0gam9pbignJyxAXyk7CiAgICBpZiAoJHB5eCkKICAg IHsKICAgICAgICBwcmludCAkc3RyaW5nOwogICAgICAgIHJldHVybjsKICAg IH0gICAgCiAgICAkXyA9ICRzdHJpbmc7CgogICAgbXkgKCR0eXBlLCAkdmFs dWUpID0gbS9cQShbQSgpPy1dKSguKilcWi87CgogICAgaWYgKCR0eXBlIGVx ICdBJykgewoJbXkgKCRhdHQsICRhdHR2YWwpID0gbS9cQUEoW15cc10rKVxz KiguKilcWi87CglwcmludCAiICRhdHQ9XCIiICwgZW5jb2RlKCRhdHR2YWwp ICwgJyInOwoJcmV0dXJuOwogICAgfQoKICAgIGlmICgkVGFnX29wZW4pCiAg ICB7CiAgICAgICAgcHJpbnQgIi8iIGlmICgkdHlwZSBlcSAiKSIpOwogICAg ICAgIHByaW50ICI+XG4iOwogICAgICAgIHVuZGVmICRUYWdfb3BlbjsKICAg ICAgICByZXR1cm4gaWYgKCR0eXBlIGVxICIpIik7CiAgICB9CgogICAgaWYg KCR0eXBlIGVxICcoJykgewoJcHJpbnQgIjwkdmFsdWUiOwoJJFRhZ19vcGVu ID0gMTsKICAgIH0KICAgIGVsc2lmICgkdHlwZSBlcSAnKScpIHsKCXByaW50 ICI8LyR2YWx1ZT5cbiI7CiAgICB9CiAgICBlbHNpZiAoJHR5cGUgZXEgJy0n KSB7CgkkdmFsdWUgPX4gcy9cXG4vXG4vZzsKCXByaW50IGVuY29kZSgkdmFs dWUpOwogICAgfQogICAgZWxzaWYgKCR0eXBlIGVxICc/JykgewogICAgCXBy aW50ICI8PyIgLCBlbmNvZGUoJHZhbHVlKSAsICI/PlxuIjsKICAgIH0KCn0K CiNHZW5lcmF0ZSBFbnRpdGllcyBmb3Igc3BlY2lhbCBjaGFyYWN0ZXJzLgpz dWIgZW5jb2RlIHsKCW15ICR0ZXh0ID0gc2hpZnQ7CgkkdGV4dCA9fiBzLyhb JEVuY29kZV0pLyRFbmNvZGV7JDF9L2c7CglyZXR1cm4gJHRleHQ7Cn0KCiNF eHRyYWN0X2ZsYWcgaXMgcmVzcG9uc2libGUgZm9yIHBhcnNpbmcgYSBsaW5l IGZyb20gdGhlIGhlbHAsIGFuZAojZXh0cmFjdCBpbmZvcm1hdGlvbiBhYm91 dCBhIGZsYWcuCiMgSXQgcmV0dXJucyBhIHJlZmVyZW5jZSB0byBhIGhhc2gg dGhhdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmxhZy4Kc3Vi IGV4dHJhY3RfZmxhZwp7CiAgICBteSAkbGluZSA9ICRfWzBdOwogICAgbXkg JWluZm87CgogICAgJF8gPSAkbGluZTsKCiAgICBteSAoJGZsYWcsJGZsYWcy LCR0YWdoZWxwLCAkYXJndGFnLCAkYXJndGFnMiwgJHNhbWV3b3JkLCAkaGVs cHR5cGUpOwogICAgbXkgKCRlcXVhbHMsICRlcXVhbHMyLCAkZml4ZWRzdHJp bmdzKTsKICAgICRzYW1ld29yZCA9IDA7CiAgICAkZml4ZWRzdHJpbmdzID0g IiI7CgogICAgIyBUaGUgZXhwZWN0ZWQgaW5wdXQgbG9vayBzb21ldGhpbmcg bGlrZToKICAgICMgLWggbGluZXMgICAgICBTZXQgdGhlIHNpemUgb2YgdGhl IHNjcm9sbGJhY2sgaGlzdG9yeSBidWZmZXIuCiAgICAjIFRoZSBsaW5lIHN0 YXJ0cyB3aXRoIGEgZmxhZywgKCQxKQogICAgIyBUaGUgZmxhZyBpcyBmb2xs b3dlZCBieSBhbmQgb3B0aW9uYWwgYXJndW1lbnQgKCQyKQogICAgIyBUaGUg dHJhaWxpbmcgY29udGVudCBhZnRlciAyIG9yIG1vcmUgc3BhY2VzIGlzIHRo ZSBoZWxwLigkMykKICAgICMgVGhlIGZvbGxvd2luZyByZWdleCBwZXJmb3Jt cyB0aGlzIHBhcnNpbmcuCiAgICAkaGVscHR5cGUgPSAiZmxhZ2hlbHAiOwog ICAgaWYgKG0jXlxzKigtW15cc10rKVxzKygoW15cc10rKVxzKyk/KG9yfCwp XHMrKC1bXlxzXSspXHMoW15cc10rKT9ccysoLiopJCMpCiAgICB7CiAgICAg ICAgJGZsYWcgPSAkMTsKICAgICAgICAkZmxhZzIgPSAkNTsKICAgICAgICAk dGFnaGVscCA9ICQ3OwogICAgICAgICRhcmd0YWcgPSAkMzsKICAgICAgICAk YXJndGFnMiA9ICQ2OwogICAgfQogICAgZWxzaWYgIChtI15ccyooLVteXHNd KykoIFteXHNdKykqKFxzXHMrfFx0KSsoLiopJCMpCiAgICB7CiAgICAgICAg JGZsYWcgPSAkMTsKICAgICAgICAkZmxhZzIgPSAkYXJndGFnMiA9ICcnOwog ICAgICAgICRhcmd0YWcgPSAkMjsKICAgICAgICAkdGFnaGVscCA9ICQ0Owog ICAgfQogICAgZWxzZSB7IHJldHVybiBcJWluZm87IH0KCiAgICAjcHJpbnQg U1RERVJSICJmbGFnKCRmbGFnKSBhcmd0YWcoJGFyZ3RhZykgdGFnaGVscCgk dGFnaGVscCkgKCRfKVxuIjsgI2xsbAogICAgbXkgJGZsYWdwYXJ0cyA9ICZo YW5kbGVfcHJlZml4KCRmbGFnKTsKICAgIGlmIChAJGZsYWdwYXJ0cyA9PSAy KQogICAgewogICAgICAgICRmbGFnID0gJCRmbGFncGFydHNbMF07CiAgICAg ICAgJGFyZ3RhZyAgPSAkJGZsYWdwYXJ0c1sxXTsKICAgICAgICAkc2FtZXdv cmQgPSAxIGlmICgkYXJndGFnICF+IC9eICsvKTsKICAgIH0KICAgIAogICAg aWYgKCRzaW5nbGVfY2hhcl9mbGFncyAmJiAkZmxhZyA9fiAvXigtW14tXSko LispJC8pCiAgICB7CiAgICAgICAgJGZsYWcgPSAkMTsKICAgICAgICAkYXJn dGFnID0gJDI7CiAgICAgICAgJHNhbWV3b3JkID0gMTsKICAgICAgICAkaGVs cHR5cGUgPSAidGFnaGVscCI7CiAgICB9CiAgICBlbHNpZiAoICRmbGFnID1+ IC9eKC1bXj1dKik9KC4qKSQvKQogICAgewogICAgICAgICRmbGFnID0gJDE7 CiAgICAgICAgJGFyZ3RhZyA9ICQyOwogICAgICAgICRoZWxwdHlwZT0idGFn aGVscCI7CiAgICAgICAgJGVxdWFscz0xOwogICAgICAgIGlmICgkZmxhZzIg PX4gL14oLVtePV0qKT0oLiopJC8pCiAgICAgICAgewogICAgICAgICAgICAk ZmxhZzIgPSAkMTsKICAgICAgICAgICAgJGFyZ3RhZzIgPSAkMjsKICAgICAg ICAgICAgJGVxdWFsczIgPSAxOwogICAgICAgIH0KICAgIH0KCgogICAgJGFy Z3RhZyA9ICIiIGlmICghZGVmaW5lZCAkYXJndGFnKTsKICAgIGlmICgkYXJn dGFnID1+IC9cfC8pCiAgICB7CiAgICAgICAgJGFyZ3RhZyA9fiBzL15ccypb Wyh7PF0vLzsKICAgICAgICAkYXJndGFnID1+IHMvW10pfT5dXHMqJC8vOwog ICAgICAgIG15IEBmID0gc3BsaXQgKC9cfC8sJGFyZ3RhZyk7CiAgICAgICAg JGZpeGVkc3RyaW5ncyA9IGpvaW4oIiAiLEBmKTsKICAgICAgICAkYXJndGFn ID0gIiI7CiAgICB9CiAgICAKCiAgICBpZiAoJGFyZ3RhZyBuZSAiIikKICAg IHsKICAgICAgICAkaGVscHR5cGUgPSAidGFnaGVscCI7CiAgICAgICAgJGFy Z3RhZyAuPSAkZmxhZyBpZiAkdW5pcXVlX2FyZ3M7ICAjQWRkIGZsYWcgbmFt ZSB0byBhcmcgaWYgdW5pcXVlX2FyZ3MKICAgIH0KICAgICRpbmZve2ZsYWd9 ID0gJGZsYWc7CiAgICAkaW5mb3tmbGFnMn0gPSAkZmxhZzI7CiAgICAkaW5m b3skaGVscHR5cGV9ID0gJHRhZ2hlbHA7CiAgICAkaW5mb3t0YWd9PSAkYXJn dGFnOwogICAgJGluZm97dGFnMn0gPSAkYXJndGFnMjsKICAgICRpbmZve3Nh bWV3b3JkfSA9ICRzYW1ld29yZCBpZiAoJHNhbWV3b3JkKTsKICAgICRpbmZv e2VxdWFsc30gPSAkZXF1YWxzIGlmICgkZXF1YWxzKTsKICAgICRpbmZve2Vx dWFsczJ9ID0gJGVxdWFsczIgaWYgKCRlcXVhbHMyKTsKICAgICRpbmZve2Zp eGVkc3RyaW5nc30gPSAkZml4ZWRzdHJpbmdzIGlmICgkZml4ZWRzdHJpbmdz IG5lICIiKTsKICAgIHJldHVybihcJWluZm8pOwp9CiMgU3R1YiBmdW5jdGlv bi4gSXMgYmUgb3ZlcnJpZGVuIGJ5IGZ1bmN0aW9uIGdlbmVyYXRlZCB2aWEg Y3JlYXRlX2hhbmRsZV9wcmVmaXgKc3ViIGhhbmRsZV9wcmVmaXgge30KCiND cmVhdGVzIG5ldyBoYW5kbGVfcHJlZml4KCkuCiMgVGhlIGhhbmRsZV9wcmVm aXgoKSBpcyB1c2VkIHRvIHNlcGFyYXRlIGEgZmxhZyBmcm9tIGl0J3MgYXJn dW1lbnQuCiMgVGhpcyBpcyB1c2UgdG8gaGFuZGxlIHRoZSAiLXAiIGZsYWcu CnN1YiBjcmVhdGVfaGFuZGxlX3ByZWZpeAp7CiAgICBteSAlcHJlZml4Owog ICAgZm9yZWFjaCBteSAkZmxhZ19wcmVmaXggKEBwX2FycmF5KQogICAgewog ICAgICAgIG15IEBwYXJ0cz1zcGxpdCgvLC8sJGZsYWdfcHJlZml4KTsKICAg ICAgICBmb3JlYWNoIG15ICRwIChAcGFydHMpCiAgICAgICAgewogICAgICAg ICAgICAkcHJlZml4eyRwfSA9IDE7CiAgICAgICAgfQogICAgfQokZnVuYyA9 IDw8J0VPRic7CnN1YiBtYWluOjpoYW5kbGVfcHJlZml4IHsKICAgIG15ICgk ZmxhZywgJHN0cik7CiAgICAkXyA9ICRfWzBdOwpFT0YKICAgIGZvcmVhY2gg bXkgJGsgKHNvcnQga2V5cyAlcHJlZml4KQogICAgewogICAgICAgICRmdW5j IC49IDw8RU9GOwogICAgaWYgKG0vXiRrKC4qKVwkLykKICAgIHsKICAgICAg ICBcJGZsYWcgPSAiJGsiOwogICAgICAgIFwkc3RyID0gXCQxOwogICAgICAg IHJldHVybiBbXCRmbGFnLFwkc3RyXTsKICAgIH0KRU9GCiAgICB9CiAgICAk ZnVuYyAuPSA8PEVPRjsKICAgIHJldHVybiBbXTsKfQpFT0YKICAgIGV2YWwg JGZ1bmM7Cn0KCgojIFRoaXMgYWRkIGEgZmxhZ19oYXNoIGFzIHJldHVybmVk IGZyb20gJmV4dHJhY3RfZmxhZygpIGFuZCBhZGRzIGl0IHRvIHRoZQojIGds b2JhbCAlZmxhZ3MgaGFzaC4gIFNpbmNlIGEgZmxhZ19oYXNoIGNhbiBjb250 YWluIGluZm9ybWF0aW9uIGZvciBtdWx0aXBsZQojIGZsYWdzLCB0aGUgZmly c3QgYXJndW1lbnQgc2F5cyB3aGljaCBmbGFnIHRvIHVzZSAoImZsYWciIG9y ICJmbGFnMiIpLgpzdWIgYWRkX2ZsYWcKewogICAgbXkgKCRmbGFnLCAkaGFz aCkgPSBAXzsKICAgIG15ICVpbmZvOwoKICAgIGlmICgkJGhhc2h7ZmxhZ30g ZXEgJGZsYWcpCiAgICB7CiAgICAgICAgJGluZm97ZmxhZ30gPSAkJGhhc2h7 ZmxhZ307CiAgICAgICAgJGluZm97c2FtZWFzfSA9ICQkaGFzaHtmbGFnMn0g aWYoZGVmaW5lZCAkJGhhc2h7ZmxhZzJ9JiYgJCRoYXNoe2ZsYWcyfSk7CiAg ICAgICAgJGluZm97ZmxhZ2hlbHB9ID0gJCRoYXNoe2ZsYWdoZWxwfSBpZiAo ZGVmaW5lZCAkJGhhc2h7ZmxhZ2hlbHB9KTsKICAgICAgICAkaW5mb3t0YWdo ZWxwfSA9ICQkaGFzaHt0YWdoZWxwfSBpZiAoZGVmaW5lZCAkJGhhc2h7dGFn aGVscH0pOwogICAgICAgICR0YWcgPSAoZGVmaW5lZCAoJCRoYXNoe3RhZ30p KT8gInRhZyIgOiAidGFnMiI7CiAgICAgICAgJGluZm97dGFnfSA9ICQkaGFz aHskdGFnfSBpZiAoZGVmaW5lZCAkJGhhc2h7JHRhZ30pOwogICAgICAgICRp bmZve3NhbWV3b3JkfSA9ICQkaGFzaHtzYW1ld29yZH0gaWYgKCQkaGFzaHtz YW1ld29yZH0pOwogICAgICAgICRpbmZve2VxdWFsc30gPSAkJGhhc2h7ZXF1 YWxzfSBpZiAoJCRoYXNoe2VxdWFsc30pOwogICAgICAgICRpbmZve2ZpeGVk c3RyaW5nc309JCRoYXNoe2ZpeGVkc3RyaW5nc30KICAgICAgICAgICAgICAg IGlmIChkZWZpbmVkICQkaGFzaHtmaXhlZHN0cmluZ3N9ICYmICQkaGFzaHtm aXhlZHN0cmluZ3N9IG5lICIiKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAg ICAgICAkaW5mb3tmbGFnfSA9ICQkaGFzaHtmbGFnMn07CiAgICAgICAgJGlu Zm97c2FtZWFzfSA9ICQkaGFzaHtmbGFnfTsKICAgICAgICAkaW5mb3tmbGFn aGVscH0gPSAkJGhhc2h7ZmxhZ2hlbHB9IGlmIChkZWZpbmVkICQkaGFzaHtm bGFnaGVscH0pOwogICAgICAgICRpbmZve3RhZ2hlbHB9ID0gJCRoYXNoe3Rh Z2hlbHB9IGlmIChkZWZpbmVkICQkaGFzaHt0YWdoZWxwfSk7CiAgICAgICAg JHRhZyA9IChkZWZpbmVkICgkJGhhc2h7dGFnMn0pKT8gInRhZzIiIDogInRh ZyI7CiAgICAgICAgJGluZm97dGFnfSA9ICQkaGFzaHskdGFnfSBpZiAoZGVm aW5lZCAkJGhhc2h7JHRhZ30pOwogICAgICAgICRpbmZve3NhbWV3b3JkfSA9 ICQkaGFzaHtzYW1ld29yZH0gaWYgKCQkaGFzaHtzYW1ld29yZH0pOwogICAg ICAgICRpbmZve2VxdWFsc30gPSAkJGhhc2h7ZXF1YWxzMn0gaWYgKCQkaGFz aHtlcXVhbHMyfSk7CiAgICAgICAgJGluZm97Zml4ZWRzdHJpbmdzfT0kJGhh c2h7Zml4ZWRzdHJpbmdzfSBpZigkJGhhc2h7Zml4ZWRzdHJpbmdzfSBuZSAi Iik7CiAgICB9CgoKICAgIGlmIChkZWZpbmVkICRmbGFnc3skZmxhZ30pCiAg ICB7CiAgICAgICAgcHVzaChAeyRmbGFnc3skZmxhZ317Zn19LFwlaW5mbyk7 CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgJGZsYWdzeyRmbGFnfXtm fSA9IFtcJWluZm9dOwogICAgICAgICRmbGFnc3skZmxhZ317b3JkZXJ9ID0g JG9yZGVyKys7CiAgICB9Cn0K --0-1809211197-1010040741=:79246--