From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11409 invoked by alias); 12 Mar 2011 16:44:59 -0000 Received: (qmail 11389 invoked by uid 22791); 12 Mar 2011 16:44:57 -0000 X-SWARE-Spam-Status: No, hits=-1.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST X-Spam-Check-By: sourceware.org Received: from mail-qw0-f41.google.com (HELO mail-qw0-f41.google.com) (209.85.216.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 12 Mar 2011 16:44:52 +0000 Received: by qwa26 with SMTP id 26so568935qwa.0 for ; Sat, 12 Mar 2011 08:44:50 -0800 (PST) MIME-Version: 1.0 Received: by 10.229.130.93 with SMTP id r29mr8756492qcs.6.1299948290652; Sat, 12 Mar 2011 08:44:50 -0800 (PST) Received: by 10.229.89.197 with HTTP; Sat, 12 Mar 2011 08:44:50 -0800 (PST) In-Reply-To: <201103081941.p28Jf0Uq027041@greed.delorie.com> References: <83aah5h34g.fsf@gnu.org> <201103081941.p28Jf0Uq027041@greed.delorie.com> Date: Sun, 13 Mar 2011 01:09:00 -0000 Message-ID: Subject: Re: [patch libiberty include]: Add additional helper functions for directory-separator searching From: Kai Tietz To: DJ Delorie Cc: Eli Zaretskii , binutils@sourceware.org, gdb-patches@sourceware.org, gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary=00151758898c1741be049e4bcc07 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-03/txt/msg00696.txt.bz2 --00151758898c1741be049e4bcc07 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1230 2011/3/8 DJ Delorie : > >> I think we don't need filename_dirchr, only filename_dirrchr. > > I see no harm in having both, for completeness, though. =A0One could > argue they should be in separate files, but they're trivial functions > on non-dos-fs systems. > > What bothers me about this patch is that we're adding yet another set > of functions that don't discriminate between the host filesystem, the > target filesystem, and the build filesystem. > Ok, I got the point about having here implementations which can handle both cases. So I added an additional argument to those functions to specify for which file-system flavor is searched. I don't see right now much use for this difference, but well, it won't harm to have this ability too. 2011-03-12 Kai Tietz * filename.h (filename_dirchr_host): New macro. (filename_dirrchr_host): New macro. (filename_dirchr): New prototype. (filename_dirrchr): New prototype. 2011-03-12 Kai Tietz * filename_chr.c: New file. * Makefile.in (CFILES): Add filename_chr.c file. (REQUIRED_OFILES): Add filename_chr.o (filename_chr.o): New rule. * functions.texi: Regenerated. Tested for x86_64-w64-mingw32, and x86_64-pc-linux-gnu. Ok for apply? Regards, Kai --00151758898c1741be049e4bcc07 Content-Type: text/plain; charset=US-ASCII; name="libiberty_dirsep.txt" Content-Disposition: attachment; filename="libiberty_dirsep.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gl6rn03w0 Content-length: 10248 SW5kZXg6IGdjYy9pbmNsdWRlL2ZpbGVuYW1lcy5oCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGdjYy5vcmlnL2luY2x1ZGUvZmlsZW5hbWVzLmgJMjAx MS0wMy0xMiAxNzowMjowMy44MDIzNjQyMDAgKzAxMDAKKysrIGdjYy9pbmNs dWRlL2ZpbGVuYW1lcy5oCTIwMTEtMDMtMTIgMTc6MzE6NDguODg3MzM5ODAw ICswMTAwCkBAIC0zNywxMCArMzcsMTQgQEAgZXh0ZXJuICJDIiB7CiAjICBk ZWZpbmUgSEFTX0RSSVZFX1NQRUMoZikgSEFTX0RPU19EUklWRV9TUEVDIChm KQogIyAgZGVmaW5lIElTX0RJUl9TRVBBUkFUT1IoYykgSVNfRE9TX0RJUl9T RVBBUkFUT1IgKGMpCiAjICBkZWZpbmUgSVNfQUJTT0xVVEVfUEFUSChmKSBJ U19ET1NfQUJTT0xVVEVfUEFUSCAoZikKKyMgIGRlZmluZSBmaWxlbmFtZV9k aXJjaHJfaG9zdChQKSBmaWxlbmFtZV9kaXJjaHIgKDEsIChQKSkKKyMgIGRl ZmluZSBmaWxlbmFtZV9kaXJyY2hyX2hvc3QoUCkgZmlsZW5hbWVfZGlycmNo ciAoMSwgKFApKQogI2Vsc2UgLyogbm90IERPU2lzaCAqLwogIyAgZGVmaW5l IEhBU19EUklWRV9TUEVDKGYpICgwKQogIyAgZGVmaW5lIElTX0RJUl9TRVBB UkFUT1IoYykgSVNfVU5JWF9ESVJfU0VQQVJBVE9SIChjKQogIyAgZGVmaW5l IElTX0FCU09MVVRFX1BBVEgoZikgSVNfVU5JWF9BQlNPTFVURV9QQVRIIChm KQorIyAgZGVmaW5lIGZpbGVuYW1lX2RpcmNocl9ob3N0KFApIGZpbGVuYW1l X2RpcmNociAoMCwgKFApKQorIyAgZGVmaW5lIGZpbGVuYW1lX2RpcnJjaHJf aG9zdChQKSBmaWxlbmFtZV9kaXJyY2hyICgwLCAoUCkpCiAjZW5kaWYKIAog I2RlZmluZSBJU19ESVJfU0VQQVJBVE9SXzEoZG9zX2Jhc2VkLCBjKQkJCQlc CkBAIC03Niw2ICs4MCw5IEBAIGV4dGVybiBpbnQgZmlsZW5hbWVfY21wIChj b25zdCBjaGFyICpzMSwKIGV4dGVybiBpbnQgZmlsZW5hbWVfbmNtcCAoY29u c3QgY2hhciAqczEsIGNvbnN0IGNoYXIgKnMyLAogCQkJICBzaXplX3Qgbik7 CiAKK2V4dGVybiBjaGFyICpmaWxlbmFtZV9kaXJjaHIgKGludCBkb3NfYmFz ZWQsIGNvbnN0IGNoYXIgKnApOworZXh0ZXJuIGNoYXIgKmZpbGVuYW1lX2Rp cnJjaHIgKGludCBkb3NfYmFzZWQsIGNvbnN0IGNoYXIgKnApOworCiAjaWZk ZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpJbmRleDogZ2NjL2xpYmliZXJ0 eS9mdW5jdGlvbnMudGV4aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBn Y2Mub3JpZy9saWJpYmVydHkvZnVuY3Rpb25zLnRleGkJMjAxMS0wMy0xMiAx NzowMjowMy44MTczNjQyMDAgKzAxMDAKKysrIGdjYy9saWJpYmVydHkvZnVu Y3Rpb25zLnRleGkJMjAxMS0wMy0xMiAxNzozMzowMi43MzE1NjM1MDAgKzAx MDAKQEAgLTI5Niw2ICsyOTYsMzIgQEAgYW5kIGJhY2t3YXJkIHNsYXNoZXMg YXJlIGVxdWFsLgogCiBAZW5kIGRlZnR5cGVmbgogCitAYyBmaWxlbmFtZV9j aHIuYzozMgorQGRlZnR5cGVmbiBFeHRlbnNpb24gaW50IGZpbGVuYW1lX2Rp cmNociAoaW50IEB2YXJ7ZG9zX2Jhc2VkfSwgY29uc3QgY2hhciAqQHZhcntw fSkKKworVGhpcyBmdW5jdGlvbiBzZWFyY2hzIGZvciBmaXJzdCBvY2N1cmFu Y2Ugb2YgYSBkaXJlY3Rvcnktc2VwYXJhdG9yIGNoYXJhY3RlciBpbgordGhl IGZpbGVuYW1lIEB2YXJ7cH0gZnJvbSBsZWZ0IHRvIHJpZ2h0IGRpcmVjdGlv bi4KK0lmIGFyZ3VtZW50IEB2YXJ7ZG9zX2Jhc2VkfSBpcyBub3QgemVybywg aW4gYWRkaXRpb24gdG8gdGhlIFVOSVgtc3R5bGUgc2xhc2gKK2Fsc28gdGhl IERPUy1zdHlsZSBiYWNrc2xhc2ggaXMgc2VhcmNoZWQgYXMgZGlyZWN0b3J5 IHNlcGFyYXRvci4KK1RoaXMgZnVuY3Rpb24gZG9lcyBub3Qgbm9ybWFsaXpl IGZpbGUgbmFtZS4gIFRoZSByZXN1bHQgb2YgdGhpcyByb3V0aW5lIGlzCitA Y29kZXtOVUxMfSBwb2ludGVyLCBpZiBubyBtYXRjaCB3YXMgZm91bmQuIE90 aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBwb2ludGVyCit0byB0aGUgZm91bmQg bWF0Y2guCisKK0BlbmQgZGVmdHlwZWZuCisKK0BjIGZpbGVuYW1lX2Noci5j OjY1CitAZGVmdHlwZWZuIEV4dGVuc2lvbiBpbnQgZmlsZW5hbWVfZGlycmNo ciAoaW50IEB2YXJ7ZG9zX2Jhc2VkfSwgY29uc3QgY2hhciAqQHZhcntwfSkK KworVGhpcyBmdW5jdGlvbiBzZWFyY2hzIGZvciBmaXJzdCBvY2N1cmFuY2Ug b2YgYSBkaXJlY3Rvcnktc2VwYXJhdG9yIGNoYXJhY3RlciBpbgordGhlIGZp bGVuYW1lIEB2YXJ7cH0gZnJvbSByaWdodCB0byBsZWZ0IGRpcmVjdGlvbi4K K0lmIGFyZ3VtZW50IEB2YXJ7ZG9zX2Jhc2VkfSBpcyBub3QgemVybywgaW4g YWRkaXRpb24gdG8gdGhlIFVOSVgtc3R5bGUgc2xhc2gKK2Fsc28gdGhlIERP Uy1zdHlsZSBiYWNrc2xhc2ggaXMgdHJlYXRlZCBhcyBkaXJlY3Rvcnkgc2Vw YXJhdG9yLgorVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBub3JtYWxpemUgZmls ZSBuYW1lLiAgVGhlIHJlc3VsdCBvZiB0aGlzIHJvdXRpbmUgaXMKK0Bjb2Rl e05VTEx9IHBvaW50ZXIsIGlmIG5vIG1hdGNoIHdhcyBmb3VuZC4gT3RoZXJ3 aXNlIGl0IHJldHVybnMgdGhlIHBvaW50ZXIKK3RvIHRoZSBmb3VuZCBtYXRj aC4KKworQGVuZCBkZWZ0eXBlZm4KKwogQGMgZmlsZW5hbWVfY21wLmM6ODEK IEBkZWZ0eXBlZm4gRXh0ZW5zaW9uIGludCBmaWxlbmFtZV9uY21wIChjb25z dCBjaGFyICpAdmFye3MxfSwgY29uc3QgY2hhciAqQHZhcntzMn0sIHNpemVf dCBAdmFye259KQogCkluZGV4OiBnY2MvbGliaWJlcnR5L01ha2VmaWxlLmlu Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy5vcmlnL2xpYmliZXJ0 eS9NYWtlZmlsZS5pbgkyMDExLTAzLTEyIDE3OjAyOjAzLjgyOTM2NDIwMCAr MDEwMAorKysgZ2NjL2xpYmliZXJ0eS9NYWtlZmlsZS5pbgkyMDExLTAzLTEy IDE3OjA2OjQ5LjUxOTU4MDkwMCArMDEwMApAQCAtMTI3LDggKzEyNyw4IEBA IENGSUxFUyA9IGFsbG9jYS5jIGFyZ3YuYyBhc3ByaW50Zi5jIGF0ZXgKIAlj YWxsb2MuYyBjaG9vc2UtdGVtcC5jIGNsb2NrLmMgY29uY2F0LmMgY3AtZGVt YW5nbGUuYwkJXAogCSBjcC1kZW1pbnQuYyBjcGx1cy1kZW0uYyBjcmMzMi5j CQkJCVwKIAlkeW4tc3RyaW5nLmMJCQkJCQkJXAotCWZkbWF0Y2guYyBmZnMu YyBmaWJoZWFwLmMgZmlsZW5hbWVfY21wLmMgZmxvYXRmb3JtYXQuYwkJXAot CWZubWF0Y2guYyBmb3Blbl91bmxvY2tlZC5jCQkJCQlcCisJZmRtYXRjaC5j IGZmcy5jIGZpYmhlYXAuYyBmaWxlbmFtZV9jaHIuYyBmaWxlbmFtZV9jbXAu YwkJXAorCWZsb2F0Zm9ybWF0LmMgZm5tYXRjaC5jIGZvcGVuX3VubG9ja2Vk LmMJCQlcCiAJZ2V0Y3dkLmMgZ2V0b3B0LmMgZ2V0b3B0MS5jIGdldHBhZ2Vz aXplLmMgZ2V0cHdkLmMgZ2V0cnVudGltZS5jCVwKICAgICAgICAgIGdldHRp bWVvZmRheS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKIAloYXNodGFiLmMgaGV4LmMJCQkJCQkJXApAQCAt MTY4LDcgKzE2OCw4IEBAIFJFUVVJUkVEX09GSUxFUyA9CQkJCQkJCVwKIAku L2Nob29zZS10ZW1wLiQob2JqZXh0KSAuL2NvbmNhdC4kKG9iamV4dCkJCQlc CiAJLi9jcC1kZW1pbnQuJChvYmpleHQpIC4vY3JjMzIuJChvYmpleHQpIC4v ZHluLXN0cmluZy4kKG9iamV4dCkJXAogCS4vZmRtYXRjaC4kKG9iamV4dCkg Li9maWJoZWFwLiQob2JqZXh0KQkJCQlcCi0JLi9maWxlbmFtZV9jbXAuJChv YmpleHQpIC4vZmxvYXRmb3JtYXQuJChvYmpleHQpCQlcCisJLi9maWxlbmFt ZV9jaHIuJChvYmpleHQpIC4vZmlsZW5hbWVfY21wLiQob2JqZXh0KQkJXAor CS4vZmxvYXRmb3JtYXQuJChvYmpleHQpCQkJCQkJXAogCS4vZm5tYXRjaC4k KG9iamV4dCkgLi9mb3Blbl91bmxvY2tlZC4kKG9iamV4dCkJCQlcCiAJLi9n ZXRvcHQuJChvYmpleHQpIC4vZ2V0b3B0MS4kKG9iamV4dCkgLi9nZXRwd2Qu JChvYmpleHQpCVwKIAkuL2dldHJ1bnRpbWUuJChvYmpleHQpIC4vaGFzaHRh Yi4kKG9iamV4dCkgLi9oZXguJChvYmpleHQpCVwKQEAgLTY0Niw2ICs2NDcs MTMgQEAgJChDT05GSUdVUkVEX09GSUxFUyk6IHN0YW1wLXBpY2RpcgogCWVs c2UgdHJ1ZTsgZmkKIAkkKENPTVBJTEUuYykgJChzcmNkaXIpL2ZpYmhlYXAu YyAkKE9VVFBVVF9PUFRJT04pCiAKKy4vZmlsZW5hbWVfY2hyLiQob2JqZXh0 KTogJChzcmNkaXIpL2ZpbGVuYW1lX2Noci5jIGNvbmZpZy5oICQoSU5DRElS KS9maWxlbmFtZXMuaCBcCisJJChJTkNESVIpL3NhZmUtY3R5cGUuaAorCWlm IFsgeCIkKFBJQ0ZMQUcpIiAhPSB4IF07IHRoZW4gXAorCSAgJChDT01QSUxF LmMpICQoUElDRkxBRykgJChzcmNkaXIpL2ZpbGVuYW1lX2Noci5jIC1vIHBp Yy8kQDsgXAorCWVsc2UgdHJ1ZTsgZmkKKwkkKENPTVBJTEUuYykgJChzcmNk aXIpL2ZpbGVuYW1lX2Noci5jICQoT1VUUFVUX09QVElPTikKKwogLi9maWxl bmFtZV9jbXAuJChvYmpleHQpOiAkKHNyY2RpcikvZmlsZW5hbWVfY21wLmMg Y29uZmlnLmggJChJTkNESVIpL2ZpbGVuYW1lcy5oIFwKIAkkKElOQ0RJUikv c2FmZS1jdHlwZS5oCiAJaWYgWyB4IiQoUElDRkxBRykiICE9IHggXTsgdGhl biBcCkluZGV4OiBnY2MvbGliaWJlcnR5L2ZpbGVuYW1lX2Noci5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysgZ2NjL2xpYmliZXJ0eS9maWxl bmFtZV9jaHIuYwkyMDExLTAzLTEyIDE3OjMxOjExLjY0MDIwOTQwMCArMDEw MApAQCAtMCwwICsxLDk2IEBACisvKiBGaWxlIG5hbWUgY2hhcmFjdGVyIHNl YXJjaGluZyByb3V0aW5lcy4KKworICAgQ29weXJpZ2h0IChDKSAyMDExIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAg IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDIsIG9yIChhdCB5b3VyIG9wdGlvbikKKyAgIGFueSBsYXRlciB2ZXJzaW9u LgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5v dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyAg IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCAtIEZpZnRoIEZsb29yLCBCb3N0 b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4gICovCisKKyNpZmRlZiBIQVZFX0NP TkZJR19ICisjaW5jbHVkZSAiY29uZmlnLmgiCisjZW5kaWYKKworI2lmZGVm IEhBVkVfU1RSSU5HX0gKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNlbmRpZgor CisjaW5jbHVkZSAiZmlsZW5hbWVzLmgiCisjaW5jbHVkZSAic2FmZS1jdHlw ZS5oIgorCisvKgorCitAZGVmdHlwZWZuIEV4dGVuc2lvbiBpbnQgZmlsZW5h bWVfZGlyY2hyIChpbnQgQHZhcntkb3NfYmFzZWR9LCBjb25zdCBjaGFyICpA dmFye3B9KQorCitUaGlzIGZ1bmN0aW9uIHNlYXJjaHMgZm9yIGZpcnN0IG9j Y3VyYW5jZSBvZiBhIGRpcmVjdG9yeS1zZXBhcmF0b3IgY2hhcmFjdGVyIGlu Cit0aGUgZmlsZW5hbWUgQHZhcntwfSBmcm9tIGxlZnQgdG8gcmlnaHQgZGly ZWN0aW9uLgorSWYgYXJndW1lbnQgQHZhcntkb3NfYmFzZWR9IGlzIG5vdCB6 ZXJvLCBpbiBhZGRpdGlvbiB0byB0aGUgVU5JWC1zdHlsZSBzbGFzaAorYWxz byB0aGUgRE9TLXN0eWxlIGJhY2tzbGFzaCBpcyBzZWFyY2hlZCBhcyBkaXJl Y3Rvcnkgc2VwYXJhdG9yLgorVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBub3Jt YWxpemUgZmlsZSBuYW1lLiAgVGhlIHJlc3VsdCBvZiB0aGlzIHJvdXRpbmUg aXMKK0Bjb2Rle05VTEx9IHBvaW50ZXIsIGlmIG5vIG1hdGNoIHdhcyBmb3Vu ZC4gT3RoZXJ3aXNlIGl0IHJldHVybnMgdGhlIHBvaW50ZXIKK3RvIHRoZSBm b3VuZCBtYXRjaC4KKworQGVuZCBkZWZ0eXBlZm4KKworKi8KKworY2hhciAq CitmaWxlbmFtZV9kaXJjaHIgKGludCBkb3NfYmFzZWQsIGNvbnN0IGNoYXIg KnApCit7CisgIGNoYXIgKnI7CisKKyAgaWYgKCFwKQorICAgIHJldHVybiBO VUxMOworICByID0gc3RyY2hyIChwLCAnLycpOworICBpZiAoZG9zX2Jhc2Vk KQorICAgIHsKKyAgICAgIGNoYXIgKnIyID0gc3RyY2hyIChwLCAnXFwnKTsK KyAgICAgIGlmICghciB8fCAocjIgJiYgcjIgPCByKSkKKwlyID0gcjI7Cisg ICAgfQorICByZXR1cm4gcjsKK30KKworLyoKKworQGRlZnR5cGVmbiBFeHRl bnNpb24gaW50IGZpbGVuYW1lX2RpcnJjaHIgKGludCBAdmFye2Rvc19iYXNl ZH0sIGNvbnN0IGNoYXIgKkB2YXJ7cH0pCisKK1RoaXMgZnVuY3Rpb24gc2Vh cmNocyBmb3IgZmlyc3Qgb2NjdXJhbmNlIG9mIGEgZGlyZWN0b3J5LXNlcGFy YXRvciBjaGFyYWN0ZXIgaW4KK3RoZSBmaWxlbmFtZSBAdmFye3B9IGZyb20g cmlnaHQgdG8gbGVmdCBkaXJlY3Rpb24uCitJZiBhcmd1bWVudCBAdmFye2Rv c19iYXNlZH0gaXMgbm90IHplcm8sIGluIGFkZGl0aW9uIHRvIHRoZSBVTklY LXN0eWxlIHNsYXNoCithbHNvIHRoZSBET1Mtc3R5bGUgYmFja3NsYXNoIGlz IHRyZWF0ZWQgYXMgZGlyZWN0b3J5IHNlcGFyYXRvci4KK1RoaXMgZnVuY3Rp b24gZG9lcyBub3Qgbm9ybWFsaXplIGZpbGUgbmFtZS4gIFRoZSByZXN1bHQg b2YgdGhpcyByb3V0aW5lIGlzCitAY29kZXtOVUxMfSBwb2ludGVyLCBpZiBu byBtYXRjaCB3YXMgZm91bmQuIE90aGVyd2lzZSBpdCByZXR1cm5zIHRoZSBw b2ludGVyCit0byB0aGUgZm91bmQgbWF0Y2guCisKK0BlbmQgZGVmdHlwZWZu CisKKyovCisKK2NoYXIgKgorZmlsZW5hbWVfZGlycmNociAoaW50IGRvc19i YXNlZCwgY29uc3QgY2hhciAqcCkKK3sKKyAgY2hhciAqcjsKKworICBpZiAo IXApCisgICAgcmV0dXJuIE5VTEw7CisKKyAgciA9IHN0cnJjaHIgKHAsICcv Jyk7CisgIGlmIChkb3NfYmFzZWQpCisgICAgeworICAgICAgY2hhciAqcjIg PSBzdHJyY2hyIChwLCAnXFwnKTsKKworICAgICAgaWYgKCFyIHx8IChyMiAm JiByMiA+IHIpKQorCXIgPSByMjsKKyAgICB9CisgIHJldHVybiByOworfQo= --00151758898c1741be049e4bcc07--