From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Gdobbins Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] Add new lisp function length= with bytecode support Date: Sun, 12 Mar 2017 22:51:31 -0400 Message-ID: References: <64Kl8OYdaKer-3Ey7GHVD9He6bX8yYHaS_NjEwp7Wqc4Zb7xu8IQV3ExvjCLKlBWHVVr_HNUhd55i_BVXNHnpxjnXc6hPgWvWkc3bIO8e7s=@protonmail.com> <99375f4d-f627-8e29-2c1f-9d3bfdf3ddd1@gmail.com> <0mz3T7gRvLpYGD7MDAZGZjxUi5QdLAkXtZ7y8UX4a3tDMKu1KvlRZ2IYKRUlQh01TvDsPfG1Fl_l4MIlmBWtHW9A_nQ9liIx6Mz6vcT6lGw=@protonmail.com> <4pTgtp7P0udVYhXvmkdE96q4eNHNWW6ZQ1o7woPbQTJbXd5scmDTlaLrg4BtjD_YzTTX5qHyHhXUg3gX0jW5yenj-a2gnT0m8QiFQETB284=@protonmail.com> <3AD8FC51-ABB3-4FC7-A5EF-A30EBEA27E9E@raeburn.org> Reply-To: Gdobbins NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_6cfba45212a277281a3cd233a2dbe58e" X-Trace: blaine.gmane.org 1489373511 7061 195.159.176.226 (13 Mar 2017 02:51:51 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 13 Mar 2017 02:51:51 +0000 (UTC) Cc: Emacs developers Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Mar 13 03:51:44 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cnG5H-00019V-EM for ged-emacs-devel@m.gmane.org; Mon, 13 Mar 2017 03:51:43 +0100 Original-Received: from localhost ([::1]:49834 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cnG5N-00024v-Bg for ged-emacs-devel@m.gmane.org; Sun, 12 Mar 2017 22:51:49 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49290) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cnG5F-00024p-V5 for emacs-devel@gnu.org; Sun, 12 Mar 2017 22:51:43 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cnG5C-0001Lh-0N for emacs-devel@gnu.org; Sun, 12 Mar 2017 22:51:42 -0400 Original-Received: from mail3.protonmail.ch ([185.70.40.25]:20421) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cnG5B-0001Jj-CG for emacs-devel@gnu.org; Sun, 12 Mar 2017 22:51:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=default; t=1489373492; bh=T2Cf5P74yZRWoUgEKddN7r3Mc6dAj1D0Ies4jclvZiM=; h=From:Cc:Reply-To:Subject:In-Reply-To:References:Feedback-ID:From; b=Vb06+6dRX7+YMS3uQ+PeXqTRet7v2LafEyDbtmCsQqKyBWt+4o7kLIJiEKQJYl5WL FT0aPSzRX6VqQvIuwzOERcCYjLWRGT6p7LWPxhlf4mHCw4Vua8zGwXs7OjvA1PdaJF 2jW44J00W2Pfq9VeWKoD3PZmu+v3KPpEaY4VUxwo= In-Reply-To: Feedback-ID: 2scFH5skvFzgZJ7ILBOVugR__H-QecA1siOwz0AeO2iN_D48zTQMjBTq6Jy9M68A2__zFgy29E_J00dfSYIKuA==:Ext:ProtonMail X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 185.70.40.25 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:212974 Archived-At: This is a multi-part message in MIME format. --b1_6cfba45212a277281a3cd233a2dbe58e Content-Type: multipart/alternative; boundary="b2_6cfba45212a277281a3cd233a2dbe58e" --b2_6cfba45212a277281a3cd233a2dbe58e Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 QXR0YWNoZWQgaXMgYSBuZXcgcGF0Y2ggd2hpY2ggbW9kaWZpZXMgdGhlIGJ5dGUtaW50ZXJwcmV0 ZXIgdG8gdXNlIEMgZnVuY3Rpb25zIGZvciBjb21wYXJpbmcgbGlzdCBsZW5ndGggdG8gbnVtYmVy cyBhdCBydW4tdGltZS4gSXQgZG9lcyB0aGlzIGJ5IGNoZWNraW5nIGlmIHRoZSBuZXh0IGJ5dGVj b2RlIGlzIGEgY29tcGFyaXNvbiBvcCB3aGVuIGl0IGVuY291bnRlcnMgYSBsZW5ndGggb3AuIEl0 IGRvZXMgbm90IGhhdmUgdGhlIHByb2JsZW0gb2YgaW5jb21wYXRpYmx5IGNoYW5naW5nID0gbGlr ZSB0aGUgbGFzdCBtZXRob2QuIFRoZSBvbmx5IHJlbWFpbmluZyBpbmNvbXBhdGlibGUgY2hhbmdl IGlzIGZvcm1zIGxpa2UgKD0gMCAobGVuZ3RoIHNvbWUtbG9uZy1jaXJjdWxhci1saXN0KSkgd2ls bCBub3cgbm90IHRocm93IGFuIGVycm9yLCBpbnN0ZWFkIHRoZXkgd2lsbCByZXR1cm4gbmlsIGlu IGJ5dGUtY29tcGlsZWQgY29kZS4gU2ltaWxhcmx5IGZvciBkb3R0ZWQgbGlzdHMuIFRoZSByYXJl IGNvZGUgd2hpY2ggZG9lcyByZXF1aXJlIHRoZSBlcnJvciB0byBiZSB0aHJvd24gY2FuIHN3aXRj aCB0byAoPSAwIChzYWZlLWxlbmd0aCBzb21lLWxvbmctY2lyY3VsYXItbGlzdCkpIHRvIHJlZ2Fp biB0aGUgYmVoYXZpb3IuCgpUaGlzIGNoYW5nZSBhbHNvIG1ha2VzIGxlbmd0aD0gYW5kIHJlbGF0 ZWQgdGhlbiBlaXRoZXIgd29yc2UgdGhhbiBub3QgaGF2aW5nIHRoZW0sIG9yIHRoZXkgYmVjb21l IHRyaXZpYWw6CgooZGVmdW4gbGVuZ3RoPSAobnVtYmVyIGxpc3QpCig9IG51bWJlciAobGVuZ3Ro IGxpc3QpKSkKClJlZ2FyZGxlc3Mgb2YgaWYgdGhpcyBjaGFuZ2UgaXMgYWNjZXB0YWJsZSwgSSBh bHNvIG5lZWQgdG8gZ2V0IG15IGNvcHlyaWdodCBhc3NpZ25tZW50IGRvbmUuIEknbSB3b3JraW5n IG9uIGFub3RoZXIgdW5yZWxhdGVkIHBhdGNoIGFzIHdlbGwuCgoKLS0gR3JhaGFtIERvYmJpbnM= --b2_6cfba45212a277281a3cd233a2dbe58e Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PGRpdj5BdHRhY2hlZCBpcyBhIG5ldyBwYXRjaCB3aGljaCBtb2RpZmllcyB0aGUgYnl0ZS1pbnRl cnByZXRlciB0byB1c2UgQyBmdW5jdGlvbnMgZm9yIGNvbXBhcmluZyBsaXN0IGxlbmd0aCB0byBu dW1iZXJzIGF0IHJ1bi10aW1lLiBJdCBkb2VzIHRoaXMgYnkgY2hlY2tpbmcgaWYgdGhlIG5leHQg Ynl0ZWNvZGUgaXMgYSBjb21wYXJpc29uIG9wIHdoZW4gaXQgZW5jb3VudGVycyBhIGxlbmd0aCBv cC4gSXQgZG9lcyBub3QgaGF2ZSB0aGUgcHJvYmxlbSBvZiBpbmNvbXBhdGlibHkgY2hhbmdpbmcg PSBsaWtlIHRoZSBsYXN0IG1ldGhvZC4gVGhlIG9ubHkgcmVtYWluaW5nIGluY29tcGF0aWJsZSBj aGFuZ2UgaXMgZm9ybXMgbGlrZSAoPSAwIChsZW5ndGggc29tZS1sb25nLWNpcmN1bGFyLWxpc3Qp KSB3aWxsIG5vdyBub3QgdGhyb3cgYW4gZXJyb3IsIGluc3RlYWQgdGhleSB3aWxsIHJldHVybiBu aWwgaW4gYnl0ZS1jb21waWxlZCBjb2RlLiBTaW1pbGFybHkgZm9yIGRvdHRlZCBsaXN0cy4gVGhl IHJhcmUgY29kZSB3aGljaCBkb2VzIHJlcXVpcmUgdGhlIGVycm9yIHRvIGJlIHRocm93biBjYW4g c3dpdGNoIHRvICg9IDAgKHNhZmUtbGVuZ3RoIHNvbWUtbG9uZy1jaXJjdWxhci1saXN0KSkgdG8g cmVnYWluIHRoZSBiZWhhdmlvci48YnI+PC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5UaGlzIGNo YW5nZSBhbHNvIG1ha2VzIGxlbmd0aD0gYW5kIHJlbGF0ZWQgdGhlbiBlaXRoZXIgd29yc2UgdGhh biBub3QgaGF2aW5nIHRoZW0sIG9yIHRoZXkgYmVjb21lIHRyaXZpYWw6PC9kaXY+PGRpdj48YnI+ PC9kaXY+PGRpdj4oZGVmdW4gbGVuZ3RoPSAobnVtYmVyIGxpc3QpPC9kaXY+PGRpdj4mbmJzcDsg KD0gbnVtYmVyIChsZW5ndGggbGlzdCkpKTwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+UmVnYXJk bGVzcyBvZiBpZiB0aGlzIGNoYW5nZSBpcyBhY2NlcHRhYmxlLCBJIGFsc28gbmVlZCB0byBnZXQg bXkgY29weXJpZ2h0IGFzc2lnbm1lbnQgZG9uZS4gSSdtIHdvcmtpbmcgb24gYW5vdGhlciB1bnJl bGF0ZWQgcGF0Y2ggYXMgd2VsbC48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2IGNsYXNzPSJwcm90 b25tYWlsX3NpZ25hdHVyZV9ibG9jayAiPjxkaXYgY2xhc3M9InByb3Rvbm1haWxfc2lnbmF0dXJl X2Jsb2NrLXVzZXIgIj4tLSBHcmFoYW0gRG9iYmluczwvZGl2PjwvZGl2PjxkaXY+PGJyPjwvZGl2 Pg== --b2_6cfba45212a277281a3cd233a2dbe58e-- --b1_6cfba45212a277281a3cd233a2dbe58e Content-Type: text/x-patch; name="0001-Optimize-bytecode-interpeter-for-numeric-comparisons.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-Optimize-bytecode-interpeter-for-numeric-comparisons.patch RnJvbSAyMzc2Y2EyYmFlZDhkMWJjMDYyNjVjNDMyZjRhZmJlMzUzYWRjM2UwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmFoYW0gRG9iYmlucyA8Z2RvYmJpbnNAcHJvdG9ubWFpbC5j b20+CkRhdGU6IFN1biwgMTIgTWFyIDIwMTcgMjI6MjI6MTkgLTA0MDAKU3ViamVjdDogW1BBVENI XSBPcHRpbWl6ZSBieXRlY29kZSBpbnRlcnBldGVyIGZvciBudW1lcmljIGNvbXBhcmlzb25zIG9m IGxpc3QKIGxlbmd0aAoKV2hlbiB0aGUgYnl0ZWNvZGUgaW50ZXJwcmV0ZXIgZW5jb3VudGVycyBh IGxlbmd0aCBieXRlY29kZSB3aXRoIGEgbGlzdAphcmd1bWVudCBmb2xsb3dlZCBieSBhIGNvbXBh cmlzb24gYnl0ZWNvZGUgaXQgZGVmZXJzIHRvIHRoZSBuZXcgc3BlY2lhbApwdXJwb3NlIGxlbmd0 aCBjb21wYXJpc29uIGZ1bmN0aW9ucy4KKiBzcmMvYnl0ZWNvZGUuYyAoZXhlY19ieXRlX2NvZGUp OiBDaGFuZ2UgdGhlIEJsZW5ndGggYnl0ZWNvZGUgY2FzZSBhbmQgYWRkCnRoZSBuZXcgZnVuY3Rp b25zLgoqIGxpc3AvZW1hY3MtbGlzcC9ieXRlLW9wdC5lbCAoYnl0ZS1vcHRpbWl6ZS1iaW5hcnkt cHJlZGljYXRlLApieXRlLW9wdGltaXplLXByZWRpY2F0ZSk6IE1ha2UgdGhlIGJ5dGUtY29tcGls ZXIgcHV0IHRoZSBsZW5ndGggYW5kCmNvbXBhcmlzb24gYnl0ZWNvZGVzIG5leHQgdG8gZWFjaCBv dGhlciB3aGVuIHBvc3NpYmxlLgoqIHNyYy9saXNwLmggKGxlbmd0aF9CZXFsc2lnbiwgbGVuZ3Ro X0JndHIsIGxlbmd0aF9CbHNzLCBsZW5ndGhfQmxlcSwKbGVuZ3RoX0JnZXEsIGxlbmd0aF9CZXEp OiBEZWNsYXJlIG5ldyBDIGZ1bmN0aW9ucy4KLS0tCiBsaXNwL2VtYWNzLWxpc3AvYnl0ZS1vcHQu ZWwgfCAgMzcgKysrKystLQogc3JjL2J5dGVjb2RlLmMgICAgICAgICAgICAgIHwgMjMzICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBzcmMvbGlzcC5oICAgICAg ICAgICAgICAgICAgfCAgIDYgKysKIDMgZmlsZXMgY2hhbmdlZCwgMjY1IGluc2VydGlvbnMoKyks IDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvZW1hY3MtbGlzcC9ieXRlLW9wdC5l bCBiL2xpc3AvZW1hY3MtbGlzcC9ieXRlLW9wdC5lbAppbmRleCAwMDRmMmUyODY1Li5mM2EyNGQ5 ZDI2IDEwMDY0NAotLS0gYS9saXNwL2VtYWNzLWxpc3AvYnl0ZS1vcHQuZWwKKysrIGIvbGlzcC9l bWFjcy1saXNwL2J5dGUtb3B0LmVsCkBAIC04NjIsMTUgKzg2MiwyMyBAQCBieXRlLW9wdGltaXpl LWxvZ211bWJsZQogCiAoZGVmdW4gYnl0ZS1vcHRpbWl6ZS1iaW5hcnktcHJlZGljYXRlIChmb3Jt KQogICAoY29uZAotICAgKChvciAobm90IChtYWNyb2V4cC1jb25zdC1wIChudGggMSBmb3JtKSkp Ci0gICAgICAgIChudGhjZHIgMyBmb3JtKSkgOzsgSW4gY2FzZSB0aGVyZSBhcmUgbW9yZSB0aGFu IDIgYXJncy4KLSAgICBmb3JtKQotICAgKChtYWNyb2V4cC1jb25zdC1wIChudGggMiBmb3JtKSkK LSAgICAoY29uZGl0aW9uLWNhc2UgKCkKLSAgICAgICAgKGxpc3QgJ3F1b3RlIChldmFsIGZvcm0p KQotICAgICAgKGVycm9yIGZvcm0pKSkKLSAgICh0IDs7IFRoaXMgY2FuIGVuYWJsZSBzb21lIGxh cGNvZGUgb3B0aW1pemF0aW9ucy4KLSAgICAobGlzdCAoY2FyIGZvcm0pIChudGggMiBmb3JtKSAo bnRoIDEgZm9ybSkpKSkpCisgICAgKChudGhjZHIgMyBmb3JtKSBmb3JtKQorICAgICgobm90ICht YWNyb2V4cC1jb25zdC1wIChudGggMSBmb3JtKSkpCisgICAgIChpZiAoYW5kCisgICAgICAgICAg KG1lbXEgKGNhciBmb3JtKSAnKD0gZXEgZXF1YWwpKQorICAgICAgICAgIChlcSAoY2FyLXNhZmUg KGNhZHIgZm9ybSkpICdsZW5ndGgpCisgICAgICAgICAgKG1hY3JvZXhwLWNvbnN0LXAgKG50aCAy IGZvcm0pKSkKKyAgICAgICAgIChsaXN0IChjYXIgZm9ybSkgKG50aCAyIGZvcm0pIChudGggMSBm b3JtKSkKKyAgICAgICBmb3JtKSkKKyAgICAoKG1hY3JvZXhwLWNvbnN0LXAgKG50aCAyIGZvcm0p KQorICAgICAoY29uZGl0aW9uLWNhc2UgKCkKKyAgICAgICAgIChsaXN0ICdxdW90ZSAoZXZhbCBm b3JtKSkKKyAgICAgICAoZXJyb3IgZm9ybSkpKQorICAgICgoYW5kIChtZW1xIChjYXIgZm9ybSkg Jyg9IGVxIGVxdWFsKSkKKyAgICAgICAgICAoZXEgKGNhci1zYWZlIChjYWRkciBmb3JtKSkgJ2xl bmd0aCkpCisgICAgIGZvcm0pCisgICAgKHQgOzsgVGhpcyBjYW4gZW5hYmxlIHNvbWUgbGFwY29k ZSBvcHRpbWl6YXRpb25zLgorICAgICAobGlzdCAoY2FyIGZvcm0pIChudGggMiBmb3JtKSAobnRo IDEgZm9ybSkpKSkpCiAKIChkZWZ1biBieXRlLW9wdGltaXplLXByZWRpY2F0ZSAoZm9ybSkKICAg KGxldCAoKG9rIHQpCkBAIC04ODIsNyArODkwLDE2IEBAIGJ5dGUtb3B0aW1pemUtcHJlZGljYXRl CiAJKGNvbmRpdGlvbi1jYXNlICgpCiAJICAgIChsaXN0ICdxdW90ZSAoZXZhbCBmb3JtKSkKIAkg IChlcnJvciBmb3JtKSkKLQlmb3JtKSkpCisgICAgICAobGV0ICgoc3dhcCAoYXNzb2MgKGNhciBm b3JtKQorICAgICAgICAgICAgICAgICAgICAgICAgICcoKDwgLiA+KSAoPiAuIDwpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAoPD0gLiA+PSkgKD49IC4gPD0pCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAoPSAuID0pKSkpKQorICAgICAgICAoaWYgKGFuZCBzd2FwCisgICAgICAgICAg ICAgICAgICg9IDMgKGxlbmd0aCBmb3JtKSkKKyAgICAgICAgICAgICAgICAgKGVxIChjYXItc2Fm ZSAoY2FkciBmb3JtKSkgJ2xlbmd0aCkKKyAgICAgICAgICAgICAgICAgKG1hY3JvZXhwLWNvbnN0 LXAgKG50aCAyIGZvcm0pKSkKKyAgICAgICAgICAgIChsaXN0IChjZHIgc3dhcCkgKG50aCAyIGZv cm0pIChudGggMSBmb3JtKSkKKyAgICAgICAgICBmb3JtKSkpKSkKIAogKGRlZnVuIGJ5dGUtb3B0 aW1pemUtaWRlbnRpdHkgKGZvcm0pCiAgIChpZiAoYW5kIChjZHIgZm9ybSkgKG51bGwgKGNkciAo Y2RyIGZvcm0pKSkpCmRpZmYgLS1naXQgYS9zcmMvYnl0ZWNvZGUuYyBiL3NyYy9ieXRlY29kZS5j CmluZGV4IGU3ODFhODdkMTYuLmIwMGFjNGQwOTYgMTAwNjQ0Ci0tLSBhL3NyYy9ieXRlY29kZS5j CisrKyBiL3NyYy9ieXRlY29kZS5jCkBAIC0zMTAsNiArMzEwLDEwIEBAIGVudW0gYnl0ZV9jb2Rl X29wCiAKICNkZWZpbmUgVE9QICgqdG9wKQogCisvKiBMb29rIGF0IHRoZSBuZXh0IGJ5dGUgb2Yg dGhlIGJ5dGVjb2RlIHN0cmVhbS4gKi8KKworI2RlZmluZSBQRUVLICgqcGMpCisKIERFRlVOICgi Ynl0ZS1jb2RlIiwgRmJ5dGVfY29kZSwgU2J5dGVfY29kZSwgMywgMywgMCwKICAgICAgICBkb2M6 IC8qIEZ1bmN0aW9uIHVzZWQgaW50ZXJuYWxseSBpbiBieXRlLWNvbXBpbGVkIGNvZGUuCiBUaGUg Zmlyc3QgYXJndW1lbnQsIEJZVEVTVFIsIGlzIGEgc3RyaW5nIG9mIGJ5dGUgY29kZTsKQEAgLTkw Nyw3ICs5MTEsNTQgQEAgZXhlY19ieXRlX2NvZGUgKExpc3BfT2JqZWN0IGJ5dGVzdHIsIExpc3Bf T2JqZWN0IHZlY3RvciwgTGlzcF9PYmplY3QgbWF4ZGVwdGgsCiAJICBORVhUOwogCiAJQ0FTRSAo Qmxlbmd0aCk6Ci0JICBUT1AgPSBGbGVuZ3RoIChUT1ApOworCSAgaWYgKENPTlNQIChUT1ApKQor CSAgICB7CisJICAgICAgTGlzcF9PYmplY3QgdjE7CisJICAgICAgc3dpdGNoIChQRUVLKQorCQl7 CisJCWNhc2UgQmVxbHNpZ246CisJCSAgb3AgPSBGRVRDSDsKKwkJICB2MSA9IFBPUDsKKwkJICBU T1AgPSBsZW5ndGhfQmVxbHNpZ24gKFRPUCwgdjEpOworCQkgIGJyZWFrOworCisJCWNhc2UgQmd0 cjoKKwkJICBvcCA9IEZFVENIOworCQkgIHYxID0gUE9QOworCQkgIFRPUCA9IGxlbmd0aF9CZ3Ry IChUT1AsIHYxKTsKKwkJICBicmVhazsKKworCQljYXNlIEJsc3M6CisJCSAgb3AgPSBGRVRDSDsK KwkJICB2MSA9IFBPUDsKKwkJICBUT1AgPSBsZW5ndGhfQmxzcyAoVE9QLCB2MSk7CisJCSAgYnJl YWs7CisKKwkJY2FzZSBCbGVxOgorCQkgIG9wID0gRkVUQ0g7CisJCSAgdjEgPSBQT1A7CisJCSAg VE9QID0gbGVuZ3RoX0JsZXEgKFRPUCwgdjEpOworCQkgIGJyZWFrOworCisJCWNhc2UgQmdlcToK KwkJICBvcCA9IEZFVENIOworCQkgIHYxID0gUE9QOworCQkgIFRPUCA9IGxlbmd0aF9CZ2VxIChU T1AsIHYxKTsKKwkJICBicmVhazsKKworCQljYXNlIEJlcToKKwkJY2FzZSBCZXF1YWw6CisJCSAg b3AgPSBGRVRDSDsKKwkJICB2MSA9IFBPUDsKKwkJICBUT1AgPSBsZW5ndGhfQmVxIChUT1AsIHYx KTsKKwkJICBicmVhazsKKworCQlkZWZhdWx0OgorCQkgIFRPUCA9IEZsZW5ndGggKFRPUCk7CisJ CX0KKwkgICAgfQorCSAgZWxzZQorCSAgICBUT1AgPSBGbGVuZ3RoIChUT1ApOwogCSAgTkVYVDsK IAogCUNBU0UgKEJhcmVmKToKQEAgLTE1MjIsMyArMTU3MywxODMgQEAgaW50ZWdlciwgaXQgaXMg aW5jcmVtZW50ZWQgZWFjaCB0aW1lIHRoYXQgc3ltYm9sJ3MgZnVuY3Rpb24gaXMgY2FsbGVkLiAg Ki8pOwogICB9CiAjZW5kaWYKIH0KKworLyogVGhlIGZvbGxvd2luZyBhcmUgdXNlZCBhYm92ZSBp biB0aGUgQmxlbmd0aCBjYXNlLiBFYWNoIGFzc3VtZXMgczEKKyAgIGlzIGEgbnVtYmVyIG9yIG1h cmtlciBhbmQgczIgaXMgYSBsaXN0LiAqLworCitMaXNwX09iamVjdAorbGVuZ3RoX0JlcWxzaWdu IChMaXNwX09iamVjdCBzMSwgTGlzcF9PYmplY3QgczIpCit7CisgIExpc3BfT2JqZWN0IHZhbCA9 IFFuaWw7CisKKyAgQ0hFQ0tfTlVNQkVSX09SX0ZMT0FUX0NPRVJDRV9NQVJLRVIgKHMxKTsKKwor ICBpZiAoX19idWlsdGluX2V4cGVjdCAoRkxPQVRQIChzMSksIDApKQorICAgIHsKKyAgICAgIHMy ID0gRmxlbmd0aChzMik7CisgICAgICB2YWwgPSBhcml0aGNvbXBhcmUgKHMxLCBzMiwgQVJJVEhf RVFVQUwpOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGludHB0cl90IG4gPSBYSU5UIChz MSk7CisgICAgICBpbnRwdHJfdCBpID0gMDsKKyAgICAgIEZPUl9FQUNIX1RBSUwgKHMyKQorCXsK KwkgIGkrKzsKKwkgIGlmIChpID4gbikKKwkgICAgcmV0dXJuIHZhbDsKKwl9CisgICAgICBDSEVD S19MSVNUX0VORCAoczIsIHMyKTsKKyAgICAgIGlmIChpID09IG4pCisJdmFsID0gUXQ7CisgICAg fQorCisgIHJldHVybiB2YWw7Cit9CisKK0xpc3BfT2JqZWN0CitsZW5ndGhfQmd0ciAoTGlzcF9P YmplY3QgczEsIExpc3BfT2JqZWN0IHMyKQoreworICBMaXNwX09iamVjdCB2YWwgPSBRbmlsOwor CisgIENIRUNLX05VTUJFUl9PUl9GTE9BVF9DT0VSQ0VfTUFSS0VSIChzMSk7CisKKyAgaWYgKF9f YnVpbHRpbl9leHBlY3QgKEZMT0FUUCAoczEpLCAwKSkKKyAgICB7CisgICAgICBzMiA9IEZsZW5n dGgoczIpOworICAgICAgdmFsID0gYXJpdGhjb21wYXJlIChzMSwgczIsIEFSSVRIX0dSVFIpOwor ICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGludHB0cl90IG4gPSBYSU5UIChzMSk7CisgICAg ICBpbnRwdHJfdCBpID0gMDsKKyAgICAgIEZPUl9FQUNIX1RBSUwgKHMyKQorCXsKKwkgIGkrKzsK KwkgIGlmIChpID49IG4pCisJICAgIHJldHVybiB2YWw7CisJfQorICAgICAgQ0hFQ0tfTElTVF9F TkQgKHMyLCBzMik7CisgICAgICBpZiAoaSA8IG4pCisJdmFsID0gUXQ7CisgICAgfQorCisgIHJl dHVybiB2YWw7Cit9CisKK0xpc3BfT2JqZWN0CitsZW5ndGhfQmxzcyAoTGlzcF9PYmplY3QgczEs IExpc3BfT2JqZWN0IHMyKQoreworICBMaXNwX09iamVjdCB2YWwgPSBRbmlsOworCisgIENIRUNL X05VTUJFUl9PUl9GTE9BVF9DT0VSQ0VfTUFSS0VSIChzMSk7CisKKyAgaWYgKF9fYnVpbHRpbl9l eHBlY3QgKEZMT0FUUCAoczEpLCAwKSkKKyAgICB7CisgICAgICBzMiA9IEZsZW5ndGgoczIpOwor ICAgICAgdmFsID0gYXJpdGhjb21wYXJlIChzMSwgczIsIEFSSVRIX0xFU1MpOworICAgIH0KKyAg ZWxzZQorICAgIHsKKyAgICAgIGludHB0cl90IG4gPSBYSU5UIChzMSk7CisgICAgICBpbnRwdHJf dCBpID0gMDsKKyAgICAgIEZPUl9FQUNIX1RBSUwgKHMyKQorCXsKKwkgIGkrKzsKKwkgIGlmIChp ID4gbikKKwkgICAgeworCSAgICAgIGlmICghIENPTlNQIChzMikpCisJCUNIRUNLX0xJU1RfRU5E IChzMiwgczIpOworCSAgICAgIHJldHVybiBRdDsKKwkgICAgfQorCX0KKyAgICAgIENIRUNLX0xJ U1RfRU5EIChzMiwgczIpOworICAgIH0KKworICByZXR1cm4gdmFsOworfQorCitMaXNwX09iamVj dAorbGVuZ3RoX0JsZXEgKExpc3BfT2JqZWN0IHMxLCBMaXNwX09iamVjdCBzMikKK3sKKyAgTGlz cF9PYmplY3QgdmFsID0gUW5pbDsKKworICBDSEVDS19OVU1CRVJfT1JfRkxPQVRfQ09FUkNFX01B UktFUiAoczEpOworCisgIGlmIChfX2J1aWx0aW5fZXhwZWN0IChGTE9BVFAgKHMxKSwgMCkpCisg ICAgeworICAgICAgczIgPSBGbGVuZ3RoKHMyKTsKKyAgICAgIHZhbCA9IGFyaXRoY29tcGFyZSAo czEsIHMyLCBBUklUSF9MRVNTX09SX0VRVUFMKTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAg ICBpbnRwdHJfdCBuID0gWElOVCAoczEpOworICAgICAgaW50cHRyX3QgaSA9IDA7CisgICAgICBG T1JfRUFDSF9UQUlMIChzMikKKwl7CisJICBpKys7CisJICBpZiAoaSA+PSBuKQorCSAgICB7CisJ ICAgICAgaWYgKCEgQ09OU1AgKHMyKSkKKwkJQ0hFQ0tfTElTVF9FTkQgKHMyLCBzMik7CisJICAg ICAgcmV0dXJuIFF0OworCSAgICB9CisJfQorICAgICAgQ0hFQ0tfTElTVF9FTkQgKHMyLCBzMik7 CisgICAgfQorCisgIHJldHVybiB2YWw7Cit9CisKK0xpc3BfT2JqZWN0CitsZW5ndGhfQmdlcSAo TGlzcF9PYmplY3QgczEsIExpc3BfT2JqZWN0IHMyKQoreworICBMaXNwX09iamVjdCB2YWwgPSBR bmlsOworCisgIENIRUNLX05VTUJFUl9PUl9GTE9BVF9DT0VSQ0VfTUFSS0VSIChzMSk7CisKKyAg aWYgKF9fYnVpbHRpbl9leHBlY3QgKEZMT0FUUCAoczEpLCAwKSkKKyAgICB7CisgICAgICBzMiA9 IEZsZW5ndGgoczIpOworICAgICAgdmFsID0gYXJpdGhjb21wYXJlIChzMSwgczIsIEFSSVRIX0dS VFJfT1JfRVFVQUwpOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGludHB0cl90IG4gPSBY SU5UIChzMSk7CisgICAgICBpbnRwdHJfdCBpID0gMDsKKyAgICAgIEZPUl9FQUNIX1RBSUwgKHMy KQorCXsKKwkgIGkrKzsKKwkgIGlmIChpID4gbikKKwkgICAgcmV0dXJuIHZhbDsKKwl9CisgICAg ICBDSEVDS19MSVNUX0VORCAoczIsIHMyKTsKKyAgICAgIGlmIChpIDw9IG4pCisJdmFsID0gUXQ7 CisgICAgfQorCisgIHJldHVybiB2YWw7Cit9CisKK0xpc3BfT2JqZWN0CitsZW5ndGhfQmVxIChM aXNwX09iamVjdCBzMSwgTGlzcF9PYmplY3QgczIpCit7CisgIExpc3BfT2JqZWN0IHZhbCA9IFFu aWw7CisKKyAgaWYgKElOVEVHRVJQIChzMSkpCisgICAgeworICAgICAgaW50cHRyX3QgbiA9IFhJ TlQgKHMxKTsKKyAgICAgIGludHB0cl90IGkgPSAwOworICAgICAgRk9SX0VBQ0hfVEFJTCAoczIp CisJeworCSAgaSsrOworCSAgaWYgKGkgPiBuKQorCSAgICByZXR1cm4gdmFsOworCX0KKyAgICAg IENIRUNLX0xJU1RfRU5EIChzMiwgczIpOworICAgICAgaWYgKGkgPT0gbikKKwl2YWwgPSBRdDsK KyAgICB9CisKKyAgcmV0dXJuIHZhbDsKK30KZGlmZiAtLWdpdCBhL3NyYy9saXNwLmggYi9zcmMv bGlzcC5oCmluZGV4IGFiNGRiNGNhYzAuLmNiZGE2NDFhY2QgMTAwNjQ0Ci0tLSBhL3NyYy9saXNw LmgKKysrIGIvc3JjL2xpc3AuaApAQCAtNDE1MSw2ICs0MTUxLDEyIEBAIGV4dGVybiB2b2lkIHN5 bXNfb2ZfYnl0ZWNvZGUgKHZvaWQpOwogZXh0ZXJuIExpc3BfT2JqZWN0IGV4ZWNfYnl0ZV9jb2Rl IChMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0LAogCQkJCSAgIExpc3BfT2Jq ZWN0LCBwdHJkaWZmX3QsIExpc3BfT2JqZWN0ICopOwogZXh0ZXJuIExpc3BfT2JqZWN0IGdldF9i eXRlX2NvZGVfYXJpdHkgKExpc3BfT2JqZWN0KTsKK0xpc3BfT2JqZWN0IGxlbmd0aF9CZXFsc2ln biAoTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0KTsKK0xpc3BfT2JqZWN0IGxlbmd0aF9CZ3RyIChM aXNwX09iamVjdCwgTGlzcF9PYmplY3QpOworTGlzcF9PYmplY3QgbGVuZ3RoX0Jsc3MgKExpc3Bf T2JqZWN0LCBMaXNwX09iamVjdCk7CitMaXNwX09iamVjdCBsZW5ndGhfQmxlcSAoTGlzcF9PYmpl Y3QsIExpc3BfT2JqZWN0KTsKK0xpc3BfT2JqZWN0IGxlbmd0aF9CZ2VxIChMaXNwX09iamVjdCwg TGlzcF9PYmplY3QpOworTGlzcF9PYmplY3QgbGVuZ3RoX0JlcSAoTGlzcF9PYmplY3QsIExpc3Bf T2JqZWN0KTsKIAogLyogRGVmaW5lZCBpbiBtYWNyb3MuYy4gICovCiBleHRlcm4gdm9pZCBpbml0 X21hY3JvcyAodm9pZCk7Ci0tIAoyLjEyLjAKCg== --b1_6cfba45212a277281a3cd233a2dbe58e--