From help-request at octave dot org Thu Jan 12 02:55:56 2006 Subject: [Fwd: Re: Patch for autoload fixes [Was: lookfor: Texinfo formatting filter exited abnormally]] From: David Bateman To: Help-Octave List Date: Thu, 12 Jan 2006 09:51:24 +0100 This is a multi-part message in MIME format. --------------060101090701000405000008 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit --------------060101090701000405000008 Content-Type: message/rfc822; name="Re: Patch for autoload fixes [Was: lookfor: Texinfo formatting filter exitedabnormally]" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="Re: Patch for autoload fixes [Was: lookfor: Texinfo formatting filter exitedabnormally]" Received: from il06exr01.mot.com ([129.188.137.131]) by zuk28exm03.ecid.cig.mot.com with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2657.72) id ZZ1K63XV; Wed, 11 Jan 2006 21:45:27 -0000 Received: from motgate.mot.com (motgate.mot.com [129.188.136.100]) by il06exr01.mot.com (8.13.5/8.13.0) with ESMTP id k0BLwM2m022629 for ; Wed, 11 Jan 2006 15:58:22 -0600 (CST) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C616F8.55927580" Received: from mail119.messagelabs.com (mail119.messagelabs.com [216.82.241.179]) by motgate.mot.com (Motorola/Motgate) with SMTP id k0BLjPF9014033 for ; Wed, 11 Jan 2006 14:45:25 -0700 (MST) Received: (qmail 8999 invoked from network); 11 Jan 2006 21:45:22 -0000 Received: from puce.fladenmuller.org (HELO pandorra.fladenmuller.org) (81.57.137.98) by server-9.tower-119.messagelabs.com with SMTP; 11 Jan 2006 21:45:22 -0000 Received: from [192.168.2.127] (helo=[192.168.2.127]) by pandorra.fladenmuller.org with esmtp (Exim 4.50) id 1Ewnn3-0001Us-Et for David dot Bateman at motorola dot com; Wed, 11 Jan 2006 22:45:57 +0100 Content-class: urn:content-classes:message in-reply-to: <43C511B8 dot 6080203 at motorola dot com> Organization: Motorola CRM X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0 x-spamreason: No, hits=0.0 required=7.0 tests= x-originating-ip: [81.57.137.98] x-starscan-version: 5.5.9.1; banners=-,-,- x-msg-ref: server-9.tower-119.messagelabs.com!1137015921!8855502!1 x-env-sender: David dot Bateman at motorola dot com x-viruschecked: Checked x-accept-language: en-us, en user-agent: Mozilla Thunderbird 0.8 (X11/20040923) x-enigmail-version: 0.86.1.0 x-enigmail-supports: pgp-inline, pgp-mime Subject: Re: Patch for autoload fixes [Was: lookfor: Texinfo formatting filter exited abnormally] Date: Wed, 11 Jan 2006 21:44:36 -0000 Message-ID: <43C57C44 dot 8030704 at motorola dot com> X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: Patch for autoload fixes [Was: lookfor: Texinfo formatting filter exited abnormally] Thread-Index: AcYW+FXp/rVBA607S8inaDCeZzL5vw== References: <43C511B8.6080203@motorola.com> From: "Bateman David-ADB014" To: "Bateman David-ADB014" Reply-To: "Bateman David-ADB014" This is a multi-part message in MIME format. ------_=_NextPart_001_01C616F8.55927580 Content-Type: multipart/alternative; boundary="----_=_NextPart_002_01C616F8.55927580" ------_=_NextPart_002_01C616F8.55927580 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable David Bateman wrote: > Keith, > > I'm not sure why texinfo is returning an error, but the fact that=20 > cumsum is not found is that lookfor at the moment only looks for the=20 > string in the first sentence or body of the help and not the function=20 > name. As I was last night looking at dealing with the simple_help,=20 > line completion and lookfor issues of autoloaded functions, I actually = > fixed the issue that cumsum isn't found with the attached patch. It=20 > doesn't address the > texinfo issue as I don't see it and don't understand why you got this=20 > issue. > > Regards > David > Ok, I also just noticed that help from oct-files weren't being properly=20 searched by lookfor. Here is an updated patched... Cheers David 2006-01-11 David Bateman * help.cc (make_name_list): Add autoload functions to list of = available completions. (simple_help): Add autoloaded functions to functions listed (first_help_sentence): Avoid issue with single line help string that is not terminated in \n. (Flookfor): Check for string match in the keyword/function, etc name. Also use look for string match in help of autoloaded functions. Load oct-files to be able to access their help string. * parse.y (string_vector autoloaded_functions (void)): New function to list all autloaded functions. (string_vector reverse_lookup_autoload (const std::string& nm)): Reverse lookup function to match file to autoloaded functions. * parse.h (autoloaded_functions, reverse_lookup_autoload): = Declaration. --=20 David Bateman David dot Bateman at motorola dot com Motorola Labs - Paris +33 1 69 35 48 04 (Ph)=20 Parc Les Algorithmes, Commune de St Aubin +33 1 69 35 77 01 (Fax)=20 91193 Gif-Sur-Yvette FRANCE The information contained in this communication has been classified as:=20 [x] General Business Information=20 [ ] Motorola Internal Use Only=20 [ ] Motorola Confidential Proprietary ------_=_NextPart_002_01C616F8.55927580 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Re: Patch for autoload fixes [Was: lookfor: Texinfo formatting = filter exited abnormally]

David Bateman wrote:

> Keith,
>
> I'm not sure why texinfo is returning an error, = but the fact that
> cumsum is not found is that lookfor at the = moment only looks for the
> string in the first sentence or body of the help = and not the function
> name. As I was last night looking at dealing = with the simple_help,
> line completion and lookfor issues of autoloaded = functions, I actually
> fixed the issue that cumsum isn't found with the = attached patch. It
> doesn't address the
> texinfo issue as I don't see it and don't = understand why you got this
> issue.
>
> Regards
> David
>
Ok, I also just noticed that help from oct-files = weren't being properly
searched by lookfor. Here is an updated = patched...

Cheers
David


2006-01-11  David Bateman  = <dbateman at free dot fr>

    * help.cc (make_name_list): Add = autoload functions to list of available
    completions.
    (simple_help): Add autoloaded = functions to functions listed
     (first_help_sentence): Avoid = issue with single line help string
    that is not terminated in = \n.
   (Flookfor): Check for string match in = the keyword/function, etc name.
    Also use look for string match in = help of autoloaded functions.
    Load oct-files to be able to = access their help string.
    * parse.y (string_vector = autoloaded_functions (void)): New function
    to list all autloaded = functions.
    (string_vector = reverse_lookup_autoload (const std::string& nm)):
    Reverse lookup function to match = file to autoloaded functions.
    * parse.h (autoloaded_functions, = reverse_lookup_autoload): Declaration.



