From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Pip Cet Newsgroups: gmane.emacs.devel Subject: Re: master d582356: * src/fns.c (Frandom): Handle bignum `limit`s Date: Sat, 6 Mar 2021 07:42:20 +0000 Message-ID: References: <20210305170955.27732.27579@vcs0.savannah.gnu.org> <20210305170957.AF99920E1B@vcs0.savannah.gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000664c8f05bcd95902" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="20139"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Mar 06 08:44:33 2021 Return-path: Envelope-to: ged-emacs-devel@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 1lIRc1-00059H-BW for ged-emacs-devel@m.gmane-mx.org; Sat, 06 Mar 2021 08:44:33 +0100 Original-Received: from localhost ([::1]:57028 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIRc0-00016v-1U for ged-emacs-devel@m.gmane-mx.org; Sat, 06 Mar 2021 02:44:32 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45254) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIRaW-0000SE-Mj for emacs-devel@gnu.org; Sat, 06 Mar 2021 02:43:00 -0500 Original-Received: from mail-ot1-x32b.google.com ([2607:f8b0:4864:20::32b]:34852) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIRaU-0006Xx-Jl for emacs-devel@gnu.org; Sat, 06 Mar 2021 02:43:00 -0500 Original-Received: by mail-ot1-x32b.google.com with SMTP id r19so4158773otk.2 for ; Fri, 05 Mar 2021 23:42:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=wyQ2pNzm5Au9S4eHv10L500tX5Bwe6xK6l0qJNNXCmM=; b=FyJc9SWi8rZMgvOsk2nHaOMAiVgyaimvmf5ERSD3+aLd/Yt1tWJT3h33Nj/nwjVlRr oeWIbgIBANU5ZKi42DOFLBhFvukzzvKbRDT0f6jlvueXYkaLRSYsB1CUOBYWAlHR9YKL vwoiFaw0mLLPPJ0vJjK4ccGy9jEEcXrcl1QnQgdfuoCa8cKtG5OKMas2FB4vNodCN+4G o0p7DuV77XdFMxNDClANtN+IOHCpsyEGiS9y3UGL6i+YZtF0BuY+cVcmrQPd/oN3rAPi Uv5Q9Ei765LKlqo/oxHh2AxbG16jSg6wxdbBlqsZES3EhWtlmn+nxhr3/iVxfvyJSzd5 9jew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=wyQ2pNzm5Au9S4eHv10L500tX5Bwe6xK6l0qJNNXCmM=; b=p4nXCVVoIGfyFbV/rVazTkDXHHz+xrtz/gfVONk6cW5iKMDAU2PWFgO9U68Td1LV6e 41+iA9am+pzo1Vkq16lHRY+62w83/rZSTqpXJ8l5Tz8G3TZ63ozJ9ne38iZoBt+H7ZH1 A8t0fHiHhuwP/+55hG4q6V7bvzznwuZX3id+gOCGA/pG+8hOHemXOGW0q/wS0nhE3q2Q YcsSa53GRdS7l9vYS8Ed373G488RAbMlVoLLFVq/8G8mnf8q95z4FIAplIYC4VXwW9um 3jlFR0lko4rTo5BVZL0ETOXX68WlWUqxMXSSMkT7BBi/2EgCbBQyZTTIcmn9wAKB+xne kg0g== X-Gm-Message-State: AOAM531xoUcxiiIHkSFyXsuZK7O42tOfB5WyFAqro8MqD2cUTO3zYK5y FGwq5vRqKlhmqd3Jwb/kSIALIGiZYUooardM/39Vdh0QHcI= X-Google-Smtp-Source: ABdhPJwYsg30R4+mdbyPm1Uszy848I2fDO8UMK8zTIcHyyRvk7KpM6Ou3rVx/0ehqOnJi+XiWB5w2yy1tRLGK3JATsE= X-Received: by 2002:a05:6830:1011:: with SMTP id a17mr9083389otp.154.1615016577344; Fri, 05 Mar 2021 23:42:57 -0800 (PST) In-Reply-To: Received-SPF: pass client-ip=2607:f8b0:4864:20::32b; envelope-from=pipcet@gmail.com; helo=mail-ot1-x32b.google.com 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_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:266057 Archived-At: --000000000000664c8f05bcd95902 Content-Type: text/plain; charset="UTF-8" On Fri, Mar 5, 2021 at 7:56 PM Stefan Monnier wrote: > > And, all of this could happen in Lisp, couldn't it? Should it? > > You might be right: we should probably export just `get_random` (and the > seeding part) to ELisp and then write the rest in ELisp. Does this look okay? It passes make check, so it must be correct! Pip --000000000000664c8f05bcd95902 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Implement-random-in-Lisp-exposing-only-random-fixnum.patch" Content-Disposition: attachment; filename="0001-Implement-random-in-Lisp-exposing-only-random-fixnum.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_klxf4g2r0 RnJvbSBkMWU5NzMxN2IwZmRiOGViNmNkMzRkMTNhMjg3NGMxNzkyYTQ4NGMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaXAgQ2V0IDxwaXBjZXRAZ21haWwuY29tPgpEYXRlOiBTYXQs IDYgTWFyIDIwMjEgMDc6Mzc6MjIgKzAwMDAKU3ViamVjdDogW1BBVENIXSBJbXBsZW1lbnQgcmFu ZG9tIGluIExpc3AsIGV4cG9zaW5nIG9ubHkgcmFuZG9tLWZpeG51bSBmcm9tIEMKCiogc3JjL2J1 ZmZlci5jIChGZ2VuZXJhdGVfbmV3X2J1ZmZlcl9uYW1lKTogQ2FsbCBpbnRlcm4gKCJyYW5kb20i KS4KKiBzcmMvZm5zLmMgKEZyYW5kb20pOiBSZW5hbWUgdG8gRnJhbmRvbV9maXhudW0gYW5kIHNp bXBsaWZ5LgooY2NhbGwyKTogUmVtb3ZlIGZ1bmN0aW9uLgoocmFuZG9tX2JpZ251bSk6IFJlbW92 ZSBmdW5jdGlvbi4KKHN5bXNfb2ZfZm5zKTogUmVnaXN0ZXIgcmFuZG9tLWZpeG51bSwgbm90IHJh bmRvbS4KKiBsaXNwL3N1YnIuZWwgKHJhbmRvbSk6IE5ldyBmdW5jdGlvbi4KLS0tCiBsaXNwL3N1 YnIuZWwgfCA0MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYnVmZmVyLmMgfCAg NiArKystCiBzcmMvZm5zLmMgICAgfCA4MCArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyks IDc0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3Avc3Vici5lbCBiL2xpc3Avc3Vici5l bAppbmRleCAwYjU2MzQ3Mzk5OTNmLi5mZDdiYzAyODM4NzViIDEwMDY0NAotLS0gYS9saXNwL3N1 YnIuZWwKKysrIGIvbGlzcC9zdWJyLmVsCkBAIC02MjM4LDQgKzYyMzgsNDcgQEAgaW50ZXJuYWwt LWZvcm1hdC1kb2NzdHJpbmctbGluZQogVGhpcyBpcyBpbnRlbmRlZCBmb3IgaW50ZXJuYWwgdXNl IG9ubHkuIgogICAoaW50ZXJuYWwtLWZpbGwtc3RyaW5nLXNpbmdsZS1saW5lIChhcHBseSAjJ2Zv cm1hdCBzdHJpbmcgb2JqZWN0cykpKQogCisoZGVmdW4gcmFuZG9tICgmb3B0aW9uYWwgbGltaXQp CisgICJSZXR1cm4gYSBwc2V1ZG8tcmFuZG9tIGludGVnZXIuCitCeSBkZWZhdWx0LCByZXR1cm4g YSBmaXhudW07IGFsbCBmaXhudW1zIGFyZSBlcXVhbGx5IGxpa2VseS4KK1dpdGggcG9zaXRpdmUg aW50ZWdlciBMSU1JVCwgcmV0dXJuIHJhbmRvbSBpbnRlZ2VyIGluIGludGVydmFsIFswLExJTUlU KS4KK1dpdGggZmxvYXQgYXJndW1lbnQgTElNSVQsIHJldHVybiBhIGZsb2F0IGJldHdlZW4gMCBh bmQgTElNSVQuCitXaXRoIGFyZ3VtZW50IHQsIHNldCB0aGUgcmFuZG9tIG51bWJlciBzZWVkIGZy b20gdGhlIHN5c3RlbSdzIGVudHJvcHkKK3Bvb2wgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgZnJv bSBsZXNzLXJhbmRvbSB2b2xhdGlsZSBkYXRhIHN1Y2ggYXMgdGhlIHRpbWUuCitXaXRoIGEgc3Ry aW5nIGFyZ3VtZW50LCBzZXQgdGhlIHNlZWQgYmFzZWQgb24gdGhlIHN0cmluZydzIGNvbnRlbnRz LgorCitTZWUgSW5mbyBub2RlIGAoZWxpc3ApUmFuZG9tIE51bWJlcnMnIGZvciBtb3JlIGRldGFp bHMuIgorICAoY29uZAorICAgKChudWxsIGxpbWl0KQorICAgIChyYW5kb20tZml4bnVtKSkKKyAg ICgobmF0bnVtcCBsaW1pdCkKKyAgICAoaWYgKDw9IGxpbWl0IDApCisgICAgICAgIChlcnJvciAi Tm9uLXBvc2l0aXZlIGFyZ3VtZW50IikpCisgICAgKGxldCAob2theSByZW1haW5kZXIpCisgICAg ICAod2hpbGUgKG5vdCBva2F5KQorICAgICAgICAobGV0ICgodmFsIDApCisgICAgICAgICAgICAg IChsaW0gbGltaXQpCisgICAgICAgICAgICAgIChiaXRzIDApCisgICAgICAgICAgICAgIChiaXRz LXBlci1pdGVyYXRpb24gKDEtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0 cnVuY2F0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZyAoMSsgbW9z dC1wb3NpdGl2ZS1maXhudW0pIDIpKSkpKQorICAgICAgICAgICh3aGlsZSAobm90ICh6ZXJvcCBs aW0pKQorICAgICAgICAgICAgKGxldCAoKHJhbmQgKGxvZ2FuZCAoMS0gKGxzaCAxIGJpdHMtcGVy LWl0ZXJhdGlvbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyYW5kb20tZml4 bnVtKSkpKQorICAgICAgICAgICAgICAoc2V0cSBiaXRzICgrIGJpdHMgYml0cy1wZXItaXRlcmF0 aW9uKSkKKyAgICAgICAgICAgICAgKHNldHEgdmFsIChsb2dpb3IgKGxzaCB2YWwgYml0cy1wZXIt aXRlcmF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5kKSkKKyAgICAg ICAgICAgICAgKHNldHEgbGltIChsc2ggbGltICgtIGJpdHMtcGVyLWl0ZXJhdGlvbikpKSkpCisg ICAgICAgICAgKHNldHEgcmVtYWluZGVyICglIHZhbCBsaW1pdCkpCisgICAgICAgICAgKHNldHEg b2theSAoPD0gKC0gdmFsIHJlbWFpbmRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAoLSAo bHNoIDEgYml0cykgbGltaXQpKSkpKQorICAgICAgcmVtYWluZGVyKSkKKyAgKChmbG9hdHAgbGlt aXQpCisgICAoKiAocmFuZG9tLWludGVnZXIgKGxzaCAxIDY0KSkKKyAgICAgICgvIDEuMCAoZmxv YXQgKGxzaCAxIDY0KSkpCisgICAgICBsaW1pdCkpCisgICgoZXEgbGltaXQgdCkgKHJhbmRvbS1m aXhudW0gbGltaXQpKQorICAoKHN0cmluZ3AgbGltaXQpIChyYW5kb20tZml4bnVtIGxpbWl0KSkK KyAgKChlcnJvciAiaW52YWxpZCBsaW1pdCAlUyIgbGltaXQpKSkpCisKIDs7OyBzdWJyLmVsIGVu ZHMgaGVyZQpkaWZmIC0tZ2l0IGEvc3JjL2J1ZmZlci5jIGIvc3JjL2J1ZmZlci5jCmluZGV4IDAz YzEwY2M3YWU1YmEuLjIwYTIyMTllMTBhNDkgMTAwNjQ0Ci0tLSBhL3NyYy9idWZmZXIuYworKysg Yi9zcmMvYnVmZmVyLmMKQEAgLTExNDksNyArMTE0OSwxMSBAQCBERUZVTiAoImdlbmVyYXRlLW5l dy1idWZmZXItbmFtZSIsIEZnZW5lcmF0ZV9uZXdfYnVmZmVyX25hbWUsCiAgICAgICBjaGFyIG51 bWJlcltzaXplb2YgIi05OTk5OTkiXTsKIAogICAgICAgLyogVXNlIFhGSVhOVU0gaW5zdGVhZCBv ZiBYRklYTkFUIHRvIHdvcmsgYXJvdW5kIEdDQyBidWcgODA3NzYuICAqLwotICAgICAgaW50IGkg PSBYRklYTlVNIChGcmFuZG9tIChtYWtlX2ZpeG51bSAoMTAwMDAwMCkpKTsKKyAgICAgIExpc3Bf T2JqZWN0IHJhbmQgPSBDQUxMTiAoRmZ1bmNhbGwsIGludGVybiAoInJhbmRvbSIpLAorCQkJCW1h a2VfZml4bnVtICgxMDAwMDAwKSk7CisgICAgICBpZiAoIUZJWE5VTVAgKHJhbmQpIHx8IFhGSVhO VU0gKHJhbmQpIDwgMCB8fCBYRklYTlVNIChyYW5kKSA+PSAxMDAwMDAwKQorCWVycm9yICgicmFu ZG9tIGJyb2tlbiIpOworICAgICAgaW50IGkgPSBYRklYTlVNIChyYW5kKTsKICAgICAgIGVhc3N1 bWUgKDAgPD0gaSAmJiBpIDwgMTAwMDAwMCk7CiAKICAgICAgIEFVVE9fU1RSSU5HX1dJVEhfTEVO IChsbnVtYmVyLCBudW1iZXIsIHNwcmludGYgKG51bWJlciwgIi0lZCIsIGkpKTsKZGlmZiAtLWdp dCBhL3NyYy9mbnMuYyBiL3NyYy9mbnMuYwppbmRleCBiMTkzYWQ2NDhhOTZjLi5hNjVhNWQ4OGQ0 ZTRhIDEwMDY0NAotLS0gYS9zcmMvZm5zLmMKKysrIGIvc3JjL2Zucy5jCkBAIC01NCw4OCArNTQs MjIgQEAgREVGVU4gKCJpZGVudGl0eSIsIEZpZGVudGl0eSwgU2lkZW50aXR5LCAxLCAxLCAwLAog ICByZXR1cm4gYXJndW1lbnQ7CiB9CiAKLXN0YXRpYyBMaXNwX09iamVjdAotY2NhbGwyIChMaXNw X09iamVjdCAoZikgKHB0cmRpZmZfdCBuYXJncywgTGlzcF9PYmplY3QgKmFyZ3MpLAotICAgICAg ICBMaXNwX09iamVjdCBhcmcxLCBMaXNwX09iamVjdCBhcmcyKQotewotICBMaXNwX09iamVjdCBh cmdzWzJdID0ge2FyZzEsIGFyZzJ9OwotICByZXR1cm4gZiAoMiwgYXJncyk7Ci19Ci0KLXN0YXRp YyBMaXNwX09iamVjdAotZ2V0X3JhbmRvbV9iaWdudW0gKExpc3BfT2JqZWN0IGxpbWl0KQotewot ICAvKiBUaGlzIGlzIGEgbmFpdmUgdHJhbnNjcmlwdGlvbiBpbnRvIGJpZ251bXMgb2YgdGhlIGZp eG51bSBhbGdvcml0aG0uCi0gICAgIEknZCBiZSBxdWl0ZSBzdXJwcmlzZWQgaWYgdGhhdCdzIGFu eXdoZXJlIG5lYXIgdGhlIGJlc3QgYWxnb3JpdGhtCi0gICAgIGZvciBpdC4gICovCi0gIHdoaWxl ICh0cnVlKQotICAgIHsKLSAgICAgIExpc3BfT2JqZWN0IHZhbCA9IG1ha2VfZml4bnVtICgwKTsK LSAgICAgIExpc3BfT2JqZWN0IGxpbSA9IGxpbWl0OwotICAgICAgaW50IGJpdHMgPSAwOwotICAg ICAgaW50IGJpdHNwZXJpdGVyYXRpb24gPSBGSVhOVU1fQklUUyAtIDE7Ci0gICAgICBkbwotICAg ICAgICB7Ci0gICAgICAgICAgLyogU2hpZnQgYnkgb25lIHNvIGl0IGlzIGEgdmFsaWQgcG9zaXRp dmUgZml4bnVtLiAgKi8KLSAgICAgICAgICBFTUFDU19JTlQgcmFuZCA9IGdldF9yYW5kb20gKCkg Pj4gMTsKLSAgICAgICAgICBMaXNwX09iamVjdCBscmFuZCA9IG1ha2VfZml4bnVtIChyYW5kKTsK LSAgICAgICAgICBiaXRzICs9IGJpdHNwZXJpdGVyYXRpb247Ci0gICAgICAgICAgdmFsID0gY2Nh bGwyIChGbG9naW9yLAotICAgICAgICAgICAgICAgICAgICAgICAgRmFzaCAodmFsLCBtYWtlX2Zp eG51bSAoYml0c3Blcml0ZXJhdGlvbikpLAotICAgICAgICAgICAgICAgICAgICAgICAgbHJhbmQp OwotICAgICAgICAgIGxpbSA9IEZhc2ggKGxpbSwgbWFrZV9maXhudW0gKC0gYml0c3Blcml0ZXJh dGlvbikpOwotICAgICAgICB9Ci0gICAgICB3aGlsZSAoIUVRIChsaW0sIG1ha2VfZml4bnVtICgw KSkpOwotICAgICAgLyogUmV0dXJuIHRoZSByZW1haW5kZXIsIGV4Y2VwdCByZWplY3QgdGhlIHJh cmUgY2FzZSB3aGVyZQotCSBnZXRfcmFuZG9tIHJldHVybnMgYSBudW1iZXIgc28gY2xvc2UgdG8g SU5UTUFTSyB0aGF0IHRoZQotCSByZW1haW5kZXIgaXNuJ3QgcmFuZG9tLiAgKi8KLSAgICAgIExp c3BfT2JqZWN0IHJlbWFpbmRlciA9IEZyZW0gKHZhbCwgbGltaXQpOwotICAgICAgaWYgKCFOSUxQ IChjY2FsbDIgKEZsZXEsCi0JICAgICAgICAgICAgICAgICBjY2FsbDIgKEZtaW51cywgdmFsLCBy ZW1haW5kZXIpLAotCSAgICAgICAgICAgICAgICAgY2NhbGwyIChGbWludXMsCi0JICAgICAgICAg ICAgICAgICAgICAgICAgIEZhc2ggKG1ha2VfZml4bnVtICgxKSwgbWFrZV9maXhudW0gKGJpdHMp KSwKLQkgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXQpKSkpCi0JcmV0dXJuIHJlbWFpbmRl cjsKLSAgICB9Ci19Ci0KLURFRlVOICgicmFuZG9tIiwgRnJhbmRvbSwgU3JhbmRvbSwgMCwgMSwg MCwKK0RFRlVOICgicmFuZG9tLWZpeG51bSIsIEZyYW5kb21fZml4bnVtLCBTcmFuZG9tX2ZpeG51 bSwgMCwgMSwgMCwKICAgICAgICBkb2M6IC8qIFJldHVybiBhIHBzZXVkby1yYW5kb20gaW50ZWdl ci4KLUJ5IGRlZmF1bHQsIHJldHVybiBhIGZpeG51bTsgYWxsIGZpeG51bXMgYXJlIGVxdWFsbHkg bGlrZWx5LgotV2l0aCBwb3NpdGl2ZSBpbnRlZ2VyIExJTUlULCByZXR1cm4gcmFuZG9tIGludGVn ZXIgaW4gaW50ZXJ2YWwgWzAsTElNSVQpLgotV2l0aCBhcmd1bWVudCB0LCBzZXQgdGhlIHJhbmRv bSBudW1iZXIgc2VlZCBmcm9tIHRoZSBzeXN0ZW0ncyBlbnRyb3B5Ci1wb29sIGlmIGF2YWlsYWJs ZSwgb3RoZXJ3aXNlIGZyb20gbGVzcy1yYW5kb20gdm9sYXRpbGUgZGF0YSBzdWNoIGFzIHRoZSB0 aW1lLgotV2l0aCBhIHN0cmluZyBhcmd1bWVudCwgc2V0IHRoZSBzZWVkIGJhc2VkIG9uIHRoZSBz dHJpbmcncyBjb250ZW50cy4KK1JldHVybiBhIGZpeG51bTsgYWxsIGZpeG51bXMgYXJlIGVxdWFs bHkgbGlrZWx5LiAgV2l0aCBhcmd1bWVudCB0LCBhbHNvIHNldAordGhlIHJhbmRvbSBudW1iZXIg c2VlZCBmcm9tIHRoZSBzeXN0ZW0ncyBlbnRyb3B5IHBvb2wgaWYgYXZhaWxhYmxlLCBvdGhlcndp c2UKK2Zyb20gbGVzcy1yYW5kb20gdm9sYXRpbGUgZGF0YSBzdWNoIGFzIHRoZSB0aW1lLgorV2l0 aCBhIHN0cmluZyBhcmd1bWVudCwgYWxzbyBzZXQgdGhlIHNlZWQgYmFzZWQgb24gdGhlIHN0cmlu ZydzIGNvbnRlbnRzLgogCiBTZWUgSW5mbyBub2RlIGAoZWxpc3ApUmFuZG9tIE51bWJlcnMnIGZv ciBtb3JlIGRldGFpbHMuICAqLykKICAgKExpc3BfT2JqZWN0IGxpbWl0KQogewotICBFTUFDU19J TlQgdmFsOwotCiAgIGlmIChFUSAobGltaXQsIFF0KSkKICAgICBpbml0X3JhbmRvbSAoKTsKICAg ZWxzZSBpZiAoU1RSSU5HUCAobGltaXQpKQogICAgIHNlZWRfcmFuZG9tIChTU0RBVEEgKGxpbWl0 KSwgU0JZVEVTIChsaW1pdCkpOwotICBpZiAoQklHTlVNUCAobGltaXQpKQotICAgIHsKLSAgICAg IGlmICgwID4gbXB6X3NnbiAoKnhiaWdudW1fdmFsIChsaW1pdCkpKQotICAgICAgICB4c2lnbmFs MiAoUXdyb25nX3R5cGVfYXJndW1lbnQsIFFuYXRudW1wLCBsaW1pdCk7Ci0gICAgICByZXR1cm4g Z2V0X3JhbmRvbV9iaWdudW0gKGxpbWl0KTsKLSAgICB9CiAKLSAgdmFsID0gZ2V0X3JhbmRvbSAo KTsKLSAgaWYgKEZJWE5VTVAgKGxpbWl0KSAmJiAwIDwgWEZJWE5VTSAobGltaXQpKQotICAgIHdo aWxlICh0cnVlKQotICAgICAgewotCS8qIFJldHVybiB0aGUgcmVtYWluZGVyLCBleGNlcHQgcmVq ZWN0IHRoZSByYXJlIGNhc2Ugd2hlcmUKLQkgICBnZXRfcmFuZG9tIHJldHVybnMgYSBudW1iZXIg c28gY2xvc2UgdG8gSU5UTUFTSyB0aGF0IHRoZQotCSAgIHJlbWFpbmRlciBpc24ndCByYW5kb20u ICAqLwotCUVNQUNTX0lOVCByZW1haW5kZXIgPSB2YWwgJSBYRklYTlVNIChsaW1pdCk7Ci0JaWYg KHZhbCAtIHJlbWFpbmRlciA8PSBJTlRNQVNLIC0gWEZJWE5VTSAobGltaXQpICsgMSkKLQkgIHJl dHVybiBtYWtlX2ZpeG51bSAocmVtYWluZGVyKTsKLQl2YWwgPSBnZXRfcmFuZG9tICgpOwotICAg ICAgfQotICByZXR1cm4gbWFrZV91Zml4bnVtICh2YWwpOworICByZXR1cm4gbWFrZV91Zml4bnVt IChnZXRfcmFuZG9tICgpKTsKIH0KIAwKIC8qIFJhbmRvbSBkYXRhLXN0cnVjdHVyZSBmdW5jdGlv bnMuICAqLwpAQCAtNTk2OCw3ICs1OTAyLDcgQEAgc3ltc19vZl9mbnMgKHZvaWQpCiAgIHVzZV9z aG9ydF9hbnN3ZXJzID0gZmFsc2U7CiAKICAgZGVmc3ViciAoJlNpZGVudGl0eSk7Ci0gIGRlZnN1 YnIgKCZTcmFuZG9tKTsKKyAgZGVmc3ViciAoJlNyYW5kb21fZml4bnVtKTsKICAgZGVmc3ViciAo JlNsZW5ndGgpOwogICBkZWZzdWJyICgmU3NhZmVfbGVuZ3RoKTsKICAgZGVmc3ViciAoJlNsZW5n dGhfbGVzcyk7Ci0tIAoyLjMwLjEKCg== --000000000000664c8f05bcd95902--