From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21921 invoked by alias); 2 Oct 2002 14:42:17 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 21914 invoked from network); 2 Oct 2002 14:42:16 -0000 Received: from unknown (HELO devserv.devel.redhat.com) (66.187.233.200) by sources.redhat.com with SMTP; 2 Oct 2002 14:42:16 -0000 Received: from localhost (alexl@localhost) by devserv.devel.redhat.com (8.11.6/8.11.0) with ESMTP id g92EfEj03042; Wed, 2 Oct 2002 10:41:14 -0400 X-Authentication-Warning: devserv.devel.redhat.com: alexl owned process doing -bs Date: Wed, 02 Oct 2002 07:42:00 -0000 From: Alexander Larsson X-X-Sender: alexl@devserv.devel.redhat.com To: Eli Zaretskii cc: Elena Zannoni , , Jim Blandy Subject: Re: External debug symbols In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="279707962-1496407829-1033569674=:5623" X-SW-Source: 2002-10/txt/msg00024.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --279707962-1496407829-1033569674=:5623 Content-Type: TEXT/PLAIN; charset=US-ASCII Content-length: 1486 On Thu, 26 Sep 2002, Eli Zaretskii wrote: > + fd = open (name, O_RDONLY); > + if (fd < 0) > + return 0; > > This `open' call should use a binary mode (O_BINARY or'ed with O_RDONLY). > > + debug_file_search_path = xstrdup (DEBUGDIR); > + c = add_set_cmd ("debug-file-search-path", class_support, var_string, > + (char *) &debug_file_search_path, > + "Set the search path for loading separate debug symbols.\n" > + "Separate debug symbols are first searched for in the same\n" > + "directory as the binary, then in the .debug subdirectory,\n" > + "and lastly at the path of the directory of the binary with\n" > + "the global debug-file search path prepended\n", > + &setlist); > > Isn't the use of ``search-path'' here confusing? The variable holds a > name of a single directory, not a colon-separated list of directories, > right? If so, shouldn't we call it ``debug-file-directory'' or some such? > > Finally, this new feature should be documented in the manual. (Sorry if > you already posted the patch for that and I forgot.) Ok. Fixed these in the attached patch. -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a fiendish misogynist gangster who dotes on his loving old ma. She's a ditzy cigar-chomping mercenary with a knack for trouble. They fight crime! --279707962-1496407829-1033569674=:5623 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="gdb_debug4.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="gdb_debug4.patch" Content-length: 26755 ZGlmZiAtLWV4Y2x1ZGUgJyp+JyAtLWV4Y2x1ZGUgJyoub3JpZycgLS1leGNs dWRlICcqLnJlaicgLS1leGNsdWRlICcuIyonIC0tZXhjbHVkZSAnKi5vJyAt LWV4Y2x1ZGUgQ1ZTIC0tZXhjbHVkZSBTQ0NTIC0tZXhjbHVkZSBSQ1MgLS1l eGNsdWRlICcuKi5mbGFncycgLS1leGNsdWRlIC5jdnNpZ25vcmUgLS1leGNs dWRlIC5kZXBlbmQgLXVyIGdkYi01LjIuMS9nZGIvYWNjb25maWcuaCBnZGIt NS4yLjEuc2VwYXJhdGVfZGVidWdfc3ltYm9scy9nZGIvYWNjb25maWcuaA0K LS0tIGdkYi01LjIuMS9nZGIvYWNjb25maWcuaAkyMDAyLTAxLTA1IDE5OjM2 OjMyLjAwMDAwMDAwMCArMDEwMA0KKysrIGdkYi01LjIuMS5zZXBhcmF0ZV9k ZWJ1Z19zeW1ib2xzL2dkYi9hY2NvbmZpZy5oCTIwMDItMDktMTYgMTU6Mjg6 MzcuMDAwMDAwMDAwICswMjAwDQpAQCAtMTczLDMgKzE3Myw3IEBADQogDQog LyogbmF0aXZlZmlsZSAqLw0KICN1bmRlZiBHREJfTk1fRklMRQ0KKw0KKy8q IGRlYnVnZGlyICovDQorI3VuZGVmIERFQlVHRElSDQorDQpkaWZmIC0tZXhj bHVkZSAnKn4nIC0tZXhjbHVkZSAnKi5vcmlnJyAtLWV4Y2x1ZGUgJyoucmVq JyAtLWV4Y2x1ZGUgJy4jKicgLS1leGNsdWRlICcqLm8nIC0tZXhjbHVkZSBD VlMgLS1leGNsdWRlIFNDQ1MgLS1leGNsdWRlIFJDUyAtLWV4Y2x1ZGUgJy4q LmZsYWdzJyAtLWV4Y2x1ZGUgLmN2c2lnbm9yZSAtLWV4Y2x1ZGUgLmRlcGVu ZCAtdXIgZ2RiLTUuMi4xL2dkYi9hY2luY2x1ZGUubTQgZ2RiLTUuMi4xLnNl cGFyYXRlX2RlYnVnX3N5bWJvbHMvZ2RiL2FjaW5jbHVkZS5tNA0KLS0tIGdk Yi01LjIuMS9nZGIvYWNpbmNsdWRlLm00CTIwMDItMDQtMTUgMDY6Mjg6NDku MDAwMDAwMDAwICswMjAwDQorKysgZ2RiLTUuMi4xLnNlcGFyYXRlX2RlYnVn X3N5bWJvbHMvZ2RiL2FjaW5jbHVkZS5tNAkyMDAyLTA4LTI2IDExOjE2OjQw LjAwMDAwMDAwMCArMDIwMA0KQEAgLTk3NiwzICs5NzYsMTggQEANCiAgICop IENDPSIkQ0MgJGFtX2N2X3Byb2dfY2Nfc3RkYyIgOzsNCiBlc2FjDQogXSkN CisNCitkbmwgd3JpdHRlbiBieSBHdWlkbyBEcmFoZWltIDxndWlkb2RAZ214 LmRlPiwgb3JpZ2luYWwgYnkgQWxleGFuZHJlIE9saXZhIA0KK2RubCBWZXJz aW9uIDEuMyAoMjAwMS8wMy8wMikNCitkbmwgc291cmNlIGh0dHA6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9hYy1hcmNoaXZlL01pc2NlbGxhbmVvdXMvYWNf ZGVmaW5lX2Rpci5odG1sDQorDQorQUNfREVGVU4oW0FDX0RFRklORV9ESVJd LCBbDQorICB0ZXN0ICJ4JHByZWZpeCIgPSB4Tk9ORSAmJiBwcmVmaXg9IiRh Y19kZWZhdWx0X3ByZWZpeCINCisgIHRlc3QgIngkZXhlY19wcmVmaXgiID0g eE5PTkUgJiYgZXhlY19wcmVmaXg9JyR7cHJlZml4fScNCisgIGFjX2RlZmlu ZV9kaXI9YGV2YWwgZWNobyBbJF0kMmANCisgIGFjX2RlZmluZV9kaXI9YGV2 YWwgZWNobyBbJF1hY19kZWZpbmVfZGlyYA0KKyAgaWZlbHNlKCQzLCAsDQor ICAgIEFDX0RFRklORV9VTlFVT1RFRCgkMSwgIiRhY19kZWZpbmVfZGlyIiks DQorICAgIEFDX0RFRklORV9VTlFVT1RFRCgkMSwgIiRhY19kZWZpbmVfZGly IiwgJDMpKQ0KK10pDQorDQpkaWZmIC0tZXhjbHVkZSAnKn4nIC0tZXhjbHVk ZSAnKi5vcmlnJyAtLWV4Y2x1ZGUgJyoucmVqJyAtLWV4Y2x1ZGUgJy4jKicg LS1leGNsdWRlICcqLm8nIC0tZXhjbHVkZSBDVlMgLS1leGNsdWRlIFNDQ1Mg LS1leGNsdWRlIFJDUyAtLWV4Y2x1ZGUgJy4qLmZsYWdzJyAtLWV4Y2x1ZGUg LmN2c2lnbm9yZSAtLWV4Y2x1ZGUgLmRlcGVuZCAtdXIgZ2RiLTUuMi4xL2dk Yi9jb25maWd1cmUuaW4gZ2RiLTUuMi4xLnNlcGFyYXRlX2RlYnVnX3N5bWJv bHMvZ2RiL2NvbmZpZ3VyZS5pbg0KLS0tIGdkYi01LjIuMS9nZGIvY29uZmln dXJlLmluCTIwMDItMDMtMjggMDU6Mjg6MDAuMDAwMDAwMDAwICswMTAwDQor KysgZ2RiLTUuMi4xLnNlcGFyYXRlX2RlYnVnX3N5bWJvbHMvZ2RiL2NvbmZp Z3VyZS5pbgkyMDAyLTA4LTI2IDE3OjAyOjQ4LjAwMDAwMDAwMCArMDIwMA0K QEAgLTIzNCw2ICsyMzQsMTQgQEANCiBBQ19DSEVDS19MSUIoc29ja2V0LCBz b2NrZXRwYWlyKQ0KIEFDX0NIRUNLX0ZVTkNTKHNvY2tldHBhaXIpDQogDQor ZGVidWdkaXI9JHtsaWJkaXJ9L2RlYnVnDQorCSANCitBQ19BUkdfV0lUSChz ZXBhcmF0ZS1kZWJ1Zy1kaXIsDQorWyAgLS13aXRoLXNlcGFyYXRlLWRlYnVn LWRpcj1wYXRoICAgTG9vayBmb3IgZ2xvYmFsIHNlcGFyYXRlIGRlYnVnIGlu Zm8gaW4gdGhpcyBwYXRoIFtMSUJESVIvZGVidWddXSwNCitbZGVidWdkaXI9 IiR7d2l0aHZhbH0iXSkNCisJDQorQUNfREVGSU5FX0RJUihERUJVR0RJUiwg ZGVidWdkaXIpDQorI0FDX0RFRklORV9VTlFVT1RFRChERUJVR0RJUiwgIiRk ZWJ1Z2RpciIpLA0KIA0KIEJGRF9ORUVEX0RFQ0xBUkFUSU9OKG1hbGxvYykN CiBCRkRfTkVFRF9ERUNMQVJBVElPTihyZWFsbG9jKQ0KZGlmZiAtLWV4Y2x1 ZGUgJyp+JyAtLWV4Y2x1ZGUgJyoub3JpZycgLS1leGNsdWRlICcqLnJlaicg LS1leGNsdWRlICcuIyonIC0tZXhjbHVkZSAnKi5vJyAtLWV4Y2x1ZGUgQ1ZT IC0tZXhjbHVkZSBTQ0NTIC0tZXhjbHVkZSBSQ1MgLS1leGNsdWRlICcuKi5m bGFncycgLS1leGNsdWRlIC5jdnNpZ25vcmUgLS1leGNsdWRlIC5kZXBlbmQg LXVyIGdkYi01LjIuMS9nZGIvZGVmcy5oIGdkYi01LjIuMS5zZXBhcmF0ZV9k ZWJ1Z19zeW1ib2xzL2dkYi9kZWZzLmgNCi0tLSBnZGItNS4yLjEvZ2RiL2Rl ZnMuaAkyMDAyLTAzLTI1IDE3OjUwOjIwLjAwMDAwMDAwMCArMDEwMA0KKysr IGdkYi01LjIuMS5zZXBhcmF0ZV9kZWJ1Z19zeW1ib2xzL2dkYi9kZWZzLmgJ MjAwMi0wOS0yMyAxMjozNzoyMy4wMDAwMDAwMDAgKzAyMDANCkBAIC01Nzcs NiArNTc3LDggQEANCiANCiBleHRlcm4gY2hhciAqZ2RiX3JlYWxwYXRoIChj b25zdCBjaGFyICopOw0KIA0KK2V4dGVybiB1bnNpZ25lZCBsb25nIGNhbGNf Y3JjMzIgKHVuc2lnbmVkIGxvbmcgY3JjLCB1bnNpZ25lZCBjaGFyICpidWYs IHNpemVfdCBsZW4pOw0KKw0KIC8qIEZyb20gZGVtYW5nbGUuYyAqLw0KIA0K IGV4dGVybiB2b2lkIHNldF9kZW1hbmdsaW5nX3N0eWxlIChjaGFyICopOw0K ZGlmZiAtLWV4Y2x1ZGUgJyp+JyAtLWV4Y2x1ZGUgJyoub3JpZycgLS1leGNs dWRlICcqLnJlaicgLS1leGNsdWRlICcuIyonIC0tZXhjbHVkZSAnKi5vJyAt LWV4Y2x1ZGUgQ1ZTIC0tZXhjbHVkZSBTQ0NTIC0tZXhjbHVkZSBSQ1MgLS1l eGNsdWRlICcuKi5mbGFncycgLS1leGNsdWRlIC5jdnNpZ25vcmUgLS1leGNs dWRlIC5kZXBlbmQgLXVyIGdkYi01LjIuMS9nZGIvZG9jL2dkYi50ZXhpbmZv IGdkYi01LjIuMS5zZXBhcmF0ZV9kZWJ1Z19zeW1ib2xzL2dkYi9kb2MvZ2Ri LnRleGluZm8NCi0tLSBnZGItNS4yLjEvZ2RiL2RvYy9nZGIudGV4aW5mbwky MDAyLTA0LTA3IDIwOjU5OjE1LjAwMDAwMDAwMCArMDIwMA0KKysrIGdkYi01 LjIuMS5zZXBhcmF0ZV9kZWJ1Z19zeW1ib2xzL2dkYi9kb2MvZ2RiLnRleGlu Zm8JMjAwMi0xMC0wMiAxNjoxMzoyMS4wMDAwMDAwMDAgKzAyMDANCkBAIC05 NTM3LDYgKzk1MzcsMjkgQEANCiBEaXNwbGF5IHRoZSBjdXJyZW50IGF1dG9s b2FkaW5nIHNpemUgdGhyZXNob2xkLCBpbiBtZWdhYnl0ZXMuDQogQGVuZCB0 YWJsZQ0KIA0KK09uIEBzY3tlbGZ9IGJhc2VkIHN5c3RlbXMsIEB2YWx1ZXtH REJOfSBzdXBwb3J0cyBhdXRvbWF0aWNhbGx5IGxvYWRpbmcNCitzeW1ib2wg dGFibGVzIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBmcm9tIGEgZmlsZSBzZXBh cmF0ZSBmcm9tIHRoZQ0KK2V4ZWN1dGFibGUuIFRoaXMgd29ya3MgYnkgcHV0 dGluZyBpbmZvcm1hdGlvbiBpbiB0aGUgZXhlY3V0YWJsZSBhYm91dA0KK3Ro ZSBuYW1lIGFuZCBjaGVja3N1bSBvZiB0aGUgZmlsZSB3aXRoIGRlYnVnIGlu Zm9ybWF0aW9uLiBXaGVuDQorQHZhbHVle0dEQk59IHJlYWRzIHN1Y2ggYW4g ZXhlY3V0YWJsZSBpdCBhdXRvbWF0aWNhbGx5IHRyaWVzIHRvIGxvY2F0ZQ0K K3RoZSBkZWJ1ZyBmaWxlIGFuZCBsb2FkIGl0LiANCisNCitAdmFsdWV7R0RC Tn0gc2VhcmNocyBmb3IgdGhlIGZpbGUgZmlyc3QgaW4gdGhlIHNhbWUgZGly ZWN0b3J5IGFzIHRoZQ0KK2V4ZWN1dGFibGUsIGFuZCB0aGVuIGluIGEgc3Vi ZGlyZWN0b3J5IGNhbGxlZCBAZmlsZXsuZGVidWd9Lg0KK0lmIGJvdGggdGhl c2UgZmFpbCBAdmFsdWV7R0RCTn0gbG9va3MgaW4gdGhlIGdsb2JhbCBkZWJ1 ZyBkaXJlY3RvcnksIHdpdGggdGhlDQorZnVsbCBwYXRobmFtZSBvZiB0aGUg ZXhlY3V0YWJsZS4gU28gaWYgeW91IGFyZSBsb2FkaW5nDQorQGZpbGV7L3Vz ci9iaW4vbHN9IGFuZCBpdCByZWZlcmVuY2VzIHRoZSBkZWJ1ZyBmaWxlIEBm aWxle2xzLmRlYnVnfQ0KK0B2YWx1ZXtHREJOfSB3aWxsIGxvb2sgZm9yIEBm aWxle3Vzci9iaW4vbHMuZGVidWd9IGluIHRoZSBnbG9iYWwgZGVidWcNCitk aXJlY3RvcnkuDQorDQorQHRhYmxlIEBjb2RlDQorQGtpbmRleCBzZXQgZGVi dWctZmlsZS1kaXJlY3RvcnkNCitAaXRlbSBzZXQgZGVidWctZmlsZS1kaXJl Y3RvcnkgQHZhcntkaXJlY3Rvcnl9DQorU2V0IHRoZSBnbG9iYWwgZGlyZWN0 b3J5IHdoZXJlIEB2YWx1ZXtHREJOfSBzZWFyY2hlcyBmb3Igc2VwYXJhdGUN CitkZWJ1ZyBmaWxlcyB0byBAdmFye2RpcmVjdG9yeX0uDQorQGVuZCB0YWJs ZQ0KKw0KKw0KIEBub2RlIFN5bWJvbCBFcnJvcnMNCiBAc2VjdGlvbiBFcnJv cnMgcmVhZGluZyBzeW1ib2wgZmlsZXMNCiANCmRpZmYgLS1leGNsdWRlICcq ficgLS1leGNsdWRlICcqLm9yaWcnIC0tZXhjbHVkZSAnKi5yZWonIC0tZXhj bHVkZSAnLiMqJyAtLWV4Y2x1ZGUgJyoubycgLS1leGNsdWRlIENWUyAtLWV4 Y2x1ZGUgU0NDUyAtLWV4Y2x1ZGUgUkNTIC0tZXhjbHVkZSAnLiouZmxhZ3Mn IC0tZXhjbHVkZSAuY3ZzaWdub3JlIC0tZXhjbHVkZSAuZGVwZW5kIC11ciBn ZGItNS4yLjEvZ2RiL29iamZpbGVzLmMgZ2RiLTUuMi4xLnNlcGFyYXRlX2Rl YnVnX3N5bWJvbHMvZ2RiL29iamZpbGVzLmMNCi0tLSBnZGItNS4yLjEvZ2Ri L29iamZpbGVzLmMJMjAwMS0xMi0wNiAyMTo1OToxMS4wMDAwMDAwMDAgKzAx MDANCisrKyBnZGItNS4yLjEuc2VwYXJhdGVfZGVidWdfc3ltYm9scy9nZGIv b2JqZmlsZXMuYwkyMDAyLTA5LTIzIDEzOjA3OjI0LjAwMDAwMDAwMCArMDIw MA0KQEAgLTMyNSw2ICszMjUsMzAgQEANCiAgIHJldHVybiAob2JqZmlsZSk7 DQogfQ0KIA0KKy8qIFB1dCBvbmUgb2JqZWN0IGZpbGUgYmVmb3JlIGEgc3Bl Y2lmaWVkIG9uIGluIHRoZSBnbG9iYWwgbGlzdC4NCisgICBUaGlzIGNhbiBi ZSB1c2VkIHRvIG1ha2Ugc3VyZSBhbiBvYmplY3QgZmlsZSBpcyBkZXN0cm95 ZWQgYmVmb3JlDQorICAgYW5vdGhlciB3aGVuIHVzaW5nIEFMTF9PQkpGSUxF U19TQUZFIHRvIGZyZWUgYWxsIG9iamZpbGVzLiAqLw0KK3ZvaWQNCitwdXRf b2JqZmlsZV9iZWZvcmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1 Y3Qgb2JqZmlsZSAqYmVmb3JlX3RoaXMpDQorew0KKyAgc3RydWN0IG9iamZp bGUgKipvYmpwOw0KKw0KKyAgdW5saW5rX29iamZpbGUgKG9iamZpbGUpOw0K KyAgDQorICBmb3IgKG9ianAgPSAmb2JqZWN0X2ZpbGVzOyAqb2JqcCAhPSBO VUxMOyBvYmpwID0gJigoKm9ianApLT5uZXh0KSkNCisgICAgew0KKyAgICAg IGlmICgqb2JqcCA9PSBiZWZvcmVfdGhpcykNCisJew0KKwkgIG9iamZpbGUt Pm5leHQgPSAqb2JqcDsNCisJICAqb2JqcCA9IG9iamZpbGU7DQorCSAgcmV0 dXJuOw0KKwl9DQorICAgIH0NCisgIA0KKyAgaW50ZXJuYWxfZXJyb3IgKF9f RklMRV9fLCBfX0xJTkVfXywNCisJCSAgInB1dF9vYmpmaWxlX2JlZm9yZTog YmVmb3JlIG9iamZpbGUgbm90IGluIGxpc3QiKTsNCit9DQorDQogLyogUHV0 IE9CSkZJTEUgYXQgdGhlIGZyb250IG9mIHRoZSBsaXN0LiAgKi8NCiANCiB2 b2lkDQpAQCAtMzk3LDYgKzQyMSwxOCBAQA0KIHZvaWQNCiBmcmVlX29iamZp bGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQ0KIHsNCisgIGlmIChvYmpm aWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlKQ0KKyAgICB7DQorICAgICAg ZnJlZV9vYmpmaWxlIChvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxl KTsNCisgICAgfQ0KKyAgDQorICBpZiAob2JqZmlsZS0+c2VwYXJhdGVfZGVi dWdfb2JqZmlsZV9iYWNrbGluaykNCisgICAgew0KKyAgICAgIC8qIFdlIGZy ZWVkIHRoZSBzZXBhcmF0ZSBkZWJ1ZyBmaWxlLCBtYWtlIHN1cmUgdGhlIGJh c2Ugb2JqZmlsZQ0KKwkgZG9lc24ndCByZWZlcmVuY2UgaXQuICAqLw0KKyAg ICAgIG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZpbGVfYmFja2xpbmst PnNlcGFyYXRlX2RlYnVnX29iamZpbGUgPSBOVUxMOw0KKyAgICB9DQorICAN CiAgIC8qIEZpcnN0IGRvIGFueSBzeW1ib2wgZmlsZSBzcGVjaWZpYyBhY3Rp b25zIHJlcXVpcmVkIHdoZW4gd2UgYXJlDQogICAgICBmaW5pc2hlZCB3aXRo IGEgcGFydGljdWxhciBzeW1ib2wgZmlsZS4gIE5vdGUgdGhhdCBpZiB0aGUg b2JqZmlsZQ0KICAgICAgaXMgdXNpbmcgcmV1c2FibGUgc3ltYm9sIGluZm9y bWF0aW9uICh2aWEgbW1hbGxvYykgdGhlbiBlYWNoIG9mDQpkaWZmIC0tZXhj bHVkZSAnKn4nIC0tZXhjbHVkZSAnKi5vcmlnJyAtLWV4Y2x1ZGUgJyoucmVq JyAtLWV4Y2x1ZGUgJy4jKicgLS1leGNsdWRlICcqLm8nIC0tZXhjbHVkZSBD VlMgLS1leGNsdWRlIFNDQ1MgLS1leGNsdWRlIFJDUyAtLWV4Y2x1ZGUgJy4q LmZsYWdzJyAtLWV4Y2x1ZGUgLmN2c2lnbm9yZSAtLWV4Y2x1ZGUgLmRlcGVu ZCAtdXIgZ2RiLTUuMi4xL2dkYi9vYmpmaWxlcy5oIGdkYi01LjIuMS5zZXBh cmF0ZV9kZWJ1Z19zeW1ib2xzL2dkYi9vYmpmaWxlcy5oDQotLS0gZ2RiLTUu Mi4xL2dkYi9vYmpmaWxlcy5oCTIwMDItMDYtMjkgMDA6MDU6NDcuMDAwMDAw MDAwICswMjAwDQorKysgZ2RiLTUuMi4xLnNlcGFyYXRlX2RlYnVnX3N5bWJv bHMvZ2RiL29iamZpbGVzLmgJMjAwMi0wOS0yMyAxMzowMjo1My4wMDAwMDAw MDAgKzAyMDANCkBAIC00MDksNiArNDA5LDE1IEBADQogICAgIEV4cG9ydEVu dHJ5ICpleHBvcnRfbGlzdDsNCiAgICAgaW50IGV4cG9ydF9saXN0X3NpemU7 DQogDQorICAgIC8qIExpbmsgdG8gb2JqZmlsZSB0aGF0IGNvbnRhaW5zIHRo ZSBkZWJ1ZyBzeW1ib2xzIGZvciB0aGlzIG9uZS4NCisgICAgICAgT25lIGlz IGxvYWRlZCBpZiB0aGlzIGZpbGUgaGFzIGFuIGRlYnVnIGxpbmsgdG8gYW4g ZXhpc3RpbmcNCisgICAgICAgZGVidWcgZmlsZSB3aXRoIHRoZSByaWdodCBj aGVja3N1bSAqLw0KKyAgICBzdHJ1Y3Qgb2JqZmlsZSAqc2VwYXJhdGVfZGVi dWdfb2JqZmlsZTsNCisNCisgICAgLyogSWYgdGhpcyBpcyBhIHNlcGFyYXRl IGRlYnVnIG9iamVjdCwgdGhpcyBpcyB1c2VkIGFzIGEgbGluayB0byB0aGUN CisgICAgICAgYWN0dWFsIGV4ZWN1dGFibGUgb2JqZmlsZS4gKi8NCisgICAg c3RydWN0IG9iamZpbGUgKnNlcGFyYXRlX2RlYnVnX29iamZpbGVfYmFja2xp bms7DQorICAgIA0KICAgICAvKiBQbGFjZSB0byBzdGFzaCB2YXJpb3VzIHN0 YXRpc3RpY3MgYWJvdXQgdGhpcyBvYmpmaWxlICovDQogICAgICAgT0JKU1RB VFM7DQogICB9Ow0KQEAgLTUwMCw2ICs1MDksOCBAQA0KIA0KIGV4dGVybiBp bnQgYnVpbGRfb2JqZmlsZV9zZWN0aW9uX3RhYmxlIChzdHJ1Y3Qgb2JqZmls ZSAqKTsNCiANCitleHRlcm4gdm9pZCBwdXRfb2JqZmlsZV9iZWZvcmUgKHN0 cnVjdCBvYmpmaWxlICosIHN0cnVjdCBvYmpmaWxlICopOw0KKw0KIGV4dGVy biB2b2lkIG9iamZpbGVfdG9fZnJvbnQgKHN0cnVjdCBvYmpmaWxlICopOw0K IA0KIGV4dGVybiB2b2lkIHVubGlua19vYmpmaWxlIChzdHJ1Y3Qgb2JqZmls ZSAqKTsNCmRpZmYgLS1leGNsdWRlICcqficgLS1leGNsdWRlICcqLm9yaWcn IC0tZXhjbHVkZSAnKi5yZWonIC0tZXhjbHVkZSAnLiMqJyAtLWV4Y2x1ZGUg JyoubycgLS1leGNsdWRlIENWUyAtLWV4Y2x1ZGUgU0NDUyAtLWV4Y2x1ZGUg UkNTIC0tZXhjbHVkZSAnLiouZmxhZ3MnIC0tZXhjbHVkZSAuY3ZzaWdub3Jl IC0tZXhjbHVkZSAuZGVwZW5kIC11ciBnZGItNS4yLjEvZ2RiL3N5bWZpbGUu YyBnZGItNS4yLjEuc2VwYXJhdGVfZGVidWdfc3ltYm9scy9nZGIvc3ltZmls ZS5jDQotLS0gZ2RiLTUuMi4xL2dkYi9zeW1maWxlLmMJMjAwMi0wNi0yMiAx ODo0OTozMy4wMDAwMDAwMDAgKzAyMDANCisrKyBnZGItNS4yLjEuc2VwYXJh dGVfZGVidWdfc3ltYm9scy9nZGIvc3ltZmlsZS5jCTIwMDItMTAtMDIgMTQ6 NDM6MzAuMDAwMDAwMDAwICswMjAwDQpAQCAtMzcsNiArMzcsNyBAQA0KICNp bmNsdWRlICJjb21wbGFpbnRzLmgiDQogI2luY2x1ZGUgImRlbWFuZ2xlLmgi DQogI2luY2x1ZGUgImluZmVyaW9yLmgiCQkvKiBmb3Igd3JpdGVfcGMgKi8N CisjaW5jbHVkZSAiZmlsZW5hbWVzLmgiCQkvKiBmb3IgRE9TaXNoIGZpbGUg bmFtZXMgKi8NCiAjaW5jbHVkZSAiZ2RiLXN0YWJzLmgiDQogI2luY2x1ZGUg Im9ic3RhY2suaCINCiAjaW5jbHVkZSAiY29tcGxldGVyLmgiDQpAQCAtMTYw LDYgKzE2MSw4IEBADQogDQogc3RhdGljIHZvaWQgaW5mb19leHRfbGFuZ19j b21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpOw0KIA0KK3N0YXRp YyBjaGFyICpmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGUgKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLCBjb25zdCBjaGFyICpuYW1lKTsNCisNCiBzdGF0aWMg dm9pZCBpbml0X2ZpbGVuYW1lX2xhbmd1YWdlX3RhYmxlICh2b2lkKTsNCiAN CiB2b2lkIF9pbml0aWFsaXplX3N5bWZpbGUgKHZvaWQpOw0KQEAgLTgzNiw3 ICs4MzksMTIgQEANCiB7DQogICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZTsN CiAgIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqcHN5bXRhYjsNCisgIGNoYXIg KmRlYnVnZmlsZTsNCiAgIGJmZCAqYWJmZDsNCisgIHN0cnVjdCBzZWN0aW9u X2FkZHJfaW5mbyBvcmlnX2FkZHJzOw0KKyAgDQorICBpZiAoYWRkcnMpDQor ICAgIG9yaWdfYWRkcnMgPSAqYWRkcnM7DQogDQogICAvKiBPcGVuIGEgYmZk IGZvciB0aGUgZmlsZSwgYW5kIGdpdmUgdXNlciBhIGNoYW5jZSB0byBidXJw IGlmIHdlJ2QgYmUNCiAgICAgIGludGVyYWN0aXZlbHkgd2lwaW5nIG91dCBh bnkgZXhpc3Rpbmcgc3ltYm9scy4gICovDQpAQCAtOTI2LDYgKzkzNCwyOCBA QA0KICAgaWYgKHRhcmdldF9uZXdfb2JqZmlsZV9ob29rKQ0KICAgICB0YXJn ZXRfbmV3X29iamZpbGVfaG9vayAob2JqZmlsZSk7DQogDQorICBkZWJ1Z2Zp bGUgPSBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGUgKG9iamZpbGUsIG5hbWUp Ow0KKyAgaWYgKGRlYnVnZmlsZSkNCisgICAgew0KKyAgICAgIHByaW50Zl9m aWx0ZXJlZCAoImxvYWRpbmcgc2VwYXJhdGUgZGVidWcgaW5mbyBmcm9tICcl cydcbiIsIGRlYnVnZmlsZSk7DQorDQorICAgICAgaWYgKGFkZHJzICE9IE5V TEwpDQorCXsNCisJICBvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxl ID0gc3ltYm9sX2ZpbGVfYWRkIChkZWJ1Z2ZpbGUsIGZyb21fdHR5LCAmb3Jp Z19hZGRycywgMCwgZmxhZ3MpOw0KKwl9DQorICAgICAgZWxzZQ0KKwl7DQor CSAgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZSA9IHN5bWJvbF9m aWxlX2FkZCAoZGVidWdmaWxlLCBmcm9tX3R0eSwgTlVMTCwgMCwgZmxhZ3Mp Ow0KKwl9DQorICAgICAgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmls ZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayA9IG9iamZpbGU7 DQorICAgICAgDQorICAgICAgLyogUHV0IHRoZSBzZXBhcmF0ZSBkZWJ1ZyBv YmplY3QgYmVmb3JlIHRoZSBub3JtYWwgb25lLCB0aGlzIGlzIHNvIHRoYXQN CisgICAgICAgICB1c2FnZSBvZiB0aGUgQUxMX09CSkZJTEVTX1NBRkUgbWFj cm8gd2lsbCBzdGF5IHNhZmUuICovDQorICAgICAgcHV0X29iamZpbGVfYmVm b3JlIChvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlLCBvYmpmaWxl KTsNCisgICAgICANCisgICAgICB4ZnJlZSAoZGVidWdmaWxlKTsNCisgICAg fQ0KKyAgDQogICByZXR1cm4gKG9iamZpbGUpOw0KIH0NCiANCkBAIC05ODUs NiArMTAxNSwxNDUgQEANCiAjZW5kaWYNCiB9DQogDQorc3RhdGljIGNoYXIg Kg0KK2dldF9kZWJ1Z19saW5rX2luZm8gKHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlLCB1bnNpZ25lZCBsb25nICpjcmMzMl9vdXQpDQorew0KKyAgYXNlY3Rp b24gKnNlY3Q7DQorICBiZmRfc2l6ZV90eXBlIGRlYnVnbGlua19zaXplOw0K KyAgdW5zaWduZWQgbG9uZyBjcmMzMjsNCisgIGNoYXIgKmNvbnRlbnRzOw0K KyAgaW50IGNyY19vZmZzZXQ7DQorICB1bnNpZ25lZCBjaGFyICpjcmNfZGF0 YTsNCisgIHVuc2lnbmVkIGNoYXIgKnA7DQorICANCisgIHNlY3QgPSBiZmRf Z2V0X3NlY3Rpb25fYnlfbmFtZSAob2JqZmlsZS0+b2JmZCwgIi5nbnVfZGVi dWdsaW5rIik7DQorDQorICBpZiAoc2VjdCA9PSBOVUxMKQ0KKyAgICByZXR1 cm4gTlVMTDsNCisNCisgIGRlYnVnbGlua19zaXplID0gYmZkX3NlY3Rpb25f c2l6ZSAob2JqZmlsZS0+b2JmZCwgc2VjdCk7DQorICANCisgIGNvbnRlbnRz ID0geG1hbGxvYyAoZGVidWdsaW5rX3NpemUpOw0KKyAgYmZkX2dldF9zZWN0 aW9uX2NvbnRlbnRzIChvYmpmaWxlLT5vYmZkLCBzZWN0LCBjb250ZW50cywN CisJCQkgICAgKGZpbGVfcHRyKTAsIChiZmRfc2l6ZV90eXBlKWRlYnVnbGlu a19zaXplKTsNCisNCisgIC8qIENyYyB2YWx1ZSBpcyBzdG9yZWQgYWZ0ZXIg dGhlIGZpbGVuYW1lLCBhbGlnbmVkIHVwIHRvIDQgYnl0ZXMuICovDQorICBj cmNfb2Zmc2V0ID0gc3RybGVuIChjb250ZW50cykgKyAxOw0KKyAgaWYgKGNy Y19vZmZzZXQgJiAzKQ0KKyAgICBjcmNfb2Zmc2V0ICs9IDQgLSAoY3JjX29m ZnNldCAmIDMpOw0KKyAgY3JjX2RhdGEgPSBjb250ZW50cyArIGNyY19vZmZz ZXQ7DQorDQorICBjcmMzMiA9IDA7DQorICBpZiAoVEFSR0VUX0JZVEVfT1JE RVIgPT0gQkZEX0VORElBTl9CSUcpDQorICAgIHsNCisgICAgICBmb3IgKHAg PSBjcmNfZGF0YTsgcCA8IGNyY19kYXRhICsgNDsgKytwKQ0KKwljcmMzMiA9 IChjcmMzMiA8PCA4KSB8ICpwOw0KKyAgICB9DQorICBlbHNlDQorICAgIHsN CisgICAgICBmb3IgKHAgPSBjcmNfZGF0YSArIDQgLSAxOyBwID49IGNyY19k YXRhOyAtLXApDQorCWNyYzMyID0gKGNyYzMyIDw8IDgpIHwgKnA7DQorICAg IH0NCisgIA0KKyAgKmNyYzMyX291dCA9IGNyYzMyOw0KKyAgcmV0dXJuIGNv bnRlbnRzOw0KK30NCisNCitzdGF0aWMgaW50DQorc2VwYXJhdGVfZGVidWdf ZmlsZV9leGlzdHMgKGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGxvbmcg Y3JjKQ0KK3sNCisgIHVuc2lnbmVkIGxvbmcgZmlsZV9jcmMgPSAwOw0KKyAg aW50IGZkOw0KKyAgY2hhciBidWZmZXJbOCoxMDI0XTsNCisgIGludCBjb3Vu dDsNCisNCisgIGZkID0gb3BlbiAobmFtZSwgT19SRE9OTFkgfCBPX0JJTkFS WSk7DQorICBpZiAoZmQgPCAwKQ0KKyAgICByZXR1cm4gMDsNCisNCisgIHdo aWxlICgoY291bnQgPSByZWFkIChmZCwgYnVmZmVyLCBzaXplb2YgKGJ1ZmZl cikpKSA+IDApDQorICAgIGZpbGVfY3JjID0gY2FsY19jcmMzMiAoZmlsZV9j cmMsIGJ1ZmZlciwgY291bnQpOw0KKw0KKyAgY2xvc2UgKGZkKTsNCisNCisg IHJldHVybiBjcmMgPT0gZmlsZV9jcmM7DQorfQ0KKw0KK3N0YXRpYyBjaGFy ICpkZWJ1Z19maWxlX2RpcmVjdG9yeSA9IE5VTEw7DQorDQorc3RhdGljIGNo YXIgKg0KK2ZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUsIGNvbnN0IGNoYXIgKm5hbWUpDQorew0KKyAgYXNlY3Rp b24gKnNlY3Q7DQorICBjaGFyICpiYXNlbmFtZTsNCisgIGNoYXIgKmRpcjsN CisgIGNoYXIgKmRlYnVnZmlsZTsNCisgIGNoYXIgKm5hbWVfY29weTsNCisg IGJmZF9zaXplX3R5cGUgZGVidWdsaW5rX3NpemU7DQorICB1bnNpZ25lZCBs b25nIGNyYzMyOw0KKyAgaW50IGk7DQorDQorICBiYXNlbmFtZSA9IGdldF9k ZWJ1Z19saW5rX2luZm8gKG9iamZpbGUsICZjcmMzMik7DQorDQorICBpZiAo YmFzZW5hbWUgPT0gTlVMTCkNCisgICAgcmV0dXJuIE5VTEw7DQorICANCisg IGRpciA9IHhzdHJkdXAgKG5hbWUpOw0KKw0KKyAgLyogU3RyaXAgb2ZmIGZp bGVuYW1lIHBhcnQgKi8NCisgIGZvciAoaSA9IHN0cmxlbihkaXIpIC0gMTsg aSA+PSAwOyBpLS0pDQorICAgIHsNCisgICAgICBpZiAoSVNfRElSX1NFUEFS QVRPUiAoZGlyW2ldKSkNCisJYnJlYWs7DQorICAgIH0NCisgIGRpcltpKzFd ID0gJ1wwJzsNCisgIA0KKyAgZGVidWdmaWxlID0gYWxsb2NhIChzdHJsZW4g KGRlYnVnX2ZpbGVfZGlyZWN0b3J5KSArIDEgKw0KKwkJICAgICAgc3RybGVu IChkaXIpICsgc3RybGVuICgiLmRlYnVnLyIpICsgc3RybGVuIChiYXNlbmFt ZSkgKyAxKTsNCisNCisgIC8qIEZpcnN0IHRyeSBpbiB0aGUgc2FtZSBkaXJl Y3RvcnkgYXMgdGhlIG9yaWdpbmFsIGZpbGU6ICovDQorICBzdHJjcHkgKGRl YnVnZmlsZSwgZGlyKTsNCisgIHN0cmNhdCAoZGVidWdmaWxlLCBiYXNlbmFt ZSk7DQorDQorICBpZiAoc2VwYXJhdGVfZGVidWdfZmlsZV9leGlzdHMgKGRl YnVnZmlsZSwgY3JjMzIpKQ0KKyAgICB7DQorICAgICAgeGZyZWUgKGJhc2Vu YW1lKTsNCisgICAgICB4ZnJlZSAoZGlyKTsNCisgICAgICByZXR1cm4geHN0 cmR1cCAoZGVidWdmaWxlKTsNCisgICAgfQ0KKyAgDQorICAvKiBUaGVuIHRy eSBpbiBhIHN1YmRpcmVjdG9yeSBjYWxsZWQgLmRlYnVnICovDQorICBzdHJj cHkgKGRlYnVnZmlsZSwgZGlyKTsNCisgIHN0cmNhdCAoZGVidWdmaWxlLCAi LmRlYnVnLyIpOw0KKyAgc3RyY2F0IChkZWJ1Z2ZpbGUsIGJhc2VuYW1lKTsN CisNCisgIGlmIChzZXBhcmF0ZV9kZWJ1Z19maWxlX2V4aXN0cyAoZGVidWdm aWxlLCBjcmMzMikpDQorICAgIHsNCisgICAgICB4ZnJlZSAoYmFzZW5hbWUp Ow0KKyAgICAgIHhmcmVlIChkaXIpOw0KKyAgICAgIHJldHVybiB4c3RyZHVw IChkZWJ1Z2ZpbGUpOw0KKyAgICB9DQorICANCisgIC8qIFRoZW4gdHJ5IGlu IHRoZSBnbG9iYWwgZGVidWdmaWxlIGRpcmVjdG9yeSAqLw0KKyAgc3RyY3B5 IChkZWJ1Z2ZpbGUsIGRlYnVnX2ZpbGVfZGlyZWN0b3J5KTsNCisgIHN0cmNh dCAoZGVidWdmaWxlLCAiLyIpOw0KKyAgc3RyY2F0IChkZWJ1Z2ZpbGUsIGRp cik7DQorICBzdHJjYXQgKGRlYnVnZmlsZSwgIi8iKTsNCisgIHN0cmNhdCAo ZGVidWdmaWxlLCBiYXNlbmFtZSk7DQorDQorICBpZiAoc2VwYXJhdGVfZGVi dWdfZmlsZV9leGlzdHMgKGRlYnVnZmlsZSwgY3JjMzIpKQ0KKyAgICB7DQor ICAgICAgeGZyZWUgKGJhc2VuYW1lKTsNCisgICAgICB4ZnJlZSAoZGlyKTsN CisgICAgICByZXR1cm4geHN0cmR1cCAoZGVidWdmaWxlKTsNCisgICAgfQ0K KyAgDQorICB4ZnJlZSAoYmFzZW5hbWUpOw0KKyAgeGZyZWUgKGRpcik7DQor ICByZXR1cm4gTlVMTDsNCit9DQorDQorDQogLyogVGhpcyBpcyB0aGUgc3lt Ym9sLWZpbGUgY29tbWFuZC4gIFJlYWQgdGhlIGZpbGUsIGFuYWx5emUgaXRz DQogICAgc3ltYm9scywgYW5kIGFkZCBhIHN0cnVjdCBzeW10YWIgdG8gYSBz eW10YWIgbGlzdC4gIFRoZSBzeW50YXggb2YNCiAgICB0aGUgY29tbWFuZCBp cyByYXRoZXIgYml6YXJyZS0tKDEpIGJ1aWxkYXJndiBpbXBsZW1lbnRzIHZh cmlvdXMNCkBAIC0xNjM5LDYgKzE4MDgsOCBAQA0KICAgbG9uZyBuZXdfbW9k dGltZTsNCiAgIGludCByZXJlYWRfb25lID0gMDsNCiAgIHN0cnVjdCBzdGF0 IG5ld19zdGF0YnVmOw0KKyAgY2hhciAqZGVidWdfZmlsZTsNCisgIHVuc2ln bmVkIGxvbmcgY3JjMzI7DQogICBpbnQgcmVzOw0KIA0KICAgLyogV2l0aCB0 aGUgYWRkaXRpb24gb2Ygc2hhcmVkIGxpYnJhcmllcywgdGhpcyBzaG91bGQg YmUgbW9kaWZpZWQsDQpAQCAtMTgyMiw2ICsxOTkzLDI3IEBADQogCSAgICAg ICAgIG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgKHN1Y2ggYXMgX3NpZ3RyYW1w LCBvciB3aGF0ZXZlcikuICAqLw0KIA0KIAkgICAgICBUQVJHRVRfU1lNRklM RV9QT1NUUkVBRCAob2JqZmlsZSk7DQorDQorCSAgICAgIC8qIFZlcmlmeSB0 aGUgY2hlY2tzdW0gb2YgYSBwcmV2aW91c2x5IGxvYWRlZCBzZXBhcmF0ZSBk ZWJ1ZyBmaWxlLiAqLw0KKwkgICAgICBpZiAob2JqZmlsZS0+c2VwYXJhdGVf ZGVidWdfb2JqZmlsZSkNCisJCXsNCisJCSAgZGVidWdfZmlsZSA9IGdldF9k ZWJ1Z19saW5rX2luZm8gKG9iamZpbGUsICZjcmMzMik7DQorCQkgIGlmIChk ZWJ1Z19maWxlKQ0KKwkJICAgIHsNCisJCSAgICAgIGlmICghc2VwYXJhdGVf ZGVidWdfZmlsZV9leGlzdHMgKG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29i amZpbGUtPm5hbWUsIGNyYzMyKSkNCisJCQl7DQorCQkJICAvKiBUaGUgb2xk IHNlcGFyYXRlIGRlYnVnIHN5bWJvbHMgZmlsZSBpcyBpbnZhbGlkICovDQor CQkJICBmcmVlX29iamZpbGUgKG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29i amZpbGUpOw0KKwkJCX0NCisJCSAgICAgIHhmcmVlIChkZWJ1Z19maWxlKTsN CisJCSAgICB9DQorCQkgIGVsc2UNCisJCSAgICB7DQorCQkgICAgICAvKiBO byBtb3JlIGRlYnVnIGxpbmssIGtpbGwgb2xkIHNlcGFyYXRlIGRlYnVnIHN5 bWJvbHMgKi8NCisJCSAgICAgIGZyZWVfb2JqZmlsZSAob2JqZmlsZS0+c2Vw YXJhdGVfZGVidWdfb2JqZmlsZSk7DQorCQkgICAgfQ0KKwkJfQ0KKwkgICAg ICANCiAJICAgIH0NCiAJfQ0KICAgICB9DQpAQCAtMzMzNiw0ICszNTI4LDE3 IEBADQogCQkgICJjYWNoZS5cbiIsDQogCQkgICZzZXRsaXN0KSwNCiAgICAg ICZzaG93bGlzdCk7DQorDQorICBkZWJ1Z19maWxlX2RpcmVjdG9yeSA9IHhz dHJkdXAgKERFQlVHRElSKTsNCisgIGMgPSBhZGRfc2V0X2NtZCAoImRlYnVn LWZpbGUtZGlyZWN0b3J5IiwgY2xhc3Nfc3VwcG9ydCwgdmFyX3N0cmluZywN CisJCSAgIChjaGFyICopICZkZWJ1Z19maWxlX2RpcmVjdG9yeSwNCisJCSAg ICJTZXQgdGhlIGRpcmVjdG9yeSB3aGVyZSBzZXBhcmF0ZSBkZWJ1ZyBzeW1i b2xzIGFyZSBzZWFyY2hlZCBmb3IuXG4iDQorCQkgICAiU2VwYXJhdGUgZGVi dWcgc3ltYm9scyBhcmUgZmlyc3Qgc2VhcmNoZWQgZm9yIGluIHRoZSBzYW1l XG4iDQorCQkgICAiZGlyZWN0b3J5IGFzIHRoZSBiaW5hcnksIHRoZW4gaW4g dGhlIC5kZWJ1ZyBzdWJkaXJlY3RvcnksXG4iDQorCQkgICAiYW5kIGxhc3Rs eSBhdCB0aGUgcGF0aCBvZiB0aGUgZGlyZWN0b3J5IG9mIHRoZSBiaW5hcnkg d2l0aFxuIg0KKwkJICAgInRoZSBnbG9iYWwgZGVidWctZmlsZSBkaXJlY3Rv cnkgcHJlcGVuZGVkXG4iLA0KKwkJICAgJnNldGxpc3QpOw0KKyAgYWRkX3No b3dfZnJvbV9zZXQgKGMsICZzaG93bGlzdCk7DQorICBjLT5jb21wbGV0ZXIg PSBmaWxlbmFtZV9jb21wbGV0ZXI7DQorDQogfQ0KZGlmZiAtLWV4Y2x1ZGUg Jyp+JyAtLWV4Y2x1ZGUgJyoub3JpZycgLS1leGNsdWRlICcqLnJlaicgLS1l eGNsdWRlICcuIyonIC0tZXhjbHVkZSAnKi5vJyAtLWV4Y2x1ZGUgQ1ZTIC0t ZXhjbHVkZSBTQ0NTIC0tZXhjbHVkZSBSQ1MgLS1leGNsdWRlICcuKi5mbGFn cycgLS1leGNsdWRlIC5jdnNpZ25vcmUgLS1leGNsdWRlIC5kZXBlbmQgLXVy IGdkYi01LjIuMS9nZGIvdXRpbHMuYyBnZGItNS4yLjEuc2VwYXJhdGVfZGVi dWdfc3ltYm9scy9nZGIvdXRpbHMuYw0KLS0tIGdkYi01LjIuMS9nZGIvdXRp bHMuYwkyMDAyLTAzLTI4IDA1OjI4OjAxLjAwMDAwMDAwMCArMDEwMA0KKysr IGdkYi01LjIuMS5zZXBhcmF0ZV9kZWJ1Z19zeW1ib2xzL2dkYi91dGlscy5j CTIwMDItMDktMjMgMTI6Mzc6MDUuMDAwMDAwMDAwICswMjAwDQpAQCAtMjU2 MywzICsyNTYzLDY5IEBADQogICByZXR1cm4geHN0cmR1cCAoZmlsZW5hbWUp Ow0KICNlbmRpZg0KIH0NCisNCit1bnNpZ25lZCBsb25nDQorY2FsY19jcmMz MiAodW5zaWduZWQgbG9uZyBjcmMsIHVuc2lnbmVkIGNoYXIgKmJ1Ziwgc2l6 ZV90IGxlbikNCit7DQorICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9uZyBj cmMzMl90YWJsZVsyNTZdID0NCisgICAgew0KKyAgICAgIDB4MDAwMDAwMDAs IDB4NzcwNzMwOTYsIDB4ZWUwZTYxMmMsIDB4OTkwOTUxYmEsIDB4MDc2ZGM0 MTksDQorICAgICAgMHg3MDZhZjQ4ZiwgMHhlOTYzYTUzNSwgMHg5ZTY0OTVh MywgMHgwZWRiODgzMiwgMHg3OWRjYjhhNCwNCisgICAgICAweGUwZDVlOTFl LCAweDk3ZDJkOTg4LCAweDA5YjY0YzJiLCAweDdlYjE3Y2JkLCAweGU3Yjgy ZDA3LA0KKyAgICAgIDB4OTBiZjFkOTEsIDB4MWRiNzEwNjQsIDB4NmFiMDIw ZjIsIDB4ZjNiOTcxNDgsIDB4ODRiZTQxZGUsDQorICAgICAgMHgxYWRhZDQ3 ZCwgMHg2ZGRkZTRlYiwgMHhmNGQ0YjU1MSwgMHg4M2QzODVjNywgMHgxMzZj OTg1NiwNCisgICAgICAweDY0NmJhOGMwLCAweGZkNjJmOTdhLCAweDhhNjVj OWVjLCAweDE0MDE1YzRmLCAweDYzMDY2Y2Q5LA0KKyAgICAgIDB4ZmEwZjNk NjMsIDB4OGQwODBkZjUsIDB4M2I2ZTIwYzgsIDB4NGM2OTEwNWUsIDB4ZDU2 MDQxZTQsDQorICAgICAgMHhhMjY3NzE3MiwgMHgzYzAzZTRkMSwgMHg0YjA0 ZDQ0NywgMHhkMjBkODVmZCwgMHhhNTBhYjU2YiwNCisgICAgICAweDM1YjVh OGZhLCAweDQyYjI5ODZjLCAweGRiYmJjOWQ2LCAweGFjYmNmOTQwLCAweDMy ZDg2Y2UzLA0KKyAgICAgIDB4NDVkZjVjNzUsIDB4ZGNkNjBkY2YsIDB4YWJk MTNkNTksIDB4MjZkOTMwYWMsIDB4NTFkZTAwM2EsDQorICAgICAgMHhjOGQ3 NTE4MCwgMHhiZmQwNjExNiwgMHgyMWI0ZjRiNSwgMHg1NmIzYzQyMywgMHhj ZmJhOTU5OSwNCisgICAgICAweGI4YmRhNTBmLCAweDI4MDJiODllLCAweDVm MDU4ODA4LCAweGM2MGNkOWIyLCAweGIxMGJlOTI0LA0KKyAgICAgIDB4MmY2 ZjdjODcsIDB4NTg2ODRjMTEsIDB4YzE2MTFkYWIsIDB4YjY2NjJkM2QsIDB4 NzZkYzQxOTAsDQorICAgICAgMHgwMWRiNzEwNiwgMHg5OGQyMjBiYywgMHhl ZmQ1MTAyYSwgMHg3MWIxODU4OSwgMHgwNmI2YjUxZiwNCisgICAgICAweDlm YmZlNGE1LCAweGU4YjhkNDMzLCAweDc4MDdjOWEyLCAweDBmMDBmOTM0LCAw eDk2MDlhODhlLA0KKyAgICAgIDB4ZTEwZTk4MTgsIDB4N2Y2YTBkYmIsIDB4 MDg2ZDNkMmQsIDB4OTE2NDZjOTcsIDB4ZTY2MzVjMDEsDQorICAgICAgMHg2 YjZiNTFmNCwgMHgxYzZjNjE2MiwgMHg4NTY1MzBkOCwgMHhmMjYyMDA0ZSwg MHg2YzA2OTVlZCwNCisgICAgICAweDFiMDFhNTdiLCAweDgyMDhmNGMxLCAw eGY1MGZjNDU3LCAweDY1YjBkOWM2LCAweDEyYjdlOTUwLA0KKyAgICAgIDB4 OGJiZWI4ZWEsIDB4ZmNiOTg4N2MsIDB4NjJkZDFkZGYsIDB4MTVkYTJkNDks IDB4OGNkMzdjZjMsDQorICAgICAgMHhmYmQ0NGM2NSwgMHg0ZGIyNjE1OCwg MHgzYWI1NTFjZSwgMHhhM2JjMDA3NCwgMHhkNGJiMzBlMiwNCisgICAgICAw eDRhZGZhNTQxLCAweDNkZDg5NWQ3LCAweGE0ZDFjNDZkLCAweGQzZDZmNGZi LCAweDQzNjllOTZhLA0KKyAgICAgIDB4MzQ2ZWQ5ZmMsIDB4YWQ2Nzg4NDYs IDB4ZGE2MGI4ZDAsIDB4NDQwNDJkNzMsIDB4MzMwMzFkZTUsDQorICAgICAg MHhhYTBhNGM1ZiwgMHhkZDBkN2NjOSwgMHg1MDA1NzEzYywgMHgyNzAyNDFh YSwgMHhiZTBiMTAxMCwNCisgICAgICAweGM5MGMyMDg2LCAweDU3NjhiNTI1 LCAweDIwNmY4NWIzLCAweGI5NjZkNDA5LCAweGNlNjFlNDlmLA0KKyAgICAg IDB4NWVkZWY5MGUsIDB4MjlkOWM5OTgsIDB4YjBkMDk4MjIsIDB4YzdkN2E4 YjQsIDB4NTliMzNkMTcsDQorICAgICAgMHgyZWI0MGQ4MSwgMHhiN2JkNWMz YiwgMHhjMGJhNmNhZCwgMHhlZGI4ODMyMCwgMHg5YWJmYjNiNiwNCisgICAg ICAweDAzYjZlMjBjLCAweDc0YjFkMjlhLCAweGVhZDU0NzM5LCAweDlkZDI3 N2FmLCAweDA0ZGIyNjE1LA0KKyAgICAgIDB4NzNkYzE2ODMsIDB4ZTM2MzBi MTIsIDB4OTQ2NDNiODQsIDB4MGQ2ZDZhM2UsIDB4N2E2YTVhYTgsDQorICAg ICAgMHhlNDBlY2YwYiwgMHg5MzA5ZmY5ZCwgMHgwYTAwYWUyNywgMHg3ZDA3 OWViMSwgMHhmMDBmOTM0NCwNCisgICAgICAweDg3MDhhM2QyLCAweDFlMDFm MjY4LCAweDY5MDZjMmZlLCAweGY3NjI1NzVkLCAweDgwNjU2N2NiLA0KKyAg ICAgIDB4MTk2YzM2NzEsIDB4NmU2YjA2ZTcsIDB4ZmVkNDFiNzYsIDB4ODlk MzJiZTAsIDB4MTBkYTdhNWEsDQorICAgICAgMHg2N2RkNGFjYywgMHhmOWI5 ZGY2ZiwgMHg4ZWJlZWZmOSwgMHgxN2I3YmU0MywgMHg2MGIwOGVkNSwNCisg ICAgICAweGQ2ZDZhM2U4LCAweGExZDE5MzdlLCAweDM4ZDhjMmM0LCAweDRm ZGZmMjUyLCAweGQxYmI2N2YxLA0KKyAgICAgIDB4YTZiYzU3NjcsIDB4M2Zi NTA2ZGQsIDB4NDhiMjM2NGIsIDB4ZDgwZDJiZGEsIDB4YWYwYTFiNGMsDQor ICAgICAgMHgzNjAzNGFmNiwgMHg0MTA0N2E2MCwgMHhkZjYwZWZjMywgMHhh ODY3ZGY1NSwgMHgzMTZlOGVlZiwNCisgICAgICAweDQ2NjliZTc5LCAweGNi NjFiMzhjLCAweGJjNjY4MzFhLCAweDI1NmZkMmEwLCAweDUyNjhlMjM2LA0K KyAgICAgIDB4Y2MwYzc3OTUsIDB4YmIwYjQ3MDMsIDB4MjIwMjE2YjksIDB4 NTUwNTI2MmYsIDB4YzViYTNiYmUsDQorICAgICAgMHhiMmJkMGIyOCwgMHgy YmI0NWE5MiwgMHg1Y2IzNmEwNCwgMHhjMmQ3ZmZhNywgMHhiNWQwY2YzMSwN CisgICAgICAweDJjZDk5ZThiLCAweDViZGVhZTFkLCAweDliNjRjMmIwLCAw eGVjNjNmMjI2LCAweDc1NmFhMzljLA0KKyAgICAgIDB4MDI2ZDkzMGEsIDB4 OWMwOTA2YTksIDB4ZWIwZTM2M2YsIDB4NzIwNzY3ODUsIDB4MDUwMDU3MTMs DQorICAgICAgMHg5NWJmNGE4MiwgMHhlMmI4N2ExNCwgMHg3YmIxMmJhZSwg MHgwY2I2MWIzOCwgMHg5MmQyOGU5YiwNCisgICAgICAweGU1ZDViZTBkLCAw eDdjZGNlZmI3LCAweDBiZGJkZjIxLCAweDg2ZDNkMmQ0LCAweGYxZDRlMjQy LA0KKyAgICAgIDB4NjhkZGIzZjgsIDB4MWZkYTgzNmUsIDB4ODFiZTE2Y2Qs IDB4ZjZiOTI2NWIsIDB4NmZiMDc3ZTEsDQorICAgICAgMHgxOGI3NDc3Nywg MHg4ODA4NWFlNiwgMHhmZjBmNmE3MCwgMHg2NjA2M2JjYSwgMHgxMTAxMGI1 YywNCisgICAgICAweDhmNjU5ZWZmLCAweGY4NjJhZTY5LCAweDYxNmJmZmQz LCAweDE2NmNjZjQ1LCAweGEwMGFlMjc4LA0KKyAgICAgIDB4ZDcwZGQyZWUs IDB4NGUwNDgzNTQsIDB4MzkwM2IzYzIsIDB4YTc2NzI2NjEsIDB4ZDA2MDE2 ZjcsDQorICAgICAgMHg0OTY5NDc0ZCwgMHgzZTZlNzdkYiwgMHhhZWQxNmE0 YSwgMHhkOWQ2NWFkYywgMHg0MGRmMGI2NiwNCisgICAgICAweDM3ZDgzYmYw LCAweGE5YmNhZTUzLCAweGRlYmI5ZWM1LCAweDQ3YjJjZjdmLCAweDMwYjVm ZmU5LA0KKyAgICAgIDB4YmRiZGYyMWMsIDB4Y2FiYWMyOGEsIDB4NTNiMzkz MzAsIDB4MjRiNGEzYTYsIDB4YmFkMDM2MDUsDQorICAgICAgMHhjZGQ3MDY5 MywgMHg1NGRlNTcyOSwgMHgyM2Q5NjdiZiwgMHhiMzY2N2EyZSwgMHhjNDYx NGFiOCwNCisgICAgICAweDVkNjgxYjAyLCAweDJhNmYyYjk0LCAweGI0MGJi ZTM3LCAweGMzMGM4ZWExLCAweDVhMDVkZjFiLA0KKyAgICAgIDB4MmQwMmVm OGQNCisgICAgfTsNCisgIHVuc2lnbmVkIGNoYXIgKmVuZDsNCisNCisgIGNy YyA9IH5jcmMgJiAweGZmZmZmZmZmOw0KKyAgZm9yIChlbmQgPSBidWYgKyBs ZW47IGJ1ZiA8IGVuZDsgKytidWYpDQorICAgIGNyYyA9IGNyYzMyX3RhYmxl WyhjcmMgXiAqYnVmKSAmIDB4ZmZdIF4gKGNyYyA+PiA4KTsNCisgIHJldHVy biB+Y3JjICYgMHhmZmZmZmZmZjs7DQorfQ0K --279707962-1496407829-1033569674=:5623--