--
David = Bateman           =             &= nbsp;        = David dot Bateman at motorola dot com
Motorola Labs - = Paris           &n= bsp;            = +33 1 69 35 48 04 (Ph)
Parc Les Algorithmes, Commune de St = Aubin    +33 1 69 35 77 01 (Fax)
91193 Gif-Sur-Yvette FRANCE

The information contained in this communication has = been classified as:

[x] General Business Information
[ ] Motorola Internal Use Only
[ ] Motorola Confidential Proprietary

------_=_NextPart_002_01C616F8.55927580-- ------_=_NextPart_001_01C616F8.55927580 Content-Type: text/plain; name="patch.autoload-20060111-1" Content-Transfer-Encoding: base64 Content-Description: patch.autoload-20060111-1 Content-Disposition: attachment; filename="patch.autoload-20060111-1" KioqIC4vc3JjL2hlbHAuY2Mub3JpZzMJMjAwNi0wMS0xMSAxMDozMzo0NC4wMDAwMDAwMDAgKzAx MDANCi0tLSAuL3NyYy9oZWxwLmNjCTIwMDYtMDEtMTEgMjI6MTI6NTYuODcyMDI2ODc1ICswMTAw DQoqKioqKioqKioqKioqKioNCioqKiA0MDcsNDEzICoqKioNCiAgICBzdHJpbmdfdmVjdG9yIGZm bCA9IG9jdGF2ZV9mY25fZmlsZV9uYW1lX2NhY2hlOjpsaXN0X25vX3N1ZmZpeCAoKTsNCiAgICBp bnQgZmZsX2xlbiA9IGZmbC5sZW5ndGggKCk7DQogIA0KISAgIGludCB0b3RhbF9sZW4gPSBrZXlf bGVuICsgZmJpX2xlbiArIGdsYl9sZW4gKyB0b3BfbGVuICsgbGNsX2xlbiArIGZmbF9sZW47DQog IA0KICAgIHN0cmluZ192ZWN0b3IgbGlzdCAodG90YWxfbGVuKTsNCiAgDQotLS0gNDA3LDQxNiAt LS0tDQogICAgc3RyaW5nX3ZlY3RvciBmZmwgPSBvY3RhdmVfZmNuX2ZpbGVfbmFtZV9jYWNoZTo6 bGlzdF9ub19zdWZmaXggKCk7DQogICAgaW50IGZmbF9sZW4gPSBmZmwubGVuZ3RoICgpOw0KICAN CiEgICBzdHJpbmdfdmVjdG9yIGFmbCA9IGF1dG9sb2FkZWRfZnVuY3Rpb25zICgpOw0KISAgIGlu dCBhZmxfbGVuID0gYWZsLmxlbmd0aCAoKTsNCiEgDQohICAgaW50IHRvdGFsX2xlbiA9IGtleV9s ZW4gKyBmYmlfbGVuICsgZ2xiX2xlbiArIHRvcF9sZW4gKyBsY2xfbGVuICsgZmZsX2xlbiArIGFm bF9sZW47DQogIA0KICAgIHN0cmluZ192ZWN0b3IgbGlzdCAodG90YWxfbGVuKTsNCiAgDQoqKioq KioqKioqKioqKioNCioqKiA0MzMsNDM4ICoqKioNCi0tLSA0MzYsNDQ0IC0tLS0NCiAgICBmb3Ig KGkgPSAwOyBpIDwgZmZsX2xlbjsgaSsrKQ0KICAgICAgbGlzdFtqKytdID0gZmZsW2ldOw0KICAN CisgICBmb3IgKGkgPSAwOyBpIDwgYWZsX2xlbjsgaSsrKQ0KKyAgICAgbGlzdFtqKytdID0gYWZs W2ldOw0KKyANCiAgICByZXR1cm4gbGlzdDsNCiAgfQ0KICANCioqKioqKioqKioqKioqKg0KKioq IDU0Miw1NDcgKioqKg0KLS0tIDU0OCw1NjQgLS0tLQ0KICAJICBuYW1lcy5saXN0X2luX2NvbHVt bnMgKG9jdGF2ZV9zdGRvdXQpOw0KICAJfQ0KICAgICAgfQ0KKyANCisgICBzdHJpbmdfdmVjdG9y IGF1dG9sb2FkZWQgPSBhdXRvbG9hZGVkX2Z1bmN0aW9ucyAoKTsNCisgDQorICAgaWYgKCEgYXV0 b2xvYWRlZC5lbXB0eSAoKSkNCisgICAgIHsNCisgICAgICAgb2N0YXZlX3N0ZG91dCA8PCAiXG4q KiogYXV0b2xvYWRlZCBmdW5jdGlvbnM6XG5cbiI7DQorIA0KKyAgICAgICBhdXRvbG9hZGVkLnFz b3J0ICgpOw0KKyANCisgICAgICAgYXV0b2xvYWRlZC5saXN0X2luX2NvbHVtbnMgKG9jdGF2ZV9z dGRvdXQpOw0KKyAgICAgfQ0KICB9DQogIA0KICBzdGF0aWMgaW50DQoqKioqKioqKioqKioqKioN CioqKiAxMTM4LDExNDUgKioqKg0KICAgIHNpemVfdCBwb3MgPSAwOw0KICANCiAgICBpZiAobG9v a3NfbGlrZV90ZXhpbmZvIChoLCBwb3MpKQ0KISAgICAgew0KISAgICAgICAvLyBHZXQgdGhlIHBh cnNlZCBoZWxwIHN0cmluZy4NCiAgICAgICAgcG9zID0gMDsNCiAgICAgICAgT1NTVFJFQU0gb3M7 DQogICAgICAgIGRpc3BsYXlfaGVscF90ZXh0IChvcywgaCk7DQotLS0gMTE1NSwxMTYyIC0tLS0N CiAgICBzaXplX3QgcG9zID0gMDsNCiAgDQogICAgaWYgKGxvb2tzX2xpa2VfdGV4aW5mbyAoaCwg cG9zKSkNCiEgICAgIHsgDQohICAgICAgLy8gR2V0IHRoZSBwYXJzZWQgaGVscCBzdHJpbmcuDQog ICAgICAgIHBvcyA9IDA7DQogICAgICAgIE9TU1RSRUFNIG9zOw0KICAgICAgICBkaXNwbGF5X2hl bHBfdGV4dCAob3MsIGgpOw0KKioqKioqKioqKioqKioqDQoqKiogMTIzMiwxMjM4ICoqKioNCiAg CSAgaWYgKGxvd2VyLmZpbmRfZmlyc3Rfb2YgKCctJykgPT0gMA0KICAJICAgICAgfHwgbG93ZXIu c3Vic3RyICgwLCA1KSA9PSAidXNhZ2UiKQ0KICAJICAgIHsNCiEgCSAgICAgIHBvcyA9IG5ld19w b3MgKyAxOw0KICAJICAgICAgY29udGludWU7DQogIAkgICAgfQ0KICANCi0tLSAxMjQ5LDEyNTUg LS0tLQ0KICAJICBpZiAobG93ZXIuZmluZF9maXJzdF9vZiAoJy0nKSA9PSAwDQogIAkgICAgICB8 fCBsb3dlci5zdWJzdHIgKDAsIDUpID09ICJ1c2FnZSIpDQogIAkgICAgew0KISAJICAgICAgcG9z ID0gKG5ld19wb3MgPT0gTlBPUyA/IE5QT1MgOiBuZXdfcG9zICsgMSk7DQogIAkgICAgICBjb250 aW51ZTsNCiAgCSAgICB9DQogIA0KKioqKioqKioqKioqKioqDQoqKiogMTI0NywxMjUzICoqKioN CiAgDQogIAkgIGlmIChsaW5lX3BvcyA9PSBOUE9TKQ0KICAJICAgIHsNCiEgCSAgICAgIHBvcyA9 IG5ld19wb3MgKyAxOw0KICAJICAgICAgY29udGludWU7DQogIAkgICAgfQ0KICANCi0tLSAxMjY0 LDEyNzAgLS0tLQ0KICANCiAgCSAgaWYgKGxpbmVfcG9zID09IE5QT1MpDQogIAkgICAgew0KISAJ ICAgICAgcG9zID0gKG5ld19wb3MgPT0gTlBPUyA/IE5QT1MgOiBuZXdfcG9zICsgMSk7DQogIAkg ICAgICBjb250aW51ZTsNCiAgCSAgICB9DQogIA0KKioqKioqKioqKioqKioqDQoqKiogMTI1Nywx MjYzICoqKioNCiAgCSAgDQogIAkgIGlmIChsaW5lX3BvcyA9PSBOUE9TKQ0KICAJICAgIHsNCiEg CSAgICAgIHBvcyA9IG5ld19wb3MgKyAxOw0KICAJICAgICAgY29udGludWU7DQogIAkgICAgfQ0K ICANCi0tLSAxMjc0LDEyODAgLS0tLQ0KICAJICANCiAgCSAgaWYgKGxpbmVfcG9zID09IE5QT1Mp DQogIAkgICAgew0KISAJICAgICAgcG9zID0gKG5ld19wb3MgPT0gTlBPUyA/IE5QT1MgOiBuZXdf cG9zICsgMSk7DQogIAkgICAgICBjb250aW51ZTsNCiAgCSAgICB9DQogIA0KKioqKioqKioqKioq KioqDQoqKiogMTI3MywxMjc5ICoqKioNCiAgDQogIAkgIGlmIChsaW5lX3BvcyA9PSBOUE9TKQ0K ICAJICAgIHsNCiEgCSAgICAgIHBvcyA9IG5ld19wb3MgKyAxOw0KICAJICAgICAgY29udGludWU7 DQogIAkgICAgfQ0KICANCi0tLSAxMjkwLDEyOTYgLS0tLQ0KICANCiAgCSAgaWYgKGxpbmVfcG9z ID09IE5QT1MpDQogIAkgICAgew0KISAJICAgICAgcG9zID0gKG5ld19wb3MgPT0gTlBPUyA/IE5Q T1MgOiBuZXdfcG9zICsgMSk7DQogIAkgICAgICBjb250aW51ZTsNCiAgCSAgICB9DQogIA0KKioq KioqKioqKioqKioqDQoqKiogMTMwNCwxMzEwICoqKioNCiAgDQogIAkgIGlmIChsaW5lX3BvcyA9 PSBOUE9TKQ0KICAJICAgIHsNCiEgCSAgICAgIHBvcyA9IG5ld19wb3MgKyAxOw0KICAJICAgICAg Y29udGludWU7DQogIAkgICAgfQ0KICANCi0tLSAxMzIxLDEzMjcgLS0tLQ0KICANCiAgCSAgaWYg KGxpbmVfcG9zID09IE5QT1MpDQogIAkgICAgew0KISAJICAgICAgcG9zID0gKG5ld19wb3MgPT0g TlBPUyA/IE5QT1MgOiBuZXdfcG9zICsgMSk7DQogIAkgICAgICBjb250aW51ZTsNCiAgCSAgICB9 DQogIA0KKioqKioqKioqKioqKioqDQoqKiogMTMxNSwxMzIxICoqKioNCiAgDQogIAkgIGlmIChs aW5lX3BvcyA9PSBOUE9TKQ0KICAJICAgIHsNCiEgCSAgICAgIHBvcyA9IG5ld19wb3MgKyAxOw0K ICAJICAgICAgY29udGludWU7DQogIAkgICAgfQ0KICANCi0tLSAxMzMyLDEzMzggLS0tLQ0KICAN CiAgCSAgaWYgKGxpbmVfcG9zID09IE5QT1MpDQogIAkgICAgew0KISAJICAgICAgcG9zID0gKG5l d19wb3MgPT0gTlBPUyA/IE5QT1MgOiBuZXdfcG9zICsgMSk7DQogIAkgICAgICBjb250aW51ZTsN CiAgCSAgICB9DQogIA0KKioqKioqKioqKioqKioqDQoqKiogMTMyOCwxMzM0ICoqKioNCiAgDQog IAkgIGlmIChsaW5lX3BvcyA9PSBOUE9TKQ0KICAJICAgIHsNCiEgCSAgICAgIHBvcyA9IG5ld19w b3MgKyAxOw0KICAJICAgICAgY29udGludWU7DQogIAkgICAgfQ0KICANCi0tLSAxMzQ1LDEzNTEg LS0tLQ0KICANCiAgCSAgaWYgKGxpbmVfcG9zID09IE5QT1MpDQogIAkgICAgew0KISAJICAgICAg cG9zID0gKG5ld19wb3MgPT0gTlBPUyA/IE5QT1MgOiBuZXdfcG9zICsgMSk7DQogIAkgICAgICBj b250aW51ZTsNCiAgCSAgICB9DQogIA0KKioqKioqKioqKioqKioqDQoqKiogMTM0NSwxMzUxICoq KioNCiAgDQogIAkgIGlmIChsaW5lX3BvcyA9PSBOUE9TKQ0KICAJICAgIHsNCiEgCSAgICAgIHBv cyA9IG5ld19wb3MgKyAxOw0KICAJICAgICAgY29udGludWU7DQogIAkgICAgfQ0KICANCi0tLSAx MzYyLDEzNjggLS0tLQ0KICANCiAgCSAgaWYgKGxpbmVfcG9zID09IE5QT1MpDQogIAkgICAgew0K ISAJICAgICAgcG9zID0gKG5ld19wb3MgPT0gTlBPUyA/IE5QT1MgOiBuZXdfcG9zICsgMSk7DQog IAkgICAgICBjb250aW51ZTsNCiAgCSAgICB9DQogIA0KKioqKioqKioqKioqKioqDQoqKiogMTM2 MSwxMzY3ICoqKioNCiAgDQogIAkgIGlmIChsaW5lX3BvcyA9PSBOUE9TKQ0KICAJICAgIHsNCiEg CSAgICAgIHBvcyA9IG5ld19wb3MgKyAxOw0KICAJICAgICAgY29udGludWU7DQogIAkgICAgfQ0K ICANCi0tLSAxMzc4LDEzODQgLS0tLQ0KICANCiAgCSAgaWYgKGxpbmVfcG9zID09IE5QT1MpDQog IAkgICAgew0KISAJICAgICAgcG9zID0gKG5ld19wb3MgPT0gTlBPUyA/IE5QT1MgOiBuZXdfcG9z ICsgMSk7DQogIAkgICAgICBjb250aW51ZTsNCiAgCSAgICB9DQogIA0KKioqKioqKioqKioqKioq DQoqKiogMTM4MCwxMzg2ICoqKioNCiAgDQogIAkgIGlmIChsaW5lX3BvcyA9PSBOUE9TKQ0KICAJ ICAgIHsNCiEgCSAgICAgIHBvcyA9IG5ld19wb3MgKyAxOw0KICAJICAgICAgY29udGludWU7DQog IAkgICAgfQ0KICANCi0tLSAxMzk3LDE0MDMgLS0tLQ0KICANCiAgCSAgaWYgKGxpbmVfcG9zID09 IE5QT1MpDQogIAkgICAgew0KISAJICAgICAgcG9zID0gKG5ld19wb3MgPT0gTlBPUyA/IE5QT1Mg OiBuZXdfcG9zICsgMSk7DQogIAkgICAgICBjb250aW51ZTsNCiAgCSAgICB9DQogIA0KKioqKioq KioqKioqKioqDQoqKiogMTM5MiwxMzk4ICoqKioNCiAgCSAgICAgIHx8IGxpbmUuZmluZF9maXJz dF9ub3Rfb2YgKCJcblx0ICIsIGxpbmVfcG9zKSA9PSBOUE9TDQogIAkgICAgICB8fCBsaW5lLnN1 YnN0ciAobGluZV9wb3MsIDIpID09ICIhLyIpDQogIAkgICAgew0KISAJICAgICAgcG9zID0gbmV3 X3BvcyArIDE7DQogIAkgICAgICBjb250aW51ZTsNCiAgCSAgICB9DQogIA0KLS0tIDE0MDksMTQx NSAtLS0tDQogIAkgICAgICB8fCBsaW5lLmZpbmRfZmlyc3Rfbm90X29mICgiXG5cdCAiLCBsaW5l X3BvcykgPT0gTlBPUw0KICAJICAgICAgfHwgbGluZS5zdWJzdHIgKGxpbmVfcG9zLCAyKSA9PSAi IS8iKQ0KICAJICAgIHsNCiEgCSAgICAgIHBvcyA9IChuZXdfcG9zID09IE5QT1MgPyBOUE9TIDog bmV3X3BvcyArIDEpOw0KICAJICAgICAgY29udGludWU7DQogIAkgICAgfQ0KICANCioqKioqKioq KioqKioqKg0KKioqIDE1NzEsMTU4NSAqKioqDQogIAkgIHN0ZDo6c3RyaW5nIG5hbWUgPSBwdHIt Pm5hbWU7DQogIAkgIHN0ZDo6c3RyaW5nIGggPSBwdHItPmhlbHA7DQogIA0KISAJICBzdGQ6OnN0 cmluZyBzOw0KISAJICBpZiAoZmlyc3Rfc2VudGVuY2Vfb25seSkNCiEgCSAgICBzID0gZmlyc3Rf aGVscF9zZW50ZW5jZSAoaCk7DQohIAkgIGVsc2UNCiEgCSAgICBzID0gaDsNCiEgCSAgICAgIA0K ISAJICB0cmFuc2Zvcm0gKHMuYmVnaW4gKCksIHMuZW5kICgpLCBzLmJlZ2luICgpLCB0b2xvd2Vy KTsNCiEgDQohIAkgIGlmIChzLmxlbmd0aCAoKSA+IDAgJiYgcy5maW5kICh0eHQpICE9IE5QT1Mp DQogIAkgICAgew0KICAJICAgICAgaWYgKG5hcmdvdXQpDQogIAkJew0KLS0tIDE1ODgsMTU5NCAt LS0tDQogIAkgIHN0ZDo6c3RyaW5nIG5hbWUgPSBwdHItPm5hbWU7DQogIAkgIHN0ZDo6c3RyaW5n IGggPSBwdHItPmhlbHA7DQogIA0KISAJICBpZiAobmFtZS5maW5kICh0eHQpICE9IE5QT1MpDQog IAkgICAgew0KICAJICAgICAgaWYgKG5hcmdvdXQpDQogIAkJew0KKioqKioqKioqKioqKioqDQoq KiogMTU4OSwxNTk0ICoqKioNCi0tLSAxNTk4LDE2MjUgLS0tLQ0KICAJICAgICAgZWxzZQ0KICAJ CXByaW50X2xvb2tmb3IgKG5hbWUsIGZpcnN0X2hlbHBfc2VudGVuY2UgKGgpKTsNCiAgCSAgICB9 DQorIAkgIGVsc2UNCisgCSAgICB7DQorIAkgICAgICBzdGQ6OnN0cmluZyBzOw0KKyANCisgCSAg ICAgIGlmIChmaXJzdF9zZW50ZW5jZV9vbmx5KQ0KKyAJCXMgPSBmaXJzdF9oZWxwX3NlbnRlbmNl IChoKTsNCisgCSAgICAgIGVsc2UNCisgCQlzID0gaDsNCisgCSAgICAgIA0KKyAJICAgICAgdHJh bnNmb3JtIChzLmJlZ2luICgpLCBzLmVuZCAoKSwgcy5iZWdpbiAoKSwgdG9sb3dlcik7DQorIA0K KyAJICAgICAgaWYgKHMubGVuZ3RoICgpID4gMCAmJiBzLmZpbmQgKHR4dCkgIT0gTlBPUykNCisg CQl7DQorIAkJICBpZiAobmFyZ291dCkNCisgCQkgICAgew0KKyAJCSAgICAgIHJldFswXS5hcHBl bmQgKG5hbWUpOw0KKyAJCSAgICAgIHJldFsxXS5hcHBlbmQgKGZpcnN0X2hlbHBfc2VudGVuY2Ug KGgpKTsNCisgCQkgICAgfQ0KKyAJCSAgZWxzZQ0KKyAJCSAgICBwcmludF9sb29rZm9yIChuYW1l LCBmaXJzdF9oZWxwX3NlbnRlbmNlIChoKSk7DQorIAkJfQ0KKyAJICAgIH0NCiAgDQogIAkgIE9D VEFWRV9RVUlUOw0KICANCioqKioqKioqKioqKioqKg0KKioqIDE2MDEsMTYxNSAqKioqDQogIAkg IHN0ZDo6c3RyaW5nIG5hbWUgPSBwdHItPm5hbWU7DQogIAkgIHN0ZDo6c3RyaW5nIGggPSBwdHIt PmhlbHA7DQogIA0KISAJICBzdGQ6OnN0cmluZyBzOw0KISAJICBpZiAoZmlyc3Rfc2VudGVuY2Vf b25seSkNCiEgCSAgICBzID0gZmlyc3RfaGVscF9zZW50ZW5jZSAoaCk7DQohIAkgIGVsc2UNCiEg CSAgICBzID0gaDsNCiEgCSAgICAgIA0KISAJICB0cmFuc2Zvcm0gKHMuYmVnaW4gKCksIHMuZW5k ICgpLCBzLmJlZ2luICgpLCB0b2xvd2VyKTsNCiEgDQohIAkgIGlmIChzLmxlbmd0aCAoKSA+IDAg JiYgcy5maW5kICh0eHQpICE9IE5QT1MpDQogIAkgICAgew0KICAJICAgICAgaWYgKG5hcmdvdXQp DQogIAkJew0KLS0tIDE2MzIsMTYzOCAtLS0tDQogIAkgIHN0ZDo6c3RyaW5nIG5hbWUgPSBwdHIt Pm5hbWU7DQogIAkgIHN0ZDo6c3RyaW5nIGggPSBwdHItPmhlbHA7DQogIA0KISAJICBpZiAobmFt ZS5maW5kICh0eHQpICE9IE5QT1MpDQogIAkgICAgew0KICAJICAgICAgaWYgKG5hcmdvdXQpDQog IAkJew0KKioqKioqKioqKioqKioqDQoqKiogMTYxOSwxNjI0ICoqKioNCi0tLSAxNjQyLDE2Njgg LS0tLQ0KICAJICAgICAgZWxzZQ0KICAJCXByaW50X2xvb2tmb3IgKG5hbWUsIGZpcnN0X2hlbHBf c2VudGVuY2UgKGgpKTsNCiAgCSAgICB9DQorIAkgIGVsc2UNCisgCSAgICB7DQorIAkgICAgICBz dGQ6OnN0cmluZyBzOw0KKyAJICAgICAgaWYgKGZpcnN0X3NlbnRlbmNlX29ubHkpDQorIAkJcyA9 IGZpcnN0X2hlbHBfc2VudGVuY2UgKGgpOw0KKyAJICAgICAgZWxzZQ0KKyAJCXMgPSBoOw0KKyAJ ICAgICAgDQorIAkgICAgICB0cmFuc2Zvcm0gKHMuYmVnaW4gKCksIHMuZW5kICgpLCBzLmJlZ2lu ICgpLCB0b2xvd2VyKTsNCisgDQorIAkgICAgICBpZiAocy5sZW5ndGggKCkgPiAwICYmIHMuZmlu ZCAodHh0KSAhPSBOUE9TKQ0KKyAJCXsNCisgCQkgIGlmIChuYXJnb3V0KQ0KKyAJCSAgICB7DQor IAkJICAgICAgcmV0WzBdLmFwcGVuZCAobmFtZSk7DQorIAkJICAgICAgcmV0WzFdLmFwcGVuZCAo Zmlyc3RfaGVscF9zZW50ZW5jZSAoaCkpOw0KKyAJCSAgICB9DQorIAkJICBlbHNlDQorIAkJICAg IHByaW50X2xvb2tmb3IgKG5hbWUsIGZpcnN0X2hlbHBfc2VudGVuY2UgKGgpKTsNCisgCQl9DQor IAkgICAgfQ0KICANCiAgCSAgT0NUQVZFX1FVSVQ7DQogIA0KKioqKioqKioqKioqKioqDQoqKiog MTYzOSwxNjUzICoqKioNCiAgCSAgaWYgKHNyICYmIHNyLT5pc19kZWZpbmVkICgpKQ0KICAJICAg IHsNCiAgCSAgICAgIHN0ZDo6c3RyaW5nIGggPSBzci0+aGVscCAoKTsNCi0gCSAgICAgIHN0ZDo6 c3RyaW5nIHM7DQotIAkgICAgICBpZiAoZmlyc3Rfc2VudGVuY2Vfb25seSkNCi0gCQlzID0gZmly c3RfaGVscF9zZW50ZW5jZSAoaCk7DQotIAkgICAgICBlbHNlDQotIAkJcyA9IGg7DQotIAkgICAg ICANCi0gCSAgICAgIHRyYW5zZm9ybSAocy5iZWdpbiAoKSwgcy5lbmQgKCksIHMuYmVnaW4gKCks IHRvbG93ZXIpOw0KICANCiEgCSAgICAgIGlmIChzLmxlbmd0aCAoKSA+IDAgJiYgcy5maW5kICh0 eHQpICE9IE5QT1MpDQogIAkJew0KICAJCSAgaWYgKG5hcmdvdXQpDQogIAkJICAgIHsNCi0tLSAx NjgzLDE2OTAgLS0tLQ0KICAJICBpZiAoc3IgJiYgc3ItPmlzX2RlZmluZWQgKCkpDQogIAkgICAg ew0KICAJICAgICAgc3RkOjpzdHJpbmcgaCA9IHNyLT5oZWxwICgpOw0KICANCiEgCSAgICAgIGlm IChuYW1lLmZpbmQgKHR4dCkgIT0gTlBPUykNCiAgCQl7DQogIAkJICBpZiAobmFyZ291dCkNCiAg CQkgICAgew0KKioqKioqKioqKioqKioqDQoqKiogMTY1NywxNjYyICoqKioNCi0tLSAxNjk0LDE3 MjEgLS0tLQ0KICAJCSAgZWxzZQ0KICAJCSAgICBwcmludF9sb29rZm9yIChuYW1lLCBmaXJzdF9o ZWxwX3NlbnRlbmNlIChoKSk7DQogIAkJfQ0KKyAJICAgICAgZWxzZQ0KKyAJCXsNCisgCQkgIHN0 ZDo6c3RyaW5nIHM7DQorIA0KKyAJCSAgaWYgKGZpcnN0X3NlbnRlbmNlX29ubHkpDQorIAkJICAg IHMgPSBmaXJzdF9oZWxwX3NlbnRlbmNlIChoKTsNCisgCQkgIGVsc2UNCisgCQkgICAgcyA9IGg7 DQorIAkgICAgICANCisgCQkgIHRyYW5zZm9ybSAocy5iZWdpbiAoKSwgcy5lbmQgKCksIHMuYmVn aW4gKCksIHRvbG93ZXIpOw0KKyANCisgCQkgIGlmIChzLmxlbmd0aCAoKSA+IDAgJiYgcy5maW5k ICh0eHQpICE9IE5QT1MpDQorIAkJICAgIHsNCisgCQkgICAgICBpZiAobmFyZ291dCkNCisgCQkJ ew0KKyAJCQkgIHJldFswXS5hcHBlbmQgKG5hbWUpOw0KKyAJCQkgIHJldFsxXS5hcHBlbmQgKGZp cnN0X2hlbHBfc2VudGVuY2UgKGgpKTsNCisgCQkJfQ0KKyAJCSAgICAgIGVsc2UNCisgCQkJcHJp bnRfbG9va2ZvciAobmFtZSwgZmlyc3RfaGVscF9zZW50ZW5jZSAoaCkpOw0KKyAJCSAgICB9DQor IAkJfQ0KICAJICAgIH0NCiAgCX0NCiAgDQoqKioqKioqKioqKioqKioNCioqKiAxNjk3LDE3MjAg KioqKg0KICAJCSAgICAgIHN0ZDo6c3RyaW5nIGZpbGVfbmFtZSA9IA0KICAJCQlWbG9hZF9wYXRo X2Rpcl9wYXRoLmZpbmRfZmlyc3Rfb2YgKHRtcCk7DQogIA0KLSANCiAgCQkgICAgICBpZiAoZmls ZV9uYW1lID09IGRpcnNbaV0gKyB0bXAoMCkNCiAgCQkJICB8fCBmaWxlX25hbWUgPT0gZGlyc1tp XSArIHRtcCgxKSkNCiAgCQkJew0KICAJCQkgIGJvb2wgc3ltYm9sX2ZvdW5kOw0KICANCiEgCQkJ ICBzdGQ6OnN0cmluZyBoDQohIAkJCSAgICA9IGdldF9oZWxwX2Zyb21fZmlsZSAoZmlsZV9uYW1l LCBzeW1ib2xfZm91bmQpOw0KICANCiEgCQkJICBzdGQ6OnN0cmluZyBzOw0KISAJCQkgIGlmIChm aXJzdF9zZW50ZW5jZV9vbmx5KQ0KISAJCQkgICAgcyA9IGZpcnN0X2hlbHBfc2VudGVuY2UgKGgp Ow0KICAJCQkgIGVsc2UNCiEgCQkJICAgIHMgPSBoOw0KICANCiEgCQkJICB0cmFuc2Zvcm0gKHMu YmVnaW4gKCksIHMuZW5kICgpLCBzLmJlZ2luICgpLCB0b2xvd2VyKTsNCiEgDQohIAkJCSAgaWYg KHMubGVuZ3RoICgpID4gMCAmJiBzLmZpbmQgKHR4dCkgIT0gTlBPUykNCiAgCQkJICAgIHsNCiAg CQkJICAgICAgaWYgKG5hcmdvdXQpDQogIAkJCQl7DQotLS0gMTc1NiwxNzc5IC0tLS0NCiAgCQkg ICAgICBzdGQ6OnN0cmluZyBmaWxlX25hbWUgPSANCiAgCQkJVmxvYWRfcGF0aF9kaXJfcGF0aC5m aW5kX2ZpcnN0X29mICh0bXApOw0KICANCiAgCQkgICAgICBpZiAoZmlsZV9uYW1lID09IGRpcnNb aV0gKyB0bXAoMCkNCiAgCQkJICB8fCBmaWxlX25hbWUgPT0gZGlyc1tpXSArIHRtcCgxKSkNCiAg CQkJew0KICAJCQkgIGJvb2wgc3ltYm9sX2ZvdW5kOw0KICANCiEgCQkJICBzdGQ6OnN0cmluZyBo Ow0KISAJCQkgIGlmIChmaWxlX25hbWUgPT0gZGlyc1tpXSArIHRtcCgwKSkNCiEgCQkJICAgIHsN CiEgCQkJICAgICAgLy8gb2N0LWZpbGUuIE11c3QgbG9hZCB0byBnZXQgaGVscA0KISAJCQkgICAg ICBzciA9IGxvb2t1cF9ieV9uYW1lIChuYW1lLCBmYWxzZSk7DQogIA0KISAJCQkgICAgICBpZiAo c3IgJiYgc3ItPmlzX2RlZmluZWQgKCkpDQohIAkJCQloID0gc3ItPmhlbHAgKCk7DQohIAkJCSAg ICB9DQogIAkJCSAgZWxzZQ0KISAJCQkgICAgaCA9IGdldF9oZWxwX2Zyb21fZmlsZSAoZmlsZV9u YW1lLCBzeW1ib2xfZm91bmQpOw0KICANCiEgCQkJICBpZiAobmFtZS5maW5kICh0eHQpICE9IE5Q T1MpDQogIAkJCSAgICB7DQogIAkJCSAgICAgIGlmIChuYXJnb3V0KQ0KICAJCQkJew0KKioqKioq KioqKioqKioqDQoqKiogMTcyNCwxNzM2ICoqKioNCiAgCQkJICAgICAgZWxzZQ0KICAJCQkJcHJp bnRfbG9va2ZvciAobmFtZSwgZmlyc3RfaGVscF9zZW50ZW5jZSAoaCkpOw0KICAJCQkgICAgfQ0K ICAJCQl9DQogIAkJICAgIH0NCiAgCQl9DQogIAkgICAgfQ0KICAJfQ0KICANCi0gDQogICAgICAg IGlmIChuYXJnb3V0ICE9IDApDQogIAl7DQogIAkgIHJldHZhbCAoMSkgPSByZXRbMV07DQotLS0g MTc4MywxODczIC0tLS0NCiAgCQkJICAgICAgZWxzZQ0KICAJCQkJcHJpbnRfbG9va2ZvciAobmFt ZSwgZmlyc3RfaGVscF9zZW50ZW5jZSAoaCkpOw0KICAJCQkgICAgfQ0KKyAJCQkgIGVsc2UNCisg CQkJICAgIHsNCisgCQkJICAgICAgc3RkOjpzdHJpbmcgczsNCisgCQkJICAgICAgaWYgKGZpcnN0 X3NlbnRlbmNlX29ubHkpDQorIAkJCQlzID0gZmlyc3RfaGVscF9zZW50ZW5jZSAoaCk7DQorIAkJ CSAgICAgIGVsc2UNCisgCQkJCXMgPSBoOw0KKyANCisgCQkJICAgICAgdHJhbnNmb3JtIChzLmJl Z2luICgpLCBzLmVuZCAoKSwgcy5iZWdpbiAoKSwgdG9sb3dlcik7DQorIA0KKyAJCQkgICAgICBp ZiAocy5sZW5ndGggKCkgPiAwICYmIHMuZmluZCAodHh0KSAhPSBOUE9TKQ0KKyAJCQkJew0KKyAJ CQkJICBpZiAobmFyZ291dCkNCisgCQkJCSAgICB7DQorIAkJCQkgICAgICByZXRbMF0uYXBwZW5k IChuYW1lKTsNCisgCQkJCSAgICAgIHJldFsxXS5hcHBlbmQgKGZpcnN0X2hlbHBfc2VudGVuY2Ug KGgpKTsNCisgCQkJCSAgICB9DQorIAkJCQkgIGVsc2UNCisgCQkJCSAgICBwcmludF9sb29rZm9y IChuYW1lLCBmaXJzdF9oZWxwX3NlbnRlbmNlIChoKSk7DQorIAkJCQl9DQorIAkJCSAgICB9DQor IAkJCX0NCisgCQkgICAgfQ0KKyANCisgCQkgIC8vIENoZWNrIGlmIHRoaXMgZnVuY3Rpb24gaGFz IGF1dG9sb2FkZWQgZnVuY3Rpb25zIGF0dGFjaGVkIHRvIGl0DQorIAkJICBzdGQ6OnN0cmluZyBm aWxlX25hbWUgPSBWbG9hZF9wYXRoX2Rpcl9wYXRoLmZpbmRfZmlyc3Rfb2YgKG5hbWVzKGopKTsN CisgCQkgIHN0cmluZ192ZWN0b3IgYXV0b2xvYWRfZmNucyA9IHJldmVyc2VfbG9va3VwX2F1dG9s b2FkIChmaWxlX25hbWUpOw0KKyANCisgCQkgIGlmICghIGF1dG9sb2FkX2ZjbnMuZW1wdHkgKCkp DQorIAkJICAgIHsNCisgCQkgICAgICBmb3IgKGludCBrID0gMDsgayA8IGF1dG9sb2FkX2ZjbnMu bGVuZ3RoICgpOyBrKyspDQorIAkJCXsNCisgCQkJICBzdGQ6OnN0cmluZyBhbmFtZSA9IGF1dG9s b2FkX2ZjbnMgKGspOw0KKyANCisgCQkJICAvLyBDaGVjayBpZiBhbHJlYWR5IGluIHN5bWJvbCB0 YWJsZQ0KKyAJCQkgIHNyID0gZmJpX3N5bV90YWItPmxvb2t1cCAoYW5hbWUpOw0KKyANCisgCQkJ ICBpZiAoIXNyKQ0KKyAJCQkgICAgew0KKyAJCQkgICAgICAvLyBNdXN0IGxvYWQgdG8gZ2V0IGhl bHANCisgCQkJICAgICAgc3IgPSBsb29rdXBfYnlfbmFtZSAobmFtZSwgZmFsc2UpOw0KKyANCisg CQkJICAgICAgc3RkOjpzdHJpbmcgaDsNCisgCQkJICAgICAgaWYgKHNyICYmIHNyLT5pc19kZWZp bmVkICgpKQ0KKyAJCQkJaCA9IHNyLT5oZWxwICgpOw0KKyANCisgCQkJICAgICAgaWYgKGFuYW1l LmZpbmQgKHR4dCkgIT0gTlBPUykNCisgCQkJCXsNCisgCQkJCSAgaWYgKG5hcmdvdXQpDQorIAkJ CQkgICAgew0KKyAJCQkJICAgICAgcmV0WzBdLmFwcGVuZCAoYW5hbWUpOw0KKyAJCQkJICAgICAg cmV0WzFdLmFwcGVuZCAoZmlyc3RfaGVscF9zZW50ZW5jZSAoaCkpOw0KKyAJCQkJICAgIH0NCisg CQkJCSAgZWxzZQ0KKyAJCQkJICAgIHByaW50X2xvb2tmb3IgKGFuYW1lLCBmaXJzdF9oZWxwX3Nl bnRlbmNlIChoKSk7DQorIAkJCQl9DQorIAkJCSAgICAgIGVsc2UNCisgCQkJCXsNCisgCQkJCSAg c3RkOjpzdHJpbmcgczsNCisgCQkJCSAgaWYgKGZpcnN0X3NlbnRlbmNlX29ubHkpDQorIAkJCQkg ICAgcyA9IGZpcnN0X2hlbHBfc2VudGVuY2UgKGgpOw0KKyAJCQkJICBlbHNlDQorIAkJCQkgICAg cyA9IGg7DQorIA0KKyAJCQkJICB0cmFuc2Zvcm0gKHMuYmVnaW4gKCksIHMuZW5kICgpLCBzLmJl Z2luICgpLCANCisgCQkJCQkgICAgIHRvbG93ZXIpOw0KKyANCisgCQkJCSAgaWYgKHMubGVuZ3Ro ICgpID4gMCAmJiBzLmZpbmQgKHR4dCkgIT0gTlBPUykNCisgCQkJCSAgICB7DQorIAkJCQkgICAg ICBpZiAobmFyZ291dCkNCisgCQkJCQl7DQorIAkJCQkJICByZXRbMF0uYXBwZW5kIChhbmFtZSk7 DQorIAkJCQkJICByZXRbMV0uYXBwZW5kIChmaXJzdF9oZWxwX3NlbnRlbmNlIChoKSk7DQorIAkJ CQkJfQ0KKyAJCQkJICAgICAgZWxzZQ0KKyAJCQkJCXByaW50X2xvb2tmb3IgKGFuYW1lLCBmaXJz dF9oZWxwX3NlbnRlbmNlIChoKSk7DQorIAkJCQkgICAgfQ0KKyAJCQkJfQ0KKyAJCQkgICAgfQ0K ICAJCQl9DQogIAkJICAgIH0NCiAgCQl9DQogIAkgICAgfQ0KICAJfQ0KICANCiAgICAgICAgaWYg KG5hcmdvdXQgIT0gMCkNCiAgCXsNCiAgCSAgcmV0dmFsICgxKSA9IHJldFsxXTsNCioqKiAuL3Ny Yy9wYXJzZS5oLm9yaWczCTIwMDYtMDEtMTEgMTA6MzU6MDUuMDAwMDAwMDAwICswMTAwDQotLS0g Li9zcmMvcGFyc2UuaAkyMDA2LTAxLTExIDExOjM3OjQ4LjAwMDAwMDAwMCArMDEwMA0KKioqKioq KioqKioqKioqDQoqKiogOTgsMTAzICoqKioNCi0tLSA5OCwxMDcgLS0tLQ0KICANCiAgZXh0ZXJu IHN0ZDo6c3RyaW5nIGxvb2t1cF9hdXRvbG9hZCAoY29uc3Qgc3RkOjpzdHJpbmcmIG5tKTsNCiAg DQorIGV4dGVybiBzdHJpbmdfdmVjdG9yIGF1dG9sb2FkZWRfZnVuY3Rpb25zICh2b2lkKTsNCisg DQorIGV4dGVybiBzdHJpbmdfdmVjdG9yIHJldmVyc2VfbG9va3VwX2F1dG9sb2FkIChjb25zdCBz dGQ6OnN0cmluZyYgbm0pOw0KKyANCiAgZXh0ZXJuIGJvb2wNCiAgbG9hZF9mY25fZnJvbV9maWxl IChjb25zdCBzdGQ6OnN0cmluZyYgbm0sIGJvb2wgZXhlY19zY3JpcHQpOw0KICANCioqKiAuL3Ny Yy9wYXJzZS55Lm9yaWczCTIwMDYtMDEtMTEgMTA6MzU6MTMuMDAwMDAwMDAwICswMTAwDQotLS0g Li9zcmMvcGFyc2UueQkyMDA2LTAxLTExIDE1OjM5OjUxLjAwMDAwMDAwMCArMDEwMA0KKioqKioq KioqKioqKioqDQoqKiogMzM3OSwzMzg0ICoqKioNCi0tLSAzMzc5LDM0MTIgLS0tLQ0KICAJCQkg ICAgICAgb2N0YXZlX2Vudjo6Z2V0Y3dkICgpKTsNCiAgfQ0KICANCisgc3RyaW5nX3ZlY3RvciAN CisgYXV0b2xvYWRlZF9mdW5jdGlvbnMgKHZvaWQpDQorIHsNCisgICBzdHJpbmdfdmVjdG9yIG5h bWVzIChhdXRvbG9hZF9tYXAuc2l6ZSgpKTsNCisgDQorICAgb2N0YXZlX2lkeF90eXBlIGkgPSAw Ow0KKyAgIHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz46OmNvbnN0X2l0ZXJhdG9y IHA7DQorICAgZm9yIChwID0gc3RkOjptYXA8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPjo6aXRl cmF0b3IgKGF1dG9sb2FkX21hcC5iZWdpbiAoKSk7IA0KKyAgICAgICAgcCAhPSBzdGQ6Om1hcDxz dGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+OjppdGVyYXRvciAoYXV0b2xvYWRfbWFwLmVuZCAoKSk7 IHArKykNCisgICAgIG5hbWVzW2krK10gPSBwLT5maXJzdDsNCisgDQorICAgcmV0dXJuIG5hbWVz Ow0KKyB9DQorIA0KKyBzdHJpbmdfdmVjdG9yDQorIHJldmVyc2VfbG9va3VwX2F1dG9sb2FkIChj b25zdCBzdGQ6OnN0cmluZyYgbm0pDQorIHsNCisgICBzdHJpbmdfdmVjdG9yIG5hbWVzOw0KKyAN CisgICBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBw Ow0KKyAgIGZvciAocCA9IHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz46Oml0ZXJh dG9yIChhdXRvbG9hZF9tYXAuYmVnaW4gKCkpOyANCisgICAgICAgIHAgIT0gc3RkOjptYXA8c3Rk OjpzdHJpbmcsIHN0ZDo6c3RyaW5nPjo6aXRlcmF0b3IgKGF1dG9sb2FkX21hcC5lbmQgKCkpOyBw KyspDQorICAgICBpZiAobm0gPT0gcC0+c2Vjb25kKQ0KKyAgICAgICBuYW1lcy5hcHBlbmQgKHAt PmZpcnN0KTsNCisgDQorICAgcmV0dXJuIG5hbWVzOw0KKyB9DQorIA0KICBib29sDQogIGxvYWRf ZmNuX2Zyb21fZmlsZSAoY29uc3Qgc3RkOjpzdHJpbmcmIG5tLCBib29sIGV4ZWNfc2NyaXB0KQ0K ICB7DQo= ------_=_NextPart_001_01C616F8.55927580-- --------------060101090701000405000008-- ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------