From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Newsgroups: gmane.emacs.bugs Subject: bug#41242: Port feature/native-comp to Windows Date: Wed, 13 May 2020 16:26:57 -0300 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000e9dc2405a58c90b2" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="15342"; mail-complaints-to="usenet@ciao.gmane.io" To: 41242@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed May 13 21:29:00 2020 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 1jYx3s-0003r0-DE for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 13 May 2020 21:29:00 +0200 Original-Received: from localhost ([::1]:59880 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jYx3r-00010L-BZ for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 13 May 2020 15:28:59 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45742) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jYx2w-00006S-9a for bug-gnu-emacs@gnu.org; Wed, 13 May 2020 15:28:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:48061) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jYx2v-0000ei-W0 for bug-gnu-emacs@gnu.org; Wed, 13 May 2020 15:28:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jYx2v-0005jT-RN for bug-gnu-emacs@gnu.org; Wed, 13 May 2020 15:28:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 13 May 2020 19:28:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 41242 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.158939803321969 (code B ref -1); Wed, 13 May 2020 19:28:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 13 May 2020 19:27:13 +0000 Original-Received: from localhost ([127.0.0.1]:59607 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jYx29-0005iH-8t for submit@debbugs.gnu.org; Wed, 13 May 2020 15:27:13 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:54090) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jYx28-0005iA-Bc for submit@debbugs.gnu.org; Wed, 13 May 2020 15:27:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45684) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jYx28-0007Mb-36 for bug-gnu-emacs@gnu.org; Wed, 13 May 2020 15:27:12 -0400 Original-Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]:45235) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jYx26-0000SA-MW for bug-gnu-emacs@gnu.org; Wed, 13 May 2020 15:27:11 -0400 Original-Received: by mail-oi1-x230.google.com with SMTP id d191so2160113oib.12 for ; Wed, 13 May 2020 12:27:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=Tb9Em3nH5dQfk+Ck3goELxai9BWfpHMhI9U9W9nHdFQ=; b=GIBgRJj5UOhvWj1TSz4FJ1VpgDY9i4B2nmZhOOABhT3DEU4pj4HEeE5Vc49Kxr4+LP +AIukNkt8ug6dKxiW/7oIwjKBRDUyfvLVW8Ro/53TnXu84+gCjjaJX+Mec4S6XqYZ60F /aajswqLkDQQWSpBSiIBAEOvGI4KYjuLivp0z8ElN0JKdLLeO+QKTBu73DKGc6sjd0fC wvRonn4xpCTfl9BoHgCPCmrlsIlfDRI0phRHflyHoh3si2Nty6Kc8dsoZ1CDxscjEILV tR6qY7j7zGcpzF8d8FZo+yCB8s2zsjbT/zUQ6IgWqYxjU5RbV7vPv6Phg6HEGijxDaxd h2Vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Tb9Em3nH5dQfk+Ck3goELxai9BWfpHMhI9U9W9nHdFQ=; b=iyOUBwwwoxyJWPM3sCDzqFHrzRw3UKNaSMX5H5h07/lAgCQ4uoHVqNI1Jlvl2Y2wtS +Lw6IPNQ6Lgoe+e1C93A1aXuwopbXIB/6JdPjc/KKtt1uiycsPSFbRSiGdvwPCHHLCB4 Y4vPz+dogzNE5zU1jOBal5N6csOrFYkQx2/0WNKnNC95Y9WiuEM05I8nHSyer/RKjxZl IdrcV4XYZl1oXmpofJaBKquQc9jIuGwhxgzUivB8nYkPbjx4T9yh1q1JMIRfgHc/WKTr ag4HCbVZ48094NR52IflXsXiS4nYYBRJHqcv+Nw5I3/Lcm4hfwvVkOQRaGnN/T4PF2B7 rA4Q== X-Gm-Message-State: AGi0PuZ8oYj8x1AtZNzr4AiwJN+WcaArCEp4flSaYVzG0mXIZpZsFZ/1 6ZmtVHQKc1xGlHvIeF5kupEF2g1T4gi4idb5/GTv6IE1VKUXHg== X-Google-Smtp-Source: APiQypK86DqFDdraAdUBvmZ4bq3aLRO/WE9/oSAwKAOihVkTK6vAAKyqXWZlAXTMtigeMZxAZeatty+VXK3b2SH2wqQ= X-Received: by 2002:aca:d04:: with SMTP id 4mr7066343oin.120.1589398028790; Wed, 13 May 2020 12:27:08 -0700 (PDT) Received-SPF: pass client-ip=2607:f8b0:4864:20::230; envelope-from=nicolasbertolo@gmail.com; helo=mail-oi1-x230.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action 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" Xref: news.gmane.io gmane.emacs.bugs:180177 Archived-At: --000000000000e9dc2405a58c90b2 Content-Type: text/plain; charset="UTF-8" The attached patches contain changes to make the feature/native-comp branch work on Windows. There are a few remaining issues: * The loading process is very slow. This is especially annoying when coupled with autoloading. For example, autoloading Helm may stall Emacs for 5 seconds in my machine. I have thought a possible solution to this problem: load the byte-compiled file and put the native-compiled version in a list. Then load that list one by one on an idle-timer, that way the UI freezes should be minimized. This could reuse the "late loading" machinery implemented for deferred compilation. * `package-delete` fails because it tries to delete the .eln file via `delete-file`. This is impossible in Windows because it's generally impossible to delete files that have an open HANDLE in the system. Three solutions have crossed my mind: - Edit `package-delete` to put the eln on a list of files that should be deleted when Emacs is closed. - Implement an unloading mechanism for native-compiled files. - Copy eln files to temporary files and load those temporary files instead. This means that deleting the original eln file is possible. I'd prefer the second option, but I have a semi-working patch for the third option. * The `emacs_dir` environment variable needs to be set when loading the dump file. It is necessary for `expand-file-name`, which calls emacs_root_dir(). I haven't investigated why this is necessary yet. One workaround would be to use GetModuleFileName() to get the path to emacs.exe when `emacs_dir` is not set. --000000000000e9dc2405a58c90b2 Content-Type: application/octet-stream; name="0001-HACK-Ensure-the-emacs_root_dir-function-does-not-cra.patch" Content-Disposition: attachment; filename="0001-HACK-Ensure-the-emacs_root_dir-function-does-not-cra.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ka5qjddn0 RnJvbSA2OGFkMTBkYTlmZjUzOGFiMjFkYTFhNGY0MGVlNGI1NTZkNmEzZDc2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA4IE1heSAyMDIwIDE2OjMw OjExIC0wMzAwClN1YmplY3Q6IFtQQVRDSCAxLzhdIEhBQ0s6IEVuc3VyZSB0aGUgYGVtYWNzX3Jv b3RfZGlyYCBmdW5jdGlvbiBkb2VzIG5vdAogY3Jhc2guCgpUaGF0IGZ1bmN0aW9uIGlzIGNhbGxl ZCB3aGVuIGNhbGxpbmcgYGxvYWRfcGR1bXBgLiBUaGUgcHJvYmxlbSBpcyB0aGF0CnRoYXQgaGFw cGVucyB0b28gZWFybHkgaW4gdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MgYW5kIHRoZQpgZW1h Y3NfZGlyYCBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aWxsIG5vdCBoYXZlIGJlZW4gaW5pdGlhbGl6 ZWQgeWV0LgoKVGhlIHByb3BlciBmaXggd291bGQgYmUgdG8gaW5pdGlhbGl6ZSBgZW1hY3NfZGly YCBlYXJseSBlbm91Z2guIEkgZG8Kbm90IGtub3cgZW5vdWdoIG9mIHRoZSBFbWFjcyBpbnRlcm5h bHMgdG8gZG8gdGhhdCBzYWZlbHkuCi0tLQogc3JjL3czMi5jIHwgMiArLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3czMi5j IGIvc3JjL3czMi5jCmluZGV4IDBmNjllNjUyYTUuLmE4Yzc2M2YyM2UgMTAwNjQ0Ci0tLSBhL3Ny Yy93MzIuYworKysgYi9zcmMvdzMyLmMKQEAgLTMxNTQsNyArMzE1NCw3IEBAIGVtYWNzX3Jvb3Rf ZGlyICh2b2lkKQogCiAgIHAgPSBnZXRlbnYgKCJlbWFjc19kaXIiKTsKICAgaWYgKHAgPT0gTlVM TCkKLSAgICBlbWFjc19hYm9ydCAoKTsKKyAgICBwID0gIkM6L1VzZXJzIjsKICAgZmlsZW5hbWVf ZnJvbV9hbnNpIChwLCByb290X2Rpcik7CiAgIHJvb3RfZGlyW3BhcnNlX3Jvb3QgKHJvb3RfZGly LCBOVUxMKV0gPSAnXDAnOwogICBkb3N0b3VuaXhfZmlsZW5hbWUgKHJvb3RfZGlyKTsKLS0gCjIu MjUuMS53aW5kb3dzLjEKCg== --000000000000e9dc2405a58c90b2 Content-Type: application/octet-stream; name="0002-Do-not-block-SIGIO-in-platforms-that-don-t-have-it.patch" Content-Disposition: attachment; filename="0002-Do-not-block-SIGIO-in-platforms-that-don-t-have-it.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ka5qjde91 RnJvbSAxY2U3ZmU5ZDJmYTY2YmJjZTQ1NTIzYjYyNzUwNzFjYWQ2ODUzMjQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA4IE1heSAyMDIwIDE2OjAy OjU4IC0wMzAwClN1YmplY3Q6IFtQQVRDSCAyLzhdIERvIG5vdCBibG9jayBTSUdJTyBpbiBwbGF0 Zm9ybXMgdGhhdCBkb24ndCBoYXZlIGl0LgoKKiBzcmMvY29tcC5jIChjb21wLS1jb21waWxlLWN0 eHQtdG8tZmlsZSk6IEFkZCBhIHByZXByb2Nlc3NvciBjaGVjayB0bwphdm9pZCBibG9ja2luZyBT SUdJTyBpbiBwbGF0Zm9ybXMgdGhhdCBkb24ndCBoYXZlIGl0LgotLS0KIHNyYy9jb21wLmMgfCAy ICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2Nv bXAuYyBiL3NyYy9jb21wLmMKaW5kZXggZTNhODBhZGZhOS4uMDBmOWQ0Yjc0YSAxMDA2NDQKLS0t IGEvc3JjL2NvbXAuYworKysgYi9zcmMvY29tcC5jCkBAIC0zMzQ1LDcgKzMzNDUsOSBAQCBERUZV TiAoImNvbXAtLWNvbXBpbGUtY3R4dC10by1maWxlIiwgRmNvbXBfX2NvbXBpbGVfY3R4dF90b19m aWxlLAogICAgICAgc2lnZW1wdHlzZXQgKCZibG9ja2VkKTsKICAgICAgIHNpZ2FkZHNldCAoJmJs b2NrZWQsIFNJR0FMUk0pOwogICAgICAgc2lnYWRkc2V0ICgmYmxvY2tlZCwgU0lHSU5UKTsKKyNp ZmRlZiBVU0FCTEVfU0lHSU8KICAgICAgIHNpZ2FkZHNldCAoJmJsb2NrZWQsIFNJR0lPKTsKKyNl bmRpZgogICAgICAgcHRocmVhZF9zaWdtYXNrIChTSUdfQkxPQ0ssICZibG9ja2VkLCAmb2xkc2V0 KTsKICAgICB9CiAgIGVtaXRfY3R4dF9jb2RlICgpOwotLSAKMi4yNS4xLndpbmRvd3MuMQoK --000000000000e9dc2405a58c90b2 Content-Type: application/octet-stream; name="0003-Handle-setjmp-taking-two-arguments-in-Windows.patch" Content-Disposition: attachment; filename="0003-Handle-setjmp-taking-two-arguments-in-Windows.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ka5qjdeq2 RnJvbSA4ZWE1Y2VkYTYzODljMjI3ZjgyZThkNjk4YjY0NDM0NGYxN2Y1MmI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA4IE1heSAyMDIwIDE1OjU2 OjA5IC0wMzAwClN1YmplY3Q6IFtQQVRDSCAzLzhdIEhhbmRsZSBzZXRqbXAoKSB0YWtpbmcgdHdv IGFyZ3VtZW50cyBpbiBXaW5kb3dzLgoKKiBzcmMvY29tcC5jOiBBZGQgYGRlZmluZV9zZXRqbXBf ZGVwcygpYCBhbmQgYGVtaXRfc2V0am1wKClgIHdoaWNoCmFic3RyYWN0IG92ZXIgdGhpcyBkaWZm ZXJlbmNlIGluIGJlaGF2aW9yIGJldHdlZW4gb3BlcmF0aW5nIHN5c3RlbXMuCgpXQVJOSU5HOiBO b3QgYWxsIGNhc2VzIGFyZSBoYW5kbGVkIGJ5IHRoaXMgcGF0Y2guIFRoZSBNaW5ndy02NApzZXRq bXAuaCBoZWFkZXIgZGVhbHMgd2l0aCBtYW55IG90aGVyIGNvbWJpbmF0aW9ucy4gSSBkb24ndCB0 aGluayBpdAppcyBhIGdvb2QgaWRlYSB0byByZXBsaWNhdGUgdGhlIGxvZ2ljIG9mIHRoYXQgaGVh ZGVyIGluc2lkZQplbWFjcy4gKE1heWJlIGEgZmV3IGxpbmVzIGluIHRoZSBjb25maWd1cmUgc2Ny aXB0IGNvdWxkIGJlIGFkZGVkIHRvCmhhbmRsZSB0aGlzIHByb2JsZW0/KQotLS0KIHNyYy9jb21w LmMgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9jb21wLmMgYi9zcmMvY29tcC5jCmluZGV4IDAwZjlkNGI3NGEuLjBk NDY2MjhlNmEgMTAwNjQ0Ci0tLSBhL3NyYy9jb21wLmMKKysrIGIvc3JjL2NvbXAuYwpAQCAtMjIs NiArMjIsNyBAQAogCiAjaWZkZWYgSEFWRV9OQVRJVkVfQ09NUAogCisjaW5jbHVkZSA8c2V0am1w Lmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxz aWduYWwuaD4KQEAgLTc0LDEwICs3NSwxNSBAQCAjZGVmaW5lIERFQ0xfQkxPQ0sobmFtZSwgZnVu YykJCQkJXAogICBnY2Nfaml0X2Jsb2NrICoobmFtZSkgPQkJCQlcCiAgICAgZ2NjX2ppdF9mdW5j dGlvbl9uZXdfYmxvY2sgKChmdW5jKSwgU1RSIChuYW1lKSkKIAotI2lmZGVmIEhBVkVfX1NFVEpN UAotI2RlZmluZSBTRVRKTVAgX3NldGptcAorI2lmbmRlZiBfV0lOMzIKKyMgaWZkZWYgSEFWRV9f U0VUSk1QCisjICBkZWZpbmUgU0VUSk1QIF9zZXRqbXAKKyMgZWxzZQorIyAgZGVmaW5lIFNFVEpN UCBzZXRqbXAKKyMgZW5kaWYKICNlbHNlCi0jZGVmaW5lIFNFVEpNUCBzZXRqbXAKKy8qIHNuaXBw ZXQgZnJvbSBNSU5HVy02NCBzZXRqbXAuaCAqLworIyBkZWZpbmUgU0VUSk1QIF9zZXRqbXAKICNl bmRpZgogI2RlZmluZSBTRVRKTVBfTkFNRSBTRVRKTVAKIApAQCAtMTc0LDYgKzE4MCw5IEBAICNk ZWZpbmUgRl9SRUxPQ19NQVhfU0laRSAxNTAwCiAgIGdjY19qaXRfZnVuY3Rpb24gKnNldGNkcjsK ICAgZ2NjX2ppdF9mdW5jdGlvbiAqY2hlY2tfdHlwZTsKICAgZ2NjX2ppdF9mdW5jdGlvbiAqY2hl Y2tfaW1wdXJlOworI2lmZGVmIF9XSU4zMgorICBnY2Nfaml0X2Z1bmN0aW9uICpzZXRqbXBfY3R4 X2Z1bmM7CisjZW5kaWYKICAgTGlzcF9PYmplY3QgZnVuY19ibG9ja3NfaDsgLyogYmxrX25hbWUg LT4gZ2NjX2Jsb2NrLiAgKi8KICAgTGlzcF9PYmplY3QgZXhwb3J0ZWRfZnVuY3NfaDsgLyogYy1m dW5jLW5hbWUgLT4gZ2NjX2ppdF9mdW5jdGlvbiAqLiAgKi8KICAgTGlzcF9PYmplY3QgaW1wb3J0 ZWRfZnVuY3NfaDsgLyogc3Vicl9uYW1lIC0+IGdjY19qaXRfZmllbGQgKnJlbG9jX2ZpZWxkLiAg Ki8KQEAgLTE0NzQsNiArMTQ4MywyOSBAQCBlbWl0X2xpbXBsZV9jYWxsX3JlZiAoTGlzcF9PYmpl Y3QgaW5zbiwgYm9vbCBkaXJlY3QpCiAJCQlkaXJlY3QpOwogfQogCitzdGF0aWMgZ2NjX2ppdF9y dmFsdWUgKgorZW1pdF9zZXRqbXAgKGdjY19qaXRfcnZhbHVlICpidWYpCit7CisjaWZuZGVmIF9X SU4zMgorICBnY2Nfaml0X3J2YWx1ZSAqYXJnc1tdID0ge2J1Zn07CisgIHJldHVybiBlbWl0X2Nh bGwgKGludGVybl9jX3N0cmluZyAoU1RSIChTRVRKTVBfTkFNRSkpLCBjb21wLmludF90eXBlLCAx LCBhcmdzLAorICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyNlbHNlCisgIC8qIF9zZXRqbXAg KGJ1ZiwgX19idWlsdGluX2ZyYW1lX2FkZHJlc3MgKDApKSAqLworICBnY2Nfaml0X3J2YWx1ZSAq YXJnc1syXTsKKworICBhcmdzWzBdID0gZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9p bnQgKGNvbXAuY3R4dCwgY29tcC51bnNpZ25lZF90eXBlLCAwKTsKKworICBhcmdzWzFdID0gZ2Nj X2ppdF9jb250ZXh0X25ld19jYWxsKGNvbXAuY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbXAuc2V0am1wX2N0eF9mdW5jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDEsIGFyZ3MpOworICBhcmdzWzBdID0gYnVmOworICByZXR1cm4gZW1pdF9jYWxsIChpbnRl cm5fY19zdHJpbmcgKFNUUiAoU0VUSk1QX05BTUUpKSwgY29tcC5pbnRfdHlwZSwgMiwgYXJncywK KyAgICAgICAgICAgICAgICAgICAgZmFsc2UpOworI2VuZGlmCit9CisKIC8qIFJlZ2lzdGVyIGFu IGhhbmRsZXIgZm9yIGEgbm9uIGxvY2FsIGV4aXQuICAqLwogCiBzdGF0aWMgdm9pZApAQCAtMTUw MCw4ICsxNTMyLDcgQEAgZW1pdF9saW1wbGVfcHVzaF9oYW5kbGVyIChnY2Nfaml0X3J2YWx1ZSAq aGFuZGxlciwgZ2NjX2ppdF9ydmFsdWUgKmhhbmRsZXJfdHlwZSwKIAlOVUxMKTsKIAogICBnY2Nf aml0X3J2YWx1ZSAqcmVzOwotICByZXMgPQotICAgIGVtaXRfY2FsbCAoaW50ZXJuX2Nfc3RyaW5n IChTVFIgKFNFVEpNUF9OQU1FKSksIGNvbXAuaW50X3R5cGUsIDEsIGFyZ3MsIGZhbHNlKTsKKyAg cmVzID0gZW1pdF9zZXRqbXAoYXJnc1swXSk7CiAgIGVtaXRfY29uZF9qdW1wIChyZXMsIGhhbmRs ZXJfYmIsIGd1YXJkZWRfYmIpOwogfQogCkBAIC0yMDYwLDggKzIwOTEsMTQgQEAgI2RlZmluZSBB RERfSU1QT1JURUQoZl9uYW1lLCByZXRfdHlwZSwgbmFyZ3MsIGFyZ3MpCQkJICAgICAgIFwKICAg YXJnc1sxXSA9IGNvbXAuaW50X3R5cGU7CiAgIEFERF9JTVBPUlRFRCAocHVzaF9oYW5kbGVyLCBj b21wLmhhbmRsZXJfcHRyX3R5cGUsIDIsIGFyZ3MpOwogCisjaWZuZGVmIF9XSU4zMgogICBhcmdz WzBdID0gZ2NjX2ppdF90eXBlX2dldF9wb2ludGVyIChnY2Nfaml0X3N0cnVjdF9hc190eXBlIChj b21wLmptcF9idWZfcykpOwogICBBRERfSU1QT1JURUQgKFNFVEpNUF9OQU1FLCBjb21wLmludF90 eXBlLCAxLCBhcmdzKTsKKyNlbHNlCisgIGFyZ3NbMF0gPSBnY2Nfaml0X3R5cGVfZ2V0X3BvaW50 ZXIgKGdjY19qaXRfc3RydWN0X2FzX3R5cGUgKGNvbXAuam1wX2J1Zl9zKSk7CisgIGFyZ3NbMV0g PSBjb21wLnZvaWRfcHRyX3R5cGU7CisgIEFERF9JTVBPUlRFRCAoU0VUSk1QX05BTUUsIGNvbXAu aW50X3R5cGUsIDIsIGFyZ3MpOworI2VuZGlmCiAKICAgQUREX0lNUE9SVEVEIChyZWNvcmRfdW53 aW5kX3Byb3RlY3RfZXhjdXJzaW9uLCBjb21wLnZvaWRfdHlwZSwgMCwgTlVMTCk7CiAKQEAgLTIz MDEsNyArMjMzOCw3IEBAIGRlZmluZV9qbXBfYnVmICh2b2lkKQogICAgICAgZ2NjX2ppdF9jb250 ZXh0X25ld19hcnJheV90eXBlIChjb21wLmN0eHQsCiAJCQkJICAgICAgTlVMTCwKIAkJCQkgICAg ICBjb21wLmNoYXJfdHlwZSwKLQkJCQkgICAgICBzaXplb2YgKGptcF9idWYpKSwKKwkJCQkgICAg ICBzaXplb2YgKHN5c19qbXBfYnVmKSksCiAgICAgICAic3R1ZmYiKTsKICAgY29tcC5qbXBfYnVm X3MgPQogICAgIGdjY19qaXRfY29udGV4dF9uZXdfc3RydWN0X3R5cGUgKGNvbXAuY3R4dCwKQEAg LTI5NjksNiArMzAwNiwxNCBAQCBkZWZpbmVfQ0hFQ0tfSU1QVVJFICh2b2lkKQogICAgIGdjY19q aXRfYmxvY2tfZW5kX3dpdGhfdm9pZF9yZXR1cm4gKGVycl9ibG9jaywgTlVMTCk7CiB9CiAKK3N0 YXRpYyB2b2lkCitkZWZpbmVfc2V0am1wX2RlcHMgKHZvaWQpCit7CisgIGNvbXAuc2V0am1wX2N0 eF9mdW5jCisgICAgPSBnY2Nfaml0X2NvbnRleHRfZ2V0X2J1aWx0aW5fZnVuY3Rpb24gKGNvbXAu Y3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fYnVp bHRpbl9mcmFtZV9hZGRyZXNzIik7Cit9CisKIC8qIERlZmluZSBhIGZ1bmN0aW9uIHRvIGNvbnZl cnQgYm9vbGVhbiBpbnRvIHQgb3IgbmlsICovCiAKIHN0YXRpYyB2b2lkCkBAIC0zMzU3LDYgKzM0 MDIsNyBAQCBERUZVTiAoImNvbXAtLWNvbXBpbGUtY3R4dC10by1maWxlIiwgRmNvbXBfX2NvbXBp bGVfY3R4dF90b19maWxlLAogICBkZWZpbmVfUFNFVURPVkVDVE9SUCAoKTsKICAgZGVmaW5lX0NI RUNLX1RZUEUgKCk7CiAgIGRlZmluZV9DSEVDS19JTVBVUkUgKCk7CisgIGRlZmluZV9zZXRqbXBf ZGVwcyAoKTsKICAgZGVmaW5lX2Jvb2xfdG9fbGlzcF9vYmogKCk7CiAgIGRlZmluZV9zZXRjYXJf c2V0Y2RyICgpOwogICBkZWZpbmVfYWRkMV9zdWIxICgpOwotLSAKMi4yNS4xLndpbmRvd3MuMQoK --000000000000e9dc2405a58c90b2 Content-Type: application/octet-stream; name="0004-Handle-LISP_WORDS_ARE_POINTERS-and-CHECK_LISP_OBJECT.patch" Content-Disposition: attachment; filename="0004-Handle-LISP_WORDS_ARE_POINTERS-and-CHECK_LISP_OBJECT.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ka5qjdey3 RnJvbSA1YjhkNTI5YmFhOGIzYzUxYTkyMjBhYTE0OTM2MmMyZDdjNWZhMTYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA4IE1heSAyMDIwIDE0OjMw OjE0IC0wMzAwClN1YmplY3Q6IFtQQVRDSCA0LzhdIEhhbmRsZSBMSVNQX1dPUkRTX0FSRV9QT0lO VEVSUyBhbmQKIENIRUNLX0xJU1BfT0JKRUNUX1RZUEUuCgoqIHNyYy9jb21wLmM6IEludHJvZHVj ZSB0aGUgTGlzcF9YLCBMaXNwX1dvcmQsIGFuZCBMaXNwX1dvcmRfdGFnCnR5cGVzLiBUaGVzZSB0 eXBlcyBhcmUgdXNlZCBpbnN0ZWFkIG9mIGxvbmcgb3IgbG9uZyBsb25nLiBVc2UKZW1hY3NfaW50 X3R5cGUgYW5kIGVtYWNzX3VpbnRfdHlwZXMgd2hlcmUgYXBwcm9wcmlhdGUuCihlbWl0X2NvZXJj ZSk6IEFkZCBzcGVjaWFsIGxvZ2ljIHRoYXQgaGFuZGxlcyB0aGUgY2FzZSB3aGVuCkxpc3BfT2Jq ZWN0IGlzIGEgc3RydWN0LiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgaGFuZGxpbmcgdGhlCi0tZW5h YmxlLWNoZWNrLWxpc3Atb2JqZWN0LXR5cGUgY29uZmlndXJlIG9wdGlvbi4KCiogc3JjL2xpc3Au aDogU2luY2UgbGliZ2Njaml0IGRvZXMgbm90IHN1cHBvcnQgb3BhcXVlIHVuaW9ucywgY2hhbmdl Ckxpc3BfWCB0byBiZSBzdHJ1Y3QuIFRoaXMgaXMgZG9uZSB0byBlbnN1cmUgdGhhdCB0aGUgc2Ft ZSB0eXBlcyBhcmUKdXNlZCBpbiB0aGUgc2FtZSBiaW5hcnkuIEl0IGlzIHByb2JhYmx5IHVubmVj ZXNzYXJ5IHNpbmNlIG9ubHkgYQpwb2ludGVyIHRvIGl0IGlzIHVzZWQuCi0tLQogc3JjL2NvbXAu YyB8IDMyOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLQogc3JjL2xpc3AuaCB8ICAgNSArLQogMiBmaWxlcyBjaGFuZ2VkLCAyMjggaW5zZXJ0aW9u cygrKSwgMTA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9jb21wLmMgYi9zcmMvY29t cC5jCmluZGV4IDBkNDY2MjhlNmEuLjBkNTg4MGFkM2MgMTAwNjQ0Ci0tLSBhL3NyYy9jb21wLmMK KysrIGIvc3JjL2NvbXAuYwpAQCAtMTE2LDYgKzExNiwxNiBAQCAjZGVmaW5lIEZfUkVMT0NfTUFY X1NJWkUgMTUwMAogICBnY2Nfaml0X3R5cGUgKmNoYXJfcHRyX3R5cGU7CiAgIGdjY19qaXRfdHlw ZSAqcHRyZGlmZl90eXBlOwogICBnY2Nfaml0X3R5cGUgKnVpbnRwdHJfdHlwZTsKKyNpZiBMSVNQ X1dPUkRTX0FSRV9QT0lOVEVSUworICBnY2Nfaml0X3N0cnVjdCAqbGlzcF9YX3M7CisgIGdjY19q aXRfdHlwZSAqbGlzcF9YOworI2VuZGlmCisgIGdjY19qaXRfdHlwZSAqbGlzcF93b3JkX3R5cGU7 CisgIGdjY19qaXRfdHlwZSAqbGlzcF93b3JkX3RhZ190eXBlOworI2lmZGVmIExJU1BfT0JKRUNU X0lTX1NUUlVDVAorICBnY2Nfaml0X2ZpZWxkICpsaXNwX29ial9pOworICBnY2Nfaml0X3N0cnVj dCAqbGlzcF9vYmpfczsKKyNlbmRpZgogICBnY2Nfaml0X3R5cGUgKmxpc3Bfb2JqX3R5cGU7CiAg IGdjY19qaXRfdHlwZSAqbGlzcF9vYmpfcHRyX3R5cGU7CiAgIC8qIHN0cnVjdCBMaXNwX0NvbnMg Ki8KQEAgLTE1OCw3ICsxNjgsOCBAQCAjZGVmaW5lIEZfUkVMT0NfTUFYX1NJWkUgMTUwMAogICBn Y2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX2NfcDsKICAgZ2NjX2ppdF9maWVsZCAqY2FzdF91 bmlvbl9hc192X3A7CiAgIGdjY19qaXRfZmllbGQgKmNhc3RfdW5pb25fYXNfbGlzcF9jb25zX3B0 cjsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc19saXNwX29iajsKKyAgZ2NjX2ppdF9m aWVsZCAqY2FzdF91bmlvbl9hc19saXNwX3dvcmQ7CisgIGdjY19qaXRfZmllbGQgKmNhc3RfdW5p b25fYXNfbGlzcF93b3JkX3RhZzsKICAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc19saXNw X29ial9wdHI7CiAgIGdjY19qaXRfZnVuY3Rpb24gKmZ1bmM7IC8qIEN1cnJlbnQgZnVuY3Rpb24g YmVpbmcgY29tcGlsZWQuICAqLwogICBib29sIGZ1bmNfaGFzX25vbl9sb2NhbDsgLyogRnJvbSBj b21wLWZ1bmMgaGFzLW5vbi1sb2NhbCBzbG90LiAgKi8KQEAgLTM0Nyw4ICszNTgsMTAgQEAgdHlw ZV90b19jYXN0X2ZpZWxkIChnY2Nfaml0X3R5cGUgKnR5cGUpCiAgICAgZmllbGQgPSBjb21wLmNh c3RfdW5pb25fYXNfY19wOwogICBlbHNlIGlmICh0eXBlID09IGNvbXAubGlzcF9jb25zX3B0cl90 eXBlKQogICAgIGZpZWxkID0gY29tcC5jYXN0X3VuaW9uX2FzX2xpc3BfY29uc19wdHI7Ci0gIGVs c2UgaWYgKHR5cGUgPT0gY29tcC5saXNwX29ial90eXBlKQotICAgIGZpZWxkID0gY29tcC5jYXN0 X3VuaW9uX2FzX2xpc3Bfb2JqOworICBlbHNlIGlmICh0eXBlID09IGNvbXAubGlzcF93b3JkX3R5 cGUpCisgICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfbGlzcF93b3JkOworICBlbHNlIGlm ICh0eXBlID09IGNvbXAubGlzcF93b3JkX3RhZ190eXBlKQorICAgIGZpZWxkID0gY29tcC5jYXN0 X3VuaW9uX2FzX2xpc3Bfd29yZF90YWc7CiAgIGVsc2UgaWYgKHR5cGUgPT0gY29tcC5saXNwX29i al9wdHJfdHlwZSkKICAgICBmaWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc19saXNwX29ial9wdHI7 CiAgIGVsc2UKQEAgLTYyNyw2ICs2NDAsMzEgQEAgZW1pdF9jb2VyY2UgKGdjY19qaXRfdHlwZSAq bmV3X3R5cGUsIGdjY19qaXRfcnZhbHVlICpvYmopCiAgIGlmIChuZXdfdHlwZSA9PSBvbGRfdHlw ZSkKICAgICByZXR1cm4gb2JqOwogCisjaWZkZWYgTElTUF9PQkpFQ1RfSVNfU1RSVUNUCisgIGlm IChvbGRfdHlwZSA9PSBjb21wLmxpc3Bfb2JqX3R5cGUpCisgICAgeworICAgICAgZ2NjX2ppdF9y dmFsdWUgKmx3b3Jkb2JqID0KKyAgICAgICAgZ2NjX2ppdF9ydmFsdWVfYWNjZXNzX2ZpZWxkIChv YmosIE5VTEwsIGNvbXAubGlzcF9vYmpfaSk7CisgICAgICByZXR1cm4gZW1pdF9jb2VyY2UgKG5l d190eXBlLCBsd29yZG9iaik7CisgICAgfQorCisgIGlmIChuZXdfdHlwZSA9PSBjb21wLmxpc3Bf b2JqX3R5cGUpCisgICAgeworICAgICAgZ2NjX2ppdF9ydmFsdWUgKmx3b3Jkb2JqID0KKyAgICAg ICAgZW1pdF9jb2VyY2UgKGNvbXAubGlzcF93b3JkX3R5cGUsIG9iaik7CisKKyAgICAgIGdjY19q aXRfbHZhbHVlICp0bXBfcworICAgICAgICA9IGdjY19qaXRfZnVuY3Rpb25fbmV3X2xvY2FsIChj b21wLmZ1bmMsIE5VTEwsIGNvbXAubGlzcF9vYmpfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9ybWF0X3N0cmluZyAoImxpc3Bfb2JqXyV0ZCIsIGkrKykpOwor CisgICAgICBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50IChjb21wLmJsb2NrLCBOVUxMLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9sdmFsdWVfYWNjZXNz X2ZpZWxkICh0bXBfcywgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5saXNwX29ial9pKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGx3b3Jkb2JqKTsKKyAgICAgIHJldHVybiBnY2Nf aml0X2x2YWx1ZV9hc19ydmFsdWUgKHRtcF9zKTsKKyAgICB9CisjZW5kaWYKKwogICBnY2Nfaml0 X2ZpZWxkICpvcmlnX2ZpZWxkID0KICAgICB0eXBlX3RvX2Nhc3RfZmllbGQgKG9sZF90eXBlKTsK ICAgZ2NjX2ppdF9maWVsZCAqZGVzdF9maWVsZCA9IHR5cGVfdG9fY2FzdF9maWVsZCAobmV3X3R5 cGUpOwpAQCAtNjY0LDE0ICs3MDIsOCBAQCBlbWl0X2JpbmFyeV9vcCAoZW51bSBnY2Nfaml0X2Jp bmFyeV9vcCBvcCwKIC8qIFNob3VsZCBjb21lIHdpdGggbGliZ2Njaml0LiAgKi8KIAogc3RhdGlj IGdjY19qaXRfcnZhbHVlICoKLWVtaXRfcnZhbHVlX2Zyb21fbG9uZ19sb25nIChsb25nIGxvbmcg bikKK2VtaXRfcnZhbHVlX2Zyb21fbG9uZ19sb25nIChnY2Nfaml0X3R5cGUgKnR5cGUsIGxvbmcg bG9uZyBuKQogewotI2lmbmRlZiBXSURFX0VNQUNTX0lOVAotICB4c2lnbmFsMSAoUW5hdGl2ZV9p Y2UsCi0JICAgIGJ1aWxkX3N0cmluZyAoImVtaXRfcnZhbHVlX2Zyb21fbG9uZ19sb25nIGNhbGxl ZCBpbiBub24gd2lkZSBpbnQiCi0JCQkgICIgY29uZmlndXJhdGlvbiIpKTsKLSNlbmRpZgotCiAg IGVtaXRfY29tbWVudCAoZm9ybWF0X3N0cmluZyAoImVtaXQgbG9uZyBsb25nOiAlbGxkIiwgbikp OwogCiAgIGdjY19qaXRfcnZhbHVlICpoaWdoID0KQEAgLTY5Nyw3ICs3MjksNyBAQCBlbWl0X3J2 YWx1ZV9mcm9tX2xvbmdfbG9uZyAobG9uZyBsb25nIG4pCiAJCSAgICAgIDMyKSk7CiAKICAgcmV0 dXJuCi0gICAgZW1pdF9jb2VyY2UgKGNvbXAubG9uZ19sb25nX3R5cGUsCisgICAgZW1pdF9jb2Vy Y2UgKHR5cGUsCiAgICAgICBlbWl0X2JpbmFyeV9vcCAoCiAJR0NDX0pJVF9CSU5BUllfT1BfQklU V0lTRV9PUiwKIAljb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLApAQCAtNzEyLDI5ICs3NDQs MTM1IEBAIGVtaXRfcnZhbHVlX2Zyb21fbG9uZ19sb25nIChsb25nIGxvbmcgbikKIH0KIAogc3Rh dGljIGdjY19qaXRfcnZhbHVlICoKLWVtaXRfbW9zdF9wb3NpdGl2ZV9maXhudW0gKHZvaWQpCitl bWl0X3J2YWx1ZV9mcm9tX3Vuc2lnbmVkX2xvbmdfbG9uZyAoZ2NjX2ppdF90eXBlICp0eXBlLCB1 bnNpZ25lZCBsb25nIGxvbmcgbikKK3sKKyAgZW1pdF9jb21tZW50IChmb3JtYXRfc3RyaW5nICgi ZW1pdCB1bnNpZ25lZCBsb25nIGxvbmc6ICVsbHUiLCBuKSk7CisKKyAgZ2NjX2ppdF9ydmFsdWUg KmhpZ2ggPQorICAgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21fbG9uZyAoY29tcC5j dHh0LAorCQkJCQkgIGNvbXAudW5zaWduZWRfbG9uZ19sb25nX3R5cGUsCisJCQkJCSAgbiA+PiAz Mik7CisgIGdjY19qaXRfcnZhbHVlICpsb3cgPQorICAgIGVtaXRfYmluYXJ5X29wIChHQ0NfSklU X0JJTkFSWV9PUF9SU0hJRlQsCisJCSAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAor CQkgICAgZW1pdF9iaW5hcnlfb3AgKEdDQ19KSVRfQklOQVJZX09QX0xTSElGVCwKKwkJCQkgICAg Y29tcC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSwKKwkJCQkgICAgZ2NjX2ppdF9jb250ZXh0X25l d19ydmFsdWVfZnJvbV9sb25nICgKKwkJCQkgICAgICBjb21wLmN0eHQsCisJCQkJICAgICAgY29t cC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSwKKwkJCQkgICAgICBuKSwKKwkJCQkgICAgZ2NjX2pp dF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKAorCQkJCSAgICAgIGNvbXAuY3R4dCwKKwkJ CQkgICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAorCQkJCSAgICAgIDMyKSksCisJ CSAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCAoCisJCSAgICAgIGNvbXAu Y3R4dCwKKwkJICAgICAgY29tcC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSwKKwkJICAgICAgMzIp KTsKKworICByZXR1cm4gZW1pdF9jb2VyY2UgKAorICAgICAgICAgICB0eXBlLAorICAgICAgICAg ICBlbWl0X2JpbmFyeV9vcCAoCisgICAgICAgICAgICAgR0NDX0pJVF9CSU5BUllfT1BfQklUV0lT RV9PUiwKKyAgICAgICAgICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAorICAgICAg ICAgICAgIGVtaXRfYmluYXJ5X29wICgKKyAgICAgICAgICAgICAgIEdDQ19KSVRfQklOQVJZX09Q X0xTSElGVCwKKyAgICAgICAgICAgICAgIGNvbXAudW5zaWduZWRfbG9uZ19sb25nX3R5cGUsCisg ICAgICAgICAgICAgICBoaWdoLAorICAgICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19y dmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKSksCisg ICAgICAgICAgICAgbG93KSk7Cit9CisKK3N0YXRpYyBnY2Nfaml0X3J2YWx1ZSAqCitlbWl0X3J2 YWx1ZV9mcm9tX2VtYWNzX3VpbnQgKEVNQUNTX1VJTlQgdmFsKQoreworICBpZiAodmFsICE9IChs b25nKSB2YWwpCisgICAgeworICAgICAgcmV0dXJuIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVl X2Zyb21fbG9uZyAoY29tcC5jdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29tcC5lbWFjc191aW50X3R5cGUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwpOworICAgIH0KKyAgZWxzZQor ICAgIHsKKyAgICAgIHJldHVybiBlbWl0X3J2YWx1ZV9mcm9tX3Vuc2lnbmVkX2xvbmdfbG9uZyAo Y29tcC5lbWFjc191aW50X3R5cGUsIHZhbCk7CisgICAgfQorfQorCitzdGF0aWMgZ2NjX2ppdF9y dmFsdWUgKgorZW1pdF9ydmFsdWVfZnJvbV9lbWFjc19pbnQgKEVNQUNTX0lOVCB2YWwpCit7Cisg IGlmICh2YWwgIT0gKGxvbmcpIHZhbCkKKyAgICB7CisgICAgICByZXR1cm4gZW1pdF9ydmFsdWVf ZnJvbV9sb25nX2xvbmcgKGNvbXAuZW1hY3NfaW50X3R5cGUsIHZhbCk7CisgICAgfQorICBlbHNl CisgICAgeworICAgICAgcmV0dXJuIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21fbG9u ZyAoY29tcC5jdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29tcC5lbWFjc19pbnRfdHlwZSwgdmFsKTsKKyAgICB9Cit9CisKK3N0YXRpYyBn Y2Nfaml0X3J2YWx1ZSAqCitlbWl0X3J2YWx1ZV9mcm9tX2xpc3Bfd29yZF90YWcgKExpc3BfV29y ZF90YWcgdmFsKQogewotI2lmIEVNQUNTX0lOVF9NQVggPiBMT05HX01BWAotICByZXR1cm4gZW1p dF9ydmFsdWVfZnJvbV9sb25nX2xvbmcgKE1PU1RfUE9TSVRJVkVfRklYTlVNKTsKKyAgaWYgKHZh bCAhPSAobG9uZykgdmFsKQorICAgIHsKKyAgICAgIHJldHVybiBlbWl0X3J2YWx1ZV9mcm9tX3Vu c2lnbmVkX2xvbmdfbG9uZyAoY29tcC5saXNwX3dvcmRfdGFnX3R5cGUsIHZhbCk7CisgICAgfQor ICBlbHNlCisgICAgeworICAgICAgcmV0dXJuIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zy b21fbG9uZyAoY29tcC5jdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29tcC5saXNwX3dvcmRfdGFnX3R5cGUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwpOworICAgIH0KK30KKworc3Rh dGljIGdjY19qaXRfcnZhbHVlICoKK2VtaXRfcnZhbHVlX2Zyb21fbGlzcF93b3JkIChMaXNwX1dv cmQgdmFsKQoreworI2lmIExJU1BfV09SRFNfQVJFX1BPSU5URVJTCisgIHJldHVybiBnY2Nfaml0 X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX3B0ciAoY29tcC5jdHh0LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAubGlzcF93b3JkX3R5cGUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsKTsKICNlbHNlCi0g IHJldHVybiBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2xvbmcgKGNvbXAuY3R4dCwK LQkJCQkJICAgICAgIGNvbXAuZW1hY3NfaW50X3R5cGUsCi0JCQkJCSAgICAgICBNT1NUX1BPU0lU SVZFX0ZJWE5VTSk7CisgIGlmICh2YWwgIT0gKGxvbmcpIHZhbCkKKyAgICB7CisgICAgICByZXR1 cm4gZW1pdF9ydmFsdWVfZnJvbV91bnNpZ25lZF9sb25nX2xvbmcgKGNvbXAubGlzcF93b3JkX3R5 cGUsIHZhbCk7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgcmV0dXJuIGdjY19qaXRfY29u dGV4dF9uZXdfcnZhbHVlX2Zyb21fbG9uZyAoY29tcC5jdHh0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5saXNwX3dvcmRfdHlwZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCk7Cisg ICAgfQogI2VuZGlmCiB9CiAKIHN0YXRpYyBnY2Nfaml0X3J2YWx1ZSAqCi1lbWl0X21vc3RfbmVn YXRpdmVfZml4bnVtICh2b2lkKQorZW1pdF9ydmFsdWVfZnJvbV9saXNwX29iaiAoTGlzcF9PYmpl Y3Qgb2JqKQogewotI2lmIEVNQUNTX0lOVF9NQVggPiBMT05HX01BWAotICByZXR1cm4gZW1pdF9y dmFsdWVfZnJvbV9sb25nX2xvbmcgKE1PU1RfTkVHQVRJVkVfRklYTlVNKTsKKyNpZmRlZiBMSVNQ X09CSkVDVF9JU19TVFJVQ1QKKyAgcmV0dXJuIGVtaXRfY29lcmNlKGNvbXAubGlzcF9vYmpfdHlw ZSwKKyAgICAgICAgICAgICAgICAgICAgIGVtaXRfcnZhbHVlX2Zyb21fbGlzcF93b3JkIChvYmou aSkpOwogI2Vsc2UKLSAgcmV0dXJuIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21fbG9u ZyAoY29tcC5jdHh0LAotCQkJCQkgICAgICAgY29tcC5lbWFjc19pbnRfdHlwZSwKLQkJCQkJICAg ICAgIE1PU1RfTkVHQVRJVkVfRklYTlVNKTsKKyAgcmV0dXJuIGVtaXRfcnZhbHVlX2Zyb21fbGlz cF93b3JkIChvYmopOwogI2VuZGlmCiB9CiAKK3N0YXRpYyBnY2Nfaml0X3J2YWx1ZSAqCitlbWl0 X21vc3RfcG9zaXRpdmVfZml4bnVtICh2b2lkKQoreworICByZXR1cm4gZW1pdF9ydmFsdWVfZnJv bV9lbWFjc19pbnQoTU9TVF9QT1NJVElWRV9GSVhOVU0pOworfQorCitzdGF0aWMgZ2NjX2ppdF9y dmFsdWUgKgorZW1pdF9tb3N0X25lZ2F0aXZlX2ZpeG51bSAodm9pZCkKK3sKKyAgcmV0dXJuIGVt aXRfcnZhbHVlX2Zyb21fZW1hY3NfaW50IChNT1NUX05FR0FUSVZFX0ZJWE5VTSk7Cit9CisKIC8q CiAgICBFbWl0IHRoZSBlcXVpdmFsZW50IG9mOgogICAgKHR5cGVvZl9wdHIpICgodWludHB0cikg cHRyICsgc2l6ZV9vZl9wdHJfcmVmICogaSkKQEAgLTc2OSw3ICs5MDcsNyBAQCBlbWl0X3B0cl9h cml0aG1ldGljIChnY2Nfaml0X3J2YWx1ZSAqcHRyLCBnY2Nfaml0X3R5cGUgKnB0cl90eXBlLAog ZW1pdF9YTEkgKGdjY19qaXRfcnZhbHVlICpvYmopCiB7CiAgIGVtaXRfY29tbWVudCAoIlhMSSIp OwotICByZXR1cm4gb2JqOworICByZXR1cm4gZW1pdF9jb2VyY2UgKGNvbXAuZW1hY3NfaW50X3R5 cGUsIG9iaik7CiB9CiAKIHN0YXRpYyBnY2Nfaml0X2x2YWx1ZSAqCkBAIC03NzksNTQgKzkxNyw0 MCBAQCBlbWl0X2x2YWxfWExJIChnY2Nfaml0X2x2YWx1ZSAqb2JqKQogICByZXR1cm4gb2JqOwog fQogCi0vKgorCiBzdGF0aWMgZ2NjX2ppdF9ydmFsdWUgKgogZW1pdF9YTFAgKGdjY19qaXRfcnZh bHVlICpvYmopCiB7CiAgIGVtaXRfY29tbWVudCAoIlhMUCIpOwogCi0gIHJldHVybiBnY2Nfaml0 X3J2YWx1ZV9hY2Nlc3NfZmllbGQgKG9iaiwKLQkJCQkgICAgICBOVUxMLAotCQkJCSAgICAgIGNv bXAubGlzcF9vYmpfYXNfcHRyKTsKKyAgcmV0dXJuIGVtaXRfY29lcmNlKGNvbXAudm9pZF9wdHJf dHlwZSwgb2JqKTsKIH0KIAotc3RhdGljIGdjY19qaXRfbHZhbHVlICoKLWVtaXRfbHZhbF9YTFAg KGdjY19qaXRfbHZhbHVlICpvYmopCi17Ci0gIGVtaXRfY29tbWVudCAoImx2YWxfWExQIik7Cisv KiBUT0RPICovCisvKiBzdGF0aWMgZ2NjX2ppdF9sdmFsdWUgKiAqLworLyogZW1pdF9sdmFsX1hM UCAoZ2NjX2ppdF9sdmFsdWUgKm9iaikgKi8KKy8qIHsgKi8KKy8qICAgZW1pdF9jb21tZW50ICgi bHZhbF9YTFAiKTsgKi8KKworLyogICByZXR1cm4gZ2NjX2ppdF9sdmFsdWVfYWNjZXNzX2ZpZWxk IChvYmosICovCisvKiAJCQkJICAgICAgTlVMTCwgKi8KKy8qIAkJCQkgICAgICBjb21wLmxpc3Bf b2JqX2FzX3B0cik7ICovCisvKiB9ICovCiAKLSAgcmV0dXJuIGdjY19qaXRfbHZhbHVlX2FjY2Vz c19maWVsZCAob2JqLAotCQkJCSAgICAgIE5VTEwsCi0JCQkJICAgICAgY29tcC5saXNwX29ial9h c19wdHIpOwotfSAqLwogc3RhdGljIGdjY19qaXRfcnZhbHVlICoKLWVtaXRfWFVOVEFHIChnY2Nf aml0X3J2YWx1ZSAqYSwgZ2NjX2ppdF90eXBlICp0eXBlLCBsb25nIGxvbmcgbGlzcF93b3JkX3Rh ZykKK2VtaXRfWFVOVEFHIChnY2Nfaml0X3J2YWx1ZSAqYSwgZ2NjX2ppdF90eXBlICp0eXBlLCBM aXNwX1dvcmRfdGFnIGxpc3Bfd29yZF90YWcpCiB7CiAgIC8qICNkZWZpbmUgWFVOVEFHKGEsIHR5 cGUsIGN0eXBlKSAoKGN0eXBlICopCiAgICAgICgoY2hhciAqKSBYTFAgKGEpIC0gTElTUF9XT1JE X1RBRyAodHlwZSkpKSAqLwogICBlbWl0X2NvbW1lbnQgKCJYVU5UQUciKTsKIAotI2lmbmRlZiBX SURFX0VNQUNTX0lOVAogICByZXR1cm4gZW1pdF9jb2VyY2UgKAogCSAgIGdjY19qaXRfdHlwZV9n ZXRfcG9pbnRlciAodHlwZSksCiAJICAgZW1pdF9iaW5hcnlfb3AgKAogCSAgICAgR0NDX0pJVF9C SU5BUllfT1BfTUlOVVMsCi0JICAgICBjb21wLmVtYWNzX2ludF90eXBlLAotCSAgICAgZW1pdF9Y TEkgKGEpLAotCSAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKAotCSAg ICAgICBjb21wLmN0eHQsCi0JICAgICAgIGNvbXAuZW1hY3NfaW50X3R5cGUsCi0JICAgICAgIGxp c3Bfd29yZF90YWcpKSk7Ci0jZWxzZQotICByZXR1cm4gZW1pdF9jb2VyY2UgKAotCSAgIGdjY19q aXRfdHlwZV9nZXRfcG9pbnRlciAodHlwZSksCi0JICAgZW1pdF9iaW5hcnlfb3AgKAotCSAgICAg R0NDX0pJVF9CSU5BUllfT1BfTUlOVVMsCi0JICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190 eXBlLAotCSAgICAgLyogRklYTUUgU2hvdWxkIGJlIFhMUC4gICovCi0JICAgICBlbWl0X1hMSSAo YSksCi0JICAgICBlbWl0X3J2YWx1ZV9mcm9tX2xvbmdfbG9uZyAobGlzcF93b3JkX3RhZykpKTsK LSNlbmRpZgorCSAgICAgY29tcC51aW50cHRyX3R5cGUsCisJICAgICBlbWl0X1hMUCAoYSksCisJ ICAgICBlbWl0X3J2YWx1ZV9mcm9tX2xpc3Bfd29yZF90YWcobGlzcF93b3JkX3RhZykpKTsKIH0K IAogc3RhdGljIGdjY19qaXRfcnZhbHVlICoKQEAgLTg1Myw3ICs5NzcsNyBAQCBlbWl0X0VRIChn Y2Nfaml0X3J2YWx1ZSAqeCwgZ2NjX2ppdF9ydmFsdWUgKnkpCiB9CiAKIHN0YXRpYyBnY2Nfaml0 X3J2YWx1ZSAqCi1lbWl0X1RBR0dFRFAgKGdjY19qaXRfcnZhbHVlICpvYmosIHB0cmRpZmZfdCB0 YWcpCitlbWl0X1RBR0dFRFAgKGdjY19qaXRfcnZhbHVlICpvYmosIExpc3BfV29yZF90YWcgdGFn KQogewogICAgLyogKCEgKCgodW5zaWduZWQpIChYTEkgKGEpID4+IChVU0VfTFNCX1RBRyA/IDAg OiBWQUxCSVRTKSkgXAogCS0gKHVuc2lnbmVkKSAodGFnKSkgXApAQCAtMTA1NCwxNyArMTE3OCw3 IEBAIGVtaXRfbWFrZV9maXhudW1fTFNCX1RBRyAoZ2NjX2ppdF9ydmFsdWUgKm4pCiAJCQljb21w LmVtYWNzX2ludF90eXBlLAogCQkJdG1wLCBjb21wLmxpc3BfaW50MCk7CiAKLSAgZ2NjX2ppdF9s dmFsdWUgKnJlcyA9IGdjY19qaXRfZnVuY3Rpb25fbmV3X2xvY2FsIChjb21wLmZ1bmMsCi0JCQkJ CQkgICAgTlVMTCwKLQkJCQkJCSAgICBjb21wLmxpc3Bfb2JqX3R5cGUsCi0JCQkJCQkgICAgImxp c3Bfb2JqX2ZpeG51bSIpOwotCi0gIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQgKGNvbXAu YmxvY2ssCi0JCQkJTlVMTCwKLQkJCQllbWl0X2x2YWxfWExJIChyZXMpLAotCQkJCXRtcCk7Ci0K LSAgcmV0dXJuIGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAocmVzKTsKKyAgcmV0dXJuIGVtaXRf Y29lcmNlIChjb21wLmxpc3Bfb2JqX3R5cGUsIHRtcCk7CiB9CiAKIHN0YXRpYyBnY2Nfaml0X3J2 YWx1ZSAqCkBAIC0xMDc2LDEwICsxMTkwLDggQEAgZW1pdF9tYWtlX2ZpeG51bV9NU0JfVEFHIChn Y2Nfaml0X3J2YWx1ZSAqbikKICAgICByZXR1cm4gWElMIChuKTsKICAgKi8KIAotICBnY2Nfaml0 X3J2YWx1ZSAqaW50bWFzayA9Ci0gICAgZW1pdF9jb2VyY2UgKGNvbXAuZW1hY3NfdWludF90eXBl LAotCQkgZW1pdF9ydmFsdWVfZnJvbV9sb25nX2xvbmcgKChFTUFDU19JTlRfTUFYCi0JCQkJCSAg ICAgID4+IChJTlRUWVBFQklUUyAtIDEpKSkpOworICBnY2Nfaml0X3J2YWx1ZSAqaW50bWFzayA9 IGVtaXRfcnZhbHVlX2Zyb21fZW1hY3NfdWludCAoSU5UTUFTSyk7CisKICAgbiA9IGVtaXRfYmlu YXJ5X29wIChHQ0NfSklUX0JJTkFSWV9PUF9CSVRXSVNFX0FORCwKIAkJICAgICAgY29tcC5lbWFj c191aW50X3R5cGUsCiAJCSAgICAgIGludG1hc2ssIG4pOwpAQCAtMTA5MCwxMiArMTIwMiwxMCBA QCBlbWl0X21ha2VfZml4bnVtX01TQl9UQUcgKGdjY19qaXRfcnZhbHVlICpuKQogCQkgICAgZW1p dF9iaW5hcnlfb3AgKEdDQ19KSVRfQklOQVJZX09QX0xTSElGVCwKIAkJCQkgICAgY29tcC5lbWFj c191aW50X3R5cGUsCiAJCQkJICAgIGNvbXAubGlzcF9pbnQwLAotCQkJCSAgICBnY2Nfaml0X2Nv bnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCAoCi0JCQkJICAgICAgY29tcC5jdHh0LAotCQkJCSAg ICAgIGNvbXAuZW1hY3NfdWludF90eXBlLAotCQkJCSAgICAgIFZBTEJJVFMpKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtaXRfcnZhbHVlX2Zyb21fZW1hY3NfdWludChW QUxCSVRTKSksCiAJCSAgICBuKTsKLSAgcmV0dXJuIGVtaXRfWExJIChlbWl0X2NvZXJjZSAoY29t cC5lbWFjc19pbnRfdHlwZSwgbikpOworCisgIHJldHVybiBlbWl0X2NvZXJjZSAoY29tcC5saXNw X29ial90eXBlLCBuKTsKIH0KIAogCkBAIC0xMTE0LDE3ICsxMjI0LDEwIEBAIGVtaXRfY29uc3Rf bGlzcF9vYmogKExpc3BfT2JqZWN0IG9iaikKICAgZW1pdF9jb21tZW50IChmb3JtYXRfc3RyaW5n ICgiY29uc3QgbGlzcCBvYmo6ICVzIiwKIAkJCSAgICAgICBTU0RBVEEgKEZwcmluMV90b19zdHJp bmcgKG9iaiwgUW5pbCkpKSk7CiAKLSAgaWYgKE5JTF9JU19aRVJPICYmIEVRIChvYmosIFFuaWwp KQorICBpZiAoRVEgKG9iaiwgUW5pbCkpCiAgICAgewogICAgICAgZ2NjX2ppdF9ydmFsdWUgKm47 Ci0jaWZkZWYgV0lERV9FTUFDU19JTlQKLSAgICAgIGVhc3NlcnQgKE5JTF9JU19aRVJPKTsKLSAg ICAgIG4gPSBlbWl0X3J2YWx1ZV9mcm9tX2xvbmdfbG9uZyAoMCk7Ci0jZWxzZQotICAgICAgbiA9 IGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21fcHRyIChjb21wLmN0eHQsCi0JCQkJCSAg ICAgICBjb21wLnZvaWRfcHRyX3R5cGUsCi0JCQkJCSAgICAgICBOVUxMKTsKLSNlbmRpZgorICAg ICAgbiA9IGVtaXRfcnZhbHVlX2Zyb21fbGlzcF93b3JkICgoTGlzcF9Xb3JkKSBpUW5pbCk7CiAg ICAgICByZXR1cm4gZW1pdF9jb2VyY2UgKGNvbXAubGlzcF9vYmpfdHlwZSwgbik7CiAgICAgfQog CkBAIC0xMzQ1LDE2ICsxNDQ4LDcgQEAgZW1pdF9tdmFyX3ZhbCAoTGlzcF9PYmplY3QgbXZhcikK IAkgIC8qIFdlIGNhbiBzdGlsbCBlbWl0IGRpcmVjdGx5IG9iamVjdHMgdGhhdCBhcmUgc2VsZi1j b250YWluZWQgaW4gYQogCSAgICAgd29yZCAocmVhZCBmaXhudW1zKS4gICovCiAJICBlbWl0X2Nv bW1lbnQgKFNTREFUQSAoRnByaW4xX3RvX3N0cmluZyAoY29uc3RhbnQsIFFuaWwpKSk7Ci0JICBn Y2Nfaml0X3J2YWx1ZSAqd29yZDsKLSNpZmRlZiBXSURFX0VNQUNTX0lOVAotCSAgd29yZCA9IGVt aXRfcnZhbHVlX2Zyb21fbG9uZ19sb25nIChjb25zdGFudCk7Ci0jZWxzZQotCSAgd29yZCA9Ci0J ICAgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21fcHRyIChjb21wLmN0eHQsCi0JCQkJ CQkgY29tcC52b2lkX3B0cl90eXBlLAotCQkJCQkJIFhMUCAoY29uc3RhbnQpKTsKLSNlbmRpZgot CSAgcmV0dXJuIGVtaXRfY29lcmNlIChjb21wLmxpc3Bfb2JqX3R5cGUsIHdvcmQpOworICAgICAg ICAgIHJldHVybiBlbWl0X3J2YWx1ZV9mcm9tX2xpc3Bfb2JqKGNvbnN0YW50KTsKIAl9CiAgICAg ICAvKiBPdGhlciBjb25zdCBvYmplY3RzIGFyZSBmZXRjaGVkIGZyb20gdGhlIHJlbG9jIGFycmF5 LiAgKi8KICAgICAgIHJldHVybiBlbWl0X2NvbnN0X2xpc3Bfb2JqIChjb25zdGFudCk7CkBAIC0y NTE4LDExICsyNjEyLDE2IEBAIGRlZmluZV9jYXN0X3VuaW9uICh2b2lkKQogCQkJICAgICAgIE5V TEwsCiAJCQkgICAgICAgY29tcC5saXNwX2NvbnNfcHRyX3R5cGUsCiAJCQkgICAgICAgImNvbnNf cHRyIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc19saXNwX29iaiA9CisgIGNvbXAuY2FzdF91bmlv bl9hc19saXNwX3dvcmQgPQogICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4 dCwKIAkJCSAgICAgICBOVUxMLAotCQkJICAgICAgIGNvbXAubGlzcF9vYmpfdHlwZSwKLQkJCSAg ICAgICAibGlzcF9vYmoiKTsKKwkJCSAgICAgICBjb21wLmxpc3Bfd29yZF90eXBlLAorCQkJICAg ICAgICJsaXNwX3dvcmQiKTsKKyAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bfd29yZF90YWcgPQor ICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bXAubGlzcF93b3JkX3RhZ190eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJs aXNwX3dvcmRfdGFnIik7CiAgIGNvbXAuY2FzdF91bmlvbl9hc19saXNwX29ial9wdHIgPQogICAg IGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKIAkJCSAgICAgICBOVUxMLApA QCAtMjU0Myw3ICsyNjQyLDggQEAgZGVmaW5lX2Nhc3RfdW5pb24gKHZvaWQpCiAgICAgICBjb21w LmNhc3RfdW5pb25fYXNfY19wLAogICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX3ZfcCwKICAgICAg IGNvbXAuY2FzdF91bmlvbl9hc19saXNwX2NvbnNfcHRyLAotICAgICAgY29tcC5jYXN0X3VuaW9u X2FzX2xpc3Bfb2JqLAorICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bfd29yZCwKKyAgICAg IGNvbXAuY2FzdF91bmlvbl9hc19saXNwX3dvcmRfdGFnLAogICAgICAgY29tcC5jYXN0X3VuaW9u X2FzX2xpc3Bfb2JqX3B0ciB9OwogICBjb21wLmNhc3RfdW5pb25fdHlwZSA9CiAgICAgZ2NjX2pp dF9jb250ZXh0X25ld191bmlvbl90eXBlIChjb21wLmN0eHQsCkBAIC0yODEwLDggKzI5MTAsOCBA QCBkZWZpbmVfYWRkMV9zdWIxICh2b2lkKQogCQkJCQkgIEdDQ19KSVRfQ09NUEFSSVNPTl9ORSwK IAkJCQkJICBuX2ZpeG51bSwKIAkJCQkJICBpID09IDAKLQkJCQkJICA/IGVtaXRfbW9zdF9wb3Np dGl2ZV9maXhudW0gKCkKLQkJCQkJICA6IGVtaXRfbW9zdF9uZWdhdGl2ZV9maXhudW0gKCkpKSwK KwkJCQkJICA/IGVtaXRfcnZhbHVlX2Zyb21fZW1hY3NfaW50IChNT1NUX1BPU0lUSVZFX0ZJWE5V TSkKKwkJCQkJICA6IGVtaXRfcnZhbHVlX2Zyb21fZW1hY3NfaW50IChNT1NUX05FR0FUSVZFX0ZJ WE5VTSkpKSwKIAlpbmxpbmVfYmxvY2ssCiAJZmNhbGxfYmxvY2spOwogCkBAIC0zMzA3LDkgKzM0 MDcsMzEgQEAgREVGVU4gKCJjb21wLS1pbml0LWN0eHQiLCBGY29tcF9faW5pdF9jdHh0LCBTY29t cF9faW5pdF9jdHh0LAogICBjb21wLmVtYWNzX3VpbnRfdHlwZSA9IGdjY19qaXRfY29udGV4dF9n ZXRfaW50X3R5cGUgKGNvbXAuY3R4dCwKIAkJCQkJCSAgICAgICBzaXplb2YgKEVNQUNTX1VJTlQp LAogCQkJCQkJICAgICAgIGZhbHNlKTsKLSAgLyogTm8gWExQIGlzIGVtaXR0ZWQgZm9yIG5vdyBz byBsZXRzIGRlZmluZSB0aGlzIGFsd2F5cyBhcyBpbnRlZ2VyCi0gICAgIGRpc3JlZ2FyZGluZyBM SVNQX1dPUkRTX0FSRV9QT0lOVEVSUyB2YWx1ZS4gICovCi0gIGNvbXAubGlzcF9vYmpfdHlwZSA9 IGNvbXAuZW1hY3NfaW50X3R5cGU7CisjaWYgTElTUF9XT1JEU19BUkVfUE9JTlRFUlMKKyAgY29t cC5saXNwX1hfcyA9IGdjY19qaXRfY29udGV4dF9uZXdfb3BhcXVlX3N0cnVjdCAoY29tcC5jdHh0 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiTGlzcF9YIik7CisgIGNvbXAubGlzcF9YID0gZ2NjX2ppdF9zdHJ1Y3RfYXNfdHlwZShjb21w Lmxpc3BfWF9zKTsKKyAgY29tcC5saXNwX3dvcmRfdHlwZSA9IGdjY19qaXRfdHlwZV9nZXRfcG9p bnRlcihjb21wLmxpc3BfWCk7CisjZWxzZQorICBjb21wLmxpc3Bfd29yZF90eXBlID0gY29tcC5l bWFjc19pbnRfdHlwZTsKKyNlbmRpZgorICBjb21wLmxpc3Bfd29yZF90YWdfdHlwZQorICAgID0g Z2NjX2ppdF9jb250ZXh0X2dldF9pbnRfdHlwZSAoY29tcC5jdHh0LCBzaXplb2YgKExpc3BfV29y ZF90YWcpLCBmYWxzZSk7CisjaWZkZWYgTElTUF9PQkpFQ1RfSVNfU1RSVUNUCisgIGNvbXAubGlz cF9vYmpfaSA9IGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5saXNwX3dvcmRfdHlwZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImkiKTsKKyAg Y29tcC5saXNwX29ial9zID0gZ2NjX2ppdF9jb250ZXh0X25ld19zdHJ1Y3RfdHlwZSAoY29tcC5j dHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiTGlzcF9PYmplY3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmY29tcC5saXNwX29ial9pKTsKKyAgY29tcC5saXNwX29ial90eXBl ID0gZ2NjX2ppdF9zdHJ1Y3RfYXNfdHlwZSAoY29tcC5saXNwX29ial9zKTsKKyNlbHNlCisgIGNv bXAubGlzcF9vYmpfdHlwZSA9IGNvbXAubGlzcF93b3JkX3R5cGU7CisjZW5kaWYKICAgY29tcC5s aXNwX29ial9wdHJfdHlwZSA9IGdjY19qaXRfdHlwZV9nZXRfcG9pbnRlciAoY29tcC5saXNwX29i al90eXBlKTsKICAgY29tcC5vbmUgPQogICAgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zy b21faW50IChjb21wLmN0eHQsCmRpZmYgLS1naXQgYS9zcmMvbGlzcC5oIGIvc3JjL2xpc3AuaApp bmRleCAzZDA4MjkxMWY1Li5lM2QxOTZlZjliIDEwMDY0NAotLS0gYS9zcmMvbGlzcC5oCisrKyBi L3NyYy9saXNwLmgKQEAgLTI5OSwxMiArMjk5LDEyIEBAICNkZWZpbmUgR0NBTElHTkVEKHR5cGUp IChhbGlnbm9mICh0eXBlKSAlIEdDQUxJR05NRU5UID09IDApCiAKIC8qIExpc3BfV29yZCBpcyBh IHNjYWxhciB3b3JkIHN1aXRhYmxlIGZvciBob2xkaW5nIGEgdGFnZ2VkIHBvaW50ZXIgb3IKICAg IGludGVnZXIuICBVc3VhbGx5IGl0IGlzIGEgcG9pbnRlciB0byBhIGRlbGliZXJhdGVseS1pbmNv bXBsZXRlIHR5cGUKLSAgICd1bmlvbiBMaXNwX1gnLiAgSG93ZXZlciwgaXQgaXMgRU1BQ1NfSU5U IHdoZW4gTGlzcF9PYmplY3RzIGFuZAorICAgJ3N0cnVjdCBMaXNwX1gnLiAgSG93ZXZlciwgaXQg aXMgRU1BQ1NfSU5UIHdoZW4gTGlzcF9PYmplY3RzIGFuZAogICAgcG9pbnRlcnMgZGlmZmVyIGlu IHdpZHRoLiAgKi8KIAogI2RlZmluZSBMSVNQX1dPUkRTX0FSRV9QT0lOVEVSUyAoRU1BQ1NfSU5U X01BWCA9PSBJTlRQVFJfTUFYKQogI2lmIExJU1BfV09SRFNfQVJFX1BPSU5URVJTCi10eXBlZGVm IHVuaW9uIExpc3BfWCAqTGlzcF9Xb3JkOwordHlwZWRlZiBzdHJ1Y3QgTGlzcF9YICpMaXNwX1dv cmQ7CiAjZWxzZQogdHlwZWRlZiBFTUFDU19JTlQgTGlzcF9Xb3JkOwogI2VuZGlmCkBAIC01NzMs NiArNTczLDcgQEAgI2RlZmluZSBFTlVNX0JGKFRZUEUpIGVudW0gVFlQRQogCiAjaWZkZWYgQ0hF Q0tfTElTUF9PQkpFQ1RfVFlQRQogdHlwZWRlZiBzdHJ1Y3QgTGlzcF9PYmplY3QgeyBMaXNwX1dv cmQgaTsgfSBMaXNwX09iamVjdDsKKyMgZGVmaW5lIExJU1BfT0JKRUNUX0lTX1NUUlVDVAogIyBk ZWZpbmUgTElTUF9JTklUSUFMTFkodykge3d9CiAjIHVuZGVmIENIRUNLX0xJU1BfT0JKRUNUX1RZ UEUKIGVudW0gQ0hFQ0tfTElTUF9PQkpFQ1RfVFlQRSB7IENIRUNLX0xJU1BfT0JKRUNUX1RZUEUg PSB0cnVlIH07Ci0tIAoyLjI1LjEud2luZG93cy4xCgo= --000000000000e9dc2405a58c90b2 Content-Type: application/octet-stream; name="0005-Remove-a-layer-of-indirection-for-access-to-pure-sto.patch" Content-Disposition: attachment; filename="0005-Remove-a-layer-of-indirection-for-access-to-pure-sto.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ka5qjdf54 RnJvbSA3MTczMDFiZjNmMWY3MzU2OTc2NWNjZDg4ZTE2MWM3M2MzM2M3MDAxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA4IE1heSAyMDIwIDE2OjIz OjEwIC0wMzAwClN1YmplY3Q6IFtQQVRDSCA1LzhdIFJlbW92ZSBhIGxheWVyIG9mIGluZGlyZWN0 aW9uIGZvciBhY2Nlc3MgdG8gcHVyZSBzdG9yYWdlLgoKKiBzcmMvY29tcC5jOiBUYWtpbmcgdGhl IGFkZHJlc3Mgb2YgYW4gYXJyYXkgaXMgdGhlIHNhbWUgYXMgY2FzdGluZyBpdAp0byBhIHBvaW50 ZXIuIFRoZXJlZm9yZSwgdGhlIEMgZXhwcmVzc2lvbiBgKEVNQUNTX0lOVCAqKikgJnB1cmVgIGlz IGluCmZhY3QgYWRkaW5nIGEgbGF5ZXIgb2YgaW5kaXJlY3Rpb24gdGhhdCBpcyBub3QgbmVjZXNz YXJ5LiBUaGUgZml4IGlzCnRvIGNhc3QgdGhlIGBwdXJlYCBhcnJheSB0byBhIHBvaW50ZXIgYW5k IHN0b3JlIHRoYXQgaW4gYSB2b2lkIHBvaW50ZXIKdGhhdCBpcyBwYXJ0IG9mIHRoZSBjb21waWxl ZCBzaGFyZWQgbGlicmFyeS4KLS0tCiBzcmMvY29tcC5jIHwgMTkgKysrKysrKysrLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2NvbXAuYyBiL3NyYy9jb21wLmMKaW5kZXggMGQ1ODgwYWQzYy4uNjk1MjVh Y2ZjMCAxMDA2NDQKLS0tIGEvc3JjL2NvbXAuYworKysgYi9zcmMvY29tcC5jCkBAIC0zOCw3ICsz OCw3IEBACiAKIC8qIEMgc3ltYm9scyBlbWl0dGVkIGZvciB0aGUgbG9hZCByZWxvY2F0aW9uIG1l Y2hhbmlzbS4gICovCiAjZGVmaW5lIENVUlJFTlRfVEhSRUFEX1JFTE9DX1NZTSAiY3VycmVudF90 aHJlYWRfcmVsb2MiCi0jZGVmaW5lIFBVUkVfUkVMT0NfU1lNICJwdXJlX3JlbG9jIgorI2RlZmlu ZSBQVVJFX1BUUl9TWU0gInB1cmVfcHRyIgogI2RlZmluZSBEQVRBX1JFTE9DX1NZTSAiZF9yZWxv YyIKICNkZWZpbmUgREFUQV9SRUxPQ19JTVBVUkVfU1lNICJkX3JlbG9jX2ltcCIKICNkZWZpbmUg REFUQV9SRUxPQ19FUEhFTUVSQUxfU1lNICJkX3JlbG9jX2VwaCIKQEAgLTE1Miw3ICsxNTIsNyBA QCAjZGVmaW5lIEZfUkVMT0NfTUFYX1NJWkUgMTUwMAogICBnY2Nfaml0X3R5cGUgKnRocmVhZF9z dGF0ZV9wdHJfdHlwZTsKICAgZ2NjX2ppdF9ydmFsdWUgKmN1cnJlbnRfdGhyZWFkX3JlZjsKICAg LyogT3RoZXIgZ2xvYmFscy4gICovCi0gIGdjY19qaXRfcnZhbHVlICpwdXJlX3JlZjsKKyAgZ2Nj X2ppdF9ydmFsdWUgKnB1cmVfcHRyOwogICAvKiBsaWJnY2NqaXQgaGFzIHJlYWxseSBsaW1pdGVk IHN1cHBvcnQgZm9yIGNhc3RpbmcgdGhlcmVmb3JlIHRoaXMgdW5pb24gd2lsbAogICAgICBiZSB1 c2VkIGZvciB0aGUgc2NvcGUuICAqLwogICBnY2Nfaml0X3R5cGUgKmNhc3RfdW5pb25fdHlwZTsK QEAgLTE0MTksOCArMTQxOSw3IEBAIGVtaXRfUFVSRV9QIChnY2Nfaml0X3J2YWx1ZSAqcHRyKQog CUdDQ19KSVRfQklOQVJZX09QX01JTlVTLAogCWNvbXAudWludHB0cl90eXBlLAogCXB0ciwKLQln Y2Nfaml0X2x2YWx1ZV9hc19ydmFsdWUgKAotCSAgZ2NjX2ppdF9ydmFsdWVfZGVyZWZlcmVuY2Ug KGNvbXAucHVyZV9yZWYsIE5VTEwpKSksCisgICAgICAgIGNvbXAucHVyZV9wdHIpLAogICAgICAg Z2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwKIAkJCQkJICAg Y29tcC51aW50cHRyX3R5cGUsCiAJCQkJCSAgIFBVUkVTSVpFKSk7CkBAIC0yMjQ0LDE0ICsyMjQz LDE0IEBAIGVtaXRfY3R4dF9jb2RlICh2b2lkKQogCWdjY19qaXRfdHlwZV9nZXRfcG9pbnRlciAo Y29tcC50aHJlYWRfc3RhdGVfcHRyX3R5cGUpLAogCUNVUlJFTlRfVEhSRUFEX1JFTE9DX1NZTSkp OwogCi0gIGNvbXAucHVyZV9yZWYgPQorICBjb21wLnB1cmVfcHRyID0KICAgICBnY2Nfaml0X2x2 YWx1ZV9hc19ydmFsdWUgKAogICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19nbG9iYWwgKAogCWNv bXAuY3R4dCwKIAlOVUxMLAogCUdDQ19KSVRfR0xPQkFMX0VYUE9SVEVELAotCWdjY19qaXRfdHlw ZV9nZXRfcG9pbnRlciAoY29tcC52b2lkX3B0cl90eXBlKSwKLQlQVVJFX1JFTE9DX1NZTSkpOwor ICAgICAgICBjb21wLnZvaWRfcHRyX3R5cGUsCisJUFVSRV9QVFJfU1lNKSk7CiAKICAgZ2NjX2pp dF9jb250ZXh0X25ld19nbG9iYWwgKAogCWNvbXAuY3R4dCwKQEAgLTM3NjcsMTMgKzM3NjYsMTMg QEAgbG9hZF9jb21wX3VuaXQgKHN0cnVjdCBMaXNwX05hdGl2ZV9Db21wX1VuaXQgKmNvbXBfdSwg Ym9vbCBsb2FkaW5nX2R1bXAsCiAgICAgewogICAgICAgc3RydWN0IHRocmVhZF9zdGF0ZSAqKipj dXJyZW50X3RocmVhZF9yZWxvYyA9CiAJZHlubGliX3N5bSAoaGFuZGxlLCBDVVJSRU5UX1RIUkVB RF9SRUxPQ19TWU0pOwotICAgICAgRU1BQ1NfSU5UICoqKnB1cmVfcmVsb2MgPSBkeW5saWJfc3lt IChoYW5kbGUsIFBVUkVfUkVMT0NfU1lNKTsKKyAgICAgIHZvaWQgKipwdXJlX3B0ciA9IGR5bmxp Yl9zeW0gKGhhbmRsZSwgUFVSRV9QVFJfU1lNKTsKICAgICAgIExpc3BfT2JqZWN0ICpkYXRhX3Jl bG9jcyA9IGR5bmxpYl9zeW0gKGhhbmRsZSwgREFUQV9SRUxPQ19TWU0pOwogICAgICAgTGlzcF9P YmplY3QgKmRhdGFfaW1wX3JlbG9jcyA9IGR5bmxpYl9zeW0gKGhhbmRsZSwgREFUQV9SRUxPQ19J TVBVUkVfU1lNKTsKICAgICAgIHZvaWQgKipmcmVsb2NfbGlua190YWJsZSA9IGR5bmxpYl9zeW0g KGhhbmRsZSwgRlVOQ19MSU5LX1RBQkxFX1NZTSk7CiAKICAgICAgIGlmICghKGN1cnJlbnRfdGhy ZWFkX3JlbG9jCi0JICAgICYmIHB1cmVfcmVsb2MKKwkgICAgJiYgcHVyZV9wdHIKIAkgICAgJiYg ZGF0YV9yZWxvY3MKIAkgICAgJiYgZGF0YV9pbXBfcmVsb2NzCiAJICAgICYmIGRhdGFfZXBoX3Jl bG9jcwpAQCAtMzc4NCw3ICszNzgzLDcgQEAgbG9hZF9jb21wX3VuaXQgKHN0cnVjdCBMaXNwX05h dGl2ZV9Db21wX1VuaXQgKmNvbXBfdSwgYm9vbCBsb2FkaW5nX2R1bXAsCiAJeHNpZ25hbDEgKFFu YXRpdmVfbGlzcF9maWxlX2luY29uc2lzdGVudCwgY29tcF91LT5maWxlKTsKIAogICAgICAgKmN1 cnJlbnRfdGhyZWFkX3JlbG9jID0gJmN1cnJlbnRfdGhyZWFkOwotICAgICAgKnB1cmVfcmVsb2Mg PSAoRU1BQ1NfSU5UICoqKSZwdXJlOworICAgICAgKnB1cmVfcHRyID0gcHVyZTsKIAogICAgICAg LyogSW1wb3J0ZWQgZnVuY3Rpb25zLiAgKi8KICAgICAgICpmcmVsb2NfbGlua190YWJsZSA9IGZy ZWxvYy5saW5rX3RhYmxlOwotLSAKMi4yNS4xLndpbmRvd3MuMQoK --000000000000e9dc2405a58c90b2 Content-Type: application/octet-stream; name="0006-Workaround-the-32768-chars-command-line-limit-in-Win.patch" Content-Disposition: attachment; filename="0006-Workaround-the-32768-chars-command-line-limit-in-Win.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ka5qjdfc5 RnJvbSA1Njc1OTRhMzVkNTczMDc4M2M5NGIyOGZkYmQ2YTI1MTA0NDg4MTIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA4IE1heSAyMDIwIDE0OjA0 OjA2IC0wMzAwClN1YmplY3Q6IFtQQVRDSCA2LzhdIFdvcmthcm91bmQgdGhlIDMyNzY4IGNoYXJz IGNvbW1hbmQgbGluZSBsaW1pdCBpbiBXaW5kb3dzLgoKKiBsaXNwL2VtYWNzLWxpc3AvY29tcC5l bCAoY29tcC1ydW4tYXN5bmMtd29ya2Vycyk6IFBhc3MgdGhlCmNvbXBpbGF0aW9uIGNvbW1hbmRz IHRocm91Z2ggYSB0ZW1wb3JhcnkgZmlsZSB0aGF0IGlzIGxvYWRlZCBieSB0aGUKY2hpbGQgcHJv Y2Vzcy4gVGhpcyBpcyBhbHNvIGRvbmUgYWxsIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zLCBldmVu CnRob3NlIHRoYXQgc3VwcG9ydCBsb25nIGNvbW1hbmQgbGluZXMuIEl0IHNob3VsZCBub3QgYmUg YSBwcm9ibGVtCnNpbmNlIGxpYmdjY2ppdCB1c2VzIHRlbXBvcmFyeSBmaWxlcyB0b28uCi0tLQog bGlzcC9lbWFjcy1saXNwL2NvbXAuZWwgfCA2ICsrKysrLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpc3AvZW1hY3MtbGlzcC9j b21wLmVsIGIvbGlzcC9lbWFjcy1saXNwL2NvbXAuZWwKaW5kZXggYzJhOTVmZWVjMS4uZDMyZjkz YTFlMSAxMDA2NDQKLS0tIGEvbGlzcC9lbWFjcy1saXNwL2NvbXAuZWwKKysrIGIvbGlzcC9lbWFj cy1saXNwL2NvbXAuZWwKQEAgLTIyMzksNiArMjIzOSw5IEBAIGNvbXAtcnVuLWFzeW5jLXdvcmtl cnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVzc2FnZSAiQ29tcGlsaW5nICVzLi4u IiAsc291cmNlLWZpbGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hdGl2ZS1jb21w aWxlICxzb3VyY2UtZmlsZSAsKGFuZCBsb2FkIHQpKSkpCiAgICAgICAgICAgICAgICAgICAgKHNv dXJjZS1maWxlMSBzb3VyY2UtZmlsZSkgOzsgTWFrZSB0aGUgY2xvc3VyZSB3b3JrcyA6LworICAg ICAgICAgICAgICAgICAgICh0ZW1wLWZpbGUgKG1ha2UtdGVtcC1maWxlCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNvbmNhdCAiZW1hY3MtYXN5bmMtY29tcC0iIChmaWxlLW5hbWUt YmFzZSBzb3VyY2UtZmlsZSkgIi0iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5p bCAiLmVsIiAocHJpbjEtdG8tc3RyaW5nIGV4cHIpKSkKICAgICAgICAgICAgICAgICAgICAobG9h ZDEgbG9hZCkKICAgICAgICAgICAgICAgICAgICAocHJvY2VzcyAobWFrZS1wcm9jZXNzCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDpuYW1lIChjb25jYXQgIkNvbXBpbGluZzogIiBzb3Vy Y2UtZmlsZSkKQEAgLTIyNDYsMTMgKzIyNDksMTQgQEAgY29tcC1ydW4tYXN5bmMtd29ya2Vycwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y29tbWFuZCAobGlzdAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV4cGFuZC1maWxlLW5hbWUgaW52b2NhdGlvbi1u YW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnZvY2F0aW9uLWRpcmVjdG9yeSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICItLWJhdGNoIiAiLS1ldmFsIiAocHJpbjEtdG8tc3RyaW5nIGV4cHIpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tYmF0Y2giICItbCIgdGVtcC1m aWxlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6c2VudGluZWwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxhbWJkYSAocHJvY2VzcyBfZXZlbnQpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHJ1bi1ob29rLXdpdGgtYXJncwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnY29tcC1hc3luYy1jdS1kb25lLWhvb2sKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc291cmNlLWZpbGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGFjY2VwdC1wcm9jZXNzLW91dHB1dCBwcm9jZXNzKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChpZ25vcmUtZXJyb3JzIChkZWxldGUtZmlsZSB0ZW1wLWZpbGUpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIChhbmQgbG9hZDEKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh6ZXJvcCAocHJvY2Vzcy1leGl0LXN0YXR1cyBw cm9jZXNzKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmF0aXZlLWVsaXNw LWxvYWQKLS0gCjIuMjUuMS53aW5kb3dzLjEKCg== --000000000000e9dc2405a58c90b2 Content-Type: application/octet-stream; name="0007-Load-libgccjit-dynamically-in-Windows.patch" Content-Disposition: attachment; filename="0007-Load-libgccjit-dynamically-in-Windows.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ka5qjdfj6 RnJvbSA1MTE5ODk4ZmJkMzQ3NzUyYzQ2YjA5ZGVlY2IyMzY1ZDZjN2ZjZTdmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMSBNYXkgMjAyMCAyMDo0 MzowNiAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggNy84XSBMb2FkIGxpYmdjY2ppdCBkeW5hbWljYWxs eSBpbiBXaW5kb3dzLgoKKiBjb25maWd1cmUuYWM6IGRvbid0IGFkZCBsaW5rZXIgZmxhZ3MgaWYg Y29tcGlsaW5nIG9uCldpbmRvd3MuIENvbXBpbGUgZHlubGliLmMgaWYgbW9kdWxlcyBvciBuYXRp dmUgY29tcGlsYXRpb24gYXJlCmVuYWJsZWQuIEFsd2F5cyBjb21waWxlIGNvbXAuYwoqIGxpc3Av dGVybS93MzItd2luLmVsOiBNYXAgJ2djY2ppdCB0byAibGliZ2Njaml0LmRsbCIgaW4KYGR5bmFt aWMtbGlicmFyeS1hbGlzdGAuCiogc3JjL01ha2VmaWxlLmluOiBVcGRhdGUgY29tbWVudHMuIFVw ZGF0ZSB0byBoYW5kbGUgY2hhbmdlcyBpbgpjb25maWd1cmUuYWMuCiogc3JjL2NvbXAuYzogQWRk IGRlY2xhcmF0aW9ucyBvZiB1c2VkIGxpYmdjY2ppdCBmdW5jdGlvbnMgdXNpbmcKREVGX0RMTF9G Ti4gQWRkIGNhbGxzIHRvIGxvYWRfZ2Njaml0X2lmX25lY2Vzc2FyeSgpIHdoZXJlIG5lY2Vzc2Fy eS4KQWRkIGBuYXRpdmUtY29tcC1hdmFpbGFibGUtcGAKKiBzcmMvY29tcC5oOiBSZW1vdmUgRm5h dGl2ZV9lbGlzcF9sb2FkLiBBZGQgc3ltc19vZl9jb21wKCkuCiogc3JjL2VtYWNzLmMgKG1haW4p OiBBbHdheXMgY2FsbCBzeW1zX29mX2NvbXAoKQoqIHNyYy93MzIuYyAoZ2xvYmFsc19vZl93MzIp OiBDbGVhciBWbGlicmFyeV9jYWNoZSB3aGVuIHN0YXJ0aW5nCmJlY2F1c2UgdGhlIGxpYnJhcmll cyBsb2FkZWQgd2hlbiBkdW1waW5nIHdpbGwgbm90IGJlIGxvYWRlZCB3aGVuCnN0YXJ0aW5nLgoq IHNyYy93MzJmbnMuYzogQWRkIFFnY2NqaXQgc3ltYm9sLgotLS0KIGNvbmZpZ3VyZS5hYyAgICAg ICAgIHwgIDE5ICsrLQogbGlzcC90ZXJtL3czMi13aW4uZWwgfCAgIDMgKy0KIHNyYy9NYWtlZmls ZS5pbiAgICAgIHwgICA5ICstCiBzcmMvY29tcC5jICAgICAgICAgICB8IDM3NCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBzcmMvY29tcC5oICAgICAgICAgICB8 ICAgNiArLQogc3JjL2VtYWNzLmMgICAgICAgICAgfCAgIDIgLQogc3JjL3czMi5jICAgICAgICAg ICAgfCAgIDQgKwogc3JjL3czMmZucy5jICAgICAgICAgfCAgIDEgKwogOCBmaWxlcyBjaGFuZ2Vk LCAzOTggaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29uZmln dXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDIzYjk0Y2Y2Y2EuLmVhMDE0NGY0MDQgMTAwNjQ0 Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTM2NjYsNiArMzY2Niw3 IEBAIEFDX0RFRlVOCiBMSUJNT0RVTEVTPQogSEFWRV9NT0RVTEVTPW5vCiBNT0RVTEVTX09CSj0K K05FRURfRFlOTElCPW5vCiBjYXNlICRvcHN5cyBpbgogICBjeWd3aW58bWluZ3czMikgTU9EVUxF U19TVUZGSVg9Ii5kbGwiIDs7CiAgIGRhcndpbikgTU9EVUxFU19TVUZGSVg9Ii5keWxpYiIgOzsK QEAgLTM3MDEsNyArMzcwMiw4IEBAIEFDX0RFRlVOCiBmaQogCiBpZiB0ZXN0ICIke0hBVkVfTU9E VUxFU30iID0geWVzOyB0aGVuCi0gICBNT0RVTEVTX09CSj0iZHlubGliLm8gZW1hY3MtbW9kdWxl Lm8iCisgICBNT0RVTEVTX09CSj0iZW1hY3MtbW9kdWxlLm8iCisgICBORUVEX0RZTkxJQj15ZXMK ICAgIEFDX0RFRklORShIQVZFX01PRFVMRVMsIDEsIFtEZWZpbmUgdG8gMSBpZiBkeW5hbWljIG1v ZHVsZXMgYXJlIGVuYWJsZWRdKQogICAgQUNfREVGSU5FX1VOUVVPVEVEKE1PRFVMRVNfU1VGRklY LCAiJE1PRFVMRVNfU1VGRklYIiwKICAgICAgW1N5c3RlbSBleHRlbnNpb24gZm9yIGR5bmFtaWMg bGlicmFyaWVzXSkKQEAgLTM3ODUsNyArMzc4Nyw2IEBAIEFDX0RFRlVOCiAKIEhBVkVfTkFUSVZF X0NPTVA9bm8KIExJQkdDQ0pJVF9MSUI9Ci1DT01QX09CSj0KIGlmIHRlc3QgIiR7d2l0aF9uYXRp dmVjb21wfSIgIT0gIm5vIjsgdGhlbgogICAgIGVtYWNzX3NhdmVfTElCUz0kTElCUwogICAgIExJ QlM9Ii1sZ2Njaml0IgpAQCAtMzc5Myw4ICszNzk0LDExIEBAIEFDX0RFRlVOCiAgICAgICBbQUNf TElOS19JRkVMU0UoW2xpYmdjY2ppdF9zbW9rZV90ZXN0XSwgW10sIFtsaWJnY2NqaXRfbm90X2Zv dW5kXSldKQogICAgIExJQlM9JGVtYWNzX3NhdmVfTElCUwogICAgIEhBVkVfTkFUSVZFX0NPTVA9 eWVzCi0gICAgTElCR0NDSklUX0xJQj0iLWxnY2NqaXQgLWxkbCIKLSAgICBDT01QX09CSj0iY29t cC5vIgorICAgICMgbWluZ3czMiBsb2FkcyB0aGUgbGlicmFyeSBkeW5hbWljYWxseS4KKyAgICBp ZiB0ZXN0ICIke29wc3lzfSIgIT0gIm1pbmd3MzIiOyB0aGVuCisgICAgICBMSUJHQ0NKSVRfTElC PSItbGdjY2ppdCAtbGRsIgorICAgIGZpCisgICAgTkVFRF9EWU5MSUI9eWVzCiAgICAgQUNfREVG SU5FKEhBVkVfTkFUSVZFX0NPTVAsIDEsIFtEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgbGli Z2Njaml0IGxpYnJhcnkgKC1sZ2Njaml0KS5dKQogZmkKIGlmIHRlc3QgIiR7SEFWRV9OQVRJVkVf Q09NUH0iID0geWVzICYmIHRlc3QgIiR7SEFWRV9QRFVNUEVSfSIgPSBubzsgdGhlbgpAQCAtMzgw NCw3ICszODA4LDEyIEBAIEFDX0RFRlVOCiAgIFtTeXN0ZW0gZXh0ZW5zaW9uIGZvciBuYXRpdmUg Y29tcGlsZWQgZWxpc3BdKQogQUNfU1VCU1QoSEFWRV9OQVRJVkVfQ09NUCkKIEFDX1NVQlNUKExJ QkdDQ0pJVF9MSUIpCi1BQ19TVUJTVChDT01QX09CSikKKworRFlOTElCX09CSj0KK2lmIHRlc3Qg IiR7TkVFRF9EWU5MSUJ9IiA9IHllczsgdGhlbgorICBEWU5MSUJfT0JKPSJkeW5saWIubyIKK2Zp CitBQ19TVUJTVChEWU5MSUJfT0JKKQogCiAjIyMgVXNlIC1scG5nIGlmIGF2YWlsYWJsZSwgdW5s ZXNzICctLXdpdGgtcG5nPW5vJy4KIEhBVkVfUE5HPW5vCmRpZmYgLS1naXQgYS9saXNwL3Rlcm0v dzMyLXdpbi5lbCBiL2xpc3AvdGVybS93MzItd2luLmVsCmluZGV4IDU5MDFlMDI5NWUuLjZiOTcx NmNhMzAgMTAwNjQ0Ci0tLSBhL2xpc3AvdGVybS93MzItd2luLmVsCisrKyBiL2xpc3AvdGVybS93 MzItd2luLmVsCkBAIC0yODksNyArMjg5LDggQEAgbGliZ251dGxzLXZlcnNpb24KICAgICAgICAn KGxpYnhtbDIgImxpYnhtbDItMi5kbGwiICJsaWJ4bWwyLmRsbCIpCiAgICAgICAgJyh6bGliICJ6 bGliMS5kbGwiICJsaWJ6LTEuZGxsIikKICAgICAgICAnKGxjbXMyICJsaWJsY21zMi0yLmRsbCIp Ci0gICAgICAgJyhqc29uICJsaWJqYW5zc29uLTQuZGxsIikpKQorICAgICAgICcoanNvbiAibGli amFuc3Nvbi00LmRsbCIpCisgICAgICAgJyhnY2NqaXQgImxpYmdjY2ppdC5kbGwiKSkpCiAKIDs7 OyBtdWx0aS10dHkgc3VwcG9ydAogKGRlZnZhciB3MzItaW5pdGlhbGl6ZWQgbmlsCmRpZmYgLS1n aXQgYS9zcmMvTWFrZWZpbGUuaW4gYi9zcmMvTWFrZWZpbGUuaW4KaW5kZXggNjNmOTA5YWUxNC4u ODU3MDkxODRkYSAxMDA2NDQKLS0tIGEvc3JjL01ha2VmaWxlLmluCisrKyBiL3NyYy9NYWtlZmls ZS5pbgpAQCAtMjQxLDcgKzI0MSw3IEBAIExJQlogPQogCiAjIyBzeXN0ZW0tc3BlY2lmaWMgbGli cyBmb3IgZHluYW1pYyBtb2R1bGVzLCBlbHNlIGVtcHR5CiBMSUJNT0RVTEVTID0gQExJQk1PRFVM RVNACi0jIyBkeW5saWIubyBlbWFjcy1tb2R1bGUubyBpZiBtb2R1bGVzIGVuYWJsZWQsIGVsc2Ug ZW1wdHkKKyMjIGVtYWNzLW1vZHVsZS5vIGlmIG1vZHVsZXMgZW5hYmxlZCwgZWxzZSBlbXB0eQog TU9EVUxFU19PQkogPSBATU9EVUxFU19PQkpACiAKIFhSQU5EUl9MSUJTID0gQFhSQU5EUl9MSUJT QApAQCAtMzI3LDggKzMyNyw5IEBAIEdNUF9MSUIgPQogR01QX09CSiA9IEBHTVBfT0JKQAogCiBM SUJHQ0NKSVQgPSBATElCR0NDSklUX0xJQkAKLSMjIGR5bmxpYi5vIGNvbXAubyBpZiBuYXRpdmUg Y29tcGlsZXIgaXMgZW5hYmxlZCwgb3RoZXJ3aXNlIGVtcHR5LgotQ09NUF9PQkogPSBAQ09NUF9P QkpACisKKyMjIGR5bmxpYi5vIGlmIG5lY2Vzc2FyeSwgZWxzZSBlbXB0eQorRFlOTElCX09CSiA9 IEBEWU5MSUJfT0JKQAogCiBSVU5fVEVNQUNTID0gLi90ZW1hY3MKIApAQCAtNDE4LDcgKzQxOSw3 IEBAIGJhc2Vfb2JqID0KIAljbWRzLm8gY2FzZXRhYi5vIGNhc2VmaWRkbGUubyBpbmRlbnQubyBz ZWFyY2gubyByZWdleC1lbWFjcy5vIHVuZG8ubyBcCiAJYWxsb2MubyBwZHVtcGVyLm8gZGF0YS5v IGRvYy5vIGVkaXRmbnMubyBjYWxsaW50Lm8gXAogCWV2YWwubyBmbG9hdGZucy5vIGZucy5vIGZv bnQubyBwcmludC5vIGxyZWFkLm8gJChNT0RVTEVTX09CSikgXAotCXN5bnRheC5vICQoVU5FWEVD X09CSikgYnl0ZWNvZGUubyAkKENPTVBfT0JKKSBcCisJc3ludGF4Lm8gJChVTkVYRUNfT0JKKSBi eXRlY29kZS5vIGNvbXAubyAkKERZTkxJQl9PQkopIFwKIAlwcm9jZXNzLm8gZ251dGxzLm8gY2Fs bHByb2MubyBcCiAJcmVnaW9uLWNhY2hlLm8gc291bmQubyB0aW1lZm5zLm8gYXRpbWVyLm8gXAog CWRvcHJudC5vIGludGVydmFscy5vIHRleHRwcm9wLm8gY29tcG9zaXRlLm8geG1sLm8gbGNtcy5v ICQoTk9USUZZX09CSikgXApkaWZmIC0tZ2l0IGEvc3JjL2NvbXAuYyBiL3NyYy9jb21wLmMKaW5k ZXggNjk1MjVhY2ZjMC4uYjQzZDNlZGRiMyAxMDA2NDQKLS0tIGEvc3JjL2NvbXAuYworKysgYi9z cmMvY29tcC5jCkBAIC0yMCw2ICsyMCw4IEBACiAKICNpbmNsdWRlIDxjb25maWcuaD4KIAorI2lu Y2x1ZGUgImxpc3AuaCIKKwogI2lmZGVmIEhBVkVfTkFUSVZFX0NPTVAKIAogI2luY2x1ZGUgPHNl dGptcC5oPgpAQCAtMjgsNyArMzAsNiBAQAogI2luY2x1ZGUgPHNpZ25hbC5oPgogI2luY2x1ZGUg PGxpYmdjY2ppdC5oPgogCi0jaW5jbHVkZSAibGlzcC5oIgogI2luY2x1ZGUgInB1cmVzaXplLmgi CiAjaW5jbHVkZSAid2luZG93LmgiCiAjaW5jbHVkZSAiZHlubGliLmgiCkBAIC0zNiw2ICszNywz NDcgQEAKICNpbmNsdWRlICJibG9ja2lucHV0LmgiCiAjaW5jbHVkZSAic2hhNTEyLmgiCiAKKwwK Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIER5bmFtaWMgbG9hZGluZyBv ZiBsaWJnY2NqaXQgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lm ZGVmIFdJTkRPV1NOVAorIyBpbmNsdWRlICJ3MzJjb21tb24uaCIKKworI3VuZGVmIGdjY19qaXRf YmxvY2tfYWRkX2Fzc2lnbm1lbnQKKyN1bmRlZiBnY2Nfaml0X2Jsb2NrX2FkZF9jb21tZW50Cisj dW5kZWYgZ2NjX2ppdF9ibG9ja19hZGRfZXZhbAorI3VuZGVmIGdjY19qaXRfYmxvY2tfZW5kX3dp dGhfY29uZGl0aW9uYWwKKyN1bmRlZiBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2p1bXAKKyN1bmRl ZiBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX3JldHVybgorI3VuZGVmIGdjY19qaXRfYmxvY2tfZW5k X3dpdGhfdm9pZF9yZXR1cm4KKyN1bmRlZiBnY2Nfaml0X2NvbnRleHRfYWNxdWlyZQorI3VuZGVm IGdjY19qaXRfY29udGV4dF9jb21waWxlX3RvX2ZpbGUKKyN1bmRlZiBnY2Nfaml0X2NvbnRleHRf ZHVtcF9yZXByb2R1Y2VyX3RvX2ZpbGUKKyN1bmRlZiBnY2Nfaml0X2NvbnRleHRfZHVtcF90b19m aWxlCisjdW5kZWYgZ2NjX2ppdF9jb250ZXh0X2dldF9idWlsdGluX2Z1bmN0aW9uCisjdW5kZWYg Z2NjX2ppdF9jb250ZXh0X2dldF9maXJzdF9lcnJvcgorI3VuZGVmIGdjY19qaXRfY29udGV4dF9n ZXRfaW50X3R5cGUKKyN1bmRlZiBnY2Nfaml0X2NvbnRleHRfZ2V0X3R5cGUKKyN1bmRlZiBnY2Nf aml0X2NvbnRleHRfbmV3X2FycmF5X2FjY2VzcworI3VuZGVmIGdjY19qaXRfY29udGV4dF9uZXdf YXJyYXlfdHlwZQorI3VuZGVmIGdjY19qaXRfY29udGV4dF9uZXdfYmluYXJ5X29wCisjdW5kZWYg Z2NjX2ppdF9jb250ZXh0X25ld19jYWxsCisjdW5kZWYgZ2NjX2ppdF9jb250ZXh0X25ld19jYWxs X3Rocm91Z2hfcHRyCisjdW5kZWYgZ2NjX2ppdF9jb250ZXh0X25ld19jb21wYXJpc29uCisjdW5k ZWYgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZAorI3VuZGVmIGdjY19qaXRfY29udGV4dF9uZXdf ZnVuY3Rpb24KKyN1bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3X2Z1bmN0aW9uX3B0cl90eXBlCisj dW5kZWYgZ2NjX2ppdF9jb250ZXh0X25ld19nbG9iYWwKKyN1bmRlZiBnY2Nfaml0X2NvbnRleHRf bmV3X29wYXF1ZV9zdHJ1Y3QKKyN1bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3X3BhcmFtCisjdW5k ZWYgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQKKyN1bmRlZiBnY2Nfaml0X2Nv bnRleHRfbmV3X3J2YWx1ZV9mcm9tX2xvbmcKKyN1bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3X3J2 YWx1ZV9mcm9tX3B0cgorI3VuZGVmIGdjY19qaXRfY29udGV4dF9uZXdfc3RydWN0X3R5cGUKKyN1 bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3X3VuYXJ5X29wCisjdW5kZWYgZ2NjX2ppdF9jb250ZXh0 X25ld191bmlvbl90eXBlCisjdW5kZWYgZ2NjX2ppdF9jb250ZXh0X3JlbGVhc2UKKyN1bmRlZiBn Y2Nfaml0X2NvbnRleHRfc2V0X2Jvb2xfb3B0aW9uCisjdW5kZWYgZ2NjX2ppdF9jb250ZXh0X3Nl dF9pbnRfb3B0aW9uCisjdW5kZWYgZ2NjX2ppdF9jb250ZXh0X3NldF9sb2dmaWxlCisjdW5kZWYg Z2NjX2ppdF9mdW5jdGlvbl9nZXRfcGFyYW0KKyN1bmRlZiBnY2Nfaml0X2Z1bmN0aW9uX25ld19i bG9jaworI3VuZGVmIGdjY19qaXRfZnVuY3Rpb25fbmV3X2xvY2FsCisjdW5kZWYgZ2NjX2ppdF9s dmFsdWVfYWNjZXNzX2ZpZWxkCisjdW5kZWYgZ2NjX2ppdF9sdmFsdWVfYXNfcnZhbHVlCisjdW5k ZWYgZ2NjX2ppdF9sdmFsdWVfZ2V0X2FkZHJlc3MKKyN1bmRlZiBnY2Nfaml0X3BhcmFtX2FzX2x2 YWx1ZQorI3VuZGVmIGdjY19qaXRfcGFyYW1fYXNfcnZhbHVlCisjdW5kZWYgZ2NjX2ppdF9ydmFs dWVfYWNjZXNzX2ZpZWxkCisjdW5kZWYgZ2NjX2ppdF9ydmFsdWVfZGVyZWZlcmVuY2UKKyN1bmRl ZiBnY2Nfaml0X3J2YWx1ZV9kZXJlZmVyZW5jZV9maWVsZAorI3VuZGVmIGdjY19qaXRfcnZhbHVl X2dldF90eXBlCisjdW5kZWYgZ2NjX2ppdF9zdHJ1Y3RfYXNfdHlwZQorI3VuZGVmIGdjY19qaXRf c3RydWN0X3NldF9maWVsZHMKKyN1bmRlZiBnY2Nfaml0X3R5cGVfZ2V0X3BvaW50ZXIKKworLyog SW4gYWxwaGFiZXRpY2FsIG9yZGVyICovCitERUZfRExMX0ZOIChnY2Nfaml0X3J2YWx1ZSAqLCBn Y2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCwKKyAgICAgICAgICAgIChnY2Nfaml0 X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfdHlwZSAqbnVtZXJpY190eXBlLCBpbnQgdmFsdWUpKTsK K0RFRl9ETExfRk4gKGdjY19qaXRfcnZhbHVlICosIGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSwK KyAgICAgICAgICAgIChnY2Nfaml0X2x2YWx1ZSAqbHZhbHVlKSk7CitERUZfRExMX0ZOIChnY2Nf aml0X3J2YWx1ZSAqLCBnY2Nfaml0X3J2YWx1ZV9hY2Nlc3NfZmllbGQsCisgICAgICAgICAgICAo Z2NjX2ppdF9ydmFsdWUgKnN0cnVjdF9vcl91bmlvbiwgZ2NjX2ppdF9sb2NhdGlvbiAqbG9jLAor ICAgICAgICAgICAgIGdjY19qaXRfZmllbGQgKmZpZWxkKSk7CitERUZfRExMX0ZOICh2b2lkLCBn Y2Nfaml0X2Jsb2NrX2FkZF9jb21tZW50LAorICAgICAgICAgICAgKGdjY19qaXRfYmxvY2sgKmJs b2NrLCBnY2Nfaml0X2xvY2F0aW9uICpsb2MsIGNvbnN0IGNoYXIgKnRleHQpKTsKK0RFRl9ETExf Rk4gKHZvaWQsIGdjY19qaXRfY29udGV4dF9yZWxlYXNlLCAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0 KSk7CitERUZfRExMX0ZOIChjb25zdCBjaGFyICosIGdjY19qaXRfY29udGV4dF9nZXRfZmlyc3Rf ZXJyb3IsCisgICAgICAgICAgICAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0KSk7CitERUZfRExMX0ZO IChnY2Nfaml0X2Jsb2NrICosIGdjY19qaXRfZnVuY3Rpb25fbmV3X2Jsb2NrLAorICAgICAgICAg ICAgKGdjY19qaXRfZnVuY3Rpb24gKmZ1bmMsIGNvbnN0IGNoYXIgKm5hbWUpKTsKK0RFRl9ETExf Rk4gKGdjY19qaXRfY29udGV4dCAqLCBnY2Nfaml0X2NvbnRleHRfYWNxdWlyZSwgKHZvaWQpKTsK K0RFRl9ETExfRk4gKGdjY19qaXRfZmllbGQgKiwgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCwK KyAgICAgICAgICAgIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfbG9jYXRpb24gKmxv YywgZ2NjX2ppdF90eXBlICp0eXBlLAorICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUpKTsK K0RFRl9ETExfRk4gKGdjY19qaXRfZnVuY3Rpb24gKiwgZ2NjX2ppdF9jb250ZXh0X2dldF9idWls dGluX2Z1bmN0aW9uLAorICAgICAgICAgICAgKGdjY19qaXRfY29udGV4dCAqY3R4dCwgY29uc3Qg Y2hhciAqbmFtZSkpOworREVGX0RMTF9GTiAoZ2NjX2ppdF9mdW5jdGlvbiAqLCBnY2Nfaml0X2Nv bnRleHRfbmV3X2Z1bmN0aW9uLAorICAgICAgICAgICAgKGdjY19qaXRfY29udGV4dCAqY3R4dCwg Z2NjX2ppdF9sb2NhdGlvbiAqbG9jLAorICAgICAgICAgICAgIGVudW0gZ2NjX2ppdF9mdW5jdGlv bl9raW5kIGtpbmQsIGdjY19qaXRfdHlwZSAqcmV0dXJuX3R5cGUsCisgICAgICAgICAgICAgY29u c3QgY2hhciAqbmFtZSwgaW50IG51bV9wYXJhbXMsIGdjY19qaXRfcGFyYW0gKipwYXJhbXMsCisg ICAgICAgICAgICAgaW50IGlzX3ZhcmlhZGljKSk7CitERUZfRExMX0ZOIChnY2Nfaml0X2x2YWx1 ZSAqLCBnY2Nfaml0X2NvbnRleHRfbmV3X2FycmF5X2FjY2VzcywKKyAgICAgICAgICAgIChnY2Nf aml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfbG9jYXRpb24gKmxvYywgZ2NjX2ppdF9ydmFsdWUg KnB0ciwKKyAgICAgICAgICAgICBnY2Nfaml0X3J2YWx1ZSAqaW5kZXgpKTsKK0RFRl9ETExfRk4g KGdjY19qaXRfbHZhbHVlICosIGdjY19qaXRfY29udGV4dF9uZXdfZ2xvYmFsLAorICAgICAgICAg ICAgKGdjY19qaXRfY29udGV4dCAqY3R4dCwgZ2NjX2ppdF9sb2NhdGlvbiAqbG9jLAorICAgICAg ICAgICAgIGVudW0gZ2NjX2ppdF9nbG9iYWxfa2luZCBraW5kLCBnY2Nfaml0X3R5cGUgKnR5cGUs CisgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkpOworREVGX0RMTF9GTiAoZ2NjX2ppdF9s dmFsdWUgKiwgZ2NjX2ppdF9mdW5jdGlvbl9uZXdfbG9jYWwsCisgICAgICAgICAgICAoZ2NjX2pp dF9mdW5jdGlvbiAqZnVuYywgZ2NjX2ppdF9sb2NhdGlvbiAqbG9jLCBnY2Nfaml0X3R5cGUgKnR5 cGUsCisgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSkpOworREVGX0RMTF9GTiAoZ2NjX2pp dF9sdmFsdWUgKiwgZ2NjX2ppdF9sdmFsdWVfYWNjZXNzX2ZpZWxkLAorICAgICAgICAgICAgKGdj Y19qaXRfbHZhbHVlICpzdHJ1Y3Rfb3JfdW5pb24sIGdjY19qaXRfbG9jYXRpb24gKmxvYywKKyAg ICAgICAgICAgICBnY2Nfaml0X2ZpZWxkICpmaWVsZCkpOworREVGX0RMTF9GTiAoZ2NjX2ppdF9s dmFsdWUgKiwgZ2NjX2ppdF9wYXJhbV9hc19sdmFsdWUsIChnY2Nfaml0X3BhcmFtICpwYXJhbSkp OworREVGX0RMTF9GTiAoZ2NjX2ppdF9sdmFsdWUgKiwgZ2NjX2ppdF9ydmFsdWVfZGVyZWZlcmVu Y2UsCisgICAgICAgICAgICAoZ2NjX2ppdF9ydmFsdWUgKnJ2YWx1ZSwgZ2NjX2ppdF9sb2NhdGlv biAqbG9jKSk7CitERUZfRExMX0ZOIChnY2Nfaml0X2x2YWx1ZSAqLCBnY2Nfaml0X3J2YWx1ZV9k ZXJlZmVyZW5jZV9maWVsZCwKKyAgICAgICAgICAgIChnY2Nfaml0X3J2YWx1ZSAqcHRyLCBnY2Nf aml0X2xvY2F0aW9uICpsb2MsIGdjY19qaXRfZmllbGQgKmZpZWxkKSk7CitERUZfRExMX0ZOIChn Y2Nfaml0X3BhcmFtICosIGdjY19qaXRfY29udGV4dF9uZXdfcGFyYW0sCisgICAgICAgICAgICAo Z2NjX2ppdF9jb250ZXh0ICpjdHh0LCBnY2Nfaml0X2xvY2F0aW9uICpsb2MsIGdjY19qaXRfdHlw ZSAqdHlwZSwKKyAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lKSk7CitERUZfRExMX0ZOIChn Y2Nfaml0X3BhcmFtICosIGdjY19qaXRfZnVuY3Rpb25fZ2V0X3BhcmFtLAorICAgICAgICAgICAg KGdjY19qaXRfZnVuY3Rpb24gKmZ1bmMsIGludCBpbmRleCkpOworREVGX0RMTF9GTiAoZ2NjX2pp dF9ydmFsdWUgKiwgZ2NjX2ppdF9jb250ZXh0X25ld19iaW5hcnlfb3AsCisgICAgICAgICAgICAo Z2NjX2ppdF9jb250ZXh0ICpjdHh0LCBnY2Nfaml0X2xvY2F0aW9uICpsb2MsCisgICAgICAgICAg ICAgZW51bSBnY2Nfaml0X2JpbmFyeV9vcCBvcCwgZ2NjX2ppdF90eXBlICpyZXN1bHRfdHlwZSwK KyAgICAgICAgICAgICBnY2Nfaml0X3J2YWx1ZSAqYSwgZ2NjX2ppdF9ydmFsdWUgKmIpKTsKK0RF Rl9ETExfRk4gKGdjY19qaXRfcnZhbHVlICosIGdjY19qaXRfY29udGV4dF9uZXdfY2FsbCwKKyAg ICAgICAgICAgIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfbG9jYXRpb24gKmxvYywK KyAgICAgICAgICAgICBnY2Nfaml0X2Z1bmN0aW9uICpmdW5jLCBpbnQgbnVtYXJncyAsIGdjY19q aXRfcnZhbHVlICoqYXJncykpOworREVGX0RMTF9GTiAoZ2NjX2ppdF9ydmFsdWUgKiwgZ2NjX2pp dF9jb250ZXh0X25ld19jYWxsX3Rocm91Z2hfcHRyLAorICAgICAgICAgICAgKGdjY19qaXRfY29u dGV4dCAqY3R4dCwgZ2NjX2ppdF9sb2NhdGlvbiAqbG9jLAorICAgICAgICAgICAgIGdjY19qaXRf cnZhbHVlICpmbl9wdHIsIGludCBudW1hcmdzLCBnY2Nfaml0X3J2YWx1ZSAqKmFyZ3MpKTsKK0RF Rl9ETExfRk4gKGdjY19qaXRfcnZhbHVlICosIGdjY19qaXRfY29udGV4dF9uZXdfY29tcGFyaXNv biwKKyAgICAgICAgICAgIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfbG9jYXRpb24g KmxvYywKKyAgICAgICAgICAgICBlbnVtIGdjY19qaXRfY29tcGFyaXNvbiBvcCwgZ2NjX2ppdF9y dmFsdWUgKmEsIGdjY19qaXRfcnZhbHVlICpiKSk7CitERUZfRExMX0ZOIChnY2Nfaml0X3J2YWx1 ZSAqLCBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2xvbmcsCisgICAgICAgICAgICAo Z2NjX2ppdF9jb250ZXh0ICpjdHh0LCBnY2Nfaml0X3R5cGUgKm51bWVyaWNfdHlwZSwgbG9uZyB2 YWx1ZSkpOworREVGX0RMTF9GTiAoZ2NjX2ppdF9ydmFsdWUgKiwgZ2NjX2ppdF9jb250ZXh0X25l d19ydmFsdWVfZnJvbV9wdHIsCisgICAgICAgICAgICAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LCBn Y2Nfaml0X3R5cGUgKnBvaW50ZXJfdHlwZSwgdm9pZCAqdmFsdWUpKTsKK0RFRl9ETExfRk4gKGdj Y19qaXRfcnZhbHVlICosIGdjY19qaXRfY29udGV4dF9uZXdfdW5hcnlfb3AsCisgICAgICAgICAg ICAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LCBnY2Nfaml0X2xvY2F0aW9uICpsb2MsCisgICAgICAg ICAgICAgZW51bSBnY2Nfaml0X3VuYXJ5X29wIG9wLCBnY2Nfaml0X3R5cGUgKnJlc3VsdF90eXBl LAorICAgICAgICAgICAgIGdjY19qaXRfcnZhbHVlICpydmFsdWUpKTsKK0RFRl9ETExfRk4gKGdj Y19qaXRfcnZhbHVlICosIGdjY19qaXRfbHZhbHVlX2dldF9hZGRyZXNzLAorICAgICAgICAgICAg KGdjY19qaXRfbHZhbHVlICpsdmFsdWUsIGdjY19qaXRfbG9jYXRpb24gKmxvYykpOworREVGX0RM TF9GTiAoZ2NjX2ppdF9ydmFsdWUgKiwgZ2NjX2ppdF9wYXJhbV9hc19ydmFsdWUsIChnY2Nfaml0 X3BhcmFtICpwYXJhbSkpOworREVGX0RMTF9GTiAoZ2NjX2ppdF9zdHJ1Y3QgKiwgZ2NjX2ppdF9j b250ZXh0X25ld19vcGFxdWVfc3RydWN0LAorICAgICAgICAgICAgKGdjY19qaXRfY29udGV4dCAq Y3R4dCwgZ2NjX2ppdF9sb2NhdGlvbiAqbG9jLCBjb25zdCBjaGFyICpuYW1lKSk7CitERUZfRExM X0ZOIChnY2Nfaml0X3N0cnVjdCAqLCBnY2Nfaml0X2NvbnRleHRfbmV3X3N0cnVjdF90eXBlLAor ICAgICAgICAgICAgKGdjY19qaXRfY29udGV4dCAqY3R4dCwgZ2NjX2ppdF9sb2NhdGlvbiAqbG9j LCBjb25zdCBjaGFyICpuYW1lLAorICAgICAgICAgICAgIGludCBudW1fZmllbGRzLCBnY2Nfaml0 X2ZpZWxkICoqZmllbGRzKSk7CitERUZfRExMX0ZOIChnY2Nfaml0X3R5cGUgKiwgZ2NjX2ppdF9j b250ZXh0X2dldF9pbnRfdHlwZSwKKyAgICAgICAgICAgIChnY2Nfaml0X2NvbnRleHQgKmN0eHQs IGludCBudW1fYnl0ZXMsIGludCBpc19zaWduZWQpKTsKK0RFRl9ETExfRk4gKGdjY19qaXRfdHlw ZSAqLCBnY2Nfaml0X2NvbnRleHRfZ2V0X3R5cGUsCisgICAgICAgICAgICAoZ2NjX2ppdF9jb250 ZXh0ICpjdHh0LCBlbnVtIGdjY19qaXRfdHlwZXMgdHlwZV8pKTsKK0RFRl9ETExfRk4gKGdjY19q aXRfdHlwZSAqLCBnY2Nfaml0X2NvbnRleHRfbmV3X2FycmF5X3R5cGUsCisgICAgICAgICAgICAo Z2NjX2ppdF9jb250ZXh0ICpjdHh0LCBnY2Nfaml0X2xvY2F0aW9uICpsb2MsCisgICAgICAgICAg ICAgZ2NjX2ppdF90eXBlICplbGVtZW50X3R5cGUsIGludCBudW1fZWxlbWVudHMpKTsKK0RFRl9E TExfRk4gKGdjY19qaXRfdHlwZSAqLCBnY2Nfaml0X2NvbnRleHRfbmV3X2Z1bmN0aW9uX3B0cl90 eXBlLAorICAgICAgICAgICAgKGdjY19qaXRfY29udGV4dCAqY3R4dCwgZ2NjX2ppdF9sb2NhdGlv biAqbG9jLAorICAgICAgICAgICAgIGdjY19qaXRfdHlwZSAqcmV0dXJuX3R5cGUsIGludCBudW1f cGFyYW1zLAorICAgICAgICAgICAgIGdjY19qaXRfdHlwZSAqKnBhcmFtX3R5cGVzLCBpbnQgaXNf dmFyaWFkaWMpKTsKK0RFRl9ETExfRk4gKGdjY19qaXRfdHlwZSAqLCBnY2Nfaml0X2NvbnRleHRf bmV3X3VuaW9uX3R5cGUsCisgICAgICAgICAgICAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LCBnY2Nf aml0X2xvY2F0aW9uICpsb2MsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgICAgICAgICAgaW50IG51 bV9maWVsZHMsIGdjY19qaXRfZmllbGQgKipmaWVsZHMpKTsKK0RFRl9ETExfRk4gKGdjY19qaXRf dHlwZSAqLCBnY2Nfaml0X3J2YWx1ZV9nZXRfdHlwZSwgKGdjY19qaXRfcnZhbHVlICpydmFsdWUp KTsKK0RFRl9ETExfRk4gKGdjY19qaXRfdHlwZSAqLCBnY2Nfaml0X3N0cnVjdF9hc190eXBlLAor ICAgICAgICAgICAgKGdjY19qaXRfc3RydWN0ICpzdHJ1Y3RfdHlwZSkpOworREVGX0RMTF9GTiAo Z2NjX2ppdF90eXBlICosIGdjY19qaXRfdHlwZV9nZXRfcG9pbnRlciwgKGdjY19qaXRfdHlwZSAq dHlwZSkpOworREVGX0RMTF9GTiAodm9pZCwgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCwK KyAgICAgICAgICAgIChnY2Nfaml0X2Jsb2NrICpibG9jaywgZ2NjX2ppdF9sb2NhdGlvbiAqbG9j LCBnY2Nfaml0X2x2YWx1ZSAqbHZhbHVlLAorICAgICAgICAgICAgIGdjY19qaXRfcnZhbHVlICpy dmFsdWUpKTsKK0RFRl9ETExfRk4gKHZvaWQsIGdjY19qaXRfYmxvY2tfYWRkX2V2YWwsCisgICAg ICAgICAgICAoZ2NjX2ppdF9ibG9jayAqYmxvY2ssIGdjY19qaXRfbG9jYXRpb24gKmxvYywKKyAg ICAgICAgICAgICBnY2Nfaml0X3J2YWx1ZSAqcnZhbHVlKSk7CitERUZfRExMX0ZOICh2b2lkLCBn Y2Nfaml0X2Jsb2NrX2VuZF93aXRoX2NvbmRpdGlvbmFsLAorICAgICAgICAgICAgKGdjY19qaXRf YmxvY2sgKmJsb2NrLCBnY2Nfaml0X2xvY2F0aW9uICpsb2MsCisgICAgICAgICAgICAgZ2NjX2pp dF9ydmFsdWUgKmJvb2x2YWwsIGdjY19qaXRfYmxvY2sgKm9uX3RydWUsCisgICAgICAgICAgICAg Z2NjX2ppdF9ibG9jayAqb25fZmFsc2UpKTsKK0RFRl9ETExfRk4gKHZvaWQsIGdjY19qaXRfYmxv Y2tfZW5kX3dpdGhfanVtcCwKKyAgICAgICAgICAgIChnY2Nfaml0X2Jsb2NrICpibG9jaywgZ2Nj X2ppdF9sb2NhdGlvbiAqbG9jLAorICAgICAgICAgICAgIGdjY19qaXRfYmxvY2sgKnRhcmdldCkp OworREVGX0RMTF9GTiAodm9pZCwgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9yZXR1cm4sCisgICAg ICAgICAgICAoZ2NjX2ppdF9ibG9jayAqYmxvY2ssIGdjY19qaXRfbG9jYXRpb24gKmxvYywKKyAg ICAgICAgICAgICBnY2Nfaml0X3J2YWx1ZSAqcnZhbHVlKSk7CitERUZfRExMX0ZOICh2b2lkLCBn Y2Nfaml0X2Jsb2NrX2VuZF93aXRoX3ZvaWRfcmV0dXJuLAorICAgICAgICAgICAgKGdjY19qaXRf YmxvY2sgKmJsb2NrLCBnY2Nfaml0X2xvY2F0aW9uICpsb2MpKTsKK0RFRl9ETExfRk4gKHZvaWQs IGdjY19qaXRfY29udGV4dF9jb21waWxlX3RvX2ZpbGUsCisgICAgICAgICAgICAoZ2NjX2ppdF9j b250ZXh0ICpjdHh0LCBlbnVtIGdjY19qaXRfb3V0cHV0X2tpbmQgb3V0cHV0X2tpbmQsCisgICAg ICAgICAgICAgY29uc3QgY2hhciAqb3V0cHV0X3BhdGgpKTsKK0RFRl9ETExfRk4gKHZvaWQsIGdj Y19qaXRfY29udGV4dF9kdW1wX3JlcHJvZHVjZXJfdG9fZmlsZSwKKyAgICAgICAgICAgIChnY2Nf aml0X2NvbnRleHQgKmN0eHQsIGNvbnN0IGNoYXIgKnBhdGgpKTsKK0RFRl9ETExfRk4gKHZvaWQs IGdjY19qaXRfY29udGV4dF9kdW1wX3RvX2ZpbGUsCisgICAgICAgICAgICAoZ2NjX2ppdF9jb250 ZXh0ICpjdHh0LCBjb25zdCBjaGFyICpwYXRoLCBpbnQgdXBkYXRlX2xvY2F0aW9ucykpOworREVG X0RMTF9GTiAodm9pZCwgZ2NjX2ppdF9jb250ZXh0X3NldF9ib29sX29wdGlvbiwKKyAgICAgICAg ICAgIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGVudW0gZ2NjX2ppdF9ib29sX29wdGlvbiBvcHQs IGludCB2YWx1ZSkpOworREVGX0RMTF9GTiAodm9pZCwgZ2NjX2ppdF9jb250ZXh0X3NldF9pbnRf b3B0aW9uLAorICAgICAgICAgICAgKGdjY19qaXRfY29udGV4dCAqY3R4dCwgZW51bSBnY2Nfaml0 X2ludF9vcHRpb24gb3B0LCBpbnQgdmFsdWUpKTsKK0RFRl9ETExfRk4gKHZvaWQsIGdjY19qaXRf Y29udGV4dF9zZXRfbG9nZmlsZSwKKyAgICAgICAgICAgIChnY2Nfaml0X2NvbnRleHQgKmN0eHQs IEZJTEUgKmxvZ2ZpbGUsIGludCBmbGFncywgaW50IHZlcmJvc2l0eSkpOworREVGX0RMTF9GTiAo dm9pZCwgZ2NjX2ppdF9zdHJ1Y3Rfc2V0X2ZpZWxkcywKKyAgICAgICAgICAgIChnY2Nfaml0X3N0 cnVjdCAqc3RydWN0X3R5cGUsIGdjY19qaXRfbG9jYXRpb24gKmxvYywgaW50IG51bV9maWVsZHMs CisgICAgICAgICAgICAgZ2NjX2ppdF9maWVsZCAqKmZpZWxkcykpOworCitzdGF0aWMgYm9vbAor aW5pdF9nY2NqaXRfZnVuY3Rpb25zICh2b2lkKQoreworICBITU9EVUxFIGxpYnJhcnk7CisKKyAg aWYgKCEobGlicmFyeSA9IHczMl9kZWxheWVkX2xvYWQgKFFnY2NqaXQpKSkKKyAgICB7CisgICAg ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgIC8qIEluIGFscGhhYmV0aWNhbCBvcmRlciAqLwor ICBMT0FEX0RMTF9GTihsaWJyYXJ5LCBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50KTsKKyAg TE9BRF9ETExfRk4obGlicmFyeSwgZ2NjX2ppdF9ibG9ja19hZGRfY29tbWVudCk7CisgIExPQURf RExMX0ZOKGxpYnJhcnksIGdjY19qaXRfYmxvY2tfYWRkX2V2YWwpOworICBMT0FEX0RMTF9GTihs aWJyYXJ5LCBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2NvbmRpdGlvbmFsKTsKKyAgTE9BRF9ETExf Rk4obGlicmFyeSwgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9qdW1wKTsKKyAgTE9BRF9ETExfRk4o bGlicmFyeSwgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9yZXR1cm4pOworICBMT0FEX0RMTF9GTihs aWJyYXJ5LCBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX3ZvaWRfcmV0dXJuKTsKKyAgTE9BRF9ETExf Rk4obGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X2FjcXVpcmUpOworICBMT0FEX0RMTF9GTihsaWJy YXJ5LCBnY2Nfaml0X2NvbnRleHRfY29tcGlsZV90b19maWxlKTsKKyAgTE9BRF9ETExfRk4obGli cmFyeSwgZ2NjX2ppdF9jb250ZXh0X2R1bXBfcmVwcm9kdWNlcl90b19maWxlKTsKKyAgTE9BRF9E TExfRk4obGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X2R1bXBfdG9fZmlsZSk7CisgIExPQURfRExM X0ZOKGxpYnJhcnksIGdjY19qaXRfY29udGV4dF9nZXRfYnVpbHRpbl9mdW5jdGlvbik7CisgIExP QURfRExMX0ZOKGxpYnJhcnksIGdjY19qaXRfY29udGV4dF9nZXRfZmlyc3RfZXJyb3IpOworICBM T0FEX0RMTF9GTihsaWJyYXJ5LCBnY2Nfaml0X2NvbnRleHRfZ2V0X2ludF90eXBlKTsKKyAgTE9B RF9ETExfRk4obGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlKTsKKyAgTE9BRF9ETExf Rk4obGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld19hcnJheV9hY2Nlc3MpOworICBMT0FEX0RM TF9GTihsaWJyYXJ5LCBnY2Nfaml0X2NvbnRleHRfbmV3X2FycmF5X3R5cGUpOworICBMT0FEX0RM TF9GTihsaWJyYXJ5LCBnY2Nfaml0X2NvbnRleHRfbmV3X2JpbmFyeV9vcCk7CisgIExPQURfRExM X0ZOKGxpYnJhcnksIGdjY19qaXRfY29udGV4dF9uZXdfY2FsbCk7CisgIExPQURfRExMX0ZOKGxp YnJhcnksIGdjY19qaXRfY29udGV4dF9uZXdfY2FsbF90aHJvdWdoX3B0cik7CisgIExPQURfRExM X0ZOKGxpYnJhcnksIGdjY19qaXRfY29udGV4dF9uZXdfY29tcGFyaXNvbik7CisgIExPQURfRExM X0ZOKGxpYnJhcnksIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQpOworICBMT0FEX0RMTF9GTihs aWJyYXJ5LCBnY2Nfaml0X2NvbnRleHRfbmV3X2Z1bmN0aW9uKTsKKyAgTE9BRF9ETExfRk4obGli cmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld19mdW5jdGlvbl9wdHJfdHlwZSk7CisgIExPQURfRExM X0ZOKGxpYnJhcnksIGdjY19qaXRfY29udGV4dF9uZXdfZ2xvYmFsKTsKKyAgTE9BRF9ETExfRk4o bGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld19vcGFxdWVfc3RydWN0KTsKKyAgTE9BRF9ETExf Rk4obGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld19wYXJhbSk7CisgIExPQURfRExMX0ZOKGxp YnJhcnksIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21faW50KTsKKyAgTE9BRF9ETExf Rk4obGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9sb25nKTsKKyAgTE9B RF9ETExfRk4obGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9wdHIpOwor ICBMT0FEX0RMTF9GTihsaWJyYXJ5LCBnY2Nfaml0X2NvbnRleHRfbmV3X3N0cnVjdF90eXBlKTsK KyAgTE9BRF9ETExfRk4obGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld191bmFyeV9vcCk7Cisg IExPQURfRExMX0ZOKGxpYnJhcnksIGdjY19qaXRfY29udGV4dF9uZXdfdW5pb25fdHlwZSk7Cisg IExPQURfRExMX0ZOKGxpYnJhcnksIGdjY19qaXRfY29udGV4dF9yZWxlYXNlKTsKKyAgTE9BRF9E TExfRk4obGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X3NldF9ib29sX29wdGlvbik7CisgIExPQURf RExMX0ZOKGxpYnJhcnksIGdjY19qaXRfY29udGV4dF9zZXRfaW50X29wdGlvbik7CisgIExPQURf RExMX0ZOKGxpYnJhcnksIGdjY19qaXRfY29udGV4dF9zZXRfbG9nZmlsZSk7CisgIExPQURfRExM X0ZOKGxpYnJhcnksIGdjY19qaXRfZnVuY3Rpb25fZ2V0X3BhcmFtKTsKKyAgTE9BRF9ETExfRk4o bGlicmFyeSwgZ2NjX2ppdF9mdW5jdGlvbl9uZXdfYmxvY2spOworICBMT0FEX0RMTF9GTihsaWJy YXJ5LCBnY2Nfaml0X2Z1bmN0aW9uX25ld19sb2NhbCk7CisgIExPQURfRExMX0ZOKGxpYnJhcnks IGdjY19qaXRfbHZhbHVlX2FjY2Vzc19maWVsZCk7CisgIExPQURfRExMX0ZOKGxpYnJhcnksIGdj Y19qaXRfbHZhbHVlX2FzX3J2YWx1ZSk7CisgIExPQURfRExMX0ZOKGxpYnJhcnksIGdjY19qaXRf bHZhbHVlX2dldF9hZGRyZXNzKTsKKyAgTE9BRF9ETExfRk4obGlicmFyeSwgZ2NjX2ppdF9wYXJh bV9hc19sdmFsdWUpOworICBMT0FEX0RMTF9GTihsaWJyYXJ5LCBnY2Nfaml0X3BhcmFtX2FzX3J2 YWx1ZSk7CisgIExPQURfRExMX0ZOKGxpYnJhcnksIGdjY19qaXRfcnZhbHVlX2FjY2Vzc19maWVs ZCk7CisgIExPQURfRExMX0ZOKGxpYnJhcnksIGdjY19qaXRfcnZhbHVlX2RlcmVmZXJlbmNlKTsK KyAgTE9BRF9ETExfRk4obGlicmFyeSwgZ2NjX2ppdF9ydmFsdWVfZGVyZWZlcmVuY2VfZmllbGQp OworICBMT0FEX0RMTF9GTihsaWJyYXJ5LCBnY2Nfaml0X3J2YWx1ZV9nZXRfdHlwZSk7CisgIExP QURfRExMX0ZOKGxpYnJhcnksIGdjY19qaXRfc3RydWN0X2FzX3R5cGUpOworICBMT0FEX0RMTF9G TihsaWJyYXJ5LCBnY2Nfaml0X3N0cnVjdF9zZXRfZmllbGRzKTsKKyAgTE9BRF9ETExfRk4obGli cmFyeSwgZ2NjX2ppdF90eXBlX2dldF9wb2ludGVyKTsKKworICByZXR1cm4gdHJ1ZTsKK30KKwor LyogSW4gYWxwaGFiZXRpY2FsIG9yZGVyICovCisjZGVmaW5lIGdjY19qaXRfYmxvY2tfYWRkX2Fz c2lnbm1lbnQgZm5fZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudAorI2RlZmluZSBnY2Nfaml0 X2Jsb2NrX2FkZF9jb21tZW50IGZuX2djY19qaXRfYmxvY2tfYWRkX2NvbW1lbnQKKyNkZWZpbmUg Z2NjX2ppdF9ibG9ja19hZGRfZXZhbCBmbl9nY2Nfaml0X2Jsb2NrX2FkZF9ldmFsCisjZGVmaW5l IGdjY19qaXRfYmxvY2tfZW5kX3dpdGhfY29uZGl0aW9uYWwgZm5fZ2NjX2ppdF9ibG9ja19lbmRf d2l0aF9jb25kaXRpb25hbAorI2RlZmluZSBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2p1bXAgZm5f Z2NjX2ppdF9ibG9ja19lbmRfd2l0aF9qdW1wCisjZGVmaW5lIGdjY19qaXRfYmxvY2tfZW5kX3dp dGhfcmV0dXJuIGZuX2djY19qaXRfYmxvY2tfZW5kX3dpdGhfcmV0dXJuCisjZGVmaW5lIGdjY19q aXRfYmxvY2tfZW5kX3dpdGhfdm9pZF9yZXR1cm4gZm5fZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF92 b2lkX3JldHVybgorI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfYWNxdWlyZSBmbl9nY2Nfaml0X2Nv bnRleHRfYWNxdWlyZQorI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfY29tcGlsZV90b19maWxlIGZu X2djY19qaXRfY29udGV4dF9jb21waWxlX3RvX2ZpbGUKKyNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0 X2R1bXBfcmVwcm9kdWNlcl90b19maWxlIGZuX2djY19qaXRfY29udGV4dF9kdW1wX3JlcHJvZHVj ZXJfdG9fZmlsZQorI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfZHVtcF90b19maWxlIGZuX2djY19q aXRfY29udGV4dF9kdW1wX3RvX2ZpbGUKKyNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0X2dldF9idWls dGluX2Z1bmN0aW9uIGZuX2djY19qaXRfY29udGV4dF9nZXRfYnVpbHRpbl9mdW5jdGlvbgorI2Rl ZmluZSBnY2Nfaml0X2NvbnRleHRfZ2V0X2ZpcnN0X2Vycm9yIGZuX2djY19qaXRfY29udGV4dF9n ZXRfZmlyc3RfZXJyb3IKKyNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0X2dldF9pbnRfdHlwZSBmbl9n Y2Nfaml0X2NvbnRleHRfZ2V0X2ludF90eXBlCisjZGVmaW5lIGdjY19qaXRfY29udGV4dF9nZXRf dHlwZSBmbl9nY2Nfaml0X2NvbnRleHRfZ2V0X3R5cGUKKyNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0 X25ld19hcnJheV9hY2Nlc3MgZm5fZ2NjX2ppdF9jb250ZXh0X25ld19hcnJheV9hY2Nlc3MKKyNk ZWZpbmUgZ2NjX2ppdF9jb250ZXh0X25ld19hcnJheV90eXBlIGZuX2djY19qaXRfY29udGV4dF9u ZXdfYXJyYXlfdHlwZQorI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X2JpbmFyeV9vcCBmbl9n Y2Nfaml0X2NvbnRleHRfbmV3X2JpbmFyeV9vcAorI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3 X2NhbGwgZm5fZ2NjX2ppdF9jb250ZXh0X25ld19jYWxsCisjZGVmaW5lIGdjY19qaXRfY29udGV4 dF9uZXdfY2FsbF90aHJvdWdoX3B0ciBmbl9nY2Nfaml0X2NvbnRleHRfbmV3X2NhbGxfdGhyb3Vn aF9wdHIKKyNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0X25ld19jb21wYXJpc29uIGZuX2djY19qaXRf Y29udGV4dF9uZXdfY29tcGFyaXNvbgorI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X2ZpZWxk IGZuX2djY19qaXRfY29udGV4dF9uZXdfZmllbGQKKyNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0X25l d19mdW5jdGlvbiBmbl9nY2Nfaml0X2NvbnRleHRfbmV3X2Z1bmN0aW9uCisjZGVmaW5lIGdjY19q aXRfY29udGV4dF9uZXdfZnVuY3Rpb25fcHRyX3R5cGUgZm5fZ2NjX2ppdF9jb250ZXh0X25ld19m dW5jdGlvbl9wdHJfdHlwZQorI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X2dsb2JhbCBmbl9n Y2Nfaml0X2NvbnRleHRfbmV3X2dsb2JhbAorI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X29w YXF1ZV9zdHJ1Y3QgZm5fZ2NjX2ppdF9jb250ZXh0X25ld19vcGFxdWVfc3RydWN0CisjZGVmaW5l IGdjY19qaXRfY29udGV4dF9uZXdfcGFyYW0gZm5fZ2NjX2ppdF9jb250ZXh0X25ld19wYXJhbQor I2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCBmbl9nY2Nfaml0X2Nv bnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludAorI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X3J2 YWx1ZV9mcm9tX2xvbmcgZm5fZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9sb25nCisj ZGVmaW5lIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21fcHRyIGZuX2djY19qaXRfY29u dGV4dF9uZXdfcnZhbHVlX2Zyb21fcHRyCisjZGVmaW5lIGdjY19qaXRfY29udGV4dF9uZXdfc3Ry dWN0X3R5cGUgZm5fZ2NjX2ppdF9jb250ZXh0X25ld19zdHJ1Y3RfdHlwZQorI2RlZmluZSBnY2Nf aml0X2NvbnRleHRfbmV3X3VuYXJ5X29wIGZuX2djY19qaXRfY29udGV4dF9uZXdfdW5hcnlfb3AK KyNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0X25ld191bmlvbl90eXBlIGZuX2djY19qaXRfY29udGV4 dF9uZXdfdW5pb25fdHlwZQorI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfcmVsZWFzZSBmbl9nY2Nf aml0X2NvbnRleHRfcmVsZWFzZQorI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfc2V0X2Jvb2xfb3B0 aW9uIGZuX2djY19qaXRfY29udGV4dF9zZXRfYm9vbF9vcHRpb24KKyNkZWZpbmUgZ2NjX2ppdF9j b250ZXh0X3NldF9pbnRfb3B0aW9uIGZuX2djY19qaXRfY29udGV4dF9zZXRfaW50X29wdGlvbgor I2RlZmluZSBnY2Nfaml0X2NvbnRleHRfc2V0X2xvZ2ZpbGUgZm5fZ2NjX2ppdF9jb250ZXh0X3Nl dF9sb2dmaWxlCisjZGVmaW5lIGdjY19qaXRfZnVuY3Rpb25fZ2V0X3BhcmFtIGZuX2djY19qaXRf ZnVuY3Rpb25fZ2V0X3BhcmFtCisjZGVmaW5lIGdjY19qaXRfZnVuY3Rpb25fbmV3X2Jsb2NrIGZu X2djY19qaXRfZnVuY3Rpb25fbmV3X2Jsb2NrCisjZGVmaW5lIGdjY19qaXRfZnVuY3Rpb25fbmV3 X2xvY2FsIGZuX2djY19qaXRfZnVuY3Rpb25fbmV3X2xvY2FsCisjZGVmaW5lIGdjY19qaXRfbHZh bHVlX2FjY2Vzc19maWVsZCBmbl9nY2Nfaml0X2x2YWx1ZV9hY2Nlc3NfZmllbGQKKyNkZWZpbmUg Z2NjX2ppdF9sdmFsdWVfYXNfcnZhbHVlIGZuX2djY19qaXRfbHZhbHVlX2FzX3J2YWx1ZQorI2Rl ZmluZSBnY2Nfaml0X2x2YWx1ZV9nZXRfYWRkcmVzcyBmbl9nY2Nfaml0X2x2YWx1ZV9nZXRfYWRk cmVzcworI2RlZmluZSBnY2Nfaml0X3BhcmFtX2FzX2x2YWx1ZSBmbl9nY2Nfaml0X3BhcmFtX2Fz X2x2YWx1ZQorI2RlZmluZSBnY2Nfaml0X3BhcmFtX2FzX3J2YWx1ZSBmbl9nY2Nfaml0X3BhcmFt X2FzX3J2YWx1ZQorI2RlZmluZSBnY2Nfaml0X3J2YWx1ZV9hY2Nlc3NfZmllbGQgZm5fZ2NjX2pp dF9ydmFsdWVfYWNjZXNzX2ZpZWxkCisjZGVmaW5lIGdjY19qaXRfcnZhbHVlX2RlcmVmZXJlbmNl IGZuX2djY19qaXRfcnZhbHVlX2RlcmVmZXJlbmNlCisjZGVmaW5lIGdjY19qaXRfcnZhbHVlX2Rl cmVmZXJlbmNlX2ZpZWxkIGZuX2djY19qaXRfcnZhbHVlX2RlcmVmZXJlbmNlX2ZpZWxkCisjZGVm aW5lIGdjY19qaXRfcnZhbHVlX2dldF90eXBlIGZuX2djY19qaXRfcnZhbHVlX2dldF90eXBlCisj ZGVmaW5lIGdjY19qaXRfc3RydWN0X2FzX3R5cGUgZm5fZ2NjX2ppdF9zdHJ1Y3RfYXNfdHlwZQor I2RlZmluZSBnY2Nfaml0X3N0cnVjdF9zZXRfZmllbGRzIGZuX2djY19qaXRfc3RydWN0X3NldF9m aWVsZHMKKyNkZWZpbmUgZ2NjX2ppdF90eXBlX2dldF9wb2ludGVyIGZuX2djY19qaXRfdHlwZV9n ZXRfcG9pbnRlcgorCisjZW5kaWYKKworc3RhdGljIGJvb2wKK2xvYWRfZ2Njaml0X2lmX25lY2Vz c2FyeSAoYm9vbCBtYW5kYXRvcnkpCit7CisjaWZkZWYgV0lORE9XU05UCisgIHN0YXRpYyBib29s IHRyaWVkX3RvX2luaXRpYWxpemVfb25jZTsKKyAgc3RhdGljIGJvb2wgZ2Njaml0X2luaXRpYWxp emVkOworCisgIGlmICghdHJpZWRfdG9faW5pdGlhbGl6ZV9vbmNlKQorICAgIHsKKyAgICAgIHRy aWVkX3RvX2luaXRpYWxpemVfb25jZSA9IHRydWU7CisgICAgICBMaXNwX09iamVjdCBzdGF0dXM7 CisgICAgICBnY2NqaXRfaW5pdGlhbGl6ZWQgPSBpbml0X2djY2ppdF9mdW5jdGlvbnMgKCk7Cisg ICAgICBzdGF0dXMgPSBnY2NqaXRfaW5pdGlhbGl6ZWQgPyBRdCA6IFFuaWw7CisgICAgICBWbGli cmFyeV9jYWNoZSA9IEZjb25zIChGY29ucyAoUWdjY2ppdCwgc3RhdHVzKSwgVmxpYnJhcnlfY2Fj aGUpOworICAgIH0KKworICBpZiAobWFuZGF0b3J5ICYmICFnY2NqaXRfaW5pdGlhbGl6ZWQpCisg ICAgeHNpZ25hbDEoUW5hdGl2ZV9jb21waWxlcl9lcnJvciwgYnVpbGRfc3RyaW5nKCJsaWJnY2Nq aXQgbm90IGZvdW5kIikpOworCisgIHJldHVybiBnY2NqaXRfaW5pdGlhbGl6ZWQ7CisjZWxzZQor ICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorfQorCisMCiAvKiBDIHN5bWJvbHMgZW1pdHRlZCBmb3Ig dGhlIGxvYWQgcmVsb2NhdGlvbiBtZWNoYW5pc20uICAqLwogI2RlZmluZSBDVVJSRU5UX1RIUkVB RF9SRUxPQ19TWU0gImN1cnJlbnRfdGhyZWFkX3JlbG9jIgogI2RlZmluZSBQVVJFX1BUUl9TWU0g InB1cmVfcHRyIgpAQCAtMzMyOCw2ICszNjcwLDggQEAgREVGVU4gKCJjb21wLS1pbml0LWN0eHQi LCBGY29tcF9faW5pdF9jdHh0LCBTY29tcF9faW5pdF9jdHh0LAogICAgICAgIGRvYzogLyogSW5p dGlhbGl6ZSB0aGUgbmF0aXZlIGNvbXBpbGVyIGNvbnRleHQuIFJldHVybiB0IG9uIHN1Y2Nlc3Mu ICAqLykKICAgICAgKHZvaWQpCiB7CisgIGxvYWRfZ2Njaml0X2lmX25lY2Vzc2FyeSh0cnVlKTsK KwogICBpZiAoY29tcC5jdHh0KQogICAgIHsKICAgICAgIHhzaWduYWwxIChRbmF0aXZlX2ljZSwK QEAgLTM0NzQsNiArMzgxOCw4IEBAIERFRlVOICgiY29tcC0tcmVsZWFzZS1jdHh0IiwgRmNvbXBf X3JlbGVhc2VfY3R4dCwgU2NvbXBfX3JlbGVhc2VfY3R4dCwKICAgICAgICBkb2M6IC8qIFJlbGVh c2UgdGhlIG5hdGl2ZSBjb21waWxlciBjb250ZXh0LiAgKi8pCiAgICAgICh2b2lkKQogeworICBs b2FkX2djY2ppdF9pZl9uZWNlc3NhcnkodHJ1ZSk7CisKICAgaWYgKGNvbXAuY3R4dCkKICAgICBn Y2Nfaml0X2NvbnRleHRfcmVsZWFzZSAoY29tcC5jdHh0KTsKIApAQCAtMzQ5MCw2ICszODM2LDgg QEAgREVGVU4gKCJjb21wLS1jb21waWxlLWN0eHQtdG8tZmlsZSIsIEZjb21wX19jb21waWxlX2N0 eHRfdG9fZmlsZSwKICAgICAgICBkb2M6IC8qIENvbXBpbGUgYXMgbmF0aXZlIGNvZGUgdGhlIGN1 cnJlbnQgY29udGV4dCB0byBmaWxlLiAgKi8pCiAgICAgIChMaXNwX09iamVjdCBiYXNlX25hbWUp CiB7CisgIGxvYWRfZ2Njaml0X2lmX25lY2Vzc2FyeSh0cnVlKTsKKwogICBDSEVDS19TVFJJTkcg KGJhc2VfbmFtZSk7CiAKICAgZ2NjX2ppdF9jb250ZXh0X3NldF9pbnRfb3B0aW9uIChjb21wLmN0 eHQsCkBAIC0zNjYwLDYgKzQwMDgsOSBAQCBtYXliZV9kZWZlcl9uYXRpdmVfY29tcGlsYXRpb24g KExpc3BfT2JqZWN0IGZ1bmN0aW9uX25hbWUsCiAgICAgICBmZmx1c2ggKGYpOwogICAgIH0KICNl bmRpZgorICBpZiAoIWxvYWRfZ2Njaml0X2lmX25lY2Vzc2FyeShmYWxzZSkpCisgICAgcmV0dXJu OworCiAgIGlmICghY29tcF9kZWZlcnJlZF9jb21waWxhdGlvbgogICAgICAgfHwgbm9uaW50ZXJh Y3RpdmUKICAgICAgIHx8ICFOSUxQIChWcHVyaWZ5X2ZsYWcpCkBAIC0zOTI4LDEwICs0Mjc5LDI2 IEBAIERFRlVOICgibmF0aXZlLWVsaXNwLWxvYWQiLCBGbmF0aXZlX2VsaXNwX2xvYWQsIFNuYXRp dmVfZWxpc3BfbG9hZCwgMSwgMiwgMCwKICAgcmV0dXJuIFF0OwogfQogCisjZW5kaWYgLyogSEFW RV9OQVRJVkVfQ09NUCAqLworCitERUZVTiAoIm5hdGl2ZS1jb21wLWF2YWlsYWJsZS1wIiwgRm5h dGl2ZV9jb21wX2F2YWlsYWJsZV9wLAorICAgICAgIFNuYXRpdmVfY29tcF9hdmFpbGFibGVfcCwg MCwgMCwgMCwKKyAgICAgICBkb2M6IC8qIFJldHVybnMgdCBpZiBuYXRpdmUgY29tcGlsYXRpb24g b2YgTGlzcCBmaWxlcyBpcyBhdmFpbGFibGUgaW4KK3RoaXMgaW5zdGFuY2Ugb2YgRW1hY3MuICov KQorICAodm9pZCkKK3sKKyNpZmRlZiBIQVZFX05BVElWRV9DT01QCisgIHJldHVybiBsb2FkX2dj Y2ppdF9pZl9uZWNlc3NhcnkoZmFsc2UpID8gUXQgOiBRbmlsOworI2Vsc2UKKyAgcmV0dXJuIFFu aWw7CisjZW5kaWYKK30KKwogDAogdm9pZAogc3ltc19vZl9jb21wICh2b2lkKQogeworI2lmZGVm IEhBVkVfTkFUSVZFX0NPTVAKICAgLyogQ29tcGlsZXIgY29udHJvbCBjdXN0b21pemVzLiAgKi8K ICAgREVGVkFSX0JPT0wgKCJjb21wLWRlZmVycmVkLWNvbXBpbGF0aW9uIiwgY29tcF9kZWZlcnJl ZF9jb21waWxhdGlvbiwKIAkgICAgICAgZG9jOiAvKiBJZiB0IGNvbXBpbGUgYXN5bmNyb25vdXNs eSBldmVyeSAuZWxjIGZpbGUgbG9hZGVkLiAgKi8pOwpAQCAtNDA3Myw2ICs0NDQwLDcgQEAgc3lt c19vZl9jb21wICh2b2lkKQogCSAgICAgICBkb2M6IC8qIEhhc2ggdGFibGUgc3ltYm9sLW5hbWUg LT4gZnVuY3Rpb24tdmFsdWUuICBGb3IKIAkJICAgICAgIGludGVybmFsIHVzZSBkdXJpbmcgICov KTsKICAgVmNvbXBfZGVmZXJyZWRfcGVuZGluZ19oID0gQ0FMTE4gKEZtYWtlX2hhc2hfdGFibGUs IFFDdGVzdCwgUWVxKTsKLX0KKyNlbmRpZgogCi0jZW5kaWYgLyogSEFWRV9OQVRJVkVfQ09NUCAq LworICBkZWZzdWJyICgmU25hdGl2ZV9jb21wX2F2YWlsYWJsZV9wKTsKK30KZGlmZiAtLWdpdCBh L3NyYy9jb21wLmggYi9zcmMvY29tcC5oCmluZGV4IGNiZGNhY2NkNWYuLmU2YWIzMmZmOGUgMTAw NjQ0Ci0tLSBhL3NyYy9jb21wLmgKKysrIGIvc3JjL2NvbXAuaApAQCAtODIsMTEgKzgyLDcgQEAg bWF5YmVfZGVmZXJfbmF0aXZlX2NvbXBpbGF0aW9uIChMaXNwX09iamVjdCBmdW5jdGlvbl9uYW1l LAogCQkJCUxpc3BfT2JqZWN0IGRlZmluaXRpb24pCiB7fQogCi1zdGF0aWMgaW5saW5lIExpc3Bf T2JqZWN0Ci1GbmF0aXZlX2VsaXNwX2xvYWQgKExpc3BfT2JqZWN0IGZpbGUsIExpc3BfT2JqZWN0 IGxhdGVfbG9hZCkKLXsKLSAgZWFzc3VtZSAoZmFsc2UpOwotfQorZXh0ZXJuIHZvaWQgc3ltc19v Zl9jb21wICh2b2lkKTsKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL3NyYy9lbWFjcy5jIGIvc3Jj L2VtYWNzLmMKaW5kZXggMmM5MDgyNTc0Mi4uZTc1Y2I1ODgzNCAxMDA2NDQKLS0tIGEvc3JjL2Vt YWNzLmMKKysrIGIvc3JjL2VtYWNzLmMKQEAgLTE2MDYsMTAgKzE2MDYsOCBAQCBtYWluIChpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAgIGluaXRfanNvbiAoKTsKICNlbmRpZgogCi0jaWZkZWYgSEFW RV9OQVRJVkVfQ09NUAogICBpZiAoIWluaXRpYWxpemVkKQogICAgIHN5bXNfb2ZfY29tcCAoKTsK LSNlbmRpZgogCiAgIG5vX2xvYWR1cAogICAgID0gYXJnbWF0Y2ggKGFyZ3YsIGFyZ2MsICItbmwi LCAiLS1uby1sb2FkdXAiLCA2LCBOVUxMLCAmc2tpcF9hcmdzKTsKZGlmZiAtLWdpdCBhL3NyYy93 MzIuYyBiL3NyYy93MzIuYwppbmRleCBhOGM3NjNmMjNlLi5jZWI4ZjdlZjY2IDEwMDY0NAotLS0g YS9zcmMvdzMyLmMKKysrIGIvc3JjL3czMi5jCkBAIC0xMDU4Niw2ICsxMDU4NiwxMCBAQCBnbG9i YWxzX29mX3czMiAodm9pZCkKICNlbmRpZgogCiAgIHczMl9jcnlwdG9faHByb3YgPSAoSENSWVBU UFJPVikwOworCisgIC8qIFdlIG5lZWQgdG8gZm9yZ2V0IGFib3V0IGxpYnJhcmllcyB0aGF0IHdl cmUgbG9hZGVkIGR1cmluZyB0aGUKKyAgICAgZHVtcGluZyBwcm9jZXNzIChlLmcuIGxpYmdjY2pp dCkgKi8KKyAgVmxpYnJhcnlfY2FjaGUgPSBRbmlsOwogfQogCiAvKiBGb3IgbWFrZS1zZXJpYWwt cHJvY2VzcyAgKi8KZGlmZiAtLWdpdCBhL3NyYy93MzJmbnMuYyBiL3NyYy93MzJmbnMuYwppbmRl eCBlNTk1YjAyODVhLi5lZWI3MzQ4OWRkIDEwMDY0NAotLS0gYS9zcmMvdzMyZm5zLmMKKysrIGIv c3JjL3czMmZucy5jCkBAIC0xMDQ2Miw2ICsxMDQ2Miw3IEBAIHN5bXNfb2ZfdzMyZm5zICh2b2lk KQogICBERUZTWU0gKFF6bGliLCAiemxpYiIpOwogICBERUZTWU0gKFFsY21zMiwgImxjbXMyIik7 CiAgIERFRlNZTSAoUWpzb24sICJqc29uIik7CisgIERFRlNZTSAoUWdjY2ppdCwgImdjY2ppdCIp OwogCiAgIEZwdXQgKFF1bmRlZmluZWRfY29sb3IsIFFlcnJvcl9jb25kaXRpb25zLAogCXB1cmVf bGlzdCAoUXVuZGVmaW5lZF9jb2xvciwgUWVycm9yKSk7Ci0tIAoyLjI1LjEud2luZG93cy4xCgo= --000000000000e9dc2405a58c90b2 Content-Type: application/octet-stream; name="0008-Windows-Use-NUMBER_OF_PROCESSORS-environment-variabl.patch" Content-Disposition: attachment; filename="0008-Windows-Use-NUMBER_OF_PROCESSORS-environment-variabl.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ka5qjdfo7 RnJvbSAyYmMwNTQzMTc3NTZmMmU4MWJlZTc2NmFkMzg4OGZiYWQ0Y2VjYzQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxMyBNYXkgMjAyMCAxNjoy MjoxNyAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggOC84XSBXaW5kb3dzOiBVc2UgTlVNQkVSX09GX1BS T0NFU1NPUlMgZW52aXJvbm1lbnQgdmFyaWFibGUuCgoqIGxpc3AvZW1hY3MtbGlzcC9jb21wLmVs IChjb21wLWVmZmVjdGl2ZS1hc3luYy1tYXgtam9icyk6IFVzZQpOVU1CRVJfT0ZfUFJPQ0VTU09S UyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpZiBzeXN0ZW0gaXMgV2luZG93cyBOVCwKIm5wcm9jIiBp ZiBpdCBpcyBpbiBQQVRIIG9yIGEgZGVmYXVsdCBvZiAxLgotLS0KIGxpc3AvZW1hY3MtbGlzcC9j b21wLmVsIHwgOCArKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL2VtYWNzLWxpc3AvY29tcC5lbCBiL2xpc3Av ZW1hY3MtbGlzcC9jb21wLmVsCmluZGV4IGQzMmY5M2ExZTEuLjI2YmI3OWZjZDEgMTAwNjQ0Ci0t LSBhL2xpc3AvZW1hY3MtbGlzcC9jb21wLmVsCisrKyBiL2xpc3AvZW1hY3MtbGlzcC9jb21wLmVs CkBAIC0yMjA4LDkgKzIyMDgsMTEgQEAgY29tcC1hc3luYy1ydW5uaW5ncwogICAgIChpZiAoemVy b3AgY29tcC1hc3luYy1qb2JzLW51bWJlcikKICAgICAgICAgKG9yIG51bS1jcHVzCiAgICAgICAg ICAgICAoc2V0ZiBudW0tY3B1cwotICAgICAgICAgICAgICAgICAgOzsgSGFsZiBvZiB0aGUgQ1BV cyBvciBhdCBsZWFzdCBvbmUuCi0gICAgICAgICAgICAgICAgICA7OyBGSVhNRSBwb3J0YWJsZT8K LSAgICAgICAgICAgICAgICAgIChtYXggMSAoLyAoc3RyaW5nLXRvLW51bWJlciAoc2hlbGwtY29t bWFuZC10by1zdHJpbmcgIm5wcm9jIikpCisgICAgICAgICAgICAgICAgICAobWF4IDEgKC8gKGNv bmQgKChlcSAnd2luZG93cy1udCBzeXN0ZW0tdHlwZSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHN0cmluZy10by1udW1iZXIgKGdldGVudiAiTlVNQkVSX09GX1BST0NFU1NP UlMiKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChleGVjdXRhYmxlLWZp bmQgIm5wcm9jIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy10 by1udW1iZXIgKHNoZWxsLWNvbW1hbmQtdG8tc3RyaW5nICJucHJvYyIpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAodCAxKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAyKSkpKQogICAgICAgY29tcC1hc3luYy1qb2JzLW51bWJlcikpKQogCi0tIAoyLjI1LjEud2lu ZG93cy4xCgo= --000000000000e9dc2405a58c90b2--