From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Carlos Pita Newsgroups: gmane.emacs.bugs Subject: bug#37770: [PATCH] Expose scale factor through the redisplay interface Date: Sun, 20 Oct 2019 14:22:10 -0300 Message-ID: References: <838spf61ew.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000053f03305955acf7a" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="84975"; mail-complaints-to="usenet@blaine.gmane.org" Cc: Robert Pluim , 37770@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Oct 20 19:23:14 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iMEvB-000Lzb-PX for geb-bug-gnu-emacs@m.gmane.org; Sun, 20 Oct 2019 19:23:14 +0200 Original-Received: from localhost ([::1]:41830 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iMEvA-00013r-Ct for geb-bug-gnu-emacs@m.gmane.org; Sun, 20 Oct 2019 13:23:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37776) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iMEv2-00013g-3I for bug-gnu-emacs@gnu.org; Sun, 20 Oct 2019 13:23:05 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iMEv0-0004J6-8t for bug-gnu-emacs@gnu.org; Sun, 20 Oct 2019 13:23:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:46397) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iMEv0-0004Iz-5E for bug-gnu-emacs@gnu.org; Sun, 20 Oct 2019 13:23:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iMEuz-0008Fd-Vl for bug-gnu-emacs@gnu.org; Sun, 20 Oct 2019 13:23:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Carlos Pita Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 20 Oct 2019 17:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 37770 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 37770-submit@debbugs.gnu.org id=B37770.157159215231660 (code B ref 37770); Sun, 20 Oct 2019 17:23:01 +0000 Original-Received: (at 37770) by debbugs.gnu.org; 20 Oct 2019 17:22:32 +0000 Original-Received: from localhost ([127.0.0.1]:55218 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iMEuV-0008Ea-L8 for submit@debbugs.gnu.org; Sun, 20 Oct 2019 13:22:32 -0400 Original-Received: from mail-yb1-f174.google.com ([209.85.219.174]:39812) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iMEuR-0008EI-Gf for 37770@debbugs.gnu.org; Sun, 20 Oct 2019 13:22:29 -0400 Original-Received: by mail-yb1-f174.google.com with SMTP id z2so3351999ybn.6 for <37770@debbugs.gnu.org>; Sun, 20 Oct 2019 10:22:27 -0700 (PDT) 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=p7ppLrFjoHFXPTaZK6MrSHOzYP0cfLFLZ8dfImtDf0E=; b=bxbQf+WOshRq5h8470D5/hxsqrrQa6hY7fjExmnpeyM/6XjwabBAqwqK4EjuIIfL9R ggVKobZukxyR03W1Y7NOmLeTHdxaOSdH/kkEUfYMZlUK4m1Tm33a7LphjmctXfFEaz9H ea25ECxu4jgVzMtH2LEQBeg7cc6icK8hjj7ltfeXQDBhhupGwIviKm7EamNDkTuJVtvE WG5iBccbToNeV+TkyedJl/24zRj8Y1exYgAonyM8KV99lsimfKqkcechQ06Q+uC9PM4Q t4BiQyBaIn+DgluWsz91zt/D7JdF70Pj+yr9wIe3Ax/7pRVOA6UfdnyKU6FSTkpJsLHV FrYA== 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=p7ppLrFjoHFXPTaZK6MrSHOzYP0cfLFLZ8dfImtDf0E=; b=F3rY1USYadJaexGqVESZFV3FnFdu8azbnpNIK805bPQSRvSn8WASv9R28NLb5piuwF alzN+cHNS93OElucy0QEGR7L/ReHVlR70gtPR8UagAX6vXgKGaRbhdpM9CWIca1XF4Bq wEreyLvyifk+riuw4tgbx4W345Vo1Y6oWZeauFbPbchOs8+tyULQAerM+LuM1WOPIU8F /FzuDOwSDZUe/TGbhPTfCbtLyHOoQD6QPV8b3ME0qbFNhxNNzKQY+DVKVOXR5r7dTpVf xPBtv+kcdUbSEmfNLwJEGkmD5lXWavHSgAryyiWoW0EHbrZySIqA7+7l5kD+NRHRSyUp oXLA== X-Gm-Message-State: APjAAAX334k2jZZwKRDSVmRs8qQACyHlEa9b18moRX79wzND+DUDKR/M Dg+HPdFDATCAtblOypO4k5oP4Y4QGvrcMlIgUJ4= X-Google-Smtp-Source: APXvYqypXOmFSWlwJxY6nzE/iXNvRqa+VWj9cVDv6VKM6j6wWjHkjB0vgng1FffzHCHTToSrl3YNv0RAQWiZ5+9s+Sc= X-Received: by 2002:a25:e7cf:: with SMTP id e198mr11847073ybh.334.1571592141515; Sun, 20 Oct 2019 10:22:21 -0700 (PDT) In-Reply-To: <838spf61ew.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:169842 Archived-At: --00000000000053f03305955acf7a Content-Type: text/plain; charset="UTF-8" > I'm not sure about this. Admittedly, I'm not an expert on screen > scales on GUI systems, but why do we need to drop the two scale > factors as part of this change, which is basically just refactoring? > I'd suggest to keep the 2 scale factors for now. We can always > replace 2 with one later. I might do that, I might rename x/w32_get_scale_factor to x/w32_get_scale_factor_xy and then define the rif exposed x/w32_get_scale_factor to call these ones and simply drop the y scale factor. But I would prefer not to do that because: 1. It adds complexity (more code, two different apis). 2. The only users of the (static) _xy variants would be x/w32_draw_underwave. 3. For me, it's hard to figure out why a screen would offer, say, x resolution = 2 * 96dpi and y resolution = 3 * 96dpi (and surely we could accommodate a humble underwave drawing routing if such a screen happens to exist). 4. The nsterm backend also draws underwaves and doesn't use two different scale factors (indeed, it doesn't use any scale factor at all, nor the rest of this backend does). 5. AFAIK, the "toolkit industry" has long been using one number as THE scale factor. Moreover, most of the time this number is just 1 or 2. Regarding point 3, it's easier to imagine a screen with 1.99 and 2.01 x and y ratios that get respectively truncated down 1 and 2 x and y scale factors. Now, the problem is not the different scale factors but the way they were computed, and this is not solved at all by using 2 scale factors. Maybe we should use round instead of floor there. I've modified the code comment and the message comment according to your comments, Eli. I've also changed floor to round. Best regards -- Carlos --00000000000053f03305955acf7a Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Expose-scale-factor-through-the-redisplay-interface-.patch" Content-Disposition: attachment; filename="0001-Expose-scale-factor-through-the-redisplay-interface-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k1z9ce4d0 RnJvbSA4MzcwMDZjNzMyYjc3OTJmMjBkMjdhN2M4ODI1ZmE1NDJmNmM3NjA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBtZW1lcGxleCA8Y2FybG9zam9zZXBpdGFAZ21haWwuY29tPgpE YXRlOiBUdWUsIDE1IE9jdCAyMDE5IDE5OjE0OjAzIC0wMzAwClN1YmplY3Q6IFtQQVRDSF0gRXhw b3NlIHNjYWxlIGZhY3RvciB0aHJvdWdoIHRoZSByZWRpc3BsYXkgaW50ZXJmYWNlCiAoQnVnIzM3 NzcwKQoKTm90ZSAxOiBib3RoIHhfZ2V0X3NjYWxlX2ZhY3RvciBhbmQgdzMyX2dldF9zY2FsZV9m YWN0b3IgY29tcHV0ZWQKZGlzdGluY3Qgc2NhbGVzIGZvciB4IGFuZCB5IGJ5IHRha2luZyB0aGUg cmF0aW8gYmV0d2VlbiBlZmZlY3RpdmUKcmVzb2x1dGlvbiBpbiBlYWNoIGRpcmVjdGlvbiBhbmQg YSBzdGFuZGFyZCA5NiBkcGkgcmVzb2x1dGlvbi4gIFNpbmNlCnRoaXMgcmF0aW8gaXMgdGhlbiB0 cnVuY2F0ZWQgdG8gYW4gaW50ZWdlciAodGhlIGZsb29yKSBpdCBzZWVtcyB0byBtZQp0aGF0IHRo ZXJlIGlzIG5vIHNlbnNpYmxlIHBvc3NpYmlsaXR5IHRoYXQgdGhlc2UgdHdvIG51bWJlcnMKZGl2 ZXJnZS4gTW9yZW92ZXIsIG1vZGVybiB0b29sa2l0cyByZXBvcnQgb25lIG51bWJlciBhcyBzY2Fs ZSBmYWN0b3IKYW5kIHdlIG5lZWQgYSBjb21tb24gaW50ZXJmYWNlIGhlcmUuIEZvciB0aG9zZSBy ZWFzb25zIEknbSBhcmJpdHJhcmlseQpwaWNraW5nIHRoZSBob3Jpem9udGFsIHNjYWxlIGZhY3Rv ciBhcyBUSEUgc2NhbGUgZmFjdG9yLgoKTm90ZSAyOiBJIGRlY2lkZWQgdG8gbGV0IGdldF9zY2Fs ZV9mYWN0b3IgcmV0dXJuIGEgZG91YmxlLCBldmVuIHRvdWdoCmZhY3RvcnMgY3VycmVudGx5IGlu IHVzZSBhcmUgYWxsIGludGVnZXJzIEFGQUlLLiBUaGlzIGlzIGluCmFudGljaXBhdGlvbiBvZiBm cmFjdGlvbmFsIHNjYWxpbmcuIEkgYmVsaWV2ZSBpdCdzIHBydWRlbnQgdG8ga2VlcAp0aGUgaW50 ZXJmYWNlIGdlbmVyYWwgaW4gdGhpcyByZWdhcmQuCgoqIHNyYy9kaXNwZXh0ZXJuLmggKHJlZGlz cGxheV9pbnRlcmZhY2UpOiBBZGQgZ2V0X3NjYWxlX2ZhY3RvciBBUEkuCgoqIHNyYy94dGVybS5j ICh4X2dldF9zY2FsZV9mYWN0b3IpOiBDb25zb2xpZGF0ZSB3aXRoIHhnX2dldF9zY2FsZSAoc2Vl CmJ1ZyMzNzc1MikgYW5kIGV4cG9ydCB0aHJvdWdoIHRoZSByaWYuIFNpbXBsaWZ5IHNjYWxlIGlu ZmVycmluZwpsb2dpYyAoc2VlIG5vdGUgMSBhYm92ZSkuCgoqIHNyYy93MzJ0ZXJtLmMgKHczMl9n ZXRfc2NhbGVfZmFjdG9yKTogTGlrZXdpc2Ugc2ltcGxpZnkgbG9naWMgYW5kCmFkZCB0byB0aGUg cmlmLgoKKiBzcmMvbnN0ZXJtLm0gKG5zX2dldF9zY2FsZV9mYWN0b3IpOiBBZGQgYSBkdW1teSBp bXBsZW1lbnRhdGlvbiB0aGF0CmFsd2F5cyByZXR1cm4gMSB0byB0aGUgcmlmLCBzaW5jZSB0aGVy ZSBhcmUgbm8gdXNlcyBvZiBhbnkgc2NhbGUKZmFjdG9yIGhlcmUuCi0tLQogc3JjL2Rpc3BleHRl cm4uaCB8ICAzICsrKwogc3JjL25zdGVybS5tICAgICB8ICA2ICsrKysrKwogc3JjL3czMnRlcm0u YyAgICB8IDI5ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMveHRlcm0uYyAgICAg IHwgNDEgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDQgZmlsZXMg Y2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2Rpc3BleHRlcm4uaCBiL3NyYy9kaXNwZXh0ZXJuLmgKaW5kZXggMDYxNWIxNmQ3MS4uYjkz ZTI1ZjIxNiAxMDA2NDQKLS0tIGEvc3JjL2Rpc3BleHRlcm4uaAorKysgYi9zcmMvZGlzcGV4dGVy bi5oCkBAIC0yOTQyLDYgKzI5NDIsOSBAQCByZXNldF9tb3VzZV9oaWdobGlnaHQgKE1vdXNlX0hM SW5mbyAqaGxpbmZvKQogCiAjaWZkZWYgSEFWRV9XSU5ET1dfU1lTVEVNCiAKKyAgLyogUmV0dXJu IHRoZSBzY2FsZSBmYWN0b3IgZm9yIHRoZSBzY3JlZW4gY29udGFpbmluZyBmcmFtZSBGLiAgKi8K KyAgZG91YmxlICgqZ2V0X3NjYWxlX2ZhY3RvcikgKHN0cnVjdCBmcmFtZSAqZik7CisKICAgLyog RHJhdyBhIGZyaW5nZSBiaXRtYXAgaW4gd2luZG93IFcgb2Ygcm93IFJPVyB1c2luZyBwYXJhbWV0 ZXJzIFAuICAqLwogICB2b2lkICgqZHJhd19mcmluZ2VfYml0bWFwKSAoc3RydWN0IHdpbmRvdyAq dywgc3RydWN0IGdseXBoX3JvdyAqcm93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IGRyYXdfZnJpbmdlX2JpdG1hcF9wYXJhbXMgKnApOwpkaWZmIC0tZ2l0IGEvc3JjL25z dGVybS5tIGIvc3JjL25zdGVybS5tCmluZGV4IDU1ODNjNjEwNWMuLjdiOTViOWUyMGIgMTAwNjQ0 Ci0tLSBhL3NyYy9uc3Rlcm0ubQorKysgYi9zcmMvbnN0ZXJtLm0KQEAgLTI5NTcsNiArMjk1Nywx MSBAQCBzbyBzb21lIGtleSBwcmVzc2VzIChUQUIpIGFyZSBzd2FsbG93ZWQgYnkgdGhlIHN5c3Rl bS4gICovCiAKICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAKK3N0YXRpYyBkb3VibGUKK25zX2dl dF9zY2FsZV9mYWN0b3IgKHN0cnVjdCBmcmFtZSAqZikKK3sKKyAgcmV0dXJuIDE7ICAvKiBUT0RP IGRvIHdlIG5lZWQgdG8gZG8gc29tZXRoaW5nIGVsc2UgaGVyZT8gICovCit9CiAKIGV4dGVybiBp bnQgbWF4X3VzZWRfZnJpbmdlX2JpdG1hcDsKIHN0YXRpYyB2b2lkCkBAIC01MDg3LDYgKzUwOTIs NyBAQCBzdGF0aWMgTGlzcF9PYmplY3QgbnNfc3RyaW5nX3RvX2xpc3Btb2QgKGNvbnN0IGNoYXIg KnMpCiAgIGd1aV9jbGVhcl93aW5kb3dfbW91c2VfZmFjZSwKICAgZ3VpX2dldF9nbHlwaF9vdmVy aGFuZ3MsCiAgIGd1aV9maXhfb3ZlcmxhcHBpbmdfYXJlYSwKKyAgbnNfZ2V0X3NjYWxlX2ZhY3Rv ciwKICAgbnNfZHJhd19mcmluZ2VfYml0bWFwLAogICAwLCAvKiBkZWZpbmVfZnJpbmdlX2JpdG1h cCAqLyAvKiBGSVhNRTogc2ltcGxpZnkgbnNfZHJhd19mcmluZ2VfYml0bWFwICovCiAgIDAsIC8q IGRlc3Ryb3lfZnJpbmdlX2JpdG1hcCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3czMnRlcm0uYyBiL3Ny Yy93MzJ0ZXJtLmMKaW5kZXggOWRhMDg0NTgzNi4uZmMyODkzZjI1NCAxMDA2NDQKLS0tIGEvc3Jj L3czMnRlcm0uYworKysgYi9zcmMvdzMydGVybS5jCkBAIC0zMDQsMjAgKzMwNCwxNiBAQCB3MzJf cmVzdG9yZV9nbHlwaF9zdHJpbmdfY2xpcCAoc3RydWN0IGdseXBoX3N0cmluZyAqcykKICAgICB9 CiB9CiAKLXN0YXRpYyB2b2lkCi13MzJfZ2V0X3NjYWxlX2ZhY3RvcihzdHJ1Y3QgdzMyX2Rpc3Bs YXlfaW5mbyAqZHB5aW5mbywgaW50ICpzY2FsZV94LCBpbnQgKnNjYWxlX3kpCitzdGF0aWMgZG91 YmxlCit3MzJfZ2V0X3NjYWxlX2ZhY3RvcihzdHJ1Y3QgZnJhbWUgKmYpCiB7CisgIHN0cnVjdCB3 MzJfZGlzcGxheV9pbmZvICpkcHlpbmZvID0gRlJBTUVfRElTUExBWV9JTkZPIChmKTsKICAgY29u c3QgaW50IGJhc2VfcmVzID0gOTY7CiAKLSAgKnNjYWxlX3ggPSAqc2NhbGVfeSA9IDE7Ci0KLSAg aWYgKGRweWluZm8pCi0gICAgewotICAgICAgaWYgKGRweWluZm8tPnJlc3ggPiBiYXNlX3JlcykK LQkqc2NhbGVfeCA9IGZsb29yIChkcHlpbmZvLT5yZXN4IC8gYmFzZV9yZXMpOwotICAgICAgaWYg KGRweWluZm8tPnJlc3kgPiBiYXNlX3JlcykKLQkqc2NhbGVfeSA9IGZsb29yIChkcHlpbmZvLT5y ZXN5IC8gYmFzZV9yZXMpOwotICAgIH0KKyAgaWYgKGRweWluZm8gJiYgZHB5aW5mby0+cmVzeCA+ IGJhc2VfcmVzKQorICAgIHJldHVybiByb3VuZCAoZHB5aW5mby0+cmVzeCAvIGJhc2VfcmVzKTsK KyAgZWxzZQorICAgIHJldHVybiAxOwogfQogCiAvKgpAQCAtMzM0LDEyICszMzAsOCBAQCB3MzJf Z2V0X3NjYWxlX2ZhY3RvcihzdHJ1Y3QgdzMyX2Rpc3BsYXlfaW5mbyAqZHB5aW5mbywgaW50ICpz Y2FsZV94LCBpbnQgKnNjYWxlXwogc3RhdGljIHZvaWQKIHczMl9kcmF3X3VuZGVyd2F2ZSAoc3Ry dWN0IGdseXBoX3N0cmluZyAqcywgQ09MT1JSRUYgY29sb3IpCiB7Ci0gIHN0cnVjdCB3MzJfZGlz cGxheV9pbmZvICpkcHlpbmZvID0gRlJBTUVfRElTUExBWV9JTkZPIChzLT5mKTsKLQotICBpbnQg c2NhbGVfeCwgc2NhbGVfeTsKLSAgdzMyX2dldF9zY2FsZV9mYWN0b3IgKGRweWluZm8sICZzY2Fs ZV94LCAmc2NhbGVfeSk7Ci0KLSAgaW50IHdhdmVfaGVpZ2h0ID0gMyAqIHNjYWxlX3ksIHdhdmVf bGVuZ3RoID0gMiAqIHNjYWxlX3gsIHRoaWNrbmVzcyA9IHNjYWxlX3k7CisgIGRvdWJsZSBzY2Fs ZSA9IHczMl9nZXRfc2NhbGVfZmFjdG9yIChzLT5mKTsKKyAgaW50IHdhdmVfaGVpZ2h0ID0gMyAq IHNjYWxlLCB3YXZlX2xlbmd0aCA9IDIgKiBzY2FsZSwgdGhpY2tuZXNzID0gc2NhbGU7CiAgIGlu dCBkeCwgZHksIHgwLCB5MCwgd2lkdGgsIHgxLCB5MSwgeDIsIHkyLCBvZGQsIHhtYXg7CiAgIEVt YWNzX1JlY3RhbmdsZSB3YXZlX2NsaXAsIHN0cmluZ19jbGlwLCBmaW5hbF9jbGlwOwogICBSRUNU IHczMl9maW5hbF9jbGlwLCB3MzJfc3RyaW5nX2NsaXA7CkBAIC0zNDgsNyArMzQwLDcgQEAgdzMy X2RyYXdfdW5kZXJ3YXZlIChzdHJ1Y3QgZ2x5cGhfc3RyaW5nICpzLCBDT0xPUlJFRiBjb2xvcikK ICAgZHggPSB3YXZlX2xlbmd0aDsKICAgZHkgPSB3YXZlX2hlaWdodCAtIDE7CiAgIHgwID0gcy0+ eDsKLSAgeTAgPSBzLT55YmFzZSArIHdhdmVfaGVpZ2h0IC8gMiAtIHNjYWxlX3k7CisgIHkwID0g cy0+eWJhc2UgKyB3YXZlX2hlaWdodCAvIDIgLSBzY2FsZTsKICAgd2lkdGggPSBzLT53aWR0aDsK ICAgeG1heCA9IHgwICsgd2lkdGg7CiAKQEAgLTcxOTIsNiArNzE4NCw3IEBAIHczMl9tYWtlX3Jk YiAoY2hhciAqeHJtX29wdGlvbikKICAgZ3VpX2NsZWFyX3dpbmRvd19tb3VzZV9mYWNlLAogICBn dWlfZ2V0X2dseXBoX292ZXJoYW5ncywKICAgZ3VpX2ZpeF9vdmVybGFwcGluZ19hcmVhLAorICB3 MzJfZ2V0X3NjYWxlX2ZhY3RvciwKICAgdzMyX2RyYXdfZnJpbmdlX2JpdG1hcCwKICAgdzMyX2Rl ZmluZV9mcmluZ2VfYml0bWFwLAogICB3MzJfZGVzdHJveV9mcmluZ2VfYml0bWFwLApkaWZmIC0t Z2l0IGEvc3JjL3h0ZXJtLmMgYi9zcmMveHRlcm0uYwppbmRleCAwNDU1ODk1MzRmLi4xYTVjMzM5 ZmE3IDEwMDY0NAotLS0gYS9zcmMveHRlcm0uYworKysgYi9zcmMveHRlcm0uYwpAQCAtMzYxMSwy MSArMzYxMSwyMSBAQCB4X2RyYXdfc3RyZXRjaF9nbHlwaF9zdHJpbmcgKHN0cnVjdCBnbHlwaF9z dHJpbmcgKnMpCiAgIHMtPmJhY2tncm91bmRfZmlsbGVkX3AgPSB0cnVlOwogfQogCi1zdGF0aWMg dm9pZAoteF9nZXRfc2NhbGVfZmFjdG9yKERpc3BsYXkgKmRpc3AsIGludCAqc2NhbGVfeCwgaW50 ICpzY2FsZV95KQorc3RhdGljIGRvdWJsZQoreF9nZXRfc2NhbGVfZmFjdG9yKHN0cnVjdCBmcmFt ZSAqZikKIHsKKyNpZmRlZiBVU0VfR1RLCisgIHJldHVybiB4Z19nZXRfc2NhbGUgKGYpOworI2Vs c2UKKyAgRGlzcGxheSAqZGlzcCA9IEZSQU1FX1hfRElTUExBWSAoZik7CisgIHN0cnVjdCB4X2Rp c3BsYXlfaW5mbyAqZHB5aW5mbyA9IHhfZGlzcGxheV9pbmZvX2Zvcl9kaXNwbGF5IChkaXNwKTsK ICAgY29uc3QgaW50IGJhc2VfcmVzID0gOTY7Ci0gIHN0cnVjdCB4X2Rpc3BsYXlfaW5mbyAqIGRw eWluZm8gPSB4X2Rpc3BsYXlfaW5mb19mb3JfZGlzcGxheSAoZGlzcCk7Ci0KLSAgKnNjYWxlX3gg PSAqc2NhbGVfeSA9IDE7CiAKLSAgaWYgKGRweWluZm8pCi0gICAgewotICAgICAgaWYgKGRweWlu Zm8tPnJlc3ggPiBiYXNlX3JlcykKLQkqc2NhbGVfeCA9IGZsb29yIChkcHlpbmZvLT5yZXN4IC8g YmFzZV9yZXMpOwotICAgICAgaWYgKGRweWluZm8tPnJlc3kgPiBiYXNlX3JlcykKLQkqc2NhbGVf eSA9IGZsb29yIChkcHlpbmZvLT5yZXN5IC8gYmFzZV9yZXMpOwotICAgIH0KKyAgaWYgKGRweWlu Zm8gJiYgZHB5aW5mby0+cmVzeCA+IGJhc2VfcmVzKQorICAgIHJldHVybiByb3VuZCAoZHB5aW5m by0+cmVzeCAvIGJhc2VfcmVzKTsKKyAgZWxzZQorICAgIHJldHVybiAxOworI2VuZGlmIC8qIFVT RV9HVEsgKi8KIH0KIAogLyoKQEAgLTM2NDEsMjcgKzM2NDEsMjEgQEAgeF9nZXRfc2NhbGVfZmFj dG9yKERpc3BsYXkgKmRpc3AsIGludCAqc2NhbGVfeCwgaW50ICpzY2FsZV95KQogc3RhdGljIHZv aWQKIHhfZHJhd191bmRlcndhdmUgKHN0cnVjdCBnbHlwaF9zdHJpbmcgKnMpCiB7Ci0gIERpc3Bs YXkgKmRpc3BsYXkgPSBGUkFNRV9YX0RJU1BMQVkgKHMtPmYpOwotCiAgIC8qIEFkanVzdCBmb3Ig c2NhbGUvSGlEUEkuICAqLwotICBpbnQgc2NhbGVfeCwgc2NhbGVfeTsKLQotICB4X2dldF9zY2Fs ZV9mYWN0b3IgKGRpc3BsYXksICZzY2FsZV94LCAmc2NhbGVfeSk7Ci0KLSAgaW50IHdhdmVfaGVp Z2h0ID0gMyAqIHNjYWxlX3ksIHdhdmVfbGVuZ3RoID0gMiAqIHNjYWxlX3g7Ci0KKyAgZG91Ymxl IHNjYWxlID0geF9nZXRfc2NhbGVfZmFjdG9yIChzLT5mKTsKKyAgaW50IHdhdmVfaGVpZ2h0ID0g MyAqIHNjYWxlLCB3YXZlX2xlbmd0aCA9IDIgKiBzY2FsZTsKICNpZmRlZiBVU0VfQ0FJUk8KICAg eF9kcmF3X2hvcml6b250YWxfd2F2ZSAocy0+Ziwgcy0+Z2MsIHMtPngsIHMtPnliYXNlIC0gd2F2 ZV9oZWlnaHQgKyAzLAogCQkJICBzLT53aWR0aCwgd2F2ZV9oZWlnaHQsIHdhdmVfbGVuZ3RoKTsK ICNlbHNlICAvKiBub3QgVVNFX0NBSVJPICovCi0gIGludCBkeCwgZHksIHgwLCB5MCwgd2lkdGgs IHgxLCB5MSwgeDIsIHkyLCB4bWF4LCB0aGlja25lc3MgPSBzY2FsZV95OzsKKyAgaW50IGR4LCBk eSwgeDAsIHkwLCB3aWR0aCwgeDEsIHkxLCB4MiwgeTIsIHhtYXgsIHRoaWNrbmVzcyA9IHNjYWxl OwogICBib29sIG9kZDsKICAgWFJlY3RhbmdsZSB3YXZlX2NsaXAsIHN0cmluZ19jbGlwLCBmaW5h bF9jbGlwOwogCiAgIGR4ID0gd2F2ZV9sZW5ndGg7CiAgIGR5ID0gd2F2ZV9oZWlnaHQgLSAxOwog ICB4MCA9IHMtPng7Ci0gIHkwID0gcy0+eWJhc2UgKyB3YXZlX2hlaWdodCAvIDIgLSBzY2FsZV95 OworICB5MCA9IHMtPnliYXNlICsgd2F2ZV9oZWlnaHQgLyAyIC0gc2NhbGU7CiAgIHdpZHRoID0g cy0+d2lkdGg7CiAgIHhtYXggPSB4MCArIHdpZHRoOwogCkBAIC0xMDU1Nyw3ICsxMDU1MSw3IEBA IHhfc2V0X29mZnNldCAoc3RydWN0IGZyYW1lICpmLCByZWdpc3RlciBpbnQgeG9mZiwgcmVnaXN0 ZXIgaW50IHlvZmYsIGludCBjaGFuZ2VfCiB7CiAgIGludCBtb2RpZmllZF90b3AsIG1vZGlmaWVk X2xlZnQ7CiAjaWZkZWYgVVNFX0dUSwotICBpbnQgc2NhbGUgPSB4Z19nZXRfc2NhbGUgKGYpOwor ICBkb3VibGUgc2NhbGUgPSB4X2dldF9zY2FsZV9mYWN0b3IgKGYpOwogI2VuZGlmCiAKICAgaWYg KGNoYW5nZV9ncmF2aXR5ID4gMCkKQEAgLTEzMzU3LDYgKzEzMzUxLDcgQEAgeF9hY3RpdmF0ZV90 aW1lb3V0X2F0aW1lciAodm9pZCkKICAgICBndWlfY2xlYXJfd2luZG93X21vdXNlX2ZhY2UsCiAg ICAgZ3VpX2dldF9nbHlwaF9vdmVyaGFuZ3MsCiAgICAgZ3VpX2ZpeF9vdmVybGFwcGluZ19hcmVh LAorICAgIHhfZ2V0X3NjYWxlX2ZhY3RvciwKICAgICB4X2RyYXdfZnJpbmdlX2JpdG1hcCwKICNp ZmRlZiBVU0VfQ0FJUk8KICAgICB4X2NyX2RlZmluZV9mcmluZ2VfYml0bWFwLAotLSAKMi4yMC4x Cgo= --00000000000053f03305955acf7a--