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: RFC: locale-sensitive Emacs functions Date: Fri, 31 Mar 2017 00:27:39 -0400 Message-ID: References: <87lgrq5ccp.fsf@lifelogs.com> <8Sj4h1O1rGU3p2OhVtn_8rleNKxYpeaUgnELj6kkM2iv3vXZWKaY0viThS1GwHfnf3EhDqooeJbfbOvbk-YBLpVI4znjtvf9Ot3G4ej8YJM=@protonmail.com> <721338e4-fad3-e33c-2a77-59107fbe1ff2@cs.ucla.edu> <87h92d604m.fsf@lifelogs.com> <877f364o33.fsf@lifelogs.com> Reply-To: Gdobbins NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_2978530738f63094f685664e2130c5b1" X-Trace: blaine.gmane.org 1490934480 30740 195.159.176.226 (31 Mar 2017 04:28:00 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 31 Mar 2017 04:28:00 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Mar 31 06:27:56 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 1ctoAF-0007GP-5I for ged-emacs-devel@m.gmane.org; Fri, 31 Mar 2017 06:27:55 +0200 Original-Received: from localhost ([::1]:38799 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ctoAK-0002A9-G3 for ged-emacs-devel@m.gmane.org; Fri, 31 Mar 2017 00:28:00 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59478) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ctoAD-0002A0-71 for emacs-devel@gnu.org; Fri, 31 Mar 2017 00:27:54 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ctoAA-0003G3-19 for emacs-devel@gnu.org; Fri, 31 Mar 2017 00:27:53 -0400 Original-Received: from mail4.protonmail.ch ([185.70.40.27]:51414) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ctoA9-0003Cz-Hs for emacs-devel@gnu.org; Fri, 31 Mar 2017 00:27:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=default; t=1490934464; bh=nrK/DPlYdhSaNH5YTw3NnrwJ2wqvY3tRhG7PLQfTfbc=; h=To:From:Reply-To:Subject:In-Reply-To:References:Feedback-ID:From; b=B981Jy13d8tHfb2eAhLjwcLYMtFCD0py9C4FLt6n5bymkySgRcUNmpHG6lwSuun1l N4Obo7Vujl/0DMeWrVg7tHryX8jwcRdYtDr/S3ZnnucNyNCmvV3wFc3KlOARbRIN80 6j1lAjtQCv2kXlhE46FmxDoTWM/NDKe1NFHH/BT4= In-Reply-To: <877f364o33.fsf@lifelogs.com> 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.27 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:213543 Archived-At: This is a multi-part message in MIME format. --b1_2978530738f63094f685664e2130c5b1 Content-Type: multipart/alternative; boundary="b2_2978530738f63094f685664e2130c5b1" --b2_2978530738f63094f685664e2130c5b1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 QXR0YWNoZWQgaXMgYSBuZXcgcGF0Y2ggd2hpY2ggaW1wbGVtZW50cyBldmVyeXRoaW5nIHJlcXVl c3RlZC4KCi0tIEdyYWhhbSBEb2JiaW5z --b2_2978530738f63094f685664e2130c5b1 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PGRpdj5BdHRhY2hlZCBpcyBhIG5ldyBwYXRjaCB3aGljaCBpbXBsZW1lbnRzIGV2ZXJ5dGhpbmcg cmVxdWVzdGVkLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXYgY2xhc3M9InByb3Rvbm1haWxfc2ln bmF0dXJlX2Jsb2NrICI+PGRpdiBjbGFzcz0icHJvdG9ubWFpbF9zaWduYXR1cmVfYmxvY2stdXNl ciAiPi0tIEdyYWhhbSBEb2JiaW5zPGJyPjwvZGl2PjxkaXYgY2xhc3M9InByb3Rvbm1haWxfc2ln bmF0dXJlX2Jsb2NrLXByb3RvbiBwcm90b25tYWlsX3NpZ25hdHVyZV9ibG9jay1lbXB0eSI+IDxi cj48L2Rpdj48L2Rpdj48ZGl2Pjxicj48L2Rpdj4= --b2_2978530738f63094f685664e2130c5b1-- --b1_2978530738f63094f685664e2130c5b1 Content-Type: text/x-patch; name="0001-Add-new-d-specifier-to-format.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-Add-new-d-specifier-to-format.patch RnJvbSBlNTJlYjIxNWNiN2RjYWNlM2E5NzE4MGRiYzc0NDUyMmRiOThmNGQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmFoYW0gRG9iYmlucyA8Z2RvYmJpbnNAcHJvdG9ubWFpbC5j b20+CkRhdGU6IEZyaSwgMzEgTWFyIDIwMTcgMDA6MTY6MTcgLTA0MDAKU3ViamVjdDogW1BBVENI XSBBZGQgbmV3ICUnZCBzcGVjaWZpZXIgdG8gZm9ybWF0LgoKKiBzcmMvZWRpdGZucy5jIChzdHls ZWRfZm9ybWF0KTogQWRkIHRoZSBuZXcgZnVuY3Rpb25hbGl0eS4KKiB0ZXN0L3NyYy9lZGl0Zm5z LXRlc3RzLmVsOiBBZGQgdGVzdHMgZm9yIG5ldyBmdW5jdGlvbmFsaXR5LgoqIGRvYy9saXNwcmVm L3N0cmluZ3MudGV4aTogRG9jdW1lbnQgbmV3IHNwZWNpZmllci4KLS0tCiBkb2MvbGlzcHJlZi9z dHJpbmdzLnRleGkgIHwgIDE2ICsrKysrKwogZXRjL05FV1MgICAgICAgICAgICAgICAgICB8ICAg NSArKwogc3JjL2VkaXRmbnMuYyAgICAgICAgICAgICB8IDEyNSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tCiB0ZXN0L3NyYy9lZGl0Zm5zLXRlc3RzLmVsIHwg IDE0ICsrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvbGlzcHJlZi9zdHJpbmdzLnRleGkgYi9kb2MvbGlzcHJl Zi9zdHJpbmdzLnRleGkKaW5kZXggYWUyYjMxYzU0MS4uOWQ1Nzg2ZTI2YiAxMDA2NDQKLS0tIGEv ZG9jL2xpc3ByZWYvc3RyaW5ncy50ZXhpCisrKyBiL2RvYy9saXNwcmVmL3N0cmluZ3MudGV4aQpA QCAtMTAzMCw4ICsxMDMwLDI0IEBAIEZvcm1hdHRpbmcgU3RyaW5ncwogSWYgYm90aCBAc2FtcHst fSBhbmQgQHNhbXB7MH0gYXJlIHByZXNlbnQsIHRoZSBAc2FtcHswfSBmbGFnIGlzCiBpZ25vcmVk LgogCisgIFRoZSBmbGFnIEBzYW1weyd9IG9ubHkgaGFzIGRlZmluZWQgYmVoYXZpb3Igd2hlbiBj b21iaW5lZCB3aXRoIHRoZQorQHNhbXB7JWR9IHNwZWNpZmllci4gSXQgY2F1c2VzIHRoZSBudW1i ZXIgdG8gYmUgcHJpbnRlZCBpbiBncm91cHMgd2l0aAord2lkdGggZGV0ZXJtaW5lZCBieSBAY29k ZXtmb3JtYXQtZGlnaXQtZ3JvdXBpbmd9IGFuZCBzZXBhcmF0ZWQgYnkgdGhlCitjaGFyYWN0ZXIg QGNvZGV7Zm9ybWF0LWRpZ2l0LXNlcGFyYXRvcn0uIFRoaXMgYWN0aW9uIHRha2VzIHBsYWNlCiti ZWZvcmUgYW55IHBhZGRpbmcgaXMgYXBwbGllZC4gVGhpcyBmbGFnIGlzIHR5cGljYWxseSB1c2Vk IHRvIGFjaGlldmUKK21vcmUgaHVtYW4gcmVhZGFibGUgcmVwcmVzZW50YXRpb25zIG9mIG51bWJl cnMgc3VjaCBhcworQHNhbXB7IjEsMjM0LDU2NyJ9LgorCiBAZXhhbXBsZQogQGdyb3VwCisoZm9y bWF0ICIlJ2QiIDEyMzQ1Njc4OSkKKyAgICAgQHJlc3VsdHt9ICIxMjMsNDU2LDc4OSIKKworKGxl dCAoKGZvcm1hdC1kaWdpdC1ncm91cGluZyA0KQorICAgICAgKGZvcm1hdC1kaWdpdC1zZXBhcmF0 b3IgPy4pKQorICAgKGZvcm1hdCAiJSdkIiAxMjM0NTY3ODkpKQorICAgICBAcmVzdWx0e30gIjEu MjM0NS42Nzg5IgorCiAoZm9ybWF0ICIlMDZkIGlzIHBhZGRlZCBvbiB0aGUgbGVmdCB3aXRoIHpl cm9zIiAxMjMpCiAgICAgIEByZXN1bHR7fSAiMDAwMTIzIGlzIHBhZGRlZCBvbiB0aGUgbGVmdCB3 aXRoIHplcm9zIgogCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdTCmluZGV4IGNkOThm NTMzOTkuLjUxMDU5MDQ2ODcgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBA IC0xMDU1LDYgKzEwNTUsMTEgQEAgaXRzIHdpbmRvdyBnZXRzIGRlbGV0ZWQgYnkgJ2RlbGV0ZS1v dGhlci13aW5kb3dzJy4KICoqKiBOZXcgY29tbWFuZCAnd2luZG93LXN3YXAtc3RhdGVzJyBzd2Fw cyB0aGUgc3RhdGVzIG9mIHR3byBsaXZlCiB3aW5kb3dzLgogCisrKysKKyoqKiAnZm9ybWF0JyBu b3cgYWNjZXB0cyB0aGUgc3BlY2lmaWVyICIlJ2QiIHRvIGZvcm1hdCBpbnRlZ2VycyBpbnRvCitn cm91cHMgb2Ygc2l6ZSAnZm9ybWF0LWRpZ2l0LWdyb3VwaW5nJyB3aXRoIHNlcGFyYXRvcgorJ2Zv cm1hdC1kaWdpdC1zZXBhcmF0b3InIHdoaWNoIGRlZmF1bHQgdG8gMyBhbmQgY29tbWEgcmVzcGVj dGl2ZWx5LgorCiAMCiAqIENoYW5nZXMgaW4gRW1hY3MgMjYuMSBvbiBOb24tRnJlZSBPcGVyYXRp bmcgU3lzdGVtcwogCmRpZmYgLS1naXQgYS9zcmMvZWRpdGZucy5jIGIvc3JjL2VkaXRmbnMuYwpp bmRleCAyZGFmZDhlN2IxLi5lYjdkMWE0ODI5IDEwMDY0NAotLS0gYS9zcmMvZWRpdGZucy5jCisr KyBiL3NyYy9lZGl0Zm5zLmMKQEAgLTM4ODQsNyArMzg4NCw3IEBAIHNwZWNpZmllcnMsIGFzIGZv bGxvd3M6CiAKICAgJTxmbGFncz48d2lkdGg+PHByZWNpc2lvbj5jaGFyYWN0ZXIKIAotd2hlcmUg ZmxhZ3MgaXMgWysgIy0wXSssIHdpZHRoIGlzIFswLTldKywgYW5kIHByZWNpc2lvbiBpcyBhIGxp dGVyYWwKK3doZXJlIGZsYWdzIGlzIFsrICMtMFxcPSddKywgd2lkdGggaXMgWzAtOV0rLCBhbmQg cHJlY2lzaW9uIGlzIGEgbGl0ZXJhbAogcGVyaW9kICIuIiBmb2xsb3dlZCBieSBbMC05XSsKIAog VGhlICsgZmxhZyBjaGFyYWN0ZXIgaW5zZXJ0cyBhICsgYmVmb3JlIGFueSBwb3NpdGl2ZSBudW1i ZXIsIHdoaWxlIGEKQEAgLTM5MDAsNiArMzkwMCwxMiBAQCB0aGUgcHJlY2lzaW9uIGlzIHplcm87 IGZvciAlZywgaXQgY2F1c2VzIGEgZGVjaW1hbCBwb2ludCB0byBiZQogaW5jbHVkZWQgZXZlbiBp ZiB0aGUgdGhlIHByZWNpc2lvbiBpcyB6ZXJvLCBhbmQgYWxzbyBmb3JjZXMgdHJhaWxpbmcKIHpl cm9zIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50IHRvIGJlIGxlZnQgaW4gcGxhY2UuCiAKK1RoZSBi ZWhhdmlvciBvZiB0aGUgXFw9JyBmbGFnIGlzIG9ubHkgZGVmaW5lZCBmb3IgJWQuIFRoZSBhcmd1 bWVudCBpcworcHJpbnRlZCBpbiBncm91cGluZ3Mgd2hvc2Ugc2l6ZSBpcyBkaWN0YXRlZCBieSBg Zm9ybWF0LWRpZ2l0LWdyb3VwaW5nJworYW5kIGFyZSBzZXBhcmF0ZWQgYnkgYGZvcm1hdC1kaWdp dC1zZXBhcmF0b3InLiBUaGlzIGlzIHR5cGljYWxseSB1c2VkCit0byBwcmludCBtb3JlIGh1bWFu IHJlYWRhYmxlIHJlcHJlc2VudGF0aW9ucyBvZiBudW1iZXJzIGxpa2UKKyIxLDAwMC4iIFRoaXMg YWN0aW9uIHRha2VzIHBsYWNlIGJlZm9yZSBhbnkgcGFkZGluZyBpcyBkb25lLgorCiBUaGUgd2lk dGggc3BlY2lmaWVyIHN1cHBsaWVzIGEgbG93ZXIgbGltaXQgZm9yIHRoZSBsZW5ndGggb2YgdGhl CiBwcmludGVkIHJlcHJlc2VudGF0aW9uLiAgVGhlIHBhZGRpbmcsIGlmIGFueSwgbm9ybWFsbHkg Z29lcyBvbiB0aGUKIGxlZnQsIGJ1dCBpdCBnb2VzIG9uIHRoZSByaWdodCBpZiB0aGUgLSBmbGFn IGlzIHByZXNlbnQuICBUaGUgcGFkZGluZwpAQCAtNDA0Miw3ICs0MDQ4LDcgQEAgc3R5bGVkX2Zv cm1hdCAocHRyZGlmZl90IG5hcmdzLCBMaXNwX09iamVjdCAqYXJncywgYm9vbCBtZXNzYWdlKQog CiAJICAgICB3aGVyZQogCi0JICAgICBmbGFncyA6Oj0gWy0rMCMgXSsKKwkgICAgIGZsYWdzIDo6 PSBbLSswIyAnXSsKIAkgICAgIGZpZWxkLXdpZHRoIDo6PSBbMC05XSsKIAkgICAgIHByZWNpc2lv biA6Oj0gJy4nIFswLTldKgogCkBAIC00MDU5LDYgKzQwNjUsNyBAQCBzdHlsZWRfZm9ybWF0IChw dHJkaWZmX3QgbmFyZ3MsIExpc3BfT2JqZWN0ICphcmdzLCBib29sIG1lc3NhZ2UpCiAJICBib29s IHNwYWNlX2ZsYWcgPSBmYWxzZTsKIAkgIGJvb2wgc2hhcnBfZmxhZyA9IGZhbHNlOwogCSAgYm9v bCAgemVyb19mbGFnID0gZmFsc2U7CisJICBib29sICBhcG9zX2ZsYWcgPSBmYWxzZTsKIAogCSAg Zm9yICg7IDsgZm9ybWF0KyspCiAJICAgIHsKQEAgLTQwNjksNiArNDA3Niw3IEBAIHN0eWxlZF9m b3JtYXQgKHB0cmRpZmZfdCBuYXJncywgTGlzcF9PYmplY3QgKmFyZ3MsIGJvb2wgbWVzc2FnZSkK IAkJY2FzZSAnICc6IHNwYWNlX2ZsYWcgPSB0cnVlOyBjb250aW51ZTsKIAkJY2FzZSAnIyc6IHNo YXJwX2ZsYWcgPSB0cnVlOyBjb250aW51ZTsKIAkJY2FzZSAnMCc6ICB6ZXJvX2ZsYWcgPSB0cnVl OyBjb250aW51ZTsKKwkJY2FzZSAnXCcnOiBhcG9zX2ZsYWcgPSB0cnVlOyBjb250aW51ZTsKIAkJ fQogCSAgICAgIGJyZWFrOwogCSAgICB9CkBAIC00Mjc0LDcgKzQyODIsMTAgQEAgc3R5bGVkX2Zv cm1hdCAocHRyZGlmZl90IG5hcmdzLCBMaXNwX09iamVjdCAqYXJncywgYm9vbCBtZXNzYWdlKQog CQkgICBwcmVjaXNpb24gaXMgbm8gbW9yZSB0aGFuIFVTRUZVTF9QUkVDSVNJT05fTUFYLgogCQkg ICBPbiBhbGwgcHJhY3RpY2FsIGhvc3RzLCAlZiBpcyB0aGUgd29yc3QgY2FzZS4gICovCiAJCVNQ UklOVEZfQlVGU0laRSA9Ci0JCSAgc2l6ZW9mICItLiIgKyAoTERCTF9NQVhfMTBfRVhQICsgMSkg KyBVU0VGVUxfUFJFQ0lTSU9OX01BWCwKKwkJbWF4IChzaXplb2YgIi0uIiArIChMREJMX01BWF8x MF9FWFAgKyAxKSArIFVTRUZVTF9QUkVDSVNJT05fTUFYLAorCQkgICAgIChJTlRfQlVGU0laRV9C T1VORCAocHJpbnRtYXhfdCkKKwkJICAgICAgKyAoSU5UX1NUUkxFTl9CT1VORCAocHJpbnRtYXhf dCkgLSAyKQorCQkgICAgICAqIE1BWF9NVUxUSUJZVEVfTEVOR1RIKSksCiAKIAkJLyogTGVuZ3Ro IG9mIHBNICh0aGF0IGlzLCBvZiBwTWQgd2l0aG91dCB0aGUKIAkJICAgdHJhaWxpbmcgImQiKS4g ICovCkBAIC00MzgxLDYgKzQzOTIsMTAwIEBAIHN0eWxlZF9mb3JtYXQgKHB0cmRpZmZfdCBuYXJn cywgTGlzcF9PYmplY3QgKmFyZ3MsIGJvb2wgbWVzc2FnZSkKIAkJCX0KIAkJICAgIH0KIAkJICBz cHJpbnRmX2J5dGVzID0gc3ByaW50ZiAoc3ByaW50Zl9idWYsIGNvbnZzcGVjLCBwcmVjLCB4KTsK KworCQkgIGlmIChhcG9zX2ZsYWcpCisJCSAgICB7CisJCSAgICAgIENIRUNLX0NIQVJBQ1RFUiAo VmZvcm1hdF9kaWdpdF9zZXBhcmF0b3IpOworCQkgICAgICBpbnQgc2VwYXJhdG9yID0gWEZBU1RJ TlQgKFZmb3JtYXRfZGlnaXRfc2VwYXJhdG9yKTsKKworICAgICAgICAgICAgICAgICAgICAgIGlu dCBzZXBhcmF0b3Jfc2l6ZSA9IENIQVJfQllURVMgKHNlcGFyYXRvcik7CisJCSAgICAgIGlmIChz ZXBhcmF0b3Jfc2l6ZSAhPSAxICYmICFtdWx0aWJ5dGUpCisJCQl7CisJCQkgIG11bHRpYnl0ZSA9 IHRydWU7CisJCQkgIGdvdG8gcmV0cnk7CisJCQl9CisKKwkJICAgICAgcHRyZGlmZl90IGJlZ19w b3MgPSAwOworCQkgICAgICBmb3IgKDsgISgnMCcgPD0gc3ByaW50Zl9idWZbYmVnX3Bvc10KKwkJ CSAgICAgICAmJiBzcHJpbnRmX2J1ZltiZWdfcG9zXSA8PSAnOScpOworCQkJICAgKytiZWdfcG9z KTsKKworCQkgICAgICBMaXNwX09iamVjdCByZWFsX2dyb3VwaW5nID0gVmZvcm1hdF9kaWdpdF9n cm91cGluZzsKKwkJICAgICAgRU1BQ1NfSU5UIGdyb3VwaW5nOworCQkgICAgICBwdHJkaWZmX3Qg c2VwYXJhdG9yX2NvdW50OworCisJCSAgICAgIGlmIChDT05TUCAocmVhbF9ncm91cGluZykpCisJ CQl7CisJCQkgIEVNQUNTX0lOVCB0ZW1wX2J5dGVzID0gc3ByaW50Zl9ieXRlczsKKwkJCSAgRU1B Q1NfSU5UIHRlbXBfZ3JvdXBpbmc7CisJCQkgIHNlcGFyYXRvcl9jb3VudCA9IDA7CisJCQkgIEZP Ul9FQUNIX1RBSUwgKHJlYWxfZ3JvdXBpbmcpCisJCQkgICAgeworCQkJICAgICAgQ0hFQ0tfUkFO R0VEX0lOVEVHRVIgKFhDQVIgKHJlYWxfZ3JvdXBpbmcpLAorCQkJCQkJICAgIDEsIE1PU1RfUE9T SVRJVkVfRklYTlVNKTsKKwkJCSAgICAgIHRlbXBfZ3JvdXBpbmcgPSBYSU5UIChYQ0FSIChyZWFs X2dyb3VwaW5nKSk7CisJCQkgICAgICBpZiAodGVtcF9ieXRlcyA+IGJlZ19wb3MgKyB0ZW1wX2dy b3VwaW5nKQorCQkJCXsKKwkJCQkgIHRlbXBfYnl0ZXMgLT0gdGVtcF9ncm91cGluZzsKKwkJCQkg ICsrc2VwYXJhdG9yX2NvdW50OworCQkJCSAgaWYgKE5JTFAgKFhDRFIgKHJlYWxfZ3JvdXBpbmcp KSkKKwkJCQkgICAgeworCQkJCSAgICAgIHNlcGFyYXRvcl9jb3VudAorCQkJCQkrPSAoKHRlbXBf Ynl0ZXMgLSBiZWdfcG9zIC0gMSkKKwkJCQkJICAgIC8gdGVtcF9ncm91cGluZyk7CisJCQkJICAg IH0KKwkJCQl9CisJCQkgICAgICBlbHNlCisJCQkJYnJlYWs7CisJCQkgICAgfQorCQkJICByZWFs X2dyb3VwaW5nID0gVmZvcm1hdF9kaWdpdF9ncm91cGluZzsKKwkJCSAgZ3JvdXBpbmcgPSBYSU5U IChYQ0FSIChyZWFsX2dyb3VwaW5nKSk7CisJCQl9CisJCSAgICAgIGVsc2UKKwkJCXsKKwkJCSAg Q0hFQ0tfUkFOR0VEX0lOVEVHRVIgKHJlYWxfZ3JvdXBpbmcsCisJCQkJCQkxLCBNT1NUX1BPU0lU SVZFX0ZJWE5VTSk7CisJCQkgIGdyb3VwaW5nID0gWElOVCAocmVhbF9ncm91cGluZyk7CisJCQkg IHNlcGFyYXRvcl9jb3VudCA9IChzcHJpbnRmX2J5dGVzIC0gYmVnX3BvcyAtIDEpIC8gZ3JvdXBp bmc7CisJCQl9CisJCSAgICAgIHNlcGFyYXRvcl9jb3VudCAqPSBzZXBhcmF0b3Jfc2l6ZTsKKwor CQkgICAgICBFTUFDU19JTlQgZ3JvdXBfY291bnQgPSAtMjsKKworCQkgICAgICBmb3IgKHB0cmRp ZmZfdCBpID0gc3ByaW50Zl9ieXRlcyArIDE7IGkgPiBiZWdfcG9zOyAtLWkpCisJCQl7CisgICAg ICAgICAgICAgICAgICAgICAgICAgIHNwcmludGZfYnVmW2kgKyBzZXBhcmF0b3JfY291bnRdID0g c3ByaW50Zl9idWZbaV07CisJCQkgICsrZ3JvdXBfY291bnQ7CisKKwkJCSAgaWYgKGdyb3VwX2Nv dW50ID09IGdyb3VwaW5nKQorCQkJICAgIHsKKwkJCSAgICAgIHNlcGFyYXRvcl9jb3VudCAtPSBz ZXBhcmF0b3Jfc2l6ZTsKKworCQkJICAgICAgaWYgKHNlcGFyYXRvcl9zaXplID09IDEpCisJCQkJ c3ByaW50Zl9idWZbaSArIHNlcGFyYXRvcl9jb3VudF0gPSBzZXBhcmF0b3I7CisJCQkgICAgICBl bHNlCisJCQkJeworCQkJCSAgQ0hBUl9TVFJJTkcgKHNlcGFyYXRvciwKKwkJCQkJICAgICAgICh1 bnNpZ25lZCBjaGFyICopCisJCQkJCSAgICAgICAoc3ByaW50Zl9idWYgKyBpICArIHNlcGFyYXRv cl9jb3VudCkpOworCQkJCSAgbmNoYXJzIC09IChzZXBhcmF0b3Jfc2l6ZSAtIDEpOworCQkJCX0K KworCQkJICAgICAgaWYgKENPTlNQIChyZWFsX2dyb3VwaW5nKQorCQkJCSAgJiYgIU5JTFAgKFhD RFIgKHJlYWxfZ3JvdXBpbmcpKSkKKwkJCQl7CisJCQkJICByZWFsX2dyb3VwaW5nID0gWENEUiAo cmVhbF9ncm91cGluZyk7CisJCQkJICBDSEVDS19SQU5HRURfSU5URUdFUgorCQkJCSAgICAoWENB UiAocmVhbF9ncm91cGluZyksCisJCQkJICAgICAxLCBNT1NUX1BPU0lUSVZFX0ZJWE5VTSk7CisJ CQkJICBncm91cGluZyA9IFhJTlQgKFhDQVIgKHJlYWxfZ3JvdXBpbmcpKTsKKwkJCQl9CisKKwkJ CSAgICAgIGdyb3VwX2NvdW50ID0gMDsKKwkJCSAgICAgIHNwcmludGZfYnl0ZXMgKz0gc2VwYXJh dG9yX3NpemU7CisJCQkgICAgfQorCQkJfQorCQkgICAgfQogCQl9CiAJICAgICAgZWxzZQogCQl7 CkBAIC01MTcxLDYgKzUyNzYsMjAgQEAgZnVuY3Rpb25zIGlmIGFsbCB0aGUgdGV4dCBiZWluZyBh Y2Nlc3NlZCBoYXMgdGhpcyBwcm9wZXJ0eS4gICovKTsKICAgREVGVkFSX0xJU1AgKCJvcGVyYXRp bmctc3lzdGVtLXJlbGVhc2UiLCBWb3BlcmF0aW5nX3N5c3RlbV9yZWxlYXNlLAogCSAgICAgICBk b2M6IC8qIFRoZSByZWxlYXNlIG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVtIEVtYWNzIGlzIHJ1bm5p bmcgb24uICAqLyk7CiAKKyAgREVGVkFSX0xJU1AgKCJmb3JtYXQtZGlnaXQtZ3JvdXBpbmciLAor CSAgICAgICBWZm9ybWF0X2RpZ2l0X2dyb3VwaW5nLAorCSAgICAgICBkb2M6IC8qIE51bWJlciBv ZiBkaWdpdHMgaW4gZWFjaCBncm91cCBvZiBhIGZvcm1hdHRlZAorbnVtYmVyIGluIGBmb3JtYXQn LiBJZiBhIGxpc3QsIHRoZSBmaXJzdCBudW1iZXIgYXBwbGllcyB0byB0aGUgbGVhc3QKK3NpZ25p ZmljYW50IGdyb3VwaW5nIGFuZCBzbyBvbiwgd2l0aCB0aGUgbGFzdCBudW1iZXIgYXBwbHlpbmcg dG8gYWxsCityZW1haW5pbmcgZ3JvdXBpbmdzLiAgKi8pOworICBWZm9ybWF0X2RpZ2l0X2dyb3Vw aW5nID0gbWFrZV9udW1iZXIgKDMpOworCisgIERFRlZBUl9MSVNQICgiZm9ybWF0LWRpZ2l0LXNl cGFyYXRvciIsCisJICAgICAgIFZmb3JtYXRfZGlnaXRfc2VwYXJhdG9yLAorCSAgICAgICBkb2M6 IC8qIENoYXJhY3RlciB0byB1c2UgYXMgZ3JvdXBpbmcgc2VwYXJhdG9yIGZvcgorZm9ybWF0dGVk IG51bWJlcnMgaW4gYGZvcm1hdCcuICAqLyk7CisgIFZmb3JtYXRfZGlnaXRfc2VwYXJhdG9yID0g bWFrZV9udW1iZXIgKCcsJyk7CisKICAgZGVmc3ViciAoJlNwcm9wZXJ0aXplKTsKICAgZGVmc3Vi ciAoJlNjaGFyX2VxdWFsKTsKICAgZGVmc3ViciAoJlNnb3RvX2NoYXIpOwpkaWZmIC0tZ2l0IGEv dGVzdC9zcmMvZWRpdGZucy10ZXN0cy5lbCBiL3Rlc3Qvc3JjL2VkaXRmbnMtdGVzdHMuZWwKaW5k ZXggMTQxMjRlZjg1Zi4uMjMxYzcyZWFkNiAxMDA2NDQKLS0tIGEvdGVzdC9zcmMvZWRpdGZucy10 ZXN0cy5lbAorKysgYi90ZXN0L3NyYy9lZGl0Zm5zLXRlc3RzLmVsCkBAIC0xMzYsNCArMTM2LDE4 IEBAIHRyYW5zcG9zZS10ZXN0LWdldC1ieXRlLXBvc2l0aW9ucwogKGVydC1kZWZ0ZXN0IGZvcm1h dC1jLWZsb2F0ICgpCiAgIChzaG91bGQtZXJyb3IgKGZvcm1hdCAiJWMiIDAuNSkpKQogCisoZXJ0 LWRlZnRlc3QgZm9ybWF0LXF1b3RlLWQgKCkKKyAgKGxldCAoKGZvcm1hdC1kaWdpdC1ncm91cGlu ZyAzKQorICAgICAgICAoZm9ybWF0LWRpZ2l0LXNlcGFyYXRvciA/LCkpCisgICAgKHNob3VsZCAo c3RyaW5nPSAoZm9ybWF0ICIlJ2QiIDEyMzQ1Njc4OSkgIjEyMyw0NTYsNzg5IikpCisgICAgKHNo b3VsZCAoc3RyaW5nPSAoZm9ybWF0ICIlKydkIiAxMjM0NTY3ODkpICIrMTIzLDQ1Niw3ODkiKSkK KyAgICAoc2hvdWxkIChzdHJpbmc9IChmb3JtYXQgIiUgJ2QiIDEyMzQ1Njc4OSkgIiAxMjMsNDU2 LDc4OSIpKQorICAgIChzaG91bGQgKHN0cmluZz0gKGZvcm1hdCAiJTAnMTVkIiAxMjM0NTY3ODkp ICIwMDAwMTIzLDQ1Niw3ODkiKSkKKyAgICAobGV0ICgoZm9ybWF0LWRpZ2l0LWdyb3VwaW5nIDEp KQorICAgICAgKHNob3VsZCAoc3RyaW5nPSAoZm9ybWF0ICIlJ2QiIC0xMjM0NTY3ODkpICItMSwy LDMsNCw1LDYsNyw4LDkiKSkpCisgICAgKGxldCAoKGZvcm1hdC1kaWdpdC1ncm91cGluZyAnKDMg MikpKQorICAgICAgKHNob3VsZCAoc3RyaW5nPSAoZm9ybWF0ICIlJ2QiIDEyMzQ1Njc4OSkgIjEy LDM0LDU2LDc4OSIpKSkKKyAgICAobGV0ICgoZm9ybWF0LWRpZ2l0LXNlcGFyYXRvciA/xKwpKQor ICAgICAgKHNob3VsZCAoc3RyaW5nPSAoZm9ybWF0ICIlJ2QiIDEyMzQ1Njc4OSkgIjEyM8SsNDU2 xKw3ODkiKSkpKSkKKwogOzs7IGVkaXRmbnMtdGVzdHMuZWwgZW5kcyBoZXJlCi0tIAoyLjEyLjEK Cg== --b1_2978530738f63094f685664e2130c5b1--