From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 4/5] x86/pv: Drop {compat_, }create_bounce_frame() and use the C version instead Date: Tue, 27 Feb 2018 14:50:35 +0000 Message-ID: <1519743036-11600-5-git-send-email-andrew.cooper3@citrix.com> References: <1519743036-11600-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1519743036-11600-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Wei Liu , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhlIGNsb2JiZXJpbmcgb2YgVFJBUEJPVU5DRV9mbGFncyBpbiAuTHtjb21wYXRffWJvdW5jZV9l eGNlcHRpb24gaXMgc3Vic3VtZWQKYnkgdGhlIGxvZ2ljIGF0IHRoZSBlbmQgb2YgcHZfY3JlYXRl X2JvdW5jZV9mcmFtZSgpLgoKVGhpcyBjbGVhbnVwIHJlbW92ZXMgYWxsIGNhbGxlcnMgb2YgYXNt X2RvbWFpbl9jcmFzaF9zeW5jaHJvbm91cygpLCB3aGljaCBpcwp0aGVyZWZvcmUgZHJvcHBlZCBh cyB3ZWxsLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0 cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+CkNDOiBXZWkg TGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDQzogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1 QGNpdHJpeC5jb20+Cgp2MjoKICogUmVtb3ZlIHJlZHVuZGFudCBsZWEncwotLS0KIHhlbi9hcmNo L3g4Ni90cmFwcy5jICAgICAgICAgICAgICAgfCAgMjMgLS0tLS0tCiB4ZW4vYXJjaC94ODYveDg2 XzY0L2NvbXBhdC9lbnRyeS5TIHwgMTIwICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog eGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TICAgICAgICB8IDE0NyArKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCAgICAgICAgICAg IHwgICA3IC0tCiA0IGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDI4NyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni90 cmFwcy5jCmluZGV4IDI3MTkwZTAuLmE5YjUzZGEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90 cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCkBAIC0yMTAzLDI5ICsyMTAzLDYgQEAg bG9uZyBzZXRfZGVidWdyZWcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCByZWcsIHVuc2ln bmVkIGxvbmcgdmFsdWUpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgYXNtX2RvbWFpbl9jcmFz aF9zeW5jaHJvbm91cyh1bnNpZ25lZCBsb25nIGFkZHIpCi17Ci0gICAgLyoKLSAgICAgKiBXZSBu ZWVkIGNsZWFyIEFDIGJpdCBoZXJlIGJlY2F1c2UgaW4gZW50cnkuUyBBQyBpcyBzZXQKLSAgICAg KiBieSBBU01fU1RBQyB0byB0ZW1wb3JhcmlseSBhbGxvdyBhY2Nlc3NlcyB0byB1c2VyIHBhZ2Vz Ci0gICAgICogd2hpY2ggaXMgcHJldmVudGVkIGJ5IFNNQVAgYnkgZGVmYXVsdC4KLSAgICAgKgot ICAgICAqIEZvciBzb21lIGNvZGUgcGF0aHMsIHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVk LCBjbGFjKCkKLSAgICAgKiBpcyBub3QgbmVlZGVkLCBidXQgYWRkaW5nIGNsYWMoKSBoZXJlIGlu c3RlYWQgb2YgZWFjaCBwbGFjZQotICAgICAqIGFzbV9kb21haW5fY3Jhc2hfc3luY2hyb25vdXMo KSBpcyBjYWxsZWQgY2FuIHJlZHVjZSB0aGUgY29kZQotICAgICAqIHJlZHVuZGFuY3ksIGFuZCBp dCBpcyBoYXJtbGVzcyBhcyB3ZWxsLgotICAgICAqLwotICAgIGNsYWMoKTsKLQotICAgIGlmICgg YWRkciA9PSAwICkKLSAgICAgICAgYWRkciA9IHRoaXNfY3B1KGxhc3RfZXh0YWJsZV9hZGRyKTsK LQotICAgIHByaW50aygiZG9tYWluX2NyYXNoX3N5bmMgY2FsbGVkIGZyb20gZW50cnkuUzogZmF1 bHQgYXQgJXAgJXBTXG4iLAotICAgICAgICAgICBfcChhZGRyKSwgX3AoYWRkcikpOwotCi0gICAg X19kb21haW5fY3Jhc2hfc3luY2hyb25vdXMoKTsKLX0KLQogLyoKICAqIExvY2FsIHZhcmlhYmxl czoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2Vu dHJ5LlMgYi94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9lbnRyeS5TCmluZGV4IDNlOGI2YzEu LjRmNjgxYmYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5LlMK KysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQvZW50cnkuUwpAQCAtNjAsNyArNjAsNyBA QCBjb21wYXRfdGVzdF9ndWVzdF9ldmVudHM6CiAgICAgICAgIG1vdmwgIFZDUFVfZXZlbnRfc2Vs KCVyYngpLCVlYXgKICAgICAgICAgbW92dyAgJWF4LFRSQVBCT1VOQ0VfY3MoJXJkeCkKICAgICAg ICAgbW92YiAgJFRCRl9JTlRFUlJVUFQsVFJBUEJPVU5DRV9mbGFncyglcmR4KQotICAgICAgICBj YWxsICBjb21wYXRfY3JlYXRlX2JvdW5jZV9mcmFtZQorICAgICAgICBjYWxsICBwdl9jcmVhdGVf ZXhjZXB0aW9uX2ZyYW1lCiAgICAgICAgIGptcCAgIGNvbXBhdF90ZXN0X2FsbF9ldmVudHMKIAog ICAgICAgICBBTElHTgpAQCAtMTAyLDggKzEwMiw3IEBAIGNvbXBhdF9wcm9jZXNzX25taToKICAg ICAgICAgbW92YiAlZGwsVkNQVV9hc3luY19leGNlcHRpb25fbWFzayglcmJ4KQogICAgICAgICAv KiBGQUxMVEhST1VHSCAqLwogY29tcGF0X3Byb2Nlc3NfdHJhcDoKLSAgICAgICAgbGVhcSAgVkNQ VV90cmFwX2JvdW5jZSglcmJ4KSwlcmR4Ci0gICAgICAgIGNhbGwgIGNvbXBhdF9jcmVhdGVfYm91 bmNlX2ZyYW1lCisgICAgICAgIGNhbGwgIHB2X2NyZWF0ZV9leGNlcHRpb25fZnJhbWUKICAgICAg ICAgam1wICAgY29tcGF0X3Rlc3RfYWxsX2V2ZW50cwogCiAvKiAlcmJ4OiBzdHJ1Y3QgdmNwdSwg aW50ZXJydXB0cyBkaXNhYmxlZCAqLwpAQCAtMTk2LDggKzE5NSw3IEBAIEVOVFJZKGNvbXBhdF9w b3N0X2hhbmRsZV9leGNlcHRpb24pCiAgICAgICAgIHRlc3RiICRUQkZfRVhDRVBUSU9OLFRSQVBC T1VOQ0VfZmxhZ3MoJXJkeCkKICAgICAgICAganogICAgY29tcGF0X3Rlc3RfYWxsX2V2ZW50cwog Lkxjb21wYXRfYm91bmNlX2V4Y2VwdGlvbjoKLSAgICAgICAgY2FsbCAgY29tcGF0X2NyZWF0ZV9i b3VuY2VfZnJhbWUKLSAgICAgICAgbW92YiAgJDAsVFJBUEJPVU5DRV9mbGFncyglcmR4KQorICAg ICAgICBjYWxsICBwdl9jcmVhdGVfZXhjZXB0aW9uX2ZyYW1lCiAgICAgICAgIGptcCAgIGNvbXBh dF90ZXN0X2FsbF9ldmVudHMKIAogLyogU2VlIGxzdGFyX2VudGVyIGZvciBlbnRyeSByZWdpc3Rl ciBzdGF0ZS4gKi8KQEAgLTI2NCwxMTggKzI2MiwxMCBAQCBFTlRSWShjb21wYXRfc3lzZW50ZXIp CiAgICAgICAgIG1vdmwgICRGTEFUX0NPTVBBVF9VU0VSX1NTLFVSRUdTX3NzKCVyc3ApCiAgICAg ICAgIGNtb3Z6bCAlZWN4LCVlYXgKICAgICAgICAgbW92dyAgJWF4LFRSQVBCT1VOQ0VfY3MoJXJk eCkKLSAgICAgICAgY2FsbCAgY29tcGF0X2NyZWF0ZV9ib3VuY2VfZnJhbWUKKyAgICAgICAgY2Fs bCAgcHZfY3JlYXRlX2V4Y2VwdGlvbl9mcmFtZQogICAgICAgICBqbXAgICBjb21wYXRfdGVzdF9h bGxfZXZlbnRzCiAKIEVOVFJZKGNvbXBhdF9pbnQ4MF9kaXJlY3RfdHJhcCkKICAgICAgICAgQ1I0 X1BWMzJfUkVTVE9SRQotICAgICAgICBjYWxsICBjb21wYXRfY3JlYXRlX2JvdW5jZV9mcmFtZQor ICAgICAgICBjYWxsICBwdl9jcmVhdGVfZXhjZXB0aW9uX2ZyYW1lCiAgICAgICAgIGptcCAgIGNv bXBhdF90ZXN0X2FsbF9ldmVudHMKLQotICAgICAgICAvKiBjb21wYXRfY3JlYXRlX2JvdW5jZV9m cmFtZSAmIGhlbHBlcnMgZG9uJ3QgbmVlZCB0byBiZSBpbiAudGV4dC5lbnRyeSAqLwotICAgICAg ICAudGV4dAotCi0vKiBDUkVBVEUgQSBCQVNJQyBFWENFUFRJT04gRlJBTUUgT04gR1VFU1QgT1Mg KFJJTkctMSkgU1RBQ0s6ICAgICAgICAgICAgKi8KLS8qICAge1tFUlJDT0RFLF0gRUlQLCBDUywg RUZMQUdTLCBbRVNQLCBTU119ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotLyogJXJk eDogdHJhcF9ib3VuY2UsICVyYng6IHN0cnVjdCB2Y3B1ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICovCi0vKiBPbiByZXR1cm4gb25seSAlcmJ4IGFuZCAlcmR4IGFyZSBndWFyYW50 ZWVkIG5vbi1jbG9iYmVyZWQuICAgICAgICAgICAgKi8KLWNvbXBhdF9jcmVhdGVfYm91bmNlX2Zy YW1lOgotICAgICAgICBBU1NFUlRfSU5URVJSVVBUU19FTkFCTEVECi0gICAgICAgIG1vdiAgICVm cywlZWRpCi0gICAgICAgIEFTTV9TVEFDCi0gICAgICAgIHRlc3RiICQyLFVSRUdTX2NzKzgoJXJz cCkKLSAgICAgICAganogICAgMWYKLSAgICAgICAgLyogUHVzaCBuZXcgZnJhbWUgYXQgcmVnaXN0 ZXJlZCBndWVzdC1PUyBzdGFjayBiYXNlLiAqLwotICAgICAgICBtb3ZsICBWQ1BVX2tlcm5lbF9z cCglcmJ4KSwlZXNpCi0uTGZ0MTogIG1vdiAgIFZDUFVfa2VybmVsX3NzKCVyYngpLCVmcwotICAg ICAgICBzdWJsICAkMio0LCVlc2kKLSAgICAgICAgbW92bCAgVVJFR1NfcnNwKzgoJXJzcCksJWVh eAotLkxmdDI6ICBtb3ZsICAlZWF4LCVmczooJXJzaSkKLSAgICAgICAgbW92bCAgVVJFR1Nfc3Mr OCglcnNwKSwlZWF4Ci0uTGZ0MzogIG1vdmwgICVlYXgsJWZzOjQoJXJzaSkKLSAgICAgICAgam1w ICAgMmYKLTE6ICAgICAgLyogSW4ga2VybmVsIGNvbnRleHQgYWxyZWFkeTogcHVzaCBuZXcgZnJh bWUgYXQgZXhpc3RpbmcgJXJzcC4gKi8KLSAgICAgICAgbW92bCAgVVJFR1NfcnNwKzgoJXJzcCks JWVzaQotLkxmdDQ6ICBtb3YgICBVUkVHU19zcys4KCVyc3ApLCVmcwotMjoKLSAgICAgICAgbW92 cSAgVkNQVV9kb21haW4oJXJieCksJXI4Ci0gICAgICAgIHN1YmwgICQzKjQsJWVzaQotICAgICAg ICBtb3ZxICBWQ1BVX3ZjcHVfaW5mbyglcmJ4KSwlcmF4Ci0gICAgICAgIHB1c2hxIENPTVBBVF9W Q1BVSU5GT191cGNhbGxfbWFzayglcmF4KQotICAgICAgICB0ZXN0YiAkVEJGX0lOVEVSUlVQVCxU UkFQQk9VTkNFX2ZsYWdzKCVyZHgpCi0gICAgICAgIHNldG56ICVjaCAgICAgICAgICAgICAgICAg ICAgICAgIyBUQkZfSU5URVJSVVBUIC0+IHNldCB1cGNhbGwgbWFzawotICAgICAgICBvcmIgICAl Y2gsQ09NUEFUX1ZDUFVJTkZPX3VwY2FsbF9tYXNrKCVyYXgpCi0gICAgICAgIHBvcHEgICVyYXgK LSAgICAgICAgc2hsbCAgJDE2LCVlYXggICAgICAgICAgICAgICAgICAjIEJpdHMgMTYtMjM6IHNh dmVkX3VwY2FsbF9tYXNrCi0gICAgICAgIG1vdncgIFVSRUdTX2NzKzgoJXJzcCksJWF4ICAgICAg IyBCaXRzICAwLTE1OiBDUwotLkxmdDU6ICBtb3ZsICAlZWF4LCVmczo0KCVyc2kpICAgICAgICAg ICMgQ1MgLyBzYXZlZF91cGNhbGxfbWFzawotICAgICAgICBzaHJsICAkMTYsJWVheAotICAgICAg ICB0ZXN0YiAlYWwsJWFsICAgICAgICAgICAgICAgICAgICMgQml0cyAwLTc6IHNhdmVkX3VwY2Fs bF9tYXNrCi0gICAgICAgIHNldHogICVjaCAgICAgICAgICAgICAgICAgICAgICAgIyAlY2ggPT0g IXNhdmVkX3VwY2FsbF9tYXNrCi0gICAgICAgIG1vdmwgIFVSRUdTX2VmbGFncys4KCVyc3ApLCVl YXgKLSAgICAgICAgYW5kbCAgJH4oWDg2X0VGTEFHU19JRnxYODZfRUZMQUdTX0lPUEwpLCVlYXgK LSAgICAgICAgYWRkYiAgJWNoLCVjaCAgICAgICAgICAgICAgICAgICAjIEJpdCA5IChFRkxBR1Mu SUYpCi0gICAgICAgIG9yYiAgICVjaCwlYWggICAgICAgICAgICAgICAgICAgIyBGb2xkIEVGTEFH Uy5JRiBpbnRvICVlYXgKLSAgICAgICAgeG9ybCAgJWVjeCwlZWN4ICAgICAgICAgICAgICAgICAj IGlmICggVk1fQVNTSVNUKHYtPmRvbWFpbiwgYXJjaGl0ZWN0dXJhbF9pb3BsKSApCi0gICAgICAg IHRlc3RiICQxIDw8IFZNQVNTVF9UWVBFX2FyY2hpdGVjdHVyYWxfaW9wbCxET01BSU5fdm1fYXNz aXN0KCVyOCkKLSAgICAgICAgY21vdm56bCBWQ1BVX2lvcGwoJXJieCksJWVjeCAgICAjIEJpdHMg MTM6MTIgKEVGTEFHUy5JT1BMKQotICAgICAgICBvcmwgICAlZWN4LCVlYXggICAgICAgICAgICAg ICAgICMgRm9sZCBFRkxBR1MuSU9QTCBpbnRvICVlYXgKLS5MZnQ2OiAgbW92bCAgJWVheCwlZnM6 Mio0KCVyc2kpICAgICAgICAjIEVGTEFHUwotICAgICAgICBtb3ZsICBVUkVHU19yaXArOCglcnNw KSwlZWF4Ci0uTGZ0NzogIG1vdmwgICVlYXgsJWZzOiglcnNpKSAgICAgICAgICAgIyBFSVAKLSAg ICAgICAgdGVzdGIgJFRCRl9FWENFUFRJT05fRVJSQ09ERSxUUkFQQk9VTkNFX2ZsYWdzKCVyZHgp Ci0gICAgICAgIGp6ICAgIDFmCi0gICAgICAgIHN1YmwgICQ0LCVlc2kKLSAgICAgICAgbW92bCAg VFJBUEJPVU5DRV9lcnJvcl9jb2RlKCVyZHgpLCVlYXgKLS5MZnQ4OiAgbW92bCAgJWVheCwlZnM6 KCVyc2kpICAgICAgICAgICAjIEVSUk9SIENPREUKLTE6Ci0gICAgICAgIEFTTV9DTEFDCi0gICAg ICAgIC8qIFJld3JpdGUgb3VyIHN0YWNrIGZyYW1lIGFuZCByZXR1cm4gdG8gZ3Vlc3QtT1MgbW9k ZS4gKi8KLSAgICAgICAgLyogSUEzMiBSZWYuIFZvbC4gMzogVEYsIFZNLCBSRiBhbmQgTlQgZmxh Z3MgYXJlIGNsZWFyZWQgb24gdHJhcC4gKi8KLSAgICAgICAgYW5kbCAgJH4oWDg2X0VGTEFHU19W TXxYODZfRUZMQUdTX1JGfFwKLSAgICAgICAgICAgICAgICAgWDg2X0VGTEFHU19OVHxYODZfRUZM QUdTX1RGKSxVUkVHU19lZmxhZ3MrOCglcnNwKQotICAgICAgICBtb3YgICAlZnMsVVJFR1Nfc3Mr OCglcnNwKQotICAgICAgICBtb3ZsICAlZXNpLFVSRUdTX3JzcCs4KCVyc3ApCi0uTGZ0MTM6IG1v diAgICVlZGksJWZzCi0gICAgICAgIG1vdnp3bCBUUkFQQk9VTkNFX2NzKCVyZHgpLCVlYXgKLSAg ICAgICAgLyogTnVsbCBzZWxlY3RvcnMgKDAtMykgYXJlIG5vdCBhbGxvd2VkLiAqLwotICAgICAg ICB0ZXN0bCAkfjMsJWVheAotVU5MSUtFTFlfU1RBUlQoeiwgY29tcGF0X2JvdW5jZV9udWxsX3Nl bGVjdG9yKQotICAgICAgICBsZWEgICBVTkxJS0VMWV9ESVNQQVRDSF9MQUJFTChjb21wYXRfYm91 bmNlX251bGxfc2VsZWN0b3IpKCVyaXApLCAlcmRpCi0gICAgICAgIGptcCAgIGFzbV9kb21haW5f Y3Jhc2hfc3luY2hyb25vdXMgIC8qIERvZXMgbm90IHJldHVybiAqLwotX19VTkxJS0VMWV9FTkQo Y29tcGF0X2JvdW5jZV9udWxsX3NlbGVjdG9yKQotICAgICAgICBtb3ZsICAlZWF4LFVSRUdTX2Nz KzgoJXJzcCkKLSAgICAgICAgbW92bCAgVFJBUEJPVU5DRV9laXAoJXJkeCksJWVheAotICAgICAg ICBtb3ZsICAlZWF4LFVSRUdTX3JpcCs4KCVyc3ApCi0gICAgICAgIHJldAotLnNlY3Rpb24gLmZp eHVwLCJheCIKLS5MZngxMzoKLSAgICAgICAgeG9ybCAgJWVkaSwlZWRpCi0gICAgICAgIGptcCAg IC5MZnQxMwotLnByZXZpb3VzCi0gICAgICAgIF9BU01fRVhUQUJMRSguTGZ0MSwgIGRvbV9jcmFz aF9zeW5jX2V4dGFibGUpCi0gICAgICAgIF9BU01fRVhUQUJMRSguTGZ0MiwgIGNvbXBhdF9jcmFz aF9wYWdlX2ZhdWx0KQotICAgICAgICBfQVNNX0VYVEFCTEUoLkxmdDMsICBjb21wYXRfY3Jhc2hf cGFnZV9mYXVsdF80KQotICAgICAgICBfQVNNX0VYVEFCTEUoLkxmdDQsICBkb21fY3Jhc2hfc3lu Y19leHRhYmxlKQotICAgICAgICBfQVNNX0VYVEFCTEUoLkxmdDUsICBjb21wYXRfY3Jhc2hfcGFn ZV9mYXVsdF80KQotICAgICAgICBfQVNNX0VYVEFCTEUoLkxmdDYsICBjb21wYXRfY3Jhc2hfcGFn ZV9mYXVsdF84KQotICAgICAgICBfQVNNX0VYVEFCTEUoLkxmdDcsICBjb21wYXRfY3Jhc2hfcGFn ZV9mYXVsdCkKLSAgICAgICAgX0FTTV9FWFRBQkxFKC5MZnQ4LCAgY29tcGF0X2NyYXNoX3BhZ2Vf ZmF1bHQpCi0gICAgICAgIF9BU01fRVhUQUJMRSguTGZ0MTMsIC5MZngxMykKLQotY29tcGF0X2Ny YXNoX3BhZ2VfZmF1bHRfODoKLSAgICAgICAgYWRkbCAgJDQsJWVzaQotY29tcGF0X2NyYXNoX3Bh Z2VfZmF1bHRfNDoKLSAgICAgICAgYWRkbCAgJDQsJWVzaQotY29tcGF0X2NyYXNoX3BhZ2VfZmF1 bHQ6Ci0uTGZ0MTQ6IG1vdiAgICVlZGksJWZzCi0gICAgICAgIEFTTV9DTEFDCi0gICAgICAgIG1v dmwgICVlc2ksJWVkaQotICAgICAgICBjYWxsICBzaG93X3BhZ2Vfd2FsawotICAgICAgICBqbXAg ICBkb21fY3Jhc2hfc3luY19leHRhYmxlCi0uc2VjdGlvbiAuZml4dXAsImF4IgotLkxmeDE0Ogot ICAgICAgICB4b3JsICAlZWRpLCVlZGkKLSAgICAgICAgam1wICAgLkxmdDE0Ci0ucHJldmlvdXMK LSAgICAgICAgX0FTTV9FWFRBQkxFKC5MZnQxNCwgLkxmeDE0KQpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L3g4Nl82NC9lbnRyeS5TIGIveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TCmluZGV4 IGJmNDE1NjMuLjliYWY1NGIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnku UworKysgYi94ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMKQEAgLTMyLDcgKzMyLDcgQEAgRU5U Ulkoc3dpdGNoX3RvX2tlcm5lbCkKICAgICAgICAgc2V0YyAgJWNsCiAgICAgICAgIGxlYWwgICgs JXJjeCxUQkZfSU5URVJSVVBUKSwlZWN4CiAgICAgICAgIG1vdmIgICVjbCxUUkFQQk9VTkNFX2Zs YWdzKCVyZHgpCi0gICAgICAgIGNhbGwgIGNyZWF0ZV9ib3VuY2VfZnJhbWUKKyAgICAgICAgY2Fs bCAgcHZfY3JlYXRlX2V4Y2VwdGlvbl9mcmFtZQogICAgICAgICBhbmRsICAkflg4Nl9FRkxBR1Nf REYsVVJFR1NfZWZsYWdzKCVyc3ApCiAgICAgICAgIGptcCAgIHRlc3RfYWxsX2V2ZW50cwogCkBA IC0yMDcsNyArMjA3LDcgQEAgdGVzdF9ndWVzdF9ldmVudHM6CiAgICAgICAgIG1vdnEgIFZDUFVf ZXZlbnRfYWRkciglcmJ4KSwlcmF4CiAgICAgICAgIG1vdnEgICVyYXgsVFJBUEJPVU5DRV9laXAo JXJkeCkKICAgICAgICAgbW92YiAgJFRCRl9JTlRFUlJVUFQsVFJBUEJPVU5DRV9mbGFncyglcmR4 KQotICAgICAgICBjYWxsICBjcmVhdGVfYm91bmNlX2ZyYW1lCisgICAgICAgIGNhbGwgIHB2X2Ny ZWF0ZV9leGNlcHRpb25fZnJhbWUKICAgICAgICAgam1wICAgdGVzdF9hbGxfZXZlbnRzCiAKICAg ICAgICAgQUxJR04KQEAgLTI0OSw4ICsyNDksNyBAQCBwcm9jZXNzX25taToKICAgICAgICAgbW92 YiAlZGwsVkNQVV9hc3luY19leGNlcHRpb25fbWFzayglcmJ4KQogICAgICAgICAvKiBGQUxMVEhS T1VHSCAqLwogcHJvY2Vzc190cmFwOgotICAgICAgICBsZWFxIFZDUFVfdHJhcF9ib3VuY2UoJXJi eCksJXJkeAotICAgICAgICBjYWxsIGNyZWF0ZV9ib3VuY2VfZnJhbWUKKyAgICAgICAgY2FsbCBw dl9jcmVhdGVfZXhjZXB0aW9uX2ZyYW1lCiAgICAgICAgIGptcCAgdGVzdF9hbGxfZXZlbnRzCiAK IEVOVFJZKHN5c2VudGVyX2VudHJ5KQpAQCAtMzY5LDcgKzM2OCw3IEBAIFVOTElLRUxZX0VORCht c2lfY2hlY2spCiAgICAgICAgIGNtcGIgICQwLCBET01BSU5faXNfMzJiaXRfcHYoJXJheCkKICAg ICAgICAgam5lICAgY29tcGF0X2ludDgwX2RpcmVjdF90cmFwCiAKLSAgICAgICAgY2FsbCAgY3Jl YXRlX2JvdW5jZV9mcmFtZQorICAgICAgICBjYWxsICBwdl9jcmVhdGVfZXhjZXB0aW9uX2ZyYW1l CiAgICAgICAgIGptcCAgIHRlc3RfYWxsX2V2ZW50cwogCiBpbnQ4MF9zbG93X3BhdGg6CkBAIC0z ODMsMTQxICszODIsNiBAQCBpbnQ4MF9zbG93X3BhdGg6CiAgICAgICAgIHN1YnEgICQyLFVSRUdT X3JpcCglcnNwKQogICAgICAgICBqbXAgICBoYW5kbGVfZXhjZXB0aW9uX3NhdmVkCiAKLSAgICAg ICAgLyogY3JlYXRlX2JvdW5jZV9mcmFtZSAmIGhlbHBlcnMgZG9uJ3QgbmVlZCB0byBiZSBpbiAu dGV4dC5lbnRyeSAqLwotICAgICAgICAudGV4dAotCi0vKiBDUkVBVEUgQSBCQVNJQyBFWENFUFRJ T04gRlJBTUUgT04gR1VFU1QgT1MgU1RBQ0s6ICAgICAgICAgICAgICAgICAgICAgKi8KLS8qICAg eyBSQ1gsIFIxMSwgW0VSUkNPREUsXSBSSVAsIENTLCBSRkxBR1MsIFJTUCwgU1MgfSAgICAgICAg ICAgICAgICAgICAqLwotLyogJXJkeDogdHJhcF9ib3VuY2UsICVyYng6IHN0cnVjdCB2Y3B1ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKiBPbiByZXR1cm4gb25seSAlcmJ4 IGFuZCAlcmR4IGFyZSBndWFyYW50ZWVkIG5vbi1jbG9iYmVyZWQuICAgICAgICAgICAgKi8KLWNy ZWF0ZV9ib3VuY2VfZnJhbWU6Ci0gICAgICAgIEFTU0VSVF9JTlRFUlJVUFRTX0VOQUJMRUQKLSAg ICAgICAgdGVzdGIgJFRGX2tlcm5lbF9tb2RlLFZDUFVfdGhyZWFkX2ZsYWdzKCVyYngpCi0gICAg ICAgIGpueiAgIDFmCi0gICAgICAgIC8qIFB1c2ggbmV3IGZyYW1lIGF0IHJlZ2lzdGVyZWQgZ3Vl c3QtT1Mgc3RhY2sgYmFzZS4gKi8KLSAgICAgICAgcHVzaHEgJXJkeAotICAgICAgICBtb3ZxICAl cmJ4LCVyZGkKLSAgICAgICAgY2FsbCAgdG9nZ2xlX2d1ZXN0X21vZGUKLSAgICAgICAgcG9wcSAg JXJkeAotICAgICAgICBtb3ZxICBWQ1BVX2tlcm5lbF9zcCglcmJ4KSwlcnNpCi0gICAgICAgIGpt cCAgIDJmCi0xOiAgICAgIC8qIEluIGtlcm5lbCBjb250ZXh0IGFscmVhZHk6IHB1c2ggbmV3IGZy YW1lIGF0IGV4aXN0aW5nICVyc3AuICovCi0gICAgICAgIG1vdnEgIFVSRUdTX3JzcCs4KCVyc3Ap LCVyc2kKLSAgICAgICAgYW5kYiAgJDB4ZmMsVVJFR1NfY3MrOCglcnNwKSAgICAjIEluZGljYXRl IGtlcm5lbCBjb250ZXh0IHRvIGd1ZXN0LgotMjogICAgICBhbmRxICAkfjB4ZiwlcnNpICAgICAg ICAgICAgICAgICMgU3RhY2sgZnJhbWVzIGFyZSAxNi1ieXRlIGFsaWduZWQuCi0gICAgICAgIG1v dnEgICRIWVBFUlZJU09SX1ZJUlRfU1RBUlQrMSwlcmF4Ci0gICAgICAgIGNtcHEgICVyYXgsJXJz aQotICAgICAgICBtb3ZxICAkSFlQRVJWSVNPUl9WSVJUX0VORCs4KjgsJXJheAotICAgICAgICBz YmIgICAlZWN4LCVlY3ggICAgICAgICAgICAgICAgICMgSW4gK3ZlIGFkZHJlc3Mgc3BhY2U/IFRo ZW4gb2theS4KLSAgICAgICAgY21wcSAgJXJheCwlcnNpCi0gICAgICAgIGFkYyAgICVlY3gsJWVj eCAgICAgICAgICAgICAgICAgIyBBYm92ZSBYZW4gcHJpdmF0ZSBhcmVhPyBUaGVuIG9rYXkuCi1V TkxJS0VMWV9TVEFSVChnLCBjcmVhdGVfYm91bmNlX2ZyYW1lX2JhZF9zcCkKLSAgICAgICAgbGVh ICAgVU5MSUtFTFlfRElTUEFUQ0hfTEFCRUwoY3JlYXRlX2JvdW5jZV9mcmFtZV9iYWRfc3ApKCVy aXApLCAlcmRpCi0gICAgICAgIGptcCAgIGFzbV9kb21haW5fY3Jhc2hfc3luY2hyb25vdXMgIC8q IERvZXMgbm90IHJldHVybiAqLwotX19VTkxJS0VMWV9FTkQoY3JlYXRlX2JvdW5jZV9mcmFtZV9i YWRfc3ApCi0KLSNkZWZpbmUgU1RPUkVfR1VFU1RfU1RBQ0socmVnLCBuKSBcCi0wOiAgICAgIG1v dnEgICVyZWcsKG4pKjgoJXJzaSk7IFwKLSAgICAgICAgX0FTTV9FWFRBQkxFKDBiLCBkb21haW5f Y3Jhc2hfcGFnZV9mYXVsdF8gIyMgbiAjIyB4OCkKLQotICAgICAgICBzdWJxICAkNyo4LCVyc2kK LSAgICAgICAgbW92cSAgVVJFR1Nfc3MrOCglcnNwKSwlcmF4Ci0gICAgICAgIEFTTV9TVEFDCi0g ICAgICAgIG1vdnEgIFZDUFVfZG9tYWluKCVyYngpLCVyZGkKLSAgICAgICAgU1RPUkVfR1VFU1Rf U1RBQ0socmF4LDYpICAgICAgICAjIFNTCi0gICAgICAgIG1vdnEgIFVSRUdTX3JzcCs4KCVyc3Ap LCVyYXgKLSAgICAgICAgU1RPUkVfR1VFU1RfU1RBQ0socmF4LDUpICAgICAgICAjIFJTUAotICAg ICAgICBtb3ZxICBWQ1BVX3ZjcHVfaW5mbyglcmJ4KSwlcmF4Ci0gICAgICAgIHB1c2hxIFZDUFVJ TkZPX3VwY2FsbF9tYXNrKCVyYXgpCi0gICAgICAgIHRlc3RiICRUQkZfSU5URVJSVVBULFRSQVBC T1VOQ0VfZmxhZ3MoJXJkeCkKLSAgICAgICAgc2V0bnogJWNoICAgICAgICAgICAgICAgICAgICAg ICAjIFRCRl9JTlRFUlJVUFQgLT4gc2V0IHVwY2FsbCBtYXNrCi0gICAgICAgIG9yYiAgICVjaCxW Q1BVSU5GT191cGNhbGxfbWFzayglcmF4KQotICAgICAgICBwb3BxICAlcmF4Ci0gICAgICAgIHNo bHEgICQzMiwlcmF4ICAgICAgICAgICAgICAgICAgIyBCaXRzIDMyLTM5OiBzYXZlZF91cGNhbGxf bWFzawotICAgICAgICBtb3Z3ICBVUkVHU19jcys4KCVyc3ApLCVheCAgICAgICMgQml0cyAgMC0x NTogQ1MKLSAgICAgICAgU1RPUkVfR1VFU1RfU1RBQ0socmF4LDMpICAgICAgICAjIENTIC8gc2F2 ZWRfdXBjYWxsX21hc2sKLSAgICAgICAgc2hycSAgJDMyLCVyYXgKLSAgICAgICAgdGVzdGIgJDB4 RkYsJWFsICAgICAgICAgICAgICAgICAjIEJpdHMgMC03OiBzYXZlZF91cGNhbGxfbWFzawotICAg ICAgICBzZXR6ICAlY2ggICAgICAgICAgICAgICAgICAgICAgICMgJWNoID09ICFzYXZlZF91cGNh bGxfbWFzawotICAgICAgICBtb3ZsICBVUkVHU19lZmxhZ3MrOCglcnNwKSwlZWF4Ci0gICAgICAg IGFuZGwgICR+KFg4Nl9FRkxBR1NfSUZ8WDg2X0VGTEFHU19JT1BMKSwlZWF4Ci0gICAgICAgIGFk ZGIgICVjaCwlY2ggICAgICAgICAgICAgICAgICAgIyBCaXQgOSAoRUZMQUdTLklGKQotICAgICAg ICBvcmIgICAlY2gsJWFoICAgICAgICAgICAgICAgICAgICMgRm9sZCBFRkxBR1MuSUYgaW50byAl ZWF4Ci0gICAgICAgIHhvcmwgICVlY3gsJWVjeCAgICAgICAgICAgICAgICAgIyBpZiAoIFZNX0FT U0lTVCh2LT5kb21haW4sIGFyY2hpdGVjdHVyYWxfaW9wbCkgKQotICAgICAgICB0ZXN0YiAkMSA8 PCBWTUFTU1RfVFlQRV9hcmNoaXRlY3R1cmFsX2lvcGwsRE9NQUlOX3ZtX2Fzc2lzdCglcmRpKQot ICAgICAgICBjbW92bnpsIFZDUFVfaW9wbCglcmJ4KSwlZWN4ICAgICMgQml0cyAxMzoxMiAoRUZM QUdTLklPUEwpCi0gICAgICAgIG9ybCAgICVlY3gsJWVheCAgICAgICAgICAgICAgICAgIyBGb2xk IEVGTEFHUy5JT1BMIGludG8gJWVheAotICAgICAgICBTVE9SRV9HVUVTVF9TVEFDSyhyYXgsNCkg ICAgICAgICMgUkZMQUdTCi0gICAgICAgIG1vdnEgIFVSRUdTX3JpcCs4KCVyc3ApLCVyYXgKLSAg ICAgICAgU1RPUkVfR1VFU1RfU1RBQ0socmF4LDIpICAgICAgICAjIFJJUAotICAgICAgICB0ZXN0 YiAkVEJGX0VYQ0VQVElPTl9FUlJDT0RFLFRSQVBCT1VOQ0VfZmxhZ3MoJXJkeCkKLSAgICAgICAg anogICAgMWYKLSAgICAgICAgc3VicSAgJDgsJXJzaQotICAgICAgICBtb3ZsICBUUkFQQk9VTkNF X2Vycm9yX2NvZGUoJXJkeCksJWVheAotICAgICAgICBTVE9SRV9HVUVTVF9TVEFDSyhyYXgsMikg ICAgICAgICMgRVJST1IgQ09ERQotMToKLSAgICAgICAgbW92cSAgVVJFR1NfcjExKzgoJXJzcCks JXJheAotICAgICAgICBTVE9SRV9HVUVTVF9TVEFDSyhyYXgsMSkgICAgICAgICMgUjExCi0gICAg ICAgIG1vdnEgIFVSRUdTX3JjeCs4KCVyc3ApLCVyYXgKLSAgICAgICAgU1RPUkVfR1VFU1RfU1RB Q0socmF4LDApICAgICAgICAjIFJDWAotICAgICAgICBBU01fQ0xBQwotCi0jdW5kZWYgU1RPUkVf R1VFU1RfU1RBQ0sKLQotICAgICAgICAvKiBSZXdyaXRlIG91ciBzdGFjayBmcmFtZSBhbmQgcmV0 dXJuIHRvIGd1ZXN0LU9TIG1vZGUuICovCi0gICAgICAgIC8qIElBMzIgUmVmLiBWb2wuIDM6IFRG LCBWTSwgUkYgYW5kIE5UIGZsYWdzIGFyZSBjbGVhcmVkIG9uIHRyYXAuICovCi0gICAgICAgIC8q IEFsc28gY2xlYXIgQUM6IGFsaWdubWVudCBjaGVja3Mgc2hvdWxkbid0IHRyaWdnZXIgaW4ga2Vy bmVsIG1vZGUuICovCi0gICAgICAgIG9ybCAgICRUUkFQX3N5c2NhbGwsVVJFR1NfZW50cnlfdmVj dG9yKzgoJXJzcCkKLSAgICAgICAgYW5kbCAgJH4oWDg2X0VGTEFHU19BQ3xYODZfRUZMQUdTX1ZN fFg4Nl9FRkxBR1NfUkZ8XAotICAgICAgICAgICAgICAgICBYODZfRUZMQUdTX05UfFg4Nl9FRkxB R1NfVEYpLFVSRUdTX2VmbGFncys4KCVyc3ApCi0gICAgICAgIG1vdnEgICRGTEFUX0tFUk5FTF9T UyxVUkVHU19zcys4KCVyc3ApCi0gICAgICAgIG1vdnEgICVyc2ksVVJFR1NfcnNwKzgoJXJzcCkK LSAgICAgICAgbW92cSAgJEZMQVRfS0VSTkVMX0NTLFVSRUdTX2NzKzgoJXJzcCkKLSAgICAgICAg bW92cSAgVFJBUEJPVU5DRV9laXAoJXJkeCksJXJheAotICAgICAgICB0ZXN0cSAlcmF4LCVyYXgK LVVOTElLRUxZX1NUQVJUKHosIGNyZWF0ZV9ib3VuY2VfZnJhbWVfYmFkX2JvdW5jZV9pcCkKLSAg ICAgICAgbGVhICAgVU5MSUtFTFlfRElTUEFUQ0hfTEFCRUwoY3JlYXRlX2JvdW5jZV9mcmFtZV9i YWRfYm91bmNlX2lwKSglcmlwKSwgJXJkaQotICAgICAgICBqbXAgICBhc21fZG9tYWluX2NyYXNo X3N5bmNocm9ub3VzICAvKiBEb2VzIG5vdCByZXR1cm4gKi8KLV9fVU5MSUtFTFlfRU5EKGNyZWF0 ZV9ib3VuY2VfZnJhbWVfYmFkX2JvdW5jZV9pcCkKLSAgICAgICAgbW92cSAgJXJheCxVUkVHU19y aXArOCglcnNwKQotICAgICAgICByZXQKLQotICAgICAgICAucHVzaHNlY3Rpb24gLmZpeHVwLCAi YXgiLCBAcHJvZ2JpdHMKLSAgICAgICAgIyBOdW1lcmljIHRhZ3MgYmVsb3cgcmVwcmVzZW50IHRo ZSBpbnRlbmRlZCBvdmVyYWxsICVyc2kgYWRqdXN0bWVudC4KLWRvbWFpbl9jcmFzaF9wYWdlX2Zh dWx0XzZ4ODoKLSAgICAgICAgYWRkcSAgJDgsJXJzaQotZG9tYWluX2NyYXNoX3BhZ2VfZmF1bHRf NXg4OgotICAgICAgICBhZGRxICAkOCwlcnNpCi1kb21haW5fY3Jhc2hfcGFnZV9mYXVsdF80eDg6 Ci0gICAgICAgIGFkZHEgICQ4LCVyc2kKLWRvbWFpbl9jcmFzaF9wYWdlX2ZhdWx0XzN4ODoKLSAg ICAgICAgYWRkcSAgJDgsJXJzaQotZG9tYWluX2NyYXNoX3BhZ2VfZmF1bHRfMng4OgotICAgICAg ICBhZGRxICAkOCwlcnNpCi1kb21haW5fY3Jhc2hfcGFnZV9mYXVsdF8xeDg6Ci0gICAgICAgIGFk ZHEgICQ4LCVyc2kKLWRvbWFpbl9jcmFzaF9wYWdlX2ZhdWx0XzB4ODoKLSAgICAgICAgQVNNX0NM QUMKLSAgICAgICAgbW92cSAgJXJzaSwlcmRpCi0gICAgICAgIGNhbGwgIHNob3dfcGFnZV93YWxr Ci1FTlRSWShkb21fY3Jhc2hfc3luY19leHRhYmxlKQotICAgICAgICBBU01fQ0xBQwotICAgICAg ICAjIEdldCBvdXQgb2YgdGhlIGd1ZXN0LXNhdmUgYXJlYSBvZiB0aGUgc3RhY2suCi0gICAgICAg IEdFVF9TVEFDS19FTkQoYXgpCi0gICAgICAgIGxlYXEgIFNUQUNLX0NQVUlORk9fRklFTEQoZ3Vl c3RfY3B1X3VzZXJfcmVncykoJXJheCksJXJzcAotICAgICAgICAjIGNyZWF0ZV9ib3VuY2VfZnJh bWUoKSB0ZW1wb3JhcmlseSBjbG9iYmVycyBDUy5SUEwuIEZpeCB1cC4KLSAgICAgICAgbW92cSAg U1RBQ0tfQ1BVSU5GT19GSUVMRChjdXJyZW50X3ZjcHUpKCVyYXgpLCAlcmF4Ci0gICAgICAgIG1v dnEgIFZDUFVfZG9tYWluKCVyYXgpLCVyYXgKLSAgICAgICAgY21wYiAgJDAsIERPTUFJTl9pc18z MmJpdF9wdiglcmF4KQotICAgICAgICBzZXRlICAlYWwKLSAgICAgICAgbGVhbCAgKCVyYXgsJXJh eCwyKSwlZWF4Ci0gICAgICAgIG9yYiAgICVhbCxVUkVHU19jcyglcnNwKQotICAgICAgICB4b3Js ICAlZWRpLCVlZGkKLSAgICAgICAgam1wICAgYXNtX2RvbWFpbl9jcmFzaF9zeW5jaHJvbm91cyAv KiBEb2VzIG5vdCByZXR1cm4gKi8KLSAgICAgICAgLnBvcHNlY3Rpb24KLQotICAgICAgICAuc2Vj dGlvbiAudGV4dC5lbnRyeSwgImF4IiwgQHByb2diaXRzCi0KIEVOVFJZKGNvbW1vbl9pbnRlcnJ1 cHQpCiAgICAgICAgIFNBVkVfQUxMIENMQUMKIApAQCAtNjU4LDggKzUyMiw3IEBAIGhhbmRsZV9l eGNlcHRpb25fc2F2ZWQ6CiAgICAgICAgIHRlc3RiICRUQkZfRVhDRVBUSU9OLFRSQVBCT1VOQ0Vf ZmxhZ3MoJXJkeCkKICAgICAgICAganogICAgdGVzdF9hbGxfZXZlbnRzCiAuTGJvdW5jZV9leGNl cHRpb246Ci0gICAgICAgIGNhbGwgIGNyZWF0ZV9ib3VuY2VfZnJhbWUKLSAgICAgICAgbW92YiAg JDAsVFJBUEJPVU5DRV9mbGFncyglcmR4KQorICAgICAgICBjYWxsICBwdl9jcmVhdGVfZXhjZXB0 aW9uX2ZyYW1lCiAgICAgICAgIGptcCAgIHRlc3RfYWxsX2V2ZW50cwogCiAvKiBObyBzcGVjaWFs IHJlZ2lzdGVyIGFzc3VtcHRpb25zLiAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3Nj aGVkLmggYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAppbmRleCAzOWY5Mzg2Li5kNTI0NGYxIDEw MDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4v c2NoZWQuaApAQCAtNjMzLDEzICs2MzMsNiBAQCB2b2lkIG5vcmV0dXJuIF9fZG9tYWluX2NyYXNo X3N5bmNocm9ub3VzKHZvaWQpOwogICAgIF9fZG9tYWluX2NyYXNoX3N5bmNocm9ub3VzKCk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiB9IHdoaWxlICgwKQogCi0v KgotICogQ2FsbGVkIGZyb20gYXNzZW1ibHkgY29kZSwgd2l0aCBhbiBvcHRpb25hbCBhZGRyZXNz IHRvIGhlbHAgaW5kaWNhdGUgd2h5Ci0gKiB0aGUgY3Jhc2ggb2NjdXJlZC4gIElmIGFkZHIgaXMg MCwgbG9vayB1cCBhZGRyZXNzIGZyb20gbGFzdCBleHRhYmxlCi0gKiByZWRpcmVjdGlvbi4KLSAq Lwotdm9pZCBub3JldHVybiBhc21fZG9tYWluX2NyYXNoX3N5bmNocm9ub3VzKHVuc2lnbmVkIGxv bmcgYWRkcik7Ci0KICNkZWZpbmUgc2V0X2N1cnJlbnRfc3RhdGUoX3MpIGRvIHsgY3VycmVudC0+ c3RhdGUgPSAoX3MpOyB9IHdoaWxlICgwKQogdm9pZCBzY2hlZHVsZXJfaW5pdCh2b2lkKTsKIGlu dCAgc2NoZWRfaW5pdF92Y3B1KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgcHJvY2Vzc29y KTsKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZl bA==