From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id AKzLCqleXGdEiRUAWB0awg (envelope-from ) for ; Fri, 13 Dec 2024 11:19:53 -0500 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=felPrh/F; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 27C2D1E0BB; Fri, 13 Dec 2024 11:19:53 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.3 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,URIBL_SBL_A autolearn=unavailable autolearn_force=no version=4.0.0 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 42A6E1E092 for ; Fri, 13 Dec 2024 11:19:48 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0C9BD3858403 for ; Fri, 13 Dec 2024 16:19:48 +0000 (GMT) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) by sourceware.org (Postfix) with ESMTPS id E2D463858290 for ; Fri, 13 Dec 2024 16:01:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E2D463858290 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E2D463858290 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=192.198.163.16 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1734105709; cv=none; b=GCgU8VJd5izVN5b2Bmv2bIQvZ3OKhulMkvi79y2Lx4ktcHlQDOkpGTqWVciKHh+FLn3dcX/ghZh8xaupmm2fsqZiXAkVHC0UzYzcgMvFvrQdT5gSI225HiK0KQKvVZOtGA53tAudOitvyZIswTPntFy23/FNVwzduvhhhBzvu1s= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1734105709; c=relaxed/simple; bh=jw9XEaeZMYZSpz3bY66Niv6ZguglA2aJf11pXFNn1iA=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=DicivzatCV1dpBjJjGzuPdOruGIK6OAcCA+V0ce9encna1JmWqeCgaodAVPcpybk59TX9YuPqsZD2wt0arjPUekAYU4YGrdGkqW4jQes+8YgjXLah9p5vKahuyLrnN9uJ0i3LOnWEqSGCy+MRzC3z9CcQuYGT9aDUqRcFFO0Wxc= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E2D463858290 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=felPrh/F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1734105709; x=1765641709; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=jw9XEaeZMYZSpz3bY66Niv6ZguglA2aJf11pXFNn1iA=; b=felPrh/Ft/fMZXK8FE9+eoz8VOOVhlyxafN/RKKxCDwUAv/JUXNbD0IK z4fW4bBF2ATp2DEktTM3ldKIJl8K8MoEd37LXVT2yDWkqW/mH0u8jlEkv 9J2SyIt4o6gOhtVReVf0Z9EJMXhrcm4mATCgfq+guf5RuvP2apmcb6m0d 7C/UxSya0R8ho4cxiXCUY9Vo52kIB8VhCTp2W7HktB86ht0GNVje0XUP8 TjNSApbN0AG2I/GrsPVQwvmV2SntX7FidW3LrulWvNH7wzcBWVA93jzNC 5CJRNGv/xUob5+/ei2nscL3ql7al8uMWPIOvAnbRkWAWZjrOunwO7xjU/ A==; X-CSE-ConnectionGUID: 1qJCFYseTlqdMXWcErR9HQ== X-CSE-MsgGUID: NsuokRnQR8mQRmA8idNiPA== X-IronPort-AV: E=McAfee;i="6700,10204,11285"; a="22149536" X-IronPort-AV: E=Sophos;i="6.12,231,1728975600"; d="scan'208";a="22149536" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2024 08:01:48 -0800 X-CSE-ConnectionGUID: l/6cNIyyQQazbHnxqqfaOw== X-CSE-MsgGUID: a0h+fJGRSniTfd+3SI0Kug== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.12,231,1728975600"; d="scan'208";a="101412061" Received: from gkldtt-dev-004.igk.intel.com (HELO localhost) ([10.123.221.202]) by fmviesa004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2024 08:01:46 -0800 From: Tankut Baris Aktemur To: gdb-patches@sourceware.org, Markus Metzger Subject: [PATCH v2 11/47] gdb, gdbserver, rsp, ze: acknowledge libraries Date: Fri, 13 Dec 2024 16:59:28 +0100 Message-Id: <20241213-upstream-intelgt-mvp-v2-11-5c4caeb7b33d@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20241213-upstream-intelgt-mvp-v2-0-5c4caeb7b33d@intel.com> References: <20241213-upstream-intelgt-mvp-v2-0-5c4caeb7b33d@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 Content-Transfer-Encoding: base64 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org RnJvbTogTWFya3VzIE1ldHpnZXIgPG1hcmt1cy50Lm1ldHpnZXJAaW50ZWwuY29tPgoKT24gc29t ZSBhY2NlbGVyYXRvciBkZXZpY2VzLCBkZXZpY2Ugc2hhcmVkIGxpYnJhcmllcyBhcmUgbG9hZGVk IGZyb20gYQpob3N0IHRocmVhZCByYXRoZXIgdGhhbiBmcm9tIGEgZGV2aWNlIHRocmVhZC4gIFRo ZSByZXBvcnRpbmcgZW50aXR5IG1heQpub3QgYmUgdGhlIG9uZSB0aGF0IGFjdHVhbGx5IGRvZXMg dGhlIGxvYWQuCgpJbnRlbCBHUFUgZGV2aWNlcywgZm9yIGV4YW1wbGUsIHRoYXQgYXJlIGJhc2Vk IG9uIExldmVsLVplcm8sIHdpbGwgcmVwb3J0CnNoYXJlZCBsaWJyYXJ5IGV2ZW50cyB2aWEgdGhl IGRldmljZSdzIGRlYnVnIGludGVyZmFjZS4gIFRoaXMgaXMgdHJpZ2dlcmVkCmZyb20gYSBob3N0 IHRocmVhZCBjYWxsaW5nIHRoZSBydW4tdGltZSBpbnRlcmZhY2UgZm9yIGxvYWRpbmcgYSBkZXZp Y2UKc2hhcmVkIGxpYnJhcnkuCgpUaGUgTGV2ZWwtWmVybyBydW4tdGltZSBlbnN1cmVzIHRoYXQg dGhpcyBob3N0IHRocmVhZCB3aWxsIG5vdCByZXR1cm4KdW50aWwgdGhlIHJlc3BlY3RpdmUgZGVi dWcgZXZlbnQgaGFzIGJlZW4gYWNrbm93bGVkZ2VkIGJ5IHRoZSBkZWJ1Z2dlci4KVGhpcyBhbGxv d3MgZGVidWdnZXJzIHRvIHNldCBicmVha3BvaW50cyBiZWZvcmUgdGhlIG5ldyBsaWJyYXJ5IGlz IHVzZWQuCgpBZGQgYSBtZWNoYW5pc20gdGhhdCBhbGxvd3MgZ2Ric2VydmVyIHRvIHJlcXVlc3Qg YWNrbm93bGVkZ2VtZW50IG9mIG5ld2x5CnJlcG9ydGVkIHNoYXJlZCBsaWJyYXJpZXMgYW5kIEdE QiB0byBhY2tub3dsZWRnZSByZXF1ZXN0ZWQgbGlicmFyaWVzIGFmdGVyCnBsYWNpbmcgYnJlYWtw b2ludHMuCi0tLQogZ2RiL05FV1MgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKysrCiBnZGIv ZG9jL2dkYi50ZXhpbmZvICAgICAgICAgICB8ICA3NSArKysrKysrKysrKysrKysrKysrKysrKysr LS0tLQogZ2RiL2ZlYXR1cmVzL2xpYnJhcnktbGlzdC5kdGQgfCAgMTAgKystLQogZ2RiL3JlbW90 ZS5jICAgICAgICAgICAgICAgICAgfCAgODEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIGdkYi9zb2xpYi10YXJnZXQuYyAgICAgICAgICAgIHwgIDU5ICsrKysrKysrKysrKysrKysr KysrKystCiBnZGIvc29saWIuYyAgICAgICAgICAgICAgICAgICB8ICAyNCArKysrKysrKystCiBn ZGIvc29saXN0LmggICAgICAgICAgICAgICAgICB8ICAgNyArKysKIGdkYi90YXJnZXQtZGVsZWdh dGVzLWdlbi5jICAgIHwgIDUwICsrKysrKysrKysrKysrKysrKysrCiBnZGIvdGFyZ2V0LmMgICAg ICAgICAgICAgICAgICB8ICAxNiArKysrKysrCiBnZGIvdGFyZ2V0LmggICAgICAgICAgICAgICAg ICB8ICAyMSArKysrKysrKysKIGdkYnNlcnZlci9kbGwuY2MgICAgICAgICAgICAgIHwgMTAwICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogZ2Ric2VydmVyL2RsbC5oICAg ICAgICAgICAgICAgfCAgMjUgKysrKysrKy0tLQogZ2Ric2VydmVyL3NlcnZlci5jYyAgICAgICAg ICAgfCAxMDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBnZGJz ZXJ2ZXIvc2VydmVyLmggICAgICAgICAgICB8ICAgNCArKwogZ2Ric2VydmVyL3RhcmdldC5jYyAg ICAgICAgICAgfCAgMTQgKysrKysrCiBnZGJzZXJ2ZXIvdGFyZ2V0LmggICAgICAgICAgICB8ICAy MCArKysrKysrKwogMTYgZmlsZXMgY2hhbmdlZCwgNTg1IGluc2VydGlvbnMoKyksIDM1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKaW5kZXggYjYwZjY2NDAz MTE2ZTczYjRjNWQyYjJiNGQ4NDc1NzhkYTZlNzAxYS4uNjk4ZWE5ZDU4OTg3MDM4OGM1Njc4MmEz ZWM1MzU4OTliNzY4ZmU3MiAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIvZ2RiL05FV1MKQEAg LTE4MCw2ICsxODAsMTMgQEAgcVhmZXI6bGlicmFyaWVzOnJlYWQncyByZXNwb25zZQogICBpbmRp Y2F0ZXMgc3VwcG9ydCBieSBzdXBwbHlpbmcgcVhmZXI6bGlicmFyaWVzOnJlYWQ6aW4tbWVtb3J5 LWxpYnJhcnkrIGluIHRoZQogICBxU3VwcG9ydGVkIHBhY2tldC4KIAordkFjazpsaWJyYXJ5Cit2 QWNrOmluLW1lbW9yeS1saWJyYXJ5CisKKyAgQWNrbm93bGVkZ2UgbGlicmFyaWVzIHRvIGdkYnNl cnZlciB3aGVuIHJlcXVlc3RlZC4gIExpYnJhcmllcyBhcmUgYWNrbm93bGVkZ2VkCisgIGFmdGVy IHRoZSBpbml0aWFsIHByb2Nlc3NpbmcgYnkgR0RCIHN1Y2ggYXMgbG9hZGluZyBzeW1ib2xzIGFu ZCBwbGFjaW5nCisgIGJyZWFrcG9pbnRzLgorCiAqIENoYW5nZWQgcmVtb3RlIHBhY2tldHMKIAog cVhmZXI6ZmVhdHVyZXM6cmVhZDp0YXJnZXQueG1sCmRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50 ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwppbmRleCBjODRhODM3MmMyMjNlNzI0ZTMwNDIz MjJhOGJlZTA3YjEyNDIzMDUwLi4wM2ZjYmVlOTQxOTg2OTJiMGUwYmIxNjUxYWRkOTRkODE1ZTI4 N2YwIDEwMDY0NAotLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCisrKyBiL2dkYi9kb2MvZ2RiLnRl eGluZm8KQEAgLTQzNDQ3LDYgKzQzNDQ3LDQzIEBAIGZvciBzdWNjZXNzIChAcHhyZWZ7U3RvcCBS ZXBseSBQYWNrZXRzfSkKIEBjaW5kZXggQHNhbXB7dlN0b3BwZWR9IHBhY2tldAogQHhyZWZ7Tm90 aWZpY2F0aW9uIFBhY2tldHN9LgogCitAaXRlbSB2QWNrOkB2YXJ7dHlwZX06QHZhcnthcmd9WyxA dmFye2FyZ31AZG90c3t9XVs7QHZhcnt0eXBlfTpAdmFye2FyZ31bLEB2YXJ7YXJnfUBkb3Rze31d XUBkb3Rze30KK0BjaW5kZXggQHNhbXB7dkFja30gcGFja2V0CitAYW5jaG9ye3ZBY2sgcGFja2V0 fQorCitBY2tub3dsZWRnZSBhIEBzYW1wezt9LXNlcGFyYXRlZCBsaXN0IG9mIHJlbW90ZSBzdHVi IHJlc3BvbnNlcywgZWFjaAord2l0aCBhIEBzYW1weyx9LXNlcGFyYXRlZCBsaXN0IG9mIGFyZ3Vt ZW50cyBkZWZpbmVkIGJ5IGl0cyBAdmFye3R5cGV9LgorVGhlIGZvbGxvd2luZyBAdmFye3R5cGV9 cyB3aXRoIHRoZWlyIHJlc3BlY3RpdmUgYXJndW1lbnRzIGFyZQorc3VwcG9ydGVkOgorCitAdGFi bGUgQHNhbXAKK0BpdGVtIGxpYnJhcnk6QHZhcntuYW1lfQorQWNrbm93bGVkZ2UgdGhlIHNoYXJl ZCBsaWJyYXJ5IHRoYXQgaGFkIGJlZW4gcmVwb3J0ZWQgYXMKK0BzYW1wezxsaWJyYXJ5IG5hbWU9 IkB2YXJ7bmFtZX0iIGFjaz0ieWVzIj59IGluIHRoZSByZW1vdGUgc3R1YidzCitAc2FtcHtxWGZl cjpsaWJyYXJpZXM6cmVhZH0gcmVzcG9uc2UuICBAdmFsdWV7R0RCTn0gYWNrbm93bGVkZ2VzCits aWJyYXJpZXMgYWZ0ZXIgaW5pdGlhbCBwcm9jZXNzaW5nIGxpa2UgbG9hZGluZyBzeW1ib2xzIGFu ZCBwbGFjaW5nCiticmVha3BvaW50cy4KKworQGl0ZW0gaW4tbWVtb3J5LWxpYnJhcnk6QHZhcnti ZWdpbn0sQHZhcntlbmR9CitBY2tub3dsZWRnZSB0aGUgc2hhcmVkIGxpYnJhcnkgdGhhdCBoYWQg YmVlbiByZXBvcnRlZCBhcworQHNhbXB7PGluLW1lbW9yeS1saWJyYXJ5IGJlZ2luPSJAdmFye2Jl Z2lufSIgZW5kPSJAdmFye2VuZH0iIGFjaz0ieWVzIj59CitpbiB0aGUgcmVtb3RlIHN0dWIncyBA c2FtcHtxWGZlcjpsaWJyYXJpZXM6cmVhZH0gcmVzcG9uc2UuCitAdmFsdWV7R0RCTn0gYWNrbm93 bGVkZ2VzIGxpYnJhcmllcyBhZnRlciBpbml0aWFsIHByb2Nlc3NpbmcgbGlrZQorbG9hZGluZyBz eW1ib2xzIGFuZCBwbGFjaW5nIGJyZWFrcG9pbnRzLgorQGVuZCB0YWJsZQorCitSZXBseToKK0B0 YWJsZSBAc2FtcAorQGl0ZW0gT0sKK2ZvciBzdWNjZXNzCitAaXRlbSBFIEB2YXJ7bm59Citmb3Ig YW4gZXJyb3IKK0BlbmQgdGFibGUKKworQHZhbHVle0dEQk59IGluZGljYXRlcyBzdXBwb3J0IGZv ciBhY2tub3dsZWRnaW5nIGluZGl2aWR1YWwgdHlwZXMgb2YKK3Jlc3BvbnNlcyBieSBzdXBwbHlp bmcgYW4gYXBwcm9wcmlhdGUgQHNhbXB7cVN1cHBvcnRlZH0gZmVhdHVyZQorKEBweHJlZntxU3Vw cG9ydGVkfSkgZm9yIGVhY2ggdHlwZSB0aGF0IGl0IHN1cHBvcnRzLgorCiBAaXRlbSBYIEB2YXJ7 YWRkcn0sQHZhcntsZW5ndGh9OkB2YXJ7WFhAZG90c3t9fQogQGFuY2hvcntYIHBhY2tldH0KIEBj aW5kZXggQHNhbXB7WH0gcGFja2V0CkBAIC00NDc4NSw2ICs0NDgyMiwxNCBAQCBkaWRuJ3Qgc3Vw cG9ydCBAc2FtcHtFLkB2YXJ7ZXJydGV4dH19LCBhbmQgb2xkZXIgdmVyc2lvbnMgb2YKIAogTmV3 IHBhY2tldHMgc2hvdWxkIGJlIHdyaXR0ZW4gdG8gc3VwcG9ydCBAc2FtcHtFLkB2YXJ7ZXJydGV4 dH19CiByZWdhcmRsZXNzIG9mIHRoaXMgZmVhdHVyZSBiZWluZyB0cnVlIG9yIG5vdC4KKworQGl0 ZW0gdkFjazpsaWJyYXJ5CitUaGlzIGZlYXR1cmUgaW5kaWNhdGVzIHdoZXRoZXIgQHZhbHVle0dE Qk59IHN1cHBvcnRzIGFja25vd2xlZGdpbmcKK2xpYnJhcmllcyByZXBvcnRlZCBieSBuYW1lLgor CitAaXRlbSB2QWNrOmluLW1lbW9yeS1saWJyYXJ5CitUaGlzIGZlYXR1cmUgaW5kaWNhdGVzIHdo ZXRoZXIgQHZhbHVle0dEQk59IHN1cHBvcnRzIGFja25vd2xlZGdpbmcKK2luLW1lbW9yeSBsaWJy YXJpZXMgcmVwb3J0ZWQgYnkgYmVnaW4gYW5kIGVuZCB0YXJnZXQgYWRkcmVzcy4KIEBlbmQgdGFi bGUKIAogU3R1YnMgc2hvdWxkIGlnbm9yZSBhbnkgdW5rbm93biB2YWx1ZXMgZm9yCkBAIC00ODAz MSw2ICs0ODA3NiwxMyBAQCBhc3NvY2lhdGVkIG5hbWUgb3IgYmVnaW4gYW5kIGVuZCBhZGRyZXNz ZXMgYW5kIG9uZSBvciBtb3JlIHNlZ21lbnQgb3IKIHNlY3Rpb24gYmFzZSBhZGRyZXNzZXMsIHdo aWNoIHJlcG9ydCB3aGVyZSB0aGUgbGlicmFyeSB3YXMgbG9hZGVkIGluCiBtZW1vcnkuCiAKK0l0 IG1heSBvcHRpb25hbGx5IGNvbnRhaW4gYSByZXF1ZXN0IGZvciBhY2tub3dsZWRnaW5nIHRoYXQg bGlicmFyeS4KK0B2YWx1ZXtHREJOfSBpbmRpY2F0ZXMgc3VwcG9ydCBmb3IgYWNrbm93bGVkZ2lu ZyBsaWJyYXJpZXMgYnkKK3N1cHBseWluZyBhbiBhcHByb3ByaWF0ZSBAc2FtcHtxU3VwcG9ydGVk fSBmZWF0dXJlCisoQHB4cmVme3FTdXBwb3J0ZWR9KS4gIFRoZSByZW1vdGUgc3R1YiBtdXN0IG5v dCByZXF1ZXN0CithY2tub3dsZWRnZW1lbnQgb2YgbGlicmFyaWVzIHVubGVzcyBAdmFsdWV7R0RC Tn0gaW5kaWNhdGVkIHN1cHBvcnQgZm9yCitpdC4KKwogRm9yIHRoZSBjb21tb24gY2FzZSBvZiBs aWJyYXJpZXMgdGhhdCBhcmUgZnVsbHkgbGlua2VkIGJpbmFyaWVzLCB0aGUKIGxpYnJhcnkgc2hv dWxkIGhhdmUgYSBsaXN0IG9mIHNlZ21lbnRzLiAgSWYgdGhlIHRhcmdldCBzdXBwb3J0cwogZHlu YW1pYyBsaW5raW5nIG9mIGEgcmVsb2NhdGFibGUgb2JqZWN0IGZpbGUsIGl0cyBsaWJyYXJ5IFhN TCBlbGVtZW50CkBAIC00ODA1NiwxNiArNDgxMDgsMjEgQEAgb2Zmc2V0LCBsb29rcyBsaWtlIHRo aXM6CiA8L2xpYnJhcnktbGlzdD4KIEBlbmQgc21hbGxleGFtcGxlCiAKLUEgY29ycmVzcG9uZGlu ZyBtZW1vcnkgbWFwIGZvciBhbiBpbi1tZW1vcnkgbGlicmFyeSBsb29rcyBsaWtlIHRoaXM6CitB IGNvcnJlc3BvbmRpbmcgbWVtb3J5IG1hcCBmb3IgYW4gaW4tbWVtb3J5IGxpYnJhcnkgd2l0aCBh IHJlcXVlc3QgZm9yCithY2tub3dsZWRnZW1lbnQgbG9va3MgbGlrZSB0aGlzOgogCiBAc21hbGxl eGFtcGxlCiA8bGlicmFyeS1saXN0PgotICA8aW4tbWVtb3J5LWxpYnJhcnkgYmVnaW49IjB4YTAw MDAwMCIgZW5kPSIweGEwMDEwMDAiPgorICA8aW4tbWVtb3J5LWxpYnJhcnkgYmVnaW49IjB4YTAw MDAwMCIgZW5kPSIweGEwMDEwMDAiIGFjaz0ieWVzIj4KICAgICA8c2VnbWVudCBhZGRyZXNzPSIw eDEwMDAwMDAwIi8+CiAgIDwvbGlicmFyeT4KIDwvbGlicmFyeS1saXN0PgogQGVuZCBzbWFsbGV4 YW1wbGUKIAorQHZhbHVle0dEQk59IHdpbGwgYWNrbm93bGVkZ2UgdGhlIGxpYnJhcnkgd2l0aCBh IEBzYW1we3ZBY2s7bGlicmFyeX0KK29yLCBhcyBpbiB0aGlzIGNhc2UsIGEgQHNhbXB7dkFjaztp bi1tZW1vcnktbGlicmFyeX0gcGFja2V0LgorQHhyZWZ7dkFjayBwYWNrZXR9LgorCiBBbm90aGVy IHNpbXBsZSBtZW1vcnkgbWFwLCB3aXRoIG9uZSBsb2FkZWQgbGlicmFyeSB3aXRoIHRocmVlCiBh bGxvY2F0ZWQgc2VjdGlvbnMgKC50ZXh0LCAuZGF0YSwgLmJzcyksIGxvb2tzIGxpa2UgdGhpczoK IApAQCAtNDgwODQsMTYgKzQ4MTQxLDE4IEBAIFRoZSBmb3JtYXQgb2YgYSBsaWJyYXJ5IGxpc3Qg aXMgZGVzY3JpYmVkIGJ5IHRoaXMgRFREOgogQHNtYWxsZXhhbXBsZQogPCEtLSBsaWJyYXJ5LWxp c3Q6IFJvb3QgZWxlbWVudCB3aXRoIHZlcnNpb25pbmcgLS0+CiA8IUVMRU1FTlQgbGlicmFyeS1s aXN0ICAgICAgICAgICAgKGxpYnJhcnkgfCBpbi1tZW1vcnktbGlicmFyeSkqPgotPCFBVFRMSVNU IGxpYnJhcnktbGlzdCAgICAgICAgICAgIHZlcnNpb24gQ0RBVEEgICAjRklYRUQgICIxLjEiPgor PCFBVFRMSVNUIGxpYnJhcnktbGlzdCAgICAgICAgICAgIHZlcnNpb24gQ0RBVEEgICAgICAgICNG SVhFRCAgIjEuMiI+CiA8IUVMRU1FTlQgbGlicmFyeSAgICAgICAgICAgICAgICAgKHNlZ21lbnQq LCBzZWN0aW9uKik+Ci08IUFUVExJU1QgbGlicmFyeSAgICAgICAgICAgICAgICAgbmFtZSAgICBD REFUQSAgICNSRVFVSVJFRD4KKzwhQVRUTElTVCBsaWJyYXJ5ICAgICAgICAgICAgICAgICBuYW1l ICAgIENEQVRBICAgICAgICAjUkVRVUlSRUQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhY2sgICAgICh5ZXMgfCBubykgICAnbm8nPgogPCFFTEVNRU5UIGluLW1lbW9yeS1saWJy YXJ5ICAgICAgIChzZWdtZW50Kiwgc2VjdGlvbiopPgotPCFBVFRMSVNUIGluLW1lbW9yeS1saWJy YXJ5ICAgICAgIGJlZ2luICAgIENEQVRBICAgI1JFUVVJUkVECi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZW5kICAgICAgQ0RBVEEgICAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgaW4t bWVtb3J5LWxpYnJhcnkgICAgICAgYmVnaW4gICAgQ0RBVEEgICAgICAgI1JFUVVJUkVECisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kICAgICAgQ0RBVEEgICAgICAgI1JFUVVJ UkVECisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNrICAgICAgKHllcyB8IG5v KSAgJ25vJz4KIDwhRUxFTUVOVCBzZWdtZW50ICAgICAgICAgICAgICAgICBFTVBUWT4KLTwhQVRU TElTVCBzZWdtZW50ICAgICAgICAgICAgICAgICBhZGRyZXNzIENEQVRBICAgI1JFUVVJUkVEPgor PCFBVFRMSVNUIHNlZ21lbnQgICAgICAgICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgICAgICAgICNS RVFVSVJFRD4KIDwhRUxFTUVOVCBzZWN0aW9uICAgICAgICAgICAgICAgICBFTVBUWT4KLTwhQVRU TElTVCBzZWN0aW9uICAgICAgICAgICAgICAgICBhZGRyZXNzIENEQVRBICAgI1JFUVVJUkVEPgor PCFBVFRMSVNUIHNlY3Rpb24gICAgICAgICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgICAgICAgICNS RVFVSVJFRD4KIEBlbmQgc21hbGxleGFtcGxlCiAKIEluIGFkZGl0aW9uLCBzZWdtZW50cyBhbmQg c2VjdGlvbiBkZXNjcmlwdG9ycyBjYW5ub3QgYmUgbWl4ZWQgd2l0aGluIGEKZGlmZiAtLWdpdCBh L2dkYi9mZWF0dXJlcy9saWJyYXJ5LWxpc3QuZHRkIGIvZ2RiL2ZlYXR1cmVzL2xpYnJhcnktbGlz dC5kdGQKaW5kZXggZjU1MDcxYzhlOTA2ZjA5MTc1MmU4Y2E3OGVjMjliY2Q3NjAyODQzMy4uNDcz YjhlYWE3MTliMWQzMTBmOWViNGZlOGY1MzFkZjg1MDA4ODQ1ZCAxMDA2NDQKLS0tIGEvZ2RiL2Zl YXR1cmVzL2xpYnJhcnktbGlzdC5kdGQKKysrIGIvZ2RiL2ZlYXR1cmVzL2xpYnJhcnktbGlzdC5k dGQKQEAgLTYsMTQgKzYsMTYgQEAKIAogPCEtLSBsaWJyYXJ5LWxpc3Q6IFJvb3QgZWxlbWVudCB3 aXRoIHZlcnNpb25pbmcgLS0+CiA8IUVMRU1FTlQgbGlicmFyeS1saXN0ICAobGlicmFyeSB8IGlu LW1lbW9yeS1saWJyYXJ5KSo+Ci08IUFUVExJU1QgbGlicmFyeS1saXN0ICB2ZXJzaW9uIENEQVRB ICAgI0ZJWEVEICAiMS4xIj4KKzwhQVRUTElTVCBsaWJyYXJ5LWxpc3QgIHZlcnNpb24gQ0RBVEEg ICAjRklYRUQgICIxLjIiPgogCiA8IUVMRU1FTlQgbGlicmFyeSAgICAgICAoc2VnbWVudCosIHNl Y3Rpb24qKT4KLTwhQVRUTElTVCBsaWJyYXJ5ICAgICAgIG5hbWUgICAgQ0RBVEEgICAjUkVRVUlS RUQ+Cis8IUFUVExJU1QgbGlicmFyeSAgICAgICBuYW1lICAgIENEQVRBICAgICAgICAjUkVRVUlS RUQKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjayAgICAgKHllcyB8IG5vKSAgICdubyc+CiAK IDwhRUxFTUVOVCBpbi1tZW1vcnktbGlicmFyeSAgICAgICAoc2VnbWVudCosIHNlY3Rpb24qKT4K LTwhQVRUTElTVCBpbi1tZW1vcnktbGlicmFyeSAgICAgICBiZWdpbiAgICBDREFUQSAgICNSRVFV SVJFRAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCAgICAgIENEQVRBICAg I1JFUVVJUkVEPgorPCFBVFRMSVNUIGluLW1lbW9yeS1saWJyYXJ5ICAgICAgIGJlZ2luICAgIENE QVRBICAgICAgICNSRVFVSVJFRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu ZCAgICAgIENEQVRBICAgICAgICNSRVFVSVJFRAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFjayAgICAgICh5ZXMgfCBubykgICdubyc+CiAKIDwhRUxFTUVOVCBzZWdtZW50ICAg ICAgIEVNUFRZPgogPCFBVFRMSVNUIHNlZ21lbnQgICAgICAgYWRkcmVzcyBDREFUQSAgICNSRVFV SVJFRD4KZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUuYwppbmRleCA3ZDA3 NGE1ZGYzMjJkNjhkZWQ4Zjk2YzQ4MzJiYzhjMjQ3NDM1YTRmLi4yODFlNjE2ZWI4MzAwOGU3NWRh OGExOGVmYWVlNzAwMWRkYmY2ZDBkIDEwMDY0NAotLS0gYS9nZGIvcmVtb3RlLmMKKysrIGIvZ2Ri L3JlbW90ZS5jCkBAIC0zNzYsNiArMzc2LDEyIEBAIGVudW0gewogICAvKiBTdXBwb3J0IHJlbW90 ZSBDVFJMLUMuICAqLwogICBQQUNLRVRfdkN0cmxDLAogCisgIC8qIFN1cHBvcnQgYWNrbm93bGVk Z2luZyBsaWJyYXJpZXMuICAqLworICBQQUNLRVRfdkFja19saWJyYXJ5LAorCisgIC8qIFN1cHBv cnQgYWNrbm93bGVkZ2luZyBpbi1tZW1vcnktbGlicmFyaWVzLiAgKi8KKyAgUEFDS0VUX3ZBY2tf aW5fbWVtb3J5X2xpYnJhcnksCisKICAgLyogU3VwcG9ydCBUQVJHRVRfV0FJVEtJTkRfTk9fUkVT VU1FRC4gICovCiAgIFBBQ0tFVF9ub19yZXN1bWVkLAogCkBAIC0xMTU0LDYgKzExNjAsOSBAQCBj bGFzcyByZW1vdGVfdGFyZ2V0IDogcHVibGljIHByb2Nlc3Nfc3RyYXR1bV90YXJnZXQKIAogICBi b29sIGlzX2FkZHJlc3NfdGFnZ2VkIChnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgYWRkcmVz cykgb3ZlcnJpZGU7CiAKKyAgdm9pZCBhY2tfbGlicmFyeSAoY29uc3QgY2hhciAqbmFtZSkgb3Zl cnJpZGU7CisgIHZvaWQgYWNrX2luX21lbW9yeV9saWJyYXJ5IChDT1JFX0FERFIgYmVnaW4sIENP UkVfQUREUiBlbmQpIG92ZXJyaWRlOworCiBwdWJsaWM6IC8qIFJlbW90ZSBzcGVjaWZpYyBtZXRo b2RzLiAgKi8KIAogICB2b2lkIHJlbW90ZV9kb3dubG9hZF9jb21tYW5kX3NvdXJjZSAoaW50IG51 bSwgVUxPTkdFU1QgYWRkciwKQEAgLTU4NDUsNiArNTg1NCwxMCBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHByb3RvY29sX2ZlYXR1cmUgcmVtb3RlX3Byb3RvY29sX2ZlYXR1cmVzW10gPSB7CiAgICAg UEFDS0VUX21lbW9yeV90YWdnaW5nX2ZlYXR1cmUgfSwKICAgeyAiZXJyb3ItbWVzc2FnZSIsIFBB Q0tFVF9FTkFCTEUsIHJlbW90ZV9zdXBwb3J0ZWRfcGFja2V0LAogICAgIFBBQ0tFVF9hY2NlcHRf ZXJyb3JfbWVzc2FnZSB9LAorICB7ICJ2QWNrOmxpYnJhcnkiLCBQQUNLRVRfRElTQUJMRSwgcmVt b3RlX3N1cHBvcnRlZF9wYWNrZXQsCisgICAgUEFDS0VUX3ZBY2tfbGlicmFyeSB9LAorICB7ICJ2 QWNrOmluLW1lbW9yeS1saWJyYXJ5IiwgUEFDS0VUX0RJU0FCTEUsIHJlbW90ZV9zdXBwb3J0ZWRf cGFja2V0LAorICAgIFBBQ0tFVF92QWNrX2luX21lbW9yeV9saWJyYXJ5IH0sCiB9OwogCiBzdGF0 aWMgY2hhciAqcmVtb3RlX3N1cHBvcnRfeG1sOwpAQCAtNTk1OSw2ICs1OTcyLDE0IEBAIHJlbW90 ZV90YXJnZXQ6OnJlbW90ZV9xdWVyeV9zdXBwb3J0ZWQgKCkKICAgICAgIHJlbW90ZV9xdWVyeV9z dXBwb3J0ZWRfYXBwZW5kCiAJKCZxLCAicVhmZXI6bGlicmFyaWVzOnJlYWQ6aW4tbWVtb3J5LWxp YnJhcnkrIik7CiAKKyAgICAgIGlmIChtX2ZlYXR1cmVzLnBhY2tldF9zZXRfY21kX3N0YXRlIChQ QUNLRVRfdkFja19saWJyYXJ5KQorCSAgIT0gQVVUT19CT09MRUFOX0ZBTFNFKQorCXJlbW90ZV9x dWVyeV9zdXBwb3J0ZWRfYXBwZW5kICgmcSwgInZBY2s6bGlicmFyeSsiKTsKKworICAgICAgaWYg KG1fZmVhdHVyZXMucGFja2V0X3NldF9jbWRfc3RhdGUgKFBBQ0tFVF92QWNrX2luX21lbW9yeV9s aWJyYXJ5KQorCSAgIT0gQVVUT19CT09MRUFOX0ZBTFNFKQorCXJlbW90ZV9xdWVyeV9zdXBwb3J0 ZWRfYXBwZW5kICgmcSwgInZBY2s6aW4tbWVtb3J5LWxpYnJhcnkrIik7CisKICAgICAgIC8qIEtl ZXAgdGhpcyBvbmUgbGFzdCB0byB3b3JrIGFyb3VuZCBhIGdkYnNlcnZlciA8PSA3LjEwIGJ1ZyBp bgogCSB0aGUgcVN1cHBvcnRlZDp4bWxSZWdpc3RlcnM9aTM4NiBoYW5kbGluZy4gICovCiAgICAg ICBpZiAocmVtb3RlX3N1cHBvcnRfeG1sICE9IE5VTEwKQEAgLTE1Njc5LDYgKzE1NzAwLDYwIEBA IHJlbW90ZV90YXJnZXQ6OnZjb250X3Jfc3VwcG9ydGVkICgpCiAJICAmJiBnZXRfcmVtb3RlX3N0 YXRlICgpLT5zdXBwb3J0c192Q29udC5yKTsKIH0KIAordm9pZAorcmVtb3RlX3RhcmdldDo6YWNr X2xpYnJhcnkgKGNvbnN0IGNoYXIgKm5hbWUpCit7CisgIHN0cnVjdCByZW1vdGVfc3RhdGUgKnJz ID0gZ2V0X3JlbW90ZV9zdGF0ZSAoKTsKKyAgY2hhciAqcCA9IHJzLT5idWYuZGF0YSAoKTsKKyAg Y2hhciAqZW5kcCA9IHAgKyBnZXRfcmVtb3RlX3BhY2tldF9zaXplICgpOworCisgIHhzbnByaW50 ZiAocCwgZW5kcCAtIHAsICJ2QWNrOmxpYnJhcnk6JXMiLCBuYW1lKTsKKworICBwdXRwa3QgKHJz LT5idWYpOworICBnZXRwa3QgKCZycy0+YnVmLCAwKTsKKworICBwYWNrZXRfcmVzdWx0IHJlc3Vs dAorICAgID0gbV9mZWF0dXJlcy5wYWNrZXRfb2sgKHJzLT5idWYsIFBBQ0tFVF92QWNrX2xpYnJh cnkpOworICBzd2l0Y2ggKHJlc3VsdC5zdGF0dXMgKCkpCisgICAgeworICAgIGNhc2UgUEFDS0VU X09LOgorICAgICAgYnJlYWs7CisgICAgY2FzZSBQQUNLRVRfVU5LTk9XTjoKKyAgICAgIGVycm9y IChfKCJObyBzdXBwb3J0IGZvciBhY2tub3dsZWRnaW5nIGxpYnJhcmllcy4iKSk7CisgICAgY2Fz ZSBQQUNLRVRfRVJST1I6CisgICAgICBlcnJvciAoXygiQWNrbm93bGVkZ2luZyBsaWJyYXJ5ICcl cycgZmFpbGVkOiAnJXMnIiksIG5hbWUsCisJICAgICBycy0+YnVmLmRhdGEgKCkpOworICAgIH0K K30KKwordm9pZAorcmVtb3RlX3RhcmdldDo6YWNrX2luX21lbW9yeV9saWJyYXJ5IChDT1JFX0FE RFIgYmVnaW4sIENPUkVfQUREUiBlbmQpCit7CisgIHN0cnVjdCByZW1vdGVfc3RhdGUgKnJzID0g Z2V0X3JlbW90ZV9zdGF0ZSAoKTsKKyAgY2hhciAqcCA9IHJzLT5idWYuZGF0YSAoKTsKKyAgY2hh ciAqZW5kcCA9IHAgKyBnZXRfcmVtb3RlX3BhY2tldF9zaXplICgpOworCisgIHhzbnByaW50ZiAo cCwgZW5kcCAtIHAsICJ2QWNrOmluLW1lbW9yeS1saWJyYXJ5OiVzLCVzIiwKKwkgICAgIGNvcmVf YWRkcl90b19zdHJpbmdfbnogKGJlZ2luKSwgY29yZV9hZGRyX3RvX3N0cmluZ19ueiAoZW5kKSk7 CisKKyAgcHV0cGt0IChycy0+YnVmKTsKKyAgZ2V0cGt0ICgmcnMtPmJ1ZiwgMCk7CisKKyAgcGFj a2V0X3Jlc3VsdCByZXN1bHQKKyAgICA9IG1fZmVhdHVyZXMucGFja2V0X29rIChycy0+YnVmLCBQ QUNLRVRfdkFja19pbl9tZW1vcnlfbGlicmFyeSk7CisgIHN3aXRjaCAocmVzdWx0LnN0YXR1cyAo KSkKKyAgICB7CisgICAgY2FzZSBQQUNLRVRfT0s6CisgICAgICBicmVhazsKKyAgICBjYXNlIFBB Q0tFVF9VTktOT1dOOgorICAgICAgZXJyb3IgKF8oIk5vIHN1cHBvcnQgZm9yIGFja25vd2xlZGdp bmcgaW4tbWVtb3J5IGxpYnJhcmllcy4iKSk7CisgICAgY2FzZSBQQUNLRVRfRVJST1I6CisgICAg ICBlcnJvciAoXygiRmFpbGVkIHRvIGFja25vd2xlZGdlIGluLW1lbW9yeSBsaWJyYXJ5ICVzLSVz OiAlcyIpLAorCSAgICAgY29yZV9hZGRyX3RvX3N0cmluZ19ueiAoYmVnaW4pLCBjb3JlX2FkZHJf dG9fc3RyaW5nX256IChlbmQpLAorCSAgICAgcnMtPmJ1Zi5kYXRhICgpKTsKKyAgICB9Cit9CisK IC8qIFRoZSAic2V0L3Nob3cgcmFuZ2Utc3RlcHBpbmciIHNldCBob29rLiAgKi8KIAogc3RhdGlj IHZvaWQKQEAgLTE2NDQyLDYgKzE2NTE3LDEyIEBAIFNob3cgdGhlIG1heGltdW0gc2l6ZSBvZiB0 aGUgYWRkcmVzcyAoaW4gYml0cykgaW4gYSBtZW1vcnkgcGFja2V0LiIpLCBOVUxMLAogCiAgIGFk ZF9wYWNrZXRfY29uZmlnX2NtZCAoUEFDS0VUX3ZDdHJsQywgInZDdHJsQyIsICJjdHJsLWMiLCAw KTsKIAorICBhZGRfcGFja2V0X2NvbmZpZ19jbWQgKFBBQ0tFVF92QWNrX2xpYnJhcnksCisJCQkg InZBY2s6bGlicmFyeSIsICJhY2stbGlicmFyeSIsIDApOworCisgIGFkZF9wYWNrZXRfY29uZmln X2NtZCAoUEFDS0VUX3ZBY2tfaW5fbWVtb3J5X2xpYnJhcnksCisJCQkgInZBY2s6aW4tbWVtb3J5 LWxpYnJhcnkiLCAiYWNrLWluLW1lbW9yeS1saWJyYXJ5IiwgMCk7CisKICAgYWRkX3BhY2tldF9j b25maWdfY21kIChQQUNLRVRfUVRocmVhZEV2ZW50cywgIlFUaHJlYWRFdmVudHMiLCAidGhyZWFk LWV2ZW50cyIsCiAJCQkgMCk7CiAKZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi10YXJnZXQuYyBiL2dk Yi9zb2xpYi10YXJnZXQuYwppbmRleCA3MTY1YWVkN2UyMmY4N2M5NmEzNzE2Mzk3ZTkzODBhZmYw M2EyYTYxLi5iZjc0ZDc5ZWNkYjIzMDliNzY0NWFhZjA0Y2U5ZmVkMWJmZjUxY2ZmIDEwMDY0NAot LS0gYS9nZGIvc29saWItdGFyZ2V0LmMKKysrIGIvZ2RiL3NvbGliLXRhcmdldC5jCkBAIC01Myw2 ICs1MywxMSBAQCBzdHJ1Y3QgbG1faW5mb190YXJnZXQgZmluYWwgOiBwdWJsaWMgbG1faW5mbwog ICAgICBUaGlzIGlzIG9ubHkgdmFsaWQgaWYgbG9jYXRpb24gPT0gbG1faW5fbWVtb3J5LiAgKi8K ICAgQ09SRV9BRERSIGJlZ2luID0gMHVsbCwgZW5kID0gMHVsbDsKIAorICAvKiBBIGZsYWcgc2F5 aW5nIHdoZXRoZXIgbGlicmFyeSBsb2FkIGFuZCB1bmxvYWQgbmVlZCB0byBiZSBhY2tub3dsZWRn ZWQKKyAgICAgdG8gdGhlIHRhcmdldCBhZnRlciBwcm9jZXNzaW5nIHRoZSBsaWJyYXJ5IGFuZCBw bGFjaW5nL3JlbW92aW5nCisgICAgIGJyZWFrcG9pbnRzLiAgKi8KKyAgYm9vbCBuZWVkX2FjayA9 IGZhbHNlOworCiAgIC8qIFRoZSB0YXJnZXQgY2FuIGVpdGhlciBzcGVjaWZ5IHNlZ21lbnQgYmFz ZXMgb3Igc2VjdGlvbiBiYXNlcywgbm90CiAgICAgIGJvdGguICAqLwogCkBAIC0xMzIsNiArMTM3 LDI0IEBAIGxpYnJhcnlfbGlzdF9zdGFydF9zZWN0aW9uIChzdHJ1Y3QgZ2RiX3htbF9wYXJzZXIg KnBhcnNlciwKICAgbGFzdC0+c2VjdGlvbl9iYXNlcy5wdXNoX2JhY2sgKGFkZHJlc3MpOwogfQog CisvKiBIYW5kbGUgdGhlICdhY2snIGF0dHJpYnV0ZSBvZiA8bGlicmFyeT4gYW5kIDxpbi1tZW1v cnktbGlicmFyeT4uICAqLworCitzdGF0aWMgdm9pZAorbGlicmFyeV9hY2sgKGxtX2luZm9fdGFy Z2V0ICZpdGVtLCBzdGQ6OnZlY3RvcjxnZGJfeG1sX3ZhbHVlPiAmYXR0cmlidXRlcykKK3sKKyAg Z2RiX3htbF92YWx1ZSAqYWNrID0geG1sX2ZpbmRfYXR0cmlidXRlIChhdHRyaWJ1dGVzLCAiYWNr Iik7CisgIGlmIChhY2sgIT0gbnVsbHB0cikKKyAgICB7CisgICAgICBjb25zdCBjaGFyICp2YWx1 ZSA9IChjb25zdCBjaGFyICopIGFjay0+dmFsdWUuZ2V0ICgpOworICAgICAgaWYgKHN0cmNtcCAo dmFsdWUsICJ5ZXMiKSA9PSAwKQorCWl0ZW0ubmVlZF9hY2sgPSB0cnVlOworICAgICAgZWxzZSBp ZiAoc3RyY21wICh2YWx1ZSwgIm5vIikgPT0gMCkKKwlpdGVtLm5lZWRfYWNrID0gZmFsc2U7Cisg ICAgICBlbHNlCisJd2FybmluZyAoXygiYmFkIGF0dHJpYnV0ZSB2YWx1ZSBmb3IgbGlicmFyeTph Y2siKSk7CisgICAgfQorfQorCiAvKiBIYW5kbGUgdGhlIHN0YXJ0IG9mIGEgPGxpYnJhcnk+IGVs ZW1lbnQuICAqLwogCiBzdGF0aWMgdm9pZApAQCAtMTQ2LDYgKzE2OSw4IEBAIGxpYnJhcnlfbGlz dF9zdGFydF9saWJyYXJ5IChzdHJ1Y3QgZ2RiX3htbF9wYXJzZXIgKnBhcnNlciwKICAgaXRlbS0+ bmFtZQogICAgID0gKGNvbnN0IGNoYXIgKikgeG1sX2ZpbmRfYXR0cmlidXRlIChhdHRyaWJ1dGVz LCAibmFtZSIpLT52YWx1ZS5nZXQgKCk7CiAKKyAgbGlicmFyeV9hY2sgKCppdGVtLCBhdHRyaWJ1 dGVzKTsKKwogICBsaXN0LT5lbXBsYWNlX2JhY2sgKGl0ZW0pOwogfQogCkBAIC0xNjUsNiArMTkw LDggQEAgaW5fbWVtb3J5X2xpYnJhcnlfbGlzdF9zdGFydF9saWJyYXJ5IChzdHJ1Y3QgZ2RiX3ht bF9wYXJzZXIgKnBhcnNlciwKICAgaXRlbS0+ZW5kID0gKENPUkVfQUREUikgKihVTE9OR0VTVCAq KQogICAgIHhtbF9maW5kX2F0dHJpYnV0ZSAoYXR0cmlidXRlcywgImVuZCIpLT52YWx1ZS5nZXQg KCk7CiAKKyAgbGlicmFyeV9hY2sgKCppdGVtLCBhdHRyaWJ1dGVzKTsKKwogICBsaXN0LT5lbXBs YWNlX2JhY2sgKGl0ZW0pOwogfQogCkBAIC0xOTYsNyArMjIzLDggQEAgbGlicmFyeV9saXN0X3N0 YXJ0X2xpc3QgKHN0cnVjdCBnZGJfeG1sX3BhcnNlciAqcGFyc2VyLAogICAgIHsKICAgICAgIGNv bnN0IGNoYXIgKnN0cmluZyA9IChjb25zdCBjaGFyICopIHZlcnNpb24tPnZhbHVlLmdldCAoKTsK IAotICAgICAgaWYgKChzdHJjbXAgKHN0cmluZywgIjEuMCIpICE9IDApICYmIChzdHJjbXAgKHN0 cmluZywgIjEuMSIpICE9IDApKQorICAgICAgaWYgKChzdHJjbXAgKHN0cmluZywgIjEuMCIpICE9 IDApICYmIChzdHJjbXAgKHN0cmluZywgIjEuMSIpICE9IDApCisJICAmJiAoc3RyY21wIChzdHJp bmcsICIxLjIiKSAhPSAwKSkKIAlnZGJfeG1sX2Vycm9yIChwYXJzZXIsCiAJCSAgICAgICBfKCJM aWJyYXJ5IGxpc3QgaGFzIHVuc3VwcG9ydGVkIHZlcnNpb24gXCIlc1wiIiksCiAJCSAgICAgICBz dHJpbmcpOwpAQCAtMjI4LDEyICsyNTYsMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBnZGJfeG1s X2VsZW1lbnQgbGlicmFyeV9jaGlsZHJlbltdID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGdk Yl94bWxfYXR0cmlidXRlIGxpYnJhcnlfYXR0cmlidXRlc1tdID0gewogICB7ICJuYW1lIiwgR0RC X1hNTF9BRl9OT05FLCBOVUxMLCBOVUxMIH0sCisgIHsgImFjayIsIEdEQl9YTUxfQUZfT1BUSU9O QUwsIE5VTEwsIE5VTEwgfSwKICAgeyBOVUxMLCBHREJfWE1MX0FGX05PTkUsIE5VTEwsIE5VTEwg fQogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBnZGJfeG1sX2F0dHJpYnV0ZSBpbl9tZW1vcnlf bGlicmFyeV9hdHRyaWJ1dGVzW10gPSB7CiAgIHsgImJlZ2luIiwgR0RCX1hNTF9BRl9OT05FLCBn ZGJfeG1sX3BhcnNlX2F0dHJfdWxvbmdlc3QsIE5VTEwgfSwKICAgeyAiZW5kIiwgR0RCX1hNTF9B Rl9OT05FLCBnZGJfeG1sX3BhcnNlX2F0dHJfdWxvbmdlc3QsIE5VTEwgfSwKKyAgeyAiYWNrIiwg R0RCX1hNTF9BRl9PUFRJT05BTCwgTlVMTCwgTlVMTCB9LAogICB7IE5VTEwsIEdEQl9YTUxfQUZf Tk9ORSwgTlVMTCwgTlVMTCB9CiB9OwogCkBAIC00NzMsNiArNTAzLDMyIEBAIHNvbGliX3Rhcmdl dF9pbl9keW5zeW1fcmVzb2x2ZV9jb2RlIChDT1JFX0FERFIgcGMpCiAgIHJldHVybiBpbl9wbHRf c2VjdGlvbiAocGMpOwogfQogCitzdGF0aWMgdm9pZAorc29saWJfdGFyZ2V0X2Fja19saWJyYXJ5 IChzb2xpYiAmc28pCit7CisgIGxtX2luZm9fdGFyZ2V0ICpsbQorICAgID0gZ2RiOjpjaGVja2Vk X3N0YXRpY19jYXN0PGxtX2luZm9fdGFyZ2V0ICo+IChzby5sbV9pbmZvLmdldCAoKSk7CisKKyAg aWYgKCFsbS0+bmVlZF9hY2spCisgICAgcmV0dXJuOworCisgIC8qIFRyeSBvbmx5IG9uY2UsIHdo ZXRoZXIgd2Ugc3VjY2VlZCBvciBub3QuICAqLworICBsbS0+bmVlZF9hY2sgPSBmYWxzZTsKKyAg c3dpdGNoIChsbS0+bG9jYXRpb24pCisgICAgeworICAgIGNhc2UgbG1fb25fZGlzazoKKyAgICAg IHRhcmdldF9hY2tfbGlicmFyeSAoc28uc29fb3JpZ2luYWxfbmFtZS5jX3N0ciAoKSk7CisgICAg ICByZXR1cm47CisKKyAgICBjYXNlIGxtX2luX21lbW9yeToKKyAgICAgIHRhcmdldF9hY2tfaW5f bWVtb3J5X2xpYnJhcnkgKGxtLT5iZWdpbiwgbG0tPmVuZCk7CisgICAgICByZXR1cm47CisgICAg fQorCisgIHdhcm5pbmcgKF8oImJhZCBzb2xpYiBsb2NhdGlvbiAnJWQnIGZvciAlcy4iKSwgbG0t PmxvY2F0aW9uLAorCSAgIHNvLnNvX29yaWdpbmFsX25hbWUuY19zdHIgKCkpOworfQorCiBjb25z dCBzb2xpYl9vcHMgc29saWJfdGFyZ2V0X3NvX29wcyA9CiB7CiAgIHNvbGliX3RhcmdldF9yZWxv Y2F0ZV9zZWN0aW9uX2FkZHJlc3NlcywKQEAgLTQ4OSw0ICs1NDUsNSBAQCBjb25zdCBzb2xpYl9v cHMgc29saWJfdGFyZ2V0X3NvX29wcyA9CiAgIG51bGxwdHIsCiAgIGRlZmF1bHRfZmluZF9zb2xp Yl9hZGRyLAogICBnZGJfYmZkX29wZW5fZnJvbV90YXJnZXRfbWVtb3J5LAorICBzb2xpYl90YXJn ZXRfYWNrX2xpYnJhcnksCiB9OwpkaWZmIC0tZ2l0IGEvZ2RiL3NvbGliLmMgYi9nZGIvc29saWIu YwppbmRleCBjYjMwMmY5MjE1MjU3ZGRmZjE4Yzk0ZjViZTM5ZTE4OWIwMmQ4NGU2Li45MmZjNTEz N2EzZDQ2OWY1NTA0MzIzNWE2NWRjYWRjYzFmMjVmZTk2IDEwMDY0NAotLS0gYS9nZGIvc29saWIu YworKysgYi9nZGIvc29saWIuYwpAQCAtOTY3LDYgKzk2Nyw3IEBAIHNvbGliX2FkZCAoY29uc3Qg Y2hhciAqcGF0dGVybiwgaW50IGZyb21fdHR5LCBpbnQgcmVhZHN5bXMpCiAgICAgaWYgKGZyb21f dHR5KQogICAgICAgYWRkX2ZsYWdzIHw9IFNZTUZJTEVfVkVSQk9TRTsKIAorICAgIHN0ZDo6bGlz dDxzb2xpYiAqPiBhZGRlZF9zb2xpYnM7CiAgICAgZm9yIChzb2xpYiAmZ2RiIDogY3VycmVudF9w cm9ncmFtX3NwYWNlLT5zb2xpYnMgKCkpCiAgICAgICBpZiAoIXBhdHRlcm4gfHwgcmVfZXhlYyAo Z2RiLnNvX25hbWUuY19zdHIgKCkpKQogCXsKQEAgLTk4OSwxNCArOTkwLDIzIEBAIHNvbGliX2Fk ZCAoY29uc3QgY2hhciAqcGF0dGVybiwgaW50IGZyb21fdHR5LCBpbnQgcmVhZHN5bXMpCiAJCQkJ c3R5bGVkX3N0cmluZyAoZmlsZV9uYW1lX3N0eWxlLnN0eWxlICgpLAogCQkJCQkgICAgICAgZ2Ri LnNvX25hbWUuY19zdHIgKCkpKTsKIAkJfQotCSAgICAgIGVsc2UgaWYgKHNvbGliX3JlYWRfc3lt Ym9scyAoZ2RiLCBhZGRfZmxhZ3MpKQotCQlsb2FkZWRfYW55X3N5bWJvbHMgPSB0cnVlOworCSAg ICAgIGVsc2UKKwkJYWRkZWRfc29saWJzLmVtcGxhY2VfYmFjayAoJmdkYik7CiAJICAgIH0KIAl9 CiAKKyAgICBmb3IgKHNvbGliICpnZGIgOiBhZGRlZF9zb2xpYnMpCisgICAgICBpZiAoc29saWJf cmVhZF9zeW1ib2xzICgqZ2RiLCBhZGRfZmxhZ3MpKQorCWxvYWRlZF9hbnlfc3ltYm9scyA9IHRy dWU7CisKICAgICBpZiAobG9hZGVkX2FueV9zeW1ib2xzKQogICAgICAgYnJlYWtwb2ludF9yZV9z ZXQgKCk7CiAKKyAgICAvKiBBY2tub3dsZWRnZSBsb2FkaW5nIG9mIG5ldyBzb2xpYnMuICBUaGlz IG11c3QgYmUgY2FsbGVkIGFmdGVyCisgICAgICAgYnJlYWtwb2ludHMgaGF2ZSBiZWVuIHNldCBp biB0aGlzIG5ld2x5IGxvYWRlZCBzb2xpYi4gICovCisgICAgZm9yIChzb2xpYiAqZ2RiIDogYWRk ZWRfc29saWJzKQorICAgICAgc29saWJfYWNrX2xpYnJhcnkgKCpnZGIpOworCiAgICAgaWYgKGZy b21fdHR5ICYmIHBhdHRlcm4gJiYgIWFueV9tYXRjaGVzKQogICAgICAgZ2RiX3ByaW50ZiAoIk5v IGxvYWRlZCBzaGFyZWQgbGlicmFyaWVzIG1hdGNoIHRoZSBwYXR0ZXJuIGAlcycuXG4iLAogCQkg IHBhdHRlcm4pOwpAQCAtMTcwMCw2ICsxNzEwLDE2IEBAIGRlZmF1bHRfZmluZF9zb2xpYl9hZGRy IChzb2xpYiAmc28pCiAgIHJldHVybiB7fTsKIH0KIAorLyogU2VlIHNvbGlzdC5oLiAgKi8KKwor dm9pZCBzb2xpYl9hY2tfbGlicmFyeSAoc29saWIgJnNvKQoreworICBjb25zdCBzb2xpYl9vcHMg Km9wcyA9IGdkYmFyY2hfc29fb3BzIChjdXJyZW50X2luZmVyaW9yICgpLT5hcmNoICgpKTsKKwor ICBpZiAob3BzLT5hY2tfbGlicmFyeSAhPSBudWxscHRyKQorICAgICgqb3BzLT5hY2tfbGlicmFy eSkgKHNvKTsKK30KKwogdm9pZCBfaW5pdGlhbGl6ZV9zb2xpYiAoKTsKIAogdm9pZApkaWZmIC0t Z2l0IGEvZ2RiL3NvbGlzdC5oIGIvZ2RiL3NvbGlzdC5oCmluZGV4IGM0ZDA1M2E1YzZjMDI2MWYx MTc2MTIxYjJiYzFmOTA0YWMyNDI0YTQuLmY2NGU0NWQ4NzRmNjhjNjQ0ZDFjNWI2YjE4MmM3NjY3 MzE5YjZmYWQgMTAwNjQ0Ci0tLSBhL2dkYi9zb2xpc3QuaAorKysgYi9nZGIvc29saXN0LmgKQEAg LTE5MSw2ICsxOTEsMTAgQEAgc3RydWN0IHNvbGliX29wcwogICBnZGJfYmZkX3JlZl9wdHIgKCpi ZmRfb3Blbl9mcm9tX3RhcmdldF9tZW1vcnkpIChDT1JFX0FERFIgYWRkciwKIAkJCQkJCSAgQ09S RV9BRERSIHNpemUsCiAJCQkJCQkgIGNvbnN0IGNoYXIgKnRhcmdldCk7CisKKyAgLyogQWNrbm93 bGVkZ2UgYSBsaWJyYXJ5LiAgVGhpcyBpcyBjYWxsZWQgZnJvbSBhZGRfc29saWIgYWZ0ZXIgbG9h ZGluZworICAgICBzeW1ib2xzIGFuZCBwbGFjaW5nIGJyZWFrcG9pbnRzLiAgKi8KKyAgdm9pZCAo KmFja19saWJyYXJ5KSAoc29saWIgJnNvKTsKIH07CiAKIC8qIEEgdW5pcXVlIHBvaW50ZXIgdG8g YSBzb19saXN0LiAgKi8KQEAgLTIxNSw0ICsyMTksNyBAQCBleHRlcm4gZ2RiX2JmZF9yZWZfcHRy IHNvbGliX2JmZF9vcGVuIChjb25zdCBjaGFyICppbl9wYXRobmFtZSk7CiAgICB1bmFibGUgdG8g ZmluZCBhbiBhZGRyZXNzIHdpdGhpbiB0aGUgbGlicmFyeSBTTy4gICovCiBleHRlcm4gc3RkOjpv cHRpb25hbDxDT1JFX0FERFI+IGRlZmF1bHRfZmluZF9zb2xpYl9hZGRyIChzb2xpYiAmc28pOwog CisvKiBBY2tub3dsZWRnZSBhIGxpYnJhcnkuICAqLworZXh0ZXJuIHZvaWQgc29saWJfYWNrX2xp YnJhcnkgKHNvbGliICZzbyk7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZ2RiL3RhcmdldC1kZWxl Z2F0ZXMtZ2VuLmMgYi9nZGIvdGFyZ2V0LWRlbGVnYXRlcy1nZW4uYwppbmRleCBkZDIwZTE0MDRj MzJmNDVjNTM2NzU2ZTZlMDljZGFkZmFiMjlkNzliLi5kM2YxYTdjYzMxMzgzMmZkMzc2YzJjOTNj NTA1ZjMzNGFiOWYzZTMzIDEwMDY0NAotLS0gYS9nZGIvdGFyZ2V0LWRlbGVnYXRlcy1nZW4uYwor KysgYi9nZGIvdGFyZ2V0LWRlbGVnYXRlcy1nZW4uYwpAQCAtMTkwLDYgKzE5MCw4IEBAIHN0cnVj dCBkdW1teV90YXJnZXQgOiBwdWJsaWMgdGFyZ2V0X29wcwogICB2b2lkIGNhbGxfaGlzdG9yeV9m cm9tIChVTE9OR0VTVCBhcmcwLCBpbnQgYXJnMSwgcmVjb3JkX3ByaW50X2ZsYWdzIGFyZzIpIG92 ZXJyaWRlOwogICB2b2lkIGNhbGxfaGlzdG9yeV9yYW5nZSAoVUxPTkdFU1QgYXJnMCwgVUxPTkdF U1QgYXJnMSwgcmVjb3JkX3ByaW50X2ZsYWdzIGFyZzIpIG92ZXJyaWRlOwogICBib29sIGF1Z21l bnRlZF9saWJyYXJpZXNfc3ZyNF9yZWFkICgpIG92ZXJyaWRlOworICB2b2lkIGFja19saWJyYXJ5 IChjb25zdCBjaGFyICphcmcwKSBvdmVycmlkZTsKKyAgdm9pZCBhY2tfaW5fbWVtb3J5X2xpYnJh cnkgKENPUkVfQUREUiBhcmcwLCBDT1JFX0FERFIgYXJnMSkgb3ZlcnJpZGU7CiAgIGNvbnN0IHN0 cnVjdCBmcmFtZV91bndpbmQgKmdldF91bndpbmRlciAoKSBvdmVycmlkZTsKICAgY29uc3Qgc3Ry dWN0IGZyYW1lX3Vud2luZCAqZ2V0X3RhaWxjYWxsX3Vud2luZGVyICgpIG92ZXJyaWRlOwogICB2 b2lkIHByZXBhcmVfdG9fZ2VuZXJhdGVfY29yZSAoKSBvdmVycmlkZTsKQEAgLTM2Nyw2ICszNjks OCBAQCBzdHJ1Y3QgZGVidWdfdGFyZ2V0IDogcHVibGljIHRhcmdldF9vcHMKICAgdm9pZCBjYWxs X2hpc3RvcnlfZnJvbSAoVUxPTkdFU1QgYXJnMCwgaW50IGFyZzEsIHJlY29yZF9wcmludF9mbGFn cyBhcmcyKSBvdmVycmlkZTsKICAgdm9pZCBjYWxsX2hpc3RvcnlfcmFuZ2UgKFVMT05HRVNUIGFy ZzAsIFVMT05HRVNUIGFyZzEsIHJlY29yZF9wcmludF9mbGFncyBhcmcyKSBvdmVycmlkZTsKICAg Ym9vbCBhdWdtZW50ZWRfbGlicmFyaWVzX3N2cjRfcmVhZCAoKSBvdmVycmlkZTsKKyAgdm9pZCBh Y2tfbGlicmFyeSAoY29uc3QgY2hhciAqYXJnMCkgb3ZlcnJpZGU7CisgIHZvaWQgYWNrX2luX21l bW9yeV9saWJyYXJ5IChDT1JFX0FERFIgYXJnMCwgQ09SRV9BRERSIGFyZzEpIG92ZXJyaWRlOwog ICBjb25zdCBzdHJ1Y3QgZnJhbWVfdW53aW5kICpnZXRfdW53aW5kZXIgKCkgb3ZlcnJpZGU7CiAg IGNvbnN0IHN0cnVjdCBmcmFtZV91bndpbmQgKmdldF90YWlsY2FsbF91bndpbmRlciAoKSBvdmVy cmlkZTsKICAgdm9pZCBwcmVwYXJlX3RvX2dlbmVyYXRlX2NvcmUgKCkgb3ZlcnJpZGU7CkBAIC00 MTk0LDYgKzQxOTgsNTIgQEAgZGVidWdfdGFyZ2V0OjphdWdtZW50ZWRfbGlicmFyaWVzX3N2cjRf cmVhZCAoKQogICByZXR1cm4gcmVzdWx0OwogfQogCit2b2lkCit0YXJnZXRfb3BzOjphY2tfbGli cmFyeSAoY29uc3QgY2hhciAqYXJnMCkKK3sKKyAgdGhpcy0+YmVuZWF0aCAoKS0+YWNrX2xpYnJh cnkgKGFyZzApOworfQorCit2b2lkCitkdW1teV90YXJnZXQ6OmFja19saWJyYXJ5IChjb25zdCBj aGFyICphcmcwKQoreworICB0Y29tcGxhaW4gKCk7Cit9CisKK3ZvaWQKK2RlYnVnX3RhcmdldDo6 YWNrX2xpYnJhcnkgKGNvbnN0IGNoYXIgKmFyZzApCit7CisgIGdkYl9wcmludGYgKGdkYl9zdGRs b2csICItPiAlcy0+YWNrX2xpYnJhcnkgKC4uLilcbiIsIHRoaXMtPmJlbmVhdGggKCktPnNob3J0 bmFtZSAoKSk7CisgIHRoaXMtPmJlbmVhdGggKCktPmFja19saWJyYXJ5IChhcmcwKTsKKyAgZ2Ri X3ByaW50ZiAoZ2RiX3N0ZGxvZywgIjwtICVzLT5hY2tfbGlicmFyeSAoIiwgdGhpcy0+YmVuZWF0 aCAoKS0+c2hvcnRuYW1lICgpKTsKKyAgdGFyZ2V0X2RlYnVnX3ByaW50X2NvbnN0X2NoYXJfcCAo YXJnMCk7CisgIGdkYl9wdXRzICgiKVxuIiwgZ2RiX3N0ZGxvZyk7Cit9CisKK3ZvaWQKK3Rhcmdl dF9vcHM6OmFja19pbl9tZW1vcnlfbGlicmFyeSAoQ09SRV9BRERSIGFyZzAsIENPUkVfQUREUiBh cmcxKQoreworICB0aGlzLT5iZW5lYXRoICgpLT5hY2tfaW5fbWVtb3J5X2xpYnJhcnkgKGFyZzAs IGFyZzEpOworfQorCit2b2lkCitkdW1teV90YXJnZXQ6OmFja19pbl9tZW1vcnlfbGlicmFyeSAo Q09SRV9BRERSIGFyZzAsIENPUkVfQUREUiBhcmcxKQoreworICB0Y29tcGxhaW4gKCk7Cit9CisK K3ZvaWQKK2RlYnVnX3RhcmdldDo6YWNrX2luX21lbW9yeV9saWJyYXJ5IChDT1JFX0FERFIgYXJn MCwgQ09SRV9BRERSIGFyZzEpCit7CisgIGdkYl9wcmludGYgKGdkYl9zdGRsb2csICItPiAlcy0+ YWNrX2luX21lbW9yeV9saWJyYXJ5ICguLi4pXG4iLCB0aGlzLT5iZW5lYXRoICgpLT5zaG9ydG5h bWUgKCkpOworICB0aGlzLT5iZW5lYXRoICgpLT5hY2tfaW5fbWVtb3J5X2xpYnJhcnkgKGFyZzAs IGFyZzEpOworICBnZGJfcHJpbnRmIChnZGJfc3RkbG9nLCAiPC0gJXMtPmFja19pbl9tZW1vcnlf bGlicmFyeSAoIiwgdGhpcy0+YmVuZWF0aCAoKS0+c2hvcnRuYW1lICgpKTsKKyAgdGFyZ2V0X2Rl YnVnX3ByaW50X0NPUkVfQUREUiAoYXJnMCk7CisgIGdkYl9wdXRzICgiLCAiLCBnZGJfc3RkbG9n KTsKKyAgdGFyZ2V0X2RlYnVnX3ByaW50X0NPUkVfQUREUiAoYXJnMSk7CisgIGdkYl9wdXRzICgi KVxuIiwgZ2RiX3N0ZGxvZyk7Cit9CisKIGNvbnN0IHN0cnVjdCBmcmFtZV91bndpbmQgKgogdGFy Z2V0X29wczo6Z2V0X3Vud2luZGVyICgpCiB7CmRpZmYgLS1naXQgYS9nZGIvdGFyZ2V0LmMgYi9n ZGIvdGFyZ2V0LmMKaW5kZXggYjZkMWFiZTgyZGJmZDkzZGY2MDFjNTk5ZmMwM2Q3NDRkOTA5NGQw MC4uZmM3YmRhMTFlZWZlYTZhOGQ2YzI0MzgwZDk4NTU0ZTZlYTM4NTI2OSAxMDA2NDQKLS0tIGEv Z2RiL3RhcmdldC5jCisrKyBiL2dkYi90YXJnZXQuYwpAQCAtNDIyNiw2ICs0MjI2LDIyIEBAIHRh cmdldF9kb25lX2dlbmVyYXRpbmdfY29yZSAodm9pZCkKICAgY3VycmVudF9pbmZlcmlvciAoKS0+ dG9wX3RhcmdldCAoKS0+ZG9uZV9nZW5lcmF0aW5nX2NvcmUgKCk7CiB9CiAKKy8qIFNlZSB0YXJn ZXQuaC4gICovCisKK3ZvaWQKK3RhcmdldF9hY2tfbGlicmFyeSAoY29uc3QgY2hhciAqbmFtZSkK K3sKKyAgY3VycmVudF9pbmZlcmlvciAoKS0+dG9wX3RhcmdldCAoKS0+YWNrX2xpYnJhcnkgKG5h bWUpOworfQorCisvKiBTZWUgdGFyZ2V0LmguICAqLworCit2b2lkCit0YXJnZXRfYWNrX2luX21l bW9yeV9saWJyYXJ5IChDT1JFX0FERFIgYmVnaW4sIENPUkVfQUREUiBlbmQpCit7CisgIGN1cnJl bnRfaW5mZXJpb3IgKCktPnRvcF90YXJnZXQgKCktPmFja19pbl9tZW1vcnlfbGlicmFyeSAoYmVn aW4sIGVuZCk7Cit9CisKIAwKIAogc3RhdGljIGNoYXIgdGFyZ19kZXNjW10gPQpkaWZmIC0tZ2l0 IGEvZ2RiL3RhcmdldC5oIGIvZ2RiL3RhcmdldC5oCmluZGV4IGJlODRiMjdmZDQzMjA2Y2Y2M2Jj NjE2MTMyMTE3MWRmYjAxYjAwYWEuLjYzMDk0NGNkZTNhNzhhMmZhOGYyZWQzMjI4MmY5OTViNjZk YzI3NGEgMTAwNjQ0Ci0tLSBhL2dkYi90YXJnZXQuaAorKysgYi9nZGIvdGFyZ2V0LmgKQEAgLTEz MjAsNiArMTMyMCwyMSBAQCBzdHJ1Y3QgdGFyZ2V0X29wcwogICAgIHZpcnR1YWwgYm9vbCBhdWdt ZW50ZWRfbGlicmFyaWVzX3N2cjRfcmVhZCAoKQogICAgICAgVEFSR0VUX0RFRkFVTFRfUkVUVVJO IChmYWxzZSk7CiAKKyAgICAvKiBBY2tub3dsZWRnZSBhIGxpYnJhcnkgcmVwb3J0ZWQgYnkgbmFt ZS4KKworICAgICAgIExpYnJhcmllcyBhcmUgYWNrbm93bGVkZ2VkIGFmdGVyIGluaXRpYWwgcHJv Y2Vzc2luZyBsaWtlIGxvYWRpbmcKKyAgICAgICBzeW1ib2xzIGFuZCBwbGFjaW5nIGJyZWFrcG9p bnRzIG9uIHJlcXVlc3QgZnJvbSB0aGUgdGFyZ2V0LiAgKi8KKyAgICB2aXJ0dWFsIHZvaWQgYWNr X2xpYnJhcnkgKGNvbnN0IGNoYXIgKm5hbWUpCisgICAgICBUQVJHRVRfREVGQVVMVF9OT1JFVFVS TiAodGNvbXBsYWluICgpKTsKKworICAgIC8qIEFja25vd2xlZGdlIGFuIGluLW1lbW9yeSBsaWJy YXJ5IHJlcG9ydGVkIGJ5IGJlZ2luIGFuZCBlbmQgdGFyZ2V0CisgICAgICAgYWRkcmVzc2VzLgor CisgICAgICAgTGlicmFyaWVzIGFyZSBhY2tub3dsZWRnZWQgYWZ0ZXIgaW5pdGlhbCBwcm9jZXNz aW5nIGxpa2UgbG9hZGluZworICAgICAgIHN5bWJvbHMgYW5kIHBsYWNpbmcgYnJlYWtwb2ludHMg b24gcmVxdWVzdCBmcm9tIHRoZSB0YXJnZXQuICAqLworICAgIHZpcnR1YWwgdm9pZCBhY2tfaW5f bWVtb3J5X2xpYnJhcnkgKENPUkVfQUREUiBiZWdpbiwgQ09SRV9BRERSIGVuZCkKKyAgICAgIFRB UkdFVF9ERUZBVUxUX05PUkVUVVJOICh0Y29tcGxhaW4gKCkpOworCiAgICAgLyogVGhvc2UgdW53 aW5kZXJzIGFyZSB0cmllZCBiZWZvcmUgYW55IG90aGVyIGFyY2ggdW53aW5kZXJzLiAgSWYKICAg ICAgICBTRUxGIGRvZXNuJ3QgaGF2ZSB1bndpbmRlcnMsIGl0IHNob3VsZCBkZWxlZ2F0ZSB0byB0 aGUKICAgICAgICAiYmVuZWF0aCIgdGFyZ2V0LiAgKi8KQEAgLTI2MjksNCArMjY0NCwxMCBAQCBl eHRlcm4gdm9pZCB0YXJnZXRfcHJlcGFyZV90b19nZW5lcmF0ZV9jb3JlICh2b2lkKTsKIC8qIFNl ZSB0b19kb25lX2dlbmVyYXRpbmdfY29yZS4gICovCiBleHRlcm4gdm9pZCB0YXJnZXRfZG9uZV9n ZW5lcmF0aW5nX2NvcmUgKHZvaWQpOwogCisvKiBTZWUgdGFyZ2V0X29wczo6YWNrX2xpYnJhcnku ICAqLworZXh0ZXJuIHZvaWQgdGFyZ2V0X2Fja19saWJyYXJ5IChjb25zdCBjaGFyICpuYW1lKTsK KworLyogU2VlIHRhcmdldF9vcHM6OmFja19pbl9tZW1vcnlfbGlicmFyeS4gICovCitleHRlcm4g dm9pZCB0YXJnZXRfYWNrX2luX21lbW9yeV9saWJyYXJ5IChDT1JFX0FERFIgYmVnaW4sIENPUkVf QUREUiBlbmQpOworCiAjZW5kaWYgLyogIWRlZmluZWQgKFRBUkdFVF9IKSAqLwpkaWZmIC0tZ2l0 IGEvZ2Ric2VydmVyL2RsbC5jYyBiL2dkYnNlcnZlci9kbGwuY2MKaW5kZXggYzJjNjNlOWE2OWE1 NGRkZWRlNzdlNDBlYTMzYjRlMTljYmRjNzFhZi4uYmJjODE2OTkyMGNmNWIwOTllMTJiM2VhZWMx YzI3MmQ5ZWQyYmYwYSAxMDA2NDQKLS0tIGEvZ2Ric2VydmVyL2RsbC5jYworKysgYi9nZGJzZXJ2 ZXIvZGxsLmNjCkBAIC0yNSwxOCArMjUsMjQgQEAKIC8qIFJlY29yZCBhIG5ld2x5IGxvYWRlZCBE TEwgYXQgQkFTRV9BRERSIGZvciB0aGUgY3VycmVudCBwcm9jZXNzLiAgKi8KIAogdm9pZAotbG9h ZGVkX2RsbCAoY29uc3QgY2hhciAqbmFtZSwgQ09SRV9BRERSIGJhc2VfYWRkcikKK2xvYWRlZF9k bGwgKGNvbnN0IGNoYXIgKm5hbWUsIENPUkVfQUREUiBiYXNlX2FkZHIsIGJvb2wgbmVlZF9hY2sp CiB7Ci0gIGxvYWRlZF9kbGwgKGN1cnJlbnRfcHJvY2VzcyAoKSwgbmFtZSwgYmFzZV9hZGRyKTsK KyAgbG9hZGVkX2RsbCAoY3VycmVudF9wcm9jZXNzICgpLCBuYW1lLCBiYXNlX2FkZHIsIG5lZWRf YWNrKTsKIH0KIAogLyogUmVjb3JkIGEgbmV3bHkgbG9hZGVkIERMTCBhdCBCQVNFX0FERFIgZm9y IFBST0MuICAqLwogCiB2b2lkCi1sb2FkZWRfZGxsIChwcm9jZXNzX2luZm8gKnByb2MsIGNvbnN0 IGNoYXIgKm5hbWUsIENPUkVfQUREUiBiYXNlX2FkZHIpCitsb2FkZWRfZGxsIChwcm9jZXNzX2lu Zm8gKnByb2MsIGNvbnN0IGNoYXIgKm5hbWUsIENPUkVfQUREUiBiYXNlX2FkZHIsCisJICAgIGJv b2wgbmVlZF9hY2spCiB7CisgIGlmIChuZWVkX2FjayAmJiAhZ2V0X2NsaWVudF9zdGF0ZSAoKS52 YWNrX2xpYnJhcnlfc3VwcG9ydGVkKQorICAgIHRocm93X2Vycm9yIChOT1RfU1VQUE9SVEVEX0VS Uk9SLAorCQkgXygibGlicmFyeSBhY2tub3dsZWRnZW1lbnQgbm90IHN1cHBvcnRlZC4iKSk7CisK ICAgZ2RiX2Fzc2VydCAocHJvYyAhPSBudWxscHRyKTsKLSAgcHJvYy0+YWxsX2RsbHMuZW1wbGFj ZV9iYWNrIChuYW1lICE9IG51bGxwdHIgPyBuYW1lIDogIiIsIGJhc2VfYWRkcik7CisgIHByb2Mt PmFsbF9kbGxzLmVtcGxhY2VfYmFjayAobmFtZSAhPSBudWxscHRyID8gbmFtZSA6ICIiLCBiYXNl X2FkZHIsCisJCQkgICAgICAgbmVlZF9hY2spOwogICBwcm9jLT5kbGxzX2NoYW5nZWQgPSB0cnVl OwogfQogCkBAIC00NCwxMCArNTAsMTYgQEAgbG9hZGVkX2RsbCAocHJvY2Vzc19pbmZvICpwcm9j LCBjb25zdCBjaGFyICpuYW1lLCBDT1JFX0FERFIgYmFzZV9hZGRyKQogCiB2b2lkCiBsb2FkZWRf ZGxsIChwcm9jZXNzX2luZm8gKnByb2MsIENPUkVfQUREUiBiZWdpbiwgQ09SRV9BRERSIGVuZCwK LQkgICAgQ09SRV9BRERSIGJhc2VfYWRkcikKKwkgICAgQ09SRV9BRERSIGJhc2VfYWRkciwgYm9v bCBuZWVkX2FjaykKIHsKKyAgLyogSXQgc3VmZmljZXMgdG8gYXNzZXJ0IHN1cHBvcnQgZm9yIG9u LWRpc2sgbGlicmFyeSBhY2tub3dsZWRnZW1lbnQgc2luY2Ugd2UKKyAgICAgY2FuIGZhbGwgYmFj ayB0byB0aGF0LiAgKi8KKyAgaWYgKG5lZWRfYWNrICYmICFnZXRfY2xpZW50X3N0YXRlICgpLnZh Y2tfbGlicmFyeV9zdXBwb3J0ZWQpCisgICAgdGhyb3dfZXJyb3IgKE5PVF9TVVBQT1JURURfRVJS T1IsCisJCSBfKCJsaWJyYXJ5IGFja25vd2xlZGdlbWVudCBub3Qgc3VwcG9ydGVkLiIpKTsKKwog ICBnZGJfYXNzZXJ0IChwcm9jICE9IG51bGxwdHIpOwotICBwcm9jLT5hbGxfZGxscy5lbXBsYWNl X2JhY2sgKGJlZ2luLCBlbmQsIGJhc2VfYWRkcik7CisgIHByb2MtPmFsbF9kbGxzLmVtcGxhY2Vf YmFjayAoYmVnaW4sIGVuZCwgYmFzZV9hZGRyLCBuZWVkX2Fjayk7CiAgIHByb2MtPmRsbHNfY2hh bmdlZCA9IHRydWU7CiB9CiAKQEAgLTYwLDYgKzcyLDc4IEBAIHVubG9hZGVkX2RsbCAoY29uc3Qg Y2hhciAqbmFtZSwgQ09SRV9BRERSIGJhc2VfYWRkcikKICAgdW5sb2FkZWRfZGxsIChjdXJyZW50 X3Byb2Nlc3MgKCksIG5hbWUsIGJhc2VfYWRkcik7CiB9CiAKK3N0YXRpYyB2b2lkCithY2tfZGxs IChwcm9jZXNzX2luZm8gKnByb2Nlc3MsIGRsbF9pbmZvICZkbGwpCit7CisgIGdkYl9hc3NlcnQg KGRsbC5uZWVkX2Fjayk7CisKKyAgc3dpdGNoIChkbGwubG9jYXRpb24pCisgICAgeworICAgIGNh c2UgZGxsX2luZm86Om9uX2Rpc2s6CisgICAgICAvKiBDaGVjayBpZiB0aGlzIGlzIGEgdGVtcG9y YXJ5IGZpbGUgZm9yIGFuIGluLW1lbW9yeSBsaWJyYXJ5LiAgKi8KKyAgICAgIGlmIChkbGwuYmVn aW4gPT0gVU5TUEVDSUZJRURfQ09SRV9BRERSKQorCXsKKwkgIHRhcmdldF9hY2tfbGlicmFyeSAo cHJvY2VzcywgZGxsLm5hbWUuY19zdHIgKCkpOworCSAgZGxsLm5lZWRfYWNrID0gZmFsc2U7CisJ ICByZXR1cm47CisJfQorCisgICAgICBbW2ZhbGx0aHJvdWdoXV07CisgICAgY2FzZSBkbGxfaW5m bzo6aW5fbWVtb3J5OgorICAgICAgdGFyZ2V0X2Fja19pbl9tZW1vcnlfbGlicmFyeSAocHJvY2Vz cywgZGxsLmJlZ2luLCBkbGwuZW5kKTsKKyAgICAgIGRsbC5uZWVkX2FjayA9IGZhbHNlOworICAg ICAgcmV0dXJuOworICAgIH0KKworICBpbnRlcm5hbF9lcnJvciAoXygiYmFkIGxpYnJhcnkgbG9j YXRpb246ICVkLiIpLCBkbGwubG9jYXRpb24pOworfQorCit2b2lkCithY2tfZGxsIChwcm9jZXNz X2luZm8gKnByb2MsIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgIHN0ZDo6bGlzdDxkbGxfaW5mbz4g JmRsbHMgPSBwcm9jLT5hbGxfZGxsczsKKyAgc3RkOjpsaXN0PGRsbF9pbmZvPjo6aXRlcmF0b3Ig aXQKKyAgICA9IHN0ZDo6ZmluZF9pZiAoZGxscy5iZWdpbiAoKSwgZGxscy5lbmQgKCksCisJCSAg ICBbbmFtZV0gKGNvbnN0IGRsbF9pbmZvICZkbGwpCisJeworCSAgcmV0dXJuIChkbGwubmFtZSA9 PSBzdGQ6OnN0cmluZyAobmFtZSkpOworCX0pOworCisgIGlmIChpdCAhPSBkbGxzLmVuZCAoKSkK KyAgICBhY2tfZGxsIChwcm9jLCAqaXQpOworfQorCit2b2lkCithY2tfZGxsIChjb25zdCBjaGFy ICpuYW1lKQoreworICBhY2tfZGxsIChjdXJyZW50X3Byb2Nlc3MgKCksIG5hbWUpOworfQorCit2 b2lkCithY2tfZGxsIChwcm9jZXNzX2luZm8gKnByb2MsIENPUkVfQUREUiBiZWdpbiwgQ09SRV9B RERSIGVuZCkKK3sKKyAgc3RkOjpsaXN0PGRsbF9pbmZvPiAmZGxscyA9IHByb2MtPmFsbF9kbGxz OworICBzdGQ6Omxpc3Q8ZGxsX2luZm8+OjppdGVyYXRvciBpdAorICAgID0gc3RkOjpmaW5kX2lm IChkbGxzLmJlZ2luICgpLCBkbGxzLmVuZCAoKSwKKwkJICAgIFtiZWdpbiwgZW5kXSAoY29uc3Qg ZGxsX2luZm8gJmRsbCkKKwl7CisJICAvKiBGb3Igcm9vdCBkZXZpY2VzIHdpdGggbXVsdGlwbGUg c3ViLWRldmljZXMsIG1vZHVsZXMgd2l0aAorCSAgICAgaWRlbnRpY2FsIHN0YXJ0L2VuZCBhZGRy ZXNzZXMgbWF5IGJlIHJlY2VpdmVkIGZvciBkaWZmZXJlbnQKKwkgICAgIHN1Yi1kZXZpY2VzLiAg VGhlcmVmb3JlIHdlIGNoZWNrIGZvciB0aGUgJ05FRURfQUNLJyBmbGFnIGluCisJICAgICB0aGUg c2VhcmNoLCB0b28uICAqLworCSAgcmV0dXJuICgoZGxsLmJlZ2luID09IGJlZ2luKSAmJiAoZGxs LmVuZCA9PSBlbmQpICYmIGRsbC5uZWVkX2Fjayk7CisJfSk7CisKKyAgaWYgKGl0ICE9IGRsbHMu ZW5kICgpKQorICAgIGFja19kbGwgKHByb2MsICppdCk7Cit9CisKK3ZvaWQKK2Fja19kbGwgKENP UkVfQUREUiBiZWdpbiwgQ09SRV9BRERSIGVuZCkKK3sKKyAgYWNrX2RsbCAoY3VycmVudF9wcm9j ZXNzICgpLCBiZWdpbiwgZW5kKTsKK30KKwogLyogUmVjb3JkIHRoYXQgdGhlIERMTCB3aXRoIE5B TUUgYW5kIEJBU0VfQUREUiBoYXMgYmVlbiB1bmxvYWRlZAogICAgZnJvbSBQUk9DLiAgKi8KIApA QCAtOTksNiArMTgzLDggQEAgdW5sb2FkZWRfZGxsIChwcm9jZXNzX2luZm8gKnByb2MsIGNvbnN0 IGNoYXIgKm5hbWUsIENPUkVfQUREUiBiYXNlX2FkZHIpCiAgICAgewogICAgICAgLyogRExMIGhh cyBiZWVuIGZvdW5kIHNvIHJlbW92ZSB0aGUgZW50cnkgYW5kIGZyZWUgYXNzb2NpYXRlZAogCSBy ZXNvdXJjZXMuICAqLworICAgICAgaWYgKGl0ZXItPm5lZWRfYWNrKQorCWFja19kbGwgKHByb2Ms ICppdGVyKTsKICAgICAgIHByb2MtPmFsbF9kbGxzLmVyYXNlIChpdGVyKTsKICAgICAgIHByb2Mt PmRsbHNfY2hhbmdlZCA9IHRydWU7CiAgICAgfQpAQCAtMTQ0LDYgKzIzMCw4IEBAIHVubG9hZGVk X2RsbCAocHJvY2Vzc19pbmZvICpwcm9jLCBDT1JFX0FERFIgYmVnaW4sIENPUkVfQUREUiBlbmQs CiAgICAgewogICAgICAgLyogRExMIGhhcyBiZWVuIGZvdW5kIHNvIHJlbW92ZSB0aGUgZW50cnkg YW5kIGZyZWUgYXNzb2NpYXRlZAogCSByZXNvdXJjZXMuICAqLworICAgICAgaWYgKGl0ZXItPm5l ZWRfYWNrKQorCWFja19kbGwgKHByb2MsICppdGVyKTsKICAgICAgIHByb2MtPmFsbF9kbGxzLmVy YXNlIChpdGVyKTsKICAgICAgIHByb2MtPmRsbHNfY2hhbmdlZCA9IDE7CiAgICAgfQpkaWZmIC0t Z2l0IGEvZ2Ric2VydmVyL2RsbC5oIGIvZ2Ric2VydmVyL2RsbC5oCmluZGV4IDliY2UyOGU3MGNm MzkzOWI1YjA2MmU0YjljMGYwZDJkMTBhMWQxZDcuLmZhNjU0NTZkYjZkYTQ5ZDI3MDBjYzQ2OGNj Yjk1YTYzYTBjMjA1OWEgMTAwNjQ0Ci0tLSBhL2dkYnNlcnZlci9kbGwuaAorKysgYi9nZGJzZXJ2 ZXIvZGxsLmgKQEAgLTMwLDEyICszMCwxNSBAQCBzdHJ1Y3QgZGxsX2luZm8KICAgICBpbl9tZW1v cnkKICAgfTsKIAotICBkbGxfaW5mbyAoY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWVfLCBDT1JFX0FE RFIgYmFzZV9hZGRyXykKLSAgICA6IGxvY2F0aW9uIChvbl9kaXNrKSwgbmFtZSAobmFtZV8pLCBi YXNlX2FkZHIgKGJhc2VfYWRkcl8pCisgIGRsbF9pbmZvIChjb25zdCBzdGQ6OnN0cmluZyAmbmFt ZV8sIENPUkVfQUREUiBiYXNlX2FkZHJfLCBib29sIG5lZWRfYWNrXykKKyAgICA6IGxvY2F0aW9u IChvbl9kaXNrKSwgbmFtZSAobmFtZV8pLCBiZWdpbiAoMCksIGVuZCAoMCksCisgICAgICBiYXNl X2FkZHIgKGJhc2VfYWRkcl8pLCBuZWVkX2FjayAobmVlZF9hY2tfKQogICB7fQogCi0gIGRsbF9p bmZvIChDT1JFX0FERFIgYmVnaW5fLCBDT1JFX0FERFIgZW5kXywgQ09SRV9BRERSIGJhc2VfYWRk cl8pCi0gICAgOiBsb2NhdGlvbiAoaW5fbWVtb3J5KSwgYmVnaW4gKGJlZ2luXyksIGVuZCAoZW5k XyksIGJhc2VfYWRkciAoYmFzZV9hZGRyXykKKyAgZGxsX2luZm8gKENPUkVfQUREUiBiZWdpbl8s IENPUkVfQUREUiBlbmRfLCBDT1JFX0FERFIgYmFzZV9hZGRyXywKKwkgICAgYm9vbCBuZWVkX2Fj a18pCisgICAgOiBsb2NhdGlvbiAoaW5fbWVtb3J5KSwgYmVnaW4gKGJlZ2luXyksIGVuZCAoZW5k XyksIGJhc2VfYWRkciAoYmFzZV9hZGRyXyksCisgICAgICBuZWVkX2FjayAobmVlZF9hY2tfKQog ICB7fQogCiAgIGxvY2F0aW9uX3QgbG9jYXRpb247CkBAIC00MywxNyArNDYsMjUgQEAgc3RydWN0 IGRsbF9pbmZvCiAgIENPUkVfQUREUiBiZWdpbjsKICAgQ09SRV9BRERSIGVuZDsKICAgQ09SRV9B RERSIGJhc2VfYWRkcjsKKyAgYm9vbCBuZWVkX2FjazsKIH07CiAKLWV4dGVybiB2b2lkIGxvYWRl ZF9kbGwgKGNvbnN0IGNoYXIgKm5hbWUsIENPUkVfQUREUiBiYXNlX2FkZHIpOworLyogVGhyb3dz IE5PVF9TVVBQT1JURURfRVJST1IgaWYgbGlicmFyeSBhY2tub3dsZWRnZW1lbnQgaXMgcmVxdWVz dGVkCisgIChORUVEX0FDSyA9IFRSVUUpIGFuZCBub3Qgc3VwcG9ydGVkLiAgKi8KK2V4dGVybiB2 b2lkIGxvYWRlZF9kbGwgKGNvbnN0IGNoYXIgKm5hbWUsIENPUkVfQUREUiBiYXNlX2FkZHIsCisJ CQlib29sIG5lZWRfYWNrID0gZmFsc2UpOwogZXh0ZXJuIHZvaWQgbG9hZGVkX2RsbCAocHJvY2Vz c19pbmZvICpwcm9jLCBjb25zdCBjaGFyICpuYW1lLAotCQkJQ09SRV9BRERSIGJhc2VfYWRkcik7 CisJCQlDT1JFX0FERFIgYmFzZV9hZGRyLCBib29sIG5lZWRfYWNrID0gZmFsc2UpOwogZXh0ZXJu IHZvaWQgbG9hZGVkX2RsbCAocHJvY2Vzc19pbmZvICpwcm9jLCBDT1JFX0FERFIgYmVnaW4sIENP UkVfQUREUiBlbmQsCi0JCQlDT1JFX0FERFIgYmFzZV9hZGRyKTsKKwkJCUNPUkVfQUREUiBiYXNl X2FkZHIsIGJvb2wgbmVlZF9hY2sgPSBmYWxzZSk7CiBleHRlcm4gdm9pZCB1bmxvYWRlZF9kbGwg KGNvbnN0IGNoYXIgKm5hbWUsIENPUkVfQUREUiBiYXNlX2FkZHIpOwogZXh0ZXJuIHZvaWQgdW5s b2FkZWRfZGxsIChwcm9jZXNzX2luZm8gKnByb2MsIGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkgIENP UkVfQUREUiBiYXNlX2FkZHIpOwogZXh0ZXJuIHZvaWQgdW5sb2FkZWRfZGxsIChwcm9jZXNzX2lu Zm8gKnByb2MsIENPUkVfQUREUiBiZWdpbiwgQ09SRV9BRERSIGVuZCwKIAkJCSAgQ09SRV9BRERS IGJhc2VfYWRkcik7CitleHRlcm4gdm9pZCBhY2tfZGxsIChjb25zdCBjaGFyICpuYW1lKTsKK2V4 dGVybiB2b2lkIGFja19kbGwgKHByb2Nlc3NfaW5mbyAqcHJvYywgY29uc3QgY2hhciAqbmFtZSk7 CitleHRlcm4gdm9pZCBhY2tfZGxsIChDT1JFX0FERFIgYmVnaW4sIENPUkVfQUREUiBlbmQpOwor ZXh0ZXJuIHZvaWQgYWNrX2RsbCAocHJvY2Vzc19pbmZvICpwcm9jLCBDT1JFX0FERFIgYmVnaW4s IENPUkVfQUREUiBlbmQpOwogCiAjZW5kaWYgLyogR0RCU0VSVkVSX0RMTF9IICovCmRpZmYgLS1n aXQgYS9nZGJzZXJ2ZXIvc2VydmVyLmNjIGIvZ2Ric2VydmVyL3NlcnZlci5jYwppbmRleCA5MDkw MjA5OWExYjVhODRmZTg2Y2I4MzkxYmY5ODNhNTk0M2U3OGM1Li42OGVlNTJhNzYxNWI1MWMyNGUz YzYwOWJkNzhiNTI1NDE2YjcxNDIwIDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXIvc2VydmVyLmNjCisr KyBiL2dkYnNlcnZlci9zZXJ2ZXIuY2MKQEAgLTE5MTksMjUgKzE5MTksMzMgQEAgZGxsX3RvX3Rt cGZpbGUgKGRsbF9pbmZvICZkbGwpCiBzdGF0aWMgc3RkOjpzdHJpbmcKIHByaW50X3F4ZmVyX2xp YnJhcmllc19lbnRyeSAoZGxsX2luZm8gJmRsbCkKIHsKKyAgY29uc3QgY2xpZW50X3N0YXRlICZj cyA9IGdldF9jbGllbnRfc3RhdGUgKCk7CisKICAgc3dpdGNoIChkbGwubG9jYXRpb24pCiAgICAg ewogICAgIGNhc2UgZGxsX2luZm86OmluX21lbW9yeToKLSAgICAgIGlmIChnZXRfY2xpZW50X3N0 YXRlICgpLmluX21lbW9yeV9saWJyYXJ5X3N1cHBvcnRlZCkKKyAgICAgIGlmIChjcy5pbl9tZW1v cnlfbGlicmFyeV9zdXBwb3J0ZWQKKwkgICYmICghZGxsLm5lZWRfYWNrIHx8IGNzLnZhY2tfaW5f bWVtb3J5X2xpYnJhcnlfc3VwcG9ydGVkKSkKIAlyZXR1cm4gc3RyaW5nX3ByaW50ZgotCSAgKCIg IDxpbi1tZW1vcnktbGlicmFyeSBiZWdpbj1cIjB4JXNcIiBlbmQ9XCIweCVzXCI+IgorCSAgKCIg IDxpbi1tZW1vcnktbGlicmFyeSBiZWdpbj1cIjB4JXNcIiBlbmQ9XCIweCVzXCIlcz4iCiAJICAg IjxzZWdtZW50IGFkZHJlc3M9XCIweCVzXCIvPjwvaW4tbWVtb3J5LWxpYnJhcnk+XG4iLAogCSAg IHBhZGRyZXNzIChkbGwuYmVnaW4pLCBwYWRkcmVzcyAoZGxsLmVuZCksCi0JICAgcGFkZHJlc3Mg KGRsbC5iYXNlX2FkZHIpKTsKKwkgICBkbGwubmVlZF9hY2sgPyAiIGFjaz1cInllc1wiIiA6ICIi LCBwYWRkcmVzcyAoZGxsLmJhc2VfYWRkcikpOwogCi0gICAgICAvKiBHREIgZG9lcyBub3Qgc3Vw cG9ydCBpbi1tZW1vcnktbGlicmFyeS4gIEZhbGwgYmFjayB0byBzdG9yaW5nIGl0IGluIGEKLQkg dGVtcG9yYXJ5IGZpbGUgYW5kIHJlcG9ydCB0aGF0IGZpbGUgdG8gR0RCLiAgKi8KKyAgICAgIC8q IEdEQiBkb2VzIG5vdCBzdXBwb3J0IGluLW1lbW9yeS1saWJyYXJ5IG9yIGFja25vd2xlZGdpbmcg aW4tbWVtb3J5CisJIGxpYnJhcmllcy4gIEZhbGwgYmFjayB0byBzdG9yaW5nIGl0IGluIGEgdGVt cG9yYXJ5IGZpbGUgYW5kIHJlcG9ydCB0aGF0CisJIGZpbGUgdG8gR0RCLiAgKi8KICAgICAgIGRs bC5uYW1lID0gZGxsX3RvX3RtcGZpbGUgKGRsbCk7CiAgICAgICBbW2ZhbGx0aHJvdWdoXV07CiAK ICAgICBjYXNlIGRsbF9pbmZvOjpvbl9kaXNrOgorICAgICAgLyogV2UgY2hlY2tlZCB0aGlzIHdo ZW4gcmVxdWVzdGluZyBhY2tub3dsZWRnZW1lbnQgZm9yIERMTC4gICovCisgICAgICBnZGJfYXNz ZXJ0ICghZGxsLm5lZWRfYWNrIHx8IGNzLnZhY2tfbGlicmFyeV9zdXBwb3J0ZWQpOworCiAgICAg ICByZXR1cm4gc3RyaW5nX3ByaW50ZgotCSgiICA8bGlicmFyeSBuYW1lPVwiJXNcIj48c2VnbWVu dCBhZGRyZXNzPVwiMHglc1wiLz48L2xpYnJhcnk+XG4iLAotCSBkbGwubmFtZS5jX3N0ciAoKSwg cGFkZHJlc3MgKGRsbC5iYXNlX2FkZHIpKTsKKwkoIiAgPGxpYnJhcnkgbmFtZT1cIiVzXCIlcz48 c2VnbWVudCBhZGRyZXNzPVwiMHglc1wiLz48L2xpYnJhcnk+XG4iLAorCSBkbGwubmFtZS5jX3N0 ciAoKSwgZGxsLm5lZWRfYWNrID8gIiBhY2s9XCJ5ZXNcIiIgOiAiIiwKKwkgcGFkZHJlc3MgKGRs bC5iYXNlX2FkZHIpKTsKICAgICB9CiAKICAgd2FybmluZyAoXygidW5rbm93biBkbGwgbG9jYXRp b246ICV4IiksIGRsbC5sb2NhdGlvbik7CkBAIC0xOTcwLDYgKzE5NzgsMTggQEAgbGlicmFyeV9s aXN0X3ZlcnNpb25fbmVlZGVkIChjb25zdCBzdGQ6Omxpc3Q8ZGxsX2luZm8+ICZkbGxzKQogCSAg ICB9CiAJICBicmVhazsKIAl9CisKKyAgICAgIGlmIChkbGwubmVlZF9hY2spCisJeworCSAgLyog V2UgY2hlY2tlZCBzdXBwb3J0IGZvciBhY2tub3dsZWRnZW1lbnQgd2hlbiB3ZSBpbnNlcnRlZCBE TEwuCisKKwkgICAgIEl0IHN1ZmZpY2VzIHRvIGFzc2VydCBzdXBwb3J0IGZvciBvbi1kaXNrIGxp YnJhcnkgYWNrbm93bGVkZ2VtZW50CisJICAgICBzaW5jZSB3ZSBjYW4gZmFsbCBiYWNrIHRvIHRo YXQuICAqLworCSAgZ2RiX2Fzc2VydCAoIWRsbC5uZWVkX2FjayB8fCBjcy52YWNrX2xpYnJhcnlf c3VwcG9ydGVkKTsKKworCSAgbWFqb3IgPSBzdGQ6Om1heCAobWFqb3IsIDEpOworCSAgbWlub3Ig PSBzdGQ6Om1heCAobWlub3IsIDIpOworCX0KICAgICB9CiAKICAgcmV0dXJuIHN0ZDo6dG9fc3Ry aW5nIChtYWpvcikgKyBzdGQ6OnN0cmluZyAoIi4iKSArIHN0ZDo6dG9fc3RyaW5nIChtaW5vcik7 CkBAIC0yODU0LDYgKzI4NzQsMTAgQEAgaGFuZGxlX3F1ZXJ5IChjaGFyICpvd25fYnVmLCBpbnQg cGFja2V0X2xlbiwgaW50ICpuZXdfcGFja2V0X2xlbl9wKQogCQljcy5lcnJvcl9tZXNzYWdlX3N1 cHBvcnRlZCA9IHRydWU7CiAJICAgICAgZWxzZSBpZiAoZmVhdHVyZSA9PSAicVhmZXI6bGlicmFy aWVzOnJlYWQ6aW4tbWVtb3J5LWxpYnJhcnkrIikKIAkJY3MuaW5fbWVtb3J5X2xpYnJhcnlfc3Vw cG9ydGVkID0gdHJ1ZTsKKwkgICAgICBlbHNlIGlmIChmZWF0dXJlID09ICJ2QWNrOmxpYnJhcnkr IikKKwkJY3MudmFja19saWJyYXJ5X3N1cHBvcnRlZCA9IHRydWU7CisJICAgICAgZWxzZSBpZiAo ZmVhdHVyZSA9PSAidkFjazppbi1tZW1vcnktbGlicmFyeSsiKQorCQljcy52YWNrX2luX21lbW9y eV9saWJyYXJ5X3N1cHBvcnRlZCA9IHRydWU7CiAJICAgICAgZWxzZQogCQl7CiAJCSAgLyogTW92 ZSB0aGUgdW5rbm93biBmZWF0dXJlcyBhbGwgdG9nZXRoZXIuICAqLwpAQCAtMjk4NCw2ICszMDA4 LDkgQEAgaGFuZGxlX3F1ZXJ5IChjaGFyICpvd25fYnVmLCBpbnQgcGFja2V0X2xlbiwgaW50ICpu ZXdfcGFja2V0X2xlbl9wKQogICAgICAgaWYgKHRhcmdldF9zdXBwb3J0c19tZW1vcnlfdGFnZ2lu ZyAoKSkKIAlzdHJjYXQgKG93bl9idWYsICI7bWVtb3J5LXRhZ2dpbmcrIik7CiAKKyAgICAgIHN0 cmNhdCAob3duX2J1ZiwgIjt2QWNrOmxpYnJhcnkrIik7CisgICAgICBzdHJjYXQgKG93bl9idWYs ICI7dkFjazppbi1tZW1vcnktbGlicmFyeSsiKTsKKwogICAgICAgLyogUmVpbml0aWFsaXplIGNv bXBvbmVudHMgYXMgbmVlZGVkIGZvciB0aGUgbmV3IGNvbm5lY3Rpb24uICAqLwogICAgICAgaG9z dGlvX2hhbmRsZV9uZXdfZ2RiX2Nvbm5lY3Rpb24gKCk7CiAgICAgICB0YXJnZXRfaGFuZGxlX25l d19nZGJfY29ubmVjdGlvbiAoKTsKQEAgLTMzNzEsNiArMzM5OCw2NiBAQCBlcnI6CiAgIHJldHVy bjsKIH0KIAorLyogUGFyc2UgdkFjayBwYWNrZXRzLiAgKi8KKworc3RhdGljIHZvaWQKK2hhbmRs ZV92X2FjayAoY2hhciAqb3duX2J1ZikKK3sKKyAgY2xpZW50X3N0YXRlICZjcyA9IGdldF9jbGll bnRfc3RhdGUgKCk7CisgIGNoYXIgKnA7CisKKyAgLyogTW92ZSBwYXN0IHZBY2s6IHRvIHRoZSBm aXJzdCB0eXBlIHN0cmluZy4gICovCisgIHAgPSAmb3duX2J1Zls1XTsKKyAgZG8KKyAgICB7Cisg ICAgICBpZiAoY3MudmFja19saWJyYXJ5X3N1cHBvcnRlZAorCSAgJiYgKHN0cm5jbXAgKHAsICJs aWJyYXJ5OiIsIHN0cmxlbiAoImxpYnJhcnk6IikpID09IDApKQorCXsKKwkgIHAgKz0gc3RybGVu ICgibGlicmFyeToiKTsKKworCSAgLyogV2UgZXhwZWN0IGEgc2luZ2xlIGFyZ3VtZW50OiB0aGUg ZmlsZW5hbWUuICAqLworCSAgY29uc3QgY2hhciAqbmFtZSA9IHA7CisJICBwID0gc3RyY2hyIChw LCAnOycpOworCSAgaWYgKHAgIT0gbnVsbHB0cikKKwkgICAgKnArKyA9ICdcMCc7CisKKwkgIGFj a19kbGwgKG5hbWUpOworCX0KKyAgICAgIGVsc2UgaWYgKGNzLnZhY2tfaW5fbWVtb3J5X2xpYnJh cnlfc3VwcG9ydGVkCisJICAgICAgICYmIChzdHJuY21wIChwLCAiaW4tbWVtb3J5LWxpYnJhcnk6 IiwKKwkJCSAgICBzdHJsZW4gKCJpbi1tZW1vcnktbGlicmFyeToiKSkgPT0gMCkpCisJeworCSAg cCArPSBzdHJsZW4gKCJpbi1tZW1vcnktbGlicmFyeToiKTsKKworCSAgLyogV2UgZXhwZWN0IHR3 byBhcmd1bWVudHM6IGJlZ2luIGFuZCBlbmQgYWRkcmVzcy4gICovCisJICBDT1JFX0FERFIgYmVn aW4sIGVuZDsKKworCSAgYmVnaW4gPSAoQ09SRV9BRERSKSBzdHJ0b3VsbCAocCwgJnAsIDE2KTsK KwkgIGlmICgqcCAhPSAnLCcpCisJICAgIGJyZWFrOworCisJICBlbmQgPSAoQ09SRV9BRERSKSBz dHJ0b3VsbCAocCsxLCAmcCwgMTYpOworCSAgaWYgKCpwID09ICc7JykKKwkgICAgcCArPSAxOwor CSAgZWxzZSBpZiAoKnAgIT0gMCkKKwkgICAgYnJlYWs7CisKKwkgIGFja19kbGwgKGJlZ2luLCBl bmQpOworCX0KKyAgICAgIGVsc2UKKwlicmVhazsKKyAgICB9CisgIHdoaWxlIChwICE9IG51bGxw dHIgJiYgKnAgIT0gMCk7CisKKyAgaWYgKHAgPT0gbnVsbHB0ciB8fCAqcCA9PSAwKQorICAgIHdy aXRlX29rIChvd25fYnVmKTsKKyAgZWxzZQorICAgIHsKKyAgICAgIHN0ZDo6c3RyaW5nIGp1bmsg eyBwIH07CisgICAgICBzcHJpbnRmIChvd25fYnVmLCAiRS5qdW5rIGluIHZBY2s6ICclcycuIiwg anVuay5jX3N0ciAoKSk7CisgICAgfQorfQorCiAvKiBSZXN1bWUgdGFyZ2V0IHdpdGggQUNUSU9O UywgYW4gYXJyYXkgb2YgTlVNX0FDVElPTlMgZWxlbWVudHMuICAqLwogCiBzdGF0aWMgdm9pZApA QCAtMzcxNyw2ICszODA0LDEyIEBAIGhhbmRsZV92X3JlcXVlc3RzIChjaGFyICpvd25fYnVmLCBp bnQgcGFja2V0X2xlbiwgaW50ICpuZXdfcGFja2V0X2xlbikKICAgICAgIHJldHVybjsKICAgICB9 CiAKKyAgaWYgKHN0YXJ0c3dpdGggKG93bl9idWYsICJ2QWNrOiIpKQorICAgIHsKKyAgICAgIGhh bmRsZV92X2FjayAob3duX2J1Zik7CisgICAgICByZXR1cm47CisgICAgfQorCiAgIGlmIChoYW5k bGVfbm90aWZfYWNrIChvd25fYnVmLCBwYWNrZXRfbGVuKSkKICAgICByZXR1cm47CiAKZGlmZiAt LWdpdCBhL2dkYnNlcnZlci9zZXJ2ZXIuaCBiL2dkYnNlcnZlci9zZXJ2ZXIuaAppbmRleCAzYmFj ZDEwNjJmOGJmNDc3MjAxODlkMmQwMmIzNmRkYjYwODllNmJjLi5mZmJlZGM0M2NmYzIyYmRhNjUz NDk3NTFiNmYyMzU3NGVmN2ZkMDViIDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXIvc2VydmVyLmgKKysr IGIvZ2Ric2VydmVyL3NlcnZlci5oCkBAIC0xOTksNiArMTk5LDEwIEBAIHN0cnVjdCBjbGllbnRf c3RhdGUKICAgICAgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCBxUmNtZCBhbmQgbSBwYWNrZXRzLCBi dXQgYXJlIHN0aWxsIHN1cHBvcnRlZAogICAgICBldmVyeXdoZXJlIGVsc2UuICBUaGlzIGlzIGZv ciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHJlYXNvbnMuICAqLwogICBib29sIGVycm9yX21lc3Nh Z2Vfc3VwcG9ydGVkID0gZmFsc2U7CisKKyAgLyogVHJhY2sgc3VwcG9ydGVkIHBhY2tldHMuICAq LworICBib29sIHZhY2tfbGlicmFyeV9zdXBwb3J0ZWQgPSBmYWxzZTsKKyAgYm9vbCB2YWNrX2lu X21lbW9yeV9saWJyYXJ5X3N1cHBvcnRlZCA9IGZhbHNlOwogfTsKIAogY2xpZW50X3N0YXRlICZn ZXRfY2xpZW50X3N0YXRlICgpOwpkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyL3RhcmdldC5jYyBiL2dk YnNlcnZlci90YXJnZXQuY2MKaW5kZXggNmRiMzJkYTJlOTU5Mjg0ZmVhNzJmMzdlYzJkZGFjZjgw NzEwMjJlNC4uYjA3YTQ0MDVjMDFlZTcxMzJiZDI2ZjgzYjYwMzEzMGYxZDMwZTlmZSAxMDA2NDQK LS0tIGEvZ2Ric2VydmVyL3RhcmdldC5jYworKysgYi9nZGJzZXJ2ZXIvdGFyZ2V0LmNjCkBAIC00 NDEsNiArNDQxLDIwIEBAIHByb2Nlc3Nfc3RyYXR1bV90YXJnZXQ6OnN0b3JlX21lbXRhZ3MgKENP UkVfQUREUiBhZGRyZXNzLCBzaXplX3QgbGVuLAogICBnZGJfYXNzZXJ0X25vdF9yZWFjaGVkICgi dGFyZ2V0IG9wIHN0b3JlX21lbXRhZ3Mgbm90IHN1cHBvcnRlZCIpOwogfQogCit2b2lkCitwcm9j ZXNzX3N0cmF0dW1fdGFyZ2V0OjphY2tfbGlicmFyeSAocHJvY2Vzc19pbmZvICpwcm9jZXNzLCBj b25zdCBjaGFyICpuYW1lKQoreworICBnZGJfYXNzZXJ0X25vdF9yZWFjaGVkICgidGFyZ2V0IG9w IGFja19saWJyYXJ5IG5vdCBzdXBwb3J0ZWQiKTsKK30KKwordm9pZAorcHJvY2Vzc19zdHJhdHVt X3RhcmdldDo6YWNrX2luX21lbW9yeV9saWJyYXJ5IChwcm9jZXNzX2luZm8gKnByb2Nlc3MsCisJ CQkJCSAgICAgICBDT1JFX0FERFIgYmVnaW4sCisJCQkJCSAgICAgICBDT1JFX0FERFIgZW5kKQor eworICBnZGJfYXNzZXJ0X25vdF9yZWFjaGVkICgidGFyZ2V0IG9wIGFja19pbl9tZW1vcnlfbGli cmFyeSBub3Qgc3VwcG9ydGVkIik7Cit9CisKIGludAogcHJvY2Vzc19zdHJhdHVtX3RhcmdldDo6 cmVhZF9vZmZzZXRzIChDT1JFX0FERFIgKnRleHQsIENPUkVfQUREUiAqZGF0YSkKIHsKZGlmZiAt LWdpdCBhL2dkYnNlcnZlci90YXJnZXQuaCBiL2dkYnNlcnZlci90YXJnZXQuaAppbmRleCAzNjQz YjkxMTBkYWM3NjBmM2FhZGFiZTQ4MWI2ZjM2MGQ3MjEwZjVlLi4yZmE4OGUwOWZmYmM2NWMzN2Zl NDY4YmJjNWVhMzU4MDk3MWNjZmRiIDEwMDY0NAotLS0gYS9nZGJzZXJ2ZXIvdGFyZ2V0LmgKKysr IGIvZ2Ric2VydmVyL3RhcmdldC5oCkBAIC01MTYsNiArNTE2LDEzIEBAIGNsYXNzIHByb2Nlc3Nf c3RyYXR1bV90YXJnZXQKICAgICAgUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwgYW5kIGZhbHNl IG90aGVyd2lzZS4gICovCiAgIHZpcnR1YWwgYm9vbCBzdG9yZV9tZW10YWdzIChDT1JFX0FERFIg YWRkcmVzcywgc2l6ZV90IGxlbiwKIAkJCSAgICAgIGNvbnN0IGdkYjo6Ynl0ZV92ZWN0b3IgJnRh Z3MsIGludCB0eXBlKTsKKworICAvKiBBY2tub3dsZWRnZSBhIGxpYnJhcnkgcmVwb3J0ZWQgYnkg bmFtZS4gICovCisgIHZpcnR1YWwgdm9pZCBhY2tfbGlicmFyeSAocHJvY2Vzc19pbmZvICpwcm9j ZXNzLCBjb25zdCBjaGFyICpuYW1lKTsKKworICAvKiBBY2tub3dsZWRnZSBhbiBpbi1tZW1vcnkg bGlicmFyeSByZXBvcnRlZCBieSBhZGRyZXNzLiAgKi8KKyAgdmlydHVhbCB2b2lkIGFja19pbl9t ZW1vcnlfbGlicmFyeSAocHJvY2Vzc19pbmZvICpwcm9jZXNzLCBDT1JFX0FERFIgYmVnaW4sCisJ CQkJICAgICAgQ09SRV9BRERSIGVuZCk7CiB9OwogCiBleHRlcm4gcHJvY2Vzc19zdHJhdHVtX3Rh cmdldCAqdGhlX3RhcmdldDsKQEAgLTcxMyw2ICs3MjAsMTkgQEAgdGFyZ2V0X3RocmVhZF9wZW5k aW5nX2NoaWxkICh0aHJlYWRfaW5mbyAqdGhyZWFkLCB0YXJnZXRfd2FpdGtpbmQgKmtpbmQpCiAg IHJldHVybiB0aGVfdGFyZ2V0LT50aHJlYWRfcGVuZGluZ19jaGlsZCAodGhyZWFkLCBraW5kKTsK IH0KIAorc3RhdGljIGlubGluZSB2b2lkCit0YXJnZXRfYWNrX2xpYnJhcnkgKHByb2Nlc3NfaW5m byAqcHJvY2VzcywgY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgdGhlX3RhcmdldC0+YWNrX2xpYnJh cnkgKHByb2Nlc3MsIG5hbWUpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK3RhcmdldF9hY2tf aW5fbWVtb3J5X2xpYnJhcnkgKHByb2Nlc3NfaW5mbyAqcHJvY2VzcywgIENPUkVfQUREUiBiZWdp biwKKwkJCSAgICAgIENPUkVfQUREUiBlbmQpCit7CisgIHRoZV90YXJnZXQtPmFja19pbl9tZW1v cnlfbGlicmFyeSAocHJvY2VzcywgYmVnaW4sIGVuZCk7Cit9CisKIC8qIFJlYWQgTEVOIGJ5dGVz IGZyb20gTUVNQUREUiBpbiB0aGUgYnVmZmVyIE1ZQUREUi4gIFJldHVybiAwIGlmIHRoZSByZWFk CiAgICBpcyBzdWNjZXNzZnVsLCBvdGhlcndpc2UsIHJldHVybiBhIG5vbi16ZXJvIGVycm9yIGNv ZGUuICAqLwogCgotLSAKMi4zNC4xCgpJbnRlbCBEZXV0c2NobGFuZCBHbWJIDQpSZWdpc3RlcmVk IEFkZHJlc3M6IEFtIENhbXBlb24gMTAsIDg1NTc5IE5ldWJpYmVyZywgR2VybWFueQ0KVGVsOiAr NDkgODkgOTkgODg1My0wLCB3d3cuaW50ZWwuZGUNCk1hbmFnaW5nIERpcmVjdG9yczogU2VhbiBG ZW5uZWxseSwgSmVmZnJleSBTY2huZWlkZXJtYW4sIFRpZmZhbnkgRG9vbiBTaWx2YQ0KQ2hhaXJw ZXJzb24gb2YgdGhlIFN1cGVydmlzb3J5IEJvYXJkOiBOaWNvbGUgTGF1DQpSZWdpc3RlcmVkIE9m ZmljZTogTXVuaWNoDQpDb21tZXJjaWFsIFJlZ2lzdGVyOiBBbXRzZ2VyaWNodCBNdWVuY2hlbiBI UkIgMTg2OTI4Cg==