From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Cecilio Pardo Newsgroups: gmane.emacs.bugs Subject: bug#71909: 30.0.60; Date: Sat, 2 Nov 2024 21:30:38 +0100 Message-ID: References: <865xtnhyn6.fsf@foxmail.com> <58c79a62-cd21-4ff5-8e81-a9ba3e9b2097@imayhem.com> <86plnj56li.fsf@gnu.org> <3b0ad17c-aa6e-421c-a17a-453bf0483023@imayhem.com> <86r07x4n93.fsf@gnu.org> <86ldy1zzhr.fsf@gnu.org> <8cc7d245-abd2-4b00-b30a-46698b49e514@imayhem.com> <86plndygyx.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------CM0GvltQhBlisVyzINC1NMMq" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39912"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: 71909@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Nov 02 21:31:27 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1t7KmM-000AHB-SW for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 02 Nov 2024 21:31:27 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1t7Km0-0004cZ-J8; Sat, 02 Nov 2024 16:31:04 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1t7Kly-0004cF-Ci for bug-gnu-emacs@gnu.org; Sat, 02 Nov 2024 16:31:02 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1t7Kly-0003YO-47 for bug-gnu-emacs@gnu.org; Sat, 02 Nov 2024 16:31:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=In-Reply-To:From:References:MIME-Version:Date:To:Subject; bh=MKmEKs7ZMrgbLrjkI9J4ZbefF7vGaqwiJyc0OkvDxgU=; b=ZvzIN3YoOD89AKX2E5mIIY4rjvLGOPjv245Oo0BqXXqkNMzUfv4xPtGvuAH9c+WIe0Hp3hcNqyr0nGywU82qvWQutOPJIwEF/GZ/kebuoNMPWkrdlx5u+cFSAhqAgvLyHMUhfoReNzrqWJEmNdGlF6Lfc17xf7EvgqQ3OKo+eP1B9FXOIFwL7k8CPKIu97AshNmugghoIza4DEfGhaFUXaNQWQbOGOG/Hy8Eua5ut8I78mMkkOfHz7jnw5EXT5TvhlxBz7sSaG/CzXahE/AJSCfD1QU8vUSXdFfU0yhZbAhQgUit/bBqcrzEM3M6lh9oVFKQ4+MI12FFxpiyomBmiw==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1t7Klx-00080i-L0 for bug-gnu-emacs@gnu.org; Sat, 02 Nov 2024 16:31:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Cecilio Pardo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 02 Nov 2024 20:31:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71909 X-GNU-PR-Package: emacs Original-Received: via spool by 71909-submit@debbugs.gnu.org id=B71909.173057945130784 (code B ref 71909); Sat, 02 Nov 2024 20:31:01 +0000 Original-Received: (at 71909) by debbugs.gnu.org; 2 Nov 2024 20:30:51 +0000 Original-Received: from localhost ([127.0.0.1]:55478 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7Kll-00080S-Nz for submit@debbugs.gnu.org; Sat, 02 Nov 2024 16:30:51 -0400 Original-Received: from mail.imayhem.com ([82.223.54.191]:60523 helo=zealous-pike.82-223-54-191.plesk.page) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1t7Klh-00080I-9a for 71909@debbugs.gnu.org; Sat, 02 Nov 2024 16:30:48 -0400 Original-Received: from [192.168.68.105] (111.red-88-21-7.staticip.rima-tde.net [88.21.7.111]) by zealous-pike.82-223-54-191.plesk.page (Postfix) with ESMTPSA id 5173880101; Sat, 2 Nov 2024 20:30:39 +0000 (UTC) Authentication-Results: zealous-pike.82-223-54-191.plesk.page; spf=pass (sender IP is 88.21.7.111) smtp.mailfrom=cpardo@imayhem.com smtp.helo=[192.168.68.105] Received-SPF: pass (zealous-pike.82-223-54-191.plesk.page: connection is authenticated) Content-Language: es-ES In-Reply-To: <86plndygyx.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:294775 Archived-At: This is a multi-part message in MIME format. --------------CM0GvltQhBlisVyzINC1NMMq Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 02/11/2024 13:09, Eli Zaretskii wrote: >> Date: Sat, 2 Nov 2024 12:24:58 +0100 >> Cc: 71909@debbugs.gnu.org >> From: Cecilio Pardo >> >>> >>>> +Elements in FORMATS are symbols naming a format, such a image/png, or >>>> +image/jpeg. They don't need to be MIME types, any format available can >>>> +be retrieved. For compatibility with X systems, some conventional >>>> +format names are translated to equivalent MIME types. >>> >>> Should this mention 'w32--selection-target-translations'? >>> >>> And I don't understand what you mean by the second sentence above. >>> Surely, "any format" can be retrieved only if there's a handler for >>> it? >> >> Someone may use this function outside of yank-media to get data from the >> clipboard, and handle it herself. > > Then maybe this sentence should be removed? What useful information > does it provide? I did that. New patch attached with all corrections. Thank you. --------------CM0GvltQhBlisVyzINC1NMMq Content-Type: text/plain; charset=UTF-8; name="0001-Add-support-for-yank-media-on-MS-Windows.patch" Content-Disposition: attachment; filename="0001-Add-support-for-yank-media-on-MS-Windows.patch" Content-Transfer-Encoding: base64 RnJvbSA0ZjRiYzM1ZjY0YzhiNGUyNTU3NGEyZTM5NjA2NmUyZTVmYTdiMzA3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDZWNpbGlvIFBhcmRvIDxjcGFyZG9AaW1heWhlbS5j b20+CkRhdGU6IE1vbiwgMjggT2N0IDIwMjQgMjI6MTg6MTMgKzAxMDAKU3ViamVjdDogW1BB VENIXSBBZGQgc3VwcG9ydCBmb3IgeWFuay1tZWRpYSBvbiBNUy1XaW5kb3dzCgpBZGRzIHRo ZSBjYXBhY2l0eSB0byBoYW5kbGUgdHlwZXMgZGlmZmVyZW50IGZyb20gc3RyaW5ncyB0byB0 aGUKY2xpcGJvYXJkIG1hbmFnZW1lbnQgZnVuY3Rpb25zIG9uIE1TLVdpbmRvd3MsIGFuZCBz b21lIGxvZ2ljCnJlcXVpcmVkIHRvIGNvbnZlcnQgbWVkaWEgdHlwZXMgbmFtZXMgYW5kIGNv bnRlbnQgdG8gYmUgd2hhdAp5YW5rLW1lZGlhIGFuZCB0aGUgbW9kZXMgdGhhdCB1c2UgaXQg ZXhwZWN0IChidWcjNzE5MDkpLgoKKiBsaXNwL3Rlcm0vdzMyLXdpbi5lbCAodzMyLS1zZWxl Y3Rpb24tdGFyZ2V0LXRyYW5zbGF0aW9ucyk6IE5ldwp2YXJpYWJsZSB0aGF0IGhvbGRzIHRo ZSBuYW1lIHRyYW5zbGF0aW9ucyBmb3IgbWVkaWEgdHlwZXMuCih3MzItLXRyYW5zbGF0ZS1z ZWxlY3Rpb24tdGFyZ2V0KTogTmV3IGZ1bmN0aW9uLCB0cmFuc2xhdGUgdGhlCm5hbWUgb2Yg YSBtZWRpYSB0eXBlLgoodzMyLS10cmFuc2xhdGUtcmV2ZXJzZS1zZWxlY3Rpb24tdGFyZ2V0 KTogTmV3IGZ1bmN0aW9uLCByZXZlcnNlCnRyYW5zbGF0aW9uLgoodzMyLS1nZXQtc2VsZWN0 aW9uKTogTW9kaWZpZWQgdG8gdHJhbnNsYXRlIHRhcmdldCBuYW1lcyB3aGVuCmFza2VkIGZv ciB0YXJnZXRzLCBhbmQgcmV0cmlldmUgbWVkaWEgdHlwZXMgd2hlbiBhc2tlZCBmb3IgdGhl bS4KKHczMi0tbWltZS10eXBlLXRleHR1YWwtcCk6IE5ldyBmdW5jdGlvbiwgY2hlY2tzIGlm IGEgTUlNRSB0eXBlCmlzIHRleHR1YWwuCiogbGlzcC90ZXh0bW9kZXMvc2dtbC1tb2RlLmVs IChodG1sLW1vZGUtLWltYWdlLXlhbmstaGFuZGxlcik6CkZpeGVkIHRoZSBpbWFnZSBzYXZl IG1lY2hhbmlzbSwgdGhhdCBhZGRlZCBsaW5lIGZlZWQgY2hhcmFjdGVycwpvbiBNUy1XaW5k b3dzLCBicmVha2luZyBiaW5hcnkgZm9ybWF0cy4KKiBzcmMvdzMyaW1hZ2UuYyAoZ2RpcGx1 c19pbml0KTogTW9kaWZpZWQgdG8gZmV0Y2ggbW9yZQpmdW5jdGlvbnMgZnJvbW0gZ2RpcGx1 cy4KKGdldF9lbmNvZGVyX2Nsc2lkKTogUmVuYW1lZCB0byB3MzJfZ2RpcF9nZXRfZW5jb2Rl cl9jbHNpZCBhbmQKbWFkZSBub25zdGF0aWMuCihnZGlwbHVzX3N0YXJ0dXApOiBSZW5hbWVk IHRvIHczMl9nZGlwbHVzX3N0YXJ0dXAgYW5kCm1hZGUgbm9uc3RhdGljLgoqIHNyYy93MzJz ZWxlY3QuYyAoc3RkZm10X25hbWUpOiBNYWRlIGdsb2JhbCwgd2FzIHN0YXRpYwpmdW5jdGlv bi4KKGNvbnZlcnRfZGlidjVfdG9fcG5nKTogTmV3IGZ1bmN0aW9uIHRvIGNvbnZlcnQgRElC VjUgY2xpcGJvYXJkCmZvcm1hdCB0byBQTkcuCihnZXRfY2xpcGJvYXJkX2Zvcm1hdF9uYW1l KTogTmV3IGZ1bmN0aW9uIGdldCB0aGUgbmFtZSBvZiBhCmZvcm1hdCBnaXZlbiBpdHMgaW5k ZXguCihGdzMyX19nZXRfY2xpcGJvYXJkX2RhdGFfbWVkaWEpOiBOZXcgZnVuY3Rpb24sIHJl dHJpZXZlcyBhbmQKY29udmVydHMgbWVkaWEgY29udGVudC4KKHN5bXNfb2ZfdzMyc2VsZWN0 KTogRXhwb3J0IG5ldyBsaXNwIGZ1bmN0aW9ucy4KKiBzcmMvdzMyZ2RpcGx1cy5oOiBOZXcg ZmlsZSwgZm9yIGRlZmluaXRpb25zIGluIHczMmltYWdlLmMKKiBkb2MvbGlzcHJlZi9mcmFt ZXMudGV4aTogVXBkYXRlZCB3aXRoIE1TLVdpbmRvd3Mgc3VwcG9ydC4KKiBldGMvTkVXUzog QWRkZWQgZW50cnkgYWJvdXQgbmV3IGZlYXR1cmUuCi0tLQogZG9jL2xpc3ByZWYvZnJhbWVz LnRleGkgICAgIHwgIDE2ICstLQogZXRjL05FV1MgICAgICAgICAgICAgICAgICAgIHwgICA2 ICsrCiBsaXNwL3Rlcm0vdzMyLXdpbi5lbCAgICAgICAgfCAgNzEgKysrKysrKysrKysrLQog bGlzcC90ZXh0bW9kZXMvc2dtbC1tb2RlLmVsIHwgICA3ICstCiBzcmMvdzMyZ2RpcGx1cy5o ICAgICAgICAgICAgfCAxMTIgKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdzMyZ3VpLmgg ICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3czMmltYWdlLmMgICAgICAgICAgICAgIHwg MTA0ICsrKystLS0tLS0tLS0tLS0tLS0KIHNyYy93MzJzZWxlY3QuYyAgICAgICAgICAgICB8 IDE5NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIDggZmlsZXMgY2hh bmdlZCwgMzg5IGluc2VydGlvbnMoKyksIDEyMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvdzMyZ2RpcGx1cy5oCgpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvZnJh bWVzLnRleGkgYi9kb2MvbGlzcHJlZi9mcmFtZXMudGV4aQppbmRleCBlZGViYTMyODhmYy4u YTM1MzhjOGFjNGIgMTAwNjQ0Ci0tLSBhL2RvYy9saXNwcmVmL2ZyYW1lcy50ZXhpCisrKyBi L2RvYy9saXNwcmVmL2ZyYW1lcy50ZXhpCkBAIC00NzU4LDE0ICs0NzU4LDE0IEBAIE90aGVy IFNlbGVjdGlvbnMKIEBub2RlIFlhbmtpbmcgTWVkaWEKIEBzZWN0aW9uIFlhbmtpbmcgTWVk aWEKIAotICBEYXRhIHNhdmVkIHdpdGhpbiB3aW5kb3cgc3lzdGVtIHNlbGVjdGlvbnMgaXMg bm90IHJlc3RyaWN0ZWQgdG8KLXBsYWluIHRleHQuICBJdCBpcyBwb3NzaWJsZSBmb3Igc2Vs ZWN0aW9uIGRhdGEgdG8gZW5jb21wYXNzIGltYWdlcyBvcgotb3RoZXIgYmluYXJ5IGRhdGEg b2YgdGhlIGxpa2UsIGFzIHdlbGwgYXMgcmljaCB0ZXh0IGNvbnRlbnQgaW5zdGFuY2VkCi1i eSBIVE1MLCBhbmQgYWxzbyBQb3N0U2NyaXB0LiAgU2luY2UgdGhlIHNlbGVjdGlvbiBkYXRh IHR5cGVzIGluY2lkZW50Ci10byB0aGlzIGRhdGEgYXJlIGF0IHZhcmlhbmNlIHdpdGggdGhv c2UgZm9yIHBsYWluIHRleHQsIHRoZSBpbnNlcnRpb24KLW9mIHN1Y2ggZGF0YSBpcyBmYWNp bGl0YXRlZCBieSBhIHNldCBvZiBmdW5jdGlvbnMgZHViYmVkCi1AZGZue3lhbmstbWVkaWEg aGFuZGxlcnN9LCB3aGljaCBhcmUgcmVnaXN0ZXJlZCBieSBlYWNoIG1ham9yIG1vZGUKLXVu ZGVydGFraW5nIGl0cyBpbnNlcnRpb24gYW5kIGNhbGxlZCB3aGVyZSB3YXJyYW50ZWQgdXBv biB0aGUKKyAgRGF0YSBzYXZlZCB3aXRoaW4gd2luZG93IHN5c3RlbSBzZWxlY3Rpb25zIGFu ZCB0aGUgTVMtV2luZG93cworY2xpcGJvYXJkIGlzIG5vdCByZXN0cmljdGVkIHRvIHBsYWlu IHRleHQuICBJdCBpcyBwb3NzaWJsZSBmb3Igc2VsZWN0aW9uCitkYXRhIHRvIGVuY29tcGFz cyBpbWFnZXMgb3Igb3RoZXIgYmluYXJ5IGRhdGEgb2YgdGhlIGxpa2UsIGFzIHdlbGwgYXMK K3JpY2ggdGV4dCBjb250ZW50IGluc3RhbmNlZCBieSBIVE1MLCBhbmQgYWxzbyBQb3N0U2Ny aXB0LiAgU2luY2UgdGhlCitzZWxlY3Rpb24gZGF0YSB0eXBlcyBpbmNpZGVudCB0byB0aGlz IGRhdGEgYXJlIGF0IHZhcmlhbmNlIHdpdGggdGhvc2UKK2ZvciBwbGFpbiB0ZXh0LCB0aGUg aW5zZXJ0aW9uIG9mIHN1Y2ggZGF0YSBpcyBmYWNpbGl0YXRlZCBieSBhIHNldCBvZgorZnVu Y3Rpb25zIGR1YmJlZCBAZGZue3lhbmstbWVkaWEgaGFuZGxlcnN9LCB3aGljaCBhcmUgcmVn aXN0ZXJlZCBieSBlYWNoCittYWpvciBtb2RlIHVuZGVydGFraW5nIGl0cyBpbnNlcnRpb24g YW5kIGNhbGxlZCB3aGVyZSB3YXJyYW50ZWQgdXBvbiB0aGUKIGV4ZWN1dGlvbiBvZiB0aGUg QGNvZGV7eWFuay1tZWRpYX0gY29tbWFuZC4KIAogQGRlZnVuIHlhbmstbWVkaWEtaGFuZGxl ciB0eXBlcyBoYW5kbGVyCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdTCmluZGV4 IDRhYmE0YjE3MDU1Li45MDAwNzNiZjgwZSAxMDA2NDQKLS0tIGEvZXRjL05FV1MKKysrIGIv ZXRjL05FV1MKQEAgLTgxNSw2ICs4MTUsMTIgQEAgRGlyZWN0V3JpdGUgcmVuZGVyaW5nIHBh cmFtZXRlcnMuCiBUbyBzaG93IGNvbG9yIEVtb2ppIGluIEVtYWNzLCBjdXN0b21pemUgdGhl IGRlZmF1bHQgZm9udHNldCB0byB1c2UgYQogY29sb3IgRW1vamkgZm9udCBpbnN0YWxsZWQg b24geW91ciBzeXN0ZW0gZm9yIHRoZSAnZW1vamknIHNjcmlwdC4KIAorKysrCisqKiBFbWFj cyBvbiBNUy1XaW5kb3dzIG5vdyBzdXBwb3J0cyAneWFuay1tZWRpYScuCitUaGlzIGNvbW1h bmQgaW5zZXJ0cyBjbGlwYm9hcmQgZGF0YSBvZiBkaWZmZXJlbnQgZm9ybWF0cyBpbnRvIHRo ZQorY3VycmVudCBidWZmZXIsIGlmIHRoZSBtYWpvciBtb2RlIHN1cHBvcnRzIGl0LgorCisK IAwKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBFbWFjcy4K ZGlmZiAtLWdpdCBhL2xpc3AvdGVybS93MzItd2luLmVsIGIvbGlzcC90ZXJtL3czMi13aW4u ZWwKaW5kZXggNzVmODUzMDAxMGMuLmI1YzkwOWY0YTRlIDEwMDY0NAotLS0gYS9saXNwL3Rl cm0vdzMyLXdpbi5lbAorKysgYi9saXNwL3Rlcm0vdzMyLXdpbi5lbApAQCAtNDQyLDE1ICs0 NDIsODIgQEAgdzMyLS1zZXQtc2VsZWN0aW9uCiAgICAgICAodzMyLXNldC1jbGlwYm9hcmQt ZGF0YSAoc3RyaW5nLXJlcGxhY2UgIlwwIiAiXFwwIiB2YWx1ZSkpCiAgICAgKHB1dCAneC1z ZWxlY3Rpb25zIChvciB0eXBlICdQUklNQVJZKSB2YWx1ZSkpKQogCi0oZGVmdW4gdzMyLS1n ZXQtc2VsZWN0aW9uICAoJm9wdGlvbmFsIHR5cGUgZGF0YS10eXBlKQorKGRlZnZhciB3MzIt LXNlbGVjdGlvbi10YXJnZXQtdHJhbnNsYXRpb25zCisgICcoKFBORyAuIGltYWdlL3BuZykK KyAgICAoRElCVjUgLiBpbWFnZS9wbmcpCisgICAgKEhUTUxcIEZvcm1hdCAuIHRleHQvaHRt bCkpKQorCisoZGVmdW4gdzMyLS10cmFuc2xhdGUtc2VsZWN0aW9uLXRhcmdldCAodGFyZ2V0 KQorICAobGV0ICgoeGxhdCAoYXNzb2MgdGFyZ2V0IHczMi0tc2VsZWN0aW9uLXRhcmdldC10 cmFuc2xhdGlvbnMpKSkKKyAgICAoaWYgeGxhdAorICAgICAgICAoY2RyIHhsYXQpCisgICAg ICB0YXJnZXQpKSkKKworKGRlZnVuIHczMi0tdHJhbnNsYXRlLXJldmVyc2Utc2VsZWN0aW9u LXRhcmdldCAodGFyZ2V0KQorICAoYXBwZW5kCisgICAobWFwY2FyICMnY2FyCisgICAgICAg ICAgIChzZXEtZmlsdGVyCisgICAgICAgICAgICAobGFtYmRhICh4KQorICAgICAgICAgICAg ICAoZXEgdGFyZ2V0CisgICAgICAgICAgICAgICAgICAodzMyLS10cmFuc2xhdGUtc2VsZWN0 aW9uLXRhcmdldCAoY2FyIHgpKSkpCisgICAgICAgICAgICB3MzItLXNlbGVjdGlvbi10YXJn ZXQtdHJhbnNsYXRpb25zKSkKKyAgIChsaXN0IHRhcmdldCkpKQorCisoZGVmdmFyIHczMi0t dGV4dHVhbC1taW1lLXR5cGVzCisgICcoImFwcGxpY2F0aW9uL3htbCIKKyAgICAiYXBwbGlj YXRpb24vanNvbiIKKyAgICAiYXBwbGljYXRpb24veWFtbCIKKyAgICAiYXBwbGljYXRpb24v anNvbi1zZXEiCisgICAgIlxcYHRleHQvIgorICAgICIreG1sXFwnIgorICAgICIranNvblxc JyIKKyAgICAiK3lhbWxcXCciCisgICAgIitqc29uLXNlcVxcJyIpKQorCisoZGVmdW4gdzMy LS1taW1lLXR5cGUtdGV4dHVhbC1wIChtaW1lLXR5cGUpCisgICJSZXR1cm5zIHQgaWYgTUlN RS1UWVBFLCBhIHN5bWJvbCwgbmFtZXMgYSB0ZXh0dWFsIE1JTUUgdHlwZS4KKworVGhpcyBm dW5jdGlvbiBpcyBpbnRlbmRlZCB0byBjbGFzc2lmeSBjbGlwYm9hcmQgZGF0YS4gIEFsbCBN SU1FIHN1YnR5cGVzCitvZiB0ZXh0LyBhcmUgY29uc2lkZXJlZCB0ZXh0dWFsLiAgQWxzbyB0 aG9zZSB3aXRoIHN1ZmZpeGVzICt4bWwsICtqc29uLAorK3lhbWwsICtqc29uLXNlcS4gIEFu ZCBhcHBsaWNhdGlvbi94bWwsIGFwcGxpY2F0aW9uL2pzb24sCithcHBsaWNhdGlvbi95YW1s LCBhcHBsaWNhdGlvbi9qc29uLXNlcS4KKworVGhpcyBjbGFzc2lmaWNhdGlvbiBpcyBub3Qg ZXhoYXVzdGl2ZS4gIFNvbWUgTUlNRSB0eXBlcyBub3QgbGlzdGVkIG1heQorYWxzbyBiZSB0 ZXh0dWFsLiIKKyAgKHN0cmluZy1tYXRjaC1wCisgICAobWFwY29uY2F0ICMnaWRlbnRpdHkg dzMyLS10ZXh0dWFsLW1pbWUtdHlwZXMgIlxcfCIpCisgICAgICAgIChzeW1ib2wtbmFtZSBt aW1lLXR5cGUpKSkKKworKGRlZnVuIHczMi0tZ2V0LXNlbGVjdGlvbiAoJm9wdGlvbmFsIHR5 cGUgZGF0YS10eXBlKQogICAoY29uZCAoKGFuZCAoZXEgdHlwZSAnQ0xJUEJPQVJEKQogICAg ICAgICAgICAgICAoZXEgZGF0YS10eXBlICdTVFJJTkcpKQogICAgICAgICAgKHdpdGgtZGVt b3RlZC1lcnJvcnMgInczMi1nZXQtY2xpcGJvYXJkLWRhdGE6JVMiCiAgICAgICAgICAgICh3 MzItZ2V0LWNsaXBib2FyZC1kYXRhKSkpCiAgICAgICAgICgoZXEgZGF0YS10eXBlICdUQVJH RVRTKQogICAgICAgICAgKGlmIChlcSB0eXBlICdDTElQQk9BUkQpCi0gICAgICAgICAgICAg KHczMi1zZWxlY3Rpb24tdGFyZ2V0cyB0eXBlKQorICAgICAgICAgICAgICh2Y29uY2F0Cisg ICAgICAgICAgICAgIChkZWxldGUtZHVwcworICAgICAgICAgICAgICAgKHNlcS1tYXAgIyd3 MzItLXRyYW5zbGF0ZS1zZWxlY3Rpb24tdGFyZ2V0CisgICAgICAgICAgICAgICAgICAgICAg ICAodzMyLXNlbGVjdGlvbi10YXJnZXRzIHR5cGUpKSkpCiAgICAgICAgICAgIChpZiAoZ2V0 ICd4LXNlbGVjdGlvbnMgKG9yIHR5cGUgJ1BSSU1BUlkpKSAnW1NUUklOR10pKSkKKyAgICAg ICAgKChlcSB0eXBlICdDTElQQk9BUkQpCisgICAgICAgICAobGV0ICgodG1wLWZpbGUgKG1h a2UtdGVtcC1maWxlICJlbWFjcy1jbGlwYm9hcmQiKSkKKyAgICAgICAgICAgICAgIChpcy10 ZXh0dWFsICh3MzItLW1pbWUtdHlwZS10ZXh0dWFsLXAgZGF0YS10eXBlKSkpCisgICAgICAg ICAgICh1bndpbmQtcHJvdGVjdAorICAgICAgICAgICAgICAgKGxldCogKChkYXRhLXR5cGVz ICh3MzItLXRyYW5zbGF0ZS1yZXZlcnNlLXNlbGVjdGlvbi10YXJnZXQgZGF0YS10eXBlKSkK KyAgICAgICAgICAgICAgICAgICAgICAoZGF0YSAodzMyLS1nZXQtY2xpcGJvYXJkLWRhdGEt bWVkaWEgZGF0YS10eXBlcyB0bXAtZmlsZSBpcy10ZXh0dWFsKSkpCisgICAgICAgICAgICAg ICAgIChjb25kCisgICAgICAgICAgICAgICAgICA7OyBkYXRhIGlzIGluIHRoZSBmaWxlCisg ICAgICAgICAgICAgICAgICAoKGVxIGRhdGEgdCkKKyAgICAgICAgICAgICAgICAgICAod2l0 aC10ZW1wLWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgKHNldC1idWZmZXItbXVsdGli eXRlIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgIChpbnNlcnQtZmlsZS1jb250ZW50cy1s aXRlcmFsbHkgdG1wLWZpbGUpCisgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN0cmlu ZykpKQorICAgICAgICAgICAgICAgICAgOzsgZGF0YSBpcyBpbiBkYXRhIHZhcgorICAgICAg ICAgICAgICAgICAgKChzdHJpbmdwIGRhdGEpIGRhdGEpCisgICAgICAgICAgICAgICAgICA7 OyBObyBkYXRhCisgICAgICAgICAgICAgICAgICAodCBuaWwpKSkKKyAgICAgICAgICAgICAo ZGVsZXRlLWZpbGUgdG1wLWZpbGUpKSkpCiAgICAgICAgICh0IChnZXQgJ3gtc2VsZWN0aW9u cyAob3IgdHlwZSAnUFJJTUFSWSkpKSkpCiAKIChkZWZ1biB3MzItLXNlbGVjdGlvbi1vd25l ci1wIChzZWxlY3Rpb24pCmRpZmYgLS1naXQgYS9saXNwL3RleHRtb2Rlcy9zZ21sLW1vZGUu ZWwgYi9saXNwL3RleHRtb2Rlcy9zZ21sLW1vZGUuZWwKaW5kZXggY2M4NjI5NGRmMDkuLmZh ZDcwMDhhZGMwIDEwMDY0NAotLS0gYS9saXNwL3RleHRtb2Rlcy9zZ21sLW1vZGUuZWwKKysr IGIvbGlzcC90ZXh0bW9kZXMvc2dtbC1tb2RlLmVsCkBAIC0yNDc2LDEwICsyNDc2LDkgQEAg aHRtbC1tb2RlLS1pbWFnZS15YW5rLWhhbmRsZXIKICAgICAod2hlbiAoYW5kIChmaWxlLWV4 aXN0cy1wIGZpbGUpCiAgICAgICAgICAgICAgICAobm90ICh5ZXMtb3Itbm8tcCAoZm9ybWF0 ICIlcyBleGlzdHM7IG92ZXJ3cml0ZT8iIGZpbGUpKSkpCiAgICAgICAodXNlci1lcnJvciAi JXMgZXhpc3RzIiBmaWxlKSkKLSAgICAod2l0aC10ZW1wLWJ1ZmZlcgotICAgICAgKHNldC1i dWZmZXItbXVsdGlieXRlIG5pbCkKLSAgICAgIChpbnNlcnQgaW1hZ2UpCi0gICAgICAod3Jp dGUtcmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgpIGZpbGUpKQorICAgIChsZXQgKChj b2Rpbmctc3lzdGVtLWZvci13cml0ZSAnZW1hY3MtaW50ZXJuYWwpKQorICAgICAgKHdpdGgt dGVtcC1maWxlIGZpbGUKKyAgICAgICAgKGluc2VydCBpbWFnZSkpKQogICAgIChpbnNlcnQg KGZvcm1hdCAiPGltZyBzcmM9JVM+XG4iIChmaWxlLXJlbGF0aXZlLW5hbWUgZmlsZSkpKQog ICAgIChpbnNlcnQtaW1hZ2UKICAgICAgKGNyZWF0ZS1pbWFnZSBmaWxlIChtYWlsY2FwLW1p bWUtdHlwZS10by1leHRlbnNpb24gdHlwZSkgbmlsCmRpZmYgLS1naXQgYS9zcmMvdzMyZ2Rp cGx1cy5oIGIvc3JjL3czMmdkaXBsdXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uOWQwNWFlNmMxOTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdzMyZ2Rp cGx1cy5oCkBAIC0wLDAgKzEsMTEyIEBACisjaWZkZWYgV0lORE9XU05UCit0eXBlZGVmIEdw U3RhdHVzIChXSU5HRElQQVBJICpHZGlwbHVzU3RhcnR1cF9Qcm9jKQorICAoVUxPTkdfUFRS ICosIEdkaXBsdXNTdGFydHVwSW5wdXQgKiwgR2RpcGx1c1N0YXJ0dXBPdXRwdXQgKik7Cit0 eXBlZGVmIFZPSUQgKFdJTkdESVBBUEkgKkdkaXBsdXNTaHV0ZG93bl9Qcm9jKSAoVUxPTkdf UFRSKTsKK3R5cGVkZWYgR3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBHZXRQcm9wZXJ0eUl0 ZW1TaXplX1Byb2MpCisgIChHcEltYWdlICosIFBST1BJRCwgVUlOVCAqKTsKK3R5cGVkZWYg R3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBHZXRQcm9wZXJ0eUl0ZW1fUHJvYykKKyAgKEdw SW1hZ2UgKiwgUFJPUElELCBVSU5ULCBQcm9wZXJ0eUl0ZW0gKik7Cit0eXBlZGVmIEdwU3Rh dHVzIChXSU5HRElQQVBJICpHZGlwSW1hZ2VHZXRGcmFtZURpbWVuc2lvbnNDb3VudF9Qcm9j KQorICAoR3BJbWFnZSAqLCBVSU5UICopOwordHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQ SSAqR2RpcEltYWdlR2V0RnJhbWVEaW1lbnNpb25zTGlzdF9Qcm9jKQorICAoR3BJbWFnZSAq LCBHVUlEICosIFVJTlQpOwordHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQSSAqR2RpcElt YWdlR2V0RnJhbWVDb3VudF9Qcm9jKQorICAoR3BJbWFnZSAqLCBHRElQQ09OU1QgR1VJRCAq LCBVSU5UICopOwordHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQSSAqR2RpcEltYWdlU2Vs ZWN0QWN0aXZlRnJhbWVfUHJvYykKKyAgKEdwSW1hZ2UqLCBHRElQQ09OU1QgR1VJRCAqLCBV SU5UKTsKK3R5cGVkZWYgR3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBDcmVhdGVCaXRtYXBG cm9tRmlsZV9Qcm9jKQorICAoV0NIQVIgKiwgR3BCaXRtYXAgKiopOwordHlwZWRlZiBHcFN0 YXR1cyAoV0lOR0RJUEFQSSAqR2RpcENyZWF0ZUJpdG1hcEZyb21TdHJlYW1fUHJvYykKKyAg KElTdHJlYW0gKiwgR3BCaXRtYXAgKiopOwordHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQ SSAqR2RpcENyZWF0ZUJpdG1hcEZyb21TY2FuMF9Qcm9jKQorICAoSU5ULCBJTlQsIElOVCwg UGl4ZWxGb3JtYXQsIEJZVEUqLCBHcEJpdG1hcCoqKTsKK3R5cGVkZWYgSVN0cmVhbSAqIChX SU5BUEkgKlNIQ3JlYXRlTWVtU3RyZWFtX1Byb2MpIChjb25zdCBCWVRFICosIFVJTlQpOwor dHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQSSAqR2RpcENyZWF0ZUhCSVRNQVBGcm9tQml0 bWFwX1Byb2MpCisgIChHcEJpdG1hcCAqLCBIQklUTUFQICosIEFSR0IpOwordHlwZWRlZiBH cFN0YXR1cyAoV0lOR0RJUEFQSSAqR2RpcERpc3Bvc2VJbWFnZV9Qcm9jKSAoR3BJbWFnZSAq KTsKK3R5cGVkZWYgR3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBHZXRJbWFnZUhlaWdodF9Q cm9jKSAoR3BJbWFnZSAqLCBVSU5UICopOwordHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQ SSAqR2RpcEdldEltYWdlV2lkdGhfUHJvYykgKEdwSW1hZ2UgKiwgVUlOVCAqKTsKK3R5cGVk ZWYgR3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBHZXRJbWFnZUVuY29kZXJzU2l6ZV9Qcm9j KSAoVUlOVCAqLCBVSU5UICopOwordHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQSSAqR2Rp cEdldEltYWdlRW5jb2RlcnNfUHJvYykKKyAoVUlOVCwgVUlOVCwgSW1hZ2VDb2RlY0luZm8g Kik7Cit0eXBlZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJICpHZGlwTG9hZEltYWdlRnJvbUZp bGVfUHJvYykKKyAoR0RJUENPTlNUIFdDSEFSICosR3BJbWFnZSAqKik7Cit0eXBlZGVmIEdw U3RhdHVzIChXSU5HRElQQVBJICpHZGlwR2V0SW1hZ2VUaHVtYm5haWxfUHJvYykKKyAoR3BJ bWFnZSAqLCBVSU5ULCBVSU5ULCBHcEltYWdlKiosIEdldFRodW1ibmFpbEltYWdlQWJvcnQs IFZPSUQgKik7Cit0eXBlZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJICpHZGlwU2F2ZUltYWdl VG9GaWxlX1Byb2MpCisgKEdwSW1hZ2UgKiwgR0RJUENPTlNUIFdDSEFSICosIEdESVBDT05T VCBDTFNJRCAqLAorIEdESVBDT05TVCBFbmNvZGVyUGFyYW1ldGVycyAqKTsKK3R5cGVkZWYg R3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBJbWFnZVJvdGF0ZUZsaXBfUHJvYykKKyAgKEdw SW1hZ2UgKmltYWdlLCBSb3RhdGVGbGlwVHlwZSByZlR5cGUpOworCitleHRlcm4gR2RpcGx1 c1N0YXJ0dXBfUHJvYyBmbl9HZGlwbHVzU3RhcnR1cDsKK2V4dGVybiBHZGlwbHVzU2h1dGRv d25fUHJvYyBmbl9HZGlwbHVzU2h1dGRvd247CitleHRlcm4gR2RpcEdldFByb3BlcnR5SXRl bVNpemVfUHJvYyBmbl9HZGlwR2V0UHJvcGVydHlJdGVtU2l6ZTsKK2V4dGVybiBHZGlwR2V0 UHJvcGVydHlJdGVtX1Byb2MgZm5fR2RpcEdldFByb3BlcnR5SXRlbTsKK2V4dGVybiBHZGlw SW1hZ2VHZXRGcmFtZURpbWVuc2lvbnNDb3VudF9Qcm9jIGZuX0dkaXBJbWFnZUdldEZyYW1l RGltZW5zaW9uc0NvdW50OworZXh0ZXJuIEdkaXBJbWFnZUdldEZyYW1lRGltZW5zaW9uc0xp c3RfUHJvYyBmbl9HZGlwSW1hZ2VHZXRGcmFtZURpbWVuc2lvbnNMaXN0OworZXh0ZXJuIEdk aXBJbWFnZUdldEZyYW1lQ291bnRfUHJvYyBmbl9HZGlwSW1hZ2VHZXRGcmFtZUNvdW50Owor ZXh0ZXJuIEdkaXBJbWFnZVNlbGVjdEFjdGl2ZUZyYW1lX1Byb2MgZm5fR2RpcEltYWdlU2Vs ZWN0QWN0aXZlRnJhbWU7CitleHRlcm4gR2RpcENyZWF0ZUJpdG1hcEZyb21GaWxlX1Byb2Mg Zm5fR2RpcENyZWF0ZUJpdG1hcEZyb21GaWxlOworZXh0ZXJuIEdkaXBDcmVhdGVCaXRtYXBG cm9tU3RyZWFtX1Byb2MgZm5fR2RpcENyZWF0ZUJpdG1hcEZyb21TdHJlYW07CitleHRlcm4g R2RpcENyZWF0ZUJpdG1hcEZyb21TY2FuMF9Qcm9jIGZuX0dkaXBDcmVhdGVCaXRtYXBGcm9t U2NhbjA7CitleHRlcm4gU0hDcmVhdGVNZW1TdHJlYW1fUHJvYyBmbl9TSENyZWF0ZU1lbVN0 cmVhbTsKK2V4dGVybiBHZGlwQ3JlYXRlSEJJVE1BUEZyb21CaXRtYXBfUHJvYyBmbl9HZGlw Q3JlYXRlSEJJVE1BUEZyb21CaXRtYXA7CitleHRlcm4gR2RpcERpc3Bvc2VJbWFnZV9Qcm9j IGZuX0dkaXBEaXNwb3NlSW1hZ2U7CitleHRlcm4gR2RpcEdldEltYWdlSGVpZ2h0X1Byb2Mg Zm5fR2RpcEdldEltYWdlSGVpZ2h0OworZXh0ZXJuIEdkaXBHZXRJbWFnZVdpZHRoX1Byb2Mg Zm5fR2RpcEdldEltYWdlV2lkdGg7CitleHRlcm4gR2RpcEdldEltYWdlRW5jb2RlcnNTaXpl X1Byb2MgZm5fR2RpcEdldEltYWdlRW5jb2RlcnNTaXplOworZXh0ZXJuIEdkaXBHZXRJbWFn ZUVuY29kZXJzX1Byb2MgZm5fR2RpcEdldEltYWdlRW5jb2RlcnM7CitleHRlcm4gR2RpcExv YWRJbWFnZUZyb21GaWxlX1Byb2MgZm5fR2RpcExvYWRJbWFnZUZyb21GaWxlOworZXh0ZXJu IEdkaXBHZXRJbWFnZVRodW1ibmFpbF9Qcm9jIGZuX0dkaXBHZXRJbWFnZVRodW1ibmFpbDsK K2V4dGVybiBHZGlwU2F2ZUltYWdlVG9GaWxlX1Byb2MgZm5fR2RpcFNhdmVJbWFnZVRvRmls ZTsKK2V4dGVybiBHZGlwSW1hZ2VSb3RhdGVGbGlwX1Byb2MgZm5fR2RpcEltYWdlUm90YXRl RmxpcDsKKworIyB1bmRlZiBHZGlwbHVzU3RhcnR1cAorIyB1bmRlZiBHZGlwbHVzU2h1dGRv d24KKyMgdW5kZWYgR2RpcEdldFByb3BlcnR5SXRlbVNpemUKKyMgdW5kZWYgR2RpcEdldFBy b3BlcnR5SXRlbQorIyB1bmRlZiBHZGlwSW1hZ2VHZXRGcmFtZURpbWVuc2lvbnNDb3VudAor IyB1bmRlZiBHZGlwSW1hZ2VHZXRGcmFtZURpbWVuc2lvbnNMaXN0CisjIHVuZGVmIEdkaXBJ bWFnZUdldEZyYW1lQ291bnQKKyMgdW5kZWYgR2RpcEltYWdlU2VsZWN0QWN0aXZlRnJhbWUK KyMgdW5kZWYgR2RpcENyZWF0ZUJpdG1hcEZyb21GaWxlCisjIHVuZGVmIEdkaXBDcmVhdGVC aXRtYXBGcm9tU3RyZWFtCisjIHVuZGVmIEdkaXBDcmVhdGVCaXRtYXBGcm9tU2NhbjAKKyMg dW5kZWYgU0hDcmVhdGVNZW1TdHJlYW0KKyMgdW5kZWYgR2RpcENyZWF0ZUhCSVRNQVBGcm9t Qml0bWFwCisjIHVuZGVmIEdkaXBEaXNwb3NlSW1hZ2UKKyMgdW5kZWYgR2RpcEdldEltYWdl SGVpZ2h0CisjIHVuZGVmIEdkaXBHZXRJbWFnZVdpZHRoCisjIHVuZGVmIEdkaXBHZXRJbWFn ZUVuY29kZXJzU2l6ZQorIyB1bmRlZiBHZGlwR2V0SW1hZ2VFbmNvZGVycworIyB1bmRlZiBH ZGlwTG9hZEltYWdlRnJvbUZpbGUKKyMgdW5kZWYgR2RpcEdldEltYWdlVGh1bWJuYWlsCisj IHVuZGVmIEdkaXBTYXZlSW1hZ2VUb0ZpbGUKKyMgdW5kZWYgR2RpcFNhdmVJbWFnZVJvdGF0 ZUZsaXAKKworIyBkZWZpbmUgR2RpcGx1c1N0YXJ0dXAgZm5fR2RpcGx1c1N0YXJ0dXAKKyMg ZGVmaW5lIEdkaXBsdXNTaHV0ZG93biBmbl9HZGlwbHVzU2h1dGRvd24KKyMgZGVmaW5lIEdk aXBHZXRQcm9wZXJ0eUl0ZW1TaXplIGZuX0dkaXBHZXRQcm9wZXJ0eUl0ZW1TaXplCisjIGRl ZmluZSBHZGlwR2V0UHJvcGVydHlJdGVtIGZuX0dkaXBHZXRQcm9wZXJ0eUl0ZW0KKyMgZGVm aW5lIEdkaXBJbWFnZUdldEZyYW1lRGltZW5zaW9uc0NvdW50IGZuX0dkaXBJbWFnZUdldEZy YW1lRGltZW5zaW9uc0NvdW50CisjIGRlZmluZSBHZGlwSW1hZ2VHZXRGcmFtZURpbWVuc2lv bnNMaXN0IGZuX0dkaXBJbWFnZUdldEZyYW1lRGltZW5zaW9uc0xpc3QKKyMgZGVmaW5lIEdk aXBJbWFnZUdldEZyYW1lQ291bnQgZm5fR2RpcEltYWdlR2V0RnJhbWVDb3VudAorIyBkZWZp bmUgR2RpcEltYWdlU2VsZWN0QWN0aXZlRnJhbWUgZm5fR2RpcEltYWdlU2VsZWN0QWN0aXZl RnJhbWUKKyMgZGVmaW5lIEdkaXBDcmVhdGVCaXRtYXBGcm9tRmlsZSBmbl9HZGlwQ3JlYXRl Qml0bWFwRnJvbUZpbGUKKyMgZGVmaW5lIEdkaXBDcmVhdGVCaXRtYXBGcm9tU3RyZWFtIGZu X0dkaXBDcmVhdGVCaXRtYXBGcm9tU3RyZWFtCisjIGRlZmluZSBHZGlwQ3JlYXRlQml0bWFw RnJvbVNjYW4wIGZuX0dkaXBDcmVhdGVCaXRtYXBGcm9tU2NhbjAKKyMgZGVmaW5lIFNIQ3Jl YXRlTWVtU3RyZWFtIGZuX1NIQ3JlYXRlTWVtU3RyZWFtCisjIGRlZmluZSBHZGlwQ3JlYXRl SEJJVE1BUEZyb21CaXRtYXAgZm5fR2RpcENyZWF0ZUhCSVRNQVBGcm9tQml0bWFwCisjIGRl ZmluZSBHZGlwRGlzcG9zZUltYWdlIGZuX0dkaXBEaXNwb3NlSW1hZ2UKKyMgZGVmaW5lIEdk aXBHZXRJbWFnZUhlaWdodCBmbl9HZGlwR2V0SW1hZ2VIZWlnaHQKKyMgZGVmaW5lIEdkaXBH ZXRJbWFnZVdpZHRoIGZuX0dkaXBHZXRJbWFnZVdpZHRoCisjIGRlZmluZSBHZGlwR2V0SW1h Z2VFbmNvZGVyc1NpemUgZm5fR2RpcEdldEltYWdlRW5jb2RlcnNTaXplCisjIGRlZmluZSBH ZGlwR2V0SW1hZ2VFbmNvZGVycyBmbl9HZGlwR2V0SW1hZ2VFbmNvZGVycworIyBkZWZpbmUg R2RpcExvYWRJbWFnZUZyb21GaWxlIGZuX0dkaXBMb2FkSW1hZ2VGcm9tRmlsZQorIyBkZWZp bmUgR2RpcEdldEltYWdlVGh1bWJuYWlsIGZuX0dkaXBHZXRJbWFnZVRodW1ibmFpbAorIyBk ZWZpbmUgR2RpcFNhdmVJbWFnZVRvRmlsZSBmbl9HZGlwU2F2ZUltYWdlVG9GaWxlCisjIGRl ZmluZSBHZGlwSW1hZ2VSb3RhdGVGbGlwIGZuX0dkaXBJbWFnZVJvdGF0ZUZsaXAKKyNlbmRp ZgorCitpbnQgdzMyX2dkaXBfZ2V0X2VuY29kZXJfY2xzaWQgKGNvbnN0IGNoYXIgKnR5cGUs IENMU0lEICpjbHNpZCk7CmRpZmYgLS1naXQgYS9zcmMvdzMyZ3VpLmggYi9zcmMvdzMyZ3Vp LmgKaW5kZXggNzM5YTc5MDkxMWUuLjI2NTY1ZGNhZTZiIDEwMDY0NAotLS0gYS9zcmMvdzMy Z3VpLmgKKysrIGIvc3JjL3czMmd1aS5oCkBAIC00NSw3ICs0NSw5IEBAICNkZWZpbmUgbG9j YWxfZnJlZShwKSAoSGVhcEZyZWUgKGxvY2FsX2hlYXAsIDAsICgoTFBWT0lEKSAocCkpKSkK IGV4dGVybiBpbnQgdzMyX2xvYWRfaW1hZ2UgKHN0cnVjdCBmcmFtZSAqZiwgc3RydWN0IGlt YWdlICppbWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXNwX09iamVjdCBzcGVj X2ZpbGUsIExpc3BfT2JqZWN0IHNwZWNfZGF0YSk7CiBleHRlcm4gYm9vbCB3MzJfY2FuX3Vz ZV9uYXRpdmVfaW1hZ2VfYXBpIChMaXNwX09iamVjdCk7CitleHRlcm4gYm9vbCB3MzJfZ2Rp cGx1c19zdGFydHVwICh2b2lkKTsKIGV4dGVybiB2b2lkIHczMl9nZGlwbHVzX3NodXRkb3du ICh2b2lkKTsKKwogZXh0ZXJuIHNpemVfdCB3MzJfaW1hZ2Vfc2l6ZSAoRW1hY3NfUGl4bWFw KTsKIAogI2RlZmluZSBGQUNFX0RFRkFVTFQgKH4wKQpkaWZmIC0tZ2l0IGEvc3JjL3czMmlt YWdlLmMgYi9zcmMvdzMyaW1hZ2UuYwppbmRleCAzNTlhNGZhM2E3Mi4uNDRlZWQwODc1Mjgg MTAwNjQ0Ci0tLSBhL3NyYy93MzJpbWFnZS5jCisrKyBiL3NyYy93MzJpbWFnZS5jCkBAIC0z OCw0NCArMzgsOCBAQCAjZGVmaW5lIENPQkpNQUNST1MKICNpbmNsdWRlICJmcmFtZS5oIgog I2luY2x1ZGUgImNvZGluZy5oIgogCisjaW5jbHVkZSAidzMyZ2RpcGx1cy5oIgogI2lmZGVm IFdJTkRPV1NOVAotCi10eXBlZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJICpHZGlwbHVzU3Rh cnR1cF9Qcm9jKQotICAoVUxPTkdfUFRSICosIEdkaXBsdXNTdGFydHVwSW5wdXQgKiwgR2Rp cGx1c1N0YXJ0dXBPdXRwdXQgKik7Ci10eXBlZGVmIFZPSUQgKFdJTkdESVBBUEkgKkdkaXBs dXNTaHV0ZG93bl9Qcm9jKSAoVUxPTkdfUFRSKTsKLXR5cGVkZWYgR3BTdGF0dXMgKFdJTkdE SVBBUEkgKkdkaXBHZXRQcm9wZXJ0eUl0ZW1TaXplX1Byb2MpCi0gIChHcEltYWdlICosIFBS T1BJRCwgVUlOVCAqKTsKLXR5cGVkZWYgR3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBHZXRQ cm9wZXJ0eUl0ZW1fUHJvYykKLSAgKEdwSW1hZ2UgKiwgUFJPUElELCBVSU5ULCBQcm9wZXJ0 eUl0ZW0gKik7Ci10eXBlZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJICpHZGlwSW1hZ2VHZXRG cmFtZURpbWVuc2lvbnNDb3VudF9Qcm9jKQotICAoR3BJbWFnZSAqLCBVSU5UICopOwotdHlw ZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQSSAqR2RpcEltYWdlR2V0RnJhbWVEaW1lbnNpb25z TGlzdF9Qcm9jKQotICAoR3BJbWFnZSAqLCBHVUlEICosIFVJTlQpOwotdHlwZWRlZiBHcFN0 YXR1cyAoV0lOR0RJUEFQSSAqR2RpcEltYWdlR2V0RnJhbWVDb3VudF9Qcm9jKQotICAoR3BJ bWFnZSAqLCBHRElQQ09OU1QgR1VJRCAqLCBVSU5UICopOwotdHlwZWRlZiBHcFN0YXR1cyAo V0lOR0RJUEFQSSAqR2RpcEltYWdlU2VsZWN0QWN0aXZlRnJhbWVfUHJvYykKLSAgKEdwSW1h Z2UqLCBHRElQQ09OU1QgR1VJRCAqLCBVSU5UKTsKLXR5cGVkZWYgR3BTdGF0dXMgKFdJTkdE SVBBUEkgKkdkaXBDcmVhdGVCaXRtYXBGcm9tRmlsZV9Qcm9jKQotICAoV0NIQVIgKiwgR3BC aXRtYXAgKiopOwotdHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQSSAqR2RpcENyZWF0ZUJp dG1hcEZyb21TdHJlYW1fUHJvYykKLSAgKElTdHJlYW0gKiwgR3BCaXRtYXAgKiopOwotdHlw ZWRlZiBJU3RyZWFtICogKFdJTkFQSSAqU0hDcmVhdGVNZW1TdHJlYW1fUHJvYykgKGNvbnN0 IEJZVEUgKiwgVUlOVCk7Ci10eXBlZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJICpHZGlwQ3Jl YXRlSEJJVE1BUEZyb21CaXRtYXBfUHJvYykKLSAgKEdwQml0bWFwICosIEhCSVRNQVAgKiwg QVJHQik7Ci10eXBlZGVmIEdwU3RhdHVzIChXSU5HRElQQVBJICpHZGlwRGlzcG9zZUltYWdl X1Byb2MpIChHcEltYWdlICopOwotdHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQSSAqR2Rp cEdldEltYWdlSGVpZ2h0X1Byb2MpIChHcEltYWdlICosIFVJTlQgKik7Ci10eXBlZGVmIEdw U3RhdHVzIChXSU5HRElQQVBJICpHZGlwR2V0SW1hZ2VXaWR0aF9Qcm9jKSAoR3BJbWFnZSAq LCBVSU5UICopOwotdHlwZWRlZiBHcFN0YXR1cyAoV0lOR0RJUEFQSSAqR2RpcEdldEltYWdl RW5jb2RlcnNTaXplX1Byb2MpIChVSU5UICosIFVJTlQgKik7Ci10eXBlZGVmIEdwU3RhdHVz IChXSU5HRElQQVBJICpHZGlwR2V0SW1hZ2VFbmNvZGVyc19Qcm9jKQotIChVSU5ULCBVSU5U LCBJbWFnZUNvZGVjSW5mbyAqKTsKLXR5cGVkZWYgR3BTdGF0dXMgKFdJTkdESVBBUEkgKkdk aXBMb2FkSW1hZ2VGcm9tRmlsZV9Qcm9jKQotIChHRElQQ09OU1QgV0NIQVIgKixHcEltYWdl ICoqKTsKLXR5cGVkZWYgR3BTdGF0dXMgKFdJTkdESVBBUEkgKkdkaXBHZXRJbWFnZVRodW1i bmFpbF9Qcm9jKQotIChHcEltYWdlICosIFVJTlQsIFVJTlQsIEdwSW1hZ2UqKiwgR2V0VGh1 bWJuYWlsSW1hZ2VBYm9ydCwgVk9JRCAqKTsKLXR5cGVkZWYgR3BTdGF0dXMgKFdJTkdESVBB UEkgKkdkaXBTYXZlSW1hZ2VUb0ZpbGVfUHJvYykKLSAoR3BJbWFnZSAqLCBHRElQQ09OU1Qg V0NIQVIgKiwgR0RJUENPTlNUIENMU0lEICosCi0gR0RJUENPTlNUIEVuY29kZXJQYXJhbWV0 ZXJzICopOwotCiBHZGlwbHVzU3RhcnR1cF9Qcm9jIGZuX0dkaXBsdXNTdGFydHVwOwogR2Rp cGx1c1NodXRkb3duX1Byb2MgZm5fR2RpcGx1c1NodXRkb3duOwogR2RpcEdldFByb3BlcnR5 SXRlbVNpemVfUHJvYyBmbl9HZGlwR2V0UHJvcGVydHlJdGVtU2l6ZTsKQEAgLTg2LDYgKzUw LDcgQEAgI2RlZmluZSBDT0JKTUFDUk9TCiBHZGlwSW1hZ2VTZWxlY3RBY3RpdmVGcmFtZV9Q cm9jIGZuX0dkaXBJbWFnZVNlbGVjdEFjdGl2ZUZyYW1lOwogR2RpcENyZWF0ZUJpdG1hcEZy b21GaWxlX1Byb2MgZm5fR2RpcENyZWF0ZUJpdG1hcEZyb21GaWxlOwogR2RpcENyZWF0ZUJp dG1hcEZyb21TdHJlYW1fUHJvYyBmbl9HZGlwQ3JlYXRlQml0bWFwRnJvbVN0cmVhbTsKK0dk aXBDcmVhdGVCaXRtYXBGcm9tU2NhbjBfUHJvYyBmbl9HZGlwQ3JlYXRlQml0bWFwRnJvbVNj YW4wOwogU0hDcmVhdGVNZW1TdHJlYW1fUHJvYyBmbl9TSENyZWF0ZU1lbVN0cmVhbTsKIEdk aXBDcmVhdGVIQklUTUFQRnJvbUJpdG1hcF9Qcm9jIGZuX0dkaXBDcmVhdGVIQklUTUFQRnJv bUJpdG1hcDsKIEdkaXBEaXNwb3NlSW1hZ2VfUHJvYyBmbl9HZGlwRGlzcG9zZUltYWdlOwpA QCAtOTYsNiArNjEsNyBAQCAjZGVmaW5lIENPQkpNQUNST1MKIEdkaXBMb2FkSW1hZ2VGcm9t RmlsZV9Qcm9jIGZuX0dkaXBMb2FkSW1hZ2VGcm9tRmlsZTsKIEdkaXBHZXRJbWFnZVRodW1i bmFpbF9Qcm9jIGZuX0dkaXBHZXRJbWFnZVRodW1ibmFpbDsKIEdkaXBTYXZlSW1hZ2VUb0Zp bGVfUHJvYyBmbl9HZGlwU2F2ZUltYWdlVG9GaWxlOworR2RpcEltYWdlUm90YXRlRmxpcF9Q cm9jIGZuX0dkaXBJbWFnZVJvdGF0ZUZsaXA7CiAKIHN0YXRpYyBib29sCiBnZGlwbHVzX2lu aXQgKHZvaWQpCkBAIC0xNDYsNiArMTEyLDEwIEBAIGdkaXBsdXNfaW5pdCAodm9pZCkKICAg ICBnZXRfcHJvY19hZGRyIChnZGlwbHVzX2xpYiwgIkdkaXBDcmVhdGVCaXRtYXBGcm9tU3Ry ZWFtIik7CiAgIGlmICghZm5fR2RpcENyZWF0ZUJpdG1hcEZyb21TdHJlYW0pCiAgICAgcmV0 dXJuIGZhbHNlOworICBmbl9HZGlwQ3JlYXRlQml0bWFwRnJvbVNjYW4wID0gKEdkaXBDcmVh dGVCaXRtYXBGcm9tU2NhbjBfUHJvYykKKyAgICBnZXRfcHJvY19hZGRyIChnZGlwbHVzX2xp YiwgIkdkaXBDcmVhdGVCaXRtYXBGcm9tU2NhbjAiKTsKKyAgaWYgKCFmbl9HZGlwQ3JlYXRl Qml0bWFwRnJvbVNjYW4wKQorICAgIHJldHVybiBmYWxzZTsKICAgZm5fR2RpcENyZWF0ZUhC SVRNQVBGcm9tQml0bWFwID0gKEdkaXBDcmVhdGVIQklUTUFQRnJvbUJpdG1hcF9Qcm9jKQog ICAgIGdldF9wcm9jX2FkZHIgKGdkaXBsdXNfbGliLCAiR2RpcENyZWF0ZUhCSVRNQVBGcm9t Qml0bWFwIik7CiAgIGlmICghZm5fR2RpcENyZWF0ZUhCSVRNQVBGcm9tQml0bWFwKQpAQCAt MTk2LDUyICsxNjYsMTQgQEAgZ2RpcGx1c19pbml0ICh2b2lkKQogICAgIGdldF9wcm9jX2Fk ZHIgKGdkaXBsdXNfbGliLCAiR2RpcFNhdmVJbWFnZVRvRmlsZSIpOwogICBpZiAoIWZuX0dk aXBTYXZlSW1hZ2VUb0ZpbGUpCiAgICAgcmV0dXJuIGZhbHNlOworICBmbl9HZGlwSW1hZ2VS b3RhdGVGbGlwID0gKEdkaXBJbWFnZVJvdGF0ZUZsaXBfUHJvYykKKyAgICBnZXRfcHJvY19h ZGRyIChnZGlwbHVzX2xpYiwgIkdkaXBJbWFnZVJvdGF0ZUZsaXAiKTsKKyAgaWYgKCFmbl9H ZGlwSW1hZ2VSb3RhdGVGbGlwKQorICAgIHJldHVybiBmYWxzZTsKIAogICByZXR1cm4gdHJ1 ZTsKIH0KIAotIyB1bmRlZiBHZGlwbHVzU3RhcnR1cAotIyB1bmRlZiBHZGlwbHVzU2h1dGRv d24KLSMgdW5kZWYgR2RpcEdldFByb3BlcnR5SXRlbVNpemUKLSMgdW5kZWYgR2RpcEdldFBy b3BlcnR5SXRlbQotIyB1bmRlZiBHZGlwSW1hZ2VHZXRGcmFtZURpbWVuc2lvbnNDb3VudAot IyB1bmRlZiBHZGlwSW1hZ2VHZXRGcmFtZURpbWVuc2lvbnNMaXN0Ci0jIHVuZGVmIEdkaXBJ bWFnZUdldEZyYW1lQ291bnQKLSMgdW5kZWYgR2RpcEltYWdlU2VsZWN0QWN0aXZlRnJhbWUK LSMgdW5kZWYgR2RpcENyZWF0ZUJpdG1hcEZyb21GaWxlCi0jIHVuZGVmIEdkaXBDcmVhdGVC aXRtYXBGcm9tU3RyZWFtCi0jIHVuZGVmIFNIQ3JlYXRlTWVtU3RyZWFtCi0jIHVuZGVmIEdk aXBDcmVhdGVIQklUTUFQRnJvbUJpdG1hcAotIyB1bmRlZiBHZGlwRGlzcG9zZUltYWdlCi0j IHVuZGVmIEdkaXBHZXRJbWFnZUhlaWdodAotIyB1bmRlZiBHZGlwR2V0SW1hZ2VXaWR0aAot IyB1bmRlZiBHZGlwR2V0SW1hZ2VFbmNvZGVyc1NpemUKLSMgdW5kZWYgR2RpcEdldEltYWdl RW5jb2RlcnMKLSMgdW5kZWYgR2RpcExvYWRJbWFnZUZyb21GaWxlCi0jIHVuZGVmIEdkaXBH ZXRJbWFnZVRodW1ibmFpbAotIyB1bmRlZiBHZGlwU2F2ZUltYWdlVG9GaWxlCi0KLSMgZGVm aW5lIEdkaXBsdXNTdGFydHVwIGZuX0dkaXBsdXNTdGFydHVwCi0jIGRlZmluZSBHZGlwbHVz U2h1dGRvd24gZm5fR2RpcGx1c1NodXRkb3duCi0jIGRlZmluZSBHZGlwR2V0UHJvcGVydHlJ dGVtU2l6ZSBmbl9HZGlwR2V0UHJvcGVydHlJdGVtU2l6ZQotIyBkZWZpbmUgR2RpcEdldFBy b3BlcnR5SXRlbSBmbl9HZGlwR2V0UHJvcGVydHlJdGVtCi0jIGRlZmluZSBHZGlwSW1hZ2VH ZXRGcmFtZURpbWVuc2lvbnNDb3VudCBmbl9HZGlwSW1hZ2VHZXRGcmFtZURpbWVuc2lvbnND b3VudAotIyBkZWZpbmUgR2RpcEltYWdlR2V0RnJhbWVEaW1lbnNpb25zTGlzdCBmbl9HZGlw SW1hZ2VHZXRGcmFtZURpbWVuc2lvbnNMaXN0Ci0jIGRlZmluZSBHZGlwSW1hZ2VHZXRGcmFt ZUNvdW50IGZuX0dkaXBJbWFnZUdldEZyYW1lQ291bnQKLSMgZGVmaW5lIEdkaXBJbWFnZVNl bGVjdEFjdGl2ZUZyYW1lIGZuX0dkaXBJbWFnZVNlbGVjdEFjdGl2ZUZyYW1lCi0jIGRlZmlu ZSBHZGlwQ3JlYXRlQml0bWFwRnJvbUZpbGUgZm5fR2RpcENyZWF0ZUJpdG1hcEZyb21GaWxl Ci0jIGRlZmluZSBHZGlwQ3JlYXRlQml0bWFwRnJvbVN0cmVhbSBmbl9HZGlwQ3JlYXRlQml0 bWFwRnJvbVN0cmVhbQotIyBkZWZpbmUgU0hDcmVhdGVNZW1TdHJlYW0gZm5fU0hDcmVhdGVN ZW1TdHJlYW0KLSMgZGVmaW5lIEdkaXBDcmVhdGVIQklUTUFQRnJvbUJpdG1hcCBmbl9HZGlw Q3JlYXRlSEJJVE1BUEZyb21CaXRtYXAKLSMgZGVmaW5lIEdkaXBEaXNwb3NlSW1hZ2UgZm5f R2RpcERpc3Bvc2VJbWFnZQotIyBkZWZpbmUgR2RpcEdldEltYWdlSGVpZ2h0IGZuX0dkaXBH ZXRJbWFnZUhlaWdodAotIyBkZWZpbmUgR2RpcEdldEltYWdlV2lkdGggZm5fR2RpcEdldElt YWdlV2lkdGgKLSMgZGVmaW5lIEdkaXBHZXRJbWFnZUVuY29kZXJzU2l6ZSBmbl9HZGlwR2V0 SW1hZ2VFbmNvZGVyc1NpemUKLSMgZGVmaW5lIEdkaXBHZXRJbWFnZUVuY29kZXJzIGZuX0dk aXBHZXRJbWFnZUVuY29kZXJzCi0jIGRlZmluZSBHZGlwTG9hZEltYWdlRnJvbUZpbGUgZm5f R2RpcExvYWRJbWFnZUZyb21GaWxlCi0jIGRlZmluZSBHZGlwR2V0SW1hZ2VUaHVtYm5haWwg Zm5fR2RpcEdldEltYWdlVGh1bWJuYWlsCi0jIGRlZmluZSBHZGlwU2F2ZUltYWdlVG9GaWxl IGZuX0dkaXBTYXZlSW1hZ2VUb0ZpbGUKLQogI2VuZGlmCS8qIFdJTkRPV1NOVCAqLwogCiBz dGF0aWMgaW50IGdkaXBfaW5pdGlhbGl6ZWQ7CkBAIC0yNTIsOCArMTg0LDggQEAgZ2RpcGx1 c19pbml0ICh2b2lkKQogCiAKIC8qIEluaXRpYWxpemUgR0RJKywgcmV0dXJuIHRydWUgaWYg c3VjY2Vzc2Z1bC4gICovCi1zdGF0aWMgYm9vbAotZ2RpcGx1c19zdGFydHVwICh2b2lkKQor Ym9vbAordzMyX2dkaXBsdXNfc3RhcnR1cCAodm9pZCkKIHsKICAgR3BTdGF0dXMgc3RhdHVz OwogCkBAIC0zMDUsNyArMjM3LDcgQEAgdzMyX2Nhbl91c2VfbmF0aXZlX2ltYWdlX2FwaSAo TGlzcF9PYmplY3QgdHlwZSkKIAkgQnV0IHdlIGRvbid0IHlldCBzdXBwb3J0IHRoZXNlIGlu IGltYWdlLmMuICAqLwogICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgcmV0dXJuIGdk aXBsdXNfc3RhcnR1cCAoKTsKKyAgcmV0dXJuIHczMl9nZGlwbHVzX3N0YXJ0dXAgKCk7CiB9 CiAKIGVudW0gUHJvcGVydHlJdGVtX3R5cGUgewpAQCAtNTQ5LDggKzQ4MSw4IEBAIHczMl9s b2FkX2ltYWdlIChzdHJ1Y3QgZnJhbWUgKmYsIHN0cnVjdCBpbWFnZSAqaW1nLAogICB9Owog CiAKLXN0YXRpYyBpbnQKLWdldF9lbmNvZGVyX2Nsc2lkIChjb25zdCBjaGFyICp0eXBlLCBD TFNJRCAqY2xzaWQpCitpbnQKK3czMl9nZGlwX2dldF9lbmNvZGVyX2Nsc2lkIChjb25zdCBj aGFyICp0eXBlLCBDTFNJRCAqY2xzaWQpCiB7CiAgIC8qIEEgc2ltcGxlIGNhY2hlIGJhc2Vk IG9uIHRoZSBhc3N1bXB0aW9ucyB0aGF0IG1hbnkgdGh1bWJuYWlscyB3aWxsCiAgICAgIGJl IGdlbmVyYXRlZCB1c2luZyB0aGUgc2FtZSBUWVBFLiAgKi8KQEAgLTYyNSw3ICs1NTcsNyBA QCBERUZVTiAoInczMmltYWdlLWNyZWF0ZS10aHVtYm5haWwiLCBGdzMyaW1hZ2VfY3JlYXRl X3RodW1ibmFpbCwKIAogICBpZiAoIWdkaXBsdXNfc3RhcnRlZCkKICAgICB7Ci0gICAgICBp ZiAoIWdkaXBsdXNfc3RhcnR1cCAoKSkKKyAgICAgIGlmICghdzMyX2dkaXBsdXNfc3RhcnR1 cCAoKSkKIAlyZXR1cm4gUW5pbDsKICAgICB9CiAKQEAgLTY0OSw3ICs1ODEsNyBAQCBERUZV TiAoInczMmltYWdlLWNyZWF0ZS10aHVtYm5haWwiLCBGdzMyaW1hZ2VfY3JlYXRlX3RodW1i bmFpbCwKICAgICAgIENMU0lEIHRodW1iX2Nsc2lkOwogICAgICAgaWYgKHN0YXR1cyA9PSBP awogCSAgLyogR2V0IHRoZSBHVUlEIG9mIHRoZSBUWVBFJ3MgZW5jb2Rlci4gKi8KLQkgICYm IGdldF9lbmNvZGVyX2Nsc2lkIChTU0RBVEEgKHR5cGUpLCAmdGh1bWJfY2xzaWQpID49IDAp CisJICAmJiB3MzJfZ2RpcF9nZXRfZW5jb2Rlcl9jbHNpZCAoU1NEQVRBICh0eXBlKSwgJnRo dW1iX2Nsc2lkKSA+PSAwKQogCXsKIAkgIC8qIFNhdmUgdGhlIHRodW1ibmFpbCBpbWFnZSB0 byBhIGZpbGUgb2Ygc3BlY2lmaWVkIFRZUEUuICAqLwogCSAgd2NoYXJfdCB0aHVtYl9maWxl X3dbTUFYX1BBVEhdOwpkaWZmIC0tZ2l0IGEvc3JjL3czMnNlbGVjdC5jIGIvc3JjL3czMnNl bGVjdC5jCmluZGV4IDAwNmJmNDA4YjQ3Li43ZThkYzNmMDcwMiAxMDA2NDQKLS0tIGEvc3Jj L3czMnNlbGVjdC5jCisrKyBiL3NyYy93MzJzZWxlY3QuYwpAQCAtNzMsMTIgKzczLDIyIEBA IENvcHlyaWdodCAoQykgMTk5My0xOTk0LCAyMDAxLTIwMjQgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCiAgKi8KIAogI2luY2x1ZGUgPGNvbmZpZy5oPgorI2luY2x1ZGUgPHdp bmRvd3MuaD4KKyNpbmNsdWRlIDx3aW5nZGkuaD4KKyNpbmNsdWRlIDx3dHlwZXMuaD4KKyNp bmNsdWRlIDxnZGlwbHVzLmg+CisjaWZuZGVmIENGX0RJQlY1CisjIGRlZmluZSBDRl9ESUJW NSAxNworIyB1bmRlZiBDRl9NQVgKKyMgZGVmaW5lIENGX01BWCAxOAorI2VuZGlmCiAjaW5j bHVkZSAibGlzcC5oIgogI2luY2x1ZGUgInczMmNvbW1vbi5oIgkvKiBvc19zdWJ0eXBlICov CiAjaW5jbHVkZSAidzMydGVybS5oIgkvKiBmb3IgYWxsIG9mIHRoZSB3MzIgaW5jbHVkZXMg Ki8KICNpbmNsdWRlICJ3MzJzZWxlY3QuaCIKICNpbmNsdWRlICJibG9ja2lucHV0LmgiCiAj aW5jbHVkZSAiY29kaW5nLmgiCisjaW5jbHVkZSAidzMyZ2RpcGx1cy5oIgogCiAjaWZkZWYg Q1lHV0lOCiAjaW5jbHVkZSA8c3RyaW5nLmg+CkBAIC03ODcsNiArNzk3LDE2NiBAQCBERUZV TiAoInczMi1zZXQtY2xpcGJvYXJkLWRhdGEiLCBGdzMyX3NldF9jbGlwYm9hcmRfZGF0YSwK ICAgcmV0dXJuIChvayA/IHN0cmluZyA6IFFuaWwpOwogfQogCisvKiBYbGliLWxpa2UgbmFt ZXMgZm9yIHN0YW5kYXJkIFdpbmRvd3MgY2xpcGJvYXJkIGRhdGEgZm9ybWF0cy4KKyAgIFRo ZXkgYXJlIGluIHVwcGVyLWNhc2UgdG8gbWltaWMgeHNlbGVjdC5jLiAgQSBjb3VwbGUgb2Yg dGhlIG5hbWVzCisgICB3ZXJlIGNoYW5nZWQgdG8gYmUgbW9yZSBsaWtlIHRoZWlyIFggY291 bnRlcnBhcnRzLiAgKi8KK3N0YXRpYyBjb25zdCBjaGFyICpzdGRmbXRfbmFtZVtdID0gewor ICAiVU5ERUZJTkVEIiwKKyAgIlNUUklORyIsCisgICJCSVRNQVAiLAorICAiTUVUQUZJTEUi LAorICAiU1lNTElOSyIsCisgICJESUYiLAorICAiVElGRiIsCisgICJPRU1fU1RSSU5HIiwK KyAgIkRJQiIsCisgICJQQUxFVFRFIiwKKyAgIlBFTkRBVEEiLAorICAiUklGRiIsCisgICJX QVZFIiwKKyAgIlVURjhfU1RSSU5HIiwKKyAgIkVOSE1FVEFGSUxFIiwKKyAgIkZJTEVfTkFN RVMiLCAvKiBETkQgKi8KKyAgIkxPQ0FMRSIsIC8qIG5vdCB1c2VkICovCisgICJESUJWNSIK K307CisKKy8qIE11c3QgYmUgY2FsbGVkIHdpdGggYmxvY2tfaW5wdXQoKSBhY3RpdmUuICAq Lworc3RhdGljIGJvb2wKK2NvbnZlcnRfZGlidjVfdG9fcG5nIChjaGFyICpkYXRhLCBpbnQg c2l6ZSwgY2hhciAqdGVtcF9maWxlKQoreworICBDTFNJRCBjbHNpZF9wbmc7CisKKyAgaWYg KCF3MzJfZ2RpcGx1c19zdGFydHVwICgpCisgICAgICB8fCAhdzMyX2dkaXBfZ2V0X2VuY29k ZXJfY2xzaWQgKCJwbmciLCAmY2xzaWRfcG5nKSkKKyAgICByZXR1cm4gZmFsc2U7CisKKyAg QklUTUFQVjVIRUFERVIgKmJtaSA9ICh2b2lkICopIGRhdGE7CisgIGludCBzdHJpZGUgPSBi bWktPmJWNVNpemVJbWFnZSAvIGJtaS0+YlY1SGVpZ2h0OworICBsb25nIG9mZnNldCA9IGJt aS0+YlY1U2l6ZSArIGJtaS0+YlY1Q2xyVXNlZCAqIHNpemVvZiAoUkdCUVVBRCk7CisgIGlm IChibWktPmJWNUNvbXByZXNzaW9uID09IEJJX0JJVEZJRUxEUykKKyAgICBvZmZzZXQgKz0g MTI7CisgIEJZVEUgKnNjYW4wID0gZGF0YSArIG9mZnNldDsKKworICBHcEJpdG1hcCAqYml0 bWFwID0gTlVMTDsKKworICBHcFN0YXR1cyBzdGF0dXMKKyAgICA9IEdkaXBDcmVhdGVCaXRt YXBGcm9tU2NhbjAgKGJtaS0+YlY1V2lkdGgsIGJtaS0+YlY1SGVpZ2h0LCBzdHJpZGUsCisJ CQkJIFBpeGVsRm9ybWF0MzJicHBBUkdCLCBzY2FuMCwgJmJpdG1hcCk7CisKKyAgaWYgKHN0 YXR1cyAhPSBPaykKKyAgICByZXR1cm4gZmFsc2U7CisKKyAgLyogVGhlIGJpdG1hcCBjb21l cyB1cHNpZGUgZG93bi4gICovCisgIEdkaXBJbWFnZVJvdGF0ZUZsaXAgKGJpdG1hcCwgUm90 YXRlTm9uZUZsaXBZKTsKKworICBXQ0hBUiB3aWRlX2ZpbGVuYW1lW01BWF9QQVRIXTsKKyAg ZmlsZW5hbWVfdG9fdXRmMTYgKHRlbXBfZmlsZSwgd2lkZV9maWxlbmFtZSk7CisKKyAgc3Rh dHVzID0gR2RpcFNhdmVJbWFnZVRvRmlsZSAoYml0bWFwLCB3aWRlX2ZpbGVuYW1lLCAmY2xz aWRfcG5nLCBOVUxMKTsKKyAgR2RpcERpc3Bvc2VJbWFnZSAoYml0bWFwKTsKKyAgaWYgKHN0 YXR1cyAhPSBPaykKKyAgICByZXR1cm4gZmFsc2U7CisgIHJldHVybiB0cnVlOworfQorCitz dGF0aWMgaW50CitnZXRfY2xpcGJvYXJkX2Zvcm1hdF9uYW1lIChpbnQgZm9ybWF0X2luZGV4 LCBjaGFyICpuYW1lKQoreworICAqbmFtZSA9IDA7CisgIGZvcm1hdF9pbmRleCA9IEVudW1D bGlwYm9hcmRGb3JtYXRzIChmb3JtYXRfaW5kZXgpOworICBpZiAoZm9ybWF0X2luZGV4ID09 IDApCisgICAgcmV0dXJuIDA7CisgIGlmIChmb3JtYXRfaW5kZXggPCBDRl9NQVgpCisgICAg c3RyY3B5IChuYW1lLCBzdGRmbXRfbmFtZVtmb3JtYXRfaW5kZXhdKTsKKyAgR2V0Q2xpcGJv YXJkRm9ybWF0TmFtZSAoZm9ybWF0X2luZGV4LCBuYW1lLCAyNTYpOworICByZXR1cm4gZm9y bWF0X2luZGV4OworfQorCitERUZVTiAoInczMi0tZ2V0LWNsaXBib2FyZC1kYXRhLW1lZGlh IiwgRnczMl9fZ2V0X2NsaXBib2FyZF9kYXRhX21lZGlhLAorICAgICAgIFN3MzJfX2dldF9j bGlwYm9hcmRfZGF0YV9tZWRpYSwgMywgMywgMCwKKyAgICAgICBkb2M6IC8qIEdldHMgbWVk aWEgKG5vdCBwbGFpbiB0ZXh0KSBjbGlwYm9hcmQgZGF0YSBpbiBvbmUgb2YgdGhlIGdpdmVu IGZvcm1hdHMuCisKK0ZPUk1BVFMgaXMgYSBsaXN0IG9mIGZvcm1hdHMuCitURU1QLUZJTEUt SU4gaXMgdGhlIG5hbWUgb2YgdGhlIGZpbGUgdG8gc3RvcmUgdGhlIGRhdGEuCisKK0VsZW1l bnRzIGluIEZPUk1BVFMgYXJlIHN5bWJvbHMgbmFtaW5nIGEgZm9ybWF0LCBzdWNoIGEgaW1h Z2UvcG5nLCBvcgoraW1hZ2UvanBlZy4gIEZvciBjb21wYXRpYmlsaXR5IHdpdGggWCBzeXN0 ZW1zLCBzb21lIGNvbnZlbnRpb25hbAorZm9ybWF0IG5hbWVzIGFyZSB0cmFuc2xhdGVkIHRv IGVxdWl2YWxlbnQgTUlNRSB0eXBlcywgYXMgY29uZmlndXJlZCB3aXRoCit0aGUgdmFyaWFi bGUgJ3czMi0tc2VsZWN0aW9uLXRhcmdldC10cmFuc2xhdGlvbnMnLgorCitUaGUgZmlsZSBu YW1lZCBpbiBURU1QLUZJTEUtSU4gbXVzdCBiZSBjcmVhdGVkIGJ5IHRoZSBjYWxsZXIsIGFu ZCBhbHNvCitkZWxldGVkIGlmIHJlcXVpcmVkLgorCitSZXR1cm5zIG5pbCBpdCB0aGVyZSBp cyBubyBzdWNoIGZvcm1hdCwgb3Igc29tZXRoaW5nIGZhaWxlZC4KK0lmIGl0IHJldHVybnMg dCwgdGhlbiB0aGUgY2FsbGVyIHNob3VsZCByZWFkIHRoZSBmaWxlIHRvIGdldCB0aGUgZGF0 YS4KK0lmIGl0IHJldHVybnMgYSBzdHJpbmcsIHRoZW4gdGhhdCBpcyB0aGUgZGF0YSBhbmQg dGhlIGZpbGUgaXMgbm90IHVzZWQuCisKK1doZW4gcmV0dXJuaW5nIGEgc3RyaW5nLCBpdCB3 aWxsIGJlIHVuaWJ5dGUgaWYgSVMtVEVYVFVBTCBpcyBuaWwgKHRoZQorY29udGVudCBpcyBi aW5hcnkgZGF0YSkuICAqLykKKyAgKExpc3BfT2JqZWN0IGZvcm1hdHMsIExpc3BfT2JqZWN0 IHRlbXBfZmlsZV9pbiwgTGlzcF9PYmplY3QgaXNfdGV4dHVhbCkKK3sKKyAgQ0hFQ0tfTElT VCAoZm9ybWF0cyk7CisgIENIRUNLX1NUUklORyAodGVtcF9maWxlX2luKTsKKworICB0ZW1w X2ZpbGVfaW4gPSBGZXhwYW5kX2ZpbGVfbmFtZSAodGVtcF9maWxlX2luLCBRbmlsKTsKKyAg Y2hhciAqdGVtcF9maWxlID0gU1NEQVRBIChFTkNPREVfRklMRSAodGVtcF9maWxlX2luKSk7 CisKKyAgTGlzcF9PYmplY3QgcmVzdWx0ID0gUW5pbDsKKworICBibG9ja19pbnB1dCgpOwor ICBpZiAoIU9wZW5DbGlwYm9hcmQgKE5VTEwpKQorICAgIHsKKyAgICAgIHVuYmxvY2tfaW5w dXQoKTsKKyAgICAgIHJldHVybiBRbmlsOworICAgIH0KKworICBmb3IgKGludCBmb3JtYXRf aW5kZXggPSAwOzspCisgICAgeworICAgICAgc3RhdGljIGNoYXIgbmFtZVsyNTZdOworICAg ICAgZm9ybWF0X2luZGV4ID0gZ2V0X2NsaXBib2FyZF9mb3JtYXRfbmFtZSAoZm9ybWF0X2lu ZGV4LCBuYW1lKTsKKyAgICAgIGlmIChmb3JtYXRfaW5kZXggPT0gMCkKKwkgIGJyZWFrOwor CisgICAgICAvKiBJZiBuYW1lIGRvZXNuJ3QgbWF0Y2ggYW55IG9mIHRoZSBmb3JtYXRzLCB0 cnkgdGhlIG5leHQgZm9ybWF0LiAgKi8KKyAgICAgIGJvb2wgbWF0Y2ggPSBmYWxzZTsKKyAg ICAgIGZvciAoTGlzcF9PYmplY3QgdGFpbCA9IGZvcm1hdHM7IENPTlNQICh0YWlsKTsgdGFp bCA9IFhDRFIgKHRhaWwpKQorCWlmIChzdHJjbXAgKG5hbWUsIFNTREFUQSAoU1lNQk9MX05B TUUgKFhDQVIgKHRhaWwpKSkpID09IDApCisJICAgIG1hdGNoID0gdHJ1ZTsKKyAgICAgIGlm ICghbWF0Y2gpCisJICBjb250aW51ZTsKKworICAgICAgLyogT2YgdGhlIHN0YW5kYXJkIGZv cm1hdHMsIG9ubHkgRElCVjUgaXMgc3VwcG9ydGVkLiAgKi8KKyAgICAgIGlmIChmb3JtYXRf aW5kZXggPCBDRl9NQVggJiYgZm9ybWF0X2luZGV4ICE9IENGX0RJQlY1KQorCWNvbnRpbnVl OworCisgICAgICAvKiBGb3VuZCB0aGUgZm9ybWF0LiAgKi8KKyAgICAgIEhBTkRMRSBkID0g R2V0Q2xpcGJvYXJkRGF0YSAoZm9ybWF0X2luZGV4KTsKKyAgICAgIGlmICghZCkKKwlicmVh azsKKyAgICAgIGludCBzaXplID0gR2xvYmFsU2l6ZSAoZCk7CisgICAgICBjaGFyICpkYXRh ID0gR2xvYmFsTG9jayAoZCk7CisgICAgICBpZiAoIWRhdGEpCisJYnJlYWs7CisgICAgICBp ZiAoc3RyY21wIChuYW1lLCAiRElCVjUiKSA9PSAwKQorCXsKKwkgIGlmIChjb252ZXJ0X2Rp YnY1X3RvX3BuZyAoZGF0YSwgc2l6ZSwgdGVtcF9maWxlKSkKKwkgICAgcmVzdWx0ID0gUXQ7 CisJfQorICAgICAgZWxzZQorCXsKKwkgIGlmIChOSUxQIChpc190ZXh0dWFsKSkKKwkgICAg cmVzdWx0ID0gbWFrZV91bmlieXRlX3N0cmluZyAoZGF0YSwgc2l6ZSk7CisJICBlbHNlCisJ ICAgIHJlc3VsdCA9IG1ha2Vfc3RyaW5nIChkYXRhLCBzaXplKTsKKwl9CisgICAgICBHbG9i YWxVbmxvY2sgKGQpOworICAgICAgYnJlYWs7CisgICAgfQorICBDbG9zZUNsaXBib2FyZCAo KTsKKyAgdW5ibG9ja19pbnB1dCAoKTsKKyAgcmV0dXJuIHJlc3VsdDsKK30KIAogREVGVU4g KCJ3MzItZ2V0LWNsaXBib2FyZC1kYXRhIiwgRnczMl9nZXRfY2xpcGJvYXJkX2RhdGEsCiAg ICAgICAgU3czMl9nZXRfY2xpcGJvYXJkX2RhdGEsIDAsIDEsIDAsCkBAIC0xMDY5LDI5ICsx MjM5LDYgQEAgREVGVU4gKCJ3MzItc2VsZWN0aW9uLXRhcmdldHMiLCBGdzMyX3NlbGVjdGlv bl90YXJnZXRzLCBTdzMyX3NlbGVjdGlvbl90YXJnZXRzLAogcmVwcmVzZW50aW5nIGEgZGF0 YSBmb3JtYXQgdGhhdCBpcyBjdXJyZW50bHkgYXZhaWxhYmxlIGluIHRoZSBjbGlwYm9hcmQu ICAqLykKICAgKExpc3BfT2JqZWN0IHNlbGVjdGlvbiwgTGlzcF9PYmplY3QgdGVybWluYWwp CiB7Ci0gIC8qIFhsaWItbGlrZSBuYW1lcyBmb3Igc3RhbmRhcmQgV2luZG93cyBjbGlwYm9h cmQgZGF0YSBmb3JtYXRzLgotICAgICBUaGV5IGFyZSBpbiB1cHBlci1jYXNlIHRvIG1pbWlj IHhzZWxlY3QuYy4gIEEgY291cGxlIG9mIHRoZSBuYW1lcwotICAgICB3ZXJlIGNoYW5nZWQg dG8gYmUgbW9yZSBsaWtlIHRoZWlyIFggY291bnRlcnBhcnRzLiAgKi8KLSAgc3RhdGljIGNv bnN0IGNoYXIgKnN0ZGZtdF9uYW1lW10gPSB7Ci0gICAgIlVOREVGSU5FRCIsCi0gICAgIlNU UklORyIsCi0gICAgIkJJVE1BUCIsCi0gICAgIk1FVEFGSUxFIiwKLSAgICAiU1lNTElOSyIs Ci0gICAgIkRJRiIsCi0gICAgIlRJRkYiLAotICAgICJPRU1fU1RSSU5HIiwKLSAgICAiRElC IiwKLSAgICAiUEFMRVRURSIsCi0gICAgIlBFTkRBVEEiLAotICAgICJSSUZGIiwKLSAgICAi V0FWRSIsCi0gICAgIlVURjhfU1RSSU5HIiwKLSAgICAiRU5ITUVUQUZJTEUiLAotICAgICJG SUxFX05BTUVTIiwgLyogRE5EICovCi0gICAgIkxPQ0FMRSIsIC8qIG5vdCB1c2VkICovCi0g ICAgIkRJQlY1IgotICB9OwogICBDSEVDS19TWU1CT0wgKHNlbGVjdGlvbik7CiAKICAgLyog UmV0dXJuIG5pbCBmb3IgUFJJTUFSWSBhbmQgU0VDT05EQVJZIHNlbGVjdGlvbnM7IGZvciBD TElQQk9BUkQsIGNoZWNrCkBAIC0xMTY2LDYgKzEzMTMsNyBAQCBzeW1zX29mX3czMnNlbGVj dCAodm9pZCkKIHsKICAgZGVmc3ViciAoJlN3MzJfc2V0X2NsaXBib2FyZF9kYXRhKTsKICAg ZGVmc3ViciAoJlN3MzJfZ2V0X2NsaXBib2FyZF9kYXRhKTsKKyAgZGVmc3ViciAoJlN3MzJf X2dldF9jbGlwYm9hcmRfZGF0YV9tZWRpYSk7CiAgIGRlZnN1YnIgKCZTdzMyX3NlbGVjdGlv bl9leGlzdHNfcCk7CiAgIGRlZnN1YnIgKCZTdzMyX3NlbGVjdGlvbl90YXJnZXRzKTsKIAot LSAKMi4zNS4xLndpbmRvd3MuMgoK --------------CM0GvltQhBlisVyzINC1NMMq--