From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 18844 invoked from network); 19 Nov 2022 22:57:41 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 19 Nov 2022 22:57:41 -0000 Content-Type: multipart/mixed; boundary="===============8729196744103386578==" MIME-Version: 1.0 Subject: =?utf8?b?UmU6IFtQUiBQQVRDSF0gW1VwZGF0ZWRdIGdjYzogdXBkYXRlIHRvIDEyLjIuMC4=?= To: ml@inbox.vuxu.org From: oreo639 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 19 Nov 2022 23:57:41 +0100 List-Id: Message-ID: <20221119225741.R1wCtQeWYCJ-JF0a847eo7sfNrpTU1NL36002gVZ0N4@z> GitHub notification mails are now in MIME to allow UTF8. --===============8729196744103386578== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgb3JlbzYzOSBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vb3Jl bzYzOS92b2lkLXBhY2thZ2VzIGdjYzExCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC8zNDkwMgoKZ2NjOiB1cGRhdGUgdG8gMTIuMi4wLgo8IS0tIFVuY29t bWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRlIG9wdGlvbnMgd2hpY2ggYXJlIG5vdCBh cHBsaWNhYmxlIC0tPg0KW2NpIHNraXBdDQoNCkVkaXQ6IHRoaXMgUFIgaGFkIGJlZW4gdXBkYXRl ZCBmb3IgZ2NjIDEyLjIuMA0KDQpUaGVyZSBpcyBhIGxpc3Qgb2YgZmFpbGluZyBidWlsZHMgaGVy ZTogaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMvMzk4 MDkNCg0KSSB0ZXN0ZWQgdGhpcyBQUiB3aXRoIGdsaWJjIGFuZCBhZnRlciB1cGRhdGluZyBnbGli YywgaXQgc2VlbXMgdG8gd29yayBmaW5lLg0KSSBhbHNvIHRlc3RlZCB0aGlzIFBSIHdpdGggeDg2 XzY0LW11c2wsIGFuZCBpdCBhcHBlYXJzIHRvIHJ1biBmaW5lIGluIGEgbXVzbCBjaHJvb3QsIGFu ZCByZWNvbXBpbGluZyBhbmQgaW5zdGFsbGluZyBtdXNsIHdpdGggZ2NjIDEyIGRvZXNuJ3QgYXBw ZWFyIHRvIHJlc3VsdCBpbiBhbnkgaXNzdWVzLiAobW9yZSB0ZXN0aW5nIGlzIG5lZWRlZCkNCg0K UGxlYXNlIGxldCBtZSBrbm93IGlmIHRoZXJlIGFyZSBhbnkgaXNzdWVzLg0KDQpJIGNvbXBpbGVk IGJhc2Utc3lzdGVtIGFuZCBiYXNlLWNocm9vdCBvbiB4ODZfNjQtZ2xpYmMgYW5kIHg4Nl82NC1t dXNsIHRvIGVuc3VyZSB0aGF0IGNvbXBpbGVzIGFuZCBpdCBhcHBlYXJzIHRvIHdvcmsgZmluZS4N Cg0KSSB0ZXN0ZWQgc29tZSBvZiB0aGUgY3Jvc3MgY29tcGlsZXJzIGFuZCBhZnRlciBzb21lIGRl YnVnZ2luZyB3aXRoIHRoZSBoZWxwIG9mIENhbWVyb25OZW1vLCB3ZSBmaWd1cmVkIG91dCB0aGUg aXNzdWUuDQpUaGUgY3Jvc3MgY29tcGlsZXJzIGFyZSBidWlsdCB3aXRoIGBub3BpZT15ZXNgIChz cGVjaWZpZWQgaW4gZW52aXJvbm1lbnQvYnVpbGQtc3R5bGUpLCB3aGljaCBjYXVzZXMgaXNzdWVz IHdpdGggZ2xpYmMgMi4zNSsgd2hpY2ggdXNlcyBQSUUgYnkgZGVmYXVsdC4NCmdjYyBhbHdheXMg YnVpbGRzIGl0c2VsZiBhcyBub3BpZS4NCkkgYWRkZWQgYSB3b3JrYXJvdW5kIHRvIGNvbW1vbi9i dWlsZC1zdHlsZS92b2lkLWNyb3NzIGJ1dCBpZiB5b3UgaGF2ZSBhbnkgb3RoZXIgcmVjb21tZW5k YXRpb25zIG9uIGhvdyB0byBoYW5kbGUgaXQsIGZlZWwgZnJlZSB0byBsZXQgbWUga25vdy4NCg0K VGhpcyBQUiBhbHNvIHVwZGF0ZXMgZ2xpYmMgdG8gMi4zNjoNCmh0dHBzOi8vc291cmNld2FyZS5v cmcvZ2xpYmMvd2lraS9SZWxlYXNlLzIuMzYNCg0KTmVjZXNzYXJ5IHRvIGZpeCBwcmV2aW91c2x5 IGV4aXN0aW5nIGJ1aWxkIGZhaWx1cmVzICh1bnJlbGF0ZWQgdG8gdGhpcyBQUik6DQotIFt4XSBm aXJlZm94LWVzciBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1 bGwvMzk2NzcNCi0gW3hdIGd1cG5wIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvcHVsbC8zODg0NA0KDQpLbm93biBwYWNrYWdlcyB0aGF0IG5lZWQgdG8gYmUgZml4 ZWQvdXBkYXRlZCBmb3IgZ2xpYmMgMi4zNjoNCi0gW3hdIHNhbWJhIGh0dHBzOi8vZ2l0aHViLmNv bS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zODcwMA0KLSBbeF0gcWVtdSBodHRwczov L2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg3NjkNCi0gW3hdIGxs dm0gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4Njk0 DQotIFt4XSBtNCBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1 bGwvMzM3MzANCi0gW3hdIGJ0cmZzLXByb2dzIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4 L3ZvaWQtcGFja2FnZXMvcHVsbC8zODc3OA0KLSBbeF0gbnRwIGh0dHBzOi8vZ2l0aHViLmNvbS92 b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zODc3Mg0KLSBbeF0gbGliYXJjaGl2ZSBodHRw czovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg3NzMNCi0gW3hd IGJvb3N0IGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8z ODc4NA0KLSBbeF0gY2hyb290LWdyZXAgaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzM4Nzg1DQotIFt4XSBwbHltb3V0aCBodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg4MjENCi0gW3hdIGZ1c2UgaHR0cHM6Ly9n aXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4ODI3DQotIFt4XSBsaWJv c3RyZWUgaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4 ODI4DQotIFt4XSBsaWJ2aXJ0IGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvcHVsbC8zODg0Mg0KLSBbeF0gc3lzbGludXggaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQt bGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4ODc2DQotIFt4XSBlZml2YXIgaHR0cHM6Ly9naXRo dWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4ODc0DQotIFt4XSBncGdtZSBo dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg4MjUNCg0K S25vd24gcGFja2FnZXMgdGhhdCBuZWVkZWQgdG8gYmUgZml4ZWQvdXBkYXRlZCBmb3IgZ2NjMTI6 DQotIFt4XSBvcGVuc3NoIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2Fn ZXMvcHVsbC8zODg0OQ0KLSBbeF0geGY4Ni12aWRlby12bXdhcmUgaHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4ODQ3DQotIFt4XSBkb3h5Z2VuIGh0dHBz Oi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zODg0Ng0KLSBbeF0g ZmlyZWZveC1lc3IgaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9w dWxsLzM5Njc3DQotIFt4XSBsaWJwcm94eSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL3B1bGwvMzg4MTgNCi0gW3hdIGV4ZW1waSBodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg4MjANCi0gW3hdIG9wZW5qZGs3LWJvb3Rz dHJhcCBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzg4 MjINCi0gW3hdIGxpYnVuaXF1ZTEgaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9wdWxsLzM4ODQ4IG9yIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvcHVsbC8zODg3Mw0KLSBbeF0gbGlid3BkIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zODg3OA0KLSBbeF0gY2dsbSBodHRwczovL2dpdGh1 Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzk3NDgNCi0gW3hdIGNvcmVib290 LXV0aWxzIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8z OTc0OQ0KLSBbeF0gYXBsIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2Fn ZXMvcHVsbC8zOTc1MA0KLSBbeF0gaWd0LWdwdS10b29scyBodHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzk3ODANCg0KTmVlZHMgdG8gYmUgZml4ZWQvdXBk YXRlZCBmb3IgYmludXRpbHM6DQotIFt4XSBncnViIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxp bnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zODg3NQ0KLSBbeF0gbGludXgtdG9vbHMgaHR0cHM6Ly9n aXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4ODc3DQotIFt4XSBrY292 IGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zOTI5MQ0K DQpbSVNPIHBhY2thZ2VzXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLW1rbGl2 ZS9ibG9iL2VlNjk1OTZjNTg1YmVlMzEwMjY3YTQzN2MzY2UwZmMzZWZiY2FmNzIvYnVpbGQteDg2 LWltYWdlcy5zaC5pbiNMMzYtTDY2KSB2ZXJpZmllZDoNCi0gW3hdIGJhc2Ugc3lzdGVtDQotIFt4 XSBiYXNlIGNocm9vdA0KLSBbeF0gZ25vbWUNCi0gW3hdIHhmY2UNCi0gW3hdIG1hdGUNCi0gW3hd IGNpbm5hbW9uDQotIFt4XSBlbmxpZ2h0ZW5tZW50DQotIFt4XSBrZGUNCi0gW3hdIGx4ZGUNCi0g W3hdIGx4cXQNCg0KWW91IGNhbiB0ZXN0IHRoZSBJU09zIGhlcmU6DQpodHRwczovL2RyaXZlLmdv b2dsZS5jb20vZHJpdmUvZm9sZGVycy8xaXg5MkNZU0xVUC1LV2pMeGx0ZGdHNGU4TnUySkNZNW4/ dXNwPXNoYXJpbmcNCg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRoZSBj aGFuZ2VzIGluIHRoaXMgUFI6ICoqYnJpZWZseSoqDQoNCjwhLS0NCiMjIyMgTmV3IHBhY2thZ2UN Ci0gVGhpcyBuZXcgcGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3F1YWxpdHkgcmVxdWlyZW1lbnRz XShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVy L01hbnVhbC5tZCNxdWFsaXR5LXJlcXVpcmVtZW50cyk6ICoqWUVTKip8KipOTyoqDQotLT4NCg0K PCEtLSBOb3RlOiBJZiB0aGUgYnVpbGQgaXMgbGlrZWx5IHRvIHRha2UgbW9yZSB0aGFuIDIgaG91 cnMsIHBsZWFzZSBbc2tpcCBDSV0oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjY29udGludW91cy1pbnRlZ3JhdGlv bikNCmFuZCB0ZXN0IGF0IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5kLCBpZiBzdXBwb3J0ZWQs IGF0IGxlYXN0IG9uZSBjcm9zcyBidWlsZC4NCklnbm9yZSB0aGlzIHNlY3Rpb24gaWYgdGhpcyBQ UiBpcyBub3Qgc2tpcHBpbmcgQ0kuDQotLT4NCg0KIyMjIyBMb2NhbCBidWlsZCB0ZXN0aW5nDQot IEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciBteSBuYXRpdmUgYXJjaGl0ZWN0dXJlLCAoeDg2 XzY0LWdsaWJjKQ0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0 dXJlcyAoaWYgc3VwcG9ydGVkLiBtYXJrIGNyb3NzYnVpbGRzKToNCiAgLSB4ODZfNjQtbXVzbAoK QSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzM0OTAyLnBhdGNoIGlzIGF0dGFjaGVk --===============8729196744103386578== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gcc11-34902.patch" RnJvbSBjM2JhMTdhMDQ1Zjg0ODI4MTMyMmVmNjZjODU3ZTg2N2NmZDg1MTkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFNh dCwgNSBOb3YgMjAyMiAxMTozMzoxMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMzddIGJpbnV0 aWxzOiB1cGRhdGUgdG8gMi4zOS4KCi0tLQogLi4uZTNmM2JkNmQ0NjA0OTFmOGM4ZDAzMmE3ZmVh ODhkNWVjOGZmLnBhdGNoIHwgNjAgLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9maXgtbGliY29sbGVj dG9yLXdpdGhvdXQtamF2YS5wYXRjaCAgICAgICB8IDUzICsrKysrKysrKysrKysrKwogLi4uL3Bh dGNoZXMvcHBjNjQtcmV2ZXJ0LWdudS1hdHRyaWJ1dGVzLnBhdGNoIHwgNjYgKysrKystLS0tLS0t LS0tLS0tLQogc3JjcGtncy9iaW51dGlscy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwg MjUgKysrKy0tLQogNCBmaWxlcyBjaGFuZ2VkLCA4NyBpbnNlcnRpb25zKCspLCAxMTcgZGVsZXRp b25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9iaW51dGlscy9wYXRjaGVzLzE3Njdl M2YzYmQ2ZDQ2MDQ5MWY4YzhkMDMyYTdmZWE4OGQ1ZWM4ZmYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2JpbnV0aWxzL3BhdGNoZXMvZml4LWxpYmNvbGxlY3Rvci13aXRob3V0LWph dmEucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JpbnV0aWxzL3BhdGNoZXMvMTc2N2UzZjNi ZDZkNDYwNDkxZjhjOGQwMzJhN2ZlYTg4ZDVlYzhmZi5wYXRjaCBiL3NyY3BrZ3MvYmludXRpbHMv cGF0Y2hlcy8xNzY3ZTNmM2JkNmQ0NjA0OTFmOGM4ZDAzMmE3ZmVhODhkNWVjOGZmLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTU0MzJkODNjZmYuLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2JpbnV0aWxzL3BhdGNoZXMvMTc2N2UzZjNiZDZkNDYwNDkxZjhjOGQwMzJh N2ZlYTg4ZDVlYzhmZi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLUZyb20g MTc2N2UzZjNiZDZkNDYwNDkxZjhjOGQwMzJhN2ZlYTg4ZDVlYzhmZiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206ICJILkouIEx1IiA8aGpsLnRvb2xzQGdtYWlsLmNvbT4KLURhdGU6IE1v biwgMTYgTm92IDIwMjAgMDY6Mzc6NTMgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gZWxmOiBTZXQg cmVsX2Zyb21fYWJzIHRvIDEgZm9yIF9fZWhkcl9zdGFydAotCi1iZmRsaW5rLmggaGFzCi0KLSAg LyogU3ltYm9sIHdpbGwgYmUgY29udmVydGVkIGZyb20gYWJzb2x1dGUgdG8gc2VjdGlvbi1yZWxh dGl2ZS4gIFNldCBmb3IKLSAgICAgc3ltYm9scyBkZWZpbmVkIGJ5IGEgc2NyaXB0IGZyb20gImRv dCIgKGFsc28gU0VHTUVOVF9TVEFSVCBvciBPUklHSU4pCi0gICAgIG91dHNpZGUgb2YgYW4gb3V0 cHV0IHNlY3Rpb24gc3RhdGVtZW50LiAgKi8KLSAgdW5zaWduZWQgaW50IHJlbF9mcm9tX2FicyA6 IDE7Ci0KLWxpbmtlci5jIGhhcwotCi0ueyogUmV0dXJuIFRSVUUgaWYgdGhlIHN5bWJvbCBkZXNj cmliZWQgYnkgYSBsaW5rZXIgaGFzaCBlbnRyeSBICi0uICAgaXMgZ29pbmcgdG8gYmUgYWJzb2x1 dGUuICBMaW5rZXItc2NyaXB0IGRlZmluZWQgc3ltYm9scyBjYW4gYmUKLS4gICBjb252ZXJ0ZWQg ZnJvbSBhYnNvbHV0ZSB0byBzZWN0aW9uLXJlbGF0aXZlIG9uZXMgbGF0ZSBpbiB0aGUKLS4gICBs aW5rLiAgVXNlIHRoaXMgbWFjcm8gdG8gY29ycmVjdGx5IGRldGVybWluZSB3aGV0aGVyIHRoZSBz eW1ib2wKLS4gICB3aWxsIGFjdHVhbGx5IGVuZCB1cCBhYnNvbHV0ZSBpbiBvdXRwdXQuICAqfQot LiNkZWZpbmUgYmZkX2lzX2Fic19zeW1ib2woSCkgXAotLiAgKCgoSCktPnR5cGUgPT0gYmZkX2xp bmtfaGFzaF9kZWZpbmVkIFwKLS4gICAgfHwgKEgpLT50eXBlID09IGJmZF9saW5rX2hhc2hfZGVm d2VhaykgXAotLiAgICYmIGJmZF9pc19hYnNfc2VjdGlvbiAoKEgpLT51LmRlZi5zZWN0aW9uKSBc Ci0uICAgJiYgIShIKS0+cmVsX2Zyb21fYWJzKQotLgotCi1TZXQgcmVsX2Zyb21fYWJzIHRvIDEg Zm9yIF9fZWhkcl9zdGFydCB3aGljaCB3aWxsIGJlIGNvbnZlcnRlZCBmcm9tCi1hYnNvbHV0ZSB0 byBzZWN0aW9uLXJlbGF0aXZlIGluIGFzc2lnbl9maWxlX3Bvc2l0aW9uc19mb3JfbG9hZF9zZWN0 aW9ucy4KLQotCVBSIGxkLzI2ODY5Ci0JKiBsZGVsZi5jIChsZGVsZl9iZWZvcmVfYWxsb2NhdGlv bik6IFNldCByZWxfZnJvbV9hYnMgdG8gMSBmb3IKLQlfX2VoZHJfc3RhcnQuCi0JKiB0ZXN0c3Vp dGUvbGQtaTM4Ni9pMzg2LmV4cDogUnVuIHByMjY4NjkuCi0JKiB0ZXN0c3VpdGUvbGQtaTM4Ni9w cjI2ODY5LmQ6IE5ldyBmaWxlLgotCSogdGVzdHN1aXRlL2xkLWkzODYvcHIyNjg2OS5zOiBMaWtl d2lzZS4KLQotKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgY2JkNWI5OWNjZTA3MzI3M2Y2Njhi MTU0ZDQ1MTRlOGU3ZTdjY2M1MSkKLS0tLQotIGxkL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg ICB8ICA5ICsrKysrKysrKwotIGxkL2xkZWxmLmMgICAgICAgICAgICAgICAgICAgICB8ICAyICsr Ci0gbGQvdGVzdHN1aXRlL2xkLWkzODYvaTM4Ni5leHAgIHwgIDEgKwotIGxkL3Rlc3RzdWl0ZS9s ZC1pMzg2L3ByMjY4NjkuZCB8IDE0ICsrKysrKysrKysrKysrCi0gbGQvdGVzdHN1aXRlL2xkLWkz ODYvcHIyNjg2OS5zIHwgIDMgKysrCi0gNSBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCsp Ci0gY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC1pMzg2L3ByMjY4NjkuZAotIGNy ZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcjI2ODY5LnMKLQotZGlmZiAt LWdpdCBhL2xkL2xkZWxmLmMgYi9sZC9sZGVsZi5jCi1pbmRleCBiYWRhM2FkZTJkNy4uODMxZDAz MmZlNTYgMTAwNjQ0Ci0tLS0gYS9sZC9sZGVsZi5jCi0rKysgYi9sZC9sZGVsZi5jCi1AQCAtMTU4 OSw2ICsxNTg5LDggQEAgbGRlbGZfYmVmb3JlX2FsbG9jYXRpb24gKGNoYXIgKmF1ZGl0LCBjaGFy ICpkZXBhdWRpdCwKLSAJCSAgICAgIChjaGFyICopICZlaGRyX3N0YXJ0LT51ICsgc2l6ZW9mIGVo ZHJfc3RhcnQtPnUuZGVmLm5leHQsCi0gCQkgICAgICBzaXplb2YgZWhkcl9zdGFydF9zYXZlX3Up OwotIAkgICAgICBlaGRyX3N0YXJ0LT50eXBlID0gYmZkX2xpbmtfaGFzaF9kZWZpbmVkOwotKwkg ICAgICAvKiBJdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBzZWN0aW9uLXJlbGF0aXZlIGxhdGVyLiAg Ki8KLSsJICAgICAgZWhkcl9zdGFydC0+cmVsX2Zyb21fYWJzID0gMTsKLSAJICAgICAgZWhkcl9z dGFydC0+dS5kZWYuc2VjdGlvbiA9IGJmZF9hYnNfc2VjdGlvbl9wdHI7Ci0gCSAgICAgIGVoZHJf c3RhcnQtPnUuZGVmLnZhbHVlID0gMDsKLSAJICAgIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmlu dXRpbHMvcGF0Y2hlcy9maXgtbGliY29sbGVjdG9yLXdpdGhvdXQtamF2YS5wYXRjaCBiL3NyY3Br Z3MvYmludXRpbHMvcGF0Y2hlcy9maXgtbGliY29sbGVjdG9yLXdpdGhvdXQtamF2YS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU0Mzg0ODc1ZjM1OAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvYmludXRpbHMvcGF0Y2hlcy9maXgtbGliY29sbGVjdG9y LXdpdGhvdXQtamF2YS5wYXRjaApAQCAtMCwwICsxLDUzIEBACitGcm9tIDQ5ZGRkODE0YWMxMDcx YWY3YzRmNDVkNWY4Mzk4YjkxODYyZjJjN2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBWbGFkaW1pciBNZXplbnRzZXYgPHZsYWRpbWlyLm1lemVudHNldkBvcmFjbGUuY29tPgorRGF0 ZTogV2VkLCAxNyBBdWcgMjAyMiAxOTo1NToyMyAtMDcwMAorU3ViamVjdDogW1BBVENIXSBncHJv Zm5nOiBmaXggYnVnIDI5NDc5IENvbGxlY3Rpb24gZmFpbHMgd2hlbiBidWlsdCB3aXRob3V0Cisg amF2YSBzdXBwb3J0CisKK2dwcm9mbmcvQ2hhbmdlTG9nCisyMDIyLTA4LTE3ICBWbGFkaW1pciBN ZXplbnRzZXYgIDx2bGFkaW1pci5tZXplbnRzZXZAb3JhY2xlLmNvbT4KKworCVBSIGdwcm9mbmcv Mjk0NzkKKwkqIGxpYmNvbGxlY3Rvci9jb2xsZWN0b3IuYzogQWRkICNpZiBkZWZpbmVkKEdQUk9G TkdfSkFWQV9QUk9GSUxJTkcpIGZvcgorCWphdmEgc3BlY2lmaWMgY29kZS4KKwkqIGxpYmNvbGxl Y3Rvci91bndpbmQuYzogTGlrZXdpc2UuCistLS0KKyBncHJvZm5nL2xpYmNvbGxlY3Rvci9jb2xs ZWN0b3IuYyB8IDIgKysKKyBncHJvZm5nL2xpYmNvbGxlY3Rvci91bndpbmQuYyAgICB8IDIgKysK KyAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvZ3Byb2Zu Zy9saWJjb2xsZWN0b3IvY29sbGVjdG9yLmMgYi9ncHJvZm5nL2xpYmNvbGxlY3Rvci9jb2xsZWN0 b3IuYworaW5kZXggOTNjOWQzMzMwZGU1Li5jZWZmMmMxY2FjY2IgMTAwNjQ0CistLS0gYS9ncHJv Zm5nL2xpYmNvbGxlY3Rvci9jb2xsZWN0b3IuYworKysrIGIvZ3Byb2ZuZy9saWJjb2xsZWN0b3Iv Y29sbGVjdG9yLmMKK0BAIC05MTMsOCArOTEzLDEwIEBAIF9fY29sbGVjdG9yX29wZW5fZXhwZXJp bWVudCAoY29uc3QgY2hhciAqZXhwLCBjb25zdCBjaGFyICpwYXJhbXMsIHNwX29yaWdpbl90IG9y CisgICBfX2NvbGxlY3Rvcl9leHRfdW53aW5kX2tleV9pbml0ICgxLCBOVUxMKTsKKyAKKyAgIC8q IHN0YXJ0IGphdmEgYXR0YWNoIGlmIHN1aXRhYmxlICovCisrI2lmIGRlZmluZWQoR1BST0ZOR19K QVZBX1BST0ZJTElORykKKyAgIGlmIChleHBfb3JpZ2luID09IFNQX09SSUdJTl9EQlhfQVRUQUNI KQorICAgICBfX2NvbGxlY3Rvcl9qcHJvZmlsZV9zdGFydF9hdHRhY2ggKCk7CisrI2VuZGlmCisg ICBzdGFydF9zZWNfdGltZSA9IENBTExfVVRJTCAodGltZSkoTlVMTCk7CisgICBfX2NvbGxlY3Rv cl9zdGFydF90aW1lID0gY29sbGVjdG9yX2ludGVyZmFjZS5nZXRIaVJlc1RpbWUgKCk7CisgICBU cHJpbnRmVCAoREJHX0xUMCwgIlx0X19jb2xsZWN0b3Jfb3Blbl9leHBlcmltZW50OyByZXNldHRp bmcgc3RhcnRfdGltZVxuIik7CitkaWZmIC0tZ2l0IGEvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvdW53 aW5kLmMgYi9ncHJvZm5nL2xpYmNvbGxlY3Rvci91bndpbmQuYworaW5kZXggMTE5MjQzNzg4MDIw Li5mOGUxMTgyM2M4MWUgMTAwNjQ0CistLS0gYS9ncHJvZm5nL2xpYmNvbGxlY3Rvci91bndpbmQu YworKysrIGIvZ3Byb2ZuZy9saWJjb2xsZWN0b3IvdW53aW5kLmMKK0BAIC01NTcsNiArNTU3LDcg QEAgX19jb2xsZWN0b3JfZ2V0X2ZyYW1lX2luZm8gKGhydGltZV90IHRzLCBpbnQgbW9kZSwgdm9p ZCAqYXJnKQorICAgaW50IHNpemUgPSBtYXhfZnJhbWVfc2l6ZTsKKyAKKyAjZGVmaW5lIE1JTihh LGIpICgoYSk8KGIpPyhhKTooYikpCisrI2lmIGRlZmluZWQoR1BST0ZOR19KQVZBX1BST0ZJTElO RykKKyAgIC8qIGdldCBKYXZhIGluZm8gKi8KKyAgIGlmIChfX2NvbGxlY3Rvcl9qYXZhX21vZGUg JiYgX19jb2xsZWN0b3JfamF2YV9hc3luY2dldGNhbGx0cmFjZV9sb2FkZWQgJiYgY29udGV4dCAm JiAhcHNldWRvX2NvbnRleHQpCisgICAgIHsKK0BAIC01NjksNiArNTcwLDcgQEAgX19jb2xsZWN0 b3JfZ2V0X2ZyYW1lX2luZm8gKGhydGltZV90IHRzLCBpbnQgbW9kZSwgdm9pZCAqYXJnKQorIAkg IHNpemUgLT0gc3o7CisgCX0KKyAgICAgfQorKyNlbmRpZgorIAorICAgLyogZ2V0IG5hdGl2ZSBz dGFjayAqLworICAgaWYgKGNvbnRleHQpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JpbnV0aWxzL3Bh dGNoZXMvcHBjNjQtcmV2ZXJ0LWdudS1hdHRyaWJ1dGVzLnBhdGNoIGIvc3JjcGtncy9iaW51dGls cy9wYXRjaGVzL3BwYzY0LXJldmVydC1nbnUtYXR0cmlidXRlcy5wYXRjaAppbmRleCA1ZGU5Mzdm NGZjY2UuLjFjMjA4ZGQ4OTU1YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9iaW51dGlscy9wYXRjaGVz L3BwYzY0LXJldmVydC1nbnUtYXR0cmlidXRlcy5wYXRjaAorKysgYi9zcmNwa2dzL2JpbnV0aWxz L3BhdGNoZXMvcHBjNjQtcmV2ZXJ0LWdudS1hdHRyaWJ1dGVzLnBhdGNoCkBAIC0xLDM5ICsxLDI0 IEBACi1Gcm9tIGIxZmFmOTlmM2U1NDZkZjJjZDMwMmJiMWFkMzZhMjA3ODIyNGZlOGIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGJiZjA1Yjc0MmZkZTUxOGZiOTdjNzg5YjA0M2ZlMGQz YWFmNTQ5ZjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBBcmlhZG5lIENvbmlsbCA8 YXJpYWRuZUBkZXJlZmVyZW5jZWQub3JnPgotRGF0ZTogRnJpLCAzMCBPY3QgMjAyMCAxNjo1OTo0 OCAtMDYwMAorRGF0ZTogVHVlLCAyMSBTZXAgMjAyMSAxNDo1MzoxMyArMDAwMAogU3ViamVjdDog W1BBVENIXSBSZXZlcnQgIlBSMjU4ODIsIC5nbnUuYXR0cmlidXRlcyBhcmUgbm90IGNoZWNrZWQg Zm9yIHNoYXJlZAogIGxpYnJhcmllcyIKIAorVGhpcyByZXZlcnQgaXMgbmVlZGVkIHRvIGF2b2lk IHdyb25nbHkgdGFnZ2luZyBvYmplY3RzIHdpdGggdGhlIGluY29tcGF0aWJsZQorSUJNIGxvbmcg ZG91YmxlIEFCSSwgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBieSBtdXNsIGFuZCB3aWxsIHJlc3Vs dCBpbgorbGlua2luZyBlcnJvcnMgaWYgdXNlZC4KKwogVGhpcyByZXZlcnRzIGNvbW1pdCBhOGFj ZDZlZWI2ZGMyY2M1NDYwZWNlOTBmOTBlYmUzNmI1NmIyMGJhLgogLS0tCi0gYmZkL0NoYW5nZUxv ZyAgICAgfCA2IC0tLS0tLQotIGJmZC9lbGYzMi10aWM2eC5jIHwgMyAtLS0KLSBsZC9DaGFuZ2VM b2cgICAgICB8IDYgLS0tLS0tCi0gbGQvbGRsYW5nLmMgICAgICAgfCA5ICsrKystLS0tLQotIDQg ZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKKyBiZmQvZWxm MzItdGljNnguYyB8ICAzIC0tLQorIGxkL2xkbGFuZy5jICAgICAgIHwgMTAgKysrKy0tLS0tLQor IDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQogCi1kaWZm IC0tZ2l0IGEvYmZkL0NoYW5nZUxvZyBiL2JmZC9DaGFuZ2VMb2cKLWluZGV4IDlmYWMxMjUzOGEu LmI1NDYxNDk0ZTggMTAwNjQ0Ci0tLS0gYS9iZmQvQ2hhbmdlTG9nCi0rKysgYi9iZmQvQ2hhbmdl TG9nCi1AQCAtMTQyMiwxMiArMTQyMiw2IEBACi0gCWFjY2Vzc2luZyByb290LnUuZGVmIG9mIHN5 bWJvbHMuICBBbHNvIGNoZWNrIHJvb3QudS5kZWYuc2VjdGlvbgotIAlpcyBub24tTlVMTC4gIFJl dmVyc2UgdGVzdHMgc28gYXMgdG8gbWFrZSB0aGUgbG9naWMgcG9zaXRpdmUuCi0gCi0tMjAyMC0w NS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5jb20+Ci0tCi0tCVBSIDI1ODgyCi0tCSog ZWxmMzItdGljNnguYyAoZWxmMzJfdGljNnhfbWVyZ2VfYXR0cmlidXRlcyk6IERvbid0IHRyYW5z ZmVyCi0tCVRhZ19BQklfUElDIG9yIFRhZ19BQklfUElEIGZyb20gZHluYW1pYyBvYmplY3RzIHRv IHRoZSBvdXRwdXQuCi0tCi0gMjAyMC0wNS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5j b20+Ci0gCi0gCVBSIDI1ODgyCiBkaWZmIC0tZ2l0IGEvYmZkL2VsZjMyLXRpYzZ4LmMgYi9iZmQv ZWxmMzItdGljNnguYwotaW5kZXggYjhiOTE2YmZkMy4uOTFiYjZhMTBiMSAxMDA2NDQKK2luZGV4 IDU3NTRmM2NiODYwLi4zYWQxZDYxMjc0OSAxMDA2NDQKIC0tLSBhL2JmZC9lbGYzMi10aWM2eC5j CiArKysgYi9iZmQvZWxmMzItdGljNnguYwotQEAgLTM3NDgsOSArMzc0OCw2IEBAIGVsZjMyX3Rp YzZ4X21lcmdlX2F0dHJpYnV0ZXMgKGJmZCAqaWJmZCwgc3RydWN0IGJmZF9saW5rX2luZm8gKmlu Zm8pCitAQCAtMzczNSw5ICszNzM1LDYgQEAgZWxmMzJfdGljNnhfbWVyZ2VfYXR0cmlidXRlcyAo YmZkICppYmZkLCBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbykKICAKICAJY2FzZSBUYWdfQUJJ X1BJQzoKICAJY2FzZSBUYWdfQUJJX1BJRDoKQEAgLTQzLDM2ICsyOCwyMCBAQCBpbmRleCBiOGI5 MTZiZmQzLi45MWJiNmExMGIxIDEwMDY0NAogIAkgIGlmIChvdXRfYXR0cltpXS5pID4gaW5fYXR0 cltpXS5pKQogIAkgICAgb3V0X2F0dHJbaV0uaSA9IGluX2F0dHJbaV0uaTsKICAJICBicmVhazsK LWRpZmYgLS1naXQgYS9sZC9DaGFuZ2VMb2cgYi9sZC9DaGFuZ2VMb2cKLWluZGV4IDRlZWM3ZDI5 NzcuLmI5MzQ1MmY3MGMgMTAwNjQ0Ci0tLS0gYS9sZC9DaGFuZ2VMb2cKLSsrKyBiL2xkL0NoYW5n ZUxvZwotQEAgLTEzMTksMTIgKzEzMTksNiBAQAotIAkqIHRlc3RzdWl0ZS9sZC1hYXJjaDY0L2Zh cmNhbGwtZ3JvdXAuZDogTmV3IHRlc3QgZHJpdmVyLgotIAkqIHRlc3RzdWl0ZS9sZC1hYXJjaDY0 L2FhcmNoNjQtZWxmLmV4cDogUnVuIHRoZSBuZXcgdGVzdC4KLSAKLS0yMDIwLTA1LTAxICBBbGFu IE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KLS0KLS0JUFIgMjU4ODIKLS0JKiBsZGxhbmcuYyAo bGFuZ19jaGVjayk6IENhbGwgYmZkX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEgZm9yCi0tCXNoYXJl ZCBsaWJyYXJpZXMuCi0tCi0gMjAyMC0wNS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBnbWFpbC5j b20+Ci0gCi0gCSogcG8vQkxELVBPVEZJTEVTLmluOiBSZWdlbmVyYXRlLgogZGlmZiAtLWdpdCBh L2xkL2xkbGFuZy5jIGIvbGQvbGRsYW5nLmMKLWluZGV4IDk5NzcxOTUwNzQuLjE3M2Q4ZWMzNDkg MTAwNjQ0CitpbmRleCAzN2I2NGM4OWVlMS4uZjEzYmVhZWY5ZDkgMTAwNjQ0CiAtLS0gYS9sZC9s ZGxhbmcuYwogKysrIGIvbGQvbGRsYW5nLmMKLUBAIC02OTcyLDEyICs2OTcyLDExIEBAIGxhbmdf Y2hlY2sgKHZvaWQpCitAQCAtNzA3MSwxMyArNzA3MSwxMSBAQCBsYW5nX2NoZWNrICh2b2lkKQog IAkJICAgYmZkX3ByaW50YWJsZV9uYW1lIChpbnB1dF9iZmQpLCBpbnB1dF9iZmQsCiAgCQkgICBi ZmRfcHJpbnRhYmxlX25hbWUgKGxpbmtfaW5mby5vdXRwdXRfYmZkKSk7CiAgCX0KIC0KIC0gICAg ICAvKiBJZiB0aGUgaW5wdXQgYmZkIGhhcyBubyBjb250ZW50cywgaXQgc2hvdWxkbid0IHNldCB0 aGUKIC0JIHByaXZhdGUgZGF0YSBvZiB0aGUgb3V0cHV0IGJmZC4gICovCi0tICAgICAgZWxzZSBp ZiAoKGlucHV0X2JmZC0+ZmxhZ3MgJiBEWU5BTUlDKSAhPSAwCi0tCSAgICAgICB8fCBiZmRfY291 bnRfc2VjdGlvbnMgKGlucHV0X2JmZCkgIT0gMCkKKy0gICAgICBlbHNlIGlmICghZmlsZS0+Zmxh Z3MuanVzdF9zeW1zCistCSAgICAgICAmJiAoKGlucHV0X2JmZC0+ZmxhZ3MgJiBEWU5BTUlDKSAh PSAwCistCQkgICB8fCBiZmRfY291bnRfc2VjdGlvbnMgKGlucHV0X2JmZCkgIT0gMCkpCiArICAg ICAgZWxzZSBpZiAoYmZkX2NvdW50X3NlY3Rpb25zIChpbnB1dF9iZmQpKQogIAl7CiArCSAgLyog SWYgdGhlIGlucHV0IGJmZCBoYXMgbm8gY29udGVudHMsIGl0IHNob3VsZG4ndCBzZXQgdGhlCkBA IC04Miw1ICs1MSw0IEBAIGluZGV4IDk5NzcxOTUwNzQuLjE3M2Q4ZWMzNDkgMTAwNjQ0CiAgCiAg CSAgLyogSWYgd2UgYXJlbid0IHN1cHBvc2VkIHRvIHdhcm4gYWJvdXQgbWlzbWF0Y2hlZCBpbnB1 dAogLS0gCi0yLjI5LjIKLQorMi4zMy4wCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JpbnV0aWxzL3Rl bXBsYXRlIGIvc3JjcGtncy9iaW51dGlscy90ZW1wbGF0ZQppbmRleCA2MjcwZjg2MThjODcuLmMz NTVhNWZjODAxNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9iaW51dGlscy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2JpbnV0aWxzL3RlbXBsYXRlCkBAIC0xLDE5ICsxLDIwIEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdiaW51dGlscycKIHBrZ25hbWU9YmludXRpbHMKLXZlcnNpb249Mi4zNS4xCi1yZXZp c2lvbj00Cit2ZXJzaW9uPTIuMzkKK3JldmlzaW9uPTEKIGJvb3RzdHJhcD15ZXMKK2hvc3RtYWtl ZGVwZW5kcz0icGtnY29uZiIKIG1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIgogc2hvcnRfZGVzYz0i R05VIGJpbmFyeSB1dGlsaXRpZXMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw Oi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmludXRpbHMvIgogZGlzdGZpbGVzPSIke0dOVV9TSVRF fS8kcGtnbmFtZS8kcGtnbmFtZS0kdmVyc2lvbi50YXIueHoiCi1jaGVja3N1bT0zY2VkOTFkYjli ZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4M2FlZDBhMjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Citj aGVja3N1bT02NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQz ZGY0ZjY1YzA5NTE2ZDAwCiAKIHN1YnBhY2thZ2VzPSJiaW51dGlscy1kb2MiCiBpZiBbICIkQ0hS T09UX1JFQURZIiBdOyB0aGVuCi0JaG9zdG1ha2VkZXBlbmRzPSJmbGV4IHBlcmwgdGV4aW5mbyIK Kwlob3N0bWFrZWRlcGVuZHMrPSIgZmxleCBwZXJsIHRleGluZm8iCiAJbWFrZWRlcGVuZHMrPSIg ZWxmdXRpbHMtZGV2ZWwiCiAJY2hlY2tkZXBlbmRzPSJiYyIKIAlkZXBlbmRzPSJiaW51dGlscy1k b2MiCkBAIC0zNSwxNSArMzYsMjEgQEAgZG9fY29uZmlndXJlKCkgewogCWxvY2FsIGNvbmYKIAog CWlmIFsgIiRDSFJPT1RfUkVBRFkiIF07IHRoZW4KLQkJY29uZis9IiAtLXdpdGgtZGVidWdpbmZv ZCIKKwkJY29uZis9IiAtLXdpdGgtZGVidWdpbmZvZCAtLWVuYWJsZS1zaGFyZWQiCiAJZWxzZQot CQljb25mKz0iIC0td2l0aG91dC1kZWJ1Z2luZm9kIC0tZGlzYWJsZS1pbnN0YWxsLWxpYmJmZCIK KwkJY29uZis9IiAtLXdpdGhvdXQtZGVidWdpbmZvZCAtLWRpc2FibGUtc2hhcmVkIC0tZGlzYWJs ZS1pbnN0YWxsLWxpYmJmZCIKIAlmaQogCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCQkj IHdlIGRvbid0IHdhbnQgLS13aXRoLXN5c3Jvb3Q9JHtYQlBTX0NST1NTX0JBU0V9IGxpa2UgZ251 LWNvbmZpZ3VyZQogCQljb25mKz0iIC0taG9zdD0ke1hCUFNfQ1JPU1NfVFJJUExFVH0gLS13aXRo LWJ1aWxkLXN5c3Jvb3Q9JHtYQlBTX0NST1NTX0JBU0V9IgogCWZpCiAKKwkjIGdwcm9mbmcgY3Vy cmVudGx5IG9ubHkgc3VwcG9ydHMgeDg2IGFuZCBhYXJjaDY0IGdsaWJjLgorCWNhc2UgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiBpbgorCQl4ODZfNjR8aTM4NnxhYXJjaDY0KSBjb25mKz0iIC0tZW5h YmxlLWdwcm9mbmciIDs7CisJCSopIGNvbmYrPSIgLS1kaXNhYmxlLWdwcm9mbmciIDs7CisJZXNh YworCiAJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJCXBwYyopCiAJCQljb25mKz0i IC0tZW5hYmxlLXNlY3VyZXBsdCIKQEAgLTc2LDEzICs4MywxNCBAQCBkb19jb25maWd1cmUoKSB7 CiAJCS0tbGliZGlyPS91c3IvbGliIFwKIAkJLS1tYW5kaXI9L3Vzci9zaGFyZS9tYW4gXAogCQkt LWluZm9kaXI9L3Vzci9zaGFyZS9pbmZvIFwKKwkJLS1zeXNjb25mZGlyPS9ldGMgXAogCQktLWRp c2FibGUtd2Vycm9yIFwKLQkJLS1kaXNhYmxlLXNoYXJlZCBcCiAJCS0tZGlzYWJsZS1ubHMgXAog CQktLWVuYWJsZS10aHJlYWRzIFwKIAkJLS1lbmFibGUtcGx1Z2lucyBcCiAJCS0tZW5hYmxlLXJl bHJvIFwKIAkJLS1lbmFibGUtZ29sZCBcCisJCS0tZW5hYmxlLW5ldy1kdGFncyBcCiAJCS0tZW5h YmxlLWRldGVybWluaXN0aWMtYXJjaGl2ZXMgXAogCQktLWVuYWJsZS02NC1iaXQtYmZkIFwKIAkJ LS1lbmFibGUtbGQ9ZGVmYXVsdCBcCkBAIC0xNDIsNyArMTUwLDggQEAgYmludXRpbHMtZGV2ZWxf cGFja2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1v dmUgInVzci9saWIvKi5hIgotCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xp Yi9saWJiZmQuc28iCisJCXZtb3ZlICJ1c3IvbGliL2xpYm9wY29kZXMuc28iCiAJfQogfQogCgpG cm9tIDY2ZjY5ODhkNjk1ZWY1NjQzM2M0YzJmYjIxZTc0NGYzNGYwZTg1MmYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU2F0 LCA1IE5vdiAyMDIyIDExOjMzOjExIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwMi8zN10gZ2RiOiBy ZXNvbHZlIGNvbmZsaWN0IHdpdGggYmludXRpbHMgMi4zOQoKLS0tCiBzcmNwa2dzL2dkYi90ZW1w bGF0ZSB8IDUgKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nZGIvdGVtcGxhdGUgYi9zcmNwa2dzL2dkYi90 ZW1wbGF0ZQppbmRleCA5YzVmMTdmZmM1MTkuLmI2NjYzNDhmZWExOSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9nZGIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZGIvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZGInCiBwa2duYW1lPWdkYgogdmVyc2lvbj0xMi4x Ci1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBweWNv bXBpbGVfZGlycz0iL3Vzci9zaGFyZS9nZGIvcHl0aG9uIgogY29uZmlndXJlX2FyZ3M9Ii0tZGlz YWJsZS13ZXJyb3IgLS1kaXNhYmxlLW5scyAtLXdpdGgtc3lzdGVtLXJlYWRsaW5lCkBAIC00OCw3 ICs0OCw4IEBAIHZvcHRfY29uZmxpY3QgZGVidWdpbmZvZCBzdGF0aWMKIAogcG9zdF9pbnN0YWxs KCkgewogCSMgcmVzb2x2ZSBjb25mbGljdHMgd2l0aCBiaW51dGlscwotCXJtIC1yICR7REVTVERJ Un0vdXNyL3tpbmNsdWRlLGxpYixzaGFyZS9pbmZvL2JmZC5pbmZvKn0KKwlybSAtcmYgJHtERVNU RElSfS91c3Ive2luY2x1ZGUsbGlifQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9zaGFyZS9pbmZv L3tiZmQsY3RmLXNwZWN9LmluZm8qCiB9CiAKIGdkYi1jb21tb25fcGFja2FnZSgpIHsKCkZyb20g MDk4MjNiNTNlMjY2YzFkYjMzNTFjOGQ2MDkwZDFhZDhmZDE5NTA2YyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTYXQsIDUg Tm92IDIwMjIgMTE6MzM6MTEgLTA3MDAKU3ViamVjdDogW1BBVENIIDAzLzM3XSBnY2M6IHVwZGF0 ZSB0byAxMi4yLjAuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDEwICstLQogc3JjcGtncy9nY2MvZmlsZXMvZ2NjZ28tbXVzbC5wYXRjaCAgICAg ICAgICAgIHwgNzEgKysrLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2djYy9maWxlcy9saWJnbmFybC1t dXNsLnBhdGNoICAgICAgICAgfCAxOCArKy0tCiBzcmNwa2dzL2djYy9maWxlcy9saWJzc3AtbXVz bC5wYXRjaCAgICAgICAgICAgfCAxMCArLS0KIHNyY3BrZ3MvZ2NjL3BhdGNoZXMvbGliZmZpX2du dWxpbnV4LnBhdGNoICAgICB8IDExIC0tLQogLi4uL2djYy9wYXRjaGVzL2xpYmdjYy1pYm0xMjgt bm8tdGFnLnBhdGNoICAgIHwgMTAgKystCiBzcmNwa2dzL2djYy9wYXRjaGVzL21pcHMtc2dpZGVm c19oLnBhdGNoICAgICAgfCAgMiArLQogc3JjcGtncy9nY2MvdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgODcgKysrKysrKysrLS0tLS0tLS0tLQogOCBmaWxlcyBjaGFuZ2VkLCA4 MCBpbnNlcnRpb25zKCspLCAxMzkgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9nY2MvcGF0Y2hlcy9saWJmZmlfZ251bGludXgucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21t b24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAwNzI5Njc2MmZjYzQuLmE1ZjRmMzI1N2Qz MyAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC02MCw3 ICs2MCw3IEBAIGxpYmNjMXBsdWdpbi5zby4wIGdjYy02LjIuMV8xCiBsaWJpdG0uc28uMSBsaWJp dG0tNC43LjNfMQogbGlibHRvX3BsdWdpbi5zby4wIGdjYy00LjcuM18xCiBsaWJnY2Nfcy5zby4x IGxpYmdjYy00LjQuMF8xCi1saWJnby5zby4xNiBsaWJnby0xMC4yLjBfMQorbGliZ28uc28uMjEg bGliZ28tMTIuMi4wXzEKIGxpYmdjY2ppdC5zby4wIGxpYmdjY2ppdC0xMC4yLjFwcmUxXzEKIGxp YnBlcmwuc28uNS4zNiBwZXJsLTUuMzYuMF8xCiBsaWJnbXAuc28uMTAgZ21wLTUuMC4xXzEKQEAg LTg1Nyw4ICs4NTcsOCBAQCBsaWJnZGttbS0yLjQuc28uMSBndGttbTItMi4yNC4wXzEKIGxpYmd0 a21tLTIuNC5zby4xIGd0a21tMi0yLjI0LjBfMQogbGlicXVhZG1hdGguc28uMCBsaWJxdWFkbWF0 aC00LjQuMF8xCiBsaWJnZm9ydHJhbi5zby41IGxpYmdmb3J0cmFuLTguMi4wXzEKLWxpYmduYXJs LTEwLnNvIGxpYmFkYS0xMC4yLjBfMQotbGliZ25hdC0xMC5zbyBsaWJhZGEtMTAuMi4wXzEKK2xp YmduYXJsLTEyLnNvIGxpYmFkYS0xMi4yLjBfMQorbGliZ25hdC0xMi5zbyBsaWJhZGEtMTIuMi4w XzEKIGxpYndlYnAuc28uNyBsaWJ3ZWJwLTAuNi4wXzEKIGxpYndlYnBtdXguc28uMyBsaWJ3ZWJw LTAuNi4wXzEKIGxpYndlYnBkZW11eC5zby4yIGxpYndlYnAtMC41LjBfMQpAQCAtMTcxMCw4ICsx NzEwLDggQEAgbGliZXh0cmFjdG9yLnNvLjMgbGliZXh0cmFjdG9yLTEuMV8xCiBsaWJleHRyYWN0 b3JfY29tbW9uLnNvLjEgbGliZXh0cmFjdG9yLTEuMV8xCiBsaWJwYW5vMTMuc28uMyBsaWJwYW5v MTMtMi45LjE5XzEKIGxpYnVic2FuLnNvLjEgbGlic2FuaXRpemVyLTguMi4wXzEKLWxpYnRzYW4u c28uMCBsaWJzYW5pdGl6ZXItNi4zLjBfMQotbGliYXNhbi5zby42IGxpYnNhbml0aXplci0xMC4y LjBfMQorbGlidHNhbi5zby4yIGxpYnNhbml0aXplci0xMi4yLjBfMQorbGliYXNhbi5zby44IGxp YnNhbml0aXplci0xMi4yLjBfMQogbGlibHNhbi5zby4wIGxpYnNhbml0aXplci02LjMuMF8xCiBs aWJ2dHYuc28uMCBsaWJ2dHYtNi4zLjBfMQogbGliYXRvbWljLnNvLjEgbGliYXRvbWljLTQuOS4w XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2NjL2ZpbGVzL2djY2dvLW11c2wucGF0Y2ggYi9zcmNw a2dzL2djYy9maWxlcy9nY2Nnby1tdXNsLnBhdGNoCmluZGV4IDk3NjI3Mzk2MTVhZi4uMTJlYzY4 ZGQ4YWEzIDEwMDY0NAotLS0gYS9zcmNwa2dzL2djYy9maWxlcy9nY2Nnby1tdXNsLnBhdGNoCisr KyBiL3NyY3BrZ3MvZ2NjL2ZpbGVzL2djY2dvLW11c2wucGF0Y2gKQEAgLTUzLDE3ICs1Myw2IEBA IFVSTDogaHR0cHM6Ly9jb2RlLmZveGtpdC51cy9hZGVsaWUvcGFja2FnZXMvdHJlZS9tYXN0ZXIv c3lzdGVtL2djYwogIAlwIDo9IHN5c01tYXAoYWRkciwgbiwgcHJvdCwgZmxhZ3MsIGZkLCBvZmYp CiAgCWlmIHVpbnRwdHIocCkgPT0gX01BUF9GQUlMRUQgewogIAkJcmV0dXJuIG5pbCwgZXJybm8o KQotLS0tIGEvbGliZ28vZ28vcnVudGltZS9zaWduYWxfZ2NjZ28uZ28KLSsrKyBiL2xpYmdvL2dv L3J1bnRpbWUvc2lnbmFsX2djY2dvLmdvCi1AQCAtMTExLDcgKzExMSw3IEBAIGZ1bmMgZ2V0c2ln KGkgdWludDMyKSB1aW50cHRyIHsKLSAJaWYgc2lnYWN0aW9uKGksIG5pbCwgJnNhKSA8IDAgewot IAkJLy8gT24gR05VL0xpbnV4IGdsaWJjIHJlamVjdHMgYXR0ZW1wdHMgdG8gY2FsbAotIAkJLy8g c2lnYWN0aW9uIHdpdGggc2lnbmFsIDMyIChTSUdDQU5DRUwpIG9yIDMzIChTSUdTRVRYSUQpLgot LQkJaWYgR09PUyA9PSAibGludXgiICYmIChpID09IDMyIHx8IGkgPT0gMzMpIHsKLSsJCWlmIEdP T1MgPT0gImxpbnV4IiAmJiAoaSA9PSAzMiB8fCBpID09IDMzIHx8IGkgPT0gMzQpIHsKLSAJCQly ZXR1cm4gX1NJR19ERkwKLSAJCX0KLSAJCXRocm93KCJzaWdhY3Rpb24gcmVhZCBmYWlsdXJlIikK IC0tLSBhL2xpYmdvL2dvL3N5c2NhbGwvZXJyc3RyLmdvCiArKysgYi9saWJnby9nby9zeXNjYWxs L2VycnN0ci5nbwogQEAgLTUsNyArNSw2IEBACkBAIC0xNDAsNTUgKzEyOSw2IEBAIFVSTDogaHR0 cHM6Ly9jb2RlLmZveGtpdC51cy9hZGVsaWUvcGFja2FnZXMvdHJlZS9tYXN0ZXIvc3lzdGVtL2dj YwogIAkJcGx3b2ZmID0gJmx3b2ZmCiAgCX0KICAJbiwgZXJyID0gc3BsaWNlKHJmZCwgcGxyb2Zm LCB3ZmQsIHBsd29mZiwgbGVuLCBmbGFncykKLS0tLSBhL2xpYmdvL21rc2lndGFiLnNoCi0rKysg Yi9saWJnby9ta3NpZ3RhYi5zaAotQEAgLTgyLDcgKzgyLDcgQEAgY2hlY2tzaWcgX1NJR1BXUiAg ICAgJ3tfU2lnTm90aWZ5LCAiU0lHUFdSOiBwb3dlciBmYWlsdXJlIHJlc3RhcnQifScKLSBjaGVj a3NpZyBfU0lHRU1UICAgICAne19TaWdUaHJvdywgIlNJR0VNVDogZW11bGF0ZSBpbnN0cnVjdGlv biBleGVjdXRlZCJ9JwotIGNoZWNrc2lnIF9TSUdJTkZPICAgICd7X1NpZ05vdGlmeSwgIlNJR0lO Rk86IHN0YXR1cyByZXF1ZXN0IGZyb20ga2V5Ym9hcmQifScKLSBjaGVja3NpZyBfU0lHVEhSICAg ICAne19TaWdOb3RpZnksICJTSUdUSFI6IHJlc2VydmVkIn0nCi0tY2hlY2tzaWcgX1NJR1BPTEwg ICAgJ3tfU2lnTm90aWZ5LCAiU0lHUE9MTDogcG9sbGFibGUgZXZlbnQgb2NjdXJyZWQifScKLSsj Y2hlY2tzaWcgX1NJR1BPTEwgICAgJ3tfU2lnTm90aWZ5LCAiU0lHUE9MTDogcG9sbGFibGUgZXZl bnQgb2NjdXJyZWQifScKLSBjaGVja3NpZyBfU0lHV0FJVElORyAne19TaWdOb3RpZnksICJTSUdX QUlUSU5HOiByZXNlcnZlZCBzaWduYWwgbm8gbG9uZ2VyIHVzZWQgYnkifScKLSBjaGVja3NpZyBf U0lHTFdQICAgICAne19TaWdOb3RpZnksICJTSUdMV1A6IHJlc2VydmVkIHNpZ25hbCBubyBsb25n ZXIgdXNlZCBieSJ9JwotIGNoZWNrc2lnIF9TSUdGUkVFWkUgICd7X1NpZ05vdGlmeSwgIlNJR0ZS RUVaRTogc3BlY2lhbCBzaWduYWwgdXNlZCBieSBDUFIifScKLUBAIC05NSwxMCArOTUsMTIgQEAg Y2hlY2tzaWcgX1NJR0xPU1QgJyAgIHtfU2lnTm90aWZ5LCAiU0lHTE9TVDogcmVzb3VyY2UgbG9z dCAoU3VuKTsgc2VydmVyIGRpZWQgKEcKLSAKLSAjIFNwZWNpYWwgaGFuZGxpbmcgb2Ygc2lnbmFs cyAzMiBhbmQgMzMgb24gR05VL0xpbnV4IHN5c3RlbXMsCi0gIyBiZWNhdXNlIHRoZXkgYXJlIHNw ZWNpYWwgdG8gZ2xpYmMuCi0rIyBTaWduYWwgMzQgaXMgYWRkaXRpb25hbGx5IHNwZWNpYWwgdG8g TGludXggc3lzdGVtcyB3aXRoIG11c2wuCi0gaWYgdGVzdCAiJHtHT09TfSIgPSAibGludXgiOyB0 aGVuCi0tICAgIFNJR0xJU1Q9JFNJR0xJU1QiXzMyX18zM18iCi0rICAgIFNJR0xJU1Q9JFNJR0xJ U1QiXzMyX18zM19fMzRfIgotICAgICBlY2hvICcJMzI6IHtfU2lnU2V0U3RhY2sgKyBfU2lnVW5i bG9jaywgInNpZ25hbCAzMiJ9LCAvKiBTSUdDQU5DRUw7IHNlZSBpc3N1ZSA2OTk3ICovJwotICAg ICBlY2hvICcJMzM6IHtfU2lnU2V0U3RhY2sgKyBfU2lnVW5ibG9jaywgInNpZ25hbCAzMyJ9LCAv KiBTSUdTRVRYSUQ7IHNlZSBpc3N1ZXMgMzg3MSwgOTQwMCwgMTI0OTggKi8nCi0rICAgIGVjaG8g JwkzNDoge19TaWdTZXRTdGFjayArIF9TaWdVbmJsb2NrLCAic2lnbmFsIDM0In0sIC8qIHNlZSBp c3N1ZSAzMDA2MiAqLycKLSBmaQotIAotIGlmIHRlc3QgIiR7R09PU30iID0gImFpeCI7IHRoZW4K LS0tLSBhL2xpYmdvL3J1bnRpbWUvZ28tc2lnbmFsLmMJMjAyMC0wNy0yMyAwODozNToxOS4wMDQ0 MDI4NDAgKzAyMDAKLSsrKyBiL2xpYmdvL3J1bnRpbWUvZ28tc2lnbmFsLmMJMjAyMC0wOC0wOSAy MTozNTo1NC4zNTI4ODYyMzIgKzAyMDAKLUBAIC0yMjQsNyArMjI0LDExIEBACi0gI2VsaWYgZGVm aW5lZChfX2FscGhhX18pICYmIGRlZmluZWQoX19saW51eF9fKQotIAlyZXQuc2lncGMgPSAoKHVj b250ZXh0X3QqKShjb250ZXh0KSktPnVjX21jb250ZXh0LnNjX3BjOwotICNlbGlmIGRlZmluZWQo X19QUENfXykgJiYgZGVmaW5lZChfX2xpbnV4X18pCi0tCXJldC5zaWdwYyA9ICgodWNvbnRleHRf dCopKGNvbnRleHQpKS0+dWNfbWNvbnRleHQucmVncy0+bmlwOwotKwkjaWZkZWYgX19QUEM2NF9f Ci0rCQlyZXQuc2lncGMgPSAoKHVjb250ZXh0X3QqKShjb250ZXh0KSktPnVjX21jb250ZXh0Lmdw X3JlZ3NbMzJdOwotKwkjZWxzZQotKwkJcmV0LnNpZ3BjID0gKCh1Y29udGV4dF90KikoY29udGV4 dCkpLT51Y19tY29udGV4dC5ncmVnc1szMl07Ci0rCSNlbmRpZgotICNlbGlmIGRlZmluZWQoX19Q UENfXykgJiYgZGVmaW5lZChfQUlYKQotIAlyZXQuc2lncGMgPSAoKHVjb250ZXh0X3QqKShjb250 ZXh0KSktPnVjX21jb250ZXh0LmptcF9jb250ZXh0LmlhcjsKLSAjZWxpZiBkZWZpbmVkKF9fYWFy Y2g2NF9fKSAmJiBkZWZpbmVkKF9fbGludXhfXykKLUBAIC0zMzMsNyArMzM3LDcgQEAKLSAJCXJ1 bnRpbWVfcHJpbnRmKCJzcCAgJVhcbiIsIG0tPnNjX3JlZ3NbMzBdKTsKLSAJCXJ1bnRpbWVfcHJp bnRmKCJwYyAgJVhcbiIsIG0tPnNjX3BjKTsKLSAJICB9Ci0tI2VsaWYgZGVmaW5lZChfX1BQQ19f KSAmJiBkZWZpbmVkKF9fTElUVExFX0VORElBTl9fKSAmJiBkZWZpbmVkKF9fbGludXhfXykKLSsj ZWxpZiBkZWZpbmVkKF9fUFBDX18pICYmIGRlZmluZWQoX19MSVRUTEVfRU5ESUFOX18pICYmIGRl ZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKLSAJICB7Ci0gCQltY29udGV4 dF90ICptID0gJigodWNvbnRleHRfdCopKGNvbnRleHQpKS0+dWNfbWNvbnRleHQ7Ci0gCQlpbnQg aTsKIC0tLSBhL2xpYmdvL3J1bnRpbWUvcnVudGltZS5oCiArKysgYi9saWJnby9ydW50aW1lL3J1 bnRpbWUuaAogQEAgLTUwMCwxMCArNTAwLDEzIEBAIGludCBfX2dvX3NldGNvbnRleHQoX19nb19j b250ZXh0X3QqKTsKQEAgLTIyMCwzICsxNjAsMTQgQEAgVVJMOiBodHRwczovL2NvZGUuZm94a2l0 LnVzL2FkZWxpZS9wYWNrYWdlcy90cmVlL21hc3Rlci9zeXN0ZW0vZ2NjCiAgI2lmIGRlZmluZWQo SEFWRV9TWVNfVVRTTkFNRV9IKQogICNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgogICNlbmRpZgor LS0tIGEvbGliZ28vZ28vcnVudGltZS9vc19saW51eC5nbworKysrIGIvbGliZ28vZ28vcnVudGlt ZS9vc19saW51eC5nbworQEAgLTM2NSw3ICszNjUsNyBAQCBmdW5jIHNldFRocmVhZENQVVByb2Zp bGVyKGh6IGludDMyKSB7CisgCXZhciBzZXZwIF9zaWdldmVudAorIAlzZXZwLnNpZ2V2X25vdGlm eSA9IF9TSUdFVl9USFJFQURfSUQKKyAJc2V2cC5zaWdldl9zaWdubyA9IF9TSUdQUk9GCistCSoo KCppbnQzMikodW5zYWZlLlBvaW50ZXIoJnNldnAuX3NpZ2V2X3VuKSkpID0gaW50MzIobXAucHJv Y2lkKQorKwkqKCgqaW50MzIpKHVuc2FmZS5Qb2ludGVyKCZzZXZwLl9fc2V2X2ZpZWxkcykpKSA9 IGludDMyKG1wLnByb2NpZCkKKyAJcmV0IDo9IHRpbWVyX2NyZWF0ZShfQ0xPQ0tfVEhSRUFEX0NQ VVRJTUVfSUQsICZzZXZwLCAmdGltZXJpZCkKKyAJaWYgcmV0ICE9IDAgeworIAkJLy8gSWYgd2Ug Y2Fubm90IGNyZWF0ZSBhIHRpbWVyIGZvciB0aGlzIE0sIGxlYXZlIHByb2ZpbGVUaW1lclZhbGlk IGZhbHNlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9maWxlcy9saWJnbmFybC1tdXNsLnBhdGNo IGIvc3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwtbXVzbC5wYXRjaAppbmRleCA5OWE3MzRjNDJj OTAuLjkxYzk1OTQ5ZTBlOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nY2MvZmlsZXMvbGliZ25hcmwt bXVzbC5wYXRjaAorKysgYi9zcmNwa2dzL2djYy9maWxlcy9saWJnbmFybC1tdXNsLnBhdGNoCkBA IC01LDcgKzUsNyBAQCBSZWFzb246IFBhdGNoIGxpYmduYXJsIHRvIG5vdCB1c2UgZnVuY3Rpb24g bWlzc2luZyBmcm9tIG11c2wuCiBkaWZmIC1ydXAgZ2NjLTguMi4wL2djYy9hZGEvbGliZ25hcmwv cy1vc2ludGVfX2xpbnV4LmFkcyBnY2MtOC4yLjAtbmV3L2djYy9hZGEvbGliZ25hcmwvcy1vc2lu dGVfX2xpbnV4LmFkcwogLS0tIGEvZ2NjL2FkYS9saWJnbmFybC9zLW9zaW50ZV9fbGludXguYWRz CTIwMTgtMDEtMTEgMDA6NTU6MjUuMDAwMDAwMDAwIC0wODAwCiArKysgYi9nY2MvYWRhL2xpYmdu YXJsL3Mtb3NpbnRlX19saW51eC5hZHMJMjAxOC0xMS0wMSAxNjoxNjoyMy4zNzI0NTI5NTEgLTA3 MDAKLUBAIC0zOTQsMTIgKzM5NCw2IEBAIHBhY2thZ2UgU3lzdGVtLk9TX0ludGVyZmFjZSBpcwor QEAgLTQwMywxMiArNDAzLDYgQEAgcGFja2FnZSBTeXN0ZW0uT1NfSW50ZXJmYWNlIGlzCiAgICAg UFRIUkVBRF9SV0xPQ0tfUFJFRkVSX1dSSVRFUl9OUCAgICAgICAgICAgICAgOiBjb25zdGFudCA6 PSAxOwogICAgIFBUSFJFQURfUldMT0NLX1BSRUZFUl9XUklURVJfTk9OUkVDVVJTSVZFX05QIDog Y29uc3RhbnQgOj0gMjsKICAKQEAgLTE4LDcgKzE4LDcgQEAgZGlmZiAtcnVwIGdjYy04LjIuMC9n Y2MvYWRhL2xpYmduYXJsL3Mtb3NpbnRlX19saW51eC5hZHMgZ2NjLTguMi4wLW5ldy9nY2MvYWRh L2wKICAgICBmdW5jdGlvbiBwdGhyZWFkX3J3bG9ja19pbml0CiAgICAgICAobXV0ZXggOiBhY2Nl c3MgcHRocmVhZF9yd2xvY2tfdDsKICAgICAgICBhdHRyICA6IGFjY2VzcyBwdGhyZWFkX3J3bG9j a2F0dHJfdCkgcmV0dXJuIGludDsKLUBAIC00NjQsMTEgKzQ1OCw2IEBAIHBhY2thZ2UgU3lzdGVt Lk9TX0ludGVyZmFjZSBpcworQEAgLTQ3MCwxMSArNDY0LDYgQEAgcGFja2FnZSBTeXN0ZW0uT1Nf SW50ZXJmYWNlIGlzCiAgICAgICAgcHJvdG9jb2wgOiBpbnQpIHJldHVybiBpbnQ7CiAgICAgcHJh Z21hIEltcG9ydCAoQywgcHRocmVhZF9tdXRleGF0dHJfc2V0cHJvdG9jb2wpOwogIApAQCAtMzMs NyArMzMsNyBAQCBkaWZmIC1ydXAgZ2NjLTguMi4wL2djYy9hZGEvbGliZ25hcmwvcy1vc2ludGVf X2xpbnV4LmFkcyBnY2MtOC4yLjAtbmV3L2djYy9hZGEvbAogZGlmZiAtcnVwIGdjYy04LjIuMC9n Y2MvYWRhL2xpYmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIgZ2NjLTguMi4wLW5ldy9nY2MvYWRh L2xpYmduYXJsL3MtdGFwcm9wX19saW51eC5hZGIKIC0tLSBhL2djYy9hZGEvbGliZ25hcmwvcy10 YXByb3BfX2xpbnV4LmFkYgkyMDE4LTAxLTExIDAwOjU1OjI1LjAwMDAwMDAwMCAtMDgwMAogKysr IGIvZ2NjL2FkYS9saWJnbmFybC9zLXRhcHJvcF9fbGludXguYWRiCTIwMTgtMTEtMTMgMTE6Mjg6 MzYuNDMzOTY0NDQ5IC0wODAwCi1AQCAtMjAyLDkgKzIwMiw2IEBAIHBhY2thZ2UgYm9keSBTeXN0 ZW0uVGFza19QcmltaXRpdmVzLk9wZXIKK0BAIC0xOTgsOSArMTk4LDYgQEAgcGFja2FnZSBib2R5 IFN5c3RlbS5UYXNrX1ByaW1pdGl2ZXMuT3BlcgogICAgIHByYWdtYSBJbXBvcnQKICAgICAgIChD LCBHTkFUX3B0aHJlYWRfY29uZGF0dHJfc2V0dXAsICJfX2duYXRfcHRocmVhZF9jb25kYXR0cl9z ZXR1cCIpOwogIApAQCAtNDMsNyArNDMsNyBAQCBkaWZmIC1ydXAgZ2NjLTguMi4wL2djYy9hZGEv bGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYiBnY2MtOC4yLjAtbmV3L2djYy9hZGEvbAogICAg IC0tICBXZSBkbyBub3QgaGF2ZSBwcmFnbWEgTGlua2VyX09wdGlvbnMgKCItbGNhcCIpOyBoZXJl LCBiZWNhdXNlIHRoaXMKICAgICAtLSAgbGlicmFyeSBpcyBub3QgcHJlc2VudCBvbiBtYW55IExp bnV4IHN5c3RlbXMuICdsaWJjYXAnIGlzIHRoZSBMaW51eAogICAgIC0tICAiY2FwYWJpbGl0aWVz IiBsaWJyYXJ5LCBjYWxsZWQgYnkgX19nbmF0X2hhc19jYXBfc3lzX25pY2UuCi1AQCAtMjE0LDM4 ICsyMTEsNiBAQCBwYWNrYWdlIGJvZHkgU3lzdGVtLlRhc2tfUHJpbWl0aXZlcy5PcGVyCitAQCAt MjEwLDM4ICsyMDcsNiBAQCBwYWNrYWdlIGJvZHkgU3lzdGVtLlRhc2tfUHJpbWl0aXZlcy5PcGVy CiAgICAgLS0gIENvbnZlcnQgQWRhIHByaW9yaXR5IHRvIExpbnV4IHByaW9yaXR5LiBQcmlvcml0 aWVzIGFyZSAxIC4uIDk5IG9uCiAgICAgLS0gIEdOVS9MaW51eCwgc28gd2UgbWFwIDAgLi4gOTgg dG8gMSAuLiA5OS4KICAKQEAgLTc2LDEzICs3NiwxMyBAQCBkaWZmIC1ydXAgZ2NjLTguMi4wL2dj Yy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYiBnY2MtOC4yLjAtbmV3L2djYy9hZGEv bAogLSAgICAgIHJldHVybiBDZWlsaW5nX1N1cHBvcnQ7CiAtICAgZW5kIEdldF9DZWlsaW5nX1N1 cHBvcnQ7CiAtCi0tICAgcHJhZ21hIFdhcm5pbmdzIChPZmYsICJub24tc3RhdGljIGNhbGwgbm90 IGFsbG93ZWQgaW4gcHJlZWxhYm9yYXRlZCB1bml0Iik7CistICAgcHJhZ21hIFdhcm5pbmdzIChP ZmYsICJub24tcHJlZWxhYm9yYWJsZSBjYWxsIG5vdCBhbGxvd2VkKiIpOwogLSAgIENlaWxpbmdf U3VwcG9ydCA6IGNvbnN0YW50IEJvb2xlYW4gOj0gR2V0X0NlaWxpbmdfU3VwcG9ydDsKLS0gICBw cmFnbWEgV2FybmluZ3MgKE9uLCAibm9uLXN0YXRpYyBjYWxsIG5vdCBhbGxvd2VkIGluIHByZWVs YWJvcmF0ZWQgdW5pdCIpOworLSAgIHByYWdtYSBXYXJuaW5ncyAoT24sICJub24tcHJlZWxhYm9y YWJsZSBjYWxsIG5vdCBhbGxvd2VkKiIpOwogICAgIC0tICBUcnVlIGlmIHRoZSBsb2NraW5nIHBv bGljeSBpcyBDZWlsaW5nX0xvY2tpbmcsIGFuZCB0aGUgY3VycmVudCBwcm9jZXNzCiAgICAgLS0g IGhhcyBwZXJtaXNzaW9uIHRvIHVzZSB0aGlzIHBvbGljeS4gVGhlIHByb2Nlc3MgaGFzIHBlcm1p c3Npb24gaWYgaXQgaXMKICAgICAtLSAgcnVubmluZyBhcyAncm9vdCcsIG9yIGlmIHRoZSBjYXBh YmlsaXR5IHdhcyBzZXQgYnkgdGhlIHNldGNhcCBjb21tYW5kLAotQEAgLTM0OCw3ICszMTMsOSBA QCBwYWNrYWdlIGJvZHkgU3lzdGVtLlRhc2tfUHJpbWl0aXZlcy5PcGVyCitAQCAtMzQ0LDcgKzMw OSw5IEBAIHBhY2thZ2UgYm9keSBTeXN0ZW0uVGFza19QcmltaXRpdmVzLk9wZXIKICAgICAtLSBJ bml0X011dGV4IC0tCiAgICAgLS0tLS0tLS0tLS0tLS0tLQogIApAQCAtOTIsNyArOTIsNyBAQCBk aWZmIC1ydXAgZ2NjLTguMi4wL2djYy9hZGEvbGliZ25hcmwvcy10YXByb3BfX2xpbnV4LmFkYiBn Y2MtOC4yLjAtbmV3L2djYy9hZGEvbAogICAgICAgIE11dGV4X0F0dHIgOiBhbGlhc2VkIHB0aHJl YWRfbXV0ZXhhdHRyX3Q7CiAgICAgICAgUmVzdWx0LCBSZXN1bHRfMiA6IEMuaW50OwogIAotQEAg LTM2MCwxNiArMzI3LDcgQEAgcGFja2FnZSBib2R5IFN5c3RlbS5UYXNrX1ByaW1pdGl2ZXMuT3Bl cgorQEAgLTM1NiwxNiArMzIzLDcgQEAgcGFja2FnZSBib2R5IFN5c3RlbS5UYXNrX1ByaW1pdGl2 ZXMuT3BlcgogICAgICAgICAgIHJldHVybiBSZXN1bHQ7CiAgICAgICAgZW5kIGlmOwogIApAQCAt MTEwLDcgKzExMCw3IEBAIGRpZmYgLXJ1cCBnY2MtOC4yLjAvZ2NjL2FkYS9saWJnbmFybC9zLXRh cHJvcF9fbGludXguYWRiIGdjYy04LjIuMC1uZXcvZ2NjL2FkYS9sCiAgICAgICAgICAgUmVzdWx0 IDo9IHB0aHJlYWRfbXV0ZXhhdHRyX3NldHByb3RvY29sCiAgICAgICAgICAgICAoTXV0ZXhfQXR0 cidBY2Nlc3MsIFBUSFJFQURfUFJJT19JTkhFUklUKTsKICAgICAgICAgICBwcmFnbWEgQXNzZXJ0 IChSZXN1bHQgPSAwKTsKLUBAIC00MDksMTEgKzM2Nyw2IEBAIHBhY2thZ2UgYm9keSBTeXN0ZW0u VGFza19QcmltaXRpdmVzLk9wZXIKK0BAIC00MDUsMTEgKzM2Myw2IEBAIHBhY2thZ2UgYm9keSBT eXN0ZW0uVGFza19QcmltaXRpdmVzLk9wZXIKICAgICAgICAgICAgICBSZXN1bHQgOj0gcHRocmVh ZF9yd2xvY2thdHRyX2luaXQgKFJXbG9ja19BdHRyJ0FjY2Vzcyk7CiAgICAgICAgICAgICAgcHJh Z21hIEFzc2VydCAoUmVzdWx0ID0gMCk7CiAgCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9maWxl cy9saWJzc3AtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvZ2NjL2ZpbGVzL2xpYnNzcC1tdXNsLnBhdGNo CmluZGV4IGIyMWEyYzI5ZTU3Yy4uOTlmMjQ4NDAxYTFjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dj Yy9maWxlcy9saWJzc3AtbXVzbC5wYXRjaAorKysgYi9zcmNwa2dzL2djYy9maWxlcy9saWJzc3At bXVzbC5wYXRjaApAQCAtMiw5ICsyLDkgQEAgRmlyc3QgcGFydCB0YWtlbiBmcm9tIEFscGluZS4K IAogU2Vjb25kIHBhcnQgYWRkZWQgdG8gcHJldmVudCBnY2NnbyBmcm9tIHRoaW5raW5nIGl0IGNh biAtZnNwbGl0LXN0YWNrIG9uIG11c2wuCiAKLS0tLSBhL2djYy9nY2MuYwotKysrIGIvZ2NjL2dj Yy5jCi1AQCAtODc0LDEwICs4NzQsMTUgQEAgcHJvcGVyIHBvc2l0aW9uIGFtb25nIHRoZSBvdGhl ciBvdXRwdXQgZmlsZXMuICAqLworLS0tIGEvZ2NjL2djYy5jYworKysrIGIvZ2NjL2djYy5jYwor QEAgLTk4NCwxMCArOTg0LDE1IEBAIHByb3BlciBwb3NpdGlvbiBhbW9uZyB0aGUgb3RoZXIgb3V0 cHV0IGYKICAjZGVmaW5lIExJTktfR0NDX0NfU0VRVUVOQ0VfU1BFQyAiJUcgJXshbm9saWJjOiVM ICVHfSIKICAjZW5kaWYKICAKQEAgLTIyLDEwICsyMiwxMCBAQCBTZWNvbmQgcGFydCBhZGRlZCB0 byBwcmV2ZW50IGdjY2dvIGZyb20gdGhpbmtpbmcgaXQgY2FuIC1mc3BsaXQtc3RhY2sgb24gbXVz bC4KICAjZWxzZQogICNkZWZpbmUgTElOS19TU1BfU1BFQyAiJXtmc3RhY2stcHJvdGVjdG9yfGZz dGFjay1wcm90ZWN0b3ItYWxsIiBcCiAgCQkgICAgICAgInxmc3RhY2stcHJvdGVjdG9yLXN0cm9u Z3xmc3RhY2stcHJvdGVjdG9yLWV4cGxpY2l0IiBcCi1AQCAtMTE1NSw3ICsxMTYwLDcgQEAgc3Rh dGljIGNvbnN0IGNoYXIgKmNjMV9vcHRpb25zID0KK0BAIC0xMjgwLDcgKzEyODUsNyBAQCBzdGF0 aWMgY29uc3QgY2hhciAqY2MxX29wdGlvbnMgPQogICAley12ZXJzaW9uOi0tdmVyc2lvbn1cCiAg ICV7LWhlbHA9KjotLWhlbHA9JSp9XAotICAleyFmc3ludGF4LW9ubHk6JXtTOiVXe28qfSV7IW8q Oi1vICViLnN9fX1cCisgICV7IWZzeW50YXgtb25seTole1M6JVd7byp9JXshbyo6LW8gJXclYi5z fX19XAogLSAle2ZzeW50YXgtb25seTotbyAlan0gJXstcGFyYW0qfVwKICsgJXtmc3ludGF4LW9u bHk6LW8gJWp9ICV7LXBhcmFtKn0gIiBOT19TU1BfU1BFQyAiXAogICAle2NvdmVyYWdlOi1mcHJv ZmlsZS1hcmNzIC1mdGVzdC1jb3ZlcmFnZX1cCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9wYXRj aGVzL2xpYmZmaV9nbnVsaW51eC5wYXRjaCBiL3NyY3BrZ3MvZ2NjL3BhdGNoZXMvbGliZmZpX2du dWxpbnV4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ODI0NWJkNWJlMWEu LjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2djYy9wYXRjaGVzL2xpYmZmaV9nbnVsaW51eC5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSBhL2xpYmZmaS9zcmMvY2xv c3VyZXMuYwotKysrIGIvbGliZmZpL3NyYy9jbG9zdXJlcy5jCi1AQCAtMzQsNyArMzQsNyBAQAot ICNpbmNsdWRlIDxmZmlfY29tbW9uLmg+Ci0KLSAjaWYgIUZGSV9NTUFQX0VYRUNfV1JJVCAmJiAh RkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRQotLSMgaWYgX19nbnVfbGludXhfXyAmJiAhZGVmaW5l ZChfX0FORFJPSURfXykKLSsjIGlmIF9fbGludXhfXyAmJiAhZGVmaW5lZChfX0FORFJPSURfXykK LSAvKiBUaGlzIG1hY3JvIGluZGljYXRlcyBpdCBtYXkgYmUgZm9yYmlkZGVuIHRvIG1hcCBhbm9u eW1vdXMgbWVtb3J5Ci0gICAgd2l0aCBib3RoIHdyaXRlIGFuZCBleGVjdXRlIHBlcm1pc3Npb24u ICBDb2RlIGNvbXBpbGVkIHdoZW4gdGhpcwotICAgIG9wdGlvbiBpcyBkZWZpbmVkIHdpbGwgYXR0 ZW1wdCB0byBtYXAgc3VjaCBwYWdlcyBvbmNlLCBidXQgaWYgaXQKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ2NjL3BhdGNoZXMvbGliZ2NjLWlibTEyOC1uby10YWcucGF0Y2ggYi9zcmNwa2dzL2djYy9w YXRjaGVzL2xpYmdjYy1pYm0xMjgtbm8tdGFnLnBhdGNoCmluZGV4IGJkZjVjNzVkOTE3ZC4uMjZk ODAzNTZhZDBkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2djYy9wYXRjaGVzL2xpYmdjYy1pYm0xMjgt bm8tdGFnLnBhdGNoCisrKyBiL3NyY3BrZ3MvZ2NjL3BhdGNoZXMvbGliZ2NjLWlibTEyOC1uby10 YWcucGF0Y2gKQEAgLTI5LDEwICsyOSwxNCBAQCBkaWZmIC0tZ2l0IGEvbGliZ2NjL2NvbmZpZy9y czYwMDAvdC1saW51eCBiL2xpYmdjYy9jb25maWcvcnM2MDAwL3QtbGludXgKIGluZGV4IDRmNmQ0 YzQuLmZhOTNiYjYgMTAwNjQ0CiAtLS0gYS9saWJnY2MvY29uZmlnL3JzNjAwMC90LWxpbnV4CiAr KysgYi9saWJnY2MvY29uZmlnL3JzNjAwMC90LWxpbnV4Ci1AQCAtMSwzICsxLDMgQEAKK0BAIC0x LDYgKzEsNiBAQAogIFNITElCX01BUEZJTEVTICs9ICQoc3JjZGlyKS9jb25maWcvcnM2MDAwL2xp YmdjYy1nbGliYy52ZXIKICAKLS1IT1NUX0xJQkdDQzJfQ0ZMQUdTICs9IC1tbG9uZy1kb3VibGUt MTI4IC1tbm8tbWluaW1hbC10b2MKLStIT1NUX0xJQkdDQzJfQ0ZMQUdTICs9IC1tbG9uZy1kb3Vi bGUtMTI4IC1tbm8tZ251LWF0dHJpYnV0ZSAtbW5vLW1pbmltYWwtdG9jCistSE9TVF9MSUJHQ0My X0NGTEFHUyArPSAtbWxvbmctZG91YmxlLTEyOAorK0hPU1RfTElCR0NDMl9DRkxBR1MgKz0gLW1s b25nLWRvdWJsZS0xMjggLW1uby1nbnUtYXR0cmlidXRlCisgCisgIyBUaGlzIGlzIGEgd2F5IG9m IHNlbGVjdGluZyAtbWNtb2RlbD1zbWFsbCBmb3IgcHBjNjQsIHdoaWNoIGdpdmVzCisgIyBzbWFs bGVyIGFuZCBmYXN0ZXIgbGliZ2NjIGNvZGUuICBEaXJlY3RseSBzcGVjaWZ5aW5nIC1tY21vZGVs PXNtYWxsCisKIC0tIAogMi4yNC4wCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy9wYXRjaGVzL21p cHMtc2dpZGVmc19oLnBhdGNoIGIvc3JjcGtncy9nY2MvcGF0Y2hlcy9taXBzLXNnaWRlZnNfaC5w YXRjaAppbmRleCBkZGRmZTEwZThjMDYuLmNkMGFlN2EzODBkZiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nY2MvcGF0Y2hlcy9taXBzLXNnaWRlZnNfaC5wYXRjaAorKysgYi9zcmNwa2dzL2djYy9wYXRj aGVzL21pcHMtc2dpZGVmc19oLnBhdGNoCkBAIC0zLDcgKzMsNyBAQAogQEAgLTQyLDcgKzQyLDcg QEAKICAjZGVmaW5lIF9NSVBTX1NJTV9OQUJJMzIJMgogICNkZWZpbmUgX01JUFNfU0lNX0FCSTY0 CQkzCi0gI2VsaWYgIWRlZmluZWQoX19PcGVuQlNEX18pCisgI2VsaWYgIWRlZmluZWQoX19PcGVu QlNEX18pICYmICFkZWZpbmVkKF9fRnJlZUJTRF9fKQogLSMgaW5jbHVkZSA8c2dpZGVmcy5oPgog KyMgaW5jbHVkZSA8YXNtL3NnaWRlZnMuaD4KICAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z2NjL3RlbXBsYXRlIGIvc3JjcGtncy9nY2MvdGVtcGxhdGUKaW5kZXggYWIzNjQzZGU0Zjk4Li5h MjBhZjdjMGVmMmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2NjL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ2NjL3RlbXBsYXRlCkBAIC0zLDE4ICszLDE0IEBACiAjIHdoaWNoIHVzZSB0aGUgdmVyc2lv biBudW1iZXIuCiAKIHBrZ25hbWU9Z2NjCi0jIHdlIGFyZSB1c2luZyBhIDEwLXN0YWJsZSBnaXQg c25hcHNob3QgYWxwaW5lIGlzIHVzaW5nIGluIG9yZGVyCi0jIHRvIGdldCByZWdyZXNzaW9uIGZp eGVzIG5vdCB5ZXQgaW5jb3Jwb3JhdGUgaW50byBhIHN0YWJsZSByZWxlYXNlCi0jIGl0IHNob3Vs ZCBiZSBwb3NzaWJsZSB0byBzd2l0Y2ggYmFjayB0byBzdGFibGUgd2l0aCAxMC4zIG9yIDExCi12 ZXJzaW9uPTEwLjIuMXByZTEKLXJldmlzaW9uPTMKLV9wYXRjaHZlcj0iJHt2ZXJzaW9uJXByZSp9 IgotX21pbm9ydmVyPSIke19wYXRjaHZlciUuKn0iCit2ZXJzaW9uPTEyLjIuMAorcmV2aXNpb249 MQorX21pbm9ydmVyPSIke3ZlcnNpb24lLip9IgogX21ham9ydmVyPSIke19taW5vcnZlciUuKn0i Ci1fZ21wX3ZlcnNpb249Ni4yLjAKK19nbXBfdmVyc2lvbj02LjIuMQogX21wZnJfdmVyc2lvbj00 LjEuMAotX21wY192ZXJzaW9uPTEuMS4wCi1faXNsX3ZlcnNpb249MC4yMQorX21wY192ZXJzaW9u PTEuMi4xCitfaXNsX3ZlcnNpb249MC4yNAogY3JlYXRlX3dya3NyYz15ZXMKIHNob3J0X2Rlc2M9 IkdOVSBDb21waWxlciBDb2xsZWN0aW9uIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRv eEB2b2lkbGludXgub3JnPiIKQEAgLTIyLDE2ICsxOCwxNiBAQCBob21lcGFnZT0iaHR0cDovL2dj Yy5nbnUub3JnIgogbGljZW5zZT0iR0ZETC0xLjItb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIs IExHUEwtMi4xLW9yLWxhdGVyIgogIyAqLW11c2wgYnVpbGRlcnMgaGF2ZSBpc3N1ZXMgZmV0Y2hp bmcgaHR0cHM6Ly9mdHAuZ251Lm9yZy9nbnUvbXBjL21wYy0xLjEuMC50YXIuZ3oKIGRpc3RmaWxl cz0iCi0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke3ZlcnNpb24v cHJlL19wcmV9LnRhci54egorICR7R05VX1NJVEV9L2djYy9nY2MtJHt2ZXJzaW9ufS9nY2MtJHt2 ZXJzaW9ufS50YXIueHoKICBodHRwczovL2dtcGxpYi5vcmcvZG93bmxvYWQvZ21wL2dtcC0ke19n bXBfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vbXBmci9tcGZyLSR7X21wZnJfdmVyc2lv bn0udGFyLnh6CiAgJHtHTlVfU0lURX0vbXBjL21wYy0ke19tcGNfdmVyc2lvbn0udGFyLmd6CiAg JHtTT1VSQ0VGT1JHRV9TSVRFfS9saWJpc2wvaXNsLSR7X2lzbF92ZXJzaW9ufS50YXIuYnoyIgot Y2hlY2tzdW09Ijc3MmNmZDVkMzBlYjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2 MTAxMDNiODE0YjczMmM1OTAKLSAyNThlNmNkNTFiM2ZiZGZjMTg1YzcxNmQ1NWY4MmMwOGFmZjU3 ZGYwYzZmYmQxNDNjZjZlZDU2MTI2N2ExNTI2CitjaGVja3N1bT0iZTU0OWNmOWNmMzU5NGEwMGUy N2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJlYjQxODFlMDY5MjYyMzBmZgorIGZkNDgyOTkx MmNkZGQxMmY4NDE4MWMzNDUxY2M3NTJiZTIyNDY0M2U4N2ZhYzQ5N2I2OWVkZGRhZGM0OWI0ZjIK ICAwYzk4YTNmMTczMmZmNmNhNGVhNjkwNTUyMDc5ZGE5YzU5Nzg3MmQzMGU5NmVjMjg0MTRlZTIz Yzk1NTU4YTdmCi0gNjk4NWM1MzgxNDNjMTIwOGRjYjFhYzQyY2VkYWQ2ZmY1MmUyNjdiNDdlNWY5 NzAxODNhM2U3NTEyNWI0M2MyZQotIGQxOGNhMTFmOGFkMWEzOWFiNmQwM2QzZGNiMzM2NWFiNDE2 NzIwZmNiNjViNDJkNjlmMzRmNTFiZjBhMGU4NTkiCisgMTc1MDNkMmMzOTVkZmNmMTA2YjYyMmRj MTQyNjgzYzExOTk0MzFkMDk1MzY3YzZhYWNiYTZlZWMzMDM0MDQ1OQorIGZjZjc4ZGQ5NjU2YzEw ZWI4Y2Y5ZmJkNWY1OWEwYjZiMDEzODYyMDVmZTE5MzRiM2IyODdhMGExODk4MTQ1YzAiCiAKIG5v cGllPXllcwogbGliMzJkaXNhYmxlZD15ZXMKQEAgLTUyLDggKzQ4LDExIEBAIGlmIFsgIiRDSFJP T1RfUkVBRFkiIF07IHRoZW4KIAlob3N0bWFrZWRlcGVuZHM9InRhciB0ZXhpbmZvIHBlcmwgZmxl eCIKIGVsc2UKIAlfaGF2ZV9nY2Nnbz1ubworCSMgbGlienN0ZCBmYWlscyB0byBsaW5rIGluIGJv b3RzdHJhcCB3aXRoIGdsaWJjIDIuMzYKKwkjIHdoZW4gemxpYiBoYXMgYmVlbiBjb21waWxlZCB3 aXRoIGdsaWJjIDIuMzIuCisJTERGTEFHUz0iLWx6c3RkIC1wdGhyZWFkIgogZmkKLW1ha2VkZXBl bmRzPSJ6bGliLWRldmVsIgorbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgbGlienN0ZC1kZXZlbCIK IGRlcGVuZHM9ImJpbnV0aWxzIGxpYmdjYy1kZXZlbC0ke3ZlcnNpb259XyR7cmV2aXNpb259CiAg bGlic3RkYysrLWRldmVsLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gbGlic3NwLWRldmVsLSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCiBjaGVja2RlcGVuZHM9ImRlamFnbnUiCkBAIC03MCwxMyArNjks MTMgQEAgaWYgWyAiJGJ1aWxkX29wdGlvbl9nbmF0Ym9vdCIgXTsgdGhlbgogCWNhc2UgIiRYQlBT X1RBUkdFVF9NQUNISU5FIiBpbgogCXg4Nl82NCkKIAkJX2duYXRfdGFyYmFsbD0iZ25hdC1ncGwt MjAxNy14ODZfNjQtbGludXgtYmluLnRhci5neiIKLQkJZGlzdGZpbGVzKz0iIGh0dHA6Ly9taXJy b3JzLmNkbi5hZGFjb3JlLmNvbS9hcnQvNTkxYzZkODBjN2E0NDdhZjJkZWVkMWQ3PiRfZ25hdF90 YXJiYWxsIgorCQlkaXN0ZmlsZXMrPSIgaHR0cHM6Ly9jb21tdW5pdHkuZG93bmxvYWQuYWRhY29y ZS5jb20vdjEvOTY4MmUyZTFmMmYyMzJjZTAzZmUyMWQ3N2IxNGMzN2EwZGU1NjQ5Yj9maWxlbmFt ZT0kX2duYXRfdGFyYmFsbD4kX2duYXRfdGFyYmFsbCIKIAkJY2hlY2tzdW0rPSIgYjk0MmJjYWMy MGRlYTM5NzQ4YjM5ZjhiNjI0ZDk2MTlmNjBhOGRlZTJlODE5NWRiZTM4MjljODM1YjA5NTZlNiIK IAkJYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnbmF0Ym9vdCIKIAkJOzsKIAlpNjg2KQogCQlfZ25h dF90YXJiYWxsPSJnbmF0LWdwbC0yMDE0LXg4Ni1saW51eC1iaW4udGFyLmd6IgotCQlkaXN0Zmls ZXMrPSIgaHR0cDovL21pcnJvcnMuY2RuLmFkYWNvcmUuY29tL2FydC81NjRiM2U5ZGM4ZTE5NmIw NDBmYmUyNDg+JF9nbmF0X3RhcmJhbGwiCisJCWRpc3RmaWxlcys9IiBodHRwczovL2NvbW11bml0 eS5kb3dubG9hZC5hZGFjb3JlLmNvbS92MS9jNWU5ZTZmZGZmNWNiNzdlZDkwY2Y4YzYyNTM2NjUz ZTI3YzBiZWQ2P2ZpbGVuYW1lPSRfZ25hdF90YXJiYWxsPiRfZ25hdF90YXJiYWxsIgogCQljaGVj a3N1bSs9IiAzYjY5MzUxMGY1ZDIyYTI0MGFiYjMwMzQ5MzRjMWFkYmQ4MGNjZDZlNGY2MWE0ZjQ5 MWNjNDA4ZmRmZDljMDQyIgogCQlidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImduYXRib290IgogCQk7 OwpAQCAtMTU1LDggKzE1NCw4IEBAIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogZmkKIAog cG9zdF9leHRyYWN0KCkgewotCW12IGdjYy0ke3ZlcnNpb24vcHJlL19wcmV9LyogZ2NjLSR7dmVy c2lvbi9wcmUvX3ByZX0vLj8/KiAuCi0Jcm1kaXIgZ2NjLSR7dmVyc2lvbi9wcmUvX3ByZX0KKwlt diBnY2MtJHt2ZXJzaW9ufS8qIGdjYy0ke3ZlcnNpb259Ly4/PyogLgorCXJtZGlyIGdjYy0ke3Zl cnNpb259CiAJbXYgZ21wLSR7X2dtcF92ZXJzaW9ufSBnbXAKIAltdiBtcGZyLSR7X21wZnJfdmVy c2lvbn0gbXBmcgogCW12IG1wYy0ke19tcGNfdmVyc2lvbn0gbXBjCkBAIC0xODYsOSArMTg1LDkg QEAgcHJlX2NvbmZpZ3VyZSgpIHsKIAlzZWQgLWkgJ3NAXC4vZml4aW5jXC5zaEAtYyB0cnVlQCcg Z2NjL01ha2VmaWxlLmluCiAKIAlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSBtdXNsIF07IHRo ZW4KLQkJcGF0Y2ggLXAxIC1pICR7RklMRVNESVJ9L2xpYmduYXJsLW11c2wucGF0Y2gKLQkJcGF0 Y2ggLXAxIC1pICR7RklMRVNESVJ9L2xpYnNzcC1tdXNsLnBhdGNoCi0JCXBhdGNoIC1wMSAtaSAk e0ZJTEVTRElSfS9nY2Nnby1tdXNsLnBhdGNoCisJCWZvciBwIGluICR7RklMRVNESVJ9LyotbXVz bC5wYXRjaDsgZG8KKwkJCXBhdGNoIC1wMSAtaSAkcAorCQlkb25lCiAJZmkKIH0KIGRvX2NvbmZp Z3VyZSgpIHsKQEAgLTM0MywxNiArMzQyLDE2IEBAIGRvX2luc3RhbGwoKSB7CiAKIAkjIE1ha2Ug dmVyc2lvbiBhIHN5bWxpbmsgb2YgbWFqb3IgdmVyc2lvbiB0byBtYWtlIGFsbCB2ZXJzaW9ucwog CSMgZnJvbSB0aGUgc2FtZSBzZXJpZXMgd29yayBhdXRvbWFnaWNhbGx5LgotCW12ICR7REVTVERJ Un0vdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfcGF0Y2h2ZXJ9IFwKKwltdiAke0RFU1RESVJ9 L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7dmVyc2lvbn0gXAogCQkke0RFU1RESVJ9L3Vzci9s aWIvZ2NjLyR7X3RyaXBsZXR9LyR7X21pbm9ydmVyfQogCWxuIC1zZnIgJHtERVNURElSfS91c3Iv bGliL2djYy8ke190cmlwbGV0fS8ke19taW5vcnZlcn0gXAotCQkke0RFU1RESVJ9L3Vzci9saWIv Z2NjLyR7X3RyaXBsZXR9LyR7X3BhdGNodmVyfQorCQkke0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7 X3RyaXBsZXR9LyR7dmVyc2lvbn0KIAogCSMgRGl0dG8gZm9yIGMrKyBoZWFkZXJzLgotCW12ICR7 REVTVERJUn0vdXNyL2luY2x1ZGUvYysrLyR7X3BhdGNodmVyfSBcCisJbXYgJHtERVNURElSfS91 c3IvaW5jbHVkZS9jKysvJHt2ZXJzaW9ufSBcCiAJCSR7REVTVERJUn0vdXNyL2luY2x1ZGUvYysr LyR7X21pbm9ydmVyfQogCWxuIC1zZnIgJHtERVNURElSfS91c3IvaW5jbHVkZS9jKysvJHtfbWlu b3J2ZXJ9IFwKLQkJJHtERVNURElSfS91c3IvaW5jbHVkZS9jKysvJHtfcGF0Y2h2ZXJ9CisJCSR7 REVTVERJUn0vdXNyL2luY2x1ZGUvYysrLyR7dmVyc2lvbn0KIAogCSMgY2Mgc3ltbGluawogCWxu IC1zZnIgJHtERVNURElSfS91c3IvYmluL2djYyAke0RFU1RESVJ9L3Vzci9iaW4vY2MKQEAgLTM2 MSw3ICszNjAsNyBAQCBkb19pbnN0YWxsKCkgewogCiAJIyBsdG8gcGx1Z2luIHN5bWxpbmsKIAl2 bWtkaXIgdXNyL2xpYi9iZmQtcGx1Z2lucwotCWxuIC1zZnIgJHtERVNURElSfS91c3IvbGliL2dj Yy8ke190cmlwbGV0fS8ke19wYXRjaHZlcn0vbGlibHRvX3BsdWdpbi5zbyBcCisJbG4gLXNmciAk e0RFU1RESVJ9L3Vzci9saWIvZ2NjLyR7X3RyaXBsZXR9LyR7dmVyc2lvbn0vbGlibHRvX3BsdWdp bi5zbyBcCiAJCSR7REVTVERJUn0vdXNyL2xpYi9iZmQtcGx1Z2lucwogCiAJIyBSZW1vdmUgImZp eGVkIiBoZWFkZXIKQEAgLTM3MiwxMyArMzcxLDkgQEAgZG9faW5zdGFsbCgpIHsKIAlybSAtZiAk e0RFU1RESVJ9L3Vzci9saWIvbGliZmZpKgogCXJtIC1mICR7REVTVERJUn0vdXNyL3NoYXJlL21h bi9tYW4zL2ZmaSoKIAotCSMgUmVtb3ZlIGFsbCBweXRob24gc2NyaXB0cyBpbiBsaWJkaXIuCi0J cm0gLWYgJHtERVNURElSfS91c3IvbGliLyoucHkKLQotCSMgUmVtb3ZlIG1vcmUgcHl0aG9uIHN0 dWZmLgotCWlmIFsgLWQgJHtERVNURElSfS91c3Ivc2hhcmUvZ2NjLSR7X3BhdGNodmVyfS9weXRo b24gXTsgdGhlbgotCQlybSAtcmYgJHtERVNURElSfS91c3Ivc2hhcmUvZ2NjLSR7X3BhdGNodmVy fS9weXRob24KLQlmaQorCSMgTW92ZSBsaWJzdGRjKysgZ2RiIGhlbHBlcnMgdG8gbG9jYXRpb24g d2hlcmUgZ2RiIGNhbiBhdXRvbG9hZCB0aGVtCisJbWtkaXIgLXAgJHtERVNURElSfS91c3Ivc2hh cmUvZ2RiL2F1dG8tbG9hZC91c3IvbGliCisJbXYgJHtERVNURElSfS91c3IvbGliLyoucHkgJHtE RVNURElSfS91c3Ivc2hhcmUvZ2RiL2F1dG8tbG9hZC91c3IvbGliCiAKIAkjIEluc3RhbGwgYzg5 IGFuZCBjOTkgd3JhcHBlcnMgYW5kIGl0cyBtYW5wYWdlcywgZnJvbSBOZXRCU0QuCiAJZm9yIGYg aW4gYzg5IGM5OTsgZG8KQEAgLTM5Nyw3ICszOTIsNyBAQCBnY2MtYWRhX3BhY2thZ2UoKSB7CiAJ ZGVwZW5kcz0iZ2NjPj0ke19taW5vcnZlcn0gbGliYWRhLWRldmVsPj0ke19taW5vcnZlcn0iCiAJ c2hvcnRfZGVzYys9IiAtIEFkYSBjb21waWxlciBmcm9udGVuZCIKIAlwa2dfaW5zdGFsbCgpIHsK LQkJZm9yIGYgaW4gZ25hdHssYmluZCxjaG9wLGNsZWFuLGZpbmQsa3IsbGluayxscyxtYWtlLG5h bWUscHJlcCx4cmVmfTsgZG8KKwkJZm9yIGYgaW4gZ25hdHssYmluZCxjaG9wLGNsZWFuLGtyLGxp bmssbHMsbWFrZSxuYW1lLHByZXB9OyBkbwogCQkJdm1vdmUgdXNyL2Jpbi8ke2Z9CiAJCWRvbmUK IAl9CkBAIC00NTAsNyArNDQ1LDcgQEAgZ2NjLWZvcnRyYW5fcGFja2FnZSgpIHsKIAkJaWYgWyAi JENST1NTX0JVSUxEIiBdOyB0aGVuCiAJCQkjIEEgbnVtYmVyIG9mIE9NUCBtb2R1bGVzIGFyZSBu b3QgYnVpbHQgd2hlbiBjcm9zcwogCQkJIyBjb21waWxpbmcgZ2NjLiBDb3B5IHRoZW0gZnJvbSB0 aGUgY3Jvc3MgY29tcGlsZXIuCi0JCQlsb2NhbCBzcmM9Ii91c3IvbGliL2djYy8ke190cmlwbGV0 fS8ke19wYXRjaHZlcn0vZmluY2x1ZGUiCisJCQlsb2NhbCBzcmM9Ii91c3IvbGliL2djYy8ke190 cmlwbGV0fS8ke3ZlcnNpb259L2ZpbmNsdWRlIgogCQkJbG9jYWwgZHN0PSJ1c3IvbGliL2djYy8k e190cmlwbGV0fS8ke19taW5vcnZlcn0vZmluY2x1ZGUiCiAJCQlmb3IgZiBpbiBvbXBfbGliLmY5 MCBvbXBfbGliLmggb21wX2xpYi5tb2Qgb21wX2xpYl9raW5kcy5tb2QgXAogCQkJCW9wZW5hY2Mu ZjkwIG9wZW5hY2MubW9kIG9wZW5hY2Nfa2luZHMubW9kIG9wZW5hY2NfbGliLmg7IGRvCkBAIC01 MTcsNyArNTEyLDcgQEAgbGliZ2ZvcnRyYW5fcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0g Rm9ydHJhbiBsaWJyYXJ5IgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSAidXNyL2xpYi9saWJn Zm9ydHJhbi5zbyoiCi0JCXZsaWNlbnNlICR7d3Jrc3JjfS9DT1BZSU5HLlJVTlRJTUUgUlVOVElN RS5MSUJSQVJZLkVYQ0VQVElPTgorCQl2bGljZW5zZSBDT1BZSU5HLlJVTlRJTUUgUlVOVElNRS5M SUJSQVJZLkVYQ0VQVElPTgogCX0KIH0KIApAQCAtNTM4LDcgKzUzMyw3IEBAIGxpYmdvX3BhY2th Z2UoKSB7CiAJbm9zdHJpcD15ZXMKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgInVzci9saWIv bGliZ28uc28qIgotCQl2bGljZW5zZSAke3dya3NyY30vQ09QWUlORy5SVU5USU1FIFJVTlRJTUUu TElCUkFSWS5FWENFUFRJT04KKwkJdmxpY2Vuc2UgQ09QWUlORy5SVU5USU1FIFJVTlRJTUUuTElC UkFSWS5FWENFUFRJT04KIAl9CiB9CiAKQEAgLTU1NCw3ICs1NDksNyBAQCBsaWJvYmpjX3BhY2th Z2UoKSB7CiAJc2hvcnRfZGVzYys9IiAtIE9iamVjdGl2ZS1DIGxpYnJhcnkiCiAJcGtnX2luc3Rh bGwoKSB7CiAJCXZtb3ZlICJ1c3IvbGliL2xpYm9iamMuc28qIgotCQl2bGljZW5zZSAke3dya3Ny Y30vQ09QWUlORy5SVU5USU1FIFJVTlRJTUUuTElCUkFSWS5FWENFUFRJT04KKwkJdmxpY2Vuc2Ug Q09QWUlORy5SVU5USU1FIFJVTlRJTUUuTElCUkFSWS5FWENFUFRJT04KIAl9CiB9CiAKQEAgLTU3 Myw3ICs1NjgsNyBAQCBsaWJxdWFkbWF0aF9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBx dWFkbWF0aCBsaWJyYXJ5IgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSAidXNyL2xpYi9saWJx dWFkbWF0aC5zbyoiCi0JCXZsaWNlbnNlICR7d3Jrc3JjfS9DT1BZSU5HLlJVTlRJTUUgUlVOVElN RS5MSUJSQVJZLkVYQ0VQVElPTgorCQl2bGljZW5zZSBDT1BZSU5HLlJVTlRJTUUgUlVOVElNRS5M SUJSQVJZLkVYQ0VQVElPTgogCX0KIH0KIApAQCAtNjE1LDcgKzYxMCw3IEBAIGxpYmdjY19wYWNr YWdlKCkgewogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlICJ1 c3IvbGliL2xpYmdjY19zLnNvKiIKLQkJdmxpY2Vuc2UgJHt3cmtzcmN9L0NPUFlJTkcuUlVOVElN RSBSVU5USU1FLkxJQlJBUlkuRVhDRVBUSU9OCisJCXZsaWNlbnNlIENPUFlJTkcuUlVOVElNRSBS VU5USU1FLkxJQlJBUlkuRVhDRVBUSU9OCiAJfQogfQogCkBAIC02NDYsNyArNjQxLDcgQEAgbGli Z29tcF9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBPcGVuTVAgdjQuMCBsaWJyYXJ5Igog CXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSAidXNyL2xpYi9saWJnb21wKi5zby4qIgotCQl2bGlj ZW5zZSAke3dya3NyY30vQ09QWUlORy5SVU5USU1FIFJVTlRJTUUuTElCUkFSWS5FWENFUFRJT04K KwkJdmxpY2Vuc2UgQ09QWUlORy5SVU5USU1FIFJVTlRJTUUuTElCUkFSWS5FWENFUFRJT04KIAl9 CiB9CiAKQEAgLTcwMSw3ICs2OTYsNyBAQCBsaWJzc3BfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNj Kz0iIC0gU1NQIChTdGFja1NtYXNoaW5nUHJvdGVjdGlvbikgbGlicmFyeSIKIAlwa2dfaW5zdGFs bCgpIHsKIAkJdm1vdmUgInVzci9saWIvbGlic3NwLnNvKiIKLQkJdmxpY2Vuc2UgJHt3cmtzcmN9 L0NPUFlJTkcuUlVOVElNRSBSVU5USU1FLkxJQlJBUlkuRVhDRVBUSU9OCisJCXZsaWNlbnNlIENP UFlJTkcuUlVOVElNRSBSVU5USU1FLkxJQlJBUlkuRVhDRVBUSU9OCiAJfQogfQogCkBAIC03MTgs NyArNzEzLDkgQEAgbGlic3RkYysrLWRldmVsX3BhY2thZ2UoKSB7CiBsaWJzdGRjKytfcGFja2Fn ZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gU3RhbmRhcmQgQysrIExpYnJhcnkiCiAJcGtnX2luc3Rh bGwoKSB7CisJCXZtb3ZlIHVzci9zaGFyZS9nZGIKKwkJdm1vdmUgdXNyL3NoYXJlL2djYy0ke3Zl cnNpb259L3B5dGhvbgogCQl2bW92ZSAidXNyL2xpYi9saWJzdGRjKysuc28qIgotCQl2bGljZW5z ZSAke3dya3NyY30vQ09QWUlORy5SVU5USU1FIFJVTlRJTUUuTElCUkFSWS5FWENFUFRJT04KKwkJ dmxpY2Vuc2UgQ09QWUlORy5SVU5USU1FIFJVTlRJTUUuTElCUkFSWS5FWENFUFRJT04KIAl9CiB9 CgpGcm9tIDI1ZmVhYjIwMGExYTAwZGIwM2U5M2M4OTJjMmExYTdiNDRiYTk4NWMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTog U2F0LCA1IE5vdiAyMDIyIDExOjMzOjExIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwNC8zN10gbGli dG9vbDogcmVidWlsZCBmb3IgZ2NjIDEyCgotLS0KIHNyY3BrZ3MvbGlidG9vbC90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGlidG9vbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlidG9vbC90ZW1w bGF0ZQppbmRleCBmYzVjNTNhOWMzZTkuLmFlYmFkOTI5NGVlZiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9saWJ0b29sL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGlidG9vbC90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYnRvb2wnCiBwa2duYW1lPWxpYnRvb2wK IHZlcnNpb249Mi40LjcKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWdudS1j b25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyBwZXJsIGF1dG9tYWtlIGhlbHAybWFu IHh6IgogZGVwZW5kcz0idGFyIHNlZCIKCkZyb20gMWIwNjY4ZTI5YTBmNzk0ODkzODVjNDI4YTdj ZjJmMWJlYTIwNjg3ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3Jl bzYzOTFAZ21haWwuY29tPgpEYXRlOiBTYXQsIDUgTm92IDIwMjIgMTE6MzM6MTIgLTA3MDAKU3Vi amVjdDogW1BBVENIIDA1LzM3XSBsaWJpYmVydHktZGV2ZWw6IHVwZGF0ZSB0byAyMDIyMDcxMy4K Ci0tLQogc3JjcGtncy9saWJpYmVydHktZGV2ZWwvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9saWJpYmVydHktZGV2ZWwvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYmliZXJ0eS1kZXZlbC90 ZW1wbGF0ZQppbmRleCA3ZTAxYmJiODUxZmQuLmQ5NjE4ZTM4MDZiYSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9saWJpYmVydHktZGV2ZWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJpYmVydHktZGV2 ZWwvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJpYmVy dHktZGV2ZWwnCiBwa2duYW1lPWxpYmliZXJ0eS1kZXZlbAotdmVyc2lvbj0yMDIxMDEwNgordmVy c2lvbj0yMDIyMDcxMwogcmV2aXNpb249MQogYnVpbGRfd3Jrc3JjPWxpYmliZXJ0eQogYnVpbGRf c3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTAsNyArMTAsNyBAQCBtYWludGFpbmVyPSJPcnBoYW5l ZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwOi8vZ2NjLmdudS5vcmcvIgogZGlzdGZpbGVzPSJodHRwOi8vZGViLmRlYmlh bi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9saWJpL2xpYmliZXJ0eS9saWJpYmVydHlfJHt2ZXJzaW9u fS5vcmlnLnRhci54eiIKLWNoZWNrc3VtPTlkZjE1M2Q2OTkxNGMwZjVhOTE0NWUwYWJiYjI0OGU3 MmZlZWJhYjY3NzdjNzEyYTMwZjFjM2I4YzE5MDQ3ZDQKK2NoZWNrc3VtPWI1OTA1MGY0OGM4YTBm OWM5ZTZmYmE1ZDE3YzdhNGYxMWQxMzI5ZGUwYzBkY2E3MzMxYjc2N2E2ZDJiYmU4ZDkKIGNvbmZs aWN0cz0iYmludXRpbHMtZGV2ZWw8PTIuMzUuMV8zIgogCiBDRkxBR1M9Ii1mUElDIgoKRnJvbSA1 MTQ3YTQ5NTcyYjE2MDI1YzE2N2M3YmJiOWVjMzJkZDliODg2N2VkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgNSBO b3YgMjAyMiAxMTozMzoxMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMzddIGdsaWJjOiB1cGRh dGUgdG8gMi4zNi4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgNjAgKy0KIC4uLmUtaGFzaC1zdHlsZS1ib3RoLWZvci1idWlsZGluZy1nbGli Yy5wYXRjaCB8ICAgIDUxICsKIHNyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy9naXQtdXBkYXRlcy5wYXRj aCAgICAgICB8IDEwODY5ICsrKysrKysrKysrKysrKysKIC4uLi9nbGliYy9wYXRjaGVzL2dsaWJj LWMtdXRmOC1sb2NhbGUucGF0Y2ggICB8ICAgMjg2IC0KIHNyY3BrZ3MvZ2xpYmMvdGVtcGxhdGUg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDY2ICstCiA1IGZpbGVzIGNoYW5nZWQsIDEwOTc5 IGluc2VydGlvbnMoKyksIDM1MyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2dsaWJjL3BhdGNoZXMvMDAwMS1SZXZlcnQtRG8tbm90LXVzZS1oYXNoLXN0eWxlLWJvdGgt Zm9yLWJ1aWxkaW5nLWdsaWJjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbGli Yy9wYXRjaGVzL2dpdC11cGRhdGVzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9n bGliYy9wYXRjaGVzL2dsaWJjLWMtdXRmOC1sb2NhbGUucGF0Y2gKCmRpZmYgLS1naXQgYS9jb21t b24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBhNWY0ZjMyNTdkMzMuLmE5NmZlNTc3ZTkz YiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0xNywz OCArMTcsMzggQEAKICMgb25lIChvcmRlciB0b3AtPmJvdHRvbSkgaXMgcHJlZmVycmVkIG92ZXIg dGhlIG5leHQgb25lcy4KICMKIGxpYmMuc28gbXVzbC0xLjEuMjRfNwotbGliYy5zby42IGdsaWJj LTIuMzJfMQotbGlibS5zby42IGdsaWJjLTIuMzJfMQotbGlicHRocmVhZC5zby4wIGdsaWJjLTIu MzJfMQotbGlicnQuc28uMSBnbGliYy0yLjMyXzEKLWxpYmRsLnNvLjIgZ2xpYmMtMi4zMl8xCi1s ZC1saW51eC14ODYtNjQuc28uMiBnbGliYy0yLjMyXzEgeDg2XzY0Ci1sZC1saW51eC5zby4yIGds aWJjLTIuMzJfMSBpNjg2Ci1sZC1saW51eC5zby4zIGdsaWJjLTIuMzJfMSBhcm12NXRlbAotbGQt bGludXgtYWFyY2g2NC5zby4xIGdsaWJjLTIuMzJfMSBhYXJjaDY0Ci1sZDY0LnNvLjIgZ2xpYmMt Mi4zMl8xIHBwYzY0Ci1sZC5zby4xIGdsaWJjLTIuMzJfMSBtaXBzCi1sZC5zby4xIGdsaWJjLTIu MzJfMSBwcGMKLWxkLWxpbnV4LWFybWhmLnNvLjMgZ2xpYmMtMi4zMl8xCi1saWJyZXNvbHYuc28u MiBnbGliYy0yLjMyXzEKLWxpYmFubC5zby4xIGdsaWJjLTIuMzJfMQotbGlidGhyZWFkX2RiLnNv LjEgZ2xpYmMtMi4zMl8xCi1saWJ1dGlsLnNvLjEgZ2xpYmMtMi4zMl8xCi1saWJuc2wuc28uMSBn bGliYy0yLjMyXzEKLWxpYm5zc19kYi5zby4yIGdsaWJjLTIuMzJfMQotbGlibnNzX2ZpbGVzLnNv LjIgZ2xpYmMtMi4zMl8xCi1saWJuc3NfY29tcGF0LnNvLjIgZ2xpYmMtMi4zMl8xCi1saWJuc3Nf ZG5zLnNvLjIgZ2xpYmMtMi4zMl8xCi1saWJuc3NfaGVzaW9kLnNvLjIgZ2xpYmMtMi4zMl8xCi1s aWJjcnlwdC5zby4xIGdsaWJjLTIuMzJfMQotbGliQnJva2VuTG9jYWxlLnNvLjEgZ2xpYmMtMi4z Ml8xCitsaWJjLnNvLjYgZ2xpYmMtMi4zNl8xCitsaWJtLnNvLjYgZ2xpYmMtMi4zNl8xCitsaWJw dGhyZWFkLnNvLjAgZ2xpYmMtMi4zNl8xCitsaWJydC5zby4xIGdsaWJjLTIuMzZfMQorbGliZGwu c28uMiBnbGliYy0yLjM2XzEKK2xkLWxpbnV4LXg4Ni02NC5zby4yIGdsaWJjLTIuMzZfMSB4ODZf NjQKK2xkLWxpbnV4LnNvLjIgZ2xpYmMtMi4zNl8xIGk2ODYKK2xkLWxpbnV4LnNvLjMgZ2xpYmMt Mi4zNl8xIGFybXY1dGVsCitsZC1saW51eC1hYXJjaDY0LnNvLjEgZ2xpYmMtMi4zNl8xIGFhcmNo NjQKK2xkNjQuc28uMiBnbGliYy0yLjM2XzEgcHBjNjQKK2xkLnNvLjEgZ2xpYmMtMi4zNl8xIG1p cHMKK2xkLnNvLjEgZ2xpYmMtMi4zNl8xIHBwYworbGQtbGludXgtYXJtaGYuc28uMyBnbGliYy0y LjM2XzEKK2xpYnJlc29sdi5zby4yIGdsaWJjLTIuMzZfMQorbGliYW5sLnNvLjEgZ2xpYmMtMi4z Nl8xCitsaWJ0aHJlYWRfZGIuc28uMSBnbGliYy0yLjM2XzEKK2xpYnV0aWwuc28uMSBnbGliYy0y LjM2XzEKK2xpYm5zbC5zby4xIGdsaWJjLTIuMzZfMQorbGlibnNzX2RiLnNvLjIgZ2xpYmMtMi4z Nl8xCitsaWJuc3NfZmlsZXMuc28uMiBnbGliYy0yLjM2XzEKK2xpYm5zc19jb21wYXQuc28uMiBn bGliYy0yLjM2XzEKK2xpYm5zc19kbnMuc28uMiBnbGliYy0yLjM2XzEKK2xpYm5zc19oZXNpb2Qu c28uMiBnbGliYy0yLjM2XzEKK2xpYmNyeXB0LnNvLjEgZ2xpYmMtMi4zNl8xCitsaWJCcm9rZW5M b2NhbGUuc28uMSBnbGliYy0yLjM2XzEKIGxpYlNpbUdlYXJDb3JlLnNvLjIwMjAuMy4xMyBzaW1n ZWFyLTIwMjAuMy4xM18xCiBsaWJTaW1HZWFyU2NlbmUuc28uMjAyMC4zLjEzIHNpbWdlYXItMjAy MC4zLjEzXzEKLWxpYm1lbXVzYWdlLnNvIGdsaWJjLTIuMzJfMQotbGliU2VnRmF1bHQuc28gZ2xp YmMtMi4zMl8xCi1saWJwY3Byb2ZpbGUuc28gZ2xpYmMtMi4zMl8xCi1saWJjaWRuLnNvLjEgZ2xp YmMtMi4zMl8xCi1saWJtdmVjLnNvLjEgZ2xpYmMtMi4zMl8xCitsaWJtZW11c2FnZS5zbyBnbGli Yy0yLjM2XzEKK2xpYlNlZ0ZhdWx0LnNvIGdsaWJjLTIuMzZfMQorbGlicGNwcm9maWxlLnNvIGds aWJjLTIuMzZfMQorbGliY2lkbi5zby4xIGdsaWJjLTIuMzZfMQorbGlibXZlYy5zby4xIGdsaWJj LTIuMzZfMQogbGliY2RkZ21wLnNvLjAgY2RkbGliLTAuOTRtXzEKIGxpYmNkZC5zby4wIGNkZGxp Yi0wLjk0bV8xCiBsaWJ6LnNvLjEgemxpYi0xLjIuM18xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ds aWJjL3BhdGNoZXMvMDAwMS1SZXZlcnQtRG8tbm90LXVzZS1oYXNoLXN0eWxlLWJvdGgtZm9yLWJ1 aWxkaW5nLWdsaWJjLnBhdGNoIGIvc3JjcGtncy9nbGliYy9wYXRjaGVzLzAwMDEtUmV2ZXJ0LURv LW5vdC11c2UtaGFzaC1zdHlsZS1ib3RoLWZvci1idWlsZGluZy1nbGliYy5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNTU1M2U5MjYwOQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvZ2xpYmMvcGF0Y2hlcy8wMDAxLVJldmVydC1Eby1ub3QtdXNlLWhh c2gtc3R5bGUtYm90aC1mb3ItYnVpbGRpbmctZ2xpYmMucGF0Y2gKQEAgLTAsMCArMSw1MSBAQAor VGVtcG9yYXJ5IHdvcmthcm91bmQgZm9yIEVBQyBidWcuCisKK1NlZTogaHR0cHM6Ly9zb3VyY2V3 YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9Mjk0NTYKKworRnJvbSA4ZTkwZTJjYzVl NTdkN2NhM2E0MDYwMmQyNzhlOTY0MmE4YjY2NzE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgorRGF0ZTogVHVlLCAxMyBTZXAgMjAy MiAxNDozMDozNSAtMDcwMAorU3ViamVjdDogW1BBVENIXSBSZXZlcnQgIkRvIG5vdCB1c2UgLS1o YXNoLXN0eWxlPWJvdGggZm9yIGJ1aWxkaW5nIGdsaWJjCisgc2hhcmVkIG9iamVjdHMiCisKK1Ro aXMgcmV2ZXJ0cyBjb21taXQgZTQ3ZGU1Y2IyZDRkYmVjYjU4ZjU2OWVkMjQxZThlOTVjNTY4ZjAz Yy4KKy0tLQorIE1ha2Vjb25maWcgICAgIHwgIDkgKysrKysrKysrCisgTWFrZXJ1bGVzICAgICAg fCAgNyArKysrKysrCisgNSBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspCisKK2RpZmYg LS1naXQgYS9NYWtlY29uZmlnIGIvTWFrZWNvbmZpZworaW5kZXggYmE3MDMyMWFmMS4uZTIxMzFk NDM4OSAxMDA2NDQKKy0tLSBhL01ha2Vjb25maWcKKysrKyBiL01ha2Vjb25maWcKK0BAIC0zNzEs NiArMzcxLDEzIEBAIGR0LXJlbHItbGRmbGFnID0KKyBuby1kdC1yZWxyLWxkZmxhZyA9CisgZW5k aWYKKyAKKysjIEZvciB0aGUgdGltZSBiZWluZyB3ZSB1bmNvbmRpdGlvbmFsbHkgdXNlICdib3Ro Jy4gIEF0IHNvbWUgdGltZSB3ZQorKyMgc2hvdWxkIGRlY2xhcmUgc3RhdGljYWxseSBsaW5rZWQg Y29kZSBhcyAnb3V0IG9mIGx1Y2snIGFuZCBjb21waWxlCisrIyB3aXRoIC0taGFzaC1zdHlsZT1n bnUgb25seS4KKytoYXNoc3R5bGUtTERGTEFHUyA9IC1XbCwtLWhhc2gtc3R5bGU9Ym90aAorK0xE RkxBR1Muc28gKz0gJChoYXNoc3R5bGUtTERGTEFHUykKKytMREZMQUdTLXJ0bGQgKz0gJChoYXNo c3R5bGUtTERGTEFHUykKKysKKyBpZmVxIChubywkKGJ1aWxkLXBpZS1kZWZhdWx0KSkKKyBwaWUt ZGVmYXVsdCA9ICQobm8tcGllLWNjZmxhZykKKyBlbHNlICMgYnVpbGQtcGllLWRlZmF1bHQKK2Rp ZmYgLS1naXQgYS9NYWtlcnVsZXMgYi9NYWtlcnVsZXMKK2luZGV4IGQxZTEzOWQwM2MuLjQ0MTM0 ZTM3Y2UgMTAwNjQ0CistLS0gYS9NYWtlcnVsZXMKKysrKyBiL01ha2VydWxlcworQEAgLTU1OCw2 ICs1NTgsOSBAQCAkKGNvbW1vbi1vYmpwZngpc2hsaWIubGRzOiAkKGNvbW1vbi1vYmpwZngpY29u ZmlnLm1ha2UgJCguLilNYWtlcnVsZXMKKyAJCSAgLVdsLC0tdmVyYm9zZSAyPi9kZXYvbnVsbCB8 IFwKKyAJICBzZWQgPiAkQFQgXAorIAkgICAgICAtZSAnL149PT09PT09PT0vLC9ePT09PT09PT09 LyFkOy9ePT09PT09PT09L2QnIFwKKysJCSAgIC1lICdzL14uKlwuZ251XC5oYXNoWyAJXSo6Liok JC8gIC5ub3RlLkFCSS10YWcgOiB7ICooLm5vdGUuQUJJLXRhZykgfSAmLycgXAorKwkJICAgLWUg Jy9eWyAJXSpcLmhhc2hbIAldKjouKiQkL3toO2Q7fScgXAorKwkJICAgLWUgJy9EQVRBX1NFR01F TlRfQUxJR04ve0g7Z30nIFwKKyAJICAgICAgLWUgJ3MvXi4qXCooXC5keW5ic3MpLiokJC8mIFwK KyAJCSBQUk9WSURFKF9fc3RhcnRfX19saWJjX2ZyZWVyZXNfcHRycyA9IC4pOyBcCisgCQkgKihf X2xpYmNfZnJlZXJlc19wdHJzKSBcCistLSAKKzIuMzcuMworCmRpZmYgLS1naXQgYS9zcmNwa2dz L2dsaWJjL3BhdGNoZXMvZ2l0LXVwZGF0ZXMucGF0Y2ggYi9zcmNwa2dzL2dsaWJjL3BhdGNoZXMv Z2l0LXVwZGF0ZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li4xOTIwYjFiZDc2YWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dsaWJjL3BhdGNoZXMv Z2l0LXVwZGF0ZXMucGF0Y2gKQEAgLTAsMCArMSwxMDg2OSBAQAorRnJvbSBjM2ZkYTQ4OWNmZGIy MjYwZjlmZWM3MDZlNmZkNzI1OTg1OGM0NDY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogVG9tIEhvbmVybWFubiA8dG9tQGhvbmVybWFubi5uZXQ+CitEYXRlOiBTdW4sIDI0IEp1bCAy MDIyIDAxOjExOjQzIC0wNDAwCitTdWJqZWN0OiBzdGRsaWI6IFN1cHByZXNzIGdjYyBkaWFnbm9z dGljIHRoYXQgY2hhcjhfdCBpcyBhIGtleXdvcmQgaW4gQysrMjAgaW4KKyB1Y2hhci5oLgorTUlN RS1WZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAor Q29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitnY2MgMTMgaXNzdWVzIHRoZSBmb2xs b3dpbmcgZGlhZ25vc3RpYyBmb3IgdGhlIHVjaGFyLmggaGVhZGVyIHdoZW4gdGhlCistV2MrKzIw LWNvbXBhdCBvcHRpb24gaXMgZW5hYmxlZCBpbiBDKysgbW9kZXMgdGhhdCBkbyBub3QgZW5hYmxl IGNoYXI4X3QKK2FzIGEgYnVpbHRpbiB0eXBlIChDKysxNyBhbmQgZWFybGllciBieSBkZWZhdWx0 OyBzdWJqZWN0IHRvIF9HTlVfU09VUkNFCithbmQgdGhlIGdjYyAtZltuby1dY2hhcjhfdCBvcHRp b24pLgorICB3YXJuaW5nOiBpZGVudGlmaWVyIOKAmGNoYXI4X3TigJkgaXMgYSBrZXl3b3JkIGlu IEMrKzIwIFstV2MrKzIwLWNvbXBhdF0KK1RoaXMgY2hhbmdlIG1vZGlmaWVzIHRoZSB1Y2hhci5o IGhlYWRlciB0byBzdXBwcmVzcyB0aGUgZGlhZ25vc3RpYyB0aHJvdWdoCit0aGUgdXNlIG9mICcj cHJhZ21hIEdDQyBkaWFnbm9zdGljJyBkaXJlY3RpdmVzIGZvciBnY2MgMTAgYW5kIGxhdGVyICh0 aGUKKy1XYysrMjAtY29tcGF0IG9wdGlvbiB3YXMgYWRkZWQgaW4gZ2NjIHZlcnNpb24gMTApLiAg VW5mb3J0dW5hdGVseSwgYSBidWcKK2luIGdjYyBjdXJyZW50bHkgcHJldmVudHMgdGhvc2UgZGly ZWN0aXZlcyBmcm9tIGhhdmluZyB0aGUgaW50ZW5kZWQgZWZmZWN0CithcyByZXBvcnRlZCBhdCBo dHRwczovL2djYy5nbnUub3JnL1BSMTA2NDIzLiAgQSBwYXRjaCBmb3IgdGhhdCBpc3N1ZSBoYXMK K2JlZW4gc3VibWl0dGVkIGFuZCBpcyBhdmFpbGFibGUgaW4gdGhlIGVtYWlsIHRocmVhZCBhcmNo aXZlIGxpbmtlZCBiZWxvdy4KKyAgaHR0cHM6Ly9nY2MuZ251Lm9yZy9waXBlcm1haWwvZ2NjLXBh dGNoZXMvMjAyMi1KdWx5LzU5ODczNi5odG1sCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0 IDgyNWY4NGYxMzNiZDg0MDM0N2RjNDkyMjliNmQ4MzFmMDdkMDQ3NzUpCistLS0KKyB3Y3NtYnMv dWNoYXIuaCB8IDggKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspCisK K2RpZmYgLS1naXQgYS93Y3NtYnMvdWNoYXIuaCBiL3djc21icy91Y2hhci5oCitpbmRleCBjMzdl ODYxOWEwLi41ZjcxMzlmMjc5IDEwMDY0NAorLS0tIGEvd2NzbWJzL3VjaGFyLmgKKysrKyBiL3dj c21icy91Y2hhci5oCitAQCAtMzQsOCArMzQsMTYgQEAKKyAvKiBEZWNsYXJlIHRoZSBDMnggY2hh cjhfdCB0eXBlZGVmIGluIEMyeCBtb2RlcywgYnV0IG9ubHkgaWYgdGhlIEMrKworICAgX19jcHBf Y2hhcjhfdCBmZWF0dXJlIHRlc3QgbWFjcm8gaXMgbm90IGRlZmluZWQuICAqLworICNpZiBfX0dM SUJDX1VTRSAoSVNPQzJYKSAmJiAhZGVmaW5lZCBfX2NwcF9jaGFyOF90CisrI2lmIF9fR05VQ19Q UkVSRVEgKDEwLCAwKSAmJiBkZWZpbmVkIF9fY3BsdXNwbHVzCisrLyogU3VwcHJlc3MgdGhlIGRp YWdub3N0aWMgcmVnYXJkaW5nIGNoYXI4X3QgYmVpbmcgYSBrZXl3b3JkIGluIEMrKzIwLiAgKi8K KysjIHByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisrIyBwcmFnbWEgR0NDIGRpYWdub3N0aWMg aWdub3JlZCAiLVdjKysyMC1jb21wYXQiCisrI2VuZGlmCisgLyogRGVmaW5lIHRoZSA4LWJpdCBj aGFyYWN0ZXIgdHlwZS4gICovCisgdHlwZWRlZiB1bnNpZ25lZCBjaGFyIGNoYXI4X3Q7CisrI2lm IF9fR05VQ19QUkVSRVEgKDEwLCAwKSAmJiBkZWZpbmVkIF9fY3BsdXNwbHVzCisrIyBwcmFnbWEg R0NDIGRpYWdub3N0aWMgcG9wCisrI2VuZGlmCisgI2VuZGlmCisgCisgI2lmbmRlZiBfX1VTRV9J U09DWFgxMQorLS0gCisyLjM4LjEKKworCitGcm9tIDMzZjFiNGMxNDUyYjMzOTkxZTY3MGY2MzZl YmU5OGI5MGE0MDVlMTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiAiSC5KLiBMdSIg PGhqbC50b29sc0BnbWFpbC5jb20+CitEYXRlOiBGcmksIDI5IEp1bCAyMDIyIDEwOjUwOjU2IC0w NzAwCitTdWJqZWN0OiB3Y3NtYnM6IEFkZCBtaXNzaW5nIHRlc3QtYzhydG9tYi90ZXN0LW1icnRv YzggZGVwZW5kZW5jeQorCitNYWtlIHRlc3QtYzhydG9tYi5vdXQgYW5kIHRlc3QtbWJydG9jOC5v dXQgZGVwZW5kIG9uICQoZ2VuLWxvY2FsZXMpIGZvcgorCisgIHhzZXRsb2NhbGUgKExDX0FMTCwg ImRlX0RFLlVURi04Iik7CisgIHhzZXRsb2NhbGUgKExDX0FMTCwgInpoX0hLLkJJRzUtSEtTQ1Mi KTsKKworUmV2aWV3ZWQtYnk6IFN1bmlsIEsgUGFuZGV5IDxza3Bna3AyQGdtYWlsLmNvbT4KK1Jl dmlld2VkLWJ5OiBDYXJsb3MgTydEb25lbGwgPGNhcmxvc0ByZWRoYXQuY29tPgorKGNoZXJyeSBw aWNrZWQgZnJvbSBjb21taXQgZTAzZjVjY2Q2Y2M4ZjgyOTQxNjE1NmVhYzc1YWNlZTUwMTYyNmMx ZikKKy0tLQorIHdjc21icy9NYWtlZmlsZSB8IDIgKysKKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspCisKK2RpZmYgLS1naXQgYS93Y3NtYnMvTWFrZWZpbGUgYi93Y3NtYnMvTWFrZWZp bGUKK2luZGV4IGU2YjllODc0M2EuLjNkMTlkNTU1NmYgMTAwNjQ0CistLS0gYS93Y3NtYnMvTWFr ZWZpbGUKKysrKyBiL3djc21icy9NYWtlZmlsZQorQEAgLTczLDYgKzczLDggQEAgJChvYmpwZngp dHN0LXdjc3RvbC1sb2NhbGUub3V0OiAkKGdlbi1sb2NhbGVzKQorICQob2JqcGZ4KXRzdC13Y3N0 b2QtbmFuLWxvY2FsZS5vdXQ6ICQoZ2VuLWxvY2FsZXMpCisgJChvYmpwZngpdHN0LWMxNi1zdXJy b2dhdGUub3V0OiAkKGdlbi1sb2NhbGVzKQorICQob2JqcGZ4KXRzdC1jMzItc3RhdGUub3V0OiAk KGdlbi1sb2NhbGVzKQorKyQob2JqcGZ4KXRlc3QtYzhydG9tYi5vdXQ6ICQoZ2VuLWxvY2FsZXMp CisrJChvYmpwZngpdGVzdC1tYnJ0b2M4Lm91dDogJChnZW4tbG9jYWxlcykKKyBlbmRpZgorIAor ICQob2JqcGZ4KXRzdC13Y3N0b2Qtcm91bmQ6ICQobGlibSkKKy0tIAorMi4zOC4xCisKKworRnJv bSBjNzRiYjkzY2ZkYjA0ZDQ5MTU1YjBlMzA5ODNhM2M4NjYxNjdiYmNhIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0Rh dGU6IFRodSwgNCBBdWcgMjAyMiAxNzo1NDo0OCArMDIwMAorU3ViamVjdDogZGxmY246IFBhc3Mg Y2FsbGVyIHBvaW50ZXIgdG8gc3RhdGljIGRsb3BlbiBpbXBsZW1lbnRhdGlvbiAoYnVnCisgMjk0 NDYpCisKK0ZpeGVzIGNvbW1pdCAwYzFjM2E3NzFlY2VlYzQ2ZTY2Y2UxMTgzY2Y5ODhlMjMwM2Jk MzczICgiZGxmY246IE1vdmUKK2Rsb3BlbiBpbnRvIGxpYmMiKS4KKworKGNoZXJyeSBwaWNrZWQg ZnJvbSBjb21taXQgZWQwMTg1ZTQxMjkxMzBjYmUwODFjMjIxZWZiNzU4ZmI0MDA2MjNjZSkKKy0t LQorIE5FV1MgICAgICAgICAgIHwgNyArKysrKysrCisgZGxmY24vZGxvcGVuLmMgfCAyICstCisg MiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAt LWdpdCBhL05FV1MgYi9ORVdTCitpbmRleCBmNjFlNTIxZmM4Li4xNWYzZGQyY2RiIDEwMDY0NAor LS0tIGEvTkVXUworKysrIGIvTkVXUworQEAgLTQsNiArNCwxMyBAQCBTZWUgdGhlIGVuZCBmb3Ig Y29weWluZyBjb25kaXRpb25zLgorIAorIFBsZWFzZSBzZW5kIEdOVSBDIGxpYnJhcnkgYnVnIHJl cG9ydHMgdmlhIDxodHRwczovL3NvdXJjZXdhcmUub3JnL2J1Z3ppbGxhLz4KKyB1c2luZyBgZ2xp YmMnIGluIHRoZSAicHJvZHVjdCIgZmllbGQuCisrDAorK1ZlcnNpb24gMi4zNi4xCisrCisrVGhl IGZvbGxvd2luZyBidWdzIGFyZSByZXNvbHZlZCB3aXRoIHRoaXMgcmVsZWFzZToKKysKKysgIFsy OTQ0Nl0gX2Rsb3BlbiBub3cgaWdub3JlcyBkbF9jYWxsZXIgYXJndW1lbnQgaW4gc3RhdGljIG1v ZGUKKysKKyAMCisgVmVyc2lvbiAyLjM2CisgCitkaWZmIC0tZ2l0IGEvZGxmY24vZGxvcGVuLmMg Yi9kbGZjbi9kbG9wZW4uYworaW5kZXggMjY5NmRkZTRiMS4uOWIwN2I0ZTEzMiAxMDA2NDQKKy0t LSBhL2RsZmNuL2Rsb3Blbi5jCisrKysgYi9kbGZjbi9kbG9wZW4uYworQEAgLTkwLDcgKzkwLDcg QEAgY29tcGF0X3N5bWJvbCAobGliZGwsIF9fX2Rsb3BlbiwgZGxvcGVuLCBHTElCQ18yXzEpOwor IHZvaWQgKgorIF9fZGxvcGVuIChjb25zdCBjaGFyICpmaWxlLCBpbnQgbW9kZSwgdm9pZCAqZGxf Y2FsbGVyKQorIHsKKy0gIHJldHVybiBkbG9wZW5faW1wbGVtZW50YXRpb24gKGZpbGUsIG1vZGUs IFJFVFVSTl9BRERSRVNTICgwKSk7CisrICByZXR1cm4gZGxvcGVuX2ltcGxlbWVudGF0aW9uIChm aWxlLCBtb2RlLCBkbF9jYWxsZXIpOworIH0KKyAKKyB2b2lkICoKKy0tIAorMi4zOC4xCisKKwor RnJvbSBhYzQ3ZDhmNmNmOTc0NDEzOWFkYjEyZjU0MGZiOWNjNjEwY2FjNTc5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogSm9zZXBoIE15ZXJzIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNv bT4KK0RhdGU6IFR1ZSwgMiBBdWcgMjAyMiAyMTowNTowNyArMDAwMAorU3ViamVjdDogVXBkYXRl IHN5c2NhbGwgbGlzdHMgZm9yIExpbnV4IDUuMTkKKworTGludXggNS4xOSBoYXMgbm8gbmV3IHN5 c2NhbGxzLCBidXQgZW5hYmxlcyBtZW1mZF9zZWNyZXQgaW4gdGhlIHVhcGkKK2hlYWRlcnMgZm9y IFJJU0MtVi4gIFVwZGF0ZSB0aGUgdmVyc2lvbiBudW1iZXIgaW4gc3lzY2FsbC1uYW1lcy5saXN0 Cit0byByZWZsZWN0IHRoYXQgaXQgaXMgc3RpbGwgY3VycmVudCBmb3IgNS4xOSBhbmQgcmVnZW5l cmF0ZSB0aGUKK2FyY2gtc3lzY2FsbC5oIGhlYWRlcnMgd2l0aCBidWlsZC1tYW55LWdsaWJjcy5w eSB1cGRhdGUtc3lzY2FsbHMuCisKK1Rlc3RlZCB3aXRoIGJ1aWxkLW1hbnktZ2xpYmNzLnB5Lgor CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBmY2NhZGNkZjViZWQ3ZWU2N2E2Y2VmNDcxNGUw YjQ3N2Q2Yzg0NzJjKQorLS0tCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvcmlzY3YvcnYzMi9h cmNoLXN5c2NhbGwuaCB8IDEgKworIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Jpc2N2L3J2NjQv YXJjaC1zeXNjYWxsLmggfCAxICsKKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXNjYWxsLW5h bWVzLmxpc3QgICAgICAgIHwgNCArKy0tCisgMyBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9yaXNjdi9ydjMyL2FyY2gtc3lzY2FsbC5oIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcmlz Y3YvcnYzMi9hcmNoLXN5c2NhbGwuaAoraW5kZXggYmY0YmU4MGY4ZC4uMjAyNTIwZWUyNSAxMDA2 NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Jpc2N2L3J2MzIvYXJjaC1zeXNjYWxs LmgKKysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Jpc2N2L3J2MzIvYXJjaC1zeXNjYWxs LmgKK0BAIC0xMjIsNiArMTIyLDcgQEAKKyAjZGVmaW5lIF9fTlJfbWJpbmQgMjM1CisgI2RlZmlu ZSBfX05SX21lbWJhcnJpZXIgMjgzCisgI2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAyNzkKKysj ZGVmaW5lIF9fTlJfbWVtZmRfc2VjcmV0IDQ0NworICNkZWZpbmUgX19OUl9taWdyYXRlX3BhZ2Vz IDIzOAorICNkZWZpbmUgX19OUl9taW5jb3JlIDIzMgorICNkZWZpbmUgX19OUl9ta2RpcmF0IDM0 CitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvcmlzY3YvcnY2NC9hcmNoLXN5 c2NhbGwuaCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Jpc2N2L3J2NjQvYXJjaC1zeXNjYWxs LmgKK2luZGV4IGQ2NTZhZWRjYzIuLjRlNjVmMzM3ZDQgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9yaXNjdi9ydjY0L2FyY2gtc3lzY2FsbC5oCisrKysgYi9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9yaXNjdi9ydjY0L2FyY2gtc3lzY2FsbC5oCitAQCAtMTI3LDYgKzEyNyw3 IEBACisgI2RlZmluZSBfX05SX21iaW5kIDIzNQorICNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIDI4 MworICNkZWZpbmUgX19OUl9tZW1mZF9jcmVhdGUgMjc5CisrI2RlZmluZSBfX05SX21lbWZkX3Nl Y3JldCA0NDcKKyAjZGVmaW5lIF9fTlJfbWlncmF0ZV9wYWdlcyAyMzgKKyAjZGVmaW5lIF9fTlJf bWluY29yZSAyMzIKKyAjZGVmaW5lIF9fTlJfbWtkaXJhdCAzNAorZGlmZiAtLWdpdCBhL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGwtbmFtZXMubGlzdCBiL3N5c2RlcHMvdW5peC9zeXN2 L2xpbnV4L3N5c2NhbGwtbmFtZXMubGlzdAoraW5kZXggNmM3YjJmNzAxMS4uMDI4YWQzMTA3YSAx MDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5c2NhbGwtbmFtZXMubGlzdAor KysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzY2FsbC1uYW1lcy5saXN0CitAQCAtMjEs OCArMjEsOCBAQAorICMgVGhpcyBmaWxlIGNhbiBsaXN0IGFsbCBwb3RlbnRpYWwgc3lzdGVtIGNh bGxzLiAgVGhlIG5hbWVzIGFyZSBvbmx5CisgIyB1c2VkIGlmIHRoZSBpbnN0YWxsZWQga2VybmVs IGhlYWRlcnMgYWxzbyBwcm92aWRlIHRoZW0uCisgCistIyBUaGUgbGlzdCBvZiBzeXN0ZW0gY2Fs bHMgaXMgY3VycmVudCBhcyBvZiBMaW51eCA1LjE4LgorLWtlcm5lbCA1LjE4CisrIyBUaGUgbGlz dCBvZiBzeXN0ZW0gY2FsbHMgaXMgY3VycmVudCBhcyBvZiBMaW51eCA1LjE5LgorK2tlcm5lbCA1 LjE5CisgCisgRkFTVF9hdG9taWNfdXBkYXRlCisgRkFTVF9jbXB4Y2hnCistLSAKKzIuMzguMQor CisKK0Zyb20gMzAyYmMzM2JjNTNjNzg3ZGE2ZTc0MTYyYTcwOTJlOWMwZmI5NjRhOCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5vYWggR29sZHN0ZWluIDxnb2xkc3RlaW4udy5uQGdt YWlsLmNvbT4KK0RhdGU6IE1vbiwgOCBBdWcgMjAyMiAxMToyNjoyMiArMDgwMAorU3ViamVjdDog ZWxmOiBSZXBsYWNlIGBzdHJjcHlgIGNhbGwgd2l0aCBgbWVtY3B5YCBbQlogIzI5NDU0XQorCitH Q0Mgbm9ybWFsbHkgZG9lcyB0aGlzIG9wdGltaXphdGlvbiBmb3IgdXMgaW4KK3N0cmxlbl9wYXNz OjpoYW5kbGVfYnVpbHRpbl9zdHJjcHkgYnV0IG9ubHkgZm9yIG9wdGltaXplZAorYnVpbGQuIFRv IGF2b2lkIG5lZWRpbmcgdG8gaW5jbHVkZSBzdHJjcHkuUyBpbiB0aGUgcnRsZCBidWlsZCB0bwor c3VwcG9ydCB0aGUgZGVidWcgYnVpbGQsIGp1c3QgZG8gdGhlIG9wdGltaXphdGlvbiBieSBoYW5k LgorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA0ODNjZmUxYTZhMzNkNjMzNWIxOTAxNTgx YjQxMDQwZDJkNDEyNTExKQorLS0tCisgZWxmL2RsLWNhY2hlLmMgfCA1ICsrKy0tCisgMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L2VsZi9kbC1jYWNoZS5jIGIvZWxmL2RsLWNhY2hlLmMKK2luZGV4IDhiYmYxMTBkMDIuLmI5N2Mx N2IzYTkgMTAwNjQ0CistLS0gYS9lbGYvZGwtY2FjaGUuYworKysrIGIvZWxmL2RsLWNhY2hlLmMK K0BAIC01MDksOCArNTA5LDkgQEAgX2RsX2xvYWRfY2FjaGVfbG9va3VwIChjb25zdCBjaGFyICpu YW1lKQorICAgICAgd2UgYXJlIGFjY2Vzc2luZy4gVGhlcmVmb3JlIHdlIG11c3QgbWFrZSB0aGUg Y29weSBvZiB0aGUKKyAgICAgIG1hcHBpbmcgZGF0YSB3aXRob3V0IHVzaW5nIG1hbGxvYy4gICov CisgICBjaGFyICp0ZW1wOworLSAgdGVtcCA9IGFsbG9jYSAoc3RybGVuIChiZXN0KSArIDEpOwor LSAgc3RyY3B5ICh0ZW1wLCBiZXN0KTsKKysgIHNpemVfdCBiZXN0X2xlbiA9IHN0cmxlbiAoYmVz dCkgKyAxOworKyAgdGVtcCA9IGFsbG9jYSAoYmVzdF9sZW4pOworKyAgbWVtY3B5ICh0ZW1wLCBi ZXN0LCBiZXN0X2xlbik7CisgICByZXR1cm4gX19zdHJkdXAgKHRlbXApOworIH0KKyAKKy0tIAor Mi4zOC4xCisKKworRnJvbSBlOTgyNjU3MDczYzRkYjIxNDU5ZmZkOWUxN2JjNTA1YjFkNjRiODc2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJA cmVkaGF0LmNvbT4KK0RhdGU6IE1vbiwgMTUgQXVnIDIwMjIgMTY6NDM6NTkgKzAyMDAKK1N1Ympl Y3Q6IExpbnV4OiBUZXJtaW5hdGUgc3VicHJvY2VzcyBvbiBsYXRlIGZhaWx1cmUgaW4gdHN0LXBp ZGZkIChidWcgMjk0ODUpCisKK1Jldmlld2VkLWJ5OiBDYXJsb3MgTydEb25lbGwgPGNhcmxvc0By ZWRoYXQuY29tPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZjgyZTA1ZWJiMjk1Y2FkZDM1 ZjczNzJmNjUyYzcyMjY0ZGE4MTBhZCkKKy0tLQorIE5FV1MgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMSArCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LXBpZGZkLmMgfCA3 ICsrKysrLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKKworZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCitpbmRleCAxNWYzZGQyY2RiLi5mOGZiOGRi NTEwIDEwMDY0NAorLS0tIGEvTkVXUworKysrIGIvTkVXUworQEAgLTEwLDYgKzEwLDcgQEAgVmVy c2lvbiAyLjM2LjEKKyBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhpcyBy ZWxlYXNlOgorIAorICAgWzI5NDQ2XSBfZGxvcGVuIG5vdyBpZ25vcmVzIGRsX2NhbGxlciBhcmd1 bWVudCBpbiBzdGF0aWMgbW9kZQorKyAgWzI5NDg1XSBMaW51eDogVGVybWluYXRlIHN1YnByb2Nl c3Mgb24gbGF0ZSBmYWlsdXJlIGluIHRzdC1waWRmZAorIAorIAwKKyBWZXJzaW9uIDIuMzYKK2Rp ZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3QtcGlkZmQuYyBiL3N5c2RlcHMv dW5peC9zeXN2L2xpbnV4L3RzdC1waWRmZC5jCitpbmRleCAwMzdhZjIyMjkwLi41NzExZDFjMzEy IDEwMDY0NAorLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LXBpZGZkLmMKKysrKyBi L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1waWRmZC5jCitAQCAtMTQ3LDggKzE0NywxMSBA QCBkb190ZXN0ICh2b2lkKQorICAgICAgICBtYXkgYmUgZGVuaWVkIGlmIHRoZSBwcm9jZXNzIGRv ZXNuJ3QgaGF2ZSBDQVBfU1lTX1BUUkFDRSBvcgorICAgICAgICBpZiBhIExTTSBzZWN1cml0eV9w dHJhY2VfYWNjZXNzX2NoZWNrIGRlbmllcyBhY2Nlc3MuICAqLworICAgICBpZiAoZmQgPT0gLTEg JiYgZXJybm8gPT0gRVBFUk0pCistICAgICAgRkFJTF9VTlNVUFBPUlRFRCAoImRvbid0IGhhdmUg cGVybWlzc2lvbiB0byB1c2UgcGlkZmRfZ2V0ZmQgb24gcGlkZmQsICIKKy0JCQkic2tpcHBpbmcg dGVzdCIpOworKyAgICAgIHsKKysJVEVTVF9DT01QQVJFIChwaWRmZF9zZW5kX3NpZ25hbCAocGlk ZmQsIFNJR0tJTEwsIE5VTEwsIDApLCAwKTsKKysJRkFJTF9VTlNVUFBPUlRFRCAoImRvbid0IGhh dmUgcGVybWlzc2lvbiB0byB1c2UgcGlkZmRfZ2V0ZmQgb24gcGlkZmQsICIKKysJCQkgICJza2lw cGluZyB0ZXN0Iik7CisrICAgICAgfQorICAgICBURVNUX1ZFUklGWSAoZmQgPiAwKTsKKyAKKyAg ICAgY2hhciAqcGF0aCA9IHhhc3ByaW50ZiAoIi9wcm9jLyVkL2ZkLyVkIiwgcGlkLCByZW1vdGVf ZmQpOworLS0gCisyLjM4LjEKKworCitGcm9tIDhiMTM5Y2Q0ZjEwNzRhZTBkOTVkOWJmZjYwZGIy ODNhMWVkNzI3MzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1l ciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogTW9uLCAyMiBBdWcgMjAyMiAxMTowNDo0NyAr MDIwMAorU3ViamVjdDogYWxwaGE6IEZpeCBnZW5lcmljIGJyayBzeXN0ZW0gY2FsbCBlbXVsYXRp b24gaW4gX19icmtfY2FsbCAoYnVnCisgMjk0OTApCisKK1RoZSBrZXJuZWwgc3BlY2lhbC1jYXNl cyB0aGUgemVybyBhcmd1bWVudCBmb3IgYWxwaGEgYnJrLCBhbmQgd2UgY2FuCit1c2UgdGhhdCB0 byByZXN0b3JlIHRoZSBnZW5lcmljIExpbnV4IGVycm9yIGhhbmRsaW5nIGJlaGF2aW9yLgorCitG aXhlcyBjb21taXQgYjU3YWIyNThjMTE0MGJjNDU0NjRiNGI5OTA4NzEzZTNlMGVlMzVhYSAoIkxp bnV4OgorSW50cm9kdWNlIF9fYnJrX2NhbGwgZm9yIGludm9raW5nIHRoZSBicmsgc3lzdGVtIGNh bGwiKS4KKworKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZTdhZDI2ZWUzY2I3NGU2MWQwNjM3 Yzg4OGYyNGRkNDc4ZDc3YWY1OCkKKy0tLQorIE5FV1MgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAxICsKKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9icmtfY2Fs bC5oIHwgNyArKystLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXggZjhmYjhkYjUxMC4u YmVjYWIzYWRlOSAxMDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BAIC0xMSw2ICsxMSw3 IEBAIFRoZSBmb2xsb3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6Cisg CisgICBbMjk0NDZdIF9kbG9wZW4gbm93IGlnbm9yZXMgZGxfY2FsbGVyIGFyZ3VtZW50IGluIHN0 YXRpYyBtb2RlCisgICBbMjk0ODVdIExpbnV4OiBUZXJtaW5hdGUgc3VicHJvY2VzcyBvbiBsYXRl IGZhaWx1cmUgaW4gdHN0LXBpZGZkCisrICBbMjk0OTBdIGFscGhhOiBOZXcgX19icmtfY2FsbCBp bXBsZW1lbnRhdGlvbiBpcyBicm9rZW4KKyAKKyAMCisgVmVyc2lvbiAyLjM2CitkaWZmIC0tZ2l0 IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvYWxwaGEvYnJrX2NhbGwuaCBiL3N5c2RlcHMvdW5p eC9zeXN2L2xpbnV4L2FscGhhL2Jya19jYWxsLmgKK2luZGV4IGI4MDg4Y2YxM2YuLjBiODUxYjZj ODYgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9icmtfY2FsbC5o CisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9hbHBoYS9icmtfY2FsbC5oCitAQCAtMjEs OCArMjEsNyBAQCBfX2Jya19jYWxsICh2b2lkICphZGRyKQorIHsKKyAgIHVuc2lnbmVkIGxvbmcg aW50IHJlc3VsdCA9IElOVEVSTkFMX1NZU0NBTExfQ0FMTCAoYnJrLCBhZGRyKTsKKyAgIGlmIChy ZXN1bHQgPT0gLUVOT01FTSkKKy0gICAgLyogTWltaWMgdGhlIGRlZmF1bHQgZXJyb3IgcmVwb3J0 aW5nIGJlaGF2aW9yLiAgKi8KKy0gICAgcmV0dXJuIGFkZHI7CistICBlbHNlCistICAgIHJldHVy biAodm9pZCAqKSByZXN1bHQ7CisrICAgIC8qIE1pbWljIHRoZSBnZW5lcmljIGVycm9yIHJlcG9y dGluZyBiZWhhdmlvci4gICovCisrICAgIHJlc3VsdCA9IElOVEVSTkFMX1NZU0NBTExfQ0FMTCAo YnJrLCAwKTsKKysgIHJldHVybiAodm9pZCAqKSByZXN1bHQ7CisgfQorLS0gCisyLjM4LjEKKwor CitGcm9tIGQxM2E3YTZmMTAwNTc2YjFlMzBkYzA0NGIyZTBjNGNiY2I2MTk2ZjYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBBcmp1biBTaGFua2FyIDxhcmp1bkByZWRoYXQuY29tPgor RGF0ZTogVHVlLCAyIEF1ZyAyMDIyIDExOjEwOjI1ICswMjAwCitTdWJqZWN0OiBzb2NrZXQ6IENo ZWNrIGxlbmd0aHMgYmVmb3JlIGFkdmFuY2luZyBwb2ludGVyIGluIENNU0dfTlhUSERSCisKK1Ro ZSBpbmxpbmUgYW5kIGxpYnJhcnkgZnVuY3Rpb25zIHRoYXQgdGhlIENNU0dfTlhUSERSIG1hY3Jv IG1heSBleHBhbmQKK3RvIGluY3JlbWVudCB0aGUgcG9pbnRlciB0byB0aGUgaGVhZGVyIGJlZm9y ZSBjaGVja2luZyB0aGUgc3RyaWRlIG9mCit0aGUgaW5jcmVtZW50IGFnYWluc3QgYXZhaWxhYmxl IHNwYWNlLiAgU2luY2UgQyBvbmx5IGFsbG93cyBpbmNyZW1lbnRpbmcKK3BvaW50ZXJzIHRvIG9u ZSBwYXN0IHRoZSBlbmQgb2YgYW4gYXJyYXksIHRoZSBpbmNyZW1lbnQgbXVzdCBiZSBkb25lCith ZnRlciBhIGxlbmd0aCBjaGVjay4gIFRoaXMgY29tbWl0IGZpeGVzIHRoYXQgYW5kIGluY2x1ZGVz IGEgcmVncmVzc2lvbgordGVzdCBmb3IgQ01TR19GSVJTVEhEUiBhbmQgQ01TR19OWFRIRFIuCisK K1RoZSBMaW51eCwgSHVyZCwgYW5kIGdlbmVyaWMgaGVhZGVycyBhcmUgYWxsIGNoYW5nZWQuCisK K1Rlc3RlZCBvbiBMaW51eCBvbiBhcm12N2hsLCBpNjg2LCB4ODZfNjQsIGFhcmNoNjQsIHBwYzY0 bGUsIGFuZCBzMzkweC4KKworW0JaICMyODg0Nl0KKworUmV2aWV3ZWQtYnk6IFNpZGRoZXNoIFBv eWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNv bW1pdCA5YzQ0M2FjNDU1OWE0N2VkOTk4NTliZDgwZDE0ZGM0YjZkZDIyMGExKQorLS0tCisgYml0 cy9zb2NrZXQuaCAgICAgICAgICAgICAgICAgICAgICAgICB8IDQwICsrKysrKysrKystLQorIHNv Y2tldC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCisgc29ja2V0L3RzdC1j bXNnaGRyLXNrZWxldG9uLmMgICAgICAgICB8IDkyICsrKysrKysrKysrKysrKysrKysrKysrKysr KworIHNvY2tldC90c3QtY21zZ2hkci5jICAgICAgICAgICAgICAgICAgfCA1NiArKysrKysrKysr KysrKysrCisgc3lzZGVwcy9tYWNoL2h1cmQvYml0cy9zb2NrZXQuaCAgICAgICB8IDQwICsrKysr KysrKystLQorIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2JpdHMvc29ja2V0LmggfCA0MCArKysr KysrKysrLS0KKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jbXNnX254dGhkci5jIHwgMzYgKysr KysrKystLS0KKyA3IGZpbGVzIGNoYW5nZWQsIDI3NiBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlv bnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc29ja2V0L3RzdC1jbXNnaGRyLXNrZWxldG9uLmMK KyBjcmVhdGUgbW9kZSAxMDA2NDQgc29ja2V0L3RzdC1jbXNnaGRyLmMKKworZGlmZiAtLWdpdCBh L2JpdHMvc29ja2V0LmggYi9iaXRzL3NvY2tldC5oCitpbmRleCAyYjk5ZGVhMzNiLi5hYWM4YzQ5 YjAwIDEwMDY0NAorLS0tIGEvYml0cy9zb2NrZXQuaAorKysrIGIvYml0cy9zb2NrZXQuaAorQEAg LTI0NSw2ICsyNDUsMTIgQEAgc3RydWN0IGNtc2doZHIKKyAJCQkgKyBDTVNHX0FMSUdOIChzaXpl b2YgKHN0cnVjdCBjbXNnaGRyKSkpCisgI2RlZmluZSBDTVNHX0xFTihsZW4pICAgKENNU0dfQUxJ R04gKHNpemVvZiAoc3RydWN0IGNtc2doZHIpKSArIChsZW4pKQorIAorKy8qIEdpdmVuIGEgbGVu Z3RoLCByZXR1cm4gdGhlIGFkZGl0aW9uYWwgcGFkZGluZyBuZWNlc3Nhcnkgc3VjaCB0aGF0Cisr ICAgbGVuICsgX19DTVNHX1BBRERJTkcobGVuKSA9PSBDTVNHX0FMSUdOIChsZW4pLiAgKi8KKysj ZGVmaW5lIF9fQ01TR19QQURESU5HKGxlbikgKChzaXplb2YgKHNpemVfdCkgXAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0gKChsZW4pICYgKHNpemVvZiAoc2l6ZV90KSAtIDEpKSkg XAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiAoc2l6ZW9mIChzaXplX3QpIC0gMSkp CisrCisgZXh0ZXJuIHN0cnVjdCBjbXNnaGRyICpfX2Ntc2dfbnh0aGRyIChzdHJ1Y3QgbXNnaGRy ICpfX21oZHIsCisgCQkJCSAgICAgIHN0cnVjdCBjbXNnaGRyICpfX2Ntc2cpIF9fVEhST1c7Cisg I2lmZGVmIF9fVVNFX0VYVEVSTl9JTkxJTkVTCitAQCAtMjU0LDE4ICsyNjAsMzggQEAgZXh0ZXJu IHN0cnVjdCBjbXNnaGRyICpfX2Ntc2dfbnh0aGRyIChzdHJ1Y3QgbXNnaGRyICpfX21oZHIsCisg X0VYVEVSTl9JTkxJTkUgc3RydWN0IGNtc2doZHIgKgorIF9fTlRIIChfX2Ntc2dfbnh0aGRyIChz dHJ1Y3QgbXNnaGRyICpfX21oZHIsIHN0cnVjdCBjbXNnaGRyICpfX2Ntc2cpKQorIHsKKysgIC8q IFdlIG1heSBzYWZlbHkgYXNzdW1lIHRoYXQgX19jbXNnIGxpZXMgYmV0d2VlbiBfX21oZHItPm1z Z19jb250cm9sIGFuZAorKyAgICAgX19taGRyLT5tc2dfY29udHJvbGxlbiBiZWNhdXNlIHRoZSB1 c2VyIGlzIHJlcXVpcmVkIHRvIG9idGFpbiB0aGUgZmlyc3QKKysgICAgIGNtc2cgdmlhIENNU0df RklSU1RIRFIsIHNldCBpdHMgbGVuZ3RoLCB0aGVuIG9idGFpbiBzdWJzZXF1ZW50IGNtc2dzCisr ICAgICB2aWEgQ01TR19OWFRIRFIsIHNldHRpbmcgbGVuZ3RocyBhbG9uZyB0aGUgd2F5LiAgSG93 ZXZlciwgd2UgZG9uJ3QgeWV0CisrICAgICB0cnVzdCB0aGUgdmFsdWUgb2YgX19jbXNnLT5jbXNn X2xlbiBhbmQgdGhlcmVmb3JlIGRvIG5vdCB1c2UgaXQgaW4gYW55CisrICAgICBwb2ludGVyIGFy aXRobWV0aWMgdW50aWwgd2UgY2hlY2sgaXRzIHZhbHVlLiAgKi8KKysKKysgIHVuc2lnbmVkIGNo YXIgKiBfX21zZ19jb250cm9sX3B0ciA9ICh1bnNpZ25lZCBjaGFyICopIF9fbWhkci0+bXNnX2Nv bnRyb2w7CisrICB1bnNpZ25lZCBjaGFyICogX19jbXNnX3B0ciA9ICh1bnNpZ25lZCBjaGFyICop IF9fY21zZzsKKysKKysgIHNpemVfdCBfX3NpemVfbmVlZGVkID0gc2l6ZW9mIChzdHJ1Y3QgY21z Z2hkcikKKysgICAgICAgICAgICAgICAgICAgICAgICAgKyBfX0NNU0dfUEFERElORyAoX19jbXNn LT5jbXNnX2xlbik7CisrCisrICAvKiBUaGUgY3VycmVudCBoZWFkZXIgaXMgbWFsZm9ybWVkLCB0 b28gc21hbGwgdG8gYmUgYSBmdWxsIGhlYWRlci4gICovCisgICBpZiAoKHNpemVfdCkgX19jbXNn LT5jbXNnX2xlbiA8IHNpemVvZiAoc3RydWN0IGNtc2doZHIpKQorLSAgICAvKiBUaGUga2VybmVs IGhlYWRlciBkb2VzIHRoaXMgc28gdGhlcmUgbWF5IGJlIGEgcmVhc29uLiAgKi8KKyAgICAgcmV0 dXJuIChzdHJ1Y3QgY21zZ2hkciAqKSAwOworIAorKyAgLyogVGhlcmUgaXNuJ3QgZW5vdWdoIHNw YWNlIGJldHdlZW4gX19jbXNnIGFuZCB0aGUgZW5kIG9mIHRoZSBidWZmZXIgdG8KKysgIGhvbGQg dGhlIGN1cnJlbnQgY21zZyAqYW5kKiB0aGUgbmV4dCBvbmUuICAqLworKyAgaWYgKCgoc2l6ZV90 KQorKyAgICAgICAgIChfX21zZ19jb250cm9sX3B0ciArIF9fbWhkci0+bXNnX2NvbnRyb2xsZW4g LSBfX2Ntc2dfcHRyKQorKyAgICAgICA8IF9fc2l6ZV9uZWVkZWQpCisrICAgICAgfHwgKChzaXpl X3QpCisrICAgICAgICAgICAgKF9fbXNnX2NvbnRyb2xfcHRyICsgX19taGRyLT5tc2dfY29udHJv bGxlbiAtIF9fY21zZ19wdHIKKysgICAgICAgICAgICAgLSBfX3NpemVfbmVlZGVkKQorKyAgICAg ICAgICA8IF9fY21zZy0+Y21zZ19sZW4pKQorKworKyAgICByZXR1cm4gKHN0cnVjdCBjbXNnaGRy ICopIDA7CisrCisrICAvKiBOb3csIHdlIHRydXN0IGNtc2dfbGVuIGFuZCBjYW4gdXNlIGl0IHRv IGZpbmQgdGhlIG5leHQgaGVhZGVyLiAgKi8KKyAgIF9fY21zZyA9IChzdHJ1Y3QgY21zZ2hkciAq KSAoKHVuc2lnbmVkIGNoYXIgKikgX19jbXNnCisgCQkJICAgICAgICsgQ01TR19BTElHTiAoX19j bXNnLT5jbXNnX2xlbikpOworLSAgaWYgKCh1bnNpZ25lZCBjaGFyICopIChfX2Ntc2cgKyAxKSA+ ICgodW5zaWduZWQgY2hhciAqKSBfX21oZHItPm1zZ19jb250cm9sCistCQkJCQkrIF9fbWhkci0+ bXNnX2NvbnRyb2xsZW4pCistICAgICAgfHwgKCh1bnNpZ25lZCBjaGFyICopIF9fY21zZyArIENN U0dfQUxJR04gKF9fY21zZy0+Y21zZ19sZW4pCistCSAgPiAoKHVuc2lnbmVkIGNoYXIgKikgX19t aGRyLT5tc2dfY29udHJvbCArIF9fbWhkci0+bXNnX2NvbnRyb2xsZW4pKSkKKy0gICAgLyogTm8g bW9yZSBlbnRyaWVzLiAgKi8KKy0gICAgcmV0dXJuIChzdHJ1Y3QgY21zZ2hkciAqKSAwOworICAg cmV0dXJuIF9fY21zZzsKKyB9CisgI2VuZGlmCS8qIFVzZSBgZXh0ZXJuIGlubGluZScuICAqLwor ZGlmZiAtLWdpdCBhL3NvY2tldC9NYWtlZmlsZSBiL3NvY2tldC9NYWtlZmlsZQoraW5kZXggMTU2 ZWVjNmM4NS4uMmJkZTc4Mzg3ZiAxMDA2NDQKKy0tLSBhL3NvY2tldC9NYWtlZmlsZQorKysrIGIv c29ja2V0L01ha2VmaWxlCitAQCAtMzQsNiArMzQsNyBAQCByb3V0aW5lcyA6PSBhY2NlcHQgYmlu ZCBjb25uZWN0IGdldHBlZXJuYW1lIGdldHNvY2tuYW1lIGdldHNvY2tvcHQJXAorIHRlc3RzIDo9 IFwKKyAgIHRzdC1hY2NlcHQ0IFwKKyAgIHRzdC1zb2Nrb3B0IFwKKysgIHRzdC1jbXNnaGRyIFwK KyAgICMgdGVzdHMKKyAKKyB0ZXN0cy1pbnRlcm5hbCA6PSBcCitkaWZmIC0tZ2l0IGEvc29ja2V0 L3RzdC1jbXNnaGRyLXNrZWxldG9uLmMgYi9zb2NrZXQvdHN0LWNtc2doZHItc2tlbGV0b24uYwor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAuLjRjNjg5ODU2OWIKKy0tLSAv ZGV2L251bGwKKysrKyBiL3NvY2tldC90c3QtY21zZ2hkci1za2VsZXRvbi5jCitAQCAtMCwwICsx LDkyIEBACisrLyogVGVzdCBhbmNpbGxhcnkgZGF0YSBoZWFkZXIgY3JlYXRpb24uCisrICAgQ29w eXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorKworKyAgIFRoZSBHTlUgQyBMaWJy YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAg IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdO VSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4gICovCisrCisrLyogV2UgdXNlIHRoZSBwcmVwcm9jZXNzb3IgdG8gZ2VuZXJhdGUgdGhl IGZ1bmN0aW9uL21hY3JvIHRlc3RzIGluc3RlYWQgb2YKKysgICB1c2luZyBpbmRpcmVjdGlvbiBi ZWNhdXNlIGhhdmluZyBhbGwgdGhlIG1hY3JvIGV4cGFuc2lvbnMgYWxvbmdzaWRlCisrICAgZWFj aCBvdGhlciBsZXRzIHRoZSBjb21waWxlciB3YXJuIHVzIGFib3V0IHN1c3BpY2lvdXMgcG9pbnRl cgorKyAgIGFyaXRobWV0aWMgYWNyb3NzIHN1YnNlcXVlbnQgQ01TR197RklSU1QsTlhUfUhEUiBl eHBhbnNpb25zLiAgKi8KKysKKysjaW5jbHVkZSA8c3RkaW50Lmg+CisrCisrI2RlZmluZSBSVU5f VEVTVF9DT05DQVQoc3VmZml4KSBydW5fdGVzdF8jI3N1ZmZpeAorKyNkZWZpbmUgUlVOX1RFU1Rf RlVOQ05BTUUoc3VmZml4KSBSVU5fVEVTVF9DT05DQVQgKHN1ZmZpeCkKKysKKytzdGF0aWMgdm9p ZAorK1JVTl9URVNUX0ZVTkNOQU1FIChDTVNHX05YVEhEUl9JTVBMKSAodm9pZCkKKyt7CisrICBz dHJ1Y3QgbXNnaGRyIG0gPSB7MH07CisrICBzdHJ1Y3QgY21zZ2hkciAqY21zZzsKKysgIGNoYXIg Y21zZ2J1ZlszICogQ01TR19TUEFDRSAoc2l6ZW9mIChQQVlMT0FEKSldID0gezB9OworKworKyAg bS5tc2dfY29udHJvbCA9IGNtc2didWY7CisrICBtLm1zZ19jb250cm9sbGVuID0gc2l6ZW9mIChj bXNnYnVmKTsKKysKKysgIC8qIEZpcnN0IGhlYWRlciBzaG91bGQgcG9pbnQgdG8gdGhlIHN0YXJ0 IG9mIHRoZSBidWZmZXIuICAqLworKyAgY21zZyA9IENNU0dfRklSU1RIRFIgKCZtKTsKKysgIFRF U1RfVkVSSUZZX0VYSVQgKChjaGFyICopIGNtc2cgPT0gY21zZ2J1Zik7CisrCisrICAvKiBJZiB0 aGUgZmlyc3QgaGVhZGVyIGxlbmd0aCBjb25zdW1lcyB0aGUgZW50aXJlIGJ1ZmZlciwgdGhlcmUg aXMgbm8KKysgICAgIHNwYWNlIHJlbWFpbmluZyBmb3IgYWRkaXRpb25hbCBoZWFkZXJzLiAgKi8K KysgIGNtc2ctPmNtc2dfbGVuID0gc2l6ZW9mIChjbXNnYnVmKTsKKysgIGNtc2cgPSBDTVNHX05Y VEhEUl9JTVBMICgmbSwgY21zZyk7CisrICBURVNUX1ZFUklGWV9FWElUIChjbXNnID09IE5VTEwp OworKworKyAgLyogVGhlIGZpcnN0IGhlYWRlciBsZW5ndGggaXMgc28gYmlnLCB1c2luZyBpdCB3 b3VsZCBjYXVzZSBhbiBvdmVyZmxvdy4gICovCisrICBjbXNnID0gQ01TR19GSVJTVEhEUiAoJm0p OworKyAgVEVTVF9WRVJJRllfRVhJVCAoKGNoYXIgKikgY21zZyA9PSBjbXNnYnVmKTsKKysgIGNt c2ctPmNtc2dfbGVuID0gU0laRV9NQVg7CisrICBjbXNnID0gQ01TR19OWFRIRFJfSU1QTCAoJm0s IGNtc2cpOworKyAgVEVTVF9WRVJJRllfRVhJVCAoY21zZyA9PSBOVUxMKTsKKysKKysgIC8qIFRo ZSBmaXJzdCBoZWFkZXIgbGVhdmVzIGp1c3QgZW5vdWdoIHNwYWNlIHRvIGhvbGQgYW5vdGhlciBo ZWFkZXIuICAqLworKyAgY21zZyA9IENNU0dfRklSU1RIRFIgKCZtKTsKKysgIFRFU1RfVkVSSUZZ X0VYSVQgKChjaGFyICopIGNtc2cgPT0gY21zZ2J1Zik7CisrICBjbXNnLT5jbXNnX2xlbiA9IHNp emVvZiAoY21zZ2J1ZikgLSBzaXplb2YgKHN0cnVjdCBjbXNnaGRyKTsKKysgIGNtc2cgPSBDTVNH X05YVEhEUl9JTVBMICgmbSwgY21zZyk7CisrICBURVNUX1ZFUklGWV9FWElUIChjbXNnICE9IE5V TEwpOworKworKyAgLyogVGhlIGZpcnN0IGhlYWRlciBsZWF2ZXMgc3BhY2UgYnV0IG5vdCBlbm91 Z2ggZm9yIGFub3RoZXIgaGVhZGVyLiAgKi8KKysgIGNtc2cgPSBDTVNHX0ZJUlNUSERSICgmbSk7 CisrICBURVNUX1ZFUklGWV9FWElUICgoY2hhciAqKSBjbXNnID09IGNtc2didWYpOworKyAgY21z Zy0+Y21zZ19sZW4gKys7CisrICBjbXNnID0gQ01TR19OWFRIRFJfSU1QTCAoJm0sIGNtc2cpOwor KyAgVEVTVF9WRVJJRllfRVhJVCAoY21zZyA9PSBOVUxMKTsKKysKKysgIC8qIFRoZSBzZWNvbmQg aGVhZGVyIGxlYXZlcyBqdXN0IGVub3VnaCBzcGFjZSB0byBob2xkIGFub3RoZXIgaGVhZGVyLiAg Ki8KKysgIGNtc2cgPSBDTVNHX0ZJUlNUSERSICgmbSk7CisrICBURVNUX1ZFUklGWV9FWElUICgo Y2hhciAqKSBjbXNnID09IGNtc2didWYpOworKyAgY21zZy0+Y21zZ19sZW4gPSBDTVNHX0xFTiAo c2l6ZW9mIChQQVlMT0FEKSk7CisrICBjbXNnID0gQ01TR19OWFRIRFJfSU1QTCAoJm0sIGNtc2cp OworKyAgVEVTVF9WRVJJRllfRVhJVCAoY21zZyAhPSBOVUxMKTsKKysgIGNtc2ctPmNtc2dfbGVu ID0gc2l6ZW9mIChjbXNnYnVmKQorKyAgICAgICAgICAgICAgICAgICAtIENNU0dfU1BBQ0UgKHNp emVvZiAoUEFZTE9BRCkpIC8qIEZpcnN0IGhlYWRlci4gICovCisrICAgICAgICAgICAgICAgICAg IC0gc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcik7CisrICBjbXNnID0gQ01TR19OWFRIRFJfSU1QTCAo Jm0sIGNtc2cpOworKyAgVEVTVF9WRVJJRllfRVhJVCAoY21zZyAhPSBOVUxMKTsKKysKKysgIC8q IFRoZSBzZWNvbmQgaGVhZGVyIGxlYXZlcyBzcGFjZSBidXQgbm90IGVub3VnaCBmb3IgYW5vdGhl ciBoZWFkZXIuICAqLworKyAgY21zZyA9IENNU0dfRklSU1RIRFIgKCZtKTsKKysgIFRFU1RfVkVS SUZZX0VYSVQgKChjaGFyICopIGNtc2cgPT0gY21zZ2J1Zik7CisrICBjbXNnID0gQ01TR19OWFRI RFJfSU1QTCAoJm0sIGNtc2cpOworKyAgVEVTVF9WRVJJRllfRVhJVCAoY21zZyAhPSBOVUxMKTsK KysgIGNtc2ctPmNtc2dfbGVuICsrOworKyAgY21zZyA9IENNU0dfTlhUSERSX0lNUEwgKCZtLCBj bXNnKTsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKGNtc2cgPT0gTlVMTCk7CisrCisrICByZXR1cm47 CisrfQorZGlmZiAtLWdpdCBhL3NvY2tldC90c3QtY21zZ2hkci5jIGIvc29ja2V0L3RzdC1jbXNn aGRyLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi42OGM5NmQzYzlk CistLS0gL2Rldi9udWxsCisrKysgYi9zb2NrZXQvdHN0LWNtc2doZHIuYworQEAgLTAsMCArMSw1 NiBAQAorKy8qIFRlc3QgYW5jaWxsYXJ5IGRhdGEgaGVhZGVyIGNyZWF0aW9uLgorKyAgIENvcHly aWdodCAoQykgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZp bGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysKKysgICBUaGUgR05VIEMgTGlicmFy eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBt b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj CisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor KyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUg QyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uICAqLworKworKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisrI2luY2x1ZGUgPGdudS9saWIt bmFtZXMuaD4KKysjaW5jbHVkZSA8c3VwcG9ydC94ZGxmY24uaD4KKysjaW5jbHVkZSA8c3VwcG9y dC9jaGVjay5oPgorKworKyNkZWZpbmUgUEFZTE9BRCAiSGVsbG8sIFdvcmxkISIKKysKKysvKiBD TVNHX05YVEhEUiBpcyBhIG1hY3JvIHRoYXQgY2FsbHMgYW4gaW5saW5lIGZ1bmN0aW9uIGRlZmlu ZWQgaW4KKysgICBiaXRzL3NvY2tldC5oLiAgSW4gY2FzZSB0aGUgZnVuY3Rpb24gY2Fubm90IGJl IGlubGluZWQsIGxpYmMuc28gY2FycmllcworKyAgIGEgY29weS4gIEJvdGggdmVyc2lvbnMgbmVl ZCB0byBiZSB0ZXN0ZWQuICAqLworKworKyNkZWZpbmUgQ01TR19OWFRIRFJfSU1QTCBDTVNHX05Y VEhEUgorKyNpbmNsdWRlICJ0c3QtY21zZ2hkci1za2VsZXRvbi5jIgorKyN1bmRlZiBDTVNHX05Y VEhEUl9JTVBMCisrCisrc3RhdGljIHN0cnVjdCBjbXNnaGRyICogKCogY21zZ19ueHRoZHIpIChz dHJ1Y3QgbXNnaGRyICosIHN0cnVjdCBjbXNnaGRyICopOworKworKyNkZWZpbmUgQ01TR19OWFRI RFJfSU1QTCBjbXNnX254dGhkcgorKyNpbmNsdWRlICJ0c3QtY21zZ2hkci1za2VsZXRvbi5jIgor KyN1bmRlZiBDTVNHX05YVEhEUl9JTVBMCisrCisrc3RhdGljIGludAorK2RvX3Rlc3QgKHZvaWQp CisreworKyAgc3RhdGljIHZvaWQgKmhhbmRsZTsKKysKKysgIHJ1bl90ZXN0X0NNU0dfTlhUSERS ICgpOworKworKyAgaGFuZGxlID0geGRsb3BlbiAoTElCQ19TTywgUlRMRF9MQVpZKTsKKysgIGNt c2dfbnh0aGRyID0gKHN0cnVjdCBjbXNnaGRyICogKCopIChzdHJ1Y3QgbXNnaGRyICosIHN0cnVj dCBjbXNnaGRyICopKQorKyAgICAgICAgICAgICAgICAgIHhkbHN5bSAoaGFuZGxlLCAiX19jbXNn X254dGhkciIpOworKworKyAgcnVuX3Rlc3RfY21zZ19ueHRoZHIgKCk7CisrCisrICByZXR1cm4g MDsKKyt9CisrCisrI2luY2x1ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4KK2RpZmYgLS1naXQg YS9zeXNkZXBzL21hY2gvaHVyZC9iaXRzL3NvY2tldC5oIGIvc3lzZGVwcy9tYWNoL2h1cmQvYml0 cy9zb2NrZXQuaAoraW5kZXggNWIzNWVhODFlYy4uNzBmY2U0ZmIyNyAxMDA2NDQKKy0tLSBhL3N5 c2RlcHMvbWFjaC9odXJkL2JpdHMvc29ja2V0LmgKKysrKyBiL3N5c2RlcHMvbWFjaC9odXJkL2Jp dHMvc29ja2V0LmgKK0BAIC0yNDksNiArMjQ5LDEyIEBAIHN0cnVjdCBjbXNnaGRyCisgCQkJICsg Q01TR19BTElHTiAoc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcikpKQorICNkZWZpbmUgQ01TR19MRU4o bGVuKSAgIChDTVNHX0FMSUdOIChzaXplb2YgKHN0cnVjdCBjbXNnaGRyKSkgKyAobGVuKSkKKyAK KysvKiBHaXZlbiBhIGxlbmd0aCwgcmV0dXJuIHRoZSBhZGRpdGlvbmFsIHBhZGRpbmcgbmVjZXNz YXJ5IHN1Y2ggdGhhdAorKyAgIGxlbiArIF9fQ01TR19QQURESU5HKGxlbikgPT0gQ01TR19BTElH TiAobGVuKS4gICovCisrI2RlZmluZSBfX0NNU0dfUEFERElORyhsZW4pICgoc2l6ZW9mIChzaXpl X3QpIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtICgobGVuKSAmIChzaXplb2Yg KHNpemVfdCkgLSAxKSkpIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgKHNpemVv ZiAoc2l6ZV90KSAtIDEpKQorKworIGV4dGVybiBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnX254dGhk ciAoc3RydWN0IG1zZ2hkciAqX19taGRyLAorIAkJCQkgICAgICBzdHJ1Y3QgY21zZ2hkciAqX19j bXNnKSBfX1RIUk9XOworICNpZmRlZiBfX1VTRV9FWFRFUk5fSU5MSU5FUworQEAgLTI1OCwxOCAr MjY0LDM4IEBAIGV4dGVybiBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnX254dGhkciAoc3RydWN0IG1z Z2hkciAqX19taGRyLAorIF9FWFRFUk5fSU5MSU5FIHN0cnVjdCBjbXNnaGRyICoKKyBfX05USCAo X19jbXNnX254dGhkciAoc3RydWN0IG1zZ2hkciAqX19taGRyLCBzdHJ1Y3QgY21zZ2hkciAqX19j bXNnKSkKKyB7CisrICAvKiBXZSBtYXkgc2FmZWx5IGFzc3VtZSB0aGF0IF9fY21zZyBsaWVzIGJl dHdlZW4gX19taGRyLT5tc2dfY29udHJvbCBhbmQKKysgICAgIF9fbWhkci0+bXNnX2NvbnRyb2xs ZW4gYmVjYXVzZSB0aGUgdXNlciBpcyByZXF1aXJlZCB0byBvYnRhaW4gdGhlIGZpcnN0CisrICAg ICBjbXNnIHZpYSBDTVNHX0ZJUlNUSERSLCBzZXQgaXRzIGxlbmd0aCwgdGhlbiBvYnRhaW4gc3Vi c2VxdWVudCBjbXNncworKyAgICAgdmlhIENNU0dfTlhUSERSLCBzZXR0aW5nIGxlbmd0aHMgYWxv bmcgdGhlIHdheS4gIEhvd2V2ZXIsIHdlIGRvbid0IHlldAorKyAgICAgdHJ1c3QgdGhlIHZhbHVl IG9mIF9fY21zZy0+Y21zZ19sZW4gYW5kIHRoZXJlZm9yZSBkbyBub3QgdXNlIGl0IGluIGFueQor KyAgICAgcG9pbnRlciBhcml0aG1ldGljIHVudGlsIHdlIGNoZWNrIGl0cyB2YWx1ZS4gICovCisr CisrICB1bnNpZ25lZCBjaGFyICogX19tc2dfY29udHJvbF9wdHIgPSAodW5zaWduZWQgY2hhciAq KSBfX21oZHItPm1zZ19jb250cm9sOworKyAgdW5zaWduZWQgY2hhciAqIF9fY21zZ19wdHIgPSAo dW5zaWduZWQgY2hhciAqKSBfX2Ntc2c7CisrCisrICBzaXplX3QgX19zaXplX25lZWRlZCA9IHNp emVvZiAoc3RydWN0IGNtc2doZHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICsgX19DTVNH X1BBRERJTkcgKF9fY21zZy0+Y21zZ19sZW4pOworKworKyAgLyogVGhlIGN1cnJlbnQgaGVhZGVy IGlzIG1hbGZvcm1lZCwgdG9vIHNtYWxsIHRvIGJlIGEgZnVsbCBoZWFkZXIuICAqLworICAgaWYg KChzaXplX3QpIF9fY21zZy0+Y21zZ19sZW4gPCBzaXplb2YgKHN0cnVjdCBjbXNnaGRyKSkKKy0g ICAgLyogVGhlIGtlcm5lbCBoZWFkZXIgZG9lcyB0aGlzIHNvIHRoZXJlIG1heSBiZSBhIHJlYXNv bi4gICovCisgICAgIHJldHVybiAoc3RydWN0IGNtc2doZHIgKikgMDsKKyAKKysgIC8qIFRoZXJl IGlzbid0IGVub3VnaCBzcGFjZSBiZXR3ZWVuIF9fY21zZyBhbmQgdGhlIGVuZCBvZiB0aGUgYnVm ZmVyIHRvCisrICBob2xkIHRoZSBjdXJyZW50IGNtc2cgKmFuZCogdGhlIG5leHQgb25lLiAgKi8K KysgIGlmICgoKHNpemVfdCkKKysgICAgICAgICAoX19tc2dfY29udHJvbF9wdHIgKyBfX21oZHIt Pm1zZ19jb250cm9sbGVuIC0gX19jbXNnX3B0cikKKysgICAgICAgPCBfX3NpemVfbmVlZGVkKQor KyAgICAgIHx8ICgoc2l6ZV90KQorKyAgICAgICAgICAgIChfX21zZ19jb250cm9sX3B0ciArIF9f bWhkci0+bXNnX2NvbnRyb2xsZW4gLSBfX2Ntc2dfcHRyCisrICAgICAgICAgICAgIC0gX19zaXpl X25lZWRlZCkKKysgICAgICAgICAgPCBfX2Ntc2ctPmNtc2dfbGVuKSkKKysKKysgICAgcmV0dXJu IChzdHJ1Y3QgY21zZ2hkciAqKSAwOworKworKyAgLyogTm93LCB3ZSB0cnVzdCBjbXNnX2xlbiBh bmQgY2FuIHVzZSBpdCB0byBmaW5kIHRoZSBuZXh0IGhlYWRlci4gICovCisgICBfX2Ntc2cgPSAo c3RydWN0IGNtc2doZHIgKikgKCh1bnNpZ25lZCBjaGFyICopIF9fY21zZworIAkJCSAgICAgICAr IENNU0dfQUxJR04gKF9fY21zZy0+Y21zZ19sZW4pKTsKKy0gIGlmICgodW5zaWduZWQgY2hhciAq KSAoX19jbXNnICsgMSkgPiAoKHVuc2lnbmVkIGNoYXIgKikgX19taGRyLT5tc2dfY29udHJvbAor LQkJCQkJKyBfX21oZHItPm1zZ19jb250cm9sbGVuKQorLSAgICAgIHx8ICgodW5zaWduZWQgY2hh ciAqKSBfX2Ntc2cgKyBDTVNHX0FMSUdOIChfX2Ntc2ctPmNtc2dfbGVuKQorLQkgID4gKCh1bnNp Z25lZCBjaGFyICopIF9fbWhkci0+bXNnX2NvbnRyb2wgKyBfX21oZHItPm1zZ19jb250cm9sbGVu KSkpCistICAgIC8qIE5vIG1vcmUgZW50cmllcy4gICovCistICAgIHJldHVybiAoc3RydWN0IGNt c2doZHIgKikgMDsKKyAgIHJldHVybiBfX2Ntc2c7CisgfQorICNlbmRpZgkvKiBVc2UgYGV4dGVy biBpbmxpbmUnLiAgKi8KK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9iaXRz L3NvY2tldC5oIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvYml0cy9zb2NrZXQuaAoraW5kZXgg NGYxZjgxMGVhMS4uNTM5YjhkNzcxNiAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xp bnV4L2JpdHMvc29ja2V0LmgKKysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2JpdHMvc29j a2V0LmgKK0BAIC0zMDcsNiArMzA3LDEyIEBAIHN0cnVjdCBjbXNnaGRyCisgCQkJICsgQ01TR19B TElHTiAoc2l6ZW9mIChzdHJ1Y3QgY21zZ2hkcikpKQorICNkZWZpbmUgQ01TR19MRU4obGVuKSAg IChDTVNHX0FMSUdOIChzaXplb2YgKHN0cnVjdCBjbXNnaGRyKSkgKyAobGVuKSkKKyAKKysvKiBH aXZlbiBhIGxlbmd0aCwgcmV0dXJuIHRoZSBhZGRpdGlvbmFsIHBhZGRpbmcgbmVjZXNzYXJ5IHN1 Y2ggdGhhdAorKyAgIGxlbiArIF9fQ01TR19QQURESU5HKGxlbikgPT0gQ01TR19BTElHTiAobGVu KS4gICovCisrI2RlZmluZSBfX0NNU0dfUEFERElORyhsZW4pICgoc2l6ZW9mIChzaXplX3QpIFwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtICgobGVuKSAmIChzaXplb2YgKHNpemVf dCkgLSAxKSkpIFwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgKHNpemVvZiAoc2l6 ZV90KSAtIDEpKQorKworIGV4dGVybiBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnX254dGhkciAoc3Ry dWN0IG1zZ2hkciAqX19taGRyLAorIAkJCQkgICAgICBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnKSBf X1RIUk9XOworICNpZmRlZiBfX1VTRV9FWFRFUk5fSU5MSU5FUworQEAgLTMxNiwxOCArMzIyLDM4 IEBAIGV4dGVybiBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnX254dGhkciAoc3RydWN0IG1zZ2hkciAq X19taGRyLAorIF9FWFRFUk5fSU5MSU5FIHN0cnVjdCBjbXNnaGRyICoKKyBfX05USCAoX19jbXNn X254dGhkciAoc3RydWN0IG1zZ2hkciAqX19taGRyLCBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnKSkK KyB7CisrICAvKiBXZSBtYXkgc2FmZWx5IGFzc3VtZSB0aGF0IF9fY21zZyBsaWVzIGJldHdlZW4g X19taGRyLT5tc2dfY29udHJvbCBhbmQKKysgICAgIF9fbWhkci0+bXNnX2NvbnRyb2xsZW4gYmVj YXVzZSB0aGUgdXNlciBpcyByZXF1aXJlZCB0byBvYnRhaW4gdGhlIGZpcnN0CisrICAgICBjbXNn IHZpYSBDTVNHX0ZJUlNUSERSLCBzZXQgaXRzIGxlbmd0aCwgdGhlbiBvYnRhaW4gc3Vic2VxdWVu dCBjbXNncworKyAgICAgdmlhIENNU0dfTlhUSERSLCBzZXR0aW5nIGxlbmd0aHMgYWxvbmcgdGhl IHdheS4gIEhvd2V2ZXIsIHdlIGRvbid0IHlldAorKyAgICAgdHJ1c3QgdGhlIHZhbHVlIG9mIF9f Y21zZy0+Y21zZ19sZW4gYW5kIHRoZXJlZm9yZSBkbyBub3QgdXNlIGl0IGluIGFueQorKyAgICAg cG9pbnRlciBhcml0aG1ldGljIHVudGlsIHdlIGNoZWNrIGl0cyB2YWx1ZS4gICovCisrCisrICB1 bnNpZ25lZCBjaGFyICogX19tc2dfY29udHJvbF9wdHIgPSAodW5zaWduZWQgY2hhciAqKSBfX21o ZHItPm1zZ19jb250cm9sOworKyAgdW5zaWduZWQgY2hhciAqIF9fY21zZ19wdHIgPSAodW5zaWdu ZWQgY2hhciAqKSBfX2Ntc2c7CisrCisrICBzaXplX3QgX19zaXplX25lZWRlZCA9IHNpemVvZiAo c3RydWN0IGNtc2doZHIpCisrICAgICAgICAgICAgICAgICAgICAgICAgICsgX19DTVNHX1BBRERJ TkcgKF9fY21zZy0+Y21zZ19sZW4pOworKworKyAgLyogVGhlIGN1cnJlbnQgaGVhZGVyIGlzIG1h bGZvcm1lZCwgdG9vIHNtYWxsIHRvIGJlIGEgZnVsbCBoZWFkZXIuICAqLworICAgaWYgKChzaXpl X3QpIF9fY21zZy0+Y21zZ19sZW4gPCBzaXplb2YgKHN0cnVjdCBjbXNnaGRyKSkKKy0gICAgLyog VGhlIGtlcm5lbCBoZWFkZXIgZG9lcyB0aGlzIHNvIHRoZXJlIG1heSBiZSBhIHJlYXNvbi4gICov CisgICAgIHJldHVybiAoc3RydWN0IGNtc2doZHIgKikgMDsKKyAKKysgIC8qIFRoZXJlIGlzbid0 IGVub3VnaCBzcGFjZSBiZXR3ZWVuIF9fY21zZyBhbmQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIHRv CisrICBob2xkIHRoZSBjdXJyZW50IGNtc2cgKmFuZCogdGhlIG5leHQgb25lLiAgKi8KKysgIGlm ICgoKHNpemVfdCkKKysgICAgICAgICAoX19tc2dfY29udHJvbF9wdHIgKyBfX21oZHItPm1zZ19j b250cm9sbGVuIC0gX19jbXNnX3B0cikKKysgICAgICAgPCBfX3NpemVfbmVlZGVkKQorKyAgICAg IHx8ICgoc2l6ZV90KQorKyAgICAgICAgICAgIChfX21zZ19jb250cm9sX3B0ciArIF9fbWhkci0+ bXNnX2NvbnRyb2xsZW4gLSBfX2Ntc2dfcHRyCisrICAgICAgICAgICAgIC0gX19zaXplX25lZWRl ZCkKKysgICAgICAgICAgPCBfX2Ntc2ctPmNtc2dfbGVuKSkKKysKKysgICAgcmV0dXJuIChzdHJ1 Y3QgY21zZ2hkciAqKSAwOworKworKyAgLyogTm93LCB3ZSB0cnVzdCBjbXNnX2xlbiBhbmQgY2Fu IHVzZSBpdCB0byBmaW5kIHRoZSBuZXh0IGhlYWRlci4gICovCisgICBfX2Ntc2cgPSAoc3RydWN0 IGNtc2doZHIgKikgKCh1bnNpZ25lZCBjaGFyICopIF9fY21zZworIAkJCSAgICAgICArIENNU0df QUxJR04gKF9fY21zZy0+Y21zZ19sZW4pKTsKKy0gIGlmICgodW5zaWduZWQgY2hhciAqKSAoX19j bXNnICsgMSkgPiAoKHVuc2lnbmVkIGNoYXIgKikgX19taGRyLT5tc2dfY29udHJvbAorLQkJCQkJ KyBfX21oZHItPm1zZ19jb250cm9sbGVuKQorLSAgICAgIHx8ICgodW5zaWduZWQgY2hhciAqKSBf X2Ntc2cgKyBDTVNHX0FMSUdOIChfX2Ntc2ctPmNtc2dfbGVuKQorLQkgID4gKCh1bnNpZ25lZCBj aGFyICopIF9fbWhkci0+bXNnX2NvbnRyb2wgKyBfX21oZHItPm1zZ19jb250cm9sbGVuKSkpCist ICAgIC8qIE5vIG1vcmUgZW50cmllcy4gICovCistICAgIHJldHVybiAoc3RydWN0IGNtc2doZHIg KikgMDsKKyAgIHJldHVybiBfX2Ntc2c7CisgfQorICNlbmRpZgkvKiBVc2UgYGV4dGVybiBpbmxp bmUnLiAgKi8KK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9jbXNnX254dGhk ci5jIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvY21zZ19ueHRoZHIuYworaW5kZXggMTViN2Ez YTkyNS4uMjRmNzJiNzk3YSAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Nt c2dfbnh0aGRyLmMKKysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2Ntc2dfbnh0aGRyLmMK K0BAIC0yMywxOCArMjMsMzggQEAKKyBzdHJ1Y3QgY21zZ2hkciAqCisgX19jbXNnX254dGhkciAo c3RydWN0IG1zZ2hkciAqbWhkciwgc3RydWN0IGNtc2doZHIgKmNtc2cpCisgeworKyAgLyogV2Ug bWF5IHNhZmVseSBhc3N1bWUgdGhhdCBjbXNnIGxpZXMgYmV0d2VlbiBtaGRyLT5tc2dfY29udHJv bCBhbmQKKysgICAgIG1oZHItPm1zZ19jb250cm9sbGVuIGJlY2F1c2UgdGhlIHVzZXIgaXMgcmVx dWlyZWQgdG8gb2J0YWluIHRoZSBmaXJzdAorKyAgICAgY21zZyB2aWEgQ01TR19GSVJTVEhEUiwg c2V0IGl0cyBsZW5ndGgsIHRoZW4gb2J0YWluIHN1YnNlcXVlbnQgY21zZ3MKKysgICAgIHZpYSBD TVNHX05YVEhEUiwgc2V0dGluZyBsZW5ndGhzIGFsb25nIHRoZSB3YXkuICBIb3dldmVyLCB3ZSBk b24ndCB5ZXQKKysgICAgIHRydXN0IHRoZSB2YWx1ZSBvZiBjbXNnLT5jbXNnX2xlbiBhbmQgdGhl cmVmb3JlIGRvIG5vdCB1c2UgaXQgaW4gYW55CisrICAgICBwb2ludGVyIGFyaXRobWV0aWMgdW50 aWwgd2UgY2hlY2sgaXRzIHZhbHVlLiAgKi8KKysKKysgIHVuc2lnbmVkIGNoYXIgKiBtc2dfY29u dHJvbF9wdHIgPSAodW5zaWduZWQgY2hhciAqKSBtaGRyLT5tc2dfY29udHJvbDsKKysgIHVuc2ln bmVkIGNoYXIgKiBjbXNnX3B0ciA9ICh1bnNpZ25lZCBjaGFyICopIGNtc2c7CisrCisrICBzaXpl X3Qgc2l6ZV9uZWVkZWQgPSBzaXplb2YgKHN0cnVjdCBjbXNnaGRyKQorKyAgICAgICAgICAgICAg ICAgICAgICAgKyBfX0NNU0dfUEFERElORyAoY21zZy0+Y21zZ19sZW4pOworKworKyAgLyogVGhl IGN1cnJlbnQgaGVhZGVyIGlzIG1hbGZvcm1lZCwgdG9vIHNtYWxsIHRvIGJlIGEgZnVsbCBoZWFk ZXIuICAqLworICAgaWYgKChzaXplX3QpIGNtc2ctPmNtc2dfbGVuIDwgc2l6ZW9mIChzdHJ1Y3Qg Y21zZ2hkcikpCistICAgIC8qIFRoZSBrZXJuZWwgaGVhZGVyIGRvZXMgdGhpcyBzbyB0aGVyZSBt YXkgYmUgYSByZWFzb24uICAqLworLSAgICByZXR1cm4gTlVMTDsKKysgICAgcmV0dXJuIChzdHJ1 Y3QgY21zZ2hkciAqKSAwOworKworKyAgLyogVGhlcmUgaXNuJ3QgZW5vdWdoIHNwYWNlIGJldHdl ZW4gY21zZyBhbmQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIHRvCisrICBob2xkIHRoZSBjdXJyZW50 IGNtc2cgKmFuZCogdGhlIG5leHQgb25lLiAgKi8KKysgIGlmICgoKHNpemVfdCkKKysgICAgICAg ICAobXNnX2NvbnRyb2xfcHRyICsgbWhkci0+bXNnX2NvbnRyb2xsZW4gLSBjbXNnX3B0cikKKysg ICAgICAgPCBzaXplX25lZWRlZCkKKysgICAgICB8fCAoKHNpemVfdCkKKysgICAgICAgICAgICAo bXNnX2NvbnRyb2xfcHRyICsgbWhkci0+bXNnX2NvbnRyb2xsZW4gLSBjbXNnX3B0cgorKyAgICAg ICAgICAgICAtIHNpemVfbmVlZGVkKQorKyAgICAgICAgICA8IGNtc2ctPmNtc2dfbGVuKSkKKysK KysgICAgcmV0dXJuIChzdHJ1Y3QgY21zZ2hkciAqKSAwOworIAorKyAgLyogTm93LCB3ZSB0cnVz dCBjbXNnX2xlbiBhbmQgY2FuIHVzZSBpdCB0byBmaW5kIHRoZSBuZXh0IGhlYWRlci4gICovCisg ICBjbXNnID0gKHN0cnVjdCBjbXNnaGRyICopICgodW5zaWduZWQgY2hhciAqKSBjbXNnCisgCQkJ ICAgICArIENNU0dfQUxJR04gKGNtc2ctPmNtc2dfbGVuKSk7CistICBpZiAoKHVuc2lnbmVkIGNo YXIgKikgKGNtc2cgKyAxKSA+ICgodW5zaWduZWQgY2hhciAqKSBtaGRyLT5tc2dfY29udHJvbAor LQkJCQkgICAgICArIG1oZHItPm1zZ19jb250cm9sbGVuKQorLSAgICAgIHx8ICgodW5zaWduZWQg Y2hhciAqKSBjbXNnICsgQ01TR19BTElHTiAoY21zZy0+Y21zZ19sZW4pCistCSAgPiAoKHVuc2ln bmVkIGNoYXIgKikgbWhkci0+bXNnX2NvbnRyb2wgKyBtaGRyLT5tc2dfY29udHJvbGxlbikpKQor LSAgICAvKiBObyBtb3JlIGVudHJpZXMuICAqLworLSAgICByZXR1cm4gTlVMTDsKKyAgIHJldHVy biBjbXNnOworIH0KKyBsaWJjX2hpZGRlbl9kZWYgKF9fY21zZ19ueHRoZHIpCistLSAKKzIuMzgu MQorCisKK0Zyb20gNWM2Mjg3NGY0MjNhZjkzZTk3YjUxYmM5YTU3YWYyMjhhNTQ2MTU2ZiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFyanVuIFNoYW5rYXIgPGFyanVuQHJlZGhhdC5j b20+CitEYXRlOiBNb24sIDIyIEF1ZyAyMDIyIDE4OjIxOjE0ICswMjAwCitTdWJqZWN0OiBORVdT OiBBZGQgZW50cnkgZm9yIGJ1ZyAyODg0NgorCistLS0KKyBORVdTIHwgMSArCisgMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspCisKK2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXgg YmVjYWIzYWRlOS4uYWUzMDkwMGJiYyAxMDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BA IC05LDYgKzksNyBAQCBWZXJzaW9uIDIuMzYuMQorIAorIFRoZSBmb2xsb3dpbmcgYnVncyBhcmUg cmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6CisgCisrICBbMjg4NDZdIENNU0dfTlhUSERSIG1h eSB0cmlnZ2VyIC1Xc3RyaWN0LW92ZXJmbG93IHdhcm5pbmcKKyAgIFsyOTQ0Nl0gX2Rsb3BlbiBu b3cgaWdub3JlcyBkbF9jYWxsZXIgYXJndW1lbnQgaW4gc3RhdGljIG1vZGUKKyAgIFsyOTQ4NV0g TGludXg6IFRlcm1pbmF0ZSBzdWJwcm9jZXNzIG9uIGxhdGUgZmFpbHVyZSBpbiB0c3QtcGlkZmQK KyAgIFsyOTQ5MF0gYWxwaGE6IE5ldyBfX2Jya19jYWxsIGltcGxlbWVudGF0aW9uIGlzIGJyb2tl bgorLS0gCisyLjM4LjEKKworCitGcm9tIDAwNjJlN2RkMWMzNjc0ZWNlMmRhY2E1M2E4OThiYWRk MjhiNjA0MjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBZGhlbWVydmFsIFphbmVs bGEgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorRGF0ZTogV2VkLCAxMCBBdWcgMjAy MiAxNjoyNDowNiAtMDMwMAorU3ViamVjdDogZ2xpYmNleHRyYWN0LnB5OiBBZGQgY29tcGlsZV9j X3NuaXBwZXQKKworSXQgbWlnaHQgYmUgdXNlZCBvbiB0ZXN0cyB0byBjaGVjayBpZiBhIHNuaXBw ZXQgYnVpbGQgd2l0aCB0aGUgcHJvdmlkZWQKK2NvbXBpbGVyIGFuZCBmbGFncy4KKworUmV2aWV3 ZWQtYnk6IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CisoY2hlcnJ5IHBpY2tl ZCBmcm9tIGNvbW1pdCA4NDFhZmExMTZlMzJiM2M3MTk1NDc1NzY5YzI2YmY0NmZkODcwZDMyKQor LS0tCisgc2NyaXB0cy9nbGliY2V4dHJhY3QucHkgfCAxOSArKysrKysrKysrKysrKysrKysrCisg MSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL3NjcmlwdHMv Z2xpYmNleHRyYWN0LnB5IGIvc2NyaXB0cy9nbGliY2V4dHJhY3QucHkKK2luZGV4IDQzYWI1OGZm ZTIuLjM2ZDIwNGM5YjAgMTAwNjQ0CistLS0gYS9zY3JpcHRzL2dsaWJjZXh0cmFjdC5weQorKysr IGIvc2NyaXB0cy9nbGliY2V4dHJhY3QucHkKK0BAIC0xNyw2ICsxNyw3IEBACisgIyBMaWNlbnNl IGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgIyA8aHR0cHM6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorIAorK2ltcG9ydCBjb2xsZWN0aW9ucworIGltcG9ydCBv cy5wYXRoCisgaW1wb3J0IHJlCisgaW1wb3J0IHN1YnByb2Nlc3MKK0BAIC0xNzMsMyArMTc0LDIx IEBAIGRlZiBjb21wYXJlX21hY3JvX2NvbnN0cyhzb3VyY2VfMSwgc291cmNlXzIsIGNjLCBtYWNy b19yZSwgZXhjbHVkZV9yZT1Ob25lLAorICAgICAgICAgICAgIGlmIG5vdCBhbGxvd19leHRyYV8y OgorICAgICAgICAgICAgICAgICByZXQgPSAxCisgICAgIHJldHVybiByZXQKKysKKytDb21waWxl UmVzdWx0ID0gY29sbGVjdGlvbnMubmFtZWR0dXBsZSgiQ29tcGlsZVJlc3VsdCIsICJyZXR1cm5j b2RlIG91dHB1dCIpCisrCisrZGVmIGNvbXBpbGVfY19zbmlwcGV0KHNuaXBwZXQsIGNjLCBleHRy YV9jY19hcmdzPScnKToKKysgICAgIiIiQ29tcGlsZSBhbmQgcmV0dXJuIHdoZXRoZXIgdGhlIFNO SVBQRVQgY2FuIGJlIGJ1aWxkIHdpdGggQ0MgYWxvbmcKKysgICAgICAgRVhUUkFfQ0NfQVJHUyBj b21waWxlciBmbGFncy4gIFJldHVybiBhIENvbXBpbGVSZXN1bHQgd2l0aCBSRVRVUk5DT0RFCisr ICAgICAgIGJlaW5nIDAgZm9yIHN1Y2Nlc3MsIG9yIHRoZSBmYWlsdXJlIHZhbHVlIGFuZCB0aGUg Y29tcGlsZXIgb3V0cHV0LgorKyAgICAiIiIKKysgICAgd2l0aCB0ZW1wZmlsZS5UZW1wb3JhcnlE aXJlY3RvcnkoKSBhcyB0ZW1wX2RpcjoKKysgICAgICAgIGNfZmlsZV9uYW1lID0gb3MucGF0aC5q b2luKHRlbXBfZGlyLCAndGVzdC5jJykKKysgICAgICAgIG9ial9maWxlX25hbWUgPSBvcy5wYXRo LmpvaW4odGVtcF9kaXIsICd0ZXN0Lm8nKQorKyAgICAgICAgd2l0aCBvcGVuKGNfZmlsZV9uYW1l LCAndycpIGFzIGNfZmlsZToKKysgICAgICAgICAgICBjX2ZpbGUud3JpdGUoc25pcHBldCArICdc bicpCisrICAgICAgICBjbWQgPSBjYy5zcGxpdCgpICsgZXh0cmFfY2NfYXJncy5zcGxpdCgpICsg WyctYycsICctbycsIG9ial9maWxlX25hbWUsCisrICAgICAgICAgICAgICAgIGNfZmlsZV9uYW1l XQorKyAgICAgICAgciA9IHN1YnByb2Nlc3MucnVuKGNtZCwgY2hlY2s9RmFsc2UsIHN0ZG91dD1z dWJwcm9jZXNzLlBJUEUsCisrICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9V VCkKKysgICAgICAgIHJldHVybiBDb21waWxlUmVzdWx0KHIucmV0dXJuY29kZSwgci5zdGRvdXQp CistLSAKKzIuMzguMQorCisKK0Zyb20gMWNjNTUxMzExNGU3NjA4MzY2OWNiYTFiMTEyNTJhYWQz NTUyNWU2OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFkaGVtZXJ2YWwgWmFuZWxs YSA8YWRoZW1lcnZhbC56YW5lbGxhQGxpbmFyby5vcmc+CitEYXRlOiBXZWQsIDEwIEF1ZyAyMDIy IDE0OjI0OjQ0IC0wMzAwCitTdWJqZWN0OiBsaW51eDogVXNlIGNvbXBpbGVfY19zbmlwcGV0IHRv IGNoZWNrIGxpbnV4L3BpZGZkLmggYXZhaWxhYmlsaXR5CisKK0luc3RlYWQgb2YgdHlpbmcgdG8g YSBzcGVjaWZpYyBrZXJuZWwgdmVyc2lvbi4KKworQ2hlY2tlZCBvbiB4ODZfNjQtbGludXgtZ251 LgorCitSZXZpZXdlZC1ieTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KKyhj aGVycnkgcGlja2VkIGZyb20gY29tbWl0IDE1NDIwMTliNjliN2VjN2IyY2QzNDM1N2FmMDM1ZTQw NmQxNTM2MzEpCistLS0KKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3QtcGlkZmQtY29uc3Rz LnB5IHwgMTAgKysrKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3Qt cGlkZmQtY29uc3RzLnB5IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LXBpZGZkLWNvbnN0 cy5weQoraW5kZXggOTBjYmI5YmU2NC4uZDczMjE3M2FiZCAxMDA2NDQKKy0tLSBhL3N5c2RlcHMv dW5peC9zeXN2L2xpbnV4L3RzdC1waWRmZC1jb25zdHMucHkKKysrKyBiL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L3RzdC1waWRmZC1jb25zdHMucHkKK0BAIC0zMywxMSArMzMsMTMgQEAgZGVmIG1h aW4oKToKKyAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdDIGNvbXBpbGVyIChpbmNsdWRp bmcgb3B0aW9ucykgdG8gdXNlJykKKyAgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKyAK Ky0gICAgbGludXhfdmVyc2lvbl9oZWFkZXJzID0gZ2xpYmNzeXNjYWxscy5saW51eF9rZXJuZWxf dmVyc2lvbihhcmdzLmNjKQorLSAgICAjIExpbnV4IHN0YXJ0ZWQgdG8gcHJvdmlkZSBwaWRmZC5o IHdpdGggNS4xMC4KKy0gICAgaWYgbGludXhfdmVyc2lvbl9oZWFkZXJzIDwgKDUsIDEwKToKKysg ICAgaWYgZ2xpYmNleHRyYWN0LmNvbXBpbGVfY19zbmlwcGV0KAorKyAgICAgICAgICAgICcjaW5j bHVkZSA8bGludXgvcGlkZmQuaD4nLAorKyAgICAgICAgICAgIGFyZ3MuY2MpLnJldHVybmNvZGUg IT0gMDoKKyAgICAgICAgIHN5cy5leGl0ICg3NykKKy0gICAgbGludXhfdmVyc2lvbl9nbGliYyA9 ICg1LCAxOCkKKysKKysgICAgbGludXhfdmVyc2lvbl9oZWFkZXJzID0gZ2xpYmNzeXNjYWxscy5s aW51eF9rZXJuZWxfdmVyc2lvbihhcmdzLmNjKQorKyAgICBsaW51eF92ZXJzaW9uX2dsaWJjID0g KDUsIDE5KQorICAgICBzeXMuZXhpdChnbGliY2V4dHJhY3QuY29tcGFyZV9tYWNyb19jb25zdHMo CisgICAgICAgICAgICAgICAgICcjaW5jbHVkZSA8c3lzL3BpZGZkLmg+XG4nLAorICAgICAgICAg ICAgICAgICAnI2luY2x1ZGUgPGFzbS9mY250bC5oPlxuJworLS0gCisyLjM4LjEKKworCitGcm9t IDRkYWQ5N2UyYTJlNTEwYzZiNTNhMGFkZDI5YTIxODg3MTRmY2Y0YWIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBBZGhlbWVydmFsIFphbmVsbGEgPGFkaGVtZXJ2YWwuemFuZWxsYUBs aW5hcm8ub3JnPgorRGF0ZTogV2VkLCAxMCBBdWcgMjAyMiAxNDoyNDo0NSAtMDMwMAorU3ViamVj dDogbGludXg6IE1pbWljIGtlcm5lbCBkZWZpdGlvbiBmb3IgQkxPQ0tfU0laRQorCitUbyBhdm9p ZCBwb3NzaWJsZSB3YXJuaW5ncyBpZiB0aGUga2VybmVsIGhlYWRlciBpcyBpbmNsdWRlZCBiZWZv cmUKK3N5cy9tb3VudC5oLgorCitSZXZpZXdlZC1ieTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJA cmVkaGF0LmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGM2OGI2MDQ0YmM3OTQ1NzE2 NDMxZjFhZGMwOTFiMTdjMzliODBhMDYpCistLS0KKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9z eXMvbW91bnQuaCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tb3Vu dC5oIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL21vdW50LmgKK2luZGV4IGY5NjU5ODZi YTguLmRmNmIwZGJiNDIgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zeXMv bW91bnQuaAorKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lzL21vdW50LmgKK0BAIC0y Nyw4ICsyNyw4IEBACisgI2luY2x1ZGUgPHN0ZGRlZi5oPgorICNpbmNsdWRlIDxzeXMvaW9jdGwu aD4KKyAKKy0jZGVmaW5lIEJMT0NLX1NJWkUJMTAyNAorICNkZWZpbmUgQkxPQ0tfU0laRV9CSVRT CTEwCisrI2RlZmluZSBCTE9DS19TSVpFCSgxPDxCTE9DS19TSVpFX0JJVFMpCisgCisgCisgLyog VGhlc2UgYXJlIHRoZSBmcy1pbmRlcGVuZGVudCBtb3VudC1mbGFnczogdXAgdG8gMTYgZmxhZ3Mg YXJlCistLSAKKzIuMzguMQorCisKK0Zyb20gZDQ4ODEzMjI3YjYzYTBkOTJlYTM1N2VhMDczMzIy OWVkNzRlMzFhYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFkaGVtZXJ2YWwgWmFu ZWxsYSA8YWRoZW1lcnZhbC56YW5lbGxhQGxpbmFyby5vcmc+CitEYXRlOiBXZWQsIDEwIEF1ZyAy MDIyIDE0OjI0OjQ2IC0wMzAwCitTdWJqZWN0OiBsaW51eDogVXNlIGNvbXBpbGVfY19zbmlwcGV0 IHRvIGNoZWNrIGxpbnV4L21vdW50LmggYXZhaWxhYmlsaXR5CisKK0NoZWNrZWQgb24geDg2XzY0 LWxpbnV4LWdudS4KKworUmV2aWV3ZWQtYnk6IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhh dC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBlMTIyNmNkYzZiMjA5NTM5YTkyZDMy ZDViNjIwYmE1M2ZkMzVhYmYzKQorLS0tCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LW1v dW50LWNvbnN0cy5weSB8IDUgKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCsp CisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3QtbW91bnQtY29uc3Rz LnB5IGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LW1vdW50LWNvbnN0cy5weQoraW5kZXgg YTYyZjgwMzEyMy4uYmUyZWYyZGFmMSAxMDA3NTUKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2L2xp bnV4L3RzdC1tb3VudC1jb25zdHMucHkKKysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3Rz dC1tb3VudC1jb25zdHMucHkKK0BAIC0zMyw2ICszMywxMSBAQCBkZWYgbWFpbigpOgorICAgICAg ICAgICAgICAgICAgICAgICAgIGhlbHA9J0MgY29tcGlsZXIgKGluY2x1ZGluZyBvcHRpb25zKSB0 byB1c2UnKQorICAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorIAorKyAgICBpZiBnbGli Y2V4dHJhY3QuY29tcGlsZV9jX3NuaXBwZXQoCisrICAgICAgICAgICAgJyNpbmNsdWRlIDxsaW51 eC9tb3VudC5oPicsCisrICAgICAgICAgICAgYXJncy5jYykucmV0dXJuY29kZSAhPSAwOgorKyAg ICAgICAgc3lzLmV4aXQgKDc3KQorKworICAgICBsaW51eF92ZXJzaW9uX2hlYWRlcnMgPSBnbGli Y3N5c2NhbGxzLmxpbnV4X2tlcm5lbF92ZXJzaW9uKGFyZ3MuY2MpCisgICAgICMgQ29uc3RhbnRz IGluIGdsaWJjIHdlcmUgdXBkYXRlZCB0byBtYXRjaCBMaW51eCB2NS4xNi4gIFdoZW4gZ2xpYmMK KyAgICAgIyBjb25zdGFudHMgYXJlIHVwZGF0ZWQgdGhpcyB2YWx1ZSBzaG91bGQgYmUgdXBkYXRl ZCB0byBtYXRjaCB0aGUKKy0tIAorMi4zOC4xCisKKworRnJvbSBiYjFlOGIwY2E5OWI1Y2JlZGZh ZTNlNjI0NTUyOGE4N2Q5NWZmM2UyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQWRo ZW1lcnZhbCBaYW5lbGxhIDxhZGhlbWVydmFsLnphbmVsbGFAbGluYXJvLm9yZz4KK0RhdGU6IFdl ZCwgMTAgQXVnIDIwMjIgMTQ6MjQ6NDcgLTAzMDAKK1N1YmplY3Q6IGxpbnV4OiBGaXggc3lzL21v dW50LmggdXNhZ2Ugd2l0aCBrZXJuZWwgaGVhZGVycworCitOb3cgdGhhdCBrZXJuZWwgZXhwb3J0 cyBsaW51eC9tb3VudC5oIGFuZCBpbmNsdWRlcyBpdCBvbiBsaW51eC9mcy5oLAoraXRzIGRlZmlu aXRpb25zIG1pZ2h0IGNsYXNoIHdpdGggZ2xpYmMgZXhwb3J0cyBzeXMvbW91bnQuaC4gIFRvIGF2 b2lkCit0aGUgbmVlZCB0byByZWFycmFuZ2UgdGhlIExpbnV4IGhlYWRlciB0byBiZSBhbHdheXMg YWZ0ZXIgZ2xpYmMgb25lLAordGhlIGdsaWJjIHN5cy9tb3VudC5oIGlzIGNoYW5nZWQgdG86CisK KyAgMS4gVW5kZWZpbmUgdGhlIG1hY3JvcyBhbHNvIHVzZWQgYXMgZW51bSBjb25zdGFudHMuICBU aGlzIGNvdmVycyBwcmlvcgorICAgICBpbmNsdXNpb24gb2YgPGxpbnV4L21vdW50Lmg+IChmb3Ig aW5zdGFuY2UgTVNfUkRPTkxZKS4KKworICAyLiBJbmNsdWRlIDxsaW51eC9tb3VudC5oPiBiYXNl ZCBvbiB0aGUgdXN1YWwgX19oYXNfaW5jbHVkZSBjaGVjaworICAgICAobmVlZHMgdG8gdXNlIF9f aGFzX2luY2x1ZGUgKCJsaW51eC9tb3VudC5oIikgdG8gcGFwZXIgb3ZlciBHQ0MKKyAgICAgYnVn cy4KKworICAzLiBEZWZpbmUgZW51bSBmc2NvbmZpZ19jb21tYW5kIG9ubHkgaWYgRlNPUEVOX0NM T0VYRUMgaXMgbm90IGRlZmluZWQuCisgICAgIChGU09QRU5fQ0xPRVhFQyBzaG91bGQgYmUgYSB2 ZXJ5IGNsb3NlIHByb3h5LikKKworICA0LiBEZWZpbmUgc3RydWN0IG1vdW50X2F0dHIgaWYgTU9V TlRfQVRUUl9TSVpFX1ZFUjAgaXMgbm90IGRlZmluZWQuCisgICAgIChBZGRlZCBpbiB0aGUgc2Ft ZSBjb21taXQgb24gdGhlIExpbnV4IHNpZGUuKQorCitUaGlzIHBhdGNoIGFsc28gYWRkcyBzb21l IHRlc3RzIHRvIGNoZWNrIGlmIGluY2x1ZGluZyBsaW51eC9mcy5oIGFuZAorbGludXgvbW91bnQu aCBhZnRlciBhbmQgYmVmb3JlIHN5cy9tb3VudC5oIGRvZXMgd29yay4KKworQ2hlY2tlZCBvbiB4 ODZfNjQtbGludXgtZ251LgorCitSZXZpZXdlZC1ieTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJA cmVkaGF0LmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDc3NDA1OGQ3Mjk0MjI0OWY3 MWQ3NGU3ZjJiNjM5Zjc3MTg0MTYwYTYpCistLS0KKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9N YWtlZmlsZSAgICAgICAgICAgICB8ICA4ICsrKworIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5 cy9tb3VudC5oICAgICAgICAgIHwgNzEgKysrKysrKysrKysrKysrKystLS0KKyBzeXNkZXBzL3Vu aXgvc3lzdi9saW51eC90c3QtbW91bnQtY29tcGlsZS5weSB8IDY2ICsrKysrKysrKysrKysrKysr KworIDMgZmlsZXMgY2hhbmdlZCwgMTM3IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCisg Y3JlYXRlIG1vZGUgMTAwNzU1IHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1tb3VudC1jb21w aWxlLnB5CisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9NYWtlZmlsZSBi L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlCitpbmRleCBhMTM5YTE2NTMyLi4zY2Vk YTlmZGJmIDEwMDY0NAorLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvTWFrZWZpbGUKKysr KyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L01ha2VmaWxlCitAQCAtMjY1LDYgKzI2NSwxNCBA QCAkKG9ianBmeCl0c3QtbW91bnQtY29uc3RzLm91dDogLi4vc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvdHN0LW1vdW50LWNvbnN0cy5weQorIAkgIDwgL2Rldi9udWxsID4gJEAgMj4mMTsgJChldmFs dWF0ZS10ZXN0KQorICQob2JqcGZ4KXRzdC1tb3VudC1jb25zdHMub3V0OiAkKHN5c2RlcHMtbGlu dXgtcHl0aG9uLWRlcHMpCisgCisrdGVzdHMtc3BlY2lhbCArPSAkKG9ianBmeCl0c3QtbW91bnQt Y29tcGlsZS5vdXQKKyskKG9ianBmeCl0c3QtbW91bnQtY29tcGlsZS5vdXQ6IC4uL3N5c2RlcHMv dW5peC9zeXN2L2xpbnV4L3RzdC1tb3VudC1jb21waWxlLnB5CisrCSQoc3lzZGVwcy1saW51eC1w eXRob24pIFwKKysJICAuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3QtbW91bnQtY29tcGls ZS5weSBcCisrCSAgICAkKHN5c2RlcHMtbGludXgtcHl0aG9uLWNjKSBcCisrCSAgPCAvZGV2L251 bGwgPiAkQCAyPiYxOyAkKGV2YWx1YXRlLXRlc3QpCisrJChvYmpwZngpdHN0LW1vdW50LWNvbXBp bGUub3V0OiAkKHN5c2RlcHMtbGludXgtcHl0aG9uLWRlcHMpCisrCisgdHN0LXJzZXEtZGlzYWJs ZS1FTlYgPSBHTElCQ19UVU5BQkxFUz1nbGliYy5wdGhyZWFkLnJzZXE9MAorIAorIGVuZGlmICMg JChzdWJkaXIpID09IG1pc2MKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9z eXMvbW91bnQuaCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tb3VudC5oCitpbmRleCBk ZjZiMGRiYjQyLi4yZTNmZDZhN2ZlIDEwMDY0NAorLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvc3lzL21vdW50LmgKKysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3N5cy9tb3VudC5o CitAQCAtMjcsNiArMjcsMTMgQEAKKyAjaW5jbHVkZSA8c3RkZGVmLmg+CisgI2luY2x1ZGUgPHN5 cy9pb2N0bC5oPgorIAorKyNpZmRlZiBfX2hhc19pbmNsdWRlCisrIyBpZiBfX2hhc19pbmNsdWRl ICgibGludXgvbW91bnQuaCIpCisrIyAgaW5jbHVkZSAibGludXgvbW91bnQuaCIKKysjIGVuZGlm CisrI2VuZGlmCisrCisrCisgI2RlZmluZSBCTE9DS19TSVpFX0JJVFMJMTAKKyAjZGVmaW5lIEJM T0NLX1NJWkUJKDE8PEJMT0NLX1NJWkVfQklUUykKKyAKK0BAIC0zNSw2OSArNDIsOTggQEAKKyAg ICBzdXBwb3J0ZWQgICovCisgZW51bQorIHsKKysjdW5kZWYgTVNfUkRPTkxZCisgICBNU19SRE9O TFkgPSAxLAkJLyogTW91bnQgcmVhZC1vbmx5LiAgKi8KKyAjZGVmaW5lIE1TX1JET05MWQlNU19S RE9OTFkKKysjdW5kZWYgTVNfTk9TVUlECisgICBNU19OT1NVSUQgPSAyLAkJLyogSWdub3JlIHN1 aWQgYW5kIHNnaWQgYml0cy4gICovCisgI2RlZmluZSBNU19OT1NVSUQJTVNfTk9TVUlECisrI3Vu ZGVmIE1TX05PREVWCisgICBNU19OT0RFViA9IDQsCQkJLyogRGlzYWxsb3cgYWNjZXNzIHRvIGRl dmljZSBzcGVjaWFsIGZpbGVzLiAgKi8KKyAjZGVmaW5lIE1TX05PREVWCU1TX05PREVWCisrI3Vu ZGVmIE1TX05PRVhFQworICAgTVNfTk9FWEVDID0gOCwJCS8qIERpc2FsbG93IHByb2dyYW0gZXhl Y3V0aW9uLiAgKi8KKyAjZGVmaW5lIE1TX05PRVhFQwlNU19OT0VYRUMKKysjdW5kZWYgTVNfU1lO Q0hST05PVVMKKyAgIE1TX1NZTkNIUk9OT1VTID0gMTYsCQkvKiBXcml0ZXMgYXJlIHN5bmNlZCBh dCBvbmNlLiAgKi8KKyAjZGVmaW5lIE1TX1NZTkNIUk9OT1VTCU1TX1NZTkNIUk9OT1VTCisrI3Vu ZGVmIE1TX1JFTU9VTlQKKyAgIE1TX1JFTU9VTlQgPSAzMiwJCS8qIEFsdGVyIGZsYWdzIG9mIGEg bW91bnRlZCBGUy4gICovCisgI2RlZmluZSBNU19SRU1PVU5UCU1TX1JFTU9VTlQKKysjdW5kZWYg TVNfTUFORExPQ0sKKyAgIE1TX01BTkRMT0NLID0gNjQsCQkvKiBBbGxvdyBtYW5kYXRvcnkgbG9j a3Mgb24gYW4gRlMuICAqLworICNkZWZpbmUgTVNfTUFORExPQ0sJTVNfTUFORExPQ0sKKysjdW5k ZWYgTVNfRElSU1lOQworICAgTVNfRElSU1lOQyA9IDEyOCwJCS8qIERpcmVjdG9yeSBtb2RpZmlj YXRpb25zIGFyZSBzeW5jaHJvbm91cy4gICovCisgI2RlZmluZSBNU19ESVJTWU5DCU1TX0RJUlNZ TkMKKysjdW5kZWYgTVNfTk9TWU1GT0xMT1cKKyAgIE1TX05PU1lNRk9MTE9XID0gMjU2LAkJLyog RG8gbm90IGZvbGxvdyBzeW1saW5rcy4gICovCisgI2RlZmluZSBNU19OT1NZTUZPTExPVwlNU19O T1NZTUZPTExPVworKyN1bmRlZiBNU19OT0FUSU1FCisgICBNU19OT0FUSU1FID0gMTAyNCwJCS8q IERvIG5vdCB1cGRhdGUgYWNjZXNzIHRpbWVzLiAgKi8KKyAjZGVmaW5lIE1TX05PQVRJTUUJTVNf Tk9BVElNRQorKyN1bmRlZiBNU19OT0RJUkFUSU1FCisgICBNU19OT0RJUkFUSU1FID0gMjA0OCwJ CS8qIERvIG5vdCB1cGRhdGUgZGlyZWN0b3J5IGFjY2VzcyB0aW1lcy4gICovCisgI2RlZmluZSBN U19OT0RJUkFUSU1FCU1TX05PRElSQVRJTUUKKysjdW5kZWYgTVNfQklORAorICAgTVNfQklORCA9 IDQwOTYsCQkvKiBCaW5kIGRpcmVjdG9yeSBhdCBkaWZmZXJlbnQgcGxhY2UuICAqLworICNkZWZp bmUgTVNfQklORAkJTVNfQklORAorKyN1bmRlZiBNU19NT1ZFCisgICBNU19NT1ZFID0gODE5MiwK KyAjZGVmaW5lIE1TX01PVkUJCU1TX01PVkUKKysjdW5kZWYgTVNfUkVDCisgICBNU19SRUMgPSAx NjM4NCwKKyAjZGVmaW5lIE1TX1JFQwkJTVNfUkVDCisrI3VuZGVmIE1TX1NJTEVOVAorICAgTVNf U0lMRU5UID0gMzI3NjgsCisgI2RlZmluZSBNU19TSUxFTlQJTVNfU0lMRU5UCisrI3VuZGVmIE1T X1BPU0lYQUNMCisgICBNU19QT1NJWEFDTCA9IDEgPDwgMTYsCS8qIFZGUyBkb2VzIG5vdCBhcHBs eSB0aGUgdW1hc2suICAqLworICNkZWZpbmUgTVNfUE9TSVhBQ0wJTVNfUE9TSVhBQ0wKKysjdW5k ZWYgTVNfVU5CSU5EQUJMRQorICAgTVNfVU5CSU5EQUJMRSA9IDEgPDwgMTcsCS8qIENoYW5nZSB0 byB1bmJpbmRhYmxlLiAgKi8KKyAjZGVmaW5lIE1TX1VOQklOREFCTEUJTVNfVU5CSU5EQUJMRQor KyN1bmRlZiBNU19QUklWQVRFCisgICBNU19QUklWQVRFID0gMSA8PCAxOCwJCS8qIENoYW5nZSB0 byBwcml2YXRlLiAgKi8KKyAjZGVmaW5lIE1TX1BSSVZBVEUJTVNfUFJJVkFURQorKyN1bmRlZiBN U19TTEFWRQorICAgTVNfU0xBVkUgPSAxIDw8IDE5LAkJLyogQ2hhbmdlIHRvIHNsYXZlLiAgKi8K KyAjZGVmaW5lIE1TX1NMQVZFCU1TX1NMQVZFCisrI3VuZGVmIE1TX1NIQVJFRAorICAgTVNfU0hB UkVEID0gMSA8PCAyMCwJCS8qIENoYW5nZSB0byBzaGFyZWQuICAqLworICNkZWZpbmUgTVNfU0hB UkVECU1TX1NIQVJFRAorKyN1bmRlZiBNU19SRUxBVElNRQorICAgTVNfUkVMQVRJTUUgPSAxIDw8 IDIxLAkvKiBVcGRhdGUgYXRpbWUgcmVsYXRpdmUgdG8gbXRpbWUvY3RpbWUuICAqLworICNkZWZp bmUgTVNfUkVMQVRJTUUJTVNfUkVMQVRJTUUKKysjdW5kZWYgTVNfS0VSTk1PVU5UCisgICBNU19L RVJOTU9VTlQgPSAxIDw8IDIyLAkvKiBUaGlzIGlzIGEga2Vybl9tb3VudCBjYWxsLiAgKi8KKyAj ZGVmaW5lIE1TX0tFUk5NT1VOVAlNU19LRVJOTU9VTlQKKysjdW5kZWYgTVNfSV9WRVJTSU9OCisg ICBNU19JX1ZFUlNJT04gPSAgMSA8PCAyMywJLyogVXBkYXRlIGlub2RlIElfdmVyc2lvbiBmaWVs ZC4gICovCisgI2RlZmluZSBNU19JX1ZFUlNJT04JTVNfSV9WRVJTSU9OCisrI3VuZGVmIE1TX1NU UklDVEFUSU1FCisgICBNU19TVFJJQ1RBVElNRSA9IDEgPDwgMjQsCS8qIEFsd2F5cyBwZXJmb3Jt IGF0aW1lIHVwZGF0ZXMuICAqLworICNkZWZpbmUgTVNfU1RSSUNUQVRJTUUJTVNfU1RSSUNUQVRJ TUUKKysjdW5kZWYgTVNfTEFaWVRJTUUKKyAgIE1TX0xBWllUSU1FID0gMSA8PCAyNSwJLyogVXBk YXRlIHRoZSBvbi1kaXNrIFthY21ddGltZXMgbGF6aWx5LiAgKi8KKyAjZGVmaW5lIE1TX0xBWllU SU1FCU1TX0xBWllUSU1FCisrI3VuZGVmIE1TX0FDVElWRQorICAgTVNfQUNUSVZFID0gMSA8PCAz MCwKKyAjZGVmaW5lIE1TX0FDVElWRQlNU19BQ1RJVkUKKysjdW5kZWYgTVNfTk9VU0VSCisgICBN U19OT1VTRVIgPSAxIDw8IDMxCisgI2RlZmluZSBNU19OT1VTRVIJTVNfTk9VU0VSCisgfTsKKyAK KyAvKiBGbGFncyB0aGF0IGNhbiBiZSBhbHRlcmVkIGJ5IE1TX1JFTU9VTlQgICovCisrI3VuZGVm IE1TX1JNVF9NQVNLCisgI2RlZmluZSBNU19STVRfTUFTSyAoTVNfUkRPTkxZfE1TX1NZTkNIUk9O T1VTfE1TX01BTkRMT0NLfE1TX0lfVkVSU0lPTiBcCisgCQkgICAgIHxNU19MQVpZVElNRSkKKyAK KyAKKyAvKiBNYWdpYyBtb3VudCBmbGFnIG51bWJlci4gSGFzIHRvIGJlIG9yLWVkIHRvIHRoZSBm bGFnIHZhbHVlcy4gICovCisgCisrI3VuZGVmIE1TX01HQ19WQUwKKyAjZGVmaW5lIE1TX01HQ19W QUwgMHhjMGVkMDAwMAkvKiBNYWdpYyBmbGFnIG51bWJlciB0byBpbmRpY2F0ZSAibmV3IiBmbGFn cyAqLworICNkZWZpbmUgTVNfTUdDX01TSyAweGZmZmYwMDAwCS8qIE1hZ2ljIGZsYWcgbnVtYmVy IG1hc2sgKi8KKyAKK0BAIC0xMDYsMjAgKzE0MiwzNSBAQCBlbnVtCisgICAgaXMgcHJvYmFibHkg YXMgYmFkIGFuZCBJIGRvbid0IHdhbnQgdG8gY3JlYXRlIHlldCBhbm90aGVyIGluY2x1ZGUKKyAg ICBmaWxlLiAgKi8KKyAKKysjdW5kZWYgQkxLUk9TRVQKKyAjZGVmaW5lIEJMS1JPU0VUICAgX0lP KDB4MTIsIDkzKSAvKiBTZXQgZGV2aWNlIHJlYWQtb25seSAoMCA9IHJlYWQtd3JpdGUpLiAgKi8K KysjdW5kZWYgQkxLUk9HRVQKKyAjZGVmaW5lIEJMS1JPR0VUICAgX0lPKDB4MTIsIDk0KSAvKiBH ZXQgcmVhZC1vbmx5IHN0YXR1cyAoMCA9IHJlYWRfd3JpdGUpLiAgKi8KKysjdW5kZWYgQkxLUlJQ QVJUCisgI2RlZmluZSBCTEtSUlBBUlQgIF9JTygweDEyLCA5NSkgLyogUmUtcmVhZCBwYXJ0aXRp b24gdGFibGUuICAqLworKyN1bmRlZiBCTEtHRVRTSVpFCisgI2RlZmluZSBCTEtHRVRTSVpFIF9J TygweDEyLCA5NikgLyogUmV0dXJuIGRldmljZSBzaXplLiAgKi8KKysjdW5kZWYgQkxLRkxTQlVG CisgI2RlZmluZSBCTEtGTFNCVUYgIF9JTygweDEyLCA5NykgLyogRmx1c2ggYnVmZmVyIGNhY2hl LiAgKi8KKysjdW5kZWYgQkxLUkFTRVQKKyAjZGVmaW5lIEJMS1JBU0VUICAgX0lPKDB4MTIsIDk4 KSAvKiBTZXQgcmVhZCBhaGVhZCBmb3IgYmxvY2sgZGV2aWNlLiAgKi8KKysjdW5kZWYgQkxLUkFH RVQKKyAjZGVmaW5lIEJMS1JBR0VUICAgX0lPKDB4MTIsIDk5KSAvKiBHZXQgY3VycmVudCByZWFk IGFoZWFkIHNldHRpbmcuICAqLworKyN1bmRlZiBCTEtGUkFTRVQKKyAjZGVmaW5lIEJMS0ZSQVNF VCAgX0lPKDB4MTIsMTAwKSAvKiBTZXQgZmlsZXN5c3RlbSByZWFkLWFoZWFkLiAgKi8KKysjdW5k ZWYgQkxLRlJBR0VUCisgI2RlZmluZSBCTEtGUkFHRVQgIF9JTygweDEyLDEwMSkgLyogR2V0IGZp bGVzeXN0ZW0gcmVhZC1haGVhZC4gICovCisrI3VuZGVmIEJMS1NFQ1RTRVQKKyAjZGVmaW5lIEJM S1NFQ1RTRVQgX0lPKDB4MTIsMTAyKSAvKiBTZXQgbWF4IHNlY3RvcnMgcGVyIHJlcXVlc3QuICAq LworKyN1bmRlZiBCTEtTRUNUR0VUCisgI2RlZmluZSBCTEtTRUNUR0VUIF9JTygweDEyLDEwMykg LyogR2V0IG1heCBzZWN0b3JzIHBlciByZXF1ZXN0LiAgKi8KKysjdW5kZWYgQkxLU1NaR0VUCisg I2RlZmluZSBCTEtTU1pHRVQgIF9JTygweDEyLDEwNCkgLyogR2V0IGJsb2NrIGRldmljZSBzZWN0 b3Igc2l6ZS4gICovCisrI3VuZGVmIEJMS0JTWkdFVAorICNkZWZpbmUgQkxLQlNaR0VUICBfSU9S KDB4MTIsMTEyLHNpemVfdCkKKysjdW5kZWYgQkxLQlNaU0VUCisgI2RlZmluZSBCTEtCU1pTRVQg IF9JT1coMHgxMiwxMTMsc2l6ZV90KQorKyN1bmRlZiBCTEtHRVRTSVpFNjQKKyAjZGVmaW5lIEJM S0dFVFNJWkU2NCBfSU9SKDB4MTIsMTE0LHNpemVfdCkgLyogcmV0dXJuIGRldmljZSBzaXplLiAg Ki8KKyAKKyAKK0BAIC0xNTcsNiArMjA4LDcgQEAgZW51bQorICNkZWZpbmUgTU9VTlRfQVRUUl9O T1NZTUZPTExPVyAgMHgwMDIwMDAwMCAvKiBEbyBub3QgZm9sbG93IHN5bWxpbmtzLiAgKi8KKyAK KyAKKysjaWZuZGVmIE1PVU5UX0FUVFJfU0laRV9WRVIwCisgLyogRm9yIG1vdW50X3NldGF0dHIu ICAqLworIHN0cnVjdCBtb3VudF9hdHRyCisgeworQEAgLTE2NSw2ICsyMTcsNyBAQCBzdHJ1Y3Qg bW91bnRfYXR0cgorICAgdWludDY0X3QgcHJvcGFnYXRpb247CisgICB1aW50NjRfdCB1c2VybnNf ZmQ7CisgfTsKKysjZW5kaWYKKyAKKyAjZGVmaW5lIE1PVU5UX0FUVFJfU0laRV9WRVIwICAgIDMy IC8qIHNpemVvZiBmaXJzdCBwdWJsaXNoZWQgc3RydWN0ICovCisgCitAQCAtMTg1LDI2ICsyMzgs MjggQEAgc3RydWN0IG1vdW50X2F0dHIKKyAjZGVmaW5lIEZTUElDS19FTVBUWV9QQVRIICAgICAg IDB4MDAwMDAwMDgKKyAKKyAKKysjaWZuZGVmIEZTT1BFTl9DTE9FWEVDCisgLyogVGhlIHR5cGUg b2YgZnNjb25maWcgY2FsbCBtYWRlLiAgICovCisgZW51bSBmc2NvbmZpZ19jb21tYW5kCisgewor ICAgRlNDT05GSUdfU0VUX0ZMQUcgICAgICAgPSAwLCAgICAvKiBTZXQgcGFyYW1ldGVyLCBzdXBw bHlpbmcgbm8gdmFsdWUgKi8KKy0jZGVmaW5lIEZTQ09ORklHX1NFVF9GTEFHIEZTQ09ORklHX1NF VF9GTEFHCisrIyBkZWZpbmUgRlNDT05GSUdfU0VUX0ZMQUcgRlNDT05GSUdfU0VUX0ZMQUcKKyAg IEZTQ09ORklHX1NFVF9TVFJJTkcgICAgID0gMSwgICAgLyogU2V0IHBhcmFtZXRlciwgc3VwcGx5 aW5nIGEgc3RyaW5nIHZhbHVlICovCistI2RlZmluZSBGU0NPTkZJR19TRVRfU1RSSU5HIEZTQ09O RklHX1NFVF9TVFJJTkcKKysjIGRlZmluZSBGU0NPTkZJR19TRVRfU1RSSU5HIEZTQ09ORklHX1NF VF9TVFJJTkcKKyAgIEZTQ09ORklHX1NFVF9CSU5BUlkgICAgID0gMiwgICAgLyogU2V0IHBhcmFt ZXRlciwgc3VwcGx5aW5nIGEgYmluYXJ5IGJsb2IgdmFsdWUgKi8KKy0jZGVmaW5lIEZTQ09ORklH X1NFVF9CSU5BUlkgRlNDT05GSUdfU0VUX0JJTkFSWQorKyMgZGVmaW5lIEZTQ09ORklHX1NFVF9C SU5BUlkgRlNDT05GSUdfU0VUX0JJTkFSWQorICAgRlNDT05GSUdfU0VUX1BBVEggICAgICAgPSAz LCAgICAvKiBTZXQgcGFyYW1ldGVyLCBzdXBwbHlpbmcgYW4gb2JqZWN0IGJ5IHBhdGggKi8KKy0j ZGVmaW5lIEZTQ09ORklHX1NFVF9QQVRIIEZTQ09ORklHX1NFVF9QQVRICisrIyBkZWZpbmUgRlND T05GSUdfU0VUX1BBVEggRlNDT05GSUdfU0VUX1BBVEgKKyAgIEZTQ09ORklHX1NFVF9QQVRIX0VN UFRZID0gNCwgICAgLyogU2V0IHBhcmFtZXRlciwgc3VwcGx5aW5nIGFuIG9iamVjdCBieSAoZW1w dHkpIHBhdGggKi8KKy0jZGVmaW5lIEZTQ09ORklHX1NFVF9QQVRIX0VNUFRZIEZTQ09ORklHX1NF VF9QQVRIX0VNUFRZCisrIyBkZWZpbmUgRlNDT05GSUdfU0VUX1BBVEhfRU1QVFkgRlNDT05GSUdf U0VUX1BBVEhfRU1QVFkKKyAgIEZTQ09ORklHX1NFVF9GRCAgICAgICAgID0gNSwgICAgLyogU2V0 IHBhcmFtZXRlciwgc3VwcGx5aW5nIGFuIG9iamVjdCBieSBmZCAqLworLSNkZWZpbmUgRlNDT05G SUdfU0VUX0ZEIEZTQ09ORklHX1NFVF9GRAorKyMgZGVmaW5lIEZTQ09ORklHX1NFVF9GRCBGU0NP TkZJR19TRVRfRkQKKyAgIEZTQ09ORklHX0NNRF9DUkVBVEUgICAgID0gNiwgICAgLyogSW52b2tl IHN1cGVyYmxvY2sgY3JlYXRpb24gKi8KKy0jZGVmaW5lIEZTQ09ORklHX0NNRF9DUkVBVEUgRlND T05GSUdfQ01EX0NSRUFURQorKyMgZGVmaW5lIEZTQ09ORklHX0NNRF9DUkVBVEUgRlNDT05GSUdf Q01EX0NSRUFURQorICAgRlNDT05GSUdfQ01EX1JFQ09ORklHVVJFID0gNywgICAvKiBJbnZva2Ug c3VwZXJibG9jayByZWNvbmZpZ3VyYXRpb24gKi8KKy0jZGVmaW5lIEZTQ09ORklHX0NNRF9SRUNP TkZJR1VSRSBGU0NPTkZJR19DTURfUkVDT05GSUdVUkUKKysjIGRlZmluZSBGU0NPTkZJR19DTURf UkVDT05GSUdVUkUgRlNDT05GSUdfQ01EX1JFQ09ORklHVVJFCisgfTsKKysjZW5kaWYKKyAKKyAv KiBvcGVuX3RyZWUgZmxhZ3MuICAqLworICNkZWZpbmUgT1BFTl9UUkVFX0NMT05FICAgIDEgICAg ICAgICAvKiBDbG9uZSB0aGUgdGFyZ2V0IHRyZWUgYW5kIGF0dGFjaCB0aGUgY2xvbmUgKi8KK2Rp ZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC90c3QtbW91bnQtY29tcGlsZS5weSBi L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3RzdC1tb3VudC1jb21waWxlLnB5CituZXcgZmlsZSBt b2RlIDEwMDc1NQoraW5kZXggMDAwMDAwMDAwMC4uMGVjNzRkNGUwYgorLS0tIC9kZXYvbnVsbAor KysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvdHN0LW1vdW50LWNvbXBpbGUucHkKK0BAIC0w LDAgKzEsNjYgQEAKKysjIS91c3IvYmluL3B5dGhvbjMKKysjIENoZWNrIGlmIGdsaWJjIHByb3Zp ZGVkIHN5cy9tb3VudC5oIGNhbiBiZSB1c2VkIGFsb25nIHJlbGF0ZWQga2VybmVsCisrIyBoZWFk ZXJzLgorKyMgQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrIworKyMgVGhl IEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yCisrIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisrIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysjIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoZSBHTlUgQyBMaWJy YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisr IyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKKysjIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyMgTGljZW5zZSBhbG9uZyB3aXRoIHRo ZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyMgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKysKKytpbXBvcnQgYXJncGFyc2UKKytpbXBvcnQgc3lzCisrCisraW1wb3J0IGds aWJjZXh0cmFjdAorKworKworK2RlZiBtYWluKCk6CisrICAgICIiIlRoZSBtYWluIGVudHJ5IHBv aW50LiIiIgorKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigKKysgICAgICAg IGRlc2NyaXB0aW9uPSdDaGVjayBpZiBnbGliYyBwcm92aWRlZCBzeXMvbW91bnQuaCBjYW4gYmUg JworKyAgICAgICAgICAgICAgICAgICAgJyB1c2VkIGFsb25nIHJlbGF0ZWQga2VybmVsIGhlYWRl cnMuJykKKysgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1jYycsIG1ldGF2YXI9J0NDJywKKysg ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdDIGNvbXBpbGVyIChpbmNsdWRpbmcgb3B0aW9u cykgdG8gdXNlJykKKysgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKysKKysgICAgaWYg Z2xpYmNleHRyYWN0LmNvbXBpbGVfY19zbmlwcGV0KAorKyAgICAgICAgICAgICcjaW5jbHVkZSA8 bGludXgvbW91bnQuaD4nLAorKyAgICAgICAgICAgIGFyZ3MuY2MpLnJldHVybmNvZGUgIT0gMDoK KysgICAgICAgIHN5cy5leGl0ICg3NykKKysKKysgICAgZGVmIGNoZWNrKHRlc3RuYW1lLCBzbmlw cGV0KToKKysgICAgICAgICMgQWRkIC1XZXJyb3IgdG8gY2F0Y2ggbWFjcm8gcmVkZWZpbml0aW9u cyBhbmQgX0lTT01BQyB0byBhdm9pZAorKyAgICAgICAgIyBpbnRlcm5hbCBnbGliYyBkZWZpbml0 aW9ucy4KKysgICAgICAgIHIgPSBnbGliY2V4dHJhY3QuY29tcGlsZV9jX3NuaXBwZXQoc25pcHBl dCwgYXJncy5jYywKKysgICAgICAgICAgICAgICAgJy1XZXJyb3IgLURfSVNPTUFDJykKKysgICAg ICAgIGlmIHIucmV0dXJuY29kZSAhPSAwOgorKyAgICAgICAgICAgIHByaW50KCdlcnJvcjogdGVz dCB7fTpcbnt9Jy5mb3JtYXQodGVzdG5hbWUsIHIub3V0cHV0LmRlY29kZSgpKSkKKysgICAgICAg IHJldHVybiByLnJldHVybmNvZGUKKysKKysgICAgc3RhdHVzID0gbWF4KAorKyAgICAgICAgY2hl Y2soInN5cy9tb3VudC5oICsgbGludXgvbW91bnQuaCIsCisrICAgICAgICAgICAgICAiI2luY2x1 ZGUgPHN5cy9tb3VudC5oPlxuIgorKyAgICAgICAgICAgICAgIiNpbmNsdWRlIDxsaW51eC9tb3Vu dC5oPiIpLAorKyAgICAgICAgY2hlY2soInN5cy9tb3VudC5oICsgbGludXgvZnMuaCIsCisrICAg ICAgICAgICAgICAiI2luY2x1ZGUgPHN5cy9tb3VudC5oPlxuIgorKyAgICAgICAgICAgICAgIiNp bmNsdWRlIDxsaW51eC9mcy5oPiIpLAorKyAgICAgICAgY2hlY2soImxpbnV4L21vdW50LmggKyBz eXMvbW91bnQuaCIsCisrICAgICAgICAgICAgICAiI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+XG4i CisrICAgICAgICAgICAgICAiI2luY2x1ZGUgPHN5cy9tb3VudC5oPiIpLAorKyAgICAgICAgY2hl Y2soImxpbnV4L2ZzLmggKyBzeXMvbW91bnQuaCIsCisrICAgICAgICAgICAgICAiI2luY2x1ZGUg PGxpbnV4L2ZzLmg+XG4iCisrICAgICAgICAgICAgICAiI2luY2x1ZGUgPHN5cy9tb3VudC5oPiIp KQorKyAgICBzeXMuZXhpdChzdGF0dXMpCisrCisraWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK KysgICAgbWFpbigpCistLSAKKzIuMzguMQorCisKK0Zyb20gM2JkM2M2MTJlOThhNTNjZTYwZWQ5 NzJmNWNkMmI5MDYyOGIzY2JhNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3Jp YW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDE2IEF1ZyAyMDIyIDA5 OjI1OjIzICswMjAwCitTdWJqZWN0OiBMaW51eDogRml4IGVudW0gZnNjb25maWdfY29tbWFuZCBk ZXRlY3Rpb24gaW4gPHN5cy9tb3VudC5oPgorCitUaGUgI2lmZGVmIEZTT1BFTl9DTE9FWEVDIGNo ZWNrIGRpZCBub3Qgd29yayBiZWNhdXNlIHRoZSBtYWNybword2FzIGFsd2F5cyBkZWZpbmVkIGlu IHRoaXMgaGVhZGVyIHByaW9yIHRvIHRoZSBjaGVjaywgc28gdGhhdAordGhlIDxsaW51eC9tb3Vu dC5oPiBjb250ZW50cyBkaWQgbm90IG1hdHRlci4KKworRml4ZXMgY29tbWl0IDc3NDA1OGQ3Mjk0 MjI0OWY3MWQ3NGU3ZjJiNjM5Zjc3MTg0MTYwYTYKKygibGludXg6IEZpeCBzeXMvbW91bnQuaCB1 c2FnZSB3aXRoIGtlcm5lbCBoZWFkZXJzIikuCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0 IDI5NTVlZjRiN2M5YjU2ZmNkN2FiZmVkZGVmN2VlODNjNjBhYmZmOTgpCistLS0KKyBzeXNkZXBz L3VuaXgvc3lzdi9saW51eC9zeXMvbW91bnQuaCB8IDYgKysrLS0tCisgMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3N5c2RlcHMv dW5peC9zeXN2L2xpbnV4L3N5cy9tb3VudC5oIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc3lz L21vdW50LmgKK2luZGV4IDJlM2ZkNmE3ZmUuLjE5ODQxZDA3MzggMTAwNjQ0CistLS0gYS9zeXNk ZXBzL3VuaXgvc3lzdi9saW51eC9zeXMvbW91bnQuaAorKysrIGIvc3lzZGVwcy91bml4L3N5c3Yv bGludXgvc3lzL21vdW50LmgKK0BAIC0xODgsOSArMTg4LDYgQEAgZW51bQorIH07CisgCisgCist LyogZnNvcGVuIGZsYWdzLiAgKi8KKy0jZGVmaW5lIEZTT1BFTl9DTE9FWEVDICAgICAgICAgIDB4 MDAwMDAwMDEKKy0KKyAvKiBmc21vdW50IGZsYWdzLiAgKi8KKyAjZGVmaW5lIEZTTU9VTlRfQ0xP RVhFQyAgICAgICAgIDB4MDAwMDAwMDEKKyAKK0BAIC0yNjEsNiArMjU4LDkgQEAgZW51bSBmc2Nv bmZpZ19jb21tYW5kCisgfTsKKyAjZW5kaWYKKyAKKysvKiBmc29wZW4gZmxhZ3MuICAqLworKyNk ZWZpbmUgRlNPUEVOX0NMT0VYRUMgICAgICAgICAgMHgwMDAwMDAwMQorKworIC8qIG9wZW5fdHJl ZSBmbGFncy4gICovCisgI2RlZmluZSBPUEVOX1RSRUVfQ0xPTkUgICAgMSAgICAgICAgIC8qIENs b25lIHRoZSB0YXJnZXQgdHJlZSBhbmQgYXR0YWNoIHRoZSBjbG9uZSAqLworICNkZWZpbmUgT1BF Tl9UUkVFX0NMT0VYRUMgIE9fQ0xPRVhFQyAvKiBDbG9zZSB0aGUgZmlsZSBvbiBleGVjdmUoKSAq LworLS0gCisyLjM4LjEKKworCitGcm9tIGIwZTc4ODhkMWZhMmRiZDJkOWUxNjQ1ZWM4Yzc5NmFi Zjc4ODgwYjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBZGhlbWVydmFsIFphbmVs bGEgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorRGF0ZTogU3VuLCAyOCBBdWcgMjAy MiAxNjo1Mjo1MyAtMDMwMAorU3ViamVjdDogc3lzbG9nOiBGaXggbGFyZ2UgbWVzc2FnZXMgKEJa IzI5NTM2KQorCitUaGUgYTU4M2I2YWRkNDA3YzE3Y2QgY2hhbmdlIGRpZCBub3QgaGFuZGxlIGxh cmdlIG1lc3NhZ2VzIHRoYXQKK3dvdWxkIHJlcXVpcmUgYSBoZWFwIGFsbG9jYXRpb24gY29ycmVj dGx5LCB3aGVyZSB0aGUgbWVzc2FnZSBpdHNlbGYKK2lzIG5vdCB0YWtlIGluIGNvbnNpZGVyYXRp b24uCisKK1RoaXMgcGF0Y2ggZml4ZXMgaXQgYW5kIGV4dGVuZCB0aGUgdHN0LXN5c2xvZyB0byBj aGVjayBmb3IgbGFyZ2UKK21lc3NhZ2VzIGFzIHdlbGwuCisKK0NoZWNrZWQgb24geDg2XzY0LWxp bnV4LWdudS4KKworUmV2aWV3ZWQtYnk6IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291 cmNld2FyZS5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA1MmE1YmUwZGY0MTFlZjNm ZjQ1YzEwYzdjMzA4Y2I5Mjk5M2QxNWIxKQorLS0tCisgbWlzYy9zeXNsb2cuYyAgICAgfCAgMTgg KysrLS0tCisgbWlzYy90c3Qtc3lzbG9nLmMgfCAxNTIgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMo KyksIDI4IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbWlzYy9zeXNsb2cuYyBiL21pc2Mv c3lzbG9nLmMKK2luZGV4IDU1NDA4OWJmYzQuLmI4OGY2NmM4MzUgMTAwNjQ0CistLS0gYS9taXNj L3N5c2xvZy5jCisrKysgYi9taXNjL3N5c2xvZy5jCitAQCAtMTkzLDI4ICsxOTMsMzIgQEAgX192 c3lzbG9nX2ludGVybmFsIChpbnQgcHJpLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXAsCisg ICAgICAgaW50IHZsID0gX192c25wcmludGZfaW50ZXJuYWwgKGJ1ZnMgKyBsLCBzaXplb2YgYnVm cyAtIGwsIGZtdCwgYXBjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt b2RlX2ZsYWdzKTsKKyAgICAgICBpZiAoMCA8PSB2bCAmJiB2bCA8IHNpemVvZiBidWZzIC0gbCkK Ky0gICAgICAgIHsKKy0gICAgICAgICAgYnVmID0gYnVmczsKKy0gICAgICAgICAgYnVmc2l6ZSA9 IGwgKyB2bDsKKy0gICAgICAgIH0KKysgICAgICAgIGJ1ZiA9IGJ1ZnM7CisrICAgICAgYnVmc2l6 ZSA9IGwgKyB2bDsKKyAKKyAgICAgICB2YV9lbmQgKGFwYyk7CisgICAgIH0KKyAKKyAgIGlmIChi dWYgPT0gTlVMTCkKKyAgICAgeworLSAgICAgIGJ1ZiA9IG1hbGxvYyAobCAqIHNpemVvZiAoY2hh cikpOworKyAgICAgIGJ1ZiA9IG1hbGxvYyAoKGJ1ZnNpemUgKyAxKSAqIHNpemVvZiAoY2hhcikp OworICAgICAgIGlmIChidWYgIT0gTlVMTCkKKyAJeworIAkgIC8qIFRlbGwgdGhlIGNhbmNlbGxh dGlvbiBoYW5kbGVyIHRvIGZyZWUgdGhpcyBidWZmZXIuICAqLworIAkgIGNsYXJnLmJ1ZiA9IGJ1 ZjsKKyAKKyAJICBpZiAoaGFzX3RzKQorLQkgICAgX19zbnByaW50ZiAoYnVmcywgc2l6ZW9mIGJ1 ZnMsCisrCSAgICBfX3NucHJpbnRmIChidWYsIGwgKyAxLAorIAkJCVNZU0xPR19IRUFERVIgKHBy aSwgdGltZXN0YW1wLCAmbXNnb2ZmLCBwaWQpKTsKKyAJICBlbHNlCistCSAgICBfX3NucHJpbnRm IChidWZzLCBzaXplb2YgYnVmcywKKysJICAgIF9fc25wcmludGYgKGJ1ZiwgbCArIDEsCisgCQkJ U1lTTE9HX0hFQURFUl9XSVRIT1VUX1RTIChwcmksICZtc2dvZmYpKTsKKysKKysJICB2YV9saXN0 IGFwYzsKKysJICB2YV9jb3B5IChhcGMsIGFwKTsKKysJICBfX3ZzbnByaW50Zl9pbnRlcm5hbCAo YnVmICsgbCwgYnVmc2l6ZSAtIGwgKyAxLCBmbXQsIGFwYywKKysJCQkJbW9kZV9mbGFncyk7Cisr CSAgdmFfZW5kIChhcGMpOworIAl9CisgICAgICAgZWxzZQorICAgICAgICAgeworZGlmZiAtLWdp dCBhL21pc2MvdHN0LXN5c2xvZy5jIGIvbWlzYy90c3Qtc3lzbG9nLmMKK2luZGV4IGU1NTBkMTU3 OTYuLjFkMzMyZWNlNTMgMTAwNjQ0CistLS0gYS9taXNjL3RzdC1zeXNsb2cuYworKysrIGIvbWlz Yy90c3Qtc3lzbG9nLmMKK0BAIC02OCwyMSArNjgsMTkgQEAgc3RhdGljIGNvbnN0IGludCBwcmlv cml0aWVzW10gPQorICAgICBMT0dfREVCVUcKKyAgIH07CisgCistZW51bQorLSAgeworLSAgICBp ZGVudF9sZW5ndGggPSA2NCwKKy0gICAgbXNnX2xlbmd0aCA9IDY0CistICB9OworKyNkZWZpbmUg SURFTlRfTEVOR1RIIDY0CisrI2RlZmluZSBNU0dfTEVOR1RIICAgMTAyNAorIAorICNkZWZpbmUg U1lTTE9HX01TR19CQVNFICJzeXNsb2dfbWVzc2FnZSIKKyAjZGVmaW5lIE9QRU5MT0dfSURFTlQg ICAib3BlbmxvZ19pZGVudCIKKytzdGF0aWMgY2hhciBsYXJnZV9tZXNzYWdlW01TR19MRU5HVEhd OworIAorIHN0cnVjdCBtc2dfdAorICAgeworICAgICBpbnQgcHJpb3JpdHk7CisgICAgIGludCBm YWNpbGl0eTsKKy0gICAgY2hhciBpZGVudFtpZGVudF9sZW5ndGhdOworLSAgICBjaGFyIG1zZ1tt c2dfbGVuZ3RoXTsKKysgICAgY2hhciBpZGVudFtJREVOVF9MRU5HVEhdOworKyAgICBjaGFyIG1z Z1tNU0dfTEVOR1RIXTsKKyAgICAgcGlkX3QgcGlkOworICAgfTsKKyAKK0BAIC0xNDcsNiArMTQ1 LDM3IEBAIGNoZWNrX3N5c2xvZ19tZXNzYWdlIChjb25zdCBzdHJ1Y3QgbXNnX3QgKm1zZywgaW50 IG1zZ251bSwgaW50IG9wdGlvbnMsCisgICByZXR1cm4gdHJ1ZTsKKyB9CisgCisrc3RhdGljIHZv aWQKKytzZW5kX3N5c2xvZ19sYXJnZSAoaW50IG9wdGlvbnMpCisreworKyAgaW50IGZhY2lsaXR5 ID0gTE9HX1VTRVI7CisrICBpbnQgcHJpb3JpdHkgPSBMT0dfSU5GTzsKKysKKysgIHN5c2xvZyAo ZmFjaWxpdHkgfCBwcmlvcml0eSwgIiVzICVkICVkIiwgbGFyZ2VfbWVzc2FnZSwgZmFjaWxpdHks CisrCSAgcHJpb3JpdHkpOworK30KKysKKytzdGF0aWMgdm9pZAorK3NlbmRfdnN5c2xvZ19sYXJn ZSAoaW50IG9wdGlvbnMpCisreworKyAgaW50IGZhY2lsaXR5ID0gTE9HX1VTRVI7CisrICBpbnQg cHJpb3JpdHkgPSBMT0dfSU5GTzsKKysKKysgIGNhbGxfdnN5c2xvZyAoZmFjaWxpdHkgfCBwcmlv cml0eSwgIiVzICVkICVkIiwgbGFyZ2VfbWVzc2FnZSwgZmFjaWxpdHksCisrCQlwcmlvcml0eSk7 CisrfQorKworK3N0YXRpYyBib29sCisrY2hlY2tfc3lzbG9nX21lc3NhZ2VfbGFyZ2UgKGNvbnN0 IHN0cnVjdCBtc2dfdCAqbXNnLCBpbnQgbXNnbnVtLCBpbnQgb3B0aW9ucywKKysJCQkgICAgcGlk X3QgcGlkKQorK3sKKysgIFRFU1RfQ09NUEFSRSAobXNnLT5mYWNpbGl0eSwgTE9HX1VTRVIpOwor KyAgVEVTVF9DT01QQVJFIChtc2ctPnByaW9yaXR5LCBMT0dfSU5GTyk7CisrICBURVNUX0NPTVBB UkVfU1RSSU5HIChtc2ctPm1zZywgbGFyZ2VfbWVzc2FnZSk7CisrCisrICByZXR1cm4gZmFsc2U7 CisrfQorKworIHN0YXRpYyB2b2lkCisgc2VuZF9vcGVubG9nIChpbnQgb3B0aW9ucykKKyB7CitA QCAtMTc5LDYgKzIwOCwxNyBAQCBzZW5kX29wZW5sb2cgKGludCBvcHRpb25zKQorICAgY2xvc2Vs b2cgKCk7CisgfQorIAorK3N0YXRpYyB2b2lkCisrc2VuZF9vcGVubG9nX2xhcmdlIChpbnQgb3B0 aW9ucykKKyt7CisrICAvKiBEZWZpbmUgYSBub24tZGVmYXVsdCBJREVOVCBhbmQgYSBub3QgZGVm YXVsdCBmYWNpbGl0eS4gICovCisrICBvcGVubG9nIChPUEVOTE9HX0lERU5ULCBvcHRpb25zLCBM T0dfTE9DQUwwKTsKKysKKysgIHN5c2xvZyAoTE9HX0lORk8sICIlcyAlZCAlZCIsIGxhcmdlX21l c3NhZ2UsIExPR19MT0NBTDAsIExPR19JTkZPKTsKKysKKysgIGNsb3NlbG9nICgpOworK30KKysK KyBzdGF0aWMgYm9vbAorIGNoZWNrX29wZW5sb2dfbWVzc2FnZSAoY29uc3Qgc3RydWN0IG1zZ190 ICptc2csIGludCBtc2dudW0sCisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3B0aW9ucywg cGlkX3QgcGlkKQorQEAgLTE4OSw3ICsyMjksNyBAQCBjaGVja19vcGVubG9nX21lc3NhZ2UgKGNv bnN0IHN0cnVjdCBtc2dfdCAqbXNnLCBpbnQgbXNnbnVtLAorICAgaW50IGV4cGVjdGVkX3ByaW9y aXR5ID0gcHJpb3JpdGllc1ttc2dudW0gJSBhcnJheV9sZW5ndGggKHByaW9yaXRpZXMpXTsKKyAg IFRFU1RfQ09NUEFSRSAobXNnLT5wcmlvcml0eSwgZXhwZWN0ZWRfcHJpb3JpdHkpOworIAorLSAg Y2hhciBleHBlY3RlZF9pZGVudFtpZGVudF9sZW5ndGhdOworKyAgY2hhciBleHBlY3RlZF9pZGVu dFtJREVOVF9MRU5HVEhdOworICAgc25wcmludGYgKGV4cGVjdGVkX2lkZW50LCBzaXplb2YgKGV4 cGVjdGVkX2lkZW50KSwgIiVzJXMlLjBkJXM6IiwKKyAgICAgICAgICAgICBPUEVOTE9HX0lERU5U LAorICAgICAgICAgICAgIG9wdGlvbnMgJiBMT0dfUElEID8gIlsiIDogIiIsCitAQCAtMjExLDE1 ICsyNTEsMzggQEAgY2hlY2tfb3BlbmxvZ19tZXNzYWdlIChjb25zdCBzdHJ1Y3QgbXNnX3QgKm1z ZywgaW50IG1zZ251bSwKKyAgIHJldHVybiB0cnVlOworIH0KKyAKKytzdGF0aWMgYm9vbAorK2No ZWNrX29wZW5sb2dfbWVzc2FnZV9sYXJnZSAoY29uc3Qgc3RydWN0IG1zZ190ICptc2csIGludCBt c2dudW0sCisrCQkJICAgICBpbnQgb3B0aW9ucywgcGlkX3QgcGlkKQorK3sKKysgIGNoYXIgZXhw ZWN0ZWRfaWRlbnRbSURFTlRfTEVOR1RIXTsKKysgIHNucHJpbnRmIChleHBlY3RlZF9pZGVudCwg c2l6ZW9mIChleHBlY3RlZF9pZGVudCksICIlcyVzJS4wZCVzOiIsCisrICAgICAgICAgICAgT1BF TkxPR19JREVOVCwKKysgICAgICAgICAgICBvcHRpb25zICYgTE9HX1BJRCA/ICJbIiA6ICIiLAor KyAgICAgICAgICAgIG9wdGlvbnMgJiBMT0dfUElEID8gcGlkIDogMCwKKysgICAgICAgICAgICBv cHRpb25zICYgTE9HX1BJRCA/ICJdIiA6ICIiKTsKKysKKysgIFRFU1RfQ09NUEFSRV9TVFJJTkcg KG1zZy0+aWRlbnQsIGV4cGVjdGVkX2lkZW50KTsKKysgIFRFU1RfQ09NUEFSRV9TVFJJTkcgKG1z Zy0+bXNnLCBsYXJnZV9tZXNzYWdlKTsKKysgIFRFU1RfQ09NUEFSRSAobXNnLT5wcmlvcml0eSwg TE9HX0lORk8pOworKyAgVEVTVF9DT01QQVJFIChtc2ctPmZhY2lsaXR5LCBMT0dfTE9DQUwwKTsK KysKKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisgc3RhdGljIHN0cnVjdCBtc2dfdAorIHBhcnNl X3N5c2xvZ19tc2cgKGNvbnN0IGNoYXIgKm1zZykKKyB7CisgICBzdHJ1Y3QgbXNnX3QgciA9IHsg LnBpZCA9IC0xIH07CisgICBpbnQgbnVtYmVyOworIAorKyNkZWZpbmUgU1RSSU5QVVQoc2l6ZSkg IFhTVFJJTlBVVChzaXplKQorKyNkZWZpbmUgWFNUUklOUFVUKHNpemUpICIlIiAjIHNpemUgInMi CisrCisgICAvKiBUaGUgbWVzc2FnZSBpbiB0aGUgZm9ybToKKy0gICAgIDwxNzk+QXByICA4IDE0 OjUxOjE5IHRzdC1zeXNsb2c6IHN5c2xvZyBtZXNzYWdlIDE3NiAzICAqLworLSAgaW50IG4gPSBz c2NhbmYgKG1zZywgIjwlM2Q+JSpzICUqZCAlKmQ6JSpkOiUqZCAlMzJzICU2NHMgJSpkICUqZCIs CisrICAgICA8MTc5PkFwciAgOCAxNDo1MToxOSAgdHN0LXN5c2xvZzogbWVzc2FnZSAxNzYgMyAg Ki8KKysgIGludCBuID0gc3NjYW5mIChtc2csICI8JTNkPiUqcyAlKmQgJSpkOiUqZDolKmQgIiBT VFJJTlBVVChJREVOVF9MRU5HVEgpCisrCQkgICAgICAgIiAiIFNUUklOUFVUKE1TR19MRU5HVEgp ICIgJSpkICUqZCIsCisgICAgICAgICAgICAgICAgICAgJm51bWJlciwgci5pZGVudCwgci5tc2cp OworICAgVEVTVF9DT01QQVJFIChuLCAzKTsKKyAKK0BAIC0yNDYsNyArMzA5LDcgQEAgcGFyc2Vf c3lzbG9nX2NvbnNvbGUgKGNvbnN0IGNoYXIgKm1zZykKKyAKKyAgIC8qIFRoZSBtZXNzYWdlIGlu IHRoZSBmb3JtOgorICAgICAgb3BlbmxvZ19pZGVudDogc3lzbG9nX21lc3NhZ2UgMTI4IDAgICov CistICBpbnQgbiA9IHNzY2FuZiAobXNnLCAiJTMycyAlNjRzICVkICVkIiwKKysgIGludCBuID0g c3NjYW5mIChtc2csIFNUUklOUFVUKElERU5UX0xFTkdUSCkgIiAiIFNUUklOUFVUKE1TR19MRU5H VEgpICIgJWQgJWQiLAorICAgICAgIHIuaWRlbnQsIHIubXNnLCAmZmFjaWxpdHksICZwcmlvcml0 eSk7CisgICBURVNUX0NPTVBBUkUgKG4sIDQpOworIAorQEAgLTI4MSw3ICszNDQsNyBAQCBjaGVj a19zeXNsb2dfdWRwICh2b2lkICgqc3lzbG9nX3NlbmQpKGludCksIGludCBvcHRpb25zLAorICAg aW50IG1zZ251bSA9IDA7CisgICB3aGlsZSAoMSkKKyAgICAgeworLSAgICAgIGNoYXIgYnVmWzUx Ml07CisrICAgICAgY2hhciBidWZbMjA0OF07CisgICAgICAgc2l6ZV90IGwgPSB4cmVjdmZyb20g KHNlcnZlcl91ZHAsIGJ1Ziwgc2l6ZW9mIChidWYpLCAwLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoc3RydWN0IHNvY2thZGRyICopICZhZGRyLCAmYWRkcmxlbik7CisgICAgICAgYnVm W2xdID0gJ1wwJzsKK0BAIC0zMjUsNyArMzg4LDcgQEAgY2hlY2tfc3lzbG9nX3RjcCAodm9pZCAo KnN5c2xvZ19zZW5kKShpbnQpLCBpbnQgb3B0aW9ucywKKyAKKyAgIGludCBjbGllbnRfdGNwID0g eGFjY2VwdCAoc2VydmVyX3RjcCwgTlVMTCwgTlVMTCk7CisgCistICBjaGFyIGJ1Zls1MTJdLCAq cmIgPSBidWY7CisrICBjaGFyIGJ1ZlsyMDQ4XSwgKnJiID0gYnVmOworICAgc2l6ZV90IHJibCA9 IHNpemVvZiAoYnVmKTsKKyAgIHNpemVfdCBwcmwgPSAwOyAgLyogVHJhY2sgdGhlIHNpemUgb2Yg dGhlIHBhcnRpYWwgcmVjb3JkLiAgKi8KKyAgIGludCBtc2dudW0gPSAwOworQEAgLTM5MywyMCAr NDU2LDM0IEBAIGNoZWNrX3N5c2xvZ19jb25zb2xlX3JlYWQgKEZJTEUgKmZwKQorIH0KKyAKKyBz dGF0aWMgdm9pZAorLWNoZWNrX3N5c2xvZ19jb25zb2xlICh2b2lkKQorK2NoZWNrX3N5c2xvZ19j b25zb2xlX3JlYWRfbGFyZ2UgKEZJTEUgKmZwKQorK3sKKysgIGNoYXIgYnVmWzIwNDhdOworKyAg VEVTVF9WRVJJRlkgKGZnZXRzIChidWYsIHNpemVvZiAoYnVmKSwgZnApICE9IE5VTEwpOworKyAg c3RydWN0IG1zZ190IG1zZyA9IHBhcnNlX3N5c2xvZ19jb25zb2xlIChidWYpOworKworKyAgVEVT VF9DT01QQVJFX1NUUklORyAobXNnLmlkZW50LCBPUEVOTE9HX0lERU5UICI6Iik7CisrICBURVNU X0NPTVBBUkVfU1RSSU5HIChtc2cubXNnLCBsYXJnZV9tZXNzYWdlKTsKKysgIFRFU1RfQ09NUEFS RSAobXNnLnByaW9yaXR5LCBMT0dfSU5GTyk7CisrICBURVNUX0NPTVBBUkUgKG1zZy5mYWNpbGl0 eSwgTE9HX0xPQ0FMMCk7CisrfQorKworK3N0YXRpYyB2b2lkCisrY2hlY2tfc3lzbG9nX2NvbnNv bGUgKHZvaWQgKCpzeXNsb2dfc2VuZCkoaW50KSwKKysJCSAgICAgIHZvaWQgKCpzeXNsb2dfY2hl Y2spKEZJTEUgKmZwKSkKKyB7CisgICB4bWtmaWZvIChfUEFUSF9DT05TT0xFLCAwNjY2KTsKKyAK KyAgIHBpZF90IHNlbmRlcl9waWQgPSB4Zm9yayAoKTsKKyAgIGlmIChzZW5kZXJfcGlkID09IDAp CisgICAgIHsKKy0gICAgICBzZW5kX29wZW5sb2cgKExPR19DT05TKTsKKysgICAgICBzeXNsb2df c2VuZCAoTE9HX0NPTlMpOworICAgICAgIF9leGl0ICgwKTsKKyAgICAgfQorIAorICAgeworICAg ICBGSUxFICpmcCA9IHhmb3BlbiAoX1BBVEhfQ09OU09MRSwgInIrIik7CistICAgIGNoZWNrX3N5 c2xvZ19jb25zb2xlX3JlYWQgKGZwKTsKKysgICAgc3lzbG9nX2NoZWNrIChmcCk7CisgICAgIHhm Y2xvc2UgKGZwKTsKKyAgIH0KKyAKK0BAIC00MjUsMTYgKzUwMiwyOCBAQCBzZW5kX29wZW5sb2df Y2FsbGJhY2sgKHZvaWQgKmNsb3VzdXJlKQorIH0KKyAKKyBzdGF0aWMgdm9pZAorLWNoZWNrX3N5 c2xvZ19wZXJyb3IgKHZvaWQpCisrc2VuZF9vcGVubG9nX2NhbGxiYWNrX2xhcmdlICh2b2lkICpj bG91c3VyZSkKKyt7CisrICBpbnQgb3B0aW9ucyA9ICooaW50ICopIGNsb3VzdXJlOworKyAgc2Vu ZF9vcGVubG9nX2xhcmdlIChvcHRpb25zKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytjaGVja19z eXNsb2dfcGVycm9yIChib29sIGxhcmdlKQorIHsKKyAgIHN0cnVjdCBzdXBwb3J0X2NhcHR1cmVf c3VicHJvY2VzcyByZXN1bHQ7CistICByZXN1bHQgPSBzdXBwb3J0X2NhcHR1cmVfc3VicHJvY2Vz cyAoc2VuZF9vcGVubG9nX2NhbGxiYWNrLAorKyAgcmVzdWx0ID0gc3VwcG9ydF9jYXB0dXJlX3N1 YnByb2Nlc3MgKGxhcmdlCisrCQkJCSAgICAgICA/IHNlbmRfb3BlbmxvZ19jYWxsYmFja19sYXJn ZQorKwkJCQkgICAgICAgOiBzZW5kX29wZW5sb2dfY2FsbGJhY2ssCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJihpbnQpe0xPR19QRVJST1J9KTsKKyAKKyAgIEZJTEUg Km1mcCA9IGZtZW1vcGVuIChyZXN1bHQuZXJyLmJ1ZmZlciwgcmVzdWx0LmVyci5sZW5ndGgsICJy Iik7CisgICBpZiAobWZwID09IE5VTEwpCisgICAgIEZBSUxfRVhJVDEgKCJmbWVtb3BlbjogJW0i KTsKKy0gIGNoZWNrX3N5c2xvZ19jb25zb2xlX3JlYWQgKG1mcCk7CisrICBpZiAobGFyZ2UpCisr ICAgIGNoZWNrX3N5c2xvZ19jb25zb2xlX3JlYWRfbGFyZ2UgKG1mcCk7CisrICBlbHNlCisrICAg IGNoZWNrX3N5c2xvZ19jb25zb2xlX3JlYWQgKG1mcCk7CisgICB4ZmNsb3NlIChtZnApOworIAor ICAgc3VwcG9ydF9jYXB0dXJlX3N1YnByb2Nlc3NfY2hlY2sgKCZyZXN1bHQsICJ0c3Qtb3Blbmxv Zy1jaGlsZCIsIDAsCitAQCAtNDYyLDEwICs1NTEsMzEgQEAgZG9fdGVzdCAodm9pZCkKKyAgIGNo ZWNrX3N5c2xvZ190Y3AgKHNlbmRfb3BlbmxvZywgTE9HX1BJRCwgY2hlY2tfb3BlbmxvZ19tZXNz YWdlKTsKKyAKKyAgIC8qIENoZWNrIHRoZSBMT0dfQ09OUyBvcHRpb24uICAqLworLSAgY2hlY2tf c3lzbG9nX2NvbnNvbGUgKCk7CisrICBjaGVja19zeXNsb2dfY29uc29sZSAoc2VuZF9vcGVubG9n LCBjaGVja19zeXNsb2dfY29uc29sZV9yZWFkKTsKKyAKKyAgIC8qIENoZWNrIHRoZSBMT0dfUEVS Uk9SIG9wdGlvbi4gICovCistICBjaGVja19zeXNsb2dfcGVycm9yICgpOworKyAgY2hlY2tfc3lz bG9nX3BlcnJvciAoZmFsc2UpOworKworKyAgLyogU2ltaWxhciB0ZXN0cyBhcyBiZWZvcmUsIGJ1 dCB3aXRoIGEgbGFyZ2UgbWVzc2FnZSB0byB0cmlnZ2VyIHRoZQorKyAgICAgc3lzbG9nIHBhdGgg dGhhdCB1c2VzIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBtZW1vcnkuICAqLworKyAgbWVtc2V0IChs YXJnZV9tZXNzYWdlLCAnYScsIHNpemVvZiBsYXJnZV9tZXNzYWdlIC0gMSk7CisrICBsYXJnZV9t ZXNzYWdlW3NpemVvZiBsYXJnZV9tZXNzYWdlIC0gMV0gPSAnXDAnOworKworKyAgY2hlY2tfc3lz bG9nX3VkcCAoc2VuZF9zeXNsb2dfbGFyZ2UsIDAsIGNoZWNrX3N5c2xvZ19tZXNzYWdlX2xhcmdl KTsKKysgIGNoZWNrX3N5c2xvZ190Y3AgKHNlbmRfc3lzbG9nX2xhcmdlLCAwLCBjaGVja19zeXNs b2dfbWVzc2FnZV9sYXJnZSk7CisrCisrICBjaGVja19zeXNsb2dfdWRwIChzZW5kX3ZzeXNsb2df bGFyZ2UsIDAsIGNoZWNrX3N5c2xvZ19tZXNzYWdlX2xhcmdlKTsKKysgIGNoZWNrX3N5c2xvZ190 Y3AgKHNlbmRfdnN5c2xvZ19sYXJnZSwgMCwgY2hlY2tfc3lzbG9nX21lc3NhZ2VfbGFyZ2UpOwor KworKyAgY2hlY2tfc3lzbG9nX3VkcCAoc2VuZF9vcGVubG9nX2xhcmdlLCAwLCBjaGVja19vcGVu bG9nX21lc3NhZ2VfbGFyZ2UpOworKyAgY2hlY2tfc3lzbG9nX3RjcCAoc2VuZF9vcGVubG9nX2xh cmdlLCAwLCBjaGVja19vcGVubG9nX21lc3NhZ2VfbGFyZ2UpOworKworKyAgY2hlY2tfc3lzbG9n X3VkcCAoc2VuZF9vcGVubG9nX2xhcmdlLCBMT0dfUElELCBjaGVja19vcGVubG9nX21lc3NhZ2Vf bGFyZ2UpOworKyAgY2hlY2tfc3lzbG9nX3RjcCAoc2VuZF9vcGVubG9nX2xhcmdlLCBMT0dfUElE LCBjaGVja19vcGVubG9nX21lc3NhZ2VfbGFyZ2UpOworKworKyAgY2hlY2tfc3lzbG9nX2NvbnNv bGUgKHNlbmRfb3BlbmxvZ19sYXJnZSwgY2hlY2tfc3lzbG9nX2NvbnNvbGVfcmVhZF9sYXJnZSk7 CisrCisrICBjaGVja19zeXNsb2dfcGVycm9yICh0cnVlKTsKKyAKKyAgIHJldHVybiAwOworIH0K Ky0tIAorMi4zOC4xCisKKworRnJvbSA5MjRlNGYzZWFhNTAyY2U4MmZjY2Y4NTM3ZjAyMWE3OTZk MTU4NzcxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3 ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IEZyaSwgMjYgQXVnIDIwMjIgMjE6MTU6NDMgKzAyMDAK K1N1YmplY3Q6IGVsZjogQ2FsbCBfX2xpYmNfZWFybHlfaW5pdCBmb3IgcmV1c2VkIG5hbWVzcGFj ZXMgKGJ1ZyAyOTUyOCkKKworbGliY19tYXAgaXMgbmV2ZXIgcmVzZXQgdG8gTlVMTCwgbmVpdGhl ciBkdXJpbmcgZGxjbG9zZSBub3Igb24gYQorZGxvcGVuIGNhbGwgd2hpY2ggcmV1c2VzIHRoZSBu YW1lc3BhY2Ugc3RydWN0dXJlLiAgQXMgYSByZXN1bHQsIGlmIGEKK25hbWVzcGFjZSBpcyByZXVz ZWQsIGl0cyBsaWJjIGlzIG5vdCBpbml0aWFsaXplZCBwcm9wZXJseS4gIFRoZSBtb3N0Cit2aXNp YmxlIHJlc3VsdCBpcyBhIGNyYXNoIGluIHRoZSA8Y3R5cGUuaD4gZnVuY3Rpb25zLgorCitUbyBw cmV2ZW50IHNpbWlsYXIgYnVncyBvbiBuYW1lc3BhY2UgcmV1c2UgZnJvbSBzdXJmYWNpbmcsCit1 bmNvbmRpdGlvbmFsbHkgaW5pdGlhbGl6ZSB0aGUgY2hvc2VuIG5hbWVzcGFjZSB0byB6ZXJvIHVz aW5nIG1lbXNldC4KKworKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZDBlMzU3ZmY0NWE3NTU1 M2RlZTNiMTdlZDdkMzAzYmZhNTQ0ZjZmZSkKKy0tLQorIE5FV1MgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMSArCisgZWxmL01ha2VmaWxlICAgICAgICAgICAgICAgICB8IDI1ICsrKysrKysr KysrKysrKysrKworIGVsZi9kbC1vcGVuLmMgICAgICAgICAgICAgICAgfCAxMyArKysrKystLS0t CisgZWxmL3RzdC1kbG1vcGVuLXR3aWNlLW1vZDEuYyB8IDM3ICsrKysrKysrKysrKysrKysrKysr KysrKysrCisgZWxmL3RzdC1kbG1vcGVuLXR3aWNlLW1vZDIuYyB8IDUwICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKworIGVsZi90c3QtZGxtb3Blbi10d2ljZS5jICAgICAgfCAz NCArKysrKysrKysrKysrKysrKysrKysrKysKKyA2IGZpbGVzIGNoYW5nZWQsIDE1NSBpbnNlcnRp b25zKCspLCA1IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBlbGYvdHN0LWRsbW9w ZW4tdHdpY2UtbW9kMS5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGVsZi90c3QtZGxtb3Blbi10d2lj ZS1tb2QyLmMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZWxmL3RzdC1kbG1vcGVuLXR3aWNlLmMKKwor ZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCitpbmRleCBhZTMwOTAwYmJjLi42ZDMxZTVhYmJhIDEw MDY0NAorLS0tIGEvTkVXUworKysrIGIvTkVXUworQEAgLTEzLDYgKzEzLDcgQEAgVGhlIGZvbGxv d2luZyBidWdzIGFyZSByZXNvbHZlZCB3aXRoIHRoaXMgcmVsZWFzZToKKyAgIFsyOTQ0Nl0gX2Rs b3BlbiBub3cgaWdub3JlcyBkbF9jYWxsZXIgYXJndW1lbnQgaW4gc3RhdGljIG1vZGUKKyAgIFsy OTQ4NV0gTGludXg6IFRlcm1pbmF0ZSBzdWJwcm9jZXNzIG9uIGxhdGUgZmFpbHVyZSBpbiB0c3Qt cGlkZmQKKyAgIFsyOTQ5MF0gYWxwaGE6IE5ldyBfX2Jya19jYWxsIGltcGxlbWVudGF0aW9uIGlz IGJyb2tlbgorKyAgWzI5NTI4XSBlbGY6IENhbGwgX19saWJjX2Vhcmx5X2luaXQgZm9yIHJldXNl ZCBuYW1lc3BhY2VzCisgCisgDAorIFZlcnNpb24gMi4zNgorZGlmZiAtLWdpdCBhL2VsZi9NYWtl ZmlsZSBiL2VsZi9NYWtlZmlsZQoraW5kZXggZmQ3N2QwYzdjOC4uNDMzNTNhNGIwOCAxMDA2NDQK Ky0tLSBhL2VsZi9NYWtlZmlsZQorKysrIGIvZWxmL01ha2VmaWxlCitAQCAtNDA4LDYgKzQwOCw3 IEBAIHRlc3RzICs9IFwKKyAgIHRzdC1kbG1vcGVuNCBcCisgICB0c3QtZGxtb3Blbi1kbGVycm9y IFwKKyAgIHRzdC1kbG1vcGVuLWdldGhvc3RieW5hbWUgXAorKyAgdHN0LWRsbW9wZW4tdHdpY2Ug XAorICAgdHN0LWRsb3BlbmZhaWwgXAorICAgdHN0LWRsb3BlbmZhaWwtMiBcCisgICB0c3QtZGxv cGVucnBhdGggXAorQEAgLTgzNCw2ICs4MzUsOCBAQCBtb2R1bGVzLW5hbWVzICs9IFwKKyAgIHRz dC1kbG1vcGVuMW1vZCBcCisgICB0c3QtZGxtb3Blbi1kbGVycm9yLW1vZCBcCisgICB0c3QtZGxt b3Blbi1nZXRob3N0YnluYW1lLW1vZCBcCisrICB0c3QtZGxtb3Blbi10d2ljZS1tb2QxIFwKKysg IHRzdC1kbG1vcGVuLXR3aWNlLW1vZDIgXAorICAgdHN0LWRsb3BlbmZhaWxsaW5rbW9kIFwKKyAg IHRzdC1kbG9wZW5mYWlsbW9kMSBcCisgICB0c3QtZGxvcGVuZmFpbG1vZDIgXAorQEAgLTI5Njcs MyArMjk3MCwyNSBAQCAkKG9ianBmeCl0c3QtdGxzLWFsbG9jYXRpb24tZmFpbHVyZS1zdGF0aWMt cGF0Y2hlZC5vdXQ6IFwKKyAJZ3JlcCAtcSAnXkZhdGFsIGdsaWJjIGVycm9yOiBDYW5ub3QgYWxs b2NhdGUgVExTIGJsb2NrJCQnICRAIFwKKyAJICAmJiBncmVwIC1xICdec3RhdHVzOiAxMjckJCcg JEA7IFwKKyAJICAkKGV2YWx1YXRlLXRlc3QpCisrCisrJChvYmpwZngpdHN0LWF1ZGl0LXRsc2Rl c2M6ICQob2JqcGZ4KXRzdC1hdWRpdC10bHNkZXNjLW1vZDEuc28gXAorKwkJCSAgICAkKG9ianBm eCl0c3QtYXVkaXQtdGxzZGVzYy1tb2QyLnNvIFwKKysJCQkgICAgJChzaGFyZWQtdGhyZWFkLWxp YnJhcnkpCisraWZlcSAoeWVzLCQoaGF2ZS1tdGxzLWRpYWxlY3QtZ251MikpCisrIyBUaGUgdGVz dCBpcyB2YWxpZCBmb3IgYWxsIFRMUyB0eXBlcywgYnV0IHdlIHdhbnQgdG8gZXhlcmNpc2UgR05V MgorKyMgVExTIGlmIHBvc3NpYmxlLgorK0NGTEFHUy10c3QtYXVkaXQtdGxzZGVzYy1tb2QxLmMg Kz0gLW10bHMtZGlhbGVjdD1nbnUyCisrQ0ZMQUdTLXRzdC1hdWRpdC10bHNkZXNjLW1vZDIuYyAr PSAtbXRscy1kaWFsZWN0PWdudTIKKytlbmRpZgorKyQob2JqcGZ4KXRzdC1hdWRpdC10bHNkZXNj LWRsb3BlbjogJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCisrJChvYmpwZngpdHN0LWF1ZGl0LXRs c2Rlc2MtZGxvcGVuLm91dDogJChvYmpwZngpdHN0LWF1ZGl0LXRsc2Rlc2MtbW9kMS5zbyBcCisr CQkJCSAgICAgICAkKG9ianBmeCl0c3QtYXVkaXQtdGxzZGVzYy1tb2QyLnNvCisrJChvYmpwZngp dHN0LWF1ZGl0LXRsc2Rlc2MtbW9kMS5zbzogJChvYmpwZngpdHN0LWF1ZGl0LXRsc2Rlc2MtbW9k Mi5zbworKyQob2JqcGZ4KXRzdC1hdWRpdC10bHNkZXNjLm91dDogJChvYmpwZngpdHN0LWF1ZGl0 bW9kLXRsc2Rlc2Muc28KKyt0c3QtYXVkaXQtdGxzZGVzYy1FTlYgPSBMRF9BVURJVD0kKG9ianBm eCl0c3QtYXVkaXRtb2QtdGxzZGVzYy5zbworKyQob2JqcGZ4KXRzdC1hdWRpdC10bHNkZXNjLWRs b3Blbi5vdXQ6ICQob2JqcGZ4KXRzdC1hdWRpdG1vZC10bHNkZXNjLnNvCisrdHN0LWF1ZGl0LXRs c2Rlc2MtZGxvcGVuLUVOViA9IExEX0FVRElUPSQob2JqcGZ4KXRzdC1hdWRpdG1vZC10bHNkZXNj LnNvCisrCisrJChvYmpwZngpdHN0LWRsbW9wZW4tdHdpY2Uub3V0OiBcCisrICAkKG9ianBmeCl0 c3QtZGxtb3Blbi10d2ljZS1tb2QxLnNvIFwKKysgICQob2JqcGZ4KXRzdC1kbG1vcGVuLXR3aWNl LW1vZDIuc28KK2RpZmYgLS1naXQgYS9lbGYvZGwtb3Blbi5jIGIvZWxmL2RsLW9wZW4uYworaW5k ZXggYTIzZTY1OTI2Yi4uNDZlODA2NmZkOCAxMDA2NDQKKy0tLSBhL2VsZi9kbC1vcGVuLmMKKysr KyBiL2VsZi9kbC1vcGVuLmMKK0BAIC04NDQsMTEgKzg0NCwxNCBAQCBfZGxfb3BlbiAoY29uc3Qg Y2hhciAqZmlsZSwgaW50IG1vZGUsIGNvbnN0IHZvaWQgKmNhbGxlcl9kbG9wZW4sIExtaWRfdCBu c2lkLAorIAkgIF9kbF9zaWduYWxfZXJyb3IgKEVJTlZBTCwgZmlsZSwgTlVMTCwgTl8oIlwKKyBu byBtb3JlIG5hbWVzcGFjZXMgYXZhaWxhYmxlIGZvciBkbG1vcGVuKCkiKSk7CisgCX0KKy0gICAg ICBlbHNlIGlmIChuc2lkID09IEdMKGRsX25ucykpCistCXsKKy0JICBfX3J0bGRfbG9ja19pbml0 aWFsaXplIChHTChkbF9ucylbbnNpZF0uX25zX3VuaXF1ZV9zeW1fdGFibGUubG9jayk7CistCSAg KytHTChkbF9ubnMpOworLQl9CisrCisrICAgICAgaWYgKG5zaWQgPT0gR0woZGxfbm5zKSkKKysJ KytHTChkbF9ubnMpOworKworKyAgICAgIC8qIEluaXRpYWxpemUgdGhlIG5ldyBuYW1lc3BhY2Uu ICBNb3N0IG1lbWJlcnMgYXJlCisrCSB6ZXJvLWluaXRpYWxpemVkLCBvbmx5IHRoZSBsb2NrIG5l ZWRzIHNwZWNpYWwgdHJlYXRtZW50LiAgKi8KKysgICAgICBtZW1zZXQgKCZHTChkbF9ucylbbnNp ZF0sIDAsIHNpemVvZiAoR0woZGxfbnMpW25zaWRdKSk7CisrICAgICAgX19ydGxkX2xvY2tfaW5p dGlhbGl6ZSAoR0woZGxfbnMpW25zaWRdLl9uc191bmlxdWVfc3ltX3RhYmxlLmxvY2spOworIAor ICAgICAgIF9kbF9kZWJ1Z191cGRhdGUgKG5zaWQpLT5yX3N0YXRlID0gUlRfQ09OU0lTVEVOVDsK KyAgICAgfQorZGlmZiAtLWdpdCBhL2VsZi90c3QtZGxtb3Blbi10d2ljZS1tb2QxLmMgYi9lbGYv dHN0LWRsbW9wZW4tdHdpY2UtbW9kMS5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMDAwMC4uMGVhZjA0OTQ4YworLS0tIC9kZXYvbnVsbAorKysrIGIvZWxmL3RzdC1kbG1vcGVu LXR3aWNlLW1vZDEuYworQEAgLTAsMCArMSwzNyBAQAorKy8qIEluaXRpYWxpemF0aW9uIG9mIGxp YmMgYWZ0ZXIgZGxtb3Blbi9kbGNsb3NlL2RsbW9wZW4gKGJ1ZyAyOTUyOCkuICBNb2R1bGUgMS4K KysgICBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdO VSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJy YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisr ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0 aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5jbHVkZSA8c3RkaW8uaD4KKysKKytzdGF0aWMgdm9p ZCBfX2F0dHJpYnV0ZV9fICgoY29uc3RydWN0b3IpKQorK2luaXQgKHZvaWQpCisreworKyAgcHV0 cyAoImluZm86IHRzdC1kbG1vcGVuLXR3aWNlLW1vZDEuc28gbG9hZGVkIik7CisrICBmZmx1c2gg KHN0ZG91dCk7CisrfQorKworK3N0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18gKChkZXN0cnVjdG9y KSkKKytmaW5pICh2b2lkKQorK3sKKysgIHB1dHMgKCJpbmZvOiB0c3QtZGxtb3Blbi10d2ljZS1t b2QxLnNvIGFib3V0IHRvIGJlIHVubG9hZGVkIik7CisrICBmZmx1c2ggKHN0ZG91dCk7CisrfQor KworKy8qIExhcmdlIGFsbG9jYXRpb24uICBUaGUgc2Vjb25kIG1vZHVsZSBkb2VzIG5vdCBoYXZl IHRoaXMsIHNvIGl0CisrICAgc2hvdWxkIGxvYWQgbGliYyBhdCBhIGRpZmZlcmVudCBhZGRyZXNz LiAgKi8KKytjaGFyIGxhcmdlX2FsbG9jYXRlWzE2ICogMTAyNCAqIDEwMjRdOworZGlmZiAtLWdp dCBhL2VsZi90c3QtZGxtb3Blbi10d2ljZS1tb2QyLmMgYi9lbGYvdHN0LWRsbW9wZW4tdHdpY2Ut bW9kMi5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uNDBjNmMwMWY5 NgorLS0tIC9kZXYvbnVsbAorKysrIGIvZWxmL3RzdC1kbG1vcGVuLXR3aWNlLW1vZDIuYworQEAg LTAsMCArMSw1MCBAQAorKy8qIEluaXRpYWxpemF0aW9uIG9mIGxpYmMgYWZ0ZXIgZGxtb3Blbi9k bGNsb3NlL2RsbW9wZW4gKGJ1ZyAyOTUyOCkuICBNb2R1bGUgMi4KKysgICBDb3B5cmlnaHQgKEMp IDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBh cnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl cgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl IEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFy eTsgaWYgbm90LCBzZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8K KysKKysjaW5jbHVkZSA8Y3R5cGUuaD4KKysjaW5jbHVkZSA8c3RkaW8uaD4KKysKKytzdGF0aWMg dm9pZCBfX2F0dHJpYnV0ZV9fICgoY29uc3RydWN0b3IpKQorK2luaXQgKHZvaWQpCisreworKyAg cHV0cyAoImluZm86IHRzdC1kbG1vcGVuLXR3aWNlLW1vZDIuc28gbG9hZGVkIik7CisrICBmZmx1 c2ggKHN0ZG91dCk7CisrfQorKworK3N0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18gKChkZXN0cnVj dG9yKSkKKytmaW5pICh2b2lkKQorK3sKKysgIHB1dHMgKCJpbmZvOiB0c3QtZGxtb3Blbi10d2lj ZS1tb2QyLnNvIGFib3V0IHRvIGJlIHVubG9hZGVkIik7CisrICBmZmx1c2ggKHN0ZG91dCk7Cisr fQorKworK2ludAorK3J1bl9jaGVjayAodm9pZCkKKyt7CisrICBwdXRzICgiaW5mbzogYWJvdXQg dG8gY2FsbCBpc2FscGhhIik7CisrICBmZmx1c2ggKHN0ZG91dCk7CisrCisrICB2b2xhdGlsZSBj aGFyIGNoID0gJ2EnOworKyAgaWYgKCFpc2FscGhhIChjaCkpCisrICAgIHsKKysgICAgICBwdXRz ICgiZXJyb3I6IGlzYWxwaGEgKCdhJykgaXMgbm90IHRydWUiKTsKKysgICAgICBmZmx1c2ggKHN0 ZG91dCk7CisrICAgICAgcmV0dXJuIDE7CisrICAgIH0KKysgIHJldHVybiAwOworK30KK2RpZmYg LS1naXQgYS9lbGYvdHN0LWRsbW9wZW4tdHdpY2UuYyBiL2VsZi90c3QtZGxtb3Blbi10d2ljZS5j CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uNDQ5ZjNjOGZhOQorLS0t IC9kZXYvbnVsbAorKysrIGIvZWxmL3RzdC1kbG1vcGVuLXR3aWNlLmMKK0BAIC0wLDAgKzEsMzQg QEAKKysvKiBJbml0aWFsaXphdGlvbiBvZiBsaWJjIGFmdGVyIGRsbW9wZW4vZGxjbG9zZS9kbG1v cGVuIChidWcgMjk1MjgpLiAgTWFpbi4KKysgICBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBD IExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24g Mi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3Nl ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUK KysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5jbHVkZSA8 c3VwcG9ydC94ZGxmY24uaD4KKysjaW5jbHVkZSA8c3VwcG9ydC9jaGVjay5oPgorKworK3N0YXRp YyBpbnQKKytkb190ZXN0ICh2b2lkKQorK3sKKysgIHZvaWQgKmhhbmRsZSA9IHhkbG1vcGVuIChM TV9JRF9ORVdMTSwgInRzdC1kbG1vcGVuLXR3aWNlLW1vZDEuc28iLCBSVExEX05PVyk7CisrICB4 ZGxjbG9zZSAoaGFuZGxlKTsKKysgIGhhbmRsZSA9IHhkbG1vcGVuIChMTV9JRF9ORVdMTSwgInRz dC1kbG1vcGVuLXR3aWNlLW1vZDIuc28iLCBSVExEX05PVyk7CisrICBpbnQgKCpydW5fY2hlY2sp ICh2b2lkKSA9IHhkbHN5bSAoaGFuZGxlLCAicnVuX2NoZWNrIik7CisrICBURVNUX0NPTVBBUkUg KHJ1bl9jaGVjayAoKSwgMCk7CisrICB4ZGxjbG9zZSAoaGFuZGxlKTsKKysgIHJldHVybiAwOwor K30KKysKKysjaW5jbHVkZSA8c3VwcG9ydC90ZXN0LWRyaXZlci5jPgorLS0gCisyLjM4LjEKKwor CitGcm9tIDNjNzkxZjIwMzFjYThmNmI5OWU5NmI3NzRlZDFjNTA1Y2ViOTM1OTUgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBSYXBoYWVsIE1vcmVpcmEgWmluc2x5IDxyemluc2x5QGxp bnV4LmlibS5jb20+CitEYXRlOiBXZWQsIDI0IEF1ZyAyMDIyIDExOjQzOjM3IC0wMzAwCitTdWJq ZWN0OiBBcHBseSBhc20gcmVkaXJlY3Rpb25zIGluIHdjaGFyLmggYmVmb3JlIGZpcnN0IHVzZQor CitTaW1pbGFyIHRvIGQwZmEwOWE3NzAsIGJ1dCBmb3Igd2NoYXIuaC4gIEZpeGVzIFtCWiAjMjcw ODddIGJ5IGFwcGx5aW5nCithbGwgbG9uZyBkb3VibGUgcmVsYXRlZCBhc20gcmVkaXJlY3Rpb25z IGJlZm9yZSB1c2luZyBmdW5jdGlvbnMgaW4KK2JpdHMvd2NoYXIyLmguCitNb3ZlcyB0aGUgZnVu Y3Rpb24gZGVjbGFyYXRpb25zIGZyb20gd2NzbWJzL2JpdHMvd2NoYXIyLmggdG8gYSBuZXcgZmls ZQord2NzbWJzL2JpdHMvd2NoYXIyLWRlY2wuaCB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgZmlyc3Qg aW4gd2NzbWJzL3djaGFyLmguCisKK1Rlc3RlZCB3aXRoIGJ1aWxkLW1hbnktZ2xpYmNzLnB5Lgor UmV2aWV3ZWQtYnk6IEFkaGVtZXJ2YWwgWmFuZWxsYSAgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5h cm8ub3JnPgorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBjNzUwOWQ0OWM0ZThmYTQ5NDEy MGM1ZWFkMjEzMzg1NTlkYWQxNmY1KQorLS0tCisgaW5jbHVkZS9iaXRzL3djaGFyMi1kZWNsLmgg fCAgIDEgKworIHdjc21icy9NYWtlZmlsZSAgICAgICAgICAgIHwgICA1ICstCisgd2NzbWJzL2Jp dHMvd2NoYXIyLWRlY2wuaCAgfCAxMjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKworIHdjc21icy9iaXRzL3djaGFyMi5oICAgICAgIHwgIDcyIC0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHdjc21icy93Y2hhci5oICAgICAgICAgICAgIHwgIDExICsrKy0KKyA1IGZpbGVzIGNo YW5nZWQsIDEzNyBpbnNlcnRpb25zKCspLCA3NiBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAx MDA2NDQgaW5jbHVkZS9iaXRzL3djaGFyMi1kZWNsLmgKKyBjcmVhdGUgbW9kZSAxMDA2NDQgd2Nz bWJzL2JpdHMvd2NoYXIyLWRlY2wuaAorCitkaWZmIC0tZ2l0IGEvaW5jbHVkZS9iaXRzL3djaGFy Mi1kZWNsLmggYi9pbmNsdWRlL2JpdHMvd2NoYXIyLWRlY2wuaAorbmV3IGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDAwMDAwMDAwMDAuLjAwYjFiOTMzNDIKKy0tLSAvZGV2L251bGwKKysrKyBiL2lu Y2x1ZGUvYml0cy93Y2hhcjItZGVjbC5oCitAQCAtMCwwICsxIEBACisrI2luY2x1ZGUgPHdjc21i cy9iaXRzL3djaGFyMi1kZWNsLmg+CitkaWZmIC0tZ2l0IGEvd2NzbWJzL01ha2VmaWxlIGIvd2Nz bWJzL01ha2VmaWxlCitpbmRleCAzZDE5ZDU1NTZmLi40YWYxMDJhM2Y2IDEwMDY0NAorLS0tIGEv d2NzbWJzL01ha2VmaWxlCisrKysgYi93Y3NtYnMvTWFrZWZpbGUKK0BAIC0yMiw4ICsyMiw5IEBA IHN1YmRpcgk6PSB3Y3NtYnMKKyAKKyBpbmNsdWRlIC4uL01ha2Vjb25maWcKKyAKKy1oZWFkZXJz CTo9IHdjaGFyLmggYml0cy93Y2hhci5oIGJpdHMvd2NoYXIyLmggYml0cy93Y2hhci1sZGJsLmgg dWNoYXIuaCBcCistCSAgIGJpdHMvdHlwZXMvX19tYnN0YXRlX3QuaCBiaXRzL3R5cGVzL21ic3Rh dGVfdC5oIGJpdHMvdHlwZXMvd2ludF90LmgKKytoZWFkZXJzCTo9IHdjaGFyLmggYml0cy93Y2hh ci5oIGJpdHMvd2NoYXIyLmggYml0cy93Y2hhcjItZGVjbC5oIFwKKysJICAgYml0cy93Y2hhci1s ZGJsLmggdWNoYXIuaCBiaXRzL3R5cGVzL19fbWJzdGF0ZV90LmggXAorKwkgICBiaXRzL3R5cGVz L21ic3RhdGVfdC5oIGJpdHMvdHlwZXMvd2ludF90LmgKKyAKKyByb3V0aW5lcyA6PSB3Y3NjYXQg d2NzY2hyIHdjc2NtcCB3Y3NjcHkgd2NzY3NwbiB3Y3NkdXAgd2NzbGVuIHdjc25jYXQgXAorIAkg ICAgd2NzbmNtcCB3Y3NuY3B5IHdjc3Bicmsgd2NzcmNociB3Y3NzcG4gd2NzdG9rIHdjc3N0ciB3 bWVtY2hyIFwKK2RpZmYgLS1naXQgYS93Y3NtYnMvYml0cy93Y2hhcjItZGVjbC5oIGIvd2NzbWJz L2JpdHMvd2NoYXIyLWRlY2wuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw MDAuLjhlMTczNWMzM2IKKy0tLSAvZGV2L251bGwKKysrKyBiL3djc21icy9iaXRzL3djaGFyMi1k ZWNsLmgKK0BAIC0wLDAgKzEsMTI0IEBACisrLyogQ2hlY2tpbmcgbWFjcm9zIGZvciB3Y2hhciBm dW5jdGlvbnMuICBEZWNsYXJhdGlvbnMgb25seS4KKysgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAy MiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBv ZiB0aGUgR05VIEMgTGlicmFyeS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisr ICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V CisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysK KysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBp ZiBub3QsIHNlZQorKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKwor KyNpZm5kZWYgX0JJVFNfV0NIQVIyX0RFQ0xfSAorKyNkZWZpbmUgX0JJVFNfV0NIQVIyX0RFQ0xf SCAxCisrCisrI2lmbmRlZiBfV0NIQVJfSAorKyMgZXJyb3IgIk5ldmVyIGluY2x1ZGUgPGJpdHMv d2NoYXIyLWRlY2wuaD4gZGlyZWN0bHk7IHVzZSA8d2NoYXIuaD4gaW5zdGVhZC4iCisrI2VuZGlm CisrCisrCisrZXh0ZXJuIHdjaGFyX3QgKl9fd21lbWNweV9jaGsgKHdjaGFyX3QgKl9fcmVzdHJp Y3QgX19zMSwKKysJCQkgICAgICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3MyLCBzaXpl X3QgX19uLAorKwkJCSAgICAgICBzaXplX3QgX19uczEpIF9fVEhST1c7CisrZXh0ZXJuIHdjaGFy X3QgKl9fd21lbW1vdmVfY2hrICh3Y2hhcl90ICpfX3MxLCBjb25zdCB3Y2hhcl90ICpfX3MyLAor KwkJCQlzaXplX3QgX19uLCBzaXplX3QgX19uczEpIF9fVEhST1c7CisrCisrCisrI2lmZGVmIF9f VVNFX0dOVQorKworK2V4dGVybiB3Y2hhcl90ICpfX3dtZW1wY3B5X2NoayAod2NoYXJfdCAqX19y ZXN0cmljdCBfX3MxLAorKwkJCQljb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fczIsIHNpemVf dCBfX24sCisrCQkJCXNpemVfdCBfX25zMSkgX19USFJPVzsKKysKKysjZW5kaWYKKysKKysKKytl eHRlcm4gd2NoYXJfdCAqX193bWVtc2V0X2NoayAod2NoYXJfdCAqX19zLCB3Y2hhcl90IF9fYywg c2l6ZV90IF9fbiwKKysJCQkgICAgICAgc2l6ZV90IF9fbnMpIF9fVEhST1c7CisrZXh0ZXJuIHdj aGFyX3QgKl9fd2NzY3B5X2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsCisrCQkJICAg ICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYywKKysJCQkgICAgICBzaXplX3QgX19u KSBfX1RIUk9XOworK2V4dGVybiB3Y2hhcl90ICpfX3djcGNweV9jaGsgKHdjaGFyX3QgKl9fcmVz dHJpY3QgX19kZXN0LAorKwkJCSAgICAgIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMs CisrCQkJICAgICAgc2l6ZV90IF9fZGVzdGxlbikgX19USFJPVzsKKytleHRlcm4gd2NoYXJfdCAq X193Y3NuY3B5X2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsCisrCQkJICAgICAgIGNv bnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMsIHNpemVfdCBfX24sCisrCQkJICAgICAgIHNp emVfdCBfX2Rlc3RsZW4pIF9fVEhST1c7CisrZXh0ZXJuIHdjaGFyX3QgKl9fd2NwbmNweV9jaGsg KHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LAorKwkJCSAgICAgICBjb25zdCB3Y2hhcl90ICpf X3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19uLAorKwkJCSAgICAgICBzaXplX3QgX19kZXN0bGVu KSBfX1RIUk9XOworK2V4dGVybiB3Y2hhcl90ICpfX3djc2NhdF9jaGsgKHdjaGFyX3QgKl9fcmVz dHJpY3QgX19kZXN0LAorKwkJCSAgICAgIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMs CisrCQkJICAgICAgc2l6ZV90IF9fZGVzdGxlbikgX19USFJPVzsKKytleHRlcm4gd2NoYXJfdCAq X193Y3NuY2F0X2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsCisrCQkJICAgICAgIGNv bnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMsCisrCQkJICAgICAgIHNpemVfdCBfX24sIHNp emVfdCBfX2Rlc3RsZW4pIF9fVEhST1c7CisrZXh0ZXJuIGludCBfX3N3cHJpbnRmX2NoayAod2No YXJfdCAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX24sCisrCQkJICAgaW50IF9fZmxhZywgc2l6 ZV90IF9fc19sZW4sCisrCQkJICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX2Zvcm1hdCwg Li4uKQorKyAgICAgX19USFJPVyAvKiBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX193cHJp bnRmX18sIDUsIDYpKSkgKi87CisrZXh0ZXJuIGludCBfX3Zzd3ByaW50Zl9jaGsgKHdjaGFyX3Qg Kl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19uLAorKwkJCSAgICBpbnQgX19mbGFnLCBzaXplX3Qg X19zX2xlbiwKKysJCQkgICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX2Zvcm1hdCwKKysJ CQkgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpCisrICAgICBfX1RIUk9XIC8qIF9fYXR0cmlidXRl X18gKChfX2Zvcm1hdF9fIChfX3dwcmludGZfXywgNSwgMCkpKSAqLzsKKysKKysjaWYgX19VU0Vf Rk9SVElGWV9MRVZFTCA+IDEKKysKKytleHRlcm4gaW50IF9fZndwcmludGZfY2hrIChfX0ZJTEUg Kl9fcmVzdHJpY3QgX19zdHJlYW0sIGludCBfX2ZsYWcsCisrCQkJICAgY29uc3Qgd2NoYXJfdCAq X19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKTsKKytleHRlcm4gaW50IF9fd3ByaW50Zl9jaGsgKGlu dCBfX2ZsYWcsIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19mb3JtYXQsCisrCQkJICAuLi4p OworK2V4dGVybiBpbnQgX192ZndwcmludGZfY2hrIChfX0ZJTEUgKl9fcmVzdHJpY3QgX19zdHJl YW0sIGludCBfX2ZsYWcsCisrCQkJICAgIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19mb3Jt YXQsCisrCQkJICAgIF9fZ251Y192YV9saXN0IF9fYXApOworK2V4dGVybiBpbnQgX192d3ByaW50 Zl9jaGsgKGludCBfX2ZsYWcsIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19mb3JtYXQsCisr CQkJICAgX19nbnVjX3ZhX2xpc3QgX19hcCk7CisrCisrI2VuZGlmCisrCisrZXh0ZXJuIHdjaGFy X3QgKl9fZmdldHdzX2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX3NpemUs IGludCBfX24sCisrCQkJICAgICAgX19GSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSBfX3d1cjsK KysKKysjaWZkZWYgX19VU0VfR05VCisrCisrZXh0ZXJuIHdjaGFyX3QgKl9fZmdldHdzX3VubG9j a2VkX2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX3NpemUsCisrCQkJCSAg ICAgICBpbnQgX19uLCBfX0ZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pCisrICAgICAgIF9fd3Vy OworKworKyNlbmRpZgorKworK2V4dGVybiBzaXplX3QgX193Y3J0b21iX2NoayAoY2hhciAqX19y ZXN0cmljdCBfX3MsIHdjaGFyX3QgX193Y2hhciwKKysJCQkgICAgIG1ic3RhdGVfdCAqX19yZXN0 cmljdCBfX3AsCisrCQkJICAgICBzaXplX3QgX19idWZsZW4pIF9fVEhST1cgX193dXI7CisrZXh0 ZXJuIHNpemVfdCBfX21ic3J0b3djc19jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kc3QsCisr CQkJICAgICAgIGNvbnN0IGNoYXIgKipfX3Jlc3RyaWN0IF9fc3JjLAorKwkJCSAgICAgICBzaXpl X3QgX19sZW4sIG1ic3RhdGVfdCAqX19yZXN0cmljdCBfX3BzLAorKwkJCSAgICAgICBzaXplX3Qg X19kc3RsZW4pIF9fVEhST1c7CisrZXh0ZXJuIHNpemVfdCBfX3djc3J0b21ic19jaGsgKGNoYXIg Kl9fcmVzdHJpY3QgX19kc3QsCisrCQkJICAgICAgIGNvbnN0IHdjaGFyX3QgKipfX3Jlc3RyaWN0 IF9fc3JjLAorKwkJCSAgICAgICBzaXplX3QgX19sZW4sIG1ic3RhdGVfdCAqX19yZXN0cmljdCBf X3BzLAorKwkJCSAgICAgICBzaXplX3QgX19kc3RsZW4pIF9fVEhST1c7CisrCisrI2lmZGVmCV9f VVNFX1hPUEVOMks4CisrCisrZXh0ZXJuIHNpemVfdCBfX21ic25ydG93Y3NfY2hrICh3Y2hhcl90 ICpfX3Jlc3RyaWN0IF9fZHN0LAorKwkJCQljb25zdCBjaGFyICoqX19yZXN0cmljdCBfX3NyYywg c2l6ZV90IF9fbm1jLAorKwkJCQlzaXplX3QgX19sZW4sIG1ic3RhdGVfdCAqX19yZXN0cmljdCBf X3BzLAorKwkJCQlzaXplX3QgX19kc3RsZW4pIF9fVEhST1c7CisrZXh0ZXJuIHNpemVfdCBfX3dj c25ydG9tYnNfY2hrIChjaGFyICpfX3Jlc3RyaWN0IF9fZHN0LAorKwkJCQljb25zdCB3Y2hhcl90 ICoqX19yZXN0cmljdCBfX3NyYywKKysJCQkJc2l6ZV90IF9fbndjLCBzaXplX3QgX19sZW4sCisr CQkJCW1ic3RhdGVfdCAqX19yZXN0cmljdCBfX3BzLCBzaXplX3QgX19kc3RsZW4pCisrICAgICAg IF9fVEhST1c7CisrCisrI2VuZGlmCisrCisrI2VuZGlmIC8qIGJpdHMvd2NoYXIyLWRlY2wuaC4g ICovCitkaWZmIC0tZ2l0IGEvd2NzbWJzL2JpdHMvd2NoYXIyLmggYi93Y3NtYnMvYml0cy93Y2hh cjIuaAoraW5kZXggMGUwMTdmNDU4Yi4uM2YxMTBlZmU1NyAxMDA2NDQKKy0tLSBhL3djc21icy9i aXRzL3djaGFyMi5oCisrKysgYi93Y3NtYnMvYml0cy93Y2hhcjIuaAorQEAgLTIxLDkgKzIxLDYg QEAKKyAjZW5kaWYKKyAKKyAKKy1leHRlcm4gd2NoYXJfdCAqX193bWVtY3B5X2NoayAod2NoYXJf dCAqX19yZXN0cmljdCBfX3MxLAorLQkJCSAgICAgICBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0 IF9fczIsIHNpemVfdCBfX24sCistCQkJICAgICAgIHNpemVfdCBfX25zMSkgX19USFJPVzsKKyBl eHRlcm4gd2NoYXJfdCAqX19SRURJUkVDVF9OVEggKF9fd21lbWNweV9hbGlhcywKKyAJCQkJKHdj aGFyX3QgKl9fcmVzdHJpY3QgX19zMSwKKyAJCQkJIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3Qg X19zMiwgc2l6ZV90IF9fbiksCitAQCAtNDUsOCArNDIsNiBAQCBfX05USCAod21lbWNweSAod2No YXJfdCAqX19yZXN0cmljdCBfX3MxLCBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fczIsCisg fQorIAorIAorLWV4dGVybiB3Y2hhcl90ICpfX3dtZW1tb3ZlX2NoayAod2NoYXJfdCAqX19zMSwg Y29uc3Qgd2NoYXJfdCAqX19zMiwKKy0JCQkJc2l6ZV90IF9fbiwgc2l6ZV90IF9fbnMxKSBfX1RI Uk9XOworIGV4dGVybiB3Y2hhcl90ICpfX1JFRElSRUNUX05USCAoX193bWVtbW92ZV9hbGlhcywg KHdjaGFyX3QgKl9fczEsCisgCQkJCQkJICAgY29uc3Qgd2NoYXJfdCAqX19zMiwKKyAJCQkJCQkg ICBzaXplX3QgX19uKSwgd21lbW1vdmUpOworQEAgLTY2LDkgKzYxLDYgQEAgX19OVEggKHdtZW1t b3ZlICh3Y2hhcl90ICpfX3MxLCBjb25zdCB3Y2hhcl90ICpfX3MyLCBzaXplX3QgX19uKSkKKyAK KyAKKyAjaWZkZWYgX19VU0VfR05VCistZXh0ZXJuIHdjaGFyX3QgKl9fd21lbXBjcHlfY2hrICh3 Y2hhcl90ICpfX3Jlc3RyaWN0IF9fczEsCistCQkJCWNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3Qg X19zMiwgc2l6ZV90IF9fbiwKKy0JCQkJc2l6ZV90IF9fbnMxKSBfX1RIUk9XOworIGV4dGVybiB3 Y2hhcl90ICpfX1JFRElSRUNUX05USCAoX193bWVtcGNweV9hbGlhcywKKyAJCQkJKHdjaGFyX3Qg Kl9fcmVzdHJpY3QgX19zMSwKKyAJCQkJIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zMiwK K0BAIC05MSw4ICs4Myw2IEBAIF9fTlRIICh3bWVtcGNweSAod2NoYXJfdCAqX19yZXN0cmljdCBf X3MxLCBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fczIsCisgI2VuZGlmCisgCisgCistZXh0 ZXJuIHdjaGFyX3QgKl9fd21lbXNldF9jaGsgKHdjaGFyX3QgKl9fcywgd2NoYXJfdCBfX2MsIHNp emVfdCBfX24sCistCQkJICAgICAgIHNpemVfdCBfX25zKSBfX1RIUk9XOworIGV4dGVybiB3Y2hh cl90ICpfX1JFRElSRUNUX05USCAoX193bWVtc2V0X2FsaWFzLCAod2NoYXJfdCAqX19zLCB3Y2hh cl90IF9fYywKKyAJCQkJCQkgIHNpemVfdCBfX24pLCB3bWVtc2V0KTsKKyBleHRlcm4gd2NoYXJf dCAqX19SRURJUkVDVF9OVEggKF9fd21lbXNldF9jaGtfd2FybiwKK0BAIC0xMTAsOSArMTAwLDYg QEAgX19OVEggKHdtZW1zZXQgKHdjaGFyX3QgKl9fcywgd2NoYXJfdCBfX2MsIHNpemVfdCBfX24p KQorIH0KKyAKKyAKKy1leHRlcm4gd2NoYXJfdCAqX193Y3NjcHlfY2hrICh3Y2hhcl90ICpfX3Jl c3RyaWN0IF9fZGVzdCwKKy0JCQkgICAgICBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3Jj LAorLQkJCSAgICAgIHNpemVfdCBfX24pIF9fVEhST1c7CisgZXh0ZXJuIHdjaGFyX3QgKl9fUkVE SVJFQ1RfTlRIIChfX3djc2NweV9hbGlhcywKKyAJCQkJKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19k ZXN0LAorIAkJCQkgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYyksIHdjc2NweSk7CitA QCAtMTI3LDkgKzExNCw2IEBAIF9fTlRIICh3Y3NjcHkgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19k ZXN0LCBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fc3JjKSkKKyB9CisgCisgCistZXh0ZXJu IHdjaGFyX3QgKl9fd2NwY3B5X2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsCistCQkJ ICAgICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYywKKy0JCQkgICAgICBzaXplX3Qg X19kZXN0bGVuKSBfX1RIUk9XOworIGV4dGVybiB3Y2hhcl90ICpfX1JFRElSRUNUX05USCAoX193 Y3BjcHlfYWxpYXMsCisgCQkJCSh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZGVzdCwKKyAJCQkJIGNv bnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMpLCB3Y3BjcHkpOworQEAgLTE0NCw5ICsxMjgs NiBAQCBfX05USCAod2NwY3B5ICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZGVzdCwgY29uc3Qgd2No YXJfdCAqX19yZXN0cmljdCBfX3NyYykpCisgfQorIAorIAorLWV4dGVybiB3Y2hhcl90ICpfX3dj c25jcHlfY2hrICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZGVzdCwKKy0JCQkgICAgICAgY29uc3Qg d2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYywgc2l6ZV90IF9fbiwKKy0JCQkgICAgICAgc2l6ZV90 IF9fZGVzdGxlbikgX19USFJPVzsKKyBleHRlcm4gd2NoYXJfdCAqX19SRURJUkVDVF9OVEggKF9f d2NzbmNweV9hbGlhcywKKyAJCQkJKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LAorIAkJCQkg Y29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYywKK0BAIC0xNjgsOSArMTQ5LDYgQEAgX19O VEggKHdjc25jcHkgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kZXN0LCBjb25zdCB3Y2hhcl90ICpf X3Jlc3RyaWN0IF9fc3JjLAorIH0KKyAKKyAKKy1leHRlcm4gd2NoYXJfdCAqX193Y3BuY3B5X2No ayAod2NoYXJfdCAqX19yZXN0cmljdCBfX2Rlc3QsCistCQkJICAgICAgIGNvbnN0IHdjaGFyX3Qg Kl9fcmVzdHJpY3QgX19zcmMsIHNpemVfdCBfX24sCistCQkJICAgICAgIHNpemVfdCBfX2Rlc3Rs ZW4pIF9fVEhST1c7CisgZXh0ZXJuIHdjaGFyX3QgKl9fUkVESVJFQ1RfTlRIIChfX3djcG5jcHlf YWxpYXMsCisgCQkJCSh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZGVzdCwKKyAJCQkJIGNvbnN0IHdj aGFyX3QgKl9fcmVzdHJpY3QgX19zcmMsCitAQCAtMTkyLDkgKzE3MCw2IEBAIF9fTlRIICh3Y3Bu Y3B5ICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZGVzdCwgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmlj dCBfX3NyYywKKyB9CisgCisgCistZXh0ZXJuIHdjaGFyX3QgKl9fd2NzY2F0X2NoayAod2NoYXJf dCAqX19yZXN0cmljdCBfX2Rlc3QsCistCQkJICAgICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmlj dCBfX3NyYywKKy0JCQkgICAgICBzaXplX3QgX19kZXN0bGVuKSBfX1RIUk9XOworIGV4dGVybiB3 Y2hhcl90ICpfX1JFRElSRUNUX05USCAoX193Y3NjYXRfYWxpYXMsCisgCQkJCSh3Y2hhcl90ICpf X3Jlc3RyaWN0IF9fZGVzdCwKKyAJCQkJIGNvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zcmMp LCB3Y3NjYXQpOworQEAgLTIwOSw5ICsxODQsNiBAQCBfX05USCAod2NzY2F0ICh3Y2hhcl90ICpf X3Jlc3RyaWN0IF9fZGVzdCwgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYykpCisgfQor IAorIAorLWV4dGVybiB3Y2hhcl90ICpfX3djc25jYXRfY2hrICh3Y2hhcl90ICpfX3Jlc3RyaWN0 IF9fZGVzdCwKKy0JCQkgICAgICAgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYywKKy0J CQkgICAgICAgc2l6ZV90IF9fbiwgc2l6ZV90IF9fZGVzdGxlbikgX19USFJPVzsKKyBleHRlcm4g d2NoYXJfdCAqX19SRURJUkVDVF9OVEggKF9fd2NzbmNhdF9hbGlhcywKKyAJCQkJKHdjaGFyX3Qg Kl9fcmVzdHJpY3QgX19kZXN0LAorIAkJCQkgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3Ny YywKK0BAIC0yMjgsMTAgKzIwMCw2IEBAIF9fTlRIICh3Y3NuY2F0ICh3Y2hhcl90ICpfX3Jlc3Ry aWN0IF9fZGVzdCwgY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3NyYywKKyB9CisgCisgCist ZXh0ZXJuIGludCBfX3N3cHJpbnRmX2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX3MsIHNpemVf dCBfX24sCistCQkJICAgaW50IF9fZmxhZywgc2l6ZV90IF9fc19sZW4sCistCQkJICAgY29uc3Qg d2NoYXJfdCAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKQorLSAgICAgX19USFJPVyAvKiBfX2F0 dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX193cHJpbnRmX18sIDUsIDYpKSkgKi87CisgCisgZXh0 ZXJuIGludCBfX1JFRElSRUNUX05USF9MREJMIChfX3N3cHJpbnRmX2FsaWFzLAorIAkJCQkod2No YXJfdCAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX24sCitAQCAtMjU4LDExICsyMjYsNiBAQCBf X05USCAoc3dwcmludGYgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19uLAorICAg IDogc3dwcmludGYgKHMsIG4sIF9fVkFfQVJHU19fKSkKKyAjZW5kaWYKKyAKKy1leHRlcm4gaW50 IF9fdnN3cHJpbnRmX2NoayAod2NoYXJfdCAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX24sCist CQkJICAgIGludCBfX2ZsYWcsIHNpemVfdCBfX3NfbGVuLAorLQkJCSAgICBjb25zdCB3Y2hhcl90 ICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAorLQkJCSAgICBfX2dudWNfdmFfbGlzdCBfX2FyZykKKy0g ICAgIF9fVEhST1cgLyogX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fd3ByaW50Zl9fLCA1 LCAwKSkpICovOworIAorIGV4dGVybiBpbnQgX19SRURJUkVDVF9OVEhfTERCTCAoX192c3dwcmlu dGZfYWxpYXMsCisgCQkJCSh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbiwKK0BA IC0yODMsMTYgKzI0Niw2IEBAIF9fTlRIICh2c3dwcmludGYgKHdjaGFyX3QgKl9fcmVzdHJpY3Qg X19zLCBzaXplX3QgX19uLAorIAorICNpZiBfX1VTRV9GT1JUSUZZX0xFVkVMID4gMQorIAorLWV4 dGVybiBpbnQgX19md3ByaW50Zl9jaGsgKF9fRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwgaW50 IF9fZmxhZywKKy0JCQkgICBjb25zdCB3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4p OworLWV4dGVybiBpbnQgX193cHJpbnRmX2NoayAoaW50IF9fZmxhZywgY29uc3Qgd2NoYXJfdCAq X19yZXN0cmljdCBfX2Zvcm1hdCwKKy0JCQkgIC4uLik7CistZXh0ZXJuIGludCBfX3Zmd3ByaW50 Zl9jaGsgKF9fRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwgaW50IF9fZmxhZywKKy0JCQkgICAg Y29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX2Zvcm1hdCwKKy0JCQkgICAgX19nbnVjX3ZhX2xp c3QgX19hcCk7CistZXh0ZXJuIGludCBfX3Z3cHJpbnRmX2NoayAoaW50IF9fZmxhZywgY29uc3Qg d2NoYXJfdCAqX19yZXN0cmljdCBfX2Zvcm1hdCwKKy0JCQkgICBfX2dudWNfdmFfbGlzdCBfX2Fw KTsKKy0KKyAjIGlmZGVmIF9fdmFfYXJnX3BhY2sKKyBfX2ZvcnRpZnlfZnVuY3Rpb24gaW50Cisg d3ByaW50ZiAoY29uc3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX2ZtdCwgLi4uKQorQEAgLTMyOCw4 ICsyODEsNiBAQCB2ZndwcmludGYgKF9fRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwKKyAKKyAj ZW5kaWYKKyAKKy1leHRlcm4gd2NoYXJfdCAqX19mZ2V0d3NfY2hrICh3Y2hhcl90ICpfX3Jlc3Ry aWN0IF9fcywgc2l6ZV90IF9fc2l6ZSwgaW50IF9fbiwKKy0JCQkgICAgICBfX0ZJTEUgKl9fcmVz dHJpY3QgX19zdHJlYW0pIF9fd3VyOworIGV4dGVybiB3Y2hhcl90ICpfX1JFRElSRUNUIChfX2Zn ZXR3c19hbGlhcywKKyAJCQkgICAgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19zLCBpbnQgX19uLAor IAkJCSAgICAgX19GSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSwgZmdldHdzKSBfX3d1cjsKK0BA IC0zNTEsOSArMzAyLDYgQEAgZmdldHdzICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcywgaW50IF9f biwgX19GSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKQorIH0KKyAKKyAjaWZkZWYgX19VU0VfR05V CistZXh0ZXJuIHdjaGFyX3QgKl9fZmdldHdzX3VubG9ja2VkX2NoayAod2NoYXJfdCAqX19yZXN0 cmljdCBfX3MsIHNpemVfdCBfX3NpemUsCistCQkJCSAgICAgICBpbnQgX19uLCBfX0ZJTEUgKl9f cmVzdHJpY3QgX19zdHJlYW0pCistICBfX3d1cjsKKyBleHRlcm4gd2NoYXJfdCAqX19SRURJUkVD VCAoX19mZ2V0d3NfdW5sb2NrZWRfYWxpYXMsCisgCQkJICAgICh3Y2hhcl90ICpfX3Jlc3RyaWN0 IF9fcywgaW50IF9fbiwKKyAJCQkgICAgIF9fRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSksIGZn ZXR3c191bmxvY2tlZCkKK0BAIC0zNzksOSArMzI3LDYgQEAgZmdldHdzX3VubG9ja2VkICh3Y2hh cl90ICpfX3Jlc3RyaWN0IF9fcywgaW50IF9fbiwgX19GSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFt KQorICNlbmRpZgorIAorIAorLWV4dGVybiBzaXplX3QgX193Y3J0b21iX2NoayAoY2hhciAqX19y ZXN0cmljdCBfX3MsIHdjaGFyX3QgX193Y2hhciwKKy0JCQkgICAgIG1ic3RhdGVfdCAqX19yZXN0 cmljdCBfX3AsCistCQkJICAgICBzaXplX3QgX19idWZsZW4pIF9fVEhST1cgX193dXI7CisgZXh0 ZXJuIHNpemVfdCBfX1JFRElSRUNUX05USCAoX193Y3J0b21iX2FsaWFzLAorIAkJCSAgICAgIChj aGFyICpfX3Jlc3RyaWN0IF9fcywgd2NoYXJfdCBfX3djaGFyLAorIAkJCSAgICAgICBtYnN0YXRl X3QgKl9fcmVzdHJpY3QgX19wcyksIHdjcnRvbWIpIF9fd3VyOworQEAgLTQwNCwxMCArMzQ5LDYg QEAgX19OVEggKHdjcnRvbWIgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCB3Y2hhcl90IF9fd2NoYXIs CisgfQorIAorIAorLWV4dGVybiBzaXplX3QgX19tYnNydG93Y3NfY2hrICh3Y2hhcl90ICpfX3Jl c3RyaWN0IF9fZHN0LAorLQkJCSAgICAgICBjb25zdCBjaGFyICoqX19yZXN0cmljdCBfX3NyYywK Ky0JCQkgICAgICAgc2l6ZV90IF9fbGVuLCBtYnN0YXRlX3QgKl9fcmVzdHJpY3QgX19wcywKKy0J CQkgICAgICAgc2l6ZV90IF9fZHN0bGVuKSBfX1RIUk9XOworIGV4dGVybiBzaXplX3QgX19SRURJ UkVDVF9OVEggKF9fbWJzcnRvd2NzX2FsaWFzLAorIAkJCSAgICAgICh3Y2hhcl90ICpfX3Jlc3Ry aWN0IF9fZHN0LAorIAkJCSAgICAgICBjb25zdCBjaGFyICoqX19yZXN0cmljdCBfX3NyYywKK0BA IC00MzEsMTAgKzM3Miw2IEBAIF9fTlRIIChtYnNydG93Y3MgKHdjaGFyX3QgKl9fcmVzdHJpY3Qg X19kc3QsIGNvbnN0IGNoYXIgKipfX3Jlc3RyaWN0IF9fc3JjLAorIH0KKyAKKyAKKy1leHRlcm4g c2l6ZV90IF9fd2NzcnRvbWJzX2NoayAoY2hhciAqX19yZXN0cmljdCBfX2RzdCwKKy0JCQkgICAg ICAgY29uc3Qgd2NoYXJfdCAqKl9fcmVzdHJpY3QgX19zcmMsCistCQkJICAgICAgIHNpemVfdCBf X2xlbiwgbWJzdGF0ZV90ICpfX3Jlc3RyaWN0IF9fcHMsCistCQkJICAgICAgIHNpemVfdCBfX2Rz dGxlbikgX19USFJPVzsKKyBleHRlcm4gc2l6ZV90IF9fUkVESVJFQ1RfTlRIIChfX3djc3J0b21i c19hbGlhcywKKyAJCQkgICAgICAoY2hhciAqX19yZXN0cmljdCBfX2RzdCwKKyAJCQkgICAgICAg Y29uc3Qgd2NoYXJfdCAqKl9fcmVzdHJpY3QgX19zcmMsCitAQCAtNDU4LDEwICszOTUsNiBAQCBf X05USCAod2NzcnRvbWJzIChjaGFyICpfX3Jlc3RyaWN0IF9fZHN0LCBjb25zdCB3Y2hhcl90ICoq X19yZXN0cmljdCBfX3NyYywKKyAKKyAKKyAjaWZkZWYJX19VU0VfWE9QRU4ySzgKKy1leHRlcm4g c2l6ZV90IF9fbWJzbnJ0b3djc19jaGsgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kc3QsCistCQkJ CWNvbnN0IGNoYXIgKipfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19ubWMsCistCQkJCXNpemVf dCBfX2xlbiwgbWJzdGF0ZV90ICpfX3Jlc3RyaWN0IF9fcHMsCistCQkJCXNpemVfdCBfX2RzdGxl bikgX19USFJPVzsKKyBleHRlcm4gc2l6ZV90IF9fUkVESVJFQ1RfTlRIIChfX21ic25ydG93Y3Nf YWxpYXMsCisgCQkJICAgICAgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19kc3QsCisgCQkJICAgICAg IGNvbnN0IGNoYXIgKipfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19ubWMsCitAQCAtNDg1LDEx ICs0MTgsNiBAQCBfX05USCAobWJzbnJ0b3djcyAod2NoYXJfdCAqX19yZXN0cmljdCBfX2RzdCwg Y29uc3QgY2hhciAqKl9fcmVzdHJpY3QgX19zcmMsCisgfQorIAorIAorLWV4dGVybiBzaXplX3Qg X193Y3NucnRvbWJzX2NoayAoY2hhciAqX19yZXN0cmljdCBfX2RzdCwKKy0JCQkJY29uc3Qgd2No YXJfdCAqKl9fcmVzdHJpY3QgX19zcmMsCistCQkJCXNpemVfdCBfX253Yywgc2l6ZV90IF9fbGVu LAorLQkJCQltYnN0YXRlX3QgKl9fcmVzdHJpY3QgX19wcywgc2l6ZV90IF9fZHN0bGVuKQorLSAg ICAgX19USFJPVzsKKyBleHRlcm4gc2l6ZV90IF9fUkVESVJFQ1RfTlRIIChfX3djc25ydG9tYnNf YWxpYXMsCisgCQkJICAgICAgKGNoYXIgKl9fcmVzdHJpY3QgX19kc3QsCisgCQkJICAgICAgIGNv bnN0IHdjaGFyX3QgKipfX3Jlc3RyaWN0IF9fc3JjLAorZGlmZiAtLWdpdCBhL3djc21icy93Y2hh ci5oIGIvd2NzbWJzL3djaGFyLmgKK2luZGV4IDVkNmE0MDg1M2QuLmMxMzIxYzc1MTggMTAwNjQ0 CistLS0gYS93Y3NtYnMvd2NoYXIuaAorKysrIGIvd2NzbWJzL3djaGFyLmgKK0BAIC04NjQsMTQg Kzg2NCwyMSBAQCBleHRlcm4gc2l6ZV90IHdjc2Z0aW1lX2wgKHdjaGFyX3QgKl9fcmVzdHJpY3Qg X19zLCBzaXplX3QgX19tYXhzaXplLAorIAorIC8qIERlZmluZSBzb21lIG1hY3JvcyBoZWxwaW5n IHRvIGNhdGNoIGJ1ZmZlciBvdmVyZmxvd3MuICAqLworICNpZiBfX1VTRV9GT1JUSUZZX0xFVkVM ID4gMCAmJiBkZWZpbmVkIF9fZm9ydGlmeV9mdW5jdGlvbgorLSMgaW5jbHVkZSA8Yml0cy93Y2hh cjIuaD4KKysvKiBEZWNsYXJlIGFsbCBmdW5jdGlvbnMgZnJvbSBiaXRzL3djaGFyMi1kZWNsLmgg Zmlyc3QuICAqLworKyMgaW5jbHVkZSA8Yml0cy93Y2hhcjItZGVjbC5oPgorICNlbmRpZgorIAor LSNpbmNsdWRlIDxiaXRzL2Zsb2F0bi5oPgorKy8qIFRoZSBmb2xsb3dpbmcgaGVhZGVycyBwcm92 aWRlIGFzbSByZWRpcmVjdGlvbnMuICBUaGVzZSByZWRpcmVjdGlvbnMgbXVzdAorKyAgIGFwcGVh ciBiZWZvcmUgdGhlIGZpcnN0IHVzYWdlIG9mIHRoZXNlIGZ1bmN0aW9ucywgZS5nLiBpbiBiaXRz L3djaGFyLmguICAqLworICNpZiBkZWZpbmVkIF9fTERCTF9DT01QQVQgfHwgX19MRE9VQkxFX1JF RElSRUNUU19UT19GTE9BVDEyOF9BQkkgPT0gMQorICMgaW5jbHVkZSA8Yml0cy93Y2hhci1sZGJs Lmg+CisgI2VuZGlmCisgCisrI2lmIF9fVVNFX0ZPUlRJRllfTEVWRUwgPiAwICYmIGRlZmluZWQg X19mb3J0aWZ5X2Z1bmN0aW9uCisrLyogTm93IGluY2x1ZGUgdGhlIGZ1bmN0aW9uIGRlZmluaXRp b25zIGFuZCByZWRpcmVjdHMgdG9vLiAgKi8KKysjIGluY2x1ZGUgPGJpdHMvd2NoYXIyLmg+Cisr I2VuZGlmCisrCisgX19FTkRfREVDTFMKKyAKKyAjZW5kaWYgLyogd2NoYXIuaCAgKi8KKy0tIAor Mi4zOC4xCisKKworRnJvbSBiMzczNmQxYTNjNjBhM2VjOTk1OWJmM2IzODc5NDk1ODU0NmJmNmEy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQWRoZW1lcnZhbCBaYW5lbGxhIDxhZGhl bWVydmFsLnphbmVsbGFAbGluYXJvLm9yZz4KK0RhdGU6IFR1ZSwgMzAgQXVnIDIwMjIgMTM6MzU6 NTIgLTAzMDAKK1N1YmplY3Q6IGVsZjogUmVzdG9yZSBob3cgdkRTTyBkZXBlbmRlbmN5IGlzIHBy aW50ZWQgd2l0aAorIExEX1RSQUNFX0xPQURFRF9PQkpFQ1RTIChCWiAjMjk1MzkpCisKK1RoZSBk NzcwM2QzMTc2ZDIyNWQ1NzQzYjIxODExZDg4ODYxOWViYTM5ZTgyIGNoYW5nZWQgaG93IHZEU08g bGlrZQorZGVwZW5kZW5jaWVzIGFyZSBwcmludGVkLCBpbnN0ZWFkIG9mIGp1c3QgdGhlIG5hbWUg YW5kIGFkZHJlc3MgaXQKK2ZvbGxvd3Mgb3RoZXIgbGlicmFyaWVzIG1vZGUgYW5kIHByaW50cyAn bmFtZSA9PiBwYXRoJy4KKworVW5mb3J0dW5hdGVseSwgdGhpcyBicm9rZSBzb21lIGxkZCBjb25z dW1lciB0aGF0IHVzZXMgdGhlIG91dHB1dCB0bworZmlsdGVyIG91dCB0aGUgcHJvZ3JhbSdzIGRl cGVuZGVuY2llcy4gIEZvciBpbnN0YW5jZSBDTWFrZQorYnVuZGxldXRpbGl0aWVzIG1vZHVsZSBb MV0sIHdoZXJlIEdldFByZXF1aXJpdGUgdXNlcyB0aGUgcmVnZXggdG8gZmlsdGVyCitvdXQgJ25h bWUgPT4gcGF0aCcgWzJdLgorCitUaGlzIHBhdGNoIHJlc3RvcmUgdGhlIHByZXZpb3VzIHdheSB0 byBwcmludCBqdXN0IHRoZSBuYW1lIGFuZCB0aGUKK21hcHBpbmcgYWRkcmVzcy4KKworQ2hlY2tl ZCBvbiB4ODZfNjQtbGludXgtZ251LgorCitbMV0gaHR0cHM6Ly9naXRodWIuY29tL0tpdHdhcmUv Q01ha2UvdHJlZS9tYXN0ZXIvVGVzdHMvQnVuZGxlVXRpbGl0aWVzCitbMl0gaHR0cHM6Ly9naXRo dWIuY29tL0tpdHdhcmUvQ01ha2UvYmxvYi9tYXN0ZXIvTW9kdWxlcy9HZXRQcmVyZXF1aXNpdGVz LmNtYWtlI0w3MzMKKworUmV2aWV3ZWQtYnk6IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhh dC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAxZTkwMzEyNGNlYzQ0OTI0NjNkMDc1 YzZjMDYxYTJhNzcyZGI3N2JmKQorLS0tCisgTkVXUyAgICAgICB8IDIgKy0KKyBlbGYvcnRsZC5j IHwgNiArKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQorCitkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4IDZkMzFlNWFiYmEuLjc1N2Rl ZDg1ZTAgMTAwNjQ0CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitAQCAtMTQsNyArMTQsNyBAQCBU aGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhpcyByZWxlYXNlOgorICAgWzI5 NDg1XSBMaW51eDogVGVybWluYXRlIHN1YnByb2Nlc3Mgb24gbGF0ZSBmYWlsdXJlIGluIHRzdC1w aWRmZAorICAgWzI5NDkwXSBhbHBoYTogTmV3IF9fYnJrX2NhbGwgaW1wbGVtZW50YXRpb24gaXMg YnJva2VuCisgICBbMjk1MjhdIGVsZjogQ2FsbCBfX2xpYmNfZWFybHlfaW5pdCBmb3IgcmV1c2Vk IG5hbWVzcGFjZXMKKy0KKysgIFsyOTUzOV0gbGliYzogTERfVFJBQ0VfTE9BREVEX09CSkVDVFMg Y2hhbmdlZCBob3cgdkRTTyBsaWJyYXJ5IGFyZQorIAwKKyBWZXJzaW9uIDIuMzYKKyAKK2RpZmYg LS1naXQgYS9lbGYvcnRsZC5jIGIvZWxmL3J0bGQuYworaW5kZXggY2JiYWY0YTMzMS4uM2U3NzFh OTNkOCAxMDA2NDQKKy0tLSBhL2VsZi9ydGxkLmMKKysrKyBiL2VsZi9ydGxkLmMKK0BAIC0yMTIy LDYgKzIxMjIsMTIgQEAgZGxfbWFpbiAoY29uc3QgRWxmVyhQaGRyKSAqcGhkciwKKyAJICAgIGlm IChsLT5sX2Zha2VkKQorIAkgICAgICAvKiBUaGUgbGlicmFyeSB3YXMgbm90IGZvdW5kLiAgKi8K KyAJICAgICAgX2RsX3ByaW50ZiAoIlx0JXMgPT4gbm90IGZvdW5kXG4iLCAgbC0+bF9saWJuYW1l LT5uYW1lKTsKKysJICAgIGVsc2UgaWYgKHN0cmNtcCAobC0+bF9saWJuYW1lLT5uYW1lLCBsLT5s X25hbWUpID09IDApCisrCSAgICAgIC8qIFByaW50IHZEU08gbGlrZSBsaWJyYXJpZXMgd2l0aG91 dCBkdXBsaWNhdGUgbmFtZS4gIFNvbWUKKysJCSBjb25zdW1lcnMgZGVwZW5kIG9mIHRoaXMgZm9y bWF0LiAgKi8KKysJICAgICAgX2RsX3ByaW50ZiAoIlx0JXMgKDB4JTAqWngpXG4iLCBsLT5sX2xp Ym5hbWUtPm5hbWUsCisrCQkJICAoaW50KSBzaXplb2YgbC0+bF9tYXBfc3RhcnQgKiAyLAorKwkJ CSAgKHNpemVfdCkgbC0+bF9tYXBfc3RhcnQpOworIAkgICAgZWxzZQorIAkgICAgICBfZGxfcHJp bnRmICgiXHQlcyA9PiAlcyAoMHglMCpaeClcbiIsCisgCQkJICBEU09fRklMRU5BTUUgKGwtPmxf bGlibmFtZS0+bmFtZSksCistLSAKKzIuMzguMQorCisKK0Zyb20gNjQ1ZDk0ODA4YWFhOTBmYjFi MjBhMjVmZjcwYmI1MGQ5ZWIxZDU1YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFk aGVtZXJ2YWwgWmFuZWxsYSA8YWRoZW1lcnZhbC56YW5lbGxhQGxpbmFyby5vcmc+CitEYXRlOiBN b24sIDUgU2VwIDIwMjIgMDk6MzQ6MzkgLTAzMDAKK1N1YmplY3Q6IHN5c2xvZzogUmVtb3ZlIGV4 dHJhIHdoaXRlc3BhY2UgYmV0d2VlbiB0aW1lc3RhbXAgYW5kIG1lc3NhZ2UKKyAoQlojMjk1NDQp CisKK1RoZSByZmMzMTY0IGNsZWFyIHN0YXRlcyB0aGF0IGEgc2luZ2xlIHNwYWNlIGNoYXJhY3Rl ciBtdXN0IGZvbGxvdwordGhlIHRpbWVzdGFtcCBmaWVsZC4KKworQ2hlY2tlZCBvbiB4ODZfNjQt bGludXgtZ251LgorLS0tCisgbWlzYy9zeXNsb2cuYyAgICAgfCAyICstCisgbWlzYy90c3Qtc3lz bG9nLmMgfCA5ICsrKysrKy0tLQorIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbWlzYy9zeXNsb2cuYyBiL21pc2Mvc3lzbG9n LmMKK2luZGV4IGI4OGY2NmM4MzUuLmY2N2Q0YjU4YTQgMTAwNjQ0CistLS0gYS9taXNjL3N5c2xv Zy5jCisrKysgYi9taXNjL3N5c2xvZy5jCitAQCAtMTY3LDcgKzE2Nyw3IEBAIF9fdnN5c2xvZ19p bnRlcm5hbCAoaW50IHByaSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwLAorIAkJICBfbmxf Q19sb2NvYmpfcHRyKTsKKyAKKyAjZGVmaW5lIFNZU0xPR19IRUFERVIoX19wcmksIF9fdGltZXN0 YW1wLCBfX21zZ29mZiwgcGlkKSBcCistICAiPCVkPiVzICVuJXMlcyUuMGQlczogIiwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgIjwlZD4lcyVuJXMlcyUuMGQlczogIiwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgIF9fcHJpLCBfX3RpbWVzdGFtcCwgX19t c2dvZmYsICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICBMb2dUYWcgPT0gTlVMTCA/IF9f cHJvZ25hbWUgOiBMb2dUYWcsICAgICAgICAgICAgICAgICAgXAorICAgIlsiICsgKHBpZCA9PSAw KSwgcGlkLCAiXSIgKyAocGlkID09IDApCitkaWZmIC0tZ2l0IGEvbWlzYy90c3Qtc3lzbG9nLmMg Yi9taXNjL3RzdC1zeXNsb2cuYworaW5kZXggMWQzMzJlY2U1My4uMzU2MGI1MThhMiAxMDA2NDQK Ky0tLSBhL21pc2MvdHN0LXN5c2xvZy5jCisrKysgYi9taXNjL3RzdC1zeXNsb2cuYworQEAgLTI3 NSwxNiArMjc1LDE5IEBAIHBhcnNlX3N5c2xvZ19tc2cgKGNvbnN0IGNoYXIgKm1zZykKKyB7Cisg ICBzdHJ1Y3QgbXNnX3QgciA9IHsgLnBpZCA9IC0xIH07CisgICBpbnQgbnVtYmVyOworKyAgaW50 IHdzYiwgd3NhOworIAorICNkZWZpbmUgU1RSSU5QVVQoc2l6ZSkgIFhTVFJJTlBVVChzaXplKQor ICNkZWZpbmUgWFNUUklOUFVUKHNpemUpICIlIiAjIHNpemUgInMiCisgCisgICAvKiBUaGUgbWVz c2FnZSBpbiB0aGUgZm9ybToKKy0gICAgIDwxNzk+QXByICA4IDE0OjUxOjE5ICB0c3Qtc3lzbG9n OiBtZXNzYWdlIDE3NiAzICAqLworLSAgaW50IG4gPSBzc2NhbmYgKG1zZywgIjwlM2Q+JSpzICUq ZCAlKmQ6JSpkOiUqZCAiIFNUUklOUFVUKElERU5UX0xFTkdUSCkKKysgICAgIDwxNzk+QXByICA4 IDE0OjUxOjE5IHRzdC1zeXNsb2c6IG1lc3NhZ2UgMTc2IDMgICovCisrICBpbnQgbiA9IHNzY2Fu ZiAobXNnLCAiPCUzZD4lKnMgJSpkICUqZDolKmQ6JSpkJW4gJW4iIFNUUklOUFVUKElERU5UX0xF TkdUSCkKKyAJCSAgICAgICAiICIgU1RSSU5QVVQoTVNHX0xFTkdUSCkgIiAlKmQgJSpkIiwKKy0g ICAgICAgICAgICAgICAgICAmbnVtYmVyLCByLmlkZW50LCByLm1zZyk7CisrICAgICAgICAgICAg ICAgICAgJm51bWJlciwgJndzYiwgJndzYSwgci5pZGVudCwgci5tc2cpOworICAgVEVTVF9DT01Q QVJFIChuLCAzKTsKKysgIC8qIEl0IHNob3VsZCBvbmx5IG9uZSBzcGFjZSBiZXR3ZWVuIHRpbWVz dGFtcCBhbmQgbWVzc2FnZS4gICovCisrICBURVNUX0NPTVBBUkUgKHdzYSAtIHdzYiwgMSk7Cisg CisgICByLmZhY2lsaXR5ID0gbnVtYmVyICYgTE9HX0ZBQ01BU0s7CisgICByLnByaW9yaXR5ID0g bnVtYmVyICYgTE9HX1BSSU1BU0s7CistLSAKKzIuMzguMQorCisKK0Zyb20gYjQ2NDEyZmIxN2U4 YmZjNmM5ZTFmMTQ0YmJjZjgzMzMyMGM4MGY4YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+CitEYXRlOiBU dWUsIDYgU2VwIDIwMjIgMDk6MzE6NTAgLTA0MDAKK1N1YmplY3Q6IEFkZCBORVdTIGVudHJ5IGZv ciBDVkUtMjAyMi0zOTA0NgorCisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA3NmZlNTYwMjBl N2VmMzU0Njg1YjIyODQ1ODBhYzE2MzBjMDc4YTJiKQorLS0tCisgTkVXUyB8IDcgKysrKysrKwor IDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL05FV1MgYi9O RVdTCitpbmRleCA3NTdkZWQ4NWUwLi4xMGE3NjEzZjA5IDEwMDY0NAorLS0tIGEvTkVXUworKysr IGIvTkVXUworQEAgLTcsNiArNywxMyBAQCB1c2luZyBgZ2xpYmMnIGluIHRoZSAicHJvZHVjdCIg ZmllbGQuCisgDAorIFZlcnNpb24gMi4zNi4xCisgCisrU2VjdXJpdHkgcmVsYXRlZCBjaGFuZ2Vz OgorKworKyAgQ1ZFLTIwMjItMzkwNDY6IFdoZW4gdGhlIHN5c2xvZyBmdW5jdGlvbiBpcyBwYXNz ZWQgYSBjcmFmdGVkIGlucHV0CisrICBzdHJpbmcgbGFyZ2VyIHRoYW4gMTAyNCBieXRlcywgaXQg cmVhZHMgdW5pbml0aWFsaXplZCBtZW1vcnkgZnJvbSB0aGUKKysgIGhlYXAgYW5kIHByaW50cyBp dCB0byB0aGUgdGFyZ2V0IGxvZyBmaWxlLCBwb3RlbnRpYWxseSByZXZlYWxpbmcgYQorKyAgcG9y dGlvbiBvZiB0aGUgY29udGVudHMgb2YgdGhlIGhlYXAuCisrCisgVGhlIGZvbGxvd2luZyBidWdz IGFyZSByZXNvbHZlZCB3aXRoIHRoaXMgcmVsZWFzZToKKyAKKyAgIFsyODg0Nl0gQ01TR19OWFRI RFIgbWF5IHRyaWdnZXIgLVdzdHJpY3Qtb3ZlcmZsb3cgd2FybmluZworLS0gCisyLjM4LjEKKwor CitGcm9tIGMzOTkyNzFjMTBiZDAwNzE0NTA0ZThkNGRmYmVjOGFlYmY5OTZkZDQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBGYWJpYW4gVm9ndCA8ZnZvZ3RAc3VzZS5kZT4KK0RhdGU6 IFdlZCwgMjcgSnVsIDIwMjIgMTE6NDQ6MDcgKzAyMDAKK1N1YmplY3Q6IG5zY2Q6IEZpeCBuZXRs aW5rIGNhY2hlIGludmFsaWRhdGlvbiBpZiBlcG9sbCBpcyB1c2VkIFtCWiAjMjk0MTVdCisKK1By b2Nlc3NlcyBjYWNoZSBuZXR3b3JrIGludGVyZmFjZSBpbmZvcm1hdGlvbiBzdWNoIGFzIHdoZXRo ZXIgSVB2NCBvciBJUHY2CithcmUgZW5hYmxlZC4gVGhpcyBpcyBvbmx5IGNoZWNrZWQgYWdhaW4g aWYgdGhlICJuZXRsaW5rIHRpbWVzdGFtcCIgcHJvdmlkZWQKK2J5IG5zY2QgY2hhbmdlZCwgd2hp Y2ggaXMgdHJpZ2dlcmVkIGJ5IG5ldGxpbmsgc29ja2V0IGFjdGl2aXR5LgorCitIb3dldmVyLCBp biB0aGUgZXBvbGwgaGFuZGxlciBmb3IgdGhlIG5ldGxpbmsgc29ja2V0LCBpdCB3YXMgbWlzc2Vk IHRvCithc3NpZ24gdGhlIG5ldyB0aW1lc3RhbXAgdG8gdGhlIG5zY2QgZGF0YWJhc2UuIFRoZSBo YW5kbGVyIGZvciBwbGFpbiBwb2xsCitkaWQgdGhhdCBwcm9wZXJseSwgY29weSB0aGF0IG92ZXIu CisKK1RoaXMgYnVnIGNhdXNlZCB0aGF0IGUuZy4gcHJvY2Vzc2VzIHdoaWNoIHN0YXJ0ZWQgYmVm b3JlIG5ldHdvcmsKK2NvbmZpZ3VyYXRpb24gZ290IHVudXN1YWJsZSBhZGRyZXNzZXMgZnJvbSBn ZXRhZGRyaW5mbywgbGlrZSBJUHY2IG9ubHkgZXZlbgordGhvdWdoIG9ubHkgSVB2NCBpcyBhdmFp bGFibGU6CitodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcvTmV0d29ya01hbmFnZXIvTmV0 d29ya01hbmFnZXIvLS9pc3N1ZXMvMTA0MQorCitJdCdzIGEgYml0IGhhcmQgdG8gcmVwcm9kdWNl LCBzbyBJIHZlcmlmaWVkIHRoaXMgYnkgY2hlY2tpbmcgdGhlIHRpbWVzdGFtcAorb24gY2FsbHMg dG8gX19jaGVja19wZiBtYW51YWxseS4gV2l0aG91dCB0aGlzIHBhdGNoIGl0J3Mgc3R1Y2sgYXQg MSwgbm93CitpdCdzIGluY3JlYXNpbmcgb24gbmV0d29yayBjaGFuZ2VzIGFzIGV4cGVjdGVkLgor CitTaWduZWQtb2ZmLWJ5OiBGYWJpYW4gVm9ndCA8ZnZvZ3RAc3VzZS5kZT4KKyhjaGVycnkgcGlj a2VkIGZyb20gY29tbWl0IDAyY2EyNWZlZjI3ODU5NzQwMTFlOWM1YmVlY2M5OWI5MDBiNjlmZDcp CistLS0KKyBORVdTICAgICAgICAgICAgICAgfCAxICsKKyBuc2NkL2Nvbm5lY3Rpb25zLmMgfCAz ICsrLQorIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisK K2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXggMTBhNzYxM2YwOS4uOTM2MDU5NmZjYyAx MDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BAIC0xNyw2ICsxNyw3IEBAIFNlY3VyaXR5 IHJlbGF0ZWQgY2hhbmdlczoKKyBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGgg dGhpcyByZWxlYXNlOgorIAorICAgWzI4ODQ2XSBDTVNHX05YVEhEUiBtYXkgdHJpZ2dlciAtV3N0 cmljdC1vdmVyZmxvdyB3YXJuaW5nCisrICBbMjk0MTVdIG5zY2Q6IEZpeCBuZXRsaW5rIGNhY2hl IGludmFsaWRhdGlvbiBpZiBlcG9sbCBpcyB1c2VkCisgICBbMjk0NDZdIF9kbG9wZW4gbm93IGln bm9yZXMgZGxfY2FsbGVyIGFyZ3VtZW50IGluIHN0YXRpYyBtb2RlCisgICBbMjk0ODVdIExpbnV4 OiBUZXJtaW5hdGUgc3VicHJvY2VzcyBvbiBsYXRlIGZhaWx1cmUgaW4gdHN0LXBpZGZkCisgICBb Mjk0OTBdIGFscGhhOiBOZXcgX19icmtfY2FsbCBpbXBsZW1lbnRhdGlvbiBpcyBicm9rZW4KK2Rp ZmYgLS1naXQgYS9uc2NkL2Nvbm5lY3Rpb25zLmMgYi9uc2NkL2Nvbm5lY3Rpb25zLmMKK2luZGV4 IDYxZDE2NzRlYjQuLjUzMWQyZTgzZGYgMTAwNjQ0CistLS0gYS9uc2NkL2Nvbm5lY3Rpb25zLmMK KysrKyBiL25zY2QvY29ubmVjdGlvbnMuYworQEAgLTIyODQsNyArMjI4NCw4IEBAIG1haW5fbG9v cF9lcG9sbCAoaW50IGVmZCkKKyAJCQkJCSAgICAgc2l6ZW9mIChidWYpKSkgIT0gLTEpCisgCSAg ICAgIDsKKyAKKy0JICAgIF9fYnVtcF9ubF90aW1lc3RhbXAgKCk7CisrCSAgICBkYnNbaHN0ZGJd LmhlYWQtPmV4dHJhX2RhdGFbTlNDRF9IU1RfSURYX0NPTkZfVElNRVNUQU1QXQorKwkgICAgICA9 IF9fYnVtcF9ubF90aW1lc3RhbXAgKCk7CisgCSAgfQorICMgZW5kaWYKKyAJZWxzZQorLS0gCisy LjM4LjEKKworCitGcm9tIDlkN2VlYmRlOGYxMzRlYTI1YmRiOWFiNjFiYzc0ZDVlNzFlNDEyODgg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckBy ZWRoYXQuY29tPgorRGF0ZTogVHVlLCAzMCBBdWcgMjAyMiAxMDowMjo0OSArMDIwMAorU3ViamVj dDogcmVzb2x2OiBBZGQgdHN0LXJlc29sdi1ieWFkZHIgZm9yIHRlc3RpbmcgcmV2ZXJzZSBsb29r dXAKKworUmV2aWV3ZWQtYnk6IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2Fy ZS5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAwYjk5ODI4ZDU0ZTVkMWZjOGY1YWQz ZWRmNWJhMjYyYWQyZTljNWIwKQorLS0tCisgcmVzb2x2L01ha2VmaWxlICAgICAgICAgICAgICAg ICAgICAgIHwgICAyICsKKyByZXNvbHYvdHN0LXJlc29sdi1ieWFkZHIuYyAgICAgICAgICAgfCAz MjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgcmVzb2x2L3RzdC1yZXNvbHYtbWF5YmVf aW5zZXJ0X3NpZy5oIHwgIDMyICsrKworIDMgZmlsZXMgY2hhbmdlZCwgMzYwIGluc2VydGlvbnMo KykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgcmVzb2x2L3RzdC1yZXNvbHYtYnlhZGRyLmMKKyBjcmVh dGUgbW9kZSAxMDA2NDQgcmVzb2x2L3RzdC1yZXNvbHYtbWF5YmVfaW5zZXJ0X3NpZy5oCisKK2Rp ZmYgLS1naXQgYS9yZXNvbHYvTWFrZWZpbGUgYi9yZXNvbHYvTWFrZWZpbGUKK2luZGV4IDViMTUz MjFmOWIuLjk4YjEwZDk3YTAgMTAwNjQ0CistLS0gYS9yZXNvbHYvTWFrZWZpbGUKKysrKyBiL3Jl c29sdi9NYWtlZmlsZQorQEAgLTkxLDYgKzkxLDcgQEAgdGVzdHMgKz0gXAorICAgdHN0LXJlc19o bm9rIFwKKyAgIHRzdC1yZXNvbHYtYmFzaWMgXAorICAgdHN0LXJlc29sdi1iaW5hcnkgXAorKyAg dHN0LXJlc29sdi1ieWFkZHIgXAorICAgdHN0LXJlc29sdi1lZG5zIFwKKyAgIHRzdC1yZXNvbHYt bmV0d29yayBcCisgICB0c3QtcmVzb2x2LW5vYWFhYSBcCitAQCAtMjYwLDYgKzI2MSw3IEBAICQo b2JqcGZ4KXRzdC1yZXNvbHYtYWlfaWRuLW5vbGliaWRuMi5vdXQ6IFwKKyAgICQoZ2VuLWxvY2Fs ZXMpICQob2JqcGZ4KXRzdC1uby1saWJpZG4yLnNvCisgJChvYmpwZngpdHN0LXJlc29sdi1iYXNp YzogJChvYmpwZngpbGlicmVzb2x2LnNvICQoc2hhcmVkLXRocmVhZC1saWJyYXJ5KQorICQob2Jq cGZ4KXRzdC1yZXNvbHYtYmluYXJ5OiAkKG9ianBmeClsaWJyZXNvbHYuc28gJChzaGFyZWQtdGhy ZWFkLWxpYnJhcnkpCisrJChvYmpwZngpdHN0LXJlc29sdi1ieWFkZHI6ICQob2JqcGZ4KWxpYnJl c29sdi5zbyAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKKyAkKG9ianBmeCl0c3QtcmVzb2x2LWVk bnM6ICQob2JqcGZ4KWxpYnJlc29sdi5zbyAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKKyAkKG9i anBmeCl0c3QtcmVzb2x2LW5ldHdvcms6ICQob2JqcGZ4KWxpYnJlc29sdi5zbyAkKHNoYXJlZC10 aHJlYWQtbGlicmFyeSkKKyAkKG9ianBmeCl0c3QtcmVzb2x2LXJlc19pbml0OiAkKG9ianBmeCls aWJyZXNvbHYuc28KK2RpZmYgLS1naXQgYS9yZXNvbHYvdHN0LXJlc29sdi1ieWFkZHIuYyBiL3Jl c29sdi90c3QtcmVzb2x2LWJ5YWRkci5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAw MDAwMDAwMC4uNjI5OWU4OTgzNworLS0tIC9kZXYvbnVsbAorKysrIGIvcmVzb2x2L3RzdC1yZXNv bHYtYnlhZGRyLmMKK0BAIC0wLDAgKzEsMzI2IEBACisrLyogVGVzdCByZXZlcnNlIEROUyBsb29r dXAuCisrICAgQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorKworKyAgIFRo ZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMg TGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25n IHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0dHBzOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorKyNpbmNs dWRlIDxlcnJuby5oPgorKyNpbmNsdWRlIDxuZXRkYi5oPgorKyNpbmNsdWRlIDxzdGRib29sLmg+ CisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRlIDxz dHJpbmcuaD4KKysjaW5jbHVkZSA8c3VwcG9ydC9jaGVjay5oPgorKyNpbmNsdWRlIDxzdXBwb3J0 L2NoZWNrX25zcy5oPgorKyNpbmNsdWRlIDxzdXBwb3J0L25leHRfdG9fZmF1bHQuaD4KKysjaW5j bHVkZSA8c3VwcG9ydC9yZXNvbHZfdGVzdC5oPgorKyNpbmNsdWRlIDxzdXBwb3J0L3N1cHBvcnQu aD4KKysKKysjaW5jbHVkZSAidHN0LXJlc29sdi1tYXliZV9pbnNlcnRfc2lnLmgiCisrCisrLyog UU5BTUUgZm9ybWF0OgorKworKyAgIEFERFJFU1NFUy5DTkFNRVMuLi4obG90cyBvZiAwcykuLi44 LmIuZC4wLjEuMC4wLjIuaXA2LmFycGEuCisrICAgQ05BTUVTfEFERFJFU1NFUy4yLjAuMTkyLmlu LWFkZHItYXJwYS4KKysKKysgICBGb3IgdGhlIElQdjQgcmV2ZXJzZSBsb29rdXAsIHRoZSBhZGRy ZXNzIGNvdW50IGlzIGluIHRoZSBsb3dlcgorKyAgIGJpdHMuCisrCisrICAgQ05BTUVTIGlzIHRo ZSBsZW5ndGggb2YgdGhlIENOQU1FIGNoYWluLCBBRERSRVNTRVMgaXMgdGhlIG51bWJlciBvZgor KyAgIGFkZHJlc3NlcyBpbiB0aGUgcmVzcG9uc2UuICBUaGUgc3BlY2lhbCB2YWx1ZSAxNSBtZWFu cyB0aGF0IHRoZXJlCisrICAgYXJlIG5vIGFkZHJlc3NlcywgYW5kIHRoZSBSQ09ERSBpcyBOWERP TUFJTi4gICovCisrc3RhdGljIHZvaWQKKytyZXNwb25zZSAoY29uc3Qgc3RydWN0IHJlc29sdl9y ZXNwb25zZV9jb250ZXh0ICpjdHgsCisrICAgICAgICAgIHN0cnVjdCByZXNvbHZfcmVzcG9uc2Vf YnVpbGRlciAqYiwKKysgICAgICAgICAgY29uc3QgY2hhciAqcW5hbWUsIHVpbnQxNl90IHFjbGFz cywgdWludDE2X3QgcXR5cGUpCisreworKyAgVEVTVF9DT01QQVJFIChxY2xhc3MsIENfSU4pOwor KyAgVEVTVF9DT01QQVJFIChxdHlwZSwgVF9QVFIpOworKworKyAgdW5zaWduZWQgaW50IGFkZHJl c3NlcywgY25hbWVzLCBiaXRzOworKyAgY2hhciAqdGFpbDsKKysgIGlmIChzdHJzdHIgKHFuYW1l LCAiaXA2LmFycGEiKSAhPSBOVUxMCisrICAgICAgJiYgc3NjYW5mIChxbmFtZSwgIiV4LiV4LiVt cyIsICZhZGRyZXNzZXMsICZjbmFtZXMsICZ0YWlsKSA9PSAzKQorKyAgICBURVNUX0NPTVBBUkVf U1RSSU5HICh0YWlsLCAiXAorKzAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAu MC4wLjAuOC5iLmQuMC4xLjAuMC4yLmlwNi5hcnBhIik7CisrICBlbHNlIGlmIChzc2NhbmYgKHFu YW1lLCAiJXUuJW1zIiwgJmJpdHMsICZ0YWlsKSA9PSAyKQorKyAgICB7CisrICAgICAgVEVTVF9D T01QQVJFX1NUUklORyAodGFpbCwgIjIuMC4xOTIuaW4tYWRkci5hcnBhIik7CisrICAgICAgYWRk cmVzc2VzID0gYml0cyAmIDB4MGY7CisrICAgICAgY25hbWVzID0gYml0cyA+PiA0OworKyAgICB9 CisrICBlbHNlCisrICAgIEZBSUxfRVhJVDEgKCJpbnZhbGlkIFFOQU1FOiAlcyIsIHFuYW1lKTsK KysgIGZyZWUgKHRhaWwpOworKworKyAgaW50IHJjb2RlOworKyAgaWYgKGFkZHJlc3NlcyA9PSAx NSkKKysgICAgeworKyAgICAgIC8qIFNwZWNpYWwgY2FzZTogVXNlIG5vIGFkZHJlc3NlcyB3aXRo IE5YRE9NQUlOIHJlc3BvbnNlLiAgKi8KKysgICAgICByY29kZSA9IG5zX3Jfbnhkb21haW47Cisr ICAgICAgYWRkcmVzc2VzID0gMDsKKysgICAgfQorKyAgZWxzZQorKyAgICByY29kZSA9IDA7Cisr CisrICBzdHJ1Y3QgcmVzb2x2X3Jlc3BvbnNlX2ZsYWdzIGZsYWdzID0geyAucmNvZGUgPSByY29k ZSB9OworKyAgcmVzb2x2X3Jlc3BvbnNlX2luaXQgKGIsIGZsYWdzKTsKKysgIHJlc29sdl9yZXNw b25zZV9hZGRfcXVlc3Rpb24gKGIsIHFuYW1lLCBxY2xhc3MsIHF0eXBlKTsKKysgIHJlc29sdl9y ZXNwb25zZV9zZWN0aW9uIChiLCBuc19zX2FuKTsKKysgIG1heWJlX2luc2VydF9zaWcgKGIsIHFu YW1lKTsKKysKKysgIC8qIFByb3ZpZGUgdGhlIHJlcXVlc3RlZCBudW1iZXIgb2YgQ05BTUUgcmVj b3Jkcy4gICovCisrICBjaGFyICpwcmV2aW91c19uYW1lID0gKGNoYXIgKikgcW5hbWU7CisrICBm b3IgKGludCB1bmlxdWUgPSAwOyB1bmlxdWUgPCBjbmFtZXM7ICsrdW5pcXVlKQorKyAgICB7Cisr ICAgICAgcmVzb2x2X3Jlc3BvbnNlX29wZW5fcmVjb3JkIChiLCBwcmV2aW91c19uYW1lLCBxY2xh c3MsIFRfQ05BTUUsIDYwKTsKKysgICAgICBjaGFyICpuZXdfbmFtZSA9IHhhc3ByaW50ZiAoIiVk LmFsaWFzLmV4YW1wbGUiLCB1bmlxdWUpOworKyAgICAgIHJlc29sdl9yZXNwb25zZV9hZGRfbmFt ZSAoYiwgbmV3X25hbWUpOworKyAgICAgIHJlc29sdl9yZXNwb25zZV9jbG9zZV9yZWNvcmQgKGIp OworKworKyAgICAgIG1heWJlX2luc2VydF9zaWcgKGIsIHFuYW1lKTsKKysKKysgICAgICBpZiAo cHJldmlvdXNfbmFtZSAhPSBxbmFtZSkKKysgICAgICAgIGZyZWUgKHByZXZpb3VzX25hbWUpOwor KyAgICAgIHByZXZpb3VzX25hbWUgPSBuZXdfbmFtZTsKKysgICAgfQorKworKyAgZm9yIChpbnQg dW5pcXVlID0gMDsgdW5pcXVlIDwgYWRkcmVzc2VzOyArK3VuaXF1ZSkKKysgICAgeworKyAgICAg IHJlc29sdl9yZXNwb25zZV9vcGVuX3JlY29yZCAoYiwgcHJldmlvdXNfbmFtZSwgcWNsYXNzLCBU X1BUUiwgNjApOworKyAgICAgIGNoYXIgKnB0ciA9IHhhc3ByaW50ZiAoInVuaXF1ZS0lZC5jbmFt ZXMtJXUuYWRkcmVzc2VzLSV1LmV4YW1wbGUiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5pcXVlLCBjbmFtZXMsIGFkZHJlc3Nlcyk7CisrICAgICAgcmVzb2x2X3Jlc3BvbnNlX2Fk ZF9uYW1lIChiLCBwdHIpOworKyAgICAgIGZyZWUgKHB0cik7CisrICAgICAgcmVzb2x2X3Jlc3Bv bnNlX2Nsb3NlX3JlY29yZCAoYik7CisrICAgIH0KKysKKysgIGlmIChwcmV2aW91c19uYW1lICE9 IHFuYW1lKQorKyAgICBmcmVlIChwcmV2aW91c19uYW1lKTsKKyt9CisrCisrLyogVXNlZCB0byBj aGVjayB0aGF0IGdldGhvc3RieWFkZHJfciBkb2VzIG5vdCB3cml0ZSBwYXN0IHRoZSBidWZmZXIK KysgICBlbmQuICAqLworK3N0YXRpYyBzdHJ1Y3Qgc3VwcG9ydF9uZXh0X3RvX2ZhdWx0IG50ZjsK KysKKysvKiBQZXJmb3JtIGEgZ2V0aG9zdGJ5YWRkciBjYWxsIGFuZCBjaGVjayB0aGUgcmVzdWx0 LiAgKi8KKytzdGF0aWMgdm9pZAorK2NoZWNrX2dldGhvc3RieWFkZHIgKGNvbnN0IGNoYXIgKmFk ZHJlc3MsIGNvbnN0IGNoYXIgKmV4cGVjdGVkKQorK3sKKysgIHVuc2lnbmVkIGNoYXIgYnl0ZXNb MTZdOworKyAgdW5zaWduZWQgaW50IGJ5dGVzbGVuOworKyAgaW50IGZhbWlseTsKKysgIGlmIChz dHJjaHIgKGFkZHJlc3MsICc6JykgIT0gTlVMTCkKKysgICAgeworKyAgICAgIGZhbWlseSA9IEFG X0lORVQ2OworKyAgICAgIGJ5dGVzbGVuID0gMTY7CisrICAgIH0KKysgIGVsc2UKKysgICAgewor KyAgICAgIGZhbWlseSA9IEFGX0lORVQ7CisrICAgICAgYnl0ZXNsZW4gPSA0OworKyAgICB9Cisr ICBURVNUX0NPTVBBUkUgKGluZXRfcHRvbiAoZmFtaWx5LCBhZGRyZXNzLCBieXRlcyksIDEpOwor KworKyAgc3RydWN0IGhvc3RlbnQgKmUgPSBnZXRob3N0YnlhZGRyIChieXRlcywgYnl0ZXNsZW4s IGZhbWlseSk7CisrICBjaGVja19ob3N0ZW50IChhZGRyZXNzLCBlLCBleHBlY3RlZCk7CisrCisr ICBpZiAoZSA9PSBOVUxMKQorKyAgICByZXR1cm47CisrCisrICAvKiBUcnkgZ2V0aG9zdGJ5YWRk cl9yIHdpdGggaW5jcmVhc2luZyBzaXplcyB1bnRpbCBzdWNjZXNzLiAgRmlyc3QKKysgICAgIGNv bXB1dGUgYSByZWFzb25hYmxlIG1pbmltdW0gYnVmZmVyIHNpemUsIHRvIGF2b2lkIG1hbnkgcG9p bnRsZXNzCisrICAgICBhdHRlbXB0cy4gICovCisrICBzaXplX3QgbWluaW11bV9zaXplID0gc3Ry bGVuIChlLT5oX25hbWUpOworKyAgZm9yIChpbnQgaSA9IDA7IGUtPmhfYWRkcl9saXN0W2ldICE9 IE5VTEw7ICsraSkKKysgICAgbWluaW11bV9zaXplICs9IGUtPmhfbGVuZ3RoICsgc2l6ZW9mIChj aGFyICopOworKyAgZm9yIChpbnQgaSA9IDA7IGUtPmhfYWxpYXNlc1tpXSAhPSBOVUxMOyArK2kp CisrICAgIG1pbmltdW1fc2l6ZSArPSBzdHJsZW4gKGUtPmhfYWxpYXNlc1tpXSkgKyAxICsgc2l6 ZW9mIChjaGFyICopOworKworKyAgLyogR3JhZHVhbGx5IGluY3JlYXNlIHRoZSBzaXplIHVudGls IHN1Y2Nlc3MuICAqLworKyAgZm9yIChzaXplX3Qgc2l6ZSA9IG1pbmltdW1fc2l6ZTsgc2l6ZSA8 IG50Zi5sZW5ndGg7ICsrc2l6ZSkKKysgICAgeworKyAgICAgIHN0cnVjdCBob3N0ZW50IHJlc3Vs dDsKKysgICAgICBpbnQgaGVycm5vOworKyAgICAgIGludCByZXQgPSBnZXRob3N0YnlhZGRyX3Ig KGJ5dGVzLCBieXRlc2xlbiwgZmFtaWx5LCAmcmVzdWx0LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG50Zi5idWZmZXIgKyBudGYubGVuZ3RoIC0gc2l6ZSwgc2l6ZSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZSwgJmhlcnJubyk7CisrICAgICAgaWYgKHJl dCA9PSBFUkFOR0UpCisrICAgICAgICAvKiBSZXRyeSB3aXRoIGxhcmdlciBzaXplLiAgKi8KKysg ICAgICAgIFRFU1RfQ09NUEFSRSAoaGVycm5vLCBORVREQl9JTlRFUk5BTCk7CisrICAgICAgZWxz ZSBpZiAocmV0ID09IDApCisrICAgICAgICB7CisrICAgICAgICAgVEVTVF9WRVJJRlkgKHNpemUg PiBtaW5pbXVtX3NpemUpOworKyAgICAgICAgIGNoZWNrX2hvc3RlbnQgKGFkZHJlc3MsIGUsIGV4 cGVjdGVkKTsKKysgICAgICAgICByZXR1cm47CisrICAgICAgICB9CisrICAgICAgZWxzZQorKyAg ICAgICAgRkFJTF9FWElUMSAoIlVuZXhwZWN0ZWQgZ2V0aG9zdGJ5YWRkcl9yIGZhaWx1cmU6ICVk IiwgcmV0KTsKKysgICAgfQorKworKyAgRkFJTF9FWElUMSAoImdldGhvc3RieWFkZHJfciBhbHdh eXMgZmFpbGVkIGZvcjogJXMiLCBhZGRyZXNzKTsKKyt9CisrCisrLyogUGVyZm9ybSBhIGdldG5h bWVpbmZvIGNhbGwgYW5kIGNoZWNrIHRoZSByZXN1bHQuICAqLworK3N0YXRpYyB2b2lkCisrY2hl Y2tfZ2V0bmFtZWluZm8gKGNvbnN0IGNoYXIgKmFkZHJlc3MsIGNvbnN0IGNoYXIgKmV4cGVjdGVk KQorK3sKKysgIHN0cnVjdCBzb2NrYWRkcl9pbiBzaW4gPSB7IH07CisrICBzdHJ1Y3Qgc29ja2Fk ZHJfaW42IHNpbjYgPSB7IH07CisrICB2b2lkICpzYTsKKysgIHNvY2tsZW5fdCBzYWxlbjsKKysg IGlmIChzdHJjaHIgKGFkZHJlc3MsICc6JykgIT0gTlVMTCkKKysgICAgeworKyAgICAgIHNpbjYu c2luNl9mYW1pbHkgPSBBRl9JTkVUNjsKKysgICAgICBURVNUX0NPTVBBUkUgKGluZXRfcHRvbiAo QUZfSU5FVDYsIGFkZHJlc3MsICZzaW42LnNpbjZfYWRkciksIDEpOworKyAgICAgIHNpbjYuc2lu Nl9wb3J0ID0gaHRvbnMgKDgwKTsKKysgICAgICBzYSA9ICZzaW42OworKyAgICAgIHNhbGVuID0g c2l6ZW9mIChzaW42KTsKKysgICAgfQorKyAgZWxzZQorKyAgICB7CisrICAgICAgc2luLnNpbl9m YW1pbHkgPSBBRl9JTkVUOworKyAgICAgIFRFU1RfQ09NUEFSRSAoaW5ldF9wdG9uIChBRl9JTkVU LCBhZGRyZXNzLCAmc2luLnNpbl9hZGRyKSwgMSk7CisrICAgICAgc2luLnNpbl9wb3J0ID0gaHRv bnMgKDgwKTsKKysgICAgICBzYSA9ICZzaW47CisrICAgICAgc2FsZW4gPSBzaXplb2YgKHNpbik7 CisrICAgIH0KKysKKysgIGNoYXIgaG9zdFs2NF07CisrICBjaGFyIHNlcnZpY2VbNjRdOworKyAg aW50IHJldCA9IGdldG5hbWVpbmZvIChzYSwgc2FsZW4sIGhvc3QsCisrICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVvZiAoaG9zdCksIHNlcnZpY2UsIHNpemVvZiAoc2VydmljZSksCisrICAg ICAgICAgICAgICAgICAgICAgICAgIE5JX05BTUVSRVFEIHwgTklfTlVNRVJJQ1NFUlYpOworKyAg c3dpdGNoIChyZXQpCisrICAgIHsKKysgICAgY2FzZSAwOgorKyAgICAgIFRFU1RfQ09NUEFSRV9T VFJJTkcgKGhvc3QsIGV4cGVjdGVkKTsKKysgICAgICBURVNUX0NPTVBBUkVfU1RSSU5HIChzZXJ2 aWNlLCAiODAiKTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBFQUlfU1lTVEVNOgorKyAgICAg IFRFU1RfQ09NUEFSRV9TVFJJTkcgKHN0cmVycm9yIChlcnJubyksIGV4cGVjdGVkKTsKKysgICAg ICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICBURVNUX0NPTVBBUkVfU1RSSU5HIChnYWlf c3RyZXJyb3IgKHJldCksIGV4cGVjdGVkKTsKKysgICAgfQorK30KKysKKytzdGF0aWMgaW50Cisr ZG9fdGVzdCAodm9pZCkKKyt7CisrICAvKiBTb21lIHJlYXNvbmFibHkgdXBwZXIgYm91bmQgZm9y IHRoZSBtYXhpbXVtIHJlc3BvbnNlIHNpemUuICAqLworKyAgbnRmID0gc3VwcG9ydF9uZXh0X3Rv X2ZhdWx0X2FsbG9jYXRlICg0MDk2KTsKKysKKysgIHN0cnVjdCByZXNvbHZfdGVzdCAqb2JqID0g cmVzb2x2X3Rlc3Rfc3RhcnQKKysgICAgKChzdHJ1Y3QgcmVzb2x2X3JlZGlyZWN0X2NvbmZpZykK KysgICAgIHsKKysgICAgICAgLnJlc3BvbnNlX2NhbGxiYWNrID0gcmVzcG9uc2UKKysgICAgIH0p OworKworKyAgZm9yIChpbnQgZG9faW5zZXJ0X3NpZyA9IDA7IGRvX2luc2VydF9zaWcgPCAyOyAr K2RvX2luc2VydF9zaWcpCisrICAgIHsKKysgICAgICBpbnNlcnRfc2lnID0gZG9faW5zZXJ0X3Np ZzsKKysKKysgICAgICAvKiBObyBQVFIgcmVjb3JkLCBSQ09ERT0wLiAgKi8KKysgICAgICBjaGVj a19nZXRob3N0YnlhZGRyICgiMTkyLjAuMi4wIiwgImVycm9yOiBOT19SRUNPVkVSWVxuIik7Cisr ICAgICAgY2hlY2tfZ2V0bmFtZWluZm8gKCIxOTIuMC4yLjAiLCAiTmFtZSBvciBzZXJ2aWNlIG5v dCBrbm93biIpOworKyAgICAgIGNoZWNrX2dldGhvc3RieWFkZHIgKCIxOTIuMC4yLjE2IiwgImVy cm9yOiBOT19SRUNPVkVSWVxuIik7CisrICAgICAgY2hlY2tfZ2V0bmFtZWluZm8gKCIxOTIuMC4y LjE2IiwgIk5hbWUgb3Igc2VydmljZSBub3Qga25vd24iKTsKKysgICAgICBjaGVja19nZXRob3N0 YnlhZGRyICgiMTkyLjAuMi4zMiIsICJlcnJvcjogTk9fUkVDT1ZFUllcbiIpOworKyAgICAgIGNo ZWNrX2dldG5hbWVpbmZvICgiMTkyLjAuMi4zMiIsICJOYW1lIG9yIHNlcnZpY2Ugbm90IGtub3du Iik7CisrICAgICAgY2hlY2tfZ2V0aG9zdGJ5YWRkciAoIjIwMDE6ZGI4OjoiLCAiZXJyb3I6IE5P X1JFQ09WRVJZXG4iKTsKKysgICAgICBjaGVja19nZXRuYW1laW5mbyAoIjIwMDE6ZGI4OjoiLCAi TmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93biIpOworKyAgICAgIGNoZWNrX2dldGhvc3RieWFkZHIg KCIyMDAxOmRiODo6MTAiLCAiZXJyb3I6IE5PX1JFQ09WRVJZXG4iKTsKKysgICAgICBjaGVja19n ZXRuYW1laW5mbyAoIjIwMDE6ZGI4OjoxMCIsICJOYW1lIG9yIHNlcnZpY2Ugbm90IGtub3duIik7 CisrICAgICAgY2hlY2tfZ2V0aG9zdGJ5YWRkciAoIjIwMDE6ZGI4OjoyMCIsICJlcnJvcjogTk9f UkVDT1ZFUllcbiIpOworKyAgICAgIGNoZWNrX2dldG5hbWVpbmZvICgiMjAwMTpkYjg6OjIwIiwg Ik5hbWUgb3Igc2VydmljZSBub3Qga25vd24iKTsKKysKKysgICAgICAvKiBObyBQVFIgcmVjb3Jk LCBOWERPTUFJTi4gICovCisrICAgICAgY2hlY2tfZ2V0aG9zdGJ5YWRkciAoIjE5Mi4wLjIuMTUi LCAiZXJyb3I6IEhPU1RfTk9UX0ZPVU5EXG4iKTsKKysgICAgICBjaGVja19nZXRuYW1laW5mbyAo IjE5Mi4wLjIuMTUiLCAiTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93biIpOworKyAgICAgIGNoZWNr X2dldGhvc3RieWFkZHIgKCIxOTIuMC4yLjMxIiwgImVycm9yOiBIT1NUX05PVF9GT1VORFxuIik7 CisrICAgICAgY2hlY2tfZ2V0bmFtZWluZm8gKCIxOTIuMC4yLjMxIiwgIk5hbWUgb3Igc2Vydmlj ZSBub3Qga25vd24iKTsKKysgICAgICBjaGVja19nZXRob3N0YnlhZGRyICgiMTkyLjAuMi40NyIs ICJlcnJvcjogSE9TVF9OT1RfRk9VTkRcbiIpOworKyAgICAgIGNoZWNrX2dldG5hbWVpbmZvICgi MTkyLjAuMi40NyIsICJOYW1lIG9yIHNlcnZpY2Ugbm90IGtub3duIik7CisrICAgICAgY2hlY2tf Z2V0aG9zdGJ5YWRkciAoIjIwMDE6ZGI4OjpmIiwgImVycm9yOiBIT1NUX05PVF9GT1VORFxuIik7 CisrICAgICAgY2hlY2tfZ2V0bmFtZWluZm8gKCIyMDAxOmRiODo6ZiIsICJOYW1lIG9yIHNlcnZp Y2Ugbm90IGtub3duIik7CisrICAgICAgY2hlY2tfZ2V0aG9zdGJ5YWRkciAoIjIwMDE6ZGI4Ojox ZiIsICJlcnJvcjogSE9TVF9OT1RfRk9VTkRcbiIpOworKyAgICAgIGNoZWNrX2dldG5hbWVpbmZv ICgiMjAwMTpkYjg6OjFmIiwgIk5hbWUgb3Igc2VydmljZSBub3Qga25vd24iKTsKKysgICAgICBj aGVja19nZXRob3N0YnlhZGRyICgiMjAwMTpkYjg6OjJmIiwgImVycm9yOiBIT1NUX05PVF9GT1VO RFxuIik7CisrICAgICAgY2hlY2tfZ2V0bmFtZWluZm8gKCIyMDAxOmRiODo6MmYiLCAiTmFtZSBv ciBzZXJ2aWNlIG5vdCBrbm93biIpOworKworKyAgICAgIC8qIEFjdHVhbCByZXNwb25zZSBkYXRh LiAgT25seSB0aGUgZmlyc3QgUFRSIHJlY29yZCBpcyByZXR1cm5lZC4gICovCisrICAgICAgY2hl Y2tfZ2V0aG9zdGJ5YWRkciAoIjE5Mi4wLjIuMSIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgIm5hbWU6IHVuaXF1ZS0wLmNuYW1lcy0wLmFkZHJlc3Nlcy0xLmV4YW1wbGVcbiIKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAiYWRkcmVzczogMTkyLjAuMi4xXG4iKTsKKysgICAgICBj aGVja19nZXRuYW1laW5mbyAoIjE5Mi4wLjIuMSIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICJ1bmlxdWUtMC5jbmFtZXMtMC5hZGRyZXNzZXMtMS5leGFtcGxlIik7CisrICAgICAgY2hlY2tf Z2V0aG9zdGJ5YWRkciAoIjE5Mi4wLjIuMTciLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICJuYW1lOiB1bmlxdWUtMC5jbmFtZXMtMS5hZGRyZXNzZXMtMS5leGFtcGxlXG4iCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgImFkZHJlc3M6IDE5Mi4wLjIuMTdcbiIpOworKyAgICAgIGNo ZWNrX2dldG5hbWVpbmZvICgiMTkyLjAuMi4xNyIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICJ1bmlxdWUtMC5jbmFtZXMtMS5hZGRyZXNzZXMtMS5leGFtcGxlIik7CisrICAgICAgY2hlY2tf Z2V0aG9zdGJ5YWRkciAoIjE5Mi4wLjIuMTgiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICJuYW1lOiB1bmlxdWUtMC5jbmFtZXMtMS5hZGRyZXNzZXMtMi5leGFtcGxlXG4iCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgImFkZHJlc3M6IDE5Mi4wLjIuMThcbiIpOworKyAgICAgIGNo ZWNrX2dldG5hbWVpbmZvICgiMTkyLjAuMi4xOCIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICJ1bmlxdWUtMC5jbmFtZXMtMS5hZGRyZXNzZXMtMi5leGFtcGxlIik7CisrICAgICAgY2hlY2tf Z2V0aG9zdGJ5YWRkciAoIjE5Mi4wLjIuMzMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICJuYW1lOiB1bmlxdWUtMC5jbmFtZXMtMi5hZGRyZXNzZXMtMS5leGFtcGxlXG4iCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgImFkZHJlc3M6IDE5Mi4wLjIuMzNcbiIpOworKyAgICAgIGNo ZWNrX2dldG5hbWVpbmZvICgiMTkyLjAuMi4zMyIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICJ1bmlxdWUtMC5jbmFtZXMtMi5hZGRyZXNzZXMtMS5leGFtcGxlIik7CisrICAgICAgY2hlY2tf Z2V0aG9zdGJ5YWRkciAoIjE5Mi4wLjIuMzQiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICJuYW1lOiB1bmlxdWUtMC5jbmFtZXMtMi5hZGRyZXNzZXMtMi5leGFtcGxlXG4iCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgImFkZHJlc3M6IDE5Mi4wLjIuMzRcbiIpOworKyAgICAgIGNo ZWNrX2dldG5hbWVpbmZvICgiMTkyLjAuMi4zNCIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICJ1bmlxdWUtMC5jbmFtZXMtMi5hZGRyZXNzZXMtMi5leGFtcGxlIik7CisrCisrICAgICAgLyog U2FtZSBmb3IgSVB2NiBhZGRyZXNzZXMuICAqLworKyAgICAgIGNoZWNrX2dldGhvc3RieWFkZHIg KCIyMDAxOmRiODo6MSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWU6IHVuaXF1 ZS0wLmNuYW1lcy0wLmFkZHJlc3Nlcy0xLmV4YW1wbGVcbiIKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAiYWRkcmVzczogMjAwMTpkYjg6OjFcbiIpOworKyAgICAgIGNoZWNrX2dldG5hbWVp bmZvICgiMjAwMTpkYjg6OjEiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAidW5pcXVlLTAu Y25hbWVzLTAuYWRkcmVzc2VzLTEuZXhhbXBsZSIpOworKyAgICAgIGNoZWNrX2dldGhvc3RieWFk ZHIgKCIyMDAxOmRiODo6MTEiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lOiB1 bmlxdWUtMC5jbmFtZXMtMS5hZGRyZXNzZXMtMS5leGFtcGxlXG4iCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgImFkZHJlc3M6IDIwMDE6ZGI4OjoxMVxuIik7CisrICAgICAgY2hlY2tfZ2V0 bmFtZWluZm8gKCIyMDAxOmRiODo6MTEiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAidW5p cXVlLTAuY25hbWVzLTEuYWRkcmVzc2VzLTEuZXhhbXBsZSIpOworKyAgICAgIGNoZWNrX2dldGhv c3RieWFkZHIgKCIyMDAxOmRiODo6MTIiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJu YW1lOiB1bmlxdWUtMC5jbmFtZXMtMS5hZGRyZXNzZXMtMi5leGFtcGxlXG4iCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgImFkZHJlc3M6IDIwMDE6ZGI4OjoxMlxuIik7CisrICAgICAgY2hl Y2tfZ2V0bmFtZWluZm8gKCIyMDAxOmRiODo6MTIiLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAidW5pcXVlLTAuY25hbWVzLTEuYWRkcmVzc2VzLTIuZXhhbXBsZSIpOworKyAgICAgIGNoZWNr X2dldGhvc3RieWFkZHIgKCIyMDAxOmRiODo6MjEiLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICJuYW1lOiB1bmlxdWUtMC5jbmFtZXMtMi5hZGRyZXNzZXMtMS5leGFtcGxlXG4iCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgImFkZHJlc3M6IDIwMDE6ZGI4OjoyMVxuIik7CisrICAg ICAgY2hlY2tfZ2V0bmFtZWluZm8gKCIyMDAxOmRiODo6MjEiLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAidW5pcXVlLTAuY25hbWVzLTIuYWRkcmVzc2VzLTEuZXhhbXBsZSIpOworKyAgICAg IGNoZWNrX2dldGhvc3RieWFkZHIgKCIyMDAxOmRiODo6MjIiLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICJuYW1lOiB1bmlxdWUtMC5jbmFtZXMtMi5hZGRyZXNzZXMtMi5leGFtcGxlXG4i CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgImFkZHJlc3M6IDIwMDE6ZGI4OjoyMlxuIik7 CisrICAgICAgY2hlY2tfZ2V0bmFtZWluZm8gKCIyMDAxOmRiODo6MjIiLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAidW5pcXVlLTAuY25hbWVzLTIuYWRkcmVzc2VzLTIuZXhhbXBsZSIpOwor KyAgICB9CisrCisrICByZXNvbHZfdGVzdF9lbmQgKG9iaik7CisrCisrICBzdXBwb3J0X25leHRf dG9fZmF1bHRfZnJlZSAoJm50Zik7CisrICByZXR1cm4gMDsKKyt9CisrCisrI2luY2x1ZGUgPHN1 cHBvcnQvdGVzdC1kcml2ZXIuYz4KK2RpZmYgLS1naXQgYS9yZXNvbHYvdHN0LXJlc29sdi1tYXli ZV9pbnNlcnRfc2lnLmggYi9yZXNvbHYvdHN0LXJlc29sdi1tYXliZV9pbnNlcnRfc2lnLmgKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi4wNTcyNTIyNWFmCistLS0gL2Rl di9udWxsCisrKysgYi9yZXNvbHYvdHN0LXJlc29sdi1tYXliZV9pbnNlcnRfc2lnLmgKK0BAIC0w LDAgKzEsMzIgQEAKKysvKiBDb2RlIHNuaXBwZXQgZm9yIG9wdGlvbmFsbHkgaW5zZXJ0aW5nIGln bm9yZWQgU0lHIHJlY29yZHMgaW4gcmVzb2x2ZXIgdGVzdHMuCisrICAgQ29weXJpZ2h0IChDKSAy MDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK KysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH TlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor KworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7 IGlmIG5vdCwgc2VlCisrICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisr CisrLyogU2V0IHRvIHRydWUgZm9yIGFuIGFsdGVybmF0aXZlIHBhc3MgdGhhdCBpbnNlcnRzIChp Z25vcmVkKSBTSUcKKysgICByZWNvcmRzLiAgVGhpcyBkb2VzIG5vdCBhbHRlciB0aGUgcmVzcG9u c2UsIHNvIHRoaXMgcHJvcGVydHkgaXMgbm90CisrICAgZW5jb2RlZCBpbiB0aGUgUU5BTUUuICBU aGUgdmFyaWFibGUgbmVlZHMgdG8gYmUgdm9sYXRpbGUgYmVjYXVzZQorKyAgIGxlYWYgYXR0cmli dXRlcyB0ZWxsIEdDQyB0aGF0IHRoZSByZXNwb25zZSBmdW5jdGlvbiBpcyBub3QKKysgICBjYWxs ZWQuICAqLworK3N0YXRpYyB2b2xhdGlsZSBib29sIGluc2VydF9zaWc7CisrCisrc3RhdGljIHZv aWQKKyttYXliZV9pbnNlcnRfc2lnIChzdHJ1Y3QgcmVzb2x2X3Jlc3BvbnNlX2J1aWxkZXIgKmIs IGNvbnN0IGNoYXIgKm93bmVyKQorK3sKKysgIHJlc29sdl9yZXNwb25zZV9vcGVuX3JlY29yZCAo Yiwgb3duZXIsIENfSU4sIFRfU0lHLCA2MCk7CisrICByZXNvbHZfcmVzcG9uc2VfYWRkX2RhdGEg KGIsICIiLCAxKTsKKysgIHJlc29sdl9yZXNwb25zZV9jbG9zZV9yZWNvcmQgKGIpOworK30KKy0t IAorMi4zOC4xCisKKworRnJvbSBiZmZjMzNlOTBlZDU3YTQ3ODZjNjc2ZGRhOTJkOTM1ZTM2MTNl MDMxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWlt ZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMzAgQXVnIDIwMjIgMTA6MDI6NDkgKzAyMDAKK1N1 YmplY3Q6IHJlc29sdjogQWRkIHRzdC1yZXNvbHYtYWxpYXNlcworCitSZXZpZXdlZC1ieTogU2lk ZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9yZz4KKyhjaGVycnkgcGlja2Vk IGZyb20gY29tbWl0IDg3YWE5OGFhODA2Mjc1NTNhNjZiZGNhZDI3MDFmZDYzMDc3MjM2NDUpCist LS0KKyByZXNvbHYvTWFrZWZpbGUgICAgICAgICAgICAgfCAgIDIgKworIHJlc29sdi90c3QtcmVz b2x2LWFsaWFzZXMuYyB8IDI1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK KyAyIGZpbGVzIGNoYW5nZWQsIDI1NiBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0 IHJlc29sdi90c3QtcmVzb2x2LWFsaWFzZXMuYworCitkaWZmIC0tZ2l0IGEvcmVzb2x2L01ha2Vm aWxlIGIvcmVzb2x2L01ha2VmaWxlCitpbmRleCA5OGIxMGQ5N2EwLi4wMDM4YmI3MDI4IDEwMDY0 NAorLS0tIGEvcmVzb2x2L01ha2VmaWxlCisrKysgYi9yZXNvbHYvTWFrZWZpbGUKK0BAIC04OSw2 ICs4OSw3IEBAIHRlc3RzICs9IFwKKyAgIHRzdC1uc19uYW1lX3B0b24gXAorICAgdHN0LXJlc19o Y29uZl9yZW9yZGVyIFwKKyAgIHRzdC1yZXNfaG5vayBcCisrICB0c3QtcmVzb2x2LWFsaWFzZXMg XAorICAgdHN0LXJlc29sdi1iYXNpYyBcCisgICB0c3QtcmVzb2x2LWJpbmFyeSBcCisgICB0c3Qt cmVzb2x2LWJ5YWRkciBcCitAQCAtMjU5LDYgKzI2MCw3IEBAICQob2JqcGZ4KXRzdC1yZXNvbHYt YWlfaWRuLm91dDogJChnZW4tbG9jYWxlcykKKyAkKG9ianBmeCl0c3QtcmVzb2x2LWFpX2lkbi1s YXRpbjEub3V0OiAkKGdlbi1sb2NhbGVzKQorICQob2JqcGZ4KXRzdC1yZXNvbHYtYWlfaWRuLW5v bGliaWRuMi5vdXQ6IFwKKyAgICQoZ2VuLWxvY2FsZXMpICQob2JqcGZ4KXRzdC1uby1saWJpZG4y LnNvCisrJChvYmpwZngpdHN0LXJlc29sdi1hbGlhc2VzOiAkKG9ianBmeClsaWJyZXNvbHYuc28g JChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCisgJChvYmpwZngpdHN0LXJlc29sdi1iYXNpYzogJChv YmpwZngpbGlicmVzb2x2LnNvICQoc2hhcmVkLXRocmVhZC1saWJyYXJ5KQorICQob2JqcGZ4KXRz dC1yZXNvbHYtYmluYXJ5OiAkKG9ianBmeClsaWJyZXNvbHYuc28gJChzaGFyZWQtdGhyZWFkLWxp YnJhcnkpCisgJChvYmpwZngpdHN0LXJlc29sdi1ieWFkZHI6ICQob2JqcGZ4KWxpYnJlc29sdi5z byAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKK2RpZmYgLS1naXQgYS9yZXNvbHYvdHN0LXJlc29s di1hbGlhc2VzLmMgYi9yZXNvbHYvdHN0LXJlc29sdi1hbGlhc2VzLmMKK25ldyBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi5iMjEyODIzYWEwCistLS0gL2Rldi9udWxsCisrKysg Yi9yZXNvbHYvdHN0LXJlc29sdi1hbGlhc2VzLmMKK0BAIC0wLDAgKzEsMjU0IEBACisrLyogVGVz dCBhbGlhcyBoYW5kbGluZyAobWFpbmx5IGZvciBnZXRob3N0YnluYW1lKS4KKysgICBDb3B5cmln aHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxl IGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor KyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysg ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMg TGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8KKysKKysjaW5jbHVkZSA8YXJyYXlfbGVuZ3RoLmg+CisrI2luY2x1ZGUgPGFycGEvaW5l dC5oPgorKyNpbmNsdWRlIDxuZXRkYi5oPgorKyNpbmNsdWRlIDxzdGRib29sLmg+CisrI2luY2x1 ZGUgPHN0ZGlvLmg+CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4K KysjaW5jbHVkZSA8c3VwcG9ydC9jaGVjay5oPgorKyNpbmNsdWRlIDxzdXBwb3J0L2NoZWNrX25z cy5oPgorKyNpbmNsdWRlIDxzdXBwb3J0L3Jlc29sdl90ZXN0Lmg+CisrI2luY2x1ZGUgPHN1cHBv cnQvc3VwcG9ydC5oPgorKworKyNpbmNsdWRlICJ0c3QtcmVzb2x2LW1heWJlX2luc2VydF9zaWcu aCIKKysKKysvKiBRTkFNRSBmb3JtYXQ6CisrCisrICAgYUFERFJFU1NFUy1jQ05BTUVTLmV4YW1w bGUubmV0CisrCisrICAgQ05BTUVTIGlzIHRoZSBsZW5ndGggb2YgdGhlIENOQU1FIGNoYWluLCBB RERSRVNTRVMgaXMgdGhlIG51bWJlciBvZgorKyAgIGFkZHJlc3NlcyBpbiB0aGUgcmVzcG9uc2Uu ICBUaGUgc3BlY2lhbCB2YWx1ZSAyNTUgbWVhbnMgdGhhdCB0aGVyZQorKyAgIGFyZSBubyBhZGRy ZXNzZXMsIGFuZCB0aGUgUkNPREUgaXMgTlhET01BSU4uICAqLworK3N0YXRpYyB2b2lkCisrcmVz cG9uc2UgKGNvbnN0IHN0cnVjdCByZXNvbHZfcmVzcG9uc2VfY29udGV4dCAqY3R4LAorKyAgICAg ICAgICBzdHJ1Y3QgcmVzb2x2X3Jlc3BvbnNlX2J1aWxkZXIgKmIsCisrICAgICAgICAgIGNvbnN0 IGNoYXIgKnFuYW1lLCB1aW50MTZfdCBxY2xhc3MsIHVpbnQxNl90IHF0eXBlKQorK3sKKysgIFRF U1RfQ09NUEFSRSAocWNsYXNzLCBDX0lOKTsKKysgIGlmIChxdHlwZSAhPSBUX0EpCisrICAgIFRF U1RfQ09NUEFSRSAocXR5cGUsIFRfQUFBQSk7CisrCisrICB1bnNpZ25lZCBpbnQgYWRkcmVzc2Vz LCBjbmFtZXM7CisrICBjaGFyICp0YWlsOworKyAgaWYgKHNzY2FuZiAocW5hbWUsICJhJXUtYyV1 JW1zIiwgJmFkZHJlc3NlcywgJmNuYW1lcywgJnRhaWwpID09IDMpCisrICAgIHsKKysgICAgICBp ZiAoc3RyY21wICh0YWlsLCAiLmV4YW1wbGUuY29tIikgPT0gMAorKyAgICAgICAgICB8fCBzdHJj bXAgKHRhaWwsICIuZXhhbXBsZS5uZXQuZXhhbXBsZS5uZXQiKSA9PSAwCisrICAgICAgICAgIHx8 IHN0cmNtcCAodGFpbCwgIi5leGFtcGxlLm5ldC5leGFtcGxlLmNvbSIpID09IDApCisrICAgICAg ICAvKiBUaGVzZSBvbmx5IGhhcHBlbiBhZnRlciBOWERPTUFJTi4gICovCisrICAgICAgICBURVNU X1ZFUklGWSAoYWRkcmVzc2VzID09IDI1NSk7CisrICAgICAgZWxzZSBpZiAoc3RyY21wICh0YWls LCAiLmV4YW1wbGUubmV0IikgIT0gMCkKKysgICAgICAgIEZBSUxfRVhJVDEgKCJpbnZhbGlkIFFO QU1FOiAlcyIsIHFuYW1lKTsKKysgICAgfQorKyAgZnJlZSAodGFpbCk7CisrCisrICBpbnQgcmNv ZGU7CisrICBpZiAoYWRkcmVzc2VzID09IDI1NSkKKysgICAgeworKyAgICAgIC8qIFNwZWNpYWwg Y2FzZTogVXNlIG5vIGFkZHJlc3NlcyB3aXRoIE5YRE9NQUlOIHJlc3BvbnNlLiAgKi8KKysgICAg ICByY29kZSA9IG5zX3Jfbnhkb21haW47CisrICAgICAgYWRkcmVzc2VzID0gMDsKKysgICAgfQor KyAgZWxzZQorKyAgICByY29kZSA9IDA7CisrCisrICBzdHJ1Y3QgcmVzb2x2X3Jlc3BvbnNlX2Zs YWdzIGZsYWdzID0geyAucmNvZGUgPSByY29kZSB9OworKyAgcmVzb2x2X3Jlc3BvbnNlX2luaXQg KGIsIGZsYWdzKTsKKysgIHJlc29sdl9yZXNwb25zZV9hZGRfcXVlc3Rpb24gKGIsIHFuYW1lLCBx Y2xhc3MsIHF0eXBlKTsKKysgIHJlc29sdl9yZXNwb25zZV9zZWN0aW9uIChiLCBuc19zX2FuKTsK KysgIG1heWJlX2luc2VydF9zaWcgKGIsIHFuYW1lKTsKKysKKysgIC8qIFByb3ZpZGUgdGhlIHJl cXVlc3RlZCBudW1iZXIgb2YgQ05BTUUgcmVjb3Jkcy4gICovCisrICBjaGFyICpwcmV2aW91c19u YW1lID0gKGNoYXIgKikgcW5hbWU7CisrICBmb3IgKGludCB1bmlxdWUgPSAwOyB1bmlxdWUgPCBj bmFtZXM7ICsrdW5pcXVlKQorKyAgICB7CisrICAgICAgcmVzb2x2X3Jlc3BvbnNlX29wZW5fcmVj b3JkIChiLCBwcmV2aW91c19uYW1lLCBxY2xhc3MsIFRfQ05BTUUsIDYwKTsKKysgICAgICBjaGFy ICpuZXdfbmFtZSA9IHhhc3ByaW50ZiAoIiVkLmFsaWFzLmV4YW1wbGUiLCB1bmlxdWUpOworKyAg ICAgIHJlc29sdl9yZXNwb25zZV9hZGRfbmFtZSAoYiwgbmV3X25hbWUpOworKyAgICAgIHJlc29s dl9yZXNwb25zZV9jbG9zZV9yZWNvcmQgKGIpOworKworKyAgICAgIG1heWJlX2luc2VydF9zaWcg KGIsIHFuYW1lKTsKKysKKysgICAgICBpZiAocHJldmlvdXNfbmFtZSAhPSBxbmFtZSkKKysgICAg ICAgIGZyZWUgKHByZXZpb3VzX25hbWUpOworKyAgICAgIHByZXZpb3VzX25hbWUgPSBuZXdfbmFt ZTsKKysgICAgfQorKworKyAgZm9yIChpbnQgdW5pcXVlID0gMDsgdW5pcXVlIDwgYWRkcmVzc2Vz OyArK3VuaXF1ZSkKKysgICAgeworKyAgICAgIHJlc29sdl9yZXNwb25zZV9vcGVuX3JlY29yZCAo YiwgcHJldmlvdXNfbmFtZSwgcWNsYXNzLCBxdHlwZSwgNjApOworKworKyAgICAgIGlmIChxdHlw ZSA9PSBUX0EpCisrICAgICAgICB7CisrICAgICAgICAgIGNoYXIgaXB2NFs0XSA9IHsxOTIsIDAs IDIsIDEgKyB1bmlxdWV9OworKyAgICAgICAgICByZXNvbHZfcmVzcG9uc2VfYWRkX2RhdGEgKGIs ICZpcHY0LCBzaXplb2YgKGlwdjQpKTsKKysgICAgICAgIH0KKysgICAgICBlbHNlIGlmIChxdHlw ZSA9PSBUX0FBQUEpCisrICAgICAgICB7CisrICAgICAgICAgIGNoYXIgaXB2NlsxNl0gPQorKyAg ICAgICAgICAgIHsKKysgICAgICAgICAgICAgIDB4MjAsIDB4MDEsIDB4ZCwgMHhiOCwgMCwgMCwg MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKKysgICAgICAgICAgICAgIDEgKyB1bmlxdWUKKysg ICAgICAgICAgICB9OworKyAgICAgICAgICByZXNvbHZfcmVzcG9uc2VfYWRkX2RhdGEgKGIsICZp cHY2LCBzaXplb2YgKGlwdjYpKTsKKysgICAgICAgIH0KKysgICAgICByZXNvbHZfcmVzcG9uc2Vf Y2xvc2VfcmVjb3JkIChiKTsKKysgICAgfQorKworKyAgaWYgKHByZXZpb3VzX25hbWUgIT0gcW5h bWUpCisrICAgIGZyZWUgKHByZXZpb3VzX25hbWUpOworK30KKysKKytzdGF0aWMgY2hhciAqCisr bWFrZV9xbmFtZSAoYm9vbCBkb19zZWFyY2gsIGludCBjbmFtZXMsIGludCBhZGRyZXNzZXMpCisr eworKyAgcmV0dXJuIHhhc3ByaW50ZiAoImElZC1jJWQlcyIsCisrICAgICAgICAgICAgICAgICAg ICBhZGRyZXNzZXMsIGNuYW1lcywgZG9fc2VhcmNoID8gIiIgOiAiLmV4YW1wbGUubmV0Iik7Cisr fQorKworK3N0YXRpYyB2b2lkCisrY2hlY2tfY25hbWVzX2ZhaWx1cmUgKGludCBhZiwgYm9vbCBk b19zZWFyY2gsIGludCBjbmFtZXMsIGludCBhZGRyZXNzZXMpCisreworKyAgY2hhciAqcW5hbWUg PSBtYWtlX3FuYW1lIChkb19zZWFyY2gsIGNuYW1lcywgYWRkcmVzc2VzKTsKKysKKysgIHN0cnVj dCBob3N0ZW50ICplOworKyAgaWYgKGFmID09IEFGX1VOU1BFQykKKysgICAgZSA9IGdldGhvc3Ri eW5hbWUgKHFuYW1lKTsKKysgIGVsc2UKKysgICAgZSA9IGdldGhvc3RieW5hbWUyIChxbmFtZSwg YWYpOworKworKyAgaWYgKGFkZHJlc3NlcyA9PSAwKQorKyAgICBjaGVja19ob3N0ZW50IChxbmFt ZSwgZSwgImVycm9yOiBOT19SRUNPVkVSWVxuIik7CisrICBlbHNlCisrICAgIGNoZWNrX2hvc3Rl bnQgKHFuYW1lLCBlLCAiZXJyb3I6IEhPU1RfTk9UX0ZPVU5EXG4iKTsKKysKKysgIGZyZWUgKHFu YW1lKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytjaGVjayAoaW50IGFmLCBib29sIGRvX3NlYXJj aCwgaW50IGNuYW1lcywgaW50IGFkZHJlc3NlcykKKyt7CisrICBjaGFyICpxbmFtZSA9IG1ha2Vf cW5hbWUgKGRvX3NlYXJjaCwgY25hbWVzLCBhZGRyZXNzZXMpOworKyAgY2hhciAqZnFkbiA9IG1h a2VfcW5hbWUgKGZhbHNlLCBjbmFtZXMsIGFkZHJlc3Nlcyk7CisrCisrICBzdHJ1Y3QgaG9zdGVu dCAqZTsKKysgIGlmIChhZiA9PSBBRl9VTlNQRUMpCisrICAgIGUgPSBnZXRob3N0YnluYW1lIChx bmFtZSk7CisrICBlbHNlCisrICAgIGUgPSBnZXRob3N0YnluYW1lMiAocW5hbWUsIGFmKTsKKysg IGlmIChlID09IE5VTEwpCisrICAgIEZBSUxfRVhJVDEgKCJ1bmV4cGVjdGVkIGZhaWx1cmUgZm9y ICVkLCAlZCwgJWQiLCBhZiwgY25hbWVzLCBhZGRyZXNzZXMpOworKworKyAgaWYgKGFmID09IEFG X1VOU1BFQyB8fCBhZiA9PSBBRl9JTkVUKQorKyAgICB7CisrICAgICAgVEVTVF9DT01QQVJFIChl LT5oX2FkZHJ0eXBlLCBBRl9JTkVUKTsKKysgICAgICBURVNUX0NPTVBBUkUgKGUtPmhfbGVuZ3Ro LCA0KTsKKysgICAgfQorKyAgZWxzZQorKyAgICB7CisrICAgICAgVEVTVF9DT01QQVJFIChlLT5o X2FkZHJ0eXBlLCBBRl9JTkVUNik7CisrICAgICAgVEVTVF9DT01QQVJFIChlLT5oX2xlbmd0aCwg MTYpOworKyAgICB9CisrCisrICBmb3IgKGludCBpID0gMDsgaSA8IGFkZHJlc3NlczsgKytpKQor KyAgICB7CisrICAgICAgY2hhciBpcHY0WzRdID0gezE5MiwgMCwgMiwgMSArIGl9OworKyAgICAg IGNoYXIgaXB2NlsxNl0gPQorKyAgICAgICAgeyAweDIwLCAweDAxLCAweGQsIDB4YjgsIDAsIDAs IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEgKyBpIH07CisrICAgICAgY2hhciAqZXhwZWN0 ZWQgPSBlLT5oX2FkZHJ0eXBlID09IEFGX0lORVQgPyBpcHY0IDogaXB2NjsKKysgICAgICBURVNU X0NPTVBBUkVfQkxPQiAoZS0+aF9hZGRyX2xpc3RbaV0sIGUtPmhfbGVuZ3RoLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICBleHBlY3RlZCwgZS0+aF9sZW5ndGgpOworKyAgICB9CisrICBURVNU X1ZFUklGWSAoZS0+aF9hZGRyX2xpc3RbYWRkcmVzc2VzXSA9PSBOVUxMKTsKKysKKysKKysgIGlm IChjbmFtZXMgPT0gMCkKKysgICAgeworKyAgICAgIC8qIFFOQU1FIGlzIGZ1bGx5IHF1YWxpZmll ZC4gICovCisrICAgICAgVEVTVF9DT01QQVJFX1NUUklORyAoZS0+aF9uYW1lLCBmcWRuKTsKKysg ICAgICBURVNUX1ZFUklGWSAoZS0+aF9hbGlhc2VzWzBdID09IE5VTEwpOworKyAgICB9CisrICBl bHNlCisrICAgeworKyAgICAgLyogRnVsbHktcXVhbGlmaWVkIFFOQU1FIGlzIGRlbW90ZWQgdG8g YW4gYWxpYXNlcy4gICovCisrICAgICBURVNUX0NPTVBBUkVfU1RSSU5HIChlLT5oX2FsaWFzZXNb MF0sIGZxZG4pOworKworKyAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gY25hbWVzOyArK2kpCisr ICAgICAgIHsKKysgICAgICAgICBjaGFyICpleHBlY3RlZCA9IHhhc3ByaW50ZiAoIiVkLmFsaWFz LmV4YW1wbGUiLCBpIC0gMSk7CisrICAgICAgICAgaWYgKGkgPT0gY25hbWVzKQorKyAgICAgICAg ICAgVEVTVF9DT01QQVJFX1NUUklORyAoZS0+aF9uYW1lLCBleHBlY3RlZCk7CisrICAgICAgICAg ZWxzZQorKyAgICAgICAgICAgVEVTVF9DT01QQVJFX1NUUklORyAoZS0+aF9hbGlhc2VzW2ldLCBl eHBlY3RlZCk7CisrICAgICAgICAgZnJlZSAoZXhwZWN0ZWQpOworKyAgICAgICB9CisrICAgICBU RVNUX1ZFUklGWSAoZS0+aF9hbGlhc2VzW2NuYW1lc10gPT0gTlVMTCk7CisrICAgfQorKworKyAg ZnJlZSAoZnFkbik7CisrICBmcmVlIChxbmFtZSk7CisrfQorKworK3N0YXRpYyBpbnQKKytkb190 ZXN0ICh2b2lkKQorK3sKKysgIHN0cnVjdCByZXNvbHZfdGVzdCAqb2JqID0gcmVzb2x2X3Rlc3Rf c3RhcnQKKysgICAgKChzdHJ1Y3QgcmVzb2x2X3JlZGlyZWN0X2NvbmZpZykKKysgICAgIHsKKysg ICAgICAgLnJlc3BvbnNlX2NhbGxiYWNrID0gcmVzcG9uc2UsCisrICAgICAgIC5zZWFyY2ggPSB7 ICJleGFtcGxlLm5ldCIsICJleGFtcGxlLmNvbSIgfSwKKysgICAgIH0pOworKworKyAgc3RhdGlj IGNvbnN0IGludCBmYW1pbGllc1tdID0geyBBRl9VTlNQRUMsIEFGX0lORVQsIEFGX0lORVQ2IH07 CisrCisrICBmb3IgKGludCBkb19pbnNlcnRfc2lnID0gMDsgZG9faW5zZXJ0X3NpZyA8IDI7ICsr ZG9faW5zZXJ0X3NpZykKKysgICAgeworKyAgICAgIGluc2VydF9zaWcgPSBkb19pbnNlcnRfc2ln OworKworKyAgICAgIC8qIElmIGRvX3NlYXJjaCBpcyB0cnVlLCBhIGJhcmUgaG9zdCBuYW1lIChm b3IgZXhhbXBsZSwgYTEtYzEpCisrICAgICAgICAgaXMgdXNlZC4gIFRoaXMgZXhlcmNpc2VzIHNl YXJjaCBwYXRoIHByb2Nlc3NpbmcgYW5kIEZRRE4KKysgICAgICAgICBxdWFsaWZpY2F0aW9uLiAg Ki8KKysgICAgICBmb3IgKGludCBkb19zZWFyY2ggPSAwOyBkb19zZWFyY2ggPCAyOyArK2RvX3Nl YXJjaCkKKysgICAgICAgIGZvciAoY29uc3QgaW50ICpwYWYgPSBmYW1pbGllczsgcGFmICE9IGFy cmF5X2VuZCAoZmFtaWxpZXMpOyArK3BhZikKKysgICAgICAgICAgeworKyAgICAgICAgICAgIGZv ciAoaW50IGNuYW1lcyA9IDA7IGNuYW1lcyA8PSAxMDA7ICsrY25hbWVzKQorKyAgICAgICAgICAg ICAgeworKyAgICAgICAgICAgICAgICBjaGVja19jbmFtZXNfZmFpbHVyZSAoKnBhZiwgZG9fc2Vh cmNoLCBjbmFtZXMsIDApOworKyAgICAgICAgICAgICAgICAvKiBOb3cgd2l0aCBOWERPTUFJTiBy ZXNwb25zZXMuICAqLworKyAgICAgICAgICAgICAgICBjaGVja19jbmFtZXNfZmFpbHVyZSAoKnBh ZiwgZG9fc2VhcmNoLCBjbmFtZXMsIDI1NSk7CisrICAgICAgICAgICAgICB9CisrCisrICAgICAg ICAgICAgZm9yIChpbnQgY25hbWVzID0gMDsgY25hbWVzIDw9IDEwOyArK2NuYW1lcykKKysgICAg ICAgICAgICAgIGZvciAoaW50IGFkZHJlc3NlcyA9IDE7IGFkZHJlc3NlcyA8PSAxMDsgKythZGRy ZXNzZXMpCisrICAgICAgICAgICAgICAgIGNoZWNrICgqcGFmLCBkb19zZWFyY2gsIGNuYW1lcywg YWRkcmVzc2VzKTsKKysKKysgICAgICAgICAgICAvKiBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlv biBpcyBsaW1pdGVkIHRvIDQ3IGFsaWFzZXMuCisrICAgICAgICAgICAgICAgQWRkcmVzc2VzIGRv IG5vdCBoYXZlIHN1Y2ggYSBsaW1pdC4gICovCisrICAgICAgICAgICAgY2hlY2sgKCpwYWYsIGRv X3NlYXJjaCwgNDcsIDYwKTsKKysgICAgICAgICAgfQorKyAgICB9CisrCisrICByZXNvbHZfdGVz dF9lbmQgKG9iaik7CisrCisrICByZXR1cm4gMDsKKyt9CisrCisrI2luY2x1ZGUgPHN1cHBvcnQv dGVzdC1kcml2ZXIuYz4KKy0tIAorMi4zOC4xCisKKworRnJvbSAzYzliNDAwNGUyZGNjYzljYTJh Y2UwNzhhMDEwNmY5ZDY4MmZkMWEwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxv cmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMzAgQXVnIDIwMjIg MTA6MDI6NDkgKzAyMDAKK1N1YmplY3Q6IHJlc29sdjogQWRkIGludGVybmFsIF9fcmVzX2JpbmFy eV9obm9rIGZ1bmN0aW9uCisKK0R1cmluZyBwYWNrYWdlIHBhcnNpbmcsIG9ubHkgdGhlIGJpbmFy eSByZXByZXNlbnRhdGlvbiBpcyBhdmFpbGFibGUsCithbmQgaXQgaXMgY29udmVuaWVudCB0byBj aGVjayB0aGF0IGRpcmVjdGx5IGZvciBjb25mb3JtYW5jZSB3aXRoIGhvc3QKK25hbWUgcmVxdWly ZW1lbnRzLgorCitSZXZpZXdlZC1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3Vy Y2V3YXJlLm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGM3OTMyN2JmMDBhNGJlNmQ2 MDI1OTIyN2FjYzc4ZWY4MGVhZDM2MjIpCistLS0KKyBpbmNsdWRlL3Jlc29sdi5oICAgICAgICAg ICB8ICAzICsrKworIHJlc29sdi9yZXMtbmFtZS1jaGVja2luZy5jIHwgMTQgKysrKysrKysrLS0t LS0KKyAyIGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisK K2RpZmYgLS1naXQgYS9pbmNsdWRlL3Jlc29sdi5oIGIvaW5jbHVkZS9yZXNvbHYuaAoraW5kZXgg MzU5MGI2ZjQ5Ni4uNGRiYmFjMzgwMCAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvcmVzb2x2LmgKKysr KyBiL2luY2x1ZGUvcmVzb2x2LmgKK0BAIC03MCw1ICs3MCw4IEBAIGxpYmNfaGlkZGVuX3Byb3Rv IChfX2xpYmNfcmVzX25hbWVpbnF1ZXJ5KQorIGV4dGVybiBfX3R5cGVvZiAoX19yZXNfcXVlcmll c21hdGNoKSBfX2xpYmNfcmVzX3F1ZXJpZXNtYXRjaDsKKyBsaWJjX2hpZGRlbl9wcm90byAoX19s aWJjX3Jlc19xdWVyaWVzbWF0Y2gpCisgCisrLyogVmFyaWFudCBvZiByZXNfaG5vayB3aGljaCBv cGVyYXRlcyBvbiBiaW5hcnkgKGJ1dCB1bmNvbXByZXNzZWQpIG5hbWVzLiAgKi8KKytib29sIF9f cmVzX2JpbmFyeV9obm9rIChjb25zdCB1bnNpZ25lZCBjaGFyICpkbikgYXR0cmlidXRlX2hpZGRl bjsKKysKKyAjIGVuZGlmIC8qIF9SRVNPTFZfSF8gJiYgIV9JU09NQUMgKi8KKyAjZW5kaWYKK2Rp ZmYgLS1naXQgYS9yZXNvbHYvcmVzLW5hbWUtY2hlY2tpbmcuYyBiL3Jlc29sdi9yZXMtbmFtZS1j aGVja2luZy5jCitpbmRleCAwN2E0MTJkOGZmLi4yMTNlZGNlYWYzIDEwMDY0NAorLS0tIGEvcmVz b2x2L3Jlcy1uYW1lLWNoZWNraW5nLmMKKysrKyBiL3Jlc29sdi9yZXMtbmFtZS1jaGVja2luZy5j CitAQCAtMTM4LDYgKzEzOCwxMiBAQCBiaW5hcnlfbGVhZGluZ19kYXNoIChjb25zdCB1bnNpZ25l ZCBjaGFyICpkbikKKyAgIHJldHVybiBkblswXSA+IDAgJiYgZG5bMV0gPT0gJy0nOworIH0KKyAK Kytib29sCisrX19yZXNfYmluYXJ5X2hub2sgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRuKQorK3sK KysgIHJldHVybiAhYmluYXJ5X2xlYWRpbmdfZGFzaCAoZG4pICYmIGJpbmFyeV9obm9rIChkbik7 CisrfQorKworIC8qIFJldHVybiAxIGlmIHJlc19obm9rIGlzIGEgdmFsaWQgaG9zdCBuYW1lLiAg TGFiZWxzIG11c3Qgb25seQorICAgIGNvbnRhaW4gWzAtOWEtekEtWl8tXSBjaGFyYWN0ZXJzLCBh bmQgdGhlIG5hbWUgbXVzdCBub3Qgc3RhcnQgd2l0aAorICAgIGEgJy0nLiAgVGhlIGxhdHRlciBp cyB0byBhdm9pZCBjb25mdXNpb24gd2l0aCBwcm9ncmFtIG9wdGlvbnMuICAqLworQEAgLTE0NSwx MSArMTUxLDkgQEAgaW50CisgX19fcmVzX2hub2sgKGNvbnN0IGNoYXIgKmRuKQorIHsKKyAgIHVu c2lnbmVkIGNoYXIgYnVmW05TX01BWENETkFNRV07CistICBpZiAoIXByaW50YWJsZV9zdHJpbmcg KGRuKQorLSAgICAgIHx8IF9fbnNfbmFtZV9wdG9uIChkbiwgYnVmLCBzaXplb2YgKGJ1ZikpIDwg MAorLSAgICAgIHx8IGJpbmFyeV9sZWFkaW5nX2Rhc2ggKGJ1ZikpCistICAgIHJldHVybiAwOwor LSAgcmV0dXJuIGJpbmFyeV9obm9rIChidWYpOworKyAgcmV0dXJuIChwcmludGFibGVfc3RyaW5n IChkbikKKysJICAmJiBfX25zX25hbWVfcHRvbiAoZG4sIGJ1Ziwgc2l6ZW9mIChidWYpKSA+PSAw CisrCSAgJiYgX19yZXNfYmluYXJ5X2hub2sgKGJ1ZikpOworIH0KKyB2ZXJzaW9uZWRfc3ltYm9s IChsaWJjLCBfX19yZXNfaG5vaywgcmVzX2hub2ssIEdMSUJDXzJfMzQpOworIHZlcnNpb25lZF9z eW1ib2wgKGxpYmMsIF9fX3Jlc19obm9rLCBfX2xpYmNfcmVzX2hub2ssIEdMSUJDX1BSSVZBVEUp OworLS0gCisyLjM4LjEKKworCitGcm9tIDIwZWM0MGE1MWQzYThlOTQ4N2Y0MGRjOTM1MmQxNThk ZWYyM2VhOGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8 ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAzMCBBdWcgMjAyMiAxMDowMjo0OSArMDIw MAorU3ViamVjdDogcmVzb2x2OiBBZGQgdGhlIF9fbnNfc2FtZWJpbmFyeW5hbWUgZnVuY3Rpb24K KworRHVyaW5nIHBhY2tldCBwYXJzaW5nLCBvbmx5IHRoZSBiaW5hcnkgbmFtZSBpcyBhdmFpbGFi bGUuICBJZiB0aGUgbmFtZQorZXF1YWxpdHkgY2hlY2sgaXMgcGVyZm9ybWVkIGJlZm9yZSBjb252 ZXJzaW9uIHRvIHRleHQsIHdlIGNhbiBzb21ldGltZXMKK3NraXAgdGhlIGxhc3Qgc3RlcC4KKwor UmV2aWV3ZWQtYnk6IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+ CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzOTQwODVhMzRkMjVhNTE1MTMwMTlhNGRjNDEx YWNkMzUyN2ZiZDMzKQorLS0tCisgaW5jbHVkZS9hcnBhL25hbWVzZXIuaCAgICAgICAgIHwgIDYg KysrKworIHJlc29sdi9NYWtlZmlsZSAgICAgICAgICAgICAgICB8ICA1ICsrKworIHJlc29sdi9u c19zYW1lYmluYXJ5bmFtZS5jICAgICB8IDU1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KworIHJlc29sdi90c3QtbnNfc2FtZWJpbmFyeW5hbWUuYyB8IDYyICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKKyA0IGZpbGVzIGNoYW5nZWQsIDEyOCBpbnNlcnRpb25zKCspCisg Y3JlYXRlIG1vZGUgMTAwNjQ0IHJlc29sdi9uc19zYW1lYmluYXJ5bmFtZS5jCisgY3JlYXRlIG1v ZGUgMTAwNjQ0IHJlc29sdi90c3QtbnNfc2FtZWJpbmFyeW5hbWUuYworCitkaWZmIC0tZ2l0IGEv aW5jbHVkZS9hcnBhL25hbWVzZXIuaCBiL2luY2x1ZGUvYXJwYS9uYW1lc2VyLmgKK2luZGV4IDUz ZjFkYmM3YzMuLmJiMWRlZGUxODcgMTAwNjQ0CistLS0gYS9pbmNsdWRlL2FycGEvbmFtZXNlci5o CisrKysgYi9pbmNsdWRlL2FycGEvbmFtZXNlci5oCitAQCAtNTUsNiArNTUsMTIgQEAgaW50IF9f bnNfbmFtZV9udG9wIChjb25zdCB1bnNpZ25lZCBjaGFyICosIGNoYXIgKiwgc2l6ZV90KSBfX1RI Uk9XOworIGludCBfX25zX25hbWVfdW5wYWNrIChjb25zdCB1bnNpZ25lZCBjaGFyICosIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKiwKKyAJCSAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiwgdW5zaWdu ZWQgY2hhciAqLCBzaXplX3QpIF9fVEhST1c7CisgCisrLyogTGlrZSBuc19zYW1lbmFtZSwgYnV0 IGZvciB1bmNvbXByZXNzZWQgYmluYXJ5IG5hbWVzLiAgUmV0dXJuIHRydWUKKysgICBpZiB0aGUg dHdvIGFyZ3VtZW50cyBjb21wYXJlIGFyZSBlcXVhbCBhcyBjYXNlLWluc2Vuc2l0aXZlIGRvbWFp bgorKyAgIG5hbWVzLiAgKi8KKytfQm9vbCBfX25zX3NhbWViaW5hcnluYW1lIChjb25zdCB1bnNp Z25lZCBjaGFyICosIGNvbnN0IHVuc2lnbmVkIGNoYXIgKikKKysgIGF0dHJpYnV0ZV9oaWRkZW47 CisrCisgI2RlZmluZSBuc19tc2dfZ2V0ZmxhZyhoYW5kbGUsIGZsYWcpIFwKKyAgICgoKGhhbmRs ZSkuX2ZsYWdzICYgX25zX2ZsYWdkYXRhW2ZsYWddLm1hc2spID4+IF9uc19mbGFnZGF0YVtmbGFn XS5zaGlmdCkKKyAKK2RpZmYgLS1naXQgYS9yZXNvbHYvTWFrZWZpbGUgYi9yZXNvbHYvTWFrZWZp bGUKK2luZGV4IDAwMzhiYjcwMjguLmVjNjFhZDA3YmQgMTAwNjQ0CistLS0gYS9yZXNvbHYvTWFr ZWZpbGUKKysrKyBiL3Jlc29sdi9NYWtlZmlsZQorQEAgLTQ2LDYgKzQ2LDcgQEAgcm91dGluZXMg Oj0gXAorICAgbnNfbmFtZV9za2lwIFwKKyAgIG5zX25hbWVfdW5jb21wcmVzcyBcCisgICBuc19u YW1lX3VucGFjayBcCisrICBuc19zYW1lYmluYXJ5bmFtZSBcCisgICBuc19zYW1lbmFtZSBcCisg ICBuc2FwX2FkZHIgXAorICAgbnNzX2Ruc19mdW5jdGlvbnMgXAorQEAgLTEwNiw2ICsxMDcsMTAg QEAgdGVzdHMgKz0gXAorIHRlc3RzLWludGVybmFsICs9IHRzdC1yZXNvbHYtdHhuaWQtY29sbGlz aW9uCisgdGVzdHMtc3RhdGljICs9IHRzdC1yZXNvbHYtdHhuaWQtY29sbGlzaW9uCisgCisrIyBM aWtld2lzZSBmb3IgX19uc19zYW1lYmluYXJ5bmFtZS4KKyt0ZXN0cy1pbnRlcm5hbCArPSB0c3Qt bnNfc2FtZWJpbmFyeW5hbWUKKyt0ZXN0cy1zdGF0aWMgKz0gdHN0LW5zX3NhbWViaW5hcnluYW1l CisrCisgIyBUaGVzZSB0ZXN0cyBuZWVkIGxpYmRsLgorIGlmZXEgKHllcywkKGJ1aWxkLXNoYXJl ZCkpCisgdGVzdHMgKz0gXAorZGlmZiAtLWdpdCBhL3Jlc29sdi9uc19zYW1lYmluYXJ5bmFtZS5j IGIvcmVzb2x2L25zX3NhbWViaW5hcnluYW1lLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCAwMDAwMDAwMDAwLi45YTQ3ZDhlOTdhCistLS0gL2Rldi9udWxsCisrKysgYi9yZXNvbHYvbnNf c2FtZWJpbmFyeW5hbWUuYworQEAgLTAsMCArMSw1NSBAQAorKy8qIENvbXBhcmUgdHdvIGJpbmFy eSBkb21haW4gbmFtZXMgZm9yIHF1YWxpdHkuCisrICAgQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBH TlUgQyBMaWJyYXJ5LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJz aW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwg c2VlCisrICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1 ZGUgPGFycGEvbmFtZXNlci5oPgorKyNpbmNsdWRlIDxzdGRib29sLmg+CisrCisrLyogQ29udmVy dCBBU0NJSSBsZXR0ZXJzIHRvIHVwcGVyIGNhc2UuICAqLworK3N0YXRpYyBpbmxpbmUgaW50Cisr YXNjaWlfdG91cHBlciAodW5zaWduZWQgY2hhciBjaCkKKyt7CisrICBpZiAoY2ggPj0gJ2EnICYm IGNoIDw9ICd6JykKKysgICAgcmV0dXJuIGNoIC0gJ2EnICsgJ0EnOworKyAgZWxzZQorKyAgICBy ZXR1cm4gY2g7CisrfQorKworK2Jvb2wKKytfX25zX3NhbWViaW5hcnluYW1lIChjb25zdCB1bnNp Z25lZCBjaGFyICphLCBjb25zdCB1bnNpZ25lZCBjaGFyICpiKQorK3sKKysgIHdoaWxlICgqYSAh PSAwICYmICpiICE9IDApCisrICAgIHsKKysgICAgICBpZiAoKmEgIT0gKmIpCisrICAgICAgICAv KiBEaWZmZXJlbnQgbGFiZWwgbGVuZ3RoLiAgKi8KKysgICAgICAgIHJldHVybiBmYWxzZTsKKysg ICAgICBpbnQgbGFiZWxsZW4gPSAqYTsKKysgICAgICArK2E7CisrICAgICAgKytiOworKyAgICAg IGZvciAoaW50IGkgPSAwOyBpIDwgbGFiZWxsZW47ICsraSkKKysgICAgICAgIHsKKysgICAgICAg ICAgaWYgKCphICE9ICpiICYmIGFzY2lpX3RvdXBwZXIgKCphKSAhPSBhc2NpaV90b3VwcGVyICgq YikpCisrICAgICAgICAgICAgLyogRGlmZmVyZW50IGNoYXJhY3RlciBpbiBsYWJlbC4gICovCisr ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworKyAgICAgICAgICArK2E7CisrICAgICAgICAgICsr YjsKKysgICAgICAgIH0KKysgICAgfQorKworKyAgLyogTWF0Y2ggaWYgYm90aCBuYW1lcyBhcmUg YXQgdGhlIHJvb3QgbGFiZWwuICAqLworKyAgcmV0dXJuICphID09IDAgJiYgKmIgPT0gMDsKKyt9 CitkaWZmIC0tZ2l0IGEvcmVzb2x2L3RzdC1uc19zYW1lYmluYXJ5bmFtZS5jIGIvcmVzb2x2L3Rz dC1uc19zYW1lYmluYXJ5bmFtZS5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAw MDAwMC4uYjA2YWM2MTBiNAorLS0tIC9kZXYvbnVsbAorKysrIGIvcmVzb2x2L3RzdC1uc19zYW1l YmluYXJ5bmFtZS5jCitAQCAtMCwwICsxLDYyIEBACisrLyogVGVzdCB0aGUgX19uc19zYW1lYmlu YXJ5bmFtZSBmdW5jdGlvbi4KKysgICBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJh cnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9m IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKwor KyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAg IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8 aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5jbHVkZSA8YXJwYS9u YW1lc2VyLmg+CisrI2luY2x1ZGUgPGFycmF5X2xlbmd0aC5oPgorKyNpbmNsdWRlIDxzdGRib29s Lmg+CisrI2luY2x1ZGUgPHN0ZGlvLmg+CisrI2luY2x1ZGUgPHN1cHBvcnQvY2hlY2suaD4KKysK KysvKiBGaXJzdCBjaGFyYWN0ZXIgZGVub3RlcyB0aGUgY29tcGFyaXNvbiBncm91cDogQWxsIG5h bWVzIHdpdGggdGhlCisrICAgc2FtZSBmaXJzdCBjaGFyYWN0ZXIgYXJlIGV4cGVjdGVkIHRvIGNv bXBhcmUgZXF1YWwuICAqLworK3N0YXRpYyBjb25zdCBjaGFyICpjb25zdCBjYXNlc1tdID0KKysg IHsKKysgICAgIiAiLAorKyAgICAiMVwwMDFhIiwgIjFcMDAxQSIsCisrICAgICIyXDAwMmFiIiwg IjJcMDAyYUIiLCAiMlwwMDJBYiIsICIyXDAwMkFCIiwKKysgICAgIjNcMDAxYVwwMDJhYiIsICIz XDAwMUFcMDAyYWIiLAorKyAgICAid1wwMDN3d3dcMDA3ZXhhbXBsZVwwMDNjb20iLCAid1wwMDNX d3dcMDA3RXhhbXBsZVwwMDNDb20iLAorKyAgICAid1wwMDNXV1dcMDA3RVhBTVBMRVwwMDNDT00i LAorKyAgICAiV1wwMDNXV1ciLCAiV1wwMDN3d3ciLAorKyAgfTsKKysKKytzdGF0aWMgaW50Cisr ZG9fdGVzdCAodm9pZCkKKyt7CisrICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5X2xlbmd0aCAo Y2FzZXMpOyArK2kpCisrICAgIGZvciAoaW50IGogPSAwOyBqIDwgYXJyYXlfbGVuZ3RoIChjYXNl cyk7ICsraikKKysgICAgICB7CisrICAgICAgICB1bnNpZ25lZCBjaGFyICphID0gKHVuc2lnbmVk IGNoYXIgKikgJmNhc2VzW2ldWzFdOworKyAgICAgICAgdW5zaWduZWQgY2hhciAqYiA9ICh1bnNp Z25lZCBjaGFyICopICZjYXNlc1tqXVsxXTsKKysgICAgICAgIGJvb2wgYWN0dWFsID0gX19uc19z YW1lYmluYXJ5bmFtZSAoYSwgYik7CisrICAgICAgICBib29sIGV4cGVjdGVkID0gY2FzZXNbaV1b MF0gPT0gY2FzZXNbal1bMF07CisrICAgICAgICBpZiAoYWN0dWFsICE9IGV4cGVjdGVkKQorKyAg ICAgICAgICB7CisrICAgICAgICAgICAgY2hhciBhMVtOU19NQVhETkFNRV07CisrICAgICAgICAg ICAgVEVTVF9WRVJJRlkgKG5zX25hbWVfbnRvcCAoYSwgYTEsIHNpemVvZiAoYTEpKSA+IDApOwor KyAgICAgICAgICAgIGNoYXIgYjFbTlNfTUFYRE5BTUVdOworKyAgICAgICAgICAgIFRFU1RfVkVS SUZZIChuc19uYW1lX250b3AgKGIsIGIxLCBzaXplb2YgKGIxKSkgPiAwKTsKKysgICAgICAgICAg ICBwcmludGYgKCJlcnJvcjogXCIlc1wiIFwiJXNcIjogZXhwZWN0ZWQgJXNcbiIsCisrICAgICAg ICAgICAgICAgICAgICBhMSwgYjEsIGV4cGVjdGVkID8gImVxdWFsIiA6ICJ1bnF1ZWFsIik7Cisr ICAgICAgICAgICAgc3VwcG9ydF9yZWNvcmRfZmFpbHVyZSAoKTsKKysgICAgICAgICAgfQorKyAg ICAgIH0KKysgIHJldHVybiAwOworK30KKysKKysjaW5jbHVkZSA8c3VwcG9ydC90ZXN0LWRyaXZl ci5jPgorLS0gCisyLjM4LjEKKworCitGcm9tIGFkYjY5ZjhmZmU4M2RiNWQ0NzU4NjhiNDI5OTZi YzcwZGU4Y2ZmNzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1l ciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAzMCBBdWcgMjAyMiAxMDowMjo0OSAr MDIwMAorU3ViamVjdDogcmVzb2x2OiBBZGQgaW50ZXJuYWwgX19uc19uYW1lX2xlbmd0aF91bmNv bXByZXNzZWQgZnVuY3Rpb24KKworVGhpcyBmdW5jdGlvbiBpcyB1c2VmdWwgZm9yIGNoZWNraW5n IHRoYXQgdGhlIHF1ZXN0aW9uIG5hbWUgaXMKK3VuY29tcHJlc3NlZCAoYXMgaXQgc2hvdWxkIGJl KS4KKworUmV2aWV3ZWQtYnk6IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2Fy ZS5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA3OGIxYTRmMGU0OTA2NGU1ZGZiNjg2 YzdjZDg3YmQ0ZGYyNjQwYjI5KQorLS0tCisgaW5jbHVkZS9hcnBhL25hbWVzZXIuaCAgICAgICAg ICAgICAgICAgICB8ICAgOCArKworIHJlc29sdi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDUgKworIHJlc29sdi9uc19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQuYyAgICAg fCAgNzIgKysrKysrKysrKysrCisgcmVzb2x2L3RzdC1uc19uYW1lX2xlbmd0aF91bmNvbXByZXNz ZWQuYyB8IDEzNSArKysrKysrKysrKysrKysrKysrKysrKworIDQgZmlsZXMgY2hhbmdlZCwgMjIw IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgcmVzb2x2L25zX25hbWVfbGVuZ3Ro X3VuY29tcHJlc3NlZC5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHJlc29sdi90c3QtbnNfbmFtZV9s ZW5ndGhfdW5jb21wcmVzc2VkLmMKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXJwYS9uYW1lc2Vy LmggYi9pbmNsdWRlL2FycGEvbmFtZXNlci5oCitpbmRleCBiYjFkZWRlMTg3Li42ZTQ4MDhmMDBk IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9hcnBhL25hbWVzZXIuaAorKysrIGIvaW5jbHVkZS9hcnBh L25hbWVzZXIuaAorQEAgLTk1LDUgKzk1LDEzIEBAIGxpYmNfaGlkZGVuX3Byb3RvIChfX25zX25h bWVfdW5wYWNrKQorIGV4dGVybiBfX3R5cGVvZiAobnNfc2FtZW5hbWUpIF9fbGliY19uc19zYW1l bmFtZTsKKyBsaWJjX2hpZGRlbl9wcm90byAoX19saWJjX25zX3NhbWVuYW1lKQorIAorKy8qIFBh Y2tldCBwYXJzZXIgaGVscGVyIGZ1bmN0aW9ucy4gICovCisrCisrLyogVmVyaWZ5IHRoYXQgUCBw b2ludHMgdG8gYW4gdW5jb21wcmVzc2VkIGRvbWFpbiBuYW1lIGluIHdpcmUgZm9ybWF0LgorKyAg IE9uIHN1Y2Nlc3MsIHJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBlbmNvZGVkIG5hbWUsIGluY2x1 ZGluZyB0aGUKKysgICB0ZXJtaW5hdGluZyBudWxsIGJ5dGUuICBPbiBmYWlsdXJlLCByZXR1cm4g LTEgYW5kIHNldCBlcnJuby4gIEVPTQorKyAgIG11c3QgcG9pbnQgb25lIHBhc3QgdGhlIGxhc3Qg Ynl0ZSBpbiB0aGUgcGFja2V0LiAgKi8KKytpbnQgX19uc19uYW1lX2xlbmd0aF91bmNvbXByZXNz ZWQgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnAsCisrCQkJCSAgIGNvbnN0IHVuc2lnbmVkIGNoYXIg KmVvbSkgYXR0cmlidXRlX2hpZGRlbjsKKyAjIGVuZGlmIC8qICFfSVNPTUFDICovCisgI2VuZGlm CitkaWZmIC0tZ2l0IGEvcmVzb2x2L01ha2VmaWxlIGIvcmVzb2x2L01ha2VmaWxlCitpbmRleCBl YzYxYWQwN2JkLi5iZjI4ODI1ZjYwIDEwMDY0NAorLS0tIGEvcmVzb2x2L01ha2VmaWxlCisrKysg Yi9yZXNvbHYvTWFrZWZpbGUKK0BAIC00MCw2ICs0MCw3IEBAIHJvdXRpbmVzIDo9IFwKKyAgIGlu ZXRfcHRvbiBcCisgICBuc19tYWtlY2Fub24gXAorICAgbnNfbmFtZV9jb21wcmVzcyBcCisrICBu c19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQgXAorICAgbnNfbmFtZV9udG9wIFwKKyAgIG5zX25h bWVfcGFjayBcCisgICBuc19uYW1lX3B0b24gXAorQEAgLTExMSw2ICsxMTIsMTAgQEAgdGVzdHMt c3RhdGljICs9IHRzdC1yZXNvbHYtdHhuaWQtY29sbGlzaW9uCisgdGVzdHMtaW50ZXJuYWwgKz0g dHN0LW5zX3NhbWViaW5hcnluYW1lCisgdGVzdHMtc3RhdGljICs9IHRzdC1uc19zYW1lYmluYXJ5 bmFtZQorIAorKyMgTGlrZXdpc2UgZm9yIF9fbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkLgor K3Rlc3RzLWludGVybmFsICs9IHRzdC1uc19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQKKyt0ZXN0 cy1zdGF0aWMgKz0gdHN0LW5zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZAorKworICMgVGhlc2Ug dGVzdHMgbmVlZCBsaWJkbC4KKyBpZmVxICh5ZXMsJChidWlsZC1zaGFyZWQpKQorIHRlc3RzICs9 IFwKK2RpZmYgLS1naXQgYS9yZXNvbHYvbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkLmMgYi9y ZXNvbHYvbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwMDAwLi41MTI5NmI0N2VmCistLS0gL2Rldi9udWxsCisrKysgYi9yZXNv bHYvbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkLmMKK0BAIC0wLDAgKzEsNzIgQEAKKysvKiBT a2lwIG92ZXIgYW4gdW5jb21wcmVzc2VkIG5hbWUgaW4gd2lyZSBmb3JtYXQuCisrICAgQ29weXJp Z2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5 IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1v ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK KysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisr ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBD IExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCisrCisrI2luY2x1ZGUgPGFycGEvbmFtZXNlci5oPgorKyNpbmNsdWRlIDxlcnJuby5o PgorKyNpbmNsdWRlIDxzdGRib29sLmg+CisrCisraW50CisrX19uc19uYW1lX2xlbmd0aF91bmNv bXByZXNzZWQgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnAsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICplb20pCisreworKyAgY29uc3QgdW5zaWdu ZWQgY2hhciAqc3RhcnQgPSBwOworKworKyAgd2hpbGUgKHRydWUpCisrICAgIHsKKysgICAgICBp ZiAocCA9PSBlb20pCisrICAgICAgICB7CisrICAgICAgICAgIC8qIFRydW5jYXRlZCBwYWNrZXQ6 IG5vIHJvb20gZm9yIGxhYmVsIGxlbmd0aC4gICovCisrICAgICAgICAgIF9fc2V0X2Vycm5vIChF TVNHU0laRSk7CisrICAgICAgICAgIHJldHVybiAtMTsKKysgICAgICAgIH0KKysKKysgICAgICB1 bnNpZ25lZCBjaGFyIGIgPSAqcDsKKysgICAgICArK3A7CisrICAgICAgaWYgKGIgPT0gMCkKKysg ICAgICAgIHsKKysgICAgICAgICAgLyogUm9vdCBsYWJlbC4gICovCisrICAgICAgICAgIHNpemVf dCBsZW5ndGggPSBwIC0gc3RhcnQ7CisrICAgICAgICAgIGlmIChsZW5ndGggPiBOU19NQVhDRE5B TUUpCisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgLyogRG9tYWluIG5hbWUgdG9vIGxv bmcuICAqLworKyAgICAgICAgICAgICAgX19zZXRfZXJybm8gKEVNU0dTSVpFKTsKKysgICAgICAg ICAgICAgIHJldHVybiAtMTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgIHJldHVybiBsZW5n dGg7CisrICAgICAgICB9CisrCisrICAgICAgaWYgKGIgPD0gNjMpCisrICAgICAgICB7CisrICAg ICAgICAgIC8qIFJlZ3VsYXIgbGFiZWwuICAqLworKyAgICAgICAgICBpZiAoYiA8PSBlb20gLSBw KQorKyAgICAgICAgICAgIHAgKz0gYjsKKysgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgIHsK KysgICAgICAgICAgICAgIC8qIFRydW5jYXRlZCBwYWNrZXQ6IGxhYmVsIGluY29tcGxldGUuICAq LworKyAgICAgICAgICAgICAgX19zZXRfZXJybm8gKEVNU0dTSVpFKTsKKysgICAgICAgICAgICAg IHJldHVybiAtMTsKKysgICAgICAgICAgICB9CisrICAgICAgICB9CisrICAgICAgZWxzZQorKyAg ICAgICAgeworKyAgICAgICAgICAvKiBDb21wcmVzc2lvbiByZWZlcmVuY2Ugb3IgY29ycnVwdGVk IGxhYmVsIGxlbmd0aC4gICovCisrICAgICAgICAgIF9fc2V0X2Vycm5vIChFTVNHU0laRSk7Cisr ICAgICAgICAgIHJldHVybiAtMTsKKysgICAgICAgIH0KKysgICAgfQorK30KK2RpZmYgLS1naXQg YS9yZXNvbHYvdHN0LW5zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZC5jIGIvcmVzb2x2L3RzdC1u c19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDAwMDAwMDAwMDAuLmM0YTI5MDRkYjcKKy0tLSAvZGV2L251bGwKKysrKyBiL3Jlc29sdi90c3Qt bnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkLmMKK0BAIC0wLDAgKzEsMTM1IEBACisrLyogVGVz dCBfX25zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZC4KKysgICBDb3B5cmlnaHQgKEMpIDIwMjIg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg dGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAg IHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor KyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisr ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYg bm90LCBzZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysj aW5jbHVkZSA8YXJwYS9uYW1lc2VyLmg+CisrI2luY2x1ZGUgPGFycmF5X2xlbmd0aC5oPgorKyNp bmNsdWRlIDxlcnJuby5oPgorKyNpbmNsdWRlIDxzdGRpby5oPgorKyNpbmNsdWRlIDxzdXBwb3J0 L2NoZWNrLmg+CisrI2luY2x1ZGUgPHN1cHBvcnQvbmV4dF90b19mYXVsdC5oPgorKworKy8qIFJl ZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBiYXNlZCBvbiBvdGhlciBidWlsZGluZyBibG9ja3MuICAq LworK3N0YXRpYyBpbnQKKytyZWZlcmVuY2VfbGVuZ3RoIChjb25zdCB1bnNpZ25lZCBjaGFyICpw LCBjb25zdCB1bnNpZ25lZCBjaGFyICplb20pCisreworKyAgdW5zaWduZWQgY2hhciBidWZbTlNf TUFYQ0ROQU1FXTsKKysgIGludCBuID0gX19uc19uYW1lX3VucGFjayAocCwgZW9tLCBwLCBidWYs IHNpemVvZiAoYnVmKSk7CisrICBpZiAobiA8IDApCisrICAgIHJldHVybiBuOworKyAgY29uc3Qg dW5zaWduZWQgY2hhciAqcSA9IGJ1ZjsKKysgIGlmIChfX25zX25hbWVfc2tpcCAoJnEsIGFycmF5 X2VuZCAoYnVmKSkgPCAwKQorKyAgICByZXR1cm4gLTE7CisrICBpZiAocSAtIGJ1ZiAhPSBuKQor KyAgICAvKiBDb21wcmVzc2VkIG5hbWUuICAqLworKyAgICByZXR1cm4gLTE7CisrICByZXR1cm4g bjsKKyt9CisrCisrc3RhdGljIGludAorK2RvX3Rlc3QgKHZvaWQpCisreworKyAgeworKyAgICB1 bnNpZ25lZCBjaGFyIGJ1ZltdID0geyAzLCAndycsICd3JywgJ3cnLCAwLCAwLCAwIH07CisrICAg IFRFU1RfQ09NUEFSRSAocmVmZXJlbmNlX2xlbmd0aCAoYnVmLCBhcnJheV9lbmQgKGJ1ZikpLCBz aXplb2YgKGJ1ZikgLSAyKTsKKysgICAgVEVTVF9DT01QQVJFIChfX25zX25hbWVfbGVuZ3RoX3Vu Y29tcHJlc3NlZCAoYnVmLCBhcnJheV9lbmQgKGJ1ZikpLAorKyAgICAgICAgICAgICAgICAgIHNp emVvZiAoYnVmKSAtIDIpOworKyAgICBURVNUX0NPTVBBUkUgKHJlZmVyZW5jZV9sZW5ndGggKGFy cmF5X2VuZCAoYnVmKSAtIDEsIGFycmF5X2VuZCAoYnVmKSksIDEpOworKyAgICBURVNUX0NPTVBB UkUgKF9fbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkIChhcnJheV9lbmQgKGJ1ZikgLSAxLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheV9l bmQgKGJ1ZikpLCAxKTsKKysgICAgYnVmWzRdICA9IDB4YzA7ICAgICAgICAgICAgIC8qIEZvcndh cmQgY29tcHJlc3Npb24gcmVmZXJlbmNlLiAgKi8KKysgICAgYnVmWzVdICA9IDB4MDY7CisrICAg IFRFU1RfQ09NUEFSRSAocmVmZXJlbmNlX2xlbmd0aCAoYnVmLCBhcnJheV9lbmQgKGJ1ZikpLCAt MSk7CisrICAgIFRFU1RfQ09NUEFSRSAoX19uc19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQgKGJ1 ZiwgYXJyYXlfZW5kIChidWYpKSwgLTEpOworKyAgfQorKworKyAgc3RydWN0IHN1cHBvcnRfbmV4 dF90b19mYXVsdCBudGYgPSBzdXBwb3J0X25leHRfdG9fZmF1bHRfYWxsb2NhdGUgKDMwMCk7Cisr CisrICAvKiBCdWZmZXIgcmVnaW9uIHdpdGggYWxsIHBvc3NpYmxlIGJ5dGVzIGF0IHN0YXJ0IGFu ZCBlbmQuICAqLworKyAgZm9yIChpbnQgbGVuZ3RoID0gMTsgbGVuZ3RoIDw9IDMwMDsgKytsZW5n dGgpCisrICAgIHsKKysgICAgICB1bnNpZ25lZCBjaGFyICplbmQgPSAodW5zaWduZWQgY2hhciAq KSBudGYuYnVmZmVyICsgbnRmLmxlbmd0aDsKKysgICAgICB1bnNpZ25lZCBjaGFyICpzdGFydCA9 IGVuZCAtIGxlbmd0aDsKKysgICAgICBtZW1zZXQgKHN0YXJ0LCAnWCcsIGxlbmd0aCk7CisrICAg ICAgZm9yIChpbnQgZmlyc3QgPSAwOyBmaXJzdCA8PSAyNTU7ICsrZmlyc3QpCisrICAgICAgICB7 CisrICAgICAgICAgICpzdGFydCA9IGZpcnN0OworKyAgICAgICAgICBmb3IgKGludCBsYXN0ID0g MDsgbGFzdCA8PSAyNTU7ICsrbGFzdCkKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICBz dGFydFtsZW5ndGggLSAxXSA9IGxhc3Q7CisrICAgICAgICAgICAgICBURVNUX0NPTVBBUkUgKHJl ZmVyZW5jZV9sZW5ndGggKHN0YXJ0LCBlbmQpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBfX25zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZCAoc3RhcnQsIGVuZCkpOworKyAgICAgICAg ICAgIH0KKysgICAgICAgIH0KKysgICAgfQorKworKyAgLyogUG9vciBtYW4ncyBmdXp6IHRlc3Rp bmc6IHBhdGNoIHR3byBieXRlcy4gICAqLworKyAgeworKyAgICB1bnNpZ25lZCBjaGFyIHJlZltd ID0KKysgICAgICB7CisrICAgICAgICA3LCAnZScsICd4JywgJ2EnLCAnbScsICdwJywgJ2wnLCAn ZScsIDMsICduJywgJ2UnLCAndCcsIDAsIDAsIDAKKysgICAgICB9OworKyAgICBURVNUX0NPTVBB UkUgKHJlZmVyZW5jZV9sZW5ndGggKHJlZiwgYXJyYXlfZW5kIChyZWYpKSwgMTMpOworKyAgICBU RVNUX0NPTVBBUkUgKF9fbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkIChyZWYsIGFycmF5X2Vu ZCAocmVmKSksIDEzKTsKKysKKysgICAgaW50IGdvb2QgPSAwOworKyAgICBpbnQgYmFkID0gMDsK KysgICAgZm9yIChpbnQgbGVuZ3RoID0gMTsgbGVuZ3RoIDw9IHNpemVvZiAocmVmKTsgKytsZW5n dGgpCisrICAgICAgeworKyAgICAgICAgdW5zaWduZWQgY2hhciAqZW5kID0gKHVuc2lnbmVkIGNo YXIgKikgbnRmLmJ1ZmZlciArIG50Zi5sZW5ndGg7CisrICAgICAgICB1bnNpZ25lZCBjaGFyICpz dGFydCA9IGVuZCAtIGxlbmd0aDsKKysgICAgICAgIG1lbWNweSAoc3RhcnQsIHJlZiwgbGVuZ3Ro KTsKKysKKysgICAgICAgIGZvciAoaW50IHBhdGNoMV9wb3MgPSAwOyBwYXRjaDFfcG9zIDwgbGVu Z3RoOyArK3BhdGNoMV9wb3MpCisrICAgICAgICAgIHsKKysgICAgICAgICAgICBmb3IgKGludCBw YXRjaDFfdmFsdWUgPSAwOyBwYXRjaDFfdmFsdWUgPD0gMjU1OyArK3BhdGNoMV92YWx1ZSkKKysg ICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgc3RhcnRbcGF0Y2gxX3Bvc10gPSBwYXRj aDFfdmFsdWU7CisrICAgICAgICAgICAgICAgIGZvciAoaW50IHBhdGNoMl9wb3MgPSAwOyBwYXRj aDJfcG9zIDwgbGVuZ3RoOyArK3BhdGNoMl9wb3MpCisrICAgICAgICAgICAgICAgICAgeworKyAg ICAgICAgICAgICAgICAgICAgZm9yIChpbnQgcGF0Y2gyX3ZhbHVlID0gMDsgcGF0Y2gyX3ZhbHVl IDw9IDI1NTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgKytwYXRjaDJfdmFsdWUpCisrICAg ICAgICAgICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFtwYXRj aDJfcG9zXSA9IHBhdGNoMl92YWx1ZTsKKysgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZXhw ZWN0ZWQgPSByZWZlcmVuY2VfbGVuZ3RoIChzdGFydCwgZW5kKTsKKysgICAgICAgICAgICAgICAg ICAgICAgICBlcnJubyA9IEVJTlZBTDsKKysgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWN0 dWFsCisrICAgICAgICAgICAgICAgICAgICAgICAgICA9ICBfX25zX25hbWVfbGVuZ3RoX3VuY29t cHJlc3NlZCAoc3RhcnQsIGVuZCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdHVh bCA+IDApCisrICAgICAgICAgICAgICAgICAgICAgICAgICArK2dvb2Q7CisrICAgICAgICAgICAg ICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgeworKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBURVNUX0NPTVBBUkUgKGVycm5vLCBFTVNHU0laRSk7CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsrYmFkOworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAgIFRFU1RfQ09NUEFSRSAoZXhwZWN0ZWQsIGFj dHVhbCk7CisrICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgIHN0 YXJ0W3BhdGNoMl9wb3NdID0gcmVmW3BhdGNoMl9wb3NdOworKyAgICAgICAgICAgICAgICAgIH0K KysgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICBzdGFydFtwYXRjaDFfcG9zXSA9IHJlZltw YXRjaDFfcG9zXTsKKysgICAgICAgICAgfQorKyAgICAgIH0KKysgICAgcHJpbnRmICgiaW5mbzog cGF0Y2hlZCBpbnB1dHMgd2l0aCBzdWNjZXNzOiAlZFxuIiwgZ29vZCk7CisrICAgIHByaW50ZiAo ImluZm86IHBhdGNoZWQgaW5wdXRzIHdpdGggZmFpbHVyZTogJWRcbiIsIGJhZCk7CisrICB9Cisr CisrICBzdXBwb3J0X25leHRfdG9fZmF1bHRfZnJlZSAoJm50Zik7CisrICByZXR1cm4gMDsKKyt9 CisrCisrI2luY2x1ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4KKy0tIAorMi4zOC4xCisKKwor RnJvbSBmMGU5NjU3MDY3MjQwYjhiMTA1YzZkNThkNWRhOWRjOTI2ZjJmMGVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4K K0RhdGU6IFR1ZSwgMzAgQXVnIDIwMjIgMTA6MDI6NDkgKzAyMDAKK1N1YmplY3Q6IHJlc29sdjog QWRkIEROUyBwYWNrZXQgcGFyc2luZyBoZWxwZXJzIGdlYXJlZCB0b3dhcmRzIHdpcmUgZm9ybWF0 CisKK1RoZSBwdWJsaWMgcGFyc2VyIGZ1bmN0aW9ucyBhcm91bmQgdGhlIG5zX3JyIHJlY29yZCB0 eXBlIHByb2R1Y2UKK3RleHR1YWwgZG9tYWluIG5hbWVzLCBidXQgdXN1YWxseSwgdGhpcyBpcyBu b3Qgd2hhdCB3ZSBuZWVkIHdoaWxlCitwYXJzaW5nIEROUyBwYWNrZXRzIHdpdGhpbiBnbGliYy4g IFRoaXMgY29tbWl0IGFkZHMgdHdvIG5ldyBoZWxwZXIKK2Z1bmN0aW9ucywgX19uc19ycl9jdXJz b3JfaW5pdCBhbmQgX19uc19ycl9jdXJzb3JfbmV4dCwgZm9yIHdyaXRpbmcKK3BhY2tldCBwYXJz ZXJzLCBhbmQgc3RydWN0IG5zX3JyX2N1cnNvciwgc3RydWN0IG5zX3JyX3dpcmUgYXMKK3N1cHBv cnRpbmcgdHlwZXMuCisKK0luIHRoZW9yeSwgaXQgaXMgcG9zc2libGUgdG8gYXZvaWQgY29weWlu ZyB0aGUgb3duZXIgbmFtZQoraW50byB0aGUgcm5hbWUgZmllbGQgaW4gX19uc19ycl9jdXJzb3Jf bmV4dCwgYnV0IHRoaXMgd291bGQgbmVlZAorbW9yZSBmdW5jdGlvbnMgdGhhdCB3b3JrIG9uIGNv bXByZXNzZWQgbmFtZXMuCisKK0V2ZW50dWFsbHksIF9fcmVzX2NvbnRleHRfc2VuZCBjb3VsZCBi ZSBlbmhhbmNlZCB0byBwcmVzZXJ2ZSB0aGUKK3Jlc3VsdCBvZiB0aGUgcGFja2V0IHBhcnNpbmcg dGhhdCBpcyBuZWNlc3NhcnkgZm9yIG1hdGNoaW5nIHRoZQoraW5jb21pbmcgVURQIHBhY2tldHMs IHNvIHRoYXQgdGhpcyB3b3JrcyBkb2VzIG5vdCBoYXZlIHRvIGJlIGRvbmUKK3R3aWNlLgorCitS ZXZpZXdlZC1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9yZz4K KyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDg1N2M4OTBkOWI0MmM1MGM4YTk0Yjc2ZDQ3ZDRh NjFhYjZkMmY0OWMpCistLS0KKyBpbmNsdWRlL2FycGEvbmFtZXNlci5oICAgICB8ICA5MiArKysr KysrKysrKysrKysKKyByZXNvbHYvTWFrZWZpbGUgICAgICAgICAgICB8ICAgNiArCisgcmVzb2x2 L25zX3JyX2N1cnNvcl9pbml0LmMgfCAgNjIgKysrKysrKysrKworIHJlc29sdi9uc19ycl9jdXJz b3JfbmV4dC5jIHwgIDc0ICsrKysrKysrKysrKworIHJlc29sdi90c3QtbnNfcnJfY3Vyc29yLmMg IHwgMjI3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyA1IGZpbGVzIGNo YW5nZWQsIDQ2MSBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHJlc29sdi9uc19y cl9jdXJzb3JfaW5pdC5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHJlc29sdi9uc19ycl9jdXJzb3Jf bmV4dC5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHJlc29sdi90c3QtbnNfcnJfY3Vyc29yLmMKKwor ZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXJwYS9uYW1lc2VyLmggYi9pbmNsdWRlL2FycGEvbmFtZXNl ci5oCitpbmRleCA2ZTQ4MDhmMDBkLi5jMjdlNzg4NmI3IDEwMDY0NAorLS0tIGEvaW5jbHVkZS9h cnBhL25hbWVzZXIuaAorKysrIGIvaW5jbHVkZS9hcnBhL25hbWVzZXIuaAorQEAgLTEwMyw1ICsx MDMsOTcgQEAgbGliY19oaWRkZW5fcHJvdG8gKF9fbGliY19uc19zYW1lbmFtZSkKKyAgICBtdXN0 IHBvaW50IG9uZSBwYXN0IHRoZSBsYXN0IGJ5dGUgaW4gdGhlIHBhY2tldC4gICovCisgaW50IF9f bnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkIChjb25zdCB1bnNpZ25lZCBjaGFyICpwLAorIAkJ CQkgICBjb25zdCB1bnNpZ25lZCBjaGFyICplb20pIGF0dHJpYnV0ZV9oaWRkZW47CisrCisrLyog SXRlcmF0b3Igb3ZlciB0aGUgcmVzb3VyY2UgcmVjb3JkcyBpbiBhIEROUyBwYWNrZXQuICAqLwor K3N0cnVjdCBuc19ycl9jdXJzb3IKKyt7CisrICAvKiBUaGVzZSBtZW1iZXJzIGFyZSBub3QgY2hh bmdlZCBhZnRlciBpbml0aWFsaXphdGlvbi4gICovCisrICBjb25zdCB1bnNpZ25lZCBjaGFyICpi ZWdpbjsJLyogRmlyc3QgYnl0ZSBvZiBwYWNrZXQuICAqLworKyAgY29uc3QgdW5zaWduZWQgY2hh ciAqZW5kOwkvKiBPbmUgcGFzdCB0aGUgbGFzdCBieXRlIG9mIHRoZSBwYWNrZXQuICAqLworKyAg Y29uc3QgdW5zaWduZWQgY2hhciAqZmlyc3RfcnI7IC8qIEZpcnN0IHJlc291cmNlIHJlY29yZCAo b3IgcGFja2V0IGVuZCkuICAqLworKworKyAgLyogQWR2YW5jZWQgdG93YXJkcyB0aGUgZW5kIHdo aWxlIHJlYWRpbmcgdGhlIHBhY2tldC4gICovCisrICBjb25zdCB1bnNpZ25lZCBjaGFyICpjdXJy ZW50OworK307CisrCisrLyogUmV0dXJucyB0aGUgUkNPREUgZmllbGQgZnJvbSB0aGUgRE5TIGhl YWRlci4gICovCisrc3RhdGljIGlubGluZSBpbnQKKytuc19ycl9jdXJzb3JfcmNvZGUgKGNvbnN0 IHN0cnVjdCBuc19ycl9jdXJzb3IgKmMpCisreworKyAgcmV0dXJuIGMtPmJlZ2luWzNdICYgMHgw ZjsJLyogTG93ZXIgNCBiaXRzIGF0IG9mZnNldCAzLiAgKi8KKyt9CisrCisrLyogUmV0dXJucyB0 aGUgbGVuZ3RoIG9mIHRoZSBhbnN3ZXIgc2VjdGlvbiBhY2NvcmRpbmcgdG8gdGhlIEROUyBoZWFk ZXIuICAqLworK3N0YXRpYyBpbmxpbmUgaW50CisrbnNfcnJfY3Vyc29yX2FuY291bnQgKGNvbnN0 IHN0cnVjdCBuc19ycl9jdXJzb3IgKmMpCisreworKyAgcmV0dXJuIGMtPmJlZ2luWzZdICogMjU2 ICsgYy0+YmVnaW5bN107IC8qIDE2IGJpdHMgYXQgb2Zmc2V0IDYuICAqLworK30KKysKKysvKiBS ZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGF1dGhvcml0eSAobmFtZSBzZXJ2ZXIpIHNlY3Rpb24g YWNjb3JkaW5nCisrICAgdG8gdGhlIEROUyBoZWFkZXIuICAqLworK3N0YXRpYyBpbmxpbmUgaW50 CisrbnNfcnJfY3Vyc29yX25zY291bnQgKGNvbnN0IHN0cnVjdCBuc19ycl9jdXJzb3IgKmMpCisr eworKyAgcmV0dXJuIGMtPmJlZ2luWzhdICogMjU2ICsgYy0+YmVnaW5bOV07IC8qIDE2IGJpdHMg YXQgb2Zmc2V0IDguICAqLworK30KKysKKysvKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGFk ZGl0aW9uYWwgZGF0YSBzZWN0aW9uIGFjY29yZGluZyB0byB0aGUKKysgICBETlMgaGVhZGVyLiAg Ki8KKytzdGF0aWMgaW5saW5lIGludAorK25zX3JyX2N1cnNvcl9hZGNvdW50IChjb25zdCBzdHJ1 Y3QgbnNfcnJfY3Vyc29yICpjKQorK3sKKysgIHJldHVybiBjLT5iZWdpblsxMF0gKiAyNTYgKyBj LT5iZWdpblsxMV07IC8qIDE2IGJpdHMgYXQgb2Zmc2V0IDEwLiAgKi8KKyt9CisrCisrLyogUmV0 dXJucyBhIHBvaW50ZXIgdG8gdGhlIHVuY29tcHJlc3NlZCBxdWVzdGlvbiBuYW1lIGluIHdpcmUK KysgICBmb3JtYXQuICAqLworK3N0YXRpYyBpbmxpbmUgY29uc3QgdW5zaWduZWQgY2hhciAqCisr bnNfcnJfY3Vyc29yX3FuYW1lIChjb25zdCBzdHJ1Y3QgbnNfcnJfY3Vyc29yICpjKQorK3sKKysg IHJldHVybiBjLT5iZWdpbiArIDEyOwkJLyogUU5BTUUgc3RhcnRzIHJpZ2h0IGFmdGVyIHRoZSBo ZWFkZXIuICAqLworK30KKysKKysvKiBSZXR1cm5zIHRoZSBxdWVzdGlvbiB0eXBlIG9mIHRoZSBm aXJzdCBhbmQgb25seSBxdWVzdGlvbi4gICovCisrc3RhdGljIGlubGluZSBjb25zdCBpbnQKKytu c19ycl9jdXJzb3JfcXR5cGUgKGNvbnN0IHN0cnVjdCBuc19ycl9jdXJzb3IgKmMpCisreworKyAg LyogMTYgYml0cyA0IGJ5dGVzIGJhY2sgZnJvbSB0aGUgZmlyc3QgUlIgaGVhZGVyIHN0YXJ0LiAg Ki8KKysgIHJldHVybiBjLT5maXJzdF9yclstNF0gKiAyNTYgKyBjLT5maXJzdF9yclstM107Cisr fQorKworKy8qIFJldHVybnMgdGhlIGNsc3Mgb2YgdGhlIGZpcnN0IGFuZCBvbmx5IHF1ZXN0aW9u ICh1c2FsbHkgQ19JTikuICAqLworK3N0YXRpYyBpbmxpbmUgY29uc3QgaW50CisrbnNfcnJfY3Vy c29yX3FjbGFzcyAoY29uc3Qgc3RydWN0IG5zX3JyX2N1cnNvciAqYykKKyt7CisrICAvKiAxNiBi aXRzIDIgYnl0ZXMgYmFjayBmcm9tIHRoZSBmaXJzdCBSUiBoZWFkZXIgc3RhcnQuICAqLworKyAg cmV0dXJuIGMtPmZpcnN0X3JyWy0yXSAqIDI1NiArIGMtPmZpcnN0X3JyWy0xXTsKKyt9CisrCisr LyogSW5pdGlhbGl6ZXMgKkMgdG8gY292ZXIgdGhlIHBhY2tldCBbQlVGLCBCVUYrTEVOKS4gIFJl dHVybnMgZmFsc2UKKysgICBpZiBMRU4gaXMgbGVzcyB0aGFuIHNpemVvZiAoKkhEKSwgaWYgdGhl IHBhY2tldCBkb2VzIG5vdCBjb250YWluIGEKKysgICBmdWxsICh1bmNvbXByZXNzZWQpIHF1ZXN0 aW9uLCBvciBpZiB0aGUgcXVlc3Rpb24gY291bnQgaXMgbm90IDEuICAqLworK19Cb29sIF9fbnNf cnJfY3Vyc29yX2luaXQgKHN0cnVjdCBuc19ycl9jdXJzb3IgKmMsCisrCQkJICAgY29uc3QgdW5z aWduZWQgY2hhciAqYnVmLCBzaXplX3QgbGVuKQorKyAgYXR0cmlidXRlX2hpZGRlbjsKKysKKysv KiBMaWtlIG5zX3JyLCBidXQgdGhlIHJlY29yZCBvd25lciBuYW1lIGlzIG5vdCBkZWNvZGVkIGlu dG8gdGV4dCBmb3JtYXQuICAqLworK3N0cnVjdCBuc19ycl93aXJlCisreworKyAgdW5zaWduZWQg Y2hhciBybmFtZVtOU19NQVhDRE5BTUVdOyAvKiBPd25lciBuYW1lIG9mIHRoZSByZWNvcmQuICAq LworKyAgdWludDE2X3QgcnR5cGU7CQkvKiBSZXNvdXJjZSByZWNvcmQgdHlwZSAoVF8qKS4gICov CisrICB1aW50MTZfdCByY2xhc3M7CQkvKiBSZXNvdXJjZSByZWNvcmQgY2xhc3MgKENfKikuICAq LworKyAgdWludDMyX3QgdHRsOwkJCS8qIFRpbWUtdG8tbGl2ZSBmaWVsZC4gICovCisrICBjb25z dCB1bnNpZ25lZCBjaGFyICpyZGF0YTsJLyogU3RhcnQgb2YgcmVzb3VyY2UgcmVjb3JkIGRhdGEu ICAqLworKyAgdWludDE2X3QgcmRsZW5ndGg7CQkvKiBMZW5ndGggb2YgdGhlIGRhdGEgYXQgcmRh dGEsIGluIGJ5dGVzLiAgKi8KKyt9OworKworKy8qIEF0dGVtcHRzIHRvIHBhcnNlIHRoZSByZWNv cmQgYXQgQyBpbnRvICpSUi4gIE9uIHN1Y2Nlc3MsIHJldHVybgorKyAgIHRydWUsIGFuZCBDIGlz IGFkdmFuY2VkIHBhc3QgdGhlIHJlY29yZCwgYW5kIFJSLT5yZGF0YSBwb2ludHMgdG8KKysgICB0 aGUgcmVjb3JkIGRhdGEuICBPbiBmYWlsdXJlLCBlcnJubyBpcyBzZXQgdG8gRU1TR1NJWkUsIGFu ZCBmYWxzZQorKyAgIGlzIHJldHVybmVkLiAgKi8KKytfQm9vbCBfX25zX3JyX2N1cnNvcl9uZXh0 IChzdHJ1Y3QgbnNfcnJfY3Vyc29yICpjLCBzdHJ1Y3QgbnNfcnJfd2lyZSAqcnIpCisrICBhdHRy aWJ1dGVfaGlkZGVuOworKworICMgZW5kaWYgLyogIV9JU09NQUMgKi8KKyAjZW5kaWYKK2RpZmYg LS1naXQgYS9yZXNvbHYvTWFrZWZpbGUgYi9yZXNvbHYvTWFrZWZpbGUKK2luZGV4IGJmMjg4MjVm NjAuLjAxOGIxODA4ZDYgMTAwNjQ0CistLS0gYS9yZXNvbHYvTWFrZWZpbGUKKysrKyBiL3Jlc29s di9NYWtlZmlsZQorQEAgLTQ3LDYgKzQ3LDggQEAgcm91dGluZXMgOj0gXAorICAgbnNfbmFtZV9z a2lwIFwKKyAgIG5zX25hbWVfdW5jb21wcmVzcyBcCisgICBuc19uYW1lX3VucGFjayBcCisrICBu c19ycl9jdXJzb3JfaW5pdCBcCisrICBuc19ycl9jdXJzb3JfbmV4dCBcCisgICBuc19zYW1lYmlu YXJ5bmFtZSBcCisgICBuc19zYW1lbmFtZSBcCisgICBuc2FwX2FkZHIgXAorQEAgLTExNiw2ICsx MTgsMTAgQEAgdGVzdHMtc3RhdGljICs9IHRzdC1uc19zYW1lYmluYXJ5bmFtZQorIHRlc3RzLWlu dGVybmFsICs9IHRzdC1uc19uYW1lX2xlbmd0aF91bmNvbXByZXNzZWQKKyB0ZXN0cy1zdGF0aWMg Kz0gdHN0LW5zX25hbWVfbGVuZ3RoX3VuY29tcHJlc3NlZAorIAorKyMgTGlrZXdpc2UgZm9yIHN0 cnVjdCBuc19ycl9jdXJzb3IgYW5kIGl0cyBmdW5jdGlvbnMuCisrdGVzdHMtaW50ZXJuYWwgKz0g dHN0LW5zX3JyX2N1cnNvcgorK3Rlc3RzLXN0YXRpYyArPSB0c3QtbnNfcnJfY3Vyc29yCisrCisg IyBUaGVzZSB0ZXN0cyBuZWVkIGxpYmRsLgorIGlmZXEgKHllcywkKGJ1aWxkLXNoYXJlZCkpCisg dGVzdHMgKz0gXAorZGlmZiAtLWdpdCBhL3Jlc29sdi9uc19ycl9jdXJzb3JfaW5pdC5jIGIvcmVz b2x2L25zX3JyX2N1cnNvcl9pbml0LmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAw MDAwMDAwLi42ZWU4MGIzMGU5CistLS0gL2Rldi9udWxsCisrKysgYi9yZXNvbHYvbnNfcnJfY3Vy c29yX2luaXQuYworQEAgLTAsMCArMSw2MiBAQAorKy8qIEluaXRpYWxpemUgYSBzaW1wbGUgRE5T IHBhY2tldCBwYXJzZXIuCisrICAgQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5 LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBM aWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0 dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUgPGFycGEvbmFt ZXNlci5oPgorKyNpbmNsdWRlIDxlcnJuby5oPgorKyNpbmNsdWRlIDxzdGRib29sLmg+CisrI2lu Y2x1ZGUgPHN0cmluZy5oPgorKworK2Jvb2wKKytfX25zX3JyX2N1cnNvcl9pbml0IChzdHJ1Y3Qg bnNfcnJfY3Vyc29yICpjLAorKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNo YXIgKmJ1Ziwgc2l6ZV90IGxlbikKKyt7CisrICBjLT5iZWdpbiA9IGJ1ZjsKKysgIGMtPmVuZCA9 IGJ1ZiArIGxlbjsKKysKKysgIC8qIENoZWNrIGZvciBoZWFkZXIgc2l6ZSBhbmQgMTYtYml0IHF1 ZXN0aW9uIGNvdW50IHZhbHVlIChpdCBtdXN0IGJlIDEpLiAgKi8KKysgIGlmIChsZW4gPCAxMiB8 fCBidWZbNF0gIT0gMCB8fCBidWZbNV0gIT0gMSkKKysgICAgeworKyAgICAgIF9fc2V0X2Vycm5v IChFTVNHU0laRSk7CisrICAgICAgYy0+Y3VycmVudCA9IGMtPmVuZDsKKysgICAgICByZXR1cm4g ZmFsc2U7CisrICAgIH0KKysgIGMtPmN1cnJlbnQgPSBidWYgKyAxMjsKKysKKysgIGludCBjb25z dW1lZCA9IF9fbnNfbmFtZV9sZW5ndGhfdW5jb21wcmVzc2VkIChjLT5jdXJyZW50LCBjLT5lbmQp OworKyAgaWYgKGNvbnN1bWVkIDwgMCkKKysgICAgeworKyAgICAgIF9fc2V0X2Vycm5vIChFTVNH U0laRSk7CisrICAgICAgYy0+Y3VycmVudCA9IGMtPmVuZDsKKysgICAgICBjLT5maXJzdF9yciA9 IE5VTEw7CisrICAgICAgcmV0dXJuIGZhbHNlOworKyAgICB9CisrICBjLT5jdXJyZW50ICs9IGNv bnN1bWVkOworKworKyAgLyogRW5zdXJlIHRoZXJlIGlzIHJvb20gZm9yIHF1ZXN0aW9uIHR5cGUg YW5kIGNsYXNzLiAgKi8KKysgIGlmIChjLT5lbmQgLSBjLT5jdXJyZW50IDwgNCkKKysgICAgewor KyAgICAgIF9fc2V0X2Vycm5vIChFTVNHU0laRSk7CisrICAgICAgYy0+Y3VycmVudCA9IGMtPmVu ZDsKKysgICAgICBjLT5maXJzdF9yciA9IE5VTEw7CisrICAgICAgcmV0dXJuIGZhbHNlOworKyAg ICB9CisrICBjLT5jdXJyZW50ICs9IDQ7CisrICBjLT5maXJzdF9yciA9IGMtPmN1cnJlbnQ7Cisr CisrICByZXR1cm4gdHJ1ZTsKKyt9CitkaWZmIC0tZ2l0IGEvcmVzb2x2L25zX3JyX2N1cnNvcl9u ZXh0LmMgYi9yZXNvbHYvbnNfcnJfY3Vyc29yX25leHQuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAwMDAuLjMzNjUyZmM1ZGEKKy0tLSAvZGV2L251bGwKKysrKyBiL3Jlc29s di9uc19ycl9jdXJzb3JfbmV4dC5jCitAQCAtMCwwICsxLDc0IEBACisrLyogU2ltcGxlIEROUyBy ZWNvcmQgcGFyc2VyIHdpdGhvdXQgdGV4dHVhbCBuYW1lIGRlY29kaW5nLgorKyAgIENvcHlyaWdo dCAoQykgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUg aXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2Rp ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisr ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAg IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBM aWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u ICAqLworKworKyNpbmNsdWRlIDxhcnBhL25hbWVzZXIuaD4KKysjaW5jbHVkZSA8ZXJybm8uaD4K KysjaW5jbHVkZSA8c3RkYm9vbC5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysKKytib29sCisr X19uc19ycl9jdXJzb3JfbmV4dCAoc3RydWN0IG5zX3JyX2N1cnNvciAqYywgc3RydWN0IG5zX3Jy X3dpcmUgKnJyKQorK3sKKysgIHJyLT5yZGF0YSA9IE5VTEw7CisrCisrICAvKiBFeHRyYWN0IHRo ZSByZWNvcmQgb3duZXIgbmFtZS4gICovCisrICBpbnQgY29uc3VtZWQgPSBfX25zX25hbWVfdW5w YWNrIChjLT5iZWdpbiwgYy0+ZW5kLCBjLT5jdXJyZW50LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcnItPnJuYW1lLCBzaXplb2YgKHJyLT5ybmFtZSkpOworKyAgaWYgKGNv bnN1bWVkIDwgMCkKKysgICAgeworKyAgICAgIG1lbXNldCAocnIsIDAsIHNpemVvZiAoKnJyKSk7 CisrICAgICAgX19zZXRfZXJybm8gKEVNU0dTSVpFKTsKKysgICAgICByZXR1cm4gZmFsc2U7Cisr ICAgIH0KKysgIGMtPmN1cnJlbnQgKz0gY29uc3VtZWQ7CisrCisrICAvKiBFeHRyYWN0IHRoZSBt ZXRhZGF0YS4gICovCisrICBzdHJ1Y3QKKysgIHsKKysgICAgdWludDE2X3QgcnR5cGU7CisrICAg IHVpbnQxNl90IHJjbGFzczsKKysgICAgdWludDMyX3QgdHRsOworKyAgICB1aW50MTZfdCByZGxl bmd0aDsKKysgIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpIG1ldGFkYXRhOworKyAgX1N0YXRp Y19hc3NlcnQgKHNpemVvZiAobWV0YWRhdGEpID09IDEwLCAic2l6ZW9mIG1ldGFkYXRhIik7Cisr ICBpZiAoYy0+ZW5kIC0gYy0+Y3VycmVudCA8IHNpemVvZiAobWV0YWRhdGEpKQorKyAgICB7Cisr ICAgICAgbWVtc2V0IChyciwgMCwgc2l6ZW9mICgqcnIpKTsKKysgICAgICBfX3NldF9lcnJubyAo RU1TR1NJWkUpOworKyAgICAgIHJldHVybiBmYWxzZTsKKysgICAgfQorKyAgbWVtY3B5ICgmbWV0 YWRhdGEsIGMtPmN1cnJlbnQsIHNpemVvZiAobWV0YWRhdGEpKTsKKysgIGMtPmN1cnJlbnQgKz0g c2l6ZW9mIChtZXRhZGF0YSk7CisrICAvKiBFbmRpYW5lc3MgY29udmVyc2lvbi4gICovCisrICBy ci0+cnR5cGUgPSBudG9ocyAobWV0YWRhdGEucnR5cGUpOworKyAgcnItPnJjbGFzcyA9IG50b2hz IChtZXRhZGF0YS5yY2xhc3MpOworKyAgcnItPnR0bCA9IG50b2hsIChtZXRhZGF0YS50dGwpOwor KyAgcnItPnJkbGVuZ3RoID0gbnRvaHMgKG1ldGFkYXRhLnJkbGVuZ3RoKTsKKysKKysgIC8qIEV4 dHJhY3QgcmVjb3JkIGRhdGEuICAqLworKyAgaWYgKGMtPmVuZCAtIGMtPmN1cnJlbnQgPCByci0+ cmRsZW5ndGgpCisrICAgIHsKKysgICAgICBtZW1zZXQgKHJyLCAwLCBzaXplb2YgKCpycikpOwor KyAgICAgIF9fc2V0X2Vycm5vIChFTVNHU0laRSk7CisrICAgICAgcmV0dXJuIGZhbHNlOworKyAg ICB9CisrICByci0+cmRhdGEgPSBjLT5jdXJyZW50OworKyAgYy0+Y3VycmVudCArPSByci0+cmRs ZW5ndGg7CisrCisrICByZXR1cm4gdHJ1ZTsKKyt9CitkaWZmIC0tZ2l0IGEvcmVzb2x2L3RzdC1u c19ycl9jdXJzb3IuYyBiL3Jlc29sdi90c3QtbnNfcnJfY3Vyc29yLmMKK25ldyBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi5jM2MwOTA4OTA1CistLS0gL2Rldi9udWxsCisrKysg Yi9yZXNvbHYvdHN0LW5zX3JyX2N1cnNvci5jCitAQCAtMCwwICsxLDIyNyBAQAorKy8qIFRlc3Rz IGZvciByZXNvdXJjZSByZWNvcmQgcGFyc2luZy4KKysgICBDb3B5cmlnaHQgKEMpIDIwMjIgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl IEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZl cnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAg IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90 LCBzZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5j bHVkZSA8YXJwYS9uYW1lc2VyLmg+CisrI2luY2x1ZGUgPHN0cmluZy5oPgorKyNpbmNsdWRlIDxz dXBwb3J0L2NoZWNrLmg+CisrI2luY2x1ZGUgPHN1cHBvcnQvbmV4dF90b19mYXVsdC5oPgorKwor Ky8qIFJlZmVyZW5jZSBwYWNrZXQgZm9yIHBhY2tldCBwYXJzaW5nLiAgKi8KKytzdGF0aWMgY29u c3QgdW5zaWduZWQgY2hhciB2YWxpZF9wYWNrZXRbXSA9CisrICB7IDB4MTEsIDB4MTIsIDB4MTMs IDB4MTQsCisrICAgIDB4MDAsIDB4MDEsICAgICAgICAgICAgICAgLyogUXVlc3Rpb24gY291bnQu ICAqLworKyAgICAweDAwLCAweDAyLCAgICAgICAgICAgICAgIC8qIEFuc3dlciBjb3VudC4gICov CisrICAgIDB4MjEsIDB4MjIsIDB4MjMsIDB4MjQsICAgLyogT3RoZXIgY291bnRzIChub3QgYWN0 dWFsbHkgaW4gcGFja2V0KS4gICovCisrICAgIDMsICd3JywgJ3cnLCAndycsIDcsICdlJywgJ3gn LCAnYScsICdtJywgJ3AnLCAnbCcsICdlJywgMCwKKysgICAgMHgwMCwgMHgxYywgICAgICAgICAg ICAgICAvKiBRdWVzdGlvbiB0eXBlOiBBQUFBLiAgKi8KKysgICAgMHgwMCwgMHgwMSwgICAgICAg ICAgICAgICAvKiBRdWVzdGlvbiBjbGFzczogSU4uICAqLworKyAgICAweGMwLCAweDBjLCAgICAg ICAgICAgICAgIC8qIENvbXByZXNzaW9uIHJlZmVyZW5jZSB0byBRTkFNRS4gICovCisrICAgIDB4 MDAsIDB4MWMsICAgICAgICAgICAgICAgLyogUmVjb3JkIHR5cGU6IEFBQUEuICAqLworKyAgICAw eDAwLCAweDAxLCAgICAgICAgICAgICAgIC8qIFJlY29yZCBjbGFzczogSU4uICAqLworKyAgICAw eDEyLCAweDM0LCAweDU2LCAweDc4LCAgIC8qIFJlY29yZCBUVEwuICAqLworKyAgICAweDAwLCAw eDEwLCAgICAgICAgICAgICAgIC8qIFJlY29yZCBkYXRhIGxlbmd0aCAoMTYgYnl0ZXMpLiAgKi8K KysgICAgMHg5MCwgMHg5MSwgMHg5MiwgMHg5MywgMHg5NCwgMHg5NSwgMHg5NiwgMHg5NywKKysg ICAgMHg5OCwgMHg5OSwgMHg5YSwgMHg5YiwgMHg5YywgMHg5ZCwgMHg5ZSwgMHg5ZiwgLyogSVB2 NiBhZGRyZXNzLiAgKi8KKysgICAgMHhjMCwgMHgwYywgICAgICAgICAgICAgICAvKiBDb21wcmVz c2lvbiByZWZlcmVuY2UgdG8gUU5BTUUuICAqLworKyAgICAweDAwLCAweDFjLCAgICAgICAgICAg ICAgIC8qIFJlY29yZCB0eXBlOiBBQUFBLiAgKi8KKysgICAgMHgwMCwgMHgwMSwgICAgICAgICAg ICAgICAvKiBSZWNvcmQgY2xhc3M6IElOLiAgKi8KKysgICAgMHgxMSwgMHgzMywgMHg1NSwgMHg3 NywgICAvKiBSZWNvcmQgVFRMLiAgKi8KKysgICAgMHgwMCwgMHgxMCwgICAgICAgICAgICAgICAv KiBSZWNvcmQgZGF0YSBsZW5ndGggKDE2IGJ5dGVzKS4gICovCisrICAgIDB4YTAsIDB4YTEsIDB4 YTIsIDB4YTMsIDB4YTQsIDB4YTUsIDB4YTYsIDB4YTcsCisrICAgIDB4YTgsIDB4YTksIDB4YWEs IDB4YWIsIDB4YWMsIDB4YWQsIDB4YWUsIDB4YWYsIC8qIElQdjYgYWRkcmVzcy4gICovCisrICB9 OworKworKy8qIFNwZWNpYWwgb2Zmc2V0cyBpbiB2YWxpZF9wYWNrZXQuICAqLworK2VudW0KKysg IHsKKysgICAgb2Zmc2V0X29mX2ZpcnN0X3JlY29yZCA9IDI5LAorKyAgICBvZmZzZXRfb2Zfc2Vj b25kX3JlY29yZCA9IDU3LAorKyAgfTsKKysKKysvKiBDaGVjayB0aGF0IHBhcnNpbmcgdmFsaWRf cGFja2V0IHN1Y2NlZWRzLiAgKi8KKytzdGF0aWMgdm9pZAorK3Rlc3RfdmFsaWQgKHZvaWQpCisr eworKyAgc3RydWN0IG5zX3JyX2N1cnNvciBjOworKyAgVEVTVF9WRVJJRllfRVhJVCAoX19uc19y cl9jdXJzb3JfaW5pdCAoJmMsIHZhbGlkX3BhY2tldCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNpemVvZiAodmFsaWRfcGFja2V0KSkpOworKyAgVEVTVF9DT01Q QVJFIChuc19ycl9jdXJzb3JfcmNvZGUgKCZjKSwgNCk7CisrICBURVNUX0NPTVBBUkUgKG5zX3Jy X2N1cnNvcl9hbmNvdW50ICgmYyksIDIpOworKyAgVEVTVF9DT01QQVJFIChuc19ycl9jdXJzb3Jf bnNjb3VudCAoJmMpLCAweDIxMjIpOworKyAgVEVTVF9DT01QQVJFIChuc19ycl9jdXJzb3JfYWRj b3VudCAoJmMpLCAweDIzMjQpOworKyAgVEVTVF9DT01QQVJFX0JMT0IgKG5zX3JyX2N1cnNvcl9x bmFtZSAoJmMpLCAxMywgJnZhbGlkX3BhY2tldFsxMl0sIDEzKTsKKysgIFRFU1RfQ09NUEFSRSAo bnNfcnJfY3Vyc29yX3F0eXBlICgmYyksIFRfQUFBQSk7CisrICBURVNUX0NPTVBBUkUgKG5zX3Jy X2N1cnNvcl9xY2xhc3MgKCZjKSwgQ19JTik7CisrICBURVNUX0NPTVBBUkUgKGMuY3VycmVudCAt IHZhbGlkX3BhY2tldCwgb2Zmc2V0X29mX2ZpcnN0X3JlY29yZCk7CisrCisrICBzdHJ1Y3QgbnNf cnJfd2lyZSByOworKyAgVEVTVF9WRVJJRllfRVhJVCAoX19uc19ycl9jdXJzb3JfbmV4dCAoJmMs ICZyKSk7CisrICBURVNUX0NPTVBBUkUgKHIucnR5cGUsIFRfQUFBQSk7CisrICBURVNUX0NPTVBB UkUgKHIucmNsYXNzLCBDX0lOKTsKKysgIFRFU1RfQ09NUEFSRSAoci50dGwsIDB4MTIzNDU2Nzgp OworKyAgVEVTVF9DT01QQVJFX0JMT0IgKHIucmRhdGEsIHIucmRsZW5ndGgsCisrICAgICAgICAg ICAgICAgICAgICAgIlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3IgorKyAgICAgICAg ICAgICAgICAgICAgICJceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5ZiIsIDE2KTsKKysg IFRFU1RfQ09NUEFSRSAoYy5jdXJyZW50IC0gdmFsaWRfcGFja2V0LCBvZmZzZXRfb2Zfc2Vjb25k X3JlY29yZCk7CisrICBURVNUX1ZFUklGWV9FWElUIChfX25zX3JyX2N1cnNvcl9uZXh0ICgmYywg JnIpKTsKKysgIFRFU1RfQ09NUEFSRSAoci5ydHlwZSwgVF9BQUFBKTsKKysgIFRFU1RfQ09NUEFS RSAoci5yY2xhc3MsIENfSU4pOworKyAgVEVTVF9DT01QQVJFIChyLnR0bCwgMHgxMTMzNTU3Nyk7 CisrICBURVNUX0NPTVBBUkVfQkxPQiAoci5yZGF0YSwgci5yZGxlbmd0aCwKKysgICAgICAgICAg ICAgICAgICAgICAiXHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTciCisrICAgICAgICAg ICAgICAgICAgICAgIlx4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmIiwgMTYpOworKyAg VEVTVF9WRVJJRlkgKGMuY3VycmVudCA9PSBjLmVuZCk7CisrfQorKworKy8qIENoZWNrIHRoYXQg dHJ5aW5nIHRvIHBhcnNlIGEgcGFja2V0IHdpdGggYSBjb21wcmVzc2VkIFFOQU1FIGZhaWxzLiAg Ki8KKytzdGF0aWMgdm9pZAorK3Rlc3RfY29tcHJlc3NlZF9xbmFtZSAodm9pZCkKKyt7CisrICBz dGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYWNrZXRbXSA9CisrICAgIHsgMHgxMSwgMHgxMiwg MHgxMywgMHgxNCwKKysgICAgICAweDAwLCAweDAxLCAgICAgICAgICAgICAgIC8qIFF1ZXN0aW9u IGNvdW50LiAgKi8KKysgICAgICAweDAwLCAweDAwLCAgICAgICAgICAgICAgIC8qIEFuc3dlciBj b3VudC4gICovCisrICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgICAvKiBPdGhlciBjb3Vu dHMuICAqLworKyAgICAgIDMsICd3JywgJ3cnLCAndycsIDcsICdlJywgJ3gnLCAnYScsICdtJywg J3AnLCAnbCcsICdlJywgMHhjMCwgMHgwNCwKKysgICAgICAweDAwLCAweDAxLCAgICAgICAgICAg ICAgIC8qIFF1ZXN0aW9uIHR5cGU6IEEuICAqLworKyAgICAgIDB4MDAsIDB4MDEsICAgICAgICAg ICAgICAgLyogUXVlc3Rpb24gY2xhc3M6IElOLiAgKi8KKysgICAgfTsKKysKKysgIHN0cnVjdCBu c19ycl9jdXJzb3IgYzsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKCFfX25zX3JyX2N1cnNvcl9pbml0 ICgmYywgcGFja2V0LCBzaXplb2YgKHBhY2tldCkpKTsKKyt9CisrCisrLyogQ2hlY2sgdGhhdCB0 cnlpbmcgdG8gcGFyc2UgYSBwYWNrZXQgd2l0aCB0d28gcXVlc3Rpb25zIGZhaWxzLiAgKi8KKytz dGF0aWMgdm9pZAorK3Rlc3RfdHdvX3F1ZXN0aW9ucyAodm9pZCkKKyt7CisrICBzdGF0aWMgY29u c3QgdW5zaWduZWQgY2hhciBwYWNrZXRbXSA9CisrICAgIHsgMHgxMSwgMHgxMiwgMHgxMywgMHgx NCwKKysgICAgICAweDAwLCAweDAyLCAgICAgICAgICAgICAgIC8qIFF1ZXN0aW9uIGNvdW50LiAg Ki8KKysgICAgICAweDAwLCAweDAwLCAgICAgICAgICAgICAgIC8qIEFuc3dlciBjb3VudC4gICov CisrICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgICAvKiBPdGhlciBjb3VudHMuICAqLwor KyAgICAgIDMsICd3JywgJ3cnLCAndycsIDcsICdlJywgJ3gnLCAnYScsICdtJywgJ3AnLCAnbCcs ICdlJywgMHhjMCwgMHgwNCwKKysgICAgICAweDAwLCAweDAxLCAgICAgICAgICAgICAgIC8qIFF1 ZXN0aW9uIHR5cGU6IEEuICAqLworKyAgICAgIDB4MDAsIDB4MDEsICAgICAgICAgICAgICAgLyog UXVlc3Rpb24gY2xhc3M6IElOLiAgKi8KKysgICAgICAzLCAndycsICd3JywgJ3cnLCA3LCAnZScs ICd4JywgJ2EnLCAnbScsICdwJywgJ2wnLCAnZScsIDB4YzAsIDB4MDQsCisrICAgICAgMHgwMCwg MHgxYywgICAgICAgICAgICAgICAvKiBRdWVzdGlvbiB0eXBlOiBBQUFBLiAgKi8KKysgICAgICAw eDAwLCAweDAxLCAgICAgICAgICAgICAgIC8qIFF1ZXN0aW9uIGNsYXNzOiBJTi4gICovCisrICAg IH07CisrCisrICBzdHJ1Y3QgbnNfcnJfY3Vyc29yIGM7CisrICBURVNUX1ZFUklGWV9FWElUICgh X19uc19ycl9jdXJzb3JfaW5pdCAoJmMsIHBhY2tldCwgc2l6ZW9mIChwYWNrZXQpKSk7CisrfQor KworKy8qIFVzZWQgdG8gY2hlY2sgdGhhdCBwYXJzaW5nIHRydW5jYXRlZCBwYWNrZXRzIGRvZXMg bm90IG92ZXItcmVhZC4gICovCisrc3RhdGljIHN0cnVjdCBzdXBwb3J0X25leHRfdG9fZmF1bHQg bnRmOworKworKy8qIFRydW5jYXRlZCBwYWNrZXQgaW4gdGhlIHNlY29uZCByZXNvdXJjZSByZWNv cmQuICAqLworK3N0YXRpYyB2b2lkCisrdGVzdF90cnVuY2F0ZWRfb25lX3JyIChzaXplX3QgbGVu Z3RoKQorK3sKKysgIHVuc2lnbmVkIGNoYXIgKmVuZCA9ICh1bnNpZ25lZCBjaGFyICopIG50Zi5i dWZmZXIgLSBudGYubGVuZ3RoOworKyAgdW5zaWduZWQgY2hhciAqc3RhcnQgPSBlbmQgLSBsZW5n dGg7CisrCisrICAvKiBQcm9kdWNlIHRoZSB0cnVuY2F0ZWQgcGFja2V0LiAgKi8KKysgIG1lbWNw eSAoc3RhcnQsIHZhbGlkX3BhY2tldCwgbGVuZ3RoKTsKKysKKysgIHN0cnVjdCBuc19ycl9jdXJz b3IgYzsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKF9fbnNfcnJfY3Vyc29yX2luaXQgKCZjLCBzdGFy dCwgbGVuZ3RoKSk7CisrICBURVNUX0NPTVBBUkUgKG5zX3JyX2N1cnNvcl9yY29kZSAoJmMpLCA0 KTsKKysgIFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX2FuY291bnQgKCZjKSwgMik7CisrICBU RVNUX0NPTVBBUkUgKG5zX3JyX2N1cnNvcl9uc2NvdW50ICgmYyksIDB4MjEyMik7CisrICBURVNU X0NPTVBBUkUgKG5zX3JyX2N1cnNvcl9hZGNvdW50ICgmYyksIDB4MjMyNCk7CisrICBURVNUX0NP TVBBUkVfQkxPQiAobnNfcnJfY3Vyc29yX3FuYW1lICgmYyksIDEzLCAmdmFsaWRfcGFja2V0WzEy XSwgMTMpOworKyAgVEVTVF9DT01QQVJFIChuc19ycl9jdXJzb3JfcXR5cGUgKCZjKSwgVF9BQUFB KTsKKysgIFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX3FjbGFzcyAoJmMpLCBDX0lOKTsKKysg IFRFU1RfQ09NUEFSRSAoYy5jdXJyZW50IC0gc3RhcnQsIG9mZnNldF9vZl9maXJzdF9yZWNvcmQp OworKworKyAgc3RydWN0IG5zX3JyX3dpcmUgcjsKKysgIFRFU1RfVkVSSUZZX0VYSVQgKF9fbnNf cnJfY3Vyc29yX25leHQgKCZjLCAmcikpOworKyAgVEVTVF9DT01QQVJFIChyLnJ0eXBlLCBUX0FB QUEpOworKyAgVEVTVF9DT01QQVJFIChyLnJjbGFzcywgQ19JTik7CisrICBURVNUX0NPTVBBUkUg KHIudHRsLCAweDEyMzQ1Njc4KTsKKysgIFRFU1RfQ09NUEFSRV9CTE9CIChyLnJkYXRhLCByLnJk bGVuZ3RoLAorKyAgICAgICAgICAgICAgICAgICAgICJceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVc eDk2XHg5NyIKKysgICAgICAgICAgICAgICAgICAgICAiXHg5OFx4OTlceDlhXHg5Ylx4OWNceDlk XHg5ZVx4OWYiLCAxNik7CisrICBURVNUX0NPTVBBUkUgKGMuY3VycmVudCAtIHN0YXJ0LCBvZmZz ZXRfb2Zfc2Vjb25kX3JlY29yZCk7CisrICBURVNUX1ZFUklGWSAoIV9fbnNfcnJfY3Vyc29yX25l eHQgKCZjLCAmcikpOworK30KKysKKysvKiBUcnVuY2F0ZWQgcGFja2V0IGluIHRoZSBmaXJzdCBy ZXNvdXJjZSByZWNvcmQuICAqLworK3N0YXRpYyB2b2lkCisrdGVzdF90cnVuY2F0ZWRfbm9fcnIg KHNpemVfdCBsZW5ndGgpCisreworKyAgdW5zaWduZWQgY2hhciAqZW5kID0gKHVuc2lnbmVkIGNo YXIgKikgbnRmLmJ1ZmZlciAtIG50Zi5sZW5ndGg7CisrICB1bnNpZ25lZCBjaGFyICpzdGFydCA9 IGVuZCAtIGxlbmd0aDsKKysKKysgIC8qIFByb2R1Y2UgdGhlIHRydW5jYXRlZCBwYWNrZXQuICAq LworKyAgbWVtY3B5IChzdGFydCwgdmFsaWRfcGFja2V0LCBsZW5ndGgpOworKworKyAgc3RydWN0 IG5zX3JyX2N1cnNvciBjOworKyAgVEVTVF9WRVJJRllfRVhJVCAoX19uc19ycl9jdXJzb3JfaW5p dCAoJmMsIHN0YXJ0LCBsZW5ndGgpKTsKKysgIFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX3Jj b2RlICgmYyksIDQpOworKyAgVEVTVF9DT01QQVJFIChuc19ycl9jdXJzb3JfYW5jb3VudCAoJmMp LCAyKTsKKysgIFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX25zY291bnQgKCZjKSwgMHgyMTIy KTsKKysgIFRFU1RfQ09NUEFSRSAobnNfcnJfY3Vyc29yX2FkY291bnQgKCZjKSwgMHgyMzI0KTsK KysgIFRFU1RfQ09NUEFSRV9CTE9CIChuc19ycl9jdXJzb3JfcW5hbWUgKCZjKSwgMTMsICZ2YWxp ZF9wYWNrZXRbMTJdLCAxMyk7CisrICBURVNUX0NPTVBBUkUgKG5zX3JyX2N1cnNvcl9xdHlwZSAo JmMpLCBUX0FBQUEpOworKyAgVEVTVF9DT01QQVJFIChuc19ycl9jdXJzb3JfcWNsYXNzICgmYyks IENfSU4pOworKyAgVEVTVF9DT01QQVJFIChjLmN1cnJlbnQgLSBzdGFydCwgb2Zmc2V0X29mX2Zp cnN0X3JlY29yZCk7CisrCisrICBzdHJ1Y3QgbnNfcnJfd2lyZSByOworKyAgVEVTVF9WRVJJRlkg KCFfX25zX3JyX2N1cnNvcl9uZXh0ICgmYywgJnIpKTsKKyt9CisrCisrLyogVHJ1bmNhdGVkIHBh Y2tldCBiZWZvcmUgZmlyc3QgcmVzb3VyY2UgcmVjb3JkLiAgKi8KKytzdGF0aWMgdm9pZAorK3Rl c3RfdHJ1bmNhdGVkX2JlZm9yZV9yciAoc2l6ZV90IGxlbmd0aCkKKyt7CisrICB1bnNpZ25lZCBj aGFyICplbmQgPSAodW5zaWduZWQgY2hhciAqKSBudGYuYnVmZmVyIC0gbnRmLmxlbmd0aDsKKysg IHVuc2lnbmVkIGNoYXIgKnN0YXJ0ID0gZW5kIC0gbGVuZ3RoOworKworKyAgLyogUHJvZHVjZSB0 aGUgdHJ1bmNhdGVkIHBhY2tldC4gICovCisrICBtZW1jcHkgKHN0YXJ0LCB2YWxpZF9wYWNrZXQs IGxlbmd0aCk7CisrCisrICBzdHJ1Y3QgbnNfcnJfY3Vyc29yIGM7CisrICBURVNUX1ZFUklGWV9F WElUICghX19uc19ycl9jdXJzb3JfaW5pdCAoJmMsIHN0YXJ0LCBsZW5ndGgpKTsKKyt9CisrCisr c3RhdGljIGludAorK2RvX3Rlc3QgKHZvaWQpCisreworKyAgbnRmID0gc3VwcG9ydF9uZXh0X3Rv X2ZhdWx0X2FsbG9jYXRlIChzaXplb2YgKHZhbGlkX3BhY2tldCkpOworKworKyAgdGVzdF92YWxp ZCAoKTsKKysgIHRlc3RfY29tcHJlc3NlZF9xbmFtZSAoKTsKKysgIHRlc3RfdHdvX3F1ZXN0aW9u cyAoKTsKKysKKysgIGZvciAoaW50IGxlbmd0aCA9IG9mZnNldF9vZl9zZWNvbmRfcmVjb3JkOyBs ZW5ndGggPCBzaXplb2YgKHZhbGlkX3BhY2tldCk7CisrICAgICAgICsrbGVuZ3RoKQorKyAgICB0 ZXN0X3RydW5jYXRlZF9vbmVfcnIgKGxlbmd0aCk7CisrICBmb3IgKGludCBsZW5ndGggPSBvZmZz ZXRfb2ZfZmlyc3RfcmVjb3JkOyBsZW5ndGggPCBvZmZzZXRfb2Zfc2Vjb25kX3JlY29yZDsKKysg ICAgICAgKytsZW5ndGgpCisrICAgIHRlc3RfdHJ1bmNhdGVkX25vX3JyIChsZW5ndGgpOworKyAg Zm9yIChpbnQgbGVuZ3RoID0gMDsgbGVuZ3RoIDwgb2Zmc2V0X29mX2ZpcnN0X3JlY29yZDsgKyts ZW5ndGgpCisrICAgIHRlc3RfdHJ1bmNhdGVkX2JlZm9yZV9yciAobGVuZ3RoKTsKKysKKysgIHN1 cHBvcnRfbmV4dF90b19mYXVsdF9mcmVlICgmbnRmKTsKKysgIHJldHVybiAwOworK30KKysKKysj aW5jbHVkZSA8c3VwcG9ydC90ZXN0LWRyaXZlci5jPgorLS0gCisyLjM4LjEKKworCitGcm9tIGI3 MTRhYjdlM2NlOTk5Yjc5NDAxY2RkMjIyOTExMjhhN2ZkNmQ4ZWYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTog VHVlLCAzMCBBdWcgMjAyMiAxMDowMjo0OSArMDIwMAorU3ViamVjdDogbnNzX2RuczogU3BsaXQg Z2V0YW5zd2VyX3B0ciBmcm9tIGdldGFuc3dlcl9yCisKK0FuZCBleHBhbmQgdGhlIHVzZSBvZiBu YW1lX29rIGFuZCBxdHlwZSBpbiBnZXRhbnN3ZXJfcHRyICh0aGUKK2Zvcm1lciBhbHNvIGluIGdl dGFuc3dlcl9yKS4KKworQWZ0ZXIgZnVydGhlciBjbGVhbnVwcywgbm90IG11Y2ggY29kZSB3aWxs IGJlIHNoYXJlZCBiZXR3ZWVuIHRoZQordHdvIGZ1bmN0aW9ucy4KKworUmV2aWV3ZWQtYnk6IFNp ZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+CisoY2hlcnJ5IHBpY2tl ZCBmcm9tIGNvbW1pdCAwZGNjNDNlOTk4MTAwNTU0MGJmMzlkYzdiZjMzZmJhYjYyY2Y5ZTg0KQor LS0tCisgcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYyB8IDMyMCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAyNjggaW5zZXJ0aW9ucygrKSwg NTIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9yZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5j IGIvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYworaW5kZXggNTQ0Y2ZmYmVjZC4uZDM4NGUxZjgy ZCAxMDA2NDQKKy0tLSBhL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMKKysrKyBiL3Jlc29sdi9u c3NfZG5zL2Rucy1ob3N0LmMKK0BAIC0xMTYsNiArMTE2LDExIEBAIHN0YXRpYyBlbnVtIG5zc19z dGF0dXMgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorIAkJCQkgICAg c3RydWN0IGhvc3RlbnQgKnJlc3VsdCwgY2hhciAqYnVmZmVyLAorIAkJCQkgICAgc2l6ZV90IGJ1 ZmxlbiwgaW50ICplcnJub3AsIGludCAqaF9lcnJub3AsCisgCQkJCSAgICBpbnQgbWFwLCBpbnQz Ml90ICp0dGxwLCBjaGFyICoqY2Fub25wKTsKKytzdGF0aWMgZW51bSBuc3Nfc3RhdHVzIGdldGFu c3dlcl9wdHIgKGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIsIGludCBhbnNsZW4sCisrCQkJCSAgICAg IGNvbnN0IGNoYXIgKnFuYW1lLAorKwkJCQkgICAgICBzdHJ1Y3QgaG9zdGVudCAqcmVzdWx0LCBj aGFyICpidWZmZXIsCisrCQkJCSAgICAgIHNpemVfdCBidWZsZW4sIGludCAqZXJybm9wLAorKwkJ CQkgICAgICBpbnQgKmhfZXJybm9wLCBpbnQzMl90ICp0dGxwKTsKKyAKKyBzdGF0aWMgZW51bSBu c3Nfc3RhdHVzIGdhaWhfZ2V0YW5zd2VyIChjb25zdCBxdWVyeWJ1ZiAqYW5zd2VyMSwgaW50IGFu c2xlbjEsCisgCQkJCSAgICAgICBjb25zdCBxdWVyeWJ1ZiAqYW5zd2VyMiwgaW50IGFuc2xlbjIs CitAQCAtNTYxLDkgKzU2Niw4IEBAIF9uc3NfZG5zX2dldGhvc3RieWFkZHIyX3IgKGNvbnN0IHZv aWQgKmFkZHIsIHNvY2tsZW5fdCBsZW4sIGludCBhZiwKKyAgICAgICByZXR1cm4gZXJybm8gPT0g RUNPTk5SRUZVU0VEID8gTlNTX1NUQVRVU19VTkFWQUlMIDogTlNTX1NUQVRVU19OT1RGT1VORDsK KyAgICAgfQorIAorLSAgc3RhdHVzID0gZ2V0YW5zd2VyX3IKKy0gICAgKGN0eCwgaG9zdF9idWZm ZXIuYnVmLCBuLCBxYnVmLCBUX1BUUiwgcmVzdWx0LCBidWZmZXIsIGJ1ZmxlbiwKKy0gICAgIGVy cm5vcCwgaF9lcnJub3AsIDAgLyogWFhYICovLCB0dGxwLCBOVUxMKTsKKysgIHN0YXR1cyA9IGdl dGFuc3dlcl9wdHIgKGhvc3RfYnVmZmVyLmJ1ZiwgbiwgcWJ1ZiwgcmVzdWx0LAorKwkJCSAgYnVm ZmVyLCBidWZsZW4sIGVycm5vcCwgaF9lcnJub3AsIHR0bHApOworICAgaWYgKGhvc3RfYnVmZmVy LmJ1ZiAhPSBvcmlnX2hvc3RfYnVmZmVyKQorICAgICBmcmVlIChob3N0X2J1ZmZlci5idWYpOwor ICAgaWYgKHN0YXR1cyAhPSBOU1NfU1RBVFVTX1NVQ0NFU1MpCitAQCAtNjU5LDggKzY2Myw2IEBA IGdldGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyAgIGludCBoYXZlYW5z d2VyLCBoYWRfZXJyb3I7CisgICBjaGFyICpicCwgKiphcCwgKipoYXA7CisgICBjaGFyIHRidWZb TUFYRE5BTUVdOworLSAgY29uc3QgY2hhciAqdG5hbWU7CistICBpbnQgKCpuYW1lX29rKSAoY29u c3QgY2hhciAqKTsKKyAgIHVfY2hhciBwYWNrdG1wW05TX01BWENETkFNRV07CisgICBpbnQgaGF2 ZV90b19tYXAgPSAwOworICAgdWludHB0cl90IHBhZCA9IC0odWludHB0cl90KSBidWZmZXIgJSBf X2FsaWdub2ZfXyAoc3RydWN0IGhvc3RfZGF0YSk7CitAQCAtNjc5LDIyICs2ODEsOCBAQCBnZXRh bnN3ZXJfciAoc3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsCisgICBpZiAoYnVmbGVuIC0gc2l6 ZW9mIChzdHJ1Y3QgaG9zdF9kYXRhKSAhPSBsaW5lYnVmbGVuKQorICAgICBsaW5lYnVmbGVuID0g SU5UX01BWDsKKyAKKy0gIHRuYW1lID0gcW5hbWU7CisgICByZXN1bHQtPmhfbmFtZSA9IE5VTEw7 CisgICBlbmRfb2ZfbWVzc2FnZSA9IGFuc3dlci0+YnVmICsgYW5zbGVuOworLSAgc3dpdGNoIChx dHlwZSkKKy0gICAgeworLSAgICBjYXNlIFRfQToKKy0gICAgY2FzZSBUX0FBQUE6CistICAgICAg bmFtZV9vayA9IF9fbGliY19yZXNfaG5vazsKKy0gICAgICBicmVhazsKKy0gICAgY2FzZSBUX1BU UjoKKy0gICAgICBuYW1lX29rID0gX19saWJjX3Jlc19kbm9rOworLSAgICAgIGJyZWFrOworLSAg ICBkZWZhdWx0OgorLSAgICAgICplcnJub3AgPSBFTk9FTlQ7CistICAgICAgcmV0dXJuIE5TU19T VEFUVVNfVU5BVkFJTDsgIC8qIFhYWCBzaG91bGQgYmUgYWJvcnQoKTsgKi8KKy0gICAgfQorIAor ICAgLyoKKyAgICAqIGZpbmQgZmlyc3Qgc2F0aXNmYWN0b3J5IGFuc3dlcgorQEAgLTcyOSw3ICs3 MTcsNyBAQCBnZXRhbnN3ZXJfciAoc3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsCisgICAgICAg KmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7CisgICAgICAgcmV0dXJuIE5TU19TVEFUVVNfVU5BVkFJ TDsKKyAgICAgfQorLSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG5hbWVfb2sgKGJwKSA9PSAwKSkK KysgIGlmIChfX2dsaWJjX3VubGlrZWx5IChfX2xpYmNfcmVzX2hub2sgKGJwKSA9PSAwKSkKKyAg ICAgeworICAgICAgIGVycm5vID0gRUJBRE1TRzsKKyAgICAgICAqZXJybm9wID0gRUJBRE1TRzsK K0BAIC03ODMsNyArNzcxLDcgQEAgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4dCAq Y3R4LAorIAkgIG4gPSAtMTsKKyAJfQorIAorLSAgICAgIGlmIChfX2dsaWJjX3VubGlrZWx5IChu IDwgMCB8fCAoKm5hbWVfb2spIChicCkgPT0gMCkpCisrICAgICAgaWYgKF9fZ2xpYmNfdW5saWtl bHkgKG4gPCAwIHx8IF9fbGliY19yZXNfaG5vayAoYnApID09IDApKQorIAl7CisgCSAgKytoYWRf ZXJyb3I7CisgCSAgY29udGludWU7CitAQCAtODE2LDcgKzgwNCw3IEBAIGdldGFuc3dlcl9yIChz dHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyAJICBjb250aW51ZTsJCQkvKiBYWFggLSBoYWRf ZXJyb3IrKyA/ICovCisgCX0KKyAKKy0gICAgICBpZiAoKHF0eXBlID09IFRfQSB8fCBxdHlwZSA9 PSBUX0FBQUEpICYmIHR5cGUgPT0gVF9DTkFNRSkKKysgICAgICBpZiAodHlwZSA9PSBUX0NOQU1F KQorIAl7CisgCSAgLyogQSBDTkFNRSBjb3VsZCBhbHNvIGhhdmUgYSBUVEwgZW50cnkuICAqLwor IAkgIGlmICh0dGxwICE9IE5VTEwgJiYgdHRsIDwgKnR0bHApCitAQCAtODI2LDcgKzgxNCw3IEBA IGdldGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKyAJICAgIGNvbnRpbnVl OworIAkgIG4gPSBfX2xpYmNfZG5fZXhwYW5kIChhbnN3ZXItPmJ1ZiwgZW5kX29mX21lc3NhZ2Us IGNwLAorIAkJCQl0YnVmLCBzaXplb2YgdGJ1Zik7CistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkg KG4gPCAwIHx8ICgqbmFtZV9vaykgKHRidWYpID09IDApKQorKwkgIGlmIChfX2dsaWJjX3VubGlr ZWx5IChuIDwgMCB8fCBfX2xpYmNfcmVzX2hub2sgKHRidWYpID09IDApKQorIAkgICAgeworIAkg ICAgICArK2hhZF9lcnJvcjsKKyAJICAgICAgY29udGludWU7CitAQCAtODU3LDcgKzg0NSwyNjAg QEAgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorIAkgIGNvbnRpbnVl OworIAl9CisgCistICAgICAgaWYgKHF0eXBlID09IFRfUFRSICYmIHR5cGUgPT0gVF9DTkFNRSkK KysgICAgICBpZiAodHlwZSA9PSBUX0EgJiYgcXR5cGUgPT0gVF9BQUFBICYmIG1hcCkKKysJaGF2 ZV90b19tYXAgPSAxOworKyAgICAgIGVsc2UgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKHR5cGUgIT0g cXR5cGUpKQorKwl7CisrCSAgY3AgKz0gbjsKKysJICBjb250aW51ZTsJCQkvKiBYWFggLSBoYWRf ZXJyb3IrKyA/ICovCisrCX0KKysKKysgICAgICBzd2l0Y2ggKHR5cGUpCisrCXsKKysJY2FzZSBU X0E6CisrCWNhc2UgVF9BQUFBOgorKwkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChfX3N0cmNhc2Vj bXAgKHJlc3VsdC0+aF9uYW1lLCBicCkgIT0gMCkpCisrCSAgICB7CisrCSAgICAgIGNwICs9IG47 CisrCSAgICAgIGNvbnRpbnVlOwkJCS8qIFhYWCAtIGhhZF9lcnJvcisrID8gKi8KKysJICAgIH0K KysKKysJICAvKiBTdG9wIHBhcnNpbmcgYXQgYSByZWNvcmQgd2hvc2UgbGVuZ3RoIGlzIGluY29y cmVjdC4gICovCisrCSAgaWYgKG4gIT0gcnJ0eXBlX3RvX3JkYXRhX2xlbmd0aCAodHlwZSkpCisr CSAgICB7CisrCSAgICAgICsraGFkX2Vycm9yOworKwkgICAgICBicmVhazsKKysJICAgIH0KKysK KysJICAvKiBTa2lwIHJlY29yZHMgb2YgdGhlIHdyb25nIHR5cGUuICAqLworKwkgIGlmIChuICE9 IHJlc3VsdC0+aF9sZW5ndGgpCisrCSAgICB7CisrCSAgICAgIGNwICs9IG47CisrCSAgICAgIGNv bnRpbnVlOworKwkgICAgfQorKwkgIGlmICghaGF2ZWFuc3dlcikKKysJICAgIHsKKysJICAgICAg aW50IG5uOworKworKwkgICAgICAvKiBXZSBjb21wb3NlIGEgc2luZ2xlIGhvc3RlbnQgb3V0IG9m IHRoZSBlbnRpcmUgY2hhaW4gb2YKKysJICAgICAgICAgZW50cmllcywgc28gdGhlIFRUTCBvZiB0 aGUgaG9zdGVudCBpcyBlc3NlbnRpYWxseSB0aGUgbG93ZXN0CisrCQkgVFRMIGluIHRoZSBjaGFp bi4gICovCisrCSAgICAgIGlmICh0dGxwICE9IE5VTEwgJiYgdHRsIDwgKnR0bHApCisrCQkqdHRs cCA9IHR0bDsKKysJICAgICAgaWYgKGNhbm9ucCAhPSBOVUxMKQorKwkJKmNhbm9ucCA9IGJwOwor KwkgICAgICByZXN1bHQtPmhfbmFtZSA9IGJwOworKwkgICAgICBubiA9IHN0cmxlbiAoYnApICsg MTsJLyogZm9yIHRoZSBcMCAqLworKwkgICAgICBicCArPSBubjsKKysJICAgICAgbGluZWJ1Zmxl biAtPSBubjsKKysJICAgIH0KKysKKysJICAvKiBQcm92aWRlIHN1ZmZpY2llbnQgYWxpZ25tZW50 IGZvciBib3RoIGFkZHJlc3MKKysJICAgICBmYW1pbGllcy4gICovCisrCSAgZW51bSB7IGFsaWdu ID0gNCB9OworKwkgIF9TdGF0aWNfYXNzZXJ0ICgoYWxpZ24gJSBfX2FsaWdub2ZfXyAoc3RydWN0 IGluX2FkZHIpKSA9PSAwLAorKwkJCSAgInN0cnVjdCBpbl9hZGRyIGFsaWdubWVudCIpOworKwkg IF9TdGF0aWNfYXNzZXJ0ICgoYWxpZ24gJSBfX2FsaWdub2ZfXyAoc3RydWN0IGluNl9hZGRyKSkg PT0gMCwKKysJCQkgICJzdHJ1Y3QgaW42X2FkZHIgYWxpZ25tZW50Iik7CisrCSAgeworKwkgICAg Y2hhciAqbmV3X2JwID0gUFRSX0FMSUdOX1VQIChicCwgYWxpZ24pOworKwkgICAgbGluZWJ1Zmxl biAtPSBuZXdfYnAgLSBicDsKKysJICAgIGJwID0gbmV3X2JwOworKwkgIH0KKysKKysJICBpZiAo X19nbGliY191bmxpa2VseSAobiA+IGxpbmVidWZsZW4pKQorKwkgICAgZ290byB0b29fc21hbGw7 CisrCSAgYnAgPSBfX21lbXBjcHkgKCpoYXArKyA9IGJwLCBjcCwgbik7CisrCSAgY3AgKz0gbjsK KysJICBsaW5lYnVmbGVuIC09IG47CisrCSAgYnJlYWs7CisrCWRlZmF1bHQ6CisrCSAgYWJvcnQg KCk7CisrCX0KKysgICAgICBpZiAoaGFkX2Vycm9yID09IDApCisrCSsraGF2ZWFuc3dlcjsKKysg ICAgfQorKworKyAgaWYgKGhhdmVhbnN3ZXIgPiAwKQorKyAgICB7CisrICAgICAgKmFwID0gTlVM TDsKKysgICAgICAqaGFwID0gTlVMTDsKKysgICAgICAvKgorKyAgICAgICAqIE5vdGU6IHdlIHNv cnQgZXZlbiBpZiBob3N0IGNhbiB0YWtlIG9ubHkgb25lIGFkZHJlc3MKKysgICAgICAgKiBpbiBp dHMgcmV0dXJuIHN0cnVjdHVyZXMgLSBzaG91bGQgZ2l2ZSBpdCB0aGUgImJlc3QiCisrICAgICAg ICogYWRkcmVzcyBpbiB0aGF0IGNhc2UsIG5vdCBzb21lIHJhbmRvbSBvbmUKKysgICAgICAgKi8K KysgICAgICBpZiAoaGF2ZWFuc3dlciA+IDEgJiYgcXR5cGUgPT0gVF9BCisrCSAgJiYgX19yZXNv bHZfY29udGV4dF9zb3J0X2NvdW50IChjdHgpID4gMCkKKysJYWRkcnNvcnQgKGN0eCwgaG9zdF9k YXRhLT5oX2FkZHJfcHRycywgaGF2ZWFuc3dlcik7CisrCisrICAgICAgaWYgKHJlc3VsdC0+aF9u YW1lID09IE5VTEwpCisrCXsKKysJICBuID0gc3RybGVuIChxbmFtZSkgKyAxOwkvKiBGb3IgdGhl IFwwLiAgKi8KKysJICBpZiAobiA+IGxpbmVidWZsZW4pCisrCSAgICBnb3RvIHRvb19zbWFsbDsK KysJICBpZiAobiA+PSBNQVhIT1NUTkFNRUxFTikKKysJICAgIGdvdG8gbm9fcmVjb3Zlcnk7Cisr CSAgcmVzdWx0LT5oX25hbWUgPSBicDsKKysJICBicCA9IF9fbWVtcGNweSAoYnAsIHFuYW1lLCBu KTsJLyogQ2Fubm90IG92ZXJmbG93LiAgKi8KKysJICBsaW5lYnVmbGVuIC09IG47CisrCX0KKysK KysgICAgICBpZiAoaGF2ZV90b19tYXApCisrCWlmIChtYXBfdjR2Nl9ob3N0ZW50IChyZXN1bHQs ICZicCwgJmxpbmVidWZsZW4pKQorKwkgIGdvdG8gdG9vX3NtYWxsOworKyAgICAgICpoX2Vycm5v cCA9IE5FVERCX1NVQ0NFU1M7CisrICAgICAgcmV0dXJuIE5TU19TVEFUVVNfU1VDQ0VTUzsKKysg ICAgfQorKyBub19yZWNvdmVyeToKKysgICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOworKyAgKmVy cm5vcCA9IEVOT0VOVDsKKysgIC8qIFNwZWNpYWwgY2FzZSBoZXJlOiBpZiB0aGUgcmVzb2x2ZXIg c2VudCBhIHJlc3VsdCBidXQgaXQgb25seQorKyAgICAgY29udGFpbnMgYSBDTkFNRSB3aGlsZSB3 ZSBhcmUgbG9va2luZyBmb3IgYSBUX0Egb3IgVF9BQUFBIHJlY29yZCwKKysgICAgIHdlIGZhaWwg d2l0aCBOT1RGT1VORCBpbnN0ZWFkIG9mIFRSWUFHQUlOLiAgKi8KKysgIHJldHVybiAoKHF0eXBl ID09IFRfQSB8fCBxdHlwZSA9PSBUX0FBQUEpICYmIGFwICE9IGhvc3RfZGF0YS0+YWxpYXNlcwor KwkgICA/IE5TU19TVEFUVVNfTk9URk9VTkQgOiBOU1NfU1RBVFVTX1RSWUFHQUlOKTsKKyt9Cisr Cisrc3RhdGljIGVudW0gbnNzX3N0YXR1cworK2dldGFuc3dlcl9wdHIgKGNvbnN0IHF1ZXJ5YnVm ICphbnN3ZXIsIGludCBhbnNsZW4sIGNvbnN0IGNoYXIgKnFuYW1lLAorKwkgICAgICAgc3RydWN0 IGhvc3RlbnQgKnJlc3VsdCwgY2hhciAqYnVmZmVyLCBzaXplX3QgYnVmbGVuLAorKwkgICAgICAg aW50ICplcnJub3AsIGludCAqaF9lcnJub3AsIGludDMyX3QgKnR0bHApCisreworKyAgc3RydWN0 IGhvc3RfZGF0YQorKyAgeworKyAgICBjaGFyICphbGlhc2VzW01BWF9OUl9BTElBU0VTXTsKKysg ICAgdW5zaWduZWQgY2hhciBob3N0X2FkZHJbMTZdOwkvKiBJUHY0IG9yIElQdjYgKi8KKysgICAg Y2hhciAqaF9hZGRyX3B0cnNbMF07CisrICB9ICpob3N0X2RhdGE7CisrICBpbnQgbGluZWJ1Zmxl bjsKKysgIGNvbnN0IEhFQURFUiAqaHA7CisrICBjb25zdCB1X2NoYXIgKmVuZF9vZl9tZXNzYWdl LCAqY3A7CisrICBpbnQgbiwgYW5jb3VudCwgcWRjb3VudDsKKysgIGludCBoYXZlYW5zd2VyLCBo YWRfZXJyb3I7CisrICBjaGFyICpicCwgKiphcCwgKipoYXA7CisrICBjaGFyIHRidWZbTUFYRE5B TUVdOworKyAgY29uc3QgY2hhciAqdG5hbWU7CisrICB1X2NoYXIgcGFja3RtcFtOU19NQVhDRE5B TUVdOworKyAgdWludHB0cl90IHBhZCA9IC0odWludHB0cl90KSBidWZmZXIgJSBfX2FsaWdub2Zf XyAoc3RydWN0IGhvc3RfZGF0YSk7CisrICBidWZmZXIgKz0gcGFkOworKyAgYnVmbGVuID0gYnVm bGVuID4gcGFkID8gYnVmbGVuIC0gcGFkIDogMDsKKysgIGlmIChfX2dsaWJjX3VubGlrZWx5IChi dWZsZW4gPCBzaXplb2YgKHN0cnVjdCBob3N0X2RhdGEpKSkKKysgICAgeworKyAgICAgIC8qIFRo ZSBidWZmZXIgaXMgdG9vIHNtYWxsLiAgKi8KKysgICAgdG9vX3NtYWxsOgorKyAgICAgICplcnJu b3AgPSBFUkFOR0U7CisrICAgICAgKmhfZXJybm9wID0gTkVUREJfSU5URVJOQUw7CisrICAgICAg cmV0dXJuIE5TU19TVEFUVVNfVFJZQUdBSU47CisrICAgIH0KKysgIGhvc3RfZGF0YSA9IChzdHJ1 Y3QgaG9zdF9kYXRhICopIGJ1ZmZlcjsKKysgIGxpbmVidWZsZW4gPSBidWZsZW4gLSBzaXplb2Yg KHN0cnVjdCBob3N0X2RhdGEpOworKyAgaWYgKGJ1ZmxlbiAtIHNpemVvZiAoc3RydWN0IGhvc3Rf ZGF0YSkgIT0gbGluZWJ1ZmxlbikKKysgICAgbGluZWJ1ZmxlbiA9IElOVF9NQVg7CisrCisrICB0 bmFtZSA9IHFuYW1lOworKyAgcmVzdWx0LT5oX25hbWUgPSBOVUxMOworKyAgZW5kX29mX21lc3Nh Z2UgPSBhbnN3ZXItPmJ1ZiArIGFuc2xlbjsKKysKKysgIC8qCisrICAgKiBmaW5kIGZpcnN0IHNh dGlzZmFjdG9yeSBhbnN3ZXIKKysgICAqLworKyAgaHAgPSAmYW5zd2VyLT5oZHI7CisrICBhbmNv dW50ID0gbnRvaHMgKGhwLT5hbmNvdW50KTsKKysgIHFkY291bnQgPSBudG9ocyAoaHAtPnFkY291 bnQpOworKyAgY3AgPSBhbnN3ZXItPmJ1ZiArIEhGSVhFRFNaOworKyAgaWYgKF9fZ2xpYmNfdW5s aWtlbHkgKHFkY291bnQgIT0gMSkpCisrICAgIHsKKysgICAgICAqaF9lcnJub3AgPSBOT19SRUNP VkVSWTsKKysgICAgICByZXR1cm4gTlNTX1NUQVRVU19VTkFWQUlMOworKyAgICB9CisrICBpZiAo c2l6ZW9mIChzdHJ1Y3QgaG9zdF9kYXRhKSArIChhbmNvdW50ICsgMSkgKiBzaXplb2YgKGNoYXIg KikgPj0gYnVmbGVuKQorKyAgICBnb3RvIHRvb19zbWFsbDsKKysgIGJwID0gKGNoYXIgKikgJmhv c3RfZGF0YS0+aF9hZGRyX3B0cnNbYW5jb3VudCArIDFdOworKyAgbGluZWJ1ZmxlbiAtPSAoYW5j b3VudCArIDEpICogc2l6ZW9mIChjaGFyICopOworKworKyAgbiA9IF9fbnNfbmFtZV91bnBhY2sg KGFuc3dlci0+YnVmLCBlbmRfb2ZfbWVzc2FnZSwgY3AsCisrCQkJcGFja3RtcCwgc2l6ZW9mIHBh Y2t0bXApOworKyAgaWYgKG4gIT0gLTEgJiYgX19uc19uYW1lX250b3AgKHBhY2t0bXAsIGJwLCBs aW5lYnVmbGVuKSA9PSAtMSkKKysgICAgeworKyAgICAgIGlmIChfX2dsaWJjX3VubGlrZWx5IChl cnJubyA9PSBFTVNHU0laRSkpCisrCWdvdG8gdG9vX3NtYWxsOworKworKyAgICAgIG4gPSAtMTsK KysgICAgfQorKworKyAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAwKSkKKysgICAgeworKyAg ICAgICplcnJub3AgPSBlcnJubzsKKysgICAgICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsKKysg ICAgICByZXR1cm4gTlNTX1NUQVRVU19VTkFWQUlMOworKyAgICB9CisrICBpZiAoX19nbGliY191 bmxpa2VseSAoX19saWJjX3Jlc19kbm9rIChicCkgPT0gMCkpCisrICAgIHsKKysgICAgICBlcnJu byA9IEVCQURNU0c7CisrICAgICAgKmVycm5vcCA9IEVCQURNU0c7CisrICAgICAgKmhfZXJybm9w ID0gTk9fUkVDT1ZFUlk7CisrICAgICAgcmV0dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKysgICAg fQorKyAgY3AgKz0gbiArIFFGSVhFRFNaOworKworKyAgYXAgPSBob3N0X2RhdGEtPmFsaWFzZXM7 CisrICAqYXAgPSBOVUxMOworKyAgcmVzdWx0LT5oX2FsaWFzZXMgPSBob3N0X2RhdGEtPmFsaWFz ZXM7CisrICBoYXAgPSBob3N0X2RhdGEtPmhfYWRkcl9wdHJzOworKyAgKmhhcCA9IE5VTEw7Cisr ICByZXN1bHQtPmhfYWRkcl9saXN0ID0gaG9zdF9kYXRhLT5oX2FkZHJfcHRyczsKKysgIGhhdmVh bnN3ZXIgPSAwOworKyAgaGFkX2Vycm9yID0gMDsKKysKKysgIHdoaWxlIChhbmNvdW50LS0gPiAw ICYmIGNwIDwgZW5kX29mX21lc3NhZ2UgJiYgaGFkX2Vycm9yID09IDApCisrICAgIHsKKysgICAg ICBpbnQgdHlwZSwgY2xhc3M7CisrCisrICAgICAgbiA9IF9fbnNfbmFtZV91bnBhY2sgKGFuc3dl ci0+YnVmLCBlbmRfb2ZfbWVzc2FnZSwgY3AsCisrCQkJICAgIHBhY2t0bXAsIHNpemVvZiBwYWNr dG1wKTsKKysgICAgICBpZiAobiAhPSAtMSAmJiBfX25zX25hbWVfbnRvcCAocGFja3RtcCwgYnAs IGxpbmVidWZsZW4pID09IC0xKQorKwl7CisrCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGVycm5v ID09IEVNU0dTSVpFKSkKKysJICAgIGdvdG8gdG9vX3NtYWxsOworKworKwkgIG4gPSAtMTsKKysJ fQorKworKyAgICAgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwgMCB8fCBfX2xpYmNfcmVzX2Ru b2sgKGJwKSA9PSAwKSkKKysJeworKwkgICsraGFkX2Vycm9yOworKwkgIGNvbnRpbnVlOworKwl9 CisrICAgICAgY3AgKz0gbjsJCQkJLyogbmFtZSAqLworKworKyAgICAgIGlmIChfX2dsaWJjX3Vu bGlrZWx5IChjcCArIDEwID4gZW5kX29mX21lc3NhZ2UpKQorKwl7CisrCSAgKytoYWRfZXJyb3I7 CisrCSAgY29udGludWU7CisrCX0KKysKKysgICAgICBOU19HRVQxNiAodHlwZSwgY3ApOworKyAg ICAgIE5TX0dFVDE2IChjbGFzcywgY3ApOworKyAgICAgIGludDMyX3QgdHRsOworKyAgICAgIE5T X0dFVDMyICh0dGwsIGNwKTsKKysgICAgICBOU19HRVQxNiAobiwgY3ApOwkJLyogUkRBVEEgbGVu Z3RoLiAgKi8KKysKKysgICAgICBpZiAoZW5kX29mX21lc3NhZ2UgLSBjcCA8IG4pCisrCXsKKysJ ICAvKiBSREFUQSBleHRlbmRzIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBwYWNrZXQuICAqLworKwkg ICsraGFkX2Vycm9yOworKwkgIGNvbnRpbnVlOworKwl9CisrCisrICAgICAgaWYgKF9fZ2xpYmNf dW5saWtlbHkgKGNsYXNzICE9IENfSU4pKQorKwl7CisrCSAgLyogWFhYIC0gZGVidWc/IHN5c2xv Zz8gKi8KKysJICBjcCArPSBuOworKwkgIGNvbnRpbnVlOwkJCS8qIFhYWCAtIGhhZF9lcnJvcisr ID8gKi8KKysJfQorKworKyAgICAgIGlmICh0eXBlID09IFRfQ05BTUUpCisgCXsKKyAJICAvKiBB IENOQU1FIGNvdWxkIGFsc28gaGF2ZSBhIFRUTCBlbnRyeS4gICovCisgCSAgaWYgKHR0bHAgIT0g TlVMTCAmJiB0dGwgPCAqdHRscCkKK0BAIC04ODYsMTQgKzExMjcsNiBAQCBnZXRhbnN3ZXJfciAo c3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsCisgCSAgY29udGludWU7CisgCX0KKyAKKy0gICAg ICBpZiAodHlwZSA9PSBUX0EgJiYgcXR5cGUgPT0gVF9BQUFBICYmIG1hcCkKKy0JaGF2ZV90b19t YXAgPSAxOworLSAgICAgIGVsc2UgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKHR5cGUgIT0gcXR5cGUp KQorLQl7CistCSAgY3AgKz0gbjsKKy0JICBjb250aW51ZTsJCQkvKiBYWFggLSBoYWRfZXJyb3Ir KyA/ICovCistCX0KKy0KKyAgICAgICBzd2l0Y2ggKHR5cGUpCisgCXsKKyAJY2FzZSBUX1BUUjoK K0BAIC05NTUsOCArMTE4OCw2IEBAIGdldGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQg KmN0eCwKKyAJCSBUVEwgaW4gdGhlIGNoYWluLiAgKi8KKyAJICAgICAgaWYgKHR0bHAgIT0gTlVM TCAmJiB0dGwgPCAqdHRscCkKKyAJCSp0dGxwID0gdHRsOworLQkgICAgICBpZiAoY2Fub25wICE9 IE5VTEwpCistCQkqY2Fub25wID0gYnA7CisgCSAgICAgIHJlc3VsdC0+aF9uYW1lID0gYnA7Cisg CSAgICAgIG5uID0gc3RybGVuIChicCkgKyAxOwkvKiBmb3IgdGhlIFwwICovCisgCSAgICAgIGJw ICs9IG5uOworQEAgLTk4Myw3ICsxMjE0LDggQEAgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZf Y29udGV4dCAqY3R4LAorIAkgIGxpbmVidWZsZW4gLT0gbjsKKyAJICBicmVhazsKKyAJZGVmYXVs dDoKKy0JICBhYm9ydCAoKTsKKysJICBjcCArPSBuOworKwkgIGNvbnRpbnVlOwkJCS8qIFhYWCAt IGhhZF9lcnJvcisrID8gKi8KKyAJfQorICAgICAgIGlmIChoYWRfZXJyb3IgPT0gMCkKKyAJKyto YXZlYW5zd2VyOworQEAgLTk5MywxNCArMTIyNSw2IEBAIGdldGFuc3dlcl9yIChzdHJ1Y3QgcmVz b2x2X2NvbnRleHQgKmN0eCwKKyAgICAgeworICAgICAgICphcCA9IE5VTEw7CisgICAgICAgKmhh cCA9IE5VTEw7CistICAgICAgLyoKKy0gICAgICAgKiBOb3RlOiB3ZSBzb3J0IGV2ZW4gaWYgaG9z dCBjYW4gdGFrZSBvbmx5IG9uZSBhZGRyZXNzCistICAgICAgICogaW4gaXRzIHJldHVybiBzdHJ1 Y3R1cmVzIC0gc2hvdWxkIGdpdmUgaXQgdGhlICJiZXN0IgorLSAgICAgICAqIGFkZHJlc3MgaW4g dGhhdCBjYXNlLCBub3Qgc29tZSByYW5kb20gb25lCistICAgICAgICovCistICAgICAgaWYgKGhh dmVhbnN3ZXIgPiAxICYmIHF0eXBlID09IFRfQQorLQkgICYmIF9fcmVzb2x2X2NvbnRleHRfc29y dF9jb3VudCAoY3R4KSA+IDApCistCWFkZHJzb3J0IChjdHgsIGhvc3RfZGF0YS0+aF9hZGRyX3B0 cnMsIGhhdmVhbnN3ZXIpOworIAorICAgICAgIGlmIChyZXN1bHQtPmhfbmFtZSA9PSBOVUxMKQor IAl7CitAQCAtMTAxNCwyMyArMTIzOCwxNSBAQCBnZXRhbnN3ZXJfciAoc3RydWN0IHJlc29sdl9j b250ZXh0ICpjdHgsCisgCSAgbGluZWJ1ZmxlbiAtPSBuOworIAl9CisgCistICAgICAgaWYgKGhh dmVfdG9fbWFwKQorLQlpZiAobWFwX3Y0djZfaG9zdGVudCAocmVzdWx0LCAmYnAsICZsaW5lYnVm bGVuKSkKKy0JICBnb3RvIHRvb19zbWFsbDsKKyAgICAgICAqaF9lcnJub3AgPSBORVREQl9TVUND RVNTOworICAgICAgIHJldHVybiBOU1NfU1RBVFVTX1NVQ0NFU1M7CisgICAgIH0KKyAgbm9fcmVj b3Zlcnk6CisgICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsKKyAgICplcnJub3AgPSBFTk9FTlQ7 CistICAvKiBTcGVjaWFsIGNhc2UgaGVyZTogaWYgdGhlIHJlc29sdmVyIHNlbnQgYSByZXN1bHQg YnV0IGl0IG9ubHkKKy0gICAgIGNvbnRhaW5zIGEgQ05BTUUgd2hpbGUgd2UgYXJlIGxvb2tpbmcg Zm9yIGEgVF9BIG9yIFRfQUFBQSByZWNvcmQsCistICAgICB3ZSBmYWlsIHdpdGggTk9URk9VTkQg aW5zdGVhZCBvZiBUUllBR0FJTi4gICovCistICByZXR1cm4gKChxdHlwZSA9PSBUX0EgfHwgcXR5 cGUgPT0gVF9BQUFBKSAmJiBhcCAhPSBob3N0X2RhdGEtPmFsaWFzZXMKKy0JICAgPyBOU1NfU1RB VFVTX05PVEZPVU5EIDogTlNTX1NUQVRVU19UUllBR0FJTik7CisrICByZXR1cm4gTlNTX1NUQVRV U19UUllBR0FJTjsKKyB9CisgCistCisgc3RhdGljIGVudW0gbnNzX3N0YXR1cworIGdhaWhfZ2V0 YW5zd2VyX3NsaWNlIChjb25zdCBxdWVyeWJ1ZiAqYW5zd2VyLCBpbnQgYW5zbGVuLCBjb25zdCBj aGFyICpxbmFtZSwKKyAJCSAgICAgIHN0cnVjdCBnYWloX2FkZHJ0dXBsZSAqKipwYXRwLAorLS0g CisyLjM4LjEKKworCitGcm9tIDc3ZjUyM2M0NzM4NzhlYzAwNTE1ODJlZjE1MTYxYzY5ODI4Nzkw OTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1l ckByZWRoYXQuY29tPgorRGF0ZTogVHVlLCAzMCBBdWcgMjAyMiAxMDowMjo0OSArMDIwMAorU3Vi amVjdDogbnNzX2RuczogUmV3cml0ZSBfbnNzX2Ruc19nZXRob3N0YnlhZGRyMl9yIGFuZCBnZXRh bnN3ZXJfcHRyCisKK1RoZSBzaW1wbGlmaWNhdGlvbiB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhlIHNw bGl0IGZyb20gZ2V0YW5zd2VyX3IuCitJdCBmaXhlcyB2YXJpb3VzIGFsaWFzZXMgaXNzdWVzLCBh bmQgb3B0aW1pemVzIE5TUyBidWZmZXIgdXNhZ2UuCitUaGUgbmV3IEROUyBwYWNrZXQgcGFyc2lu ZyBoZWxwZXJzIGFyZSB1c2VkLCB0b28uCisKK1Jldmlld2VkLWJ5OiBTaWRkaGVzaCBQb3lhcmVr YXIgPHNpZGRoZXNoQHNvdXJjZXdhcmUub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQg ZTMyNTQ3ZDY2MWE0M2RhNjMzNjhlNDg4YjZjZmE5YzUzYjRkY2Y5MikKKy0tLQorIHJlc29sdi9u c3NfZG5zL2Rucy1ob3N0LmMgfCA0MDUgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTAyIGluc2VydGlvbnMoKyksIDMwMyBkZWxldGlvbnMo LSkKKworZGlmZiAtLWdpdCBhL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMgYi9yZXNvbHYvbnNz X2Rucy9kbnMtaG9zdC5jCitpbmRleCBkMzg0ZTFmODJkLi5jZDI2Mzk5YjdlIDEwMDY0NAorLS0t IGEvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYworKysrIGIvcmVzb2x2L25zc19kbnMvZG5zLWhv c3QuYworQEAgLTY5LDYgKzY5LDcgQEAKKyAgKiAtLUNvcHlyaWdodC0tCisgICovCisgCisrI2lu Y2x1ZGUgPGFsbG9jX2J1ZmZlci5oPgorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8 Y3R5cGUuaD4KKyAjaW5jbHVkZSA8ZXJybm8uaD4KK0BAIC0xMTYsMTAgKzExNyw5IEBAIHN0YXRp YyBlbnVtIG5zc19zdGF0dXMgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4 LAorIAkJCQkgICAgc3RydWN0IGhvc3RlbnQgKnJlc3VsdCwgY2hhciAqYnVmZmVyLAorIAkJCQkg ICAgc2l6ZV90IGJ1ZmxlbiwgaW50ICplcnJub3AsIGludCAqaF9lcnJub3AsCisgCQkJCSAgICBp bnQgbWFwLCBpbnQzMl90ICp0dGxwLCBjaGFyICoqY2Fub25wKTsKKy1zdGF0aWMgZW51bSBuc3Nf c3RhdHVzIGdldGFuc3dlcl9wdHIgKGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIsIGludCBhbnNsZW4s CistCQkJCSAgICAgIGNvbnN0IGNoYXIgKnFuYW1lLAorLQkJCQkgICAgICBzdHJ1Y3QgaG9zdGVu dCAqcmVzdWx0LCBjaGFyICpidWZmZXIsCistCQkJCSAgICAgIHNpemVfdCBidWZsZW4sIGludCAq ZXJybm9wLAorK3N0YXRpYyBlbnVtIG5zc19zdGF0dXMgZ2V0YW5zd2VyX3B0ciAodW5zaWduZWQg Y2hhciAqcGFja2V0LCBzaXplX3QgcGFja2V0bGVuLAorKwkJCQkgICAgICBzdHJ1Y3QgYWxsb2Nf YnVmZmVyICphYnVmLAorKwkJCQkgICAgICBjaGFyICoqaG5hbWVwLCBpbnQgKmVycm5vcCwKKyAJ CQkJICAgICAgaW50ICpoX2Vycm5vcCwgaW50MzJfdCAqdHRscCk7CisgCisgc3RhdGljIGVudW0g bnNzX3N0YXR1cyBnYWloX2dldGFuc3dlciAoY29uc3QgcXVlcnlidWYgKmFuc3dlcjEsIGludCBh bnNsZW4xLAorQEAgLTQ1NiwzNiArNDU2LDIxIEBAIF9uc3NfZG5zX2dldGhvc3RieWFkZHIyX3Ig KGNvbnN0IHZvaWQgKmFkZHIsIHNvY2tsZW5fdCBsZW4sIGludCBhZiwKKyAgIHN0YXRpYyBjb25z dCB1X2NoYXIgdHVubmVsbGVkW10gPSB7IDAsMCwgMCwwLCAwLDAsIDAsMCwgMCwwLCAwLDAgfTsK KyAgIHN0YXRpYyBjb25zdCB1X2NoYXIgdjZsb2NhbFtdID0geyAwLDAsIDAsMSB9OworICAgY29u c3QgdV9jaGFyICp1YWRkciA9IChjb25zdCB1X2NoYXIgKilhZGRyOworLSAgc3RydWN0IGhvc3Rf ZGF0YQorLSAgeworLSAgICBjaGFyICphbGlhc2VzW01BWF9OUl9BTElBU0VTXTsKKy0gICAgdW5z aWduZWQgY2hhciBob3N0X2FkZHJbMTZdOwkvKiBJUHY0IG9yIElQdjYgKi8KKy0gICAgY2hhciAq aF9hZGRyX3B0cnNbTUFYX05SX0FERFJTICsgMV07CistICAgIGNoYXIgbGluZWJ1ZmZlclswXTsK Ky0gIH0gKmhvc3RfZGF0YSA9IChzdHJ1Y3QgaG9zdF9kYXRhICopIGJ1ZmZlcjsKKy0gIHVuaW9u CistICB7CistICAgIHF1ZXJ5YnVmICpidWY7CistICAgIHVfY2hhciAqcHRyOworLSAgfSBob3N0 X2J1ZmZlcjsKKy0gIHF1ZXJ5YnVmICpvcmlnX2hvc3RfYnVmZmVyOworICAgY2hhciBxYnVmW01B WEROQU1FKzFdLCAqcXAgPSBOVUxMOworICAgc2l6ZV90IHNpemU7CisgICBpbnQgbiwgc3RhdHVz OworICAgaW50IG9sZGVyciA9IGVycm5vOworIAorLSB1aW50cHRyX3QgcGFkID0gLSh1aW50cHRy X3QpIGJ1ZmZlciAlIF9fYWxpZ25vZl9fIChzdHJ1Y3QgaG9zdF9kYXRhKTsKKy0gYnVmZmVyICs9 IHBhZDsKKy0gYnVmbGVuID0gYnVmbGVuID4gcGFkID8gYnVmbGVuIC0gcGFkIDogMDsKKy0KKy0g aWYgKF9fZ2xpYmNfdW5saWtlbHkgKGJ1ZmxlbiA8IHNpemVvZiAoc3RydWN0IGhvc3RfZGF0YSkp KQorLSAgIHsKKy0gICAgICplcnJub3AgPSBFUkFOR0U7CistICAgICAqaF9lcnJub3AgPSBORVRE Ql9JTlRFUk5BTDsKKy0gICAgIHJldHVybiBOU1NfU1RBVFVTX1RSWUFHQUlOOworLSAgIH0KKy0K Ky0gaG9zdF9kYXRhID0gKHN0cnVjdCBob3N0X2RhdGEgKikgYnVmZmVyOworKyAgLyogUHJlcGFy ZSB0aGUgYWxsb2NhdGlvbiBidWZmZXIuICBTdG9yZSB0aGUgcG9pbnRlciBhcnJheSBmaXJzdCwg dG8KKysgICAgIGJlbmVmaXQgZnJvbSBidWZmZXIgYWxpZ25tZW50LiAgKi8KKysgIHN0cnVjdCBh bGxvY19idWZmZXIgYWJ1ZiA9IGFsbG9jX2J1ZmZlcl9jcmVhdGUgKGJ1ZmZlciwgYnVmbGVuKTsK KysgIGNoYXIgKiphZGRyZXNzX2FycmF5ID0gYWxsb2NfYnVmZmVyX2FsbG9jX2FycmF5ICgmYWJ1 ZiwgY2hhciAqLCAyKTsKKysgIGlmIChhZGRyZXNzX2FycmF5ID09IE5VTEwpCisrICAgIHsKKysg ICAgICAqZXJybm9wID0gRVJBTkdFOworKyAgICAgICpoX2Vycm5vcCA9IE5FVERCX0lOVEVSTkFM OworKyAgICAgIHJldHVybiBOU1NfU1RBVFVTX1RSWUFHQUlOOworKyAgICB9CisgCisgICBzdHJ1 Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCA9IF9fcmVzb2x2X2NvbnRleHRfZ2V0ICgpOworICAgaWYg KGN0eCA9PSBOVUxMKQorQEAgLTUyOSw4ICs1MTQsNiBAQCBfbnNzX2Ruc19nZXRob3N0YnlhZGRy Ml9yIChjb25zdCB2b2lkICphZGRyLCBzb2NrbGVuX3QgbGVuLCBpbnQgYWYsCisgICAgICAgcmV0 dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKyAgICAgfQorIAorLSAgaG9zdF9idWZmZXIuYnVmID0g b3JpZ19ob3N0X2J1ZmZlciA9IChxdWVyeWJ1ZiAqKSBhbGxvY2EgKDEwMjQpOworLQorICAgc3dp dGNoIChhZikKKyAgICAgeworICAgICBjYXNlIEFGX0lORVQ6CitAQCAtNTU0LDM1ICs1MzcsNTIg QEAgX25zc19kbnNfZ2V0aG9zdGJ5YWRkcjJfciAoY29uc3Qgdm9pZCAqYWRkciwgc29ja2xlbl90 IGxlbiwgaW50IGFmLAorICAgICAgIGJyZWFrOworICAgICB9CisgCistICBuID0gX19yZXNfY29u dGV4dF9xdWVyeSAoY3R4LCBxYnVmLCBDX0lOLCBUX1BUUiwgaG9zdF9idWZmZXIuYnVmLT5idWYs CistCQkJICAgMTAyNCwgJmhvc3RfYnVmZmVyLnB0ciwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7 CisrICB1bnNpZ25lZCBjaGFyIGRuc19wYWNrZXRfYnVmZmVyWzEwMjRdOworKyAgdW5zaWduZWQg Y2hhciAqYWx0X2Ruc19wYWNrZXRfYnVmZmVyID0gZG5zX3BhY2tldF9idWZmZXI7CisrICBuID0g X19yZXNfY29udGV4dF9xdWVyeSAoY3R4LCBxYnVmLCBDX0lOLCBUX1BUUiwKKysJCQkgICBkbnNf cGFja2V0X2J1ZmZlciwgc2l6ZW9mIChkbnNfcGFja2V0X2J1ZmZlciksCisrCQkJICAgJmFsdF9k bnNfcGFja2V0X2J1ZmZlciwKKysJCQkgICBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgIGlm IChuIDwgMCkKKyAgICAgeworICAgICAgICpoX2Vycm5vcCA9IGhfZXJybm87CisgICAgICAgX19z ZXRfZXJybm8gKG9sZGVycik7CistICAgICAgaWYgKGhvc3RfYnVmZmVyLmJ1ZiAhPSBvcmlnX2hv c3RfYnVmZmVyKQorLQlmcmVlIChob3N0X2J1ZmZlci5idWYpOworKyAgICAgIGlmIChhbHRfZG5z X3BhY2tldF9idWZmZXIgIT0gZG5zX3BhY2tldF9idWZmZXIpCisrCWZyZWUgKGFsdF9kbnNfcGFj a2V0X2J1ZmZlcik7CisgICAgICAgX19yZXNvbHZfY29udGV4dF9wdXQgKGN0eCk7CisgICAgICAg cmV0dXJuIGVycm5vID09IEVDT05OUkVGVVNFRCA/IE5TU19TVEFUVVNfVU5BVkFJTCA6IE5TU19T VEFUVVNfTk9URk9VTkQ7CisgICAgIH0KKyAKKy0gIHN0YXR1cyA9IGdldGFuc3dlcl9wdHIgKGhv c3RfYnVmZmVyLmJ1ZiwgbiwgcWJ1ZiwgcmVzdWx0LAorLQkJCSAgYnVmZmVyLCBidWZsZW4sIGVy cm5vcCwgaF9lcnJub3AsIHR0bHApOworLSAgaWYgKGhvc3RfYnVmZmVyLmJ1ZiAhPSBvcmlnX2hv c3RfYnVmZmVyKQorLSAgICBmcmVlIChob3N0X2J1ZmZlci5idWYpOworKyAgc3RhdHVzID0gZ2V0 YW5zd2VyX3B0ciAoYWx0X2Ruc19wYWNrZXRfYnVmZmVyLCBuLAorKwkJCSAgJmFidWYsICZyZXN1 bHQtPmhfbmFtZSwgZXJybm9wLCBoX2Vycm5vcCwgdHRscCk7CisrCisrICBpZiAoYWx0X2Ruc19w YWNrZXRfYnVmZmVyICE9IGRuc19wYWNrZXRfYnVmZmVyKQorKyAgICBmcmVlIChhbHRfZG5zX3Bh Y2tldF9idWZmZXIpOworKyAgX19yZXNvbHZfY29udGV4dF9wdXQgKGN0eCk7CisrCisgICBpZiAo c3RhdHVzICE9IE5TU19TVEFUVVNfU1VDQ0VTUykKKy0gICAgeworLSAgICAgIF9fcmVzb2x2X2Nv bnRleHRfcHV0IChjdHgpOworLSAgICAgIHJldHVybiBzdGF0dXM7CistICAgIH0KKysgICAgcmV0 dXJuIHN0YXR1czsKKyAKKysgIC8qIHJlc3VsdC0+aF9uYW1lIGhhcyBhbHJlYWR5IGJlZW4gc2V0 IGJ5IGdldGFuc3dlcl9wdHIuICAqLworICAgcmVzdWx0LT5oX2FkZHJ0eXBlID0gYWY7CisgICBy ZXN1bHQtPmhfbGVuZ3RoID0gbGVuOworLSAgbWVtY3B5IChob3N0X2RhdGEtPmhvc3RfYWRkciwg YWRkciwgbGVuKTsKKy0gIGhvc3RfZGF0YS0+aF9hZGRyX3B0cnNbMF0gPSAoY2hhciAqKSBob3N0 X2RhdGEtPmhvc3RfYWRkcjsKKy0gIGhvc3RfZGF0YS0+aF9hZGRyX3B0cnNbMV0gPSBOVUxMOwor KyAgLyogSW5jcmVhc2UgdGhlIGFsaWdubWVudCB0byA0LCBpbiBjYXNlIHRoZXJlIGFyZSBhcHBs aWNhdGlvbnMgb3V0CisrICAgICB0aGVyZSB0aGF0IGV4cGVjdCBhdCBsZWFzdCB0aGlzIGxldmVs IG9mIGFkZHJlc3MgYWxpZ25tZW50LiAgKi8KKysgIGFkZHJlc3NfYXJyYXlbMF0gPSAoY2hhciAq KSBhbGxvY19idWZmZXJfbmV4dCAoJmFidWYsIHVpbnQzMl90KTsKKysgIGFsbG9jX2J1ZmZlcl9j b3B5X2J5dGVzICgmYWJ1ZiwgdWFkZHIsIGxlbik7CisrICBhZGRyZXNzX2FycmF5WzFdID0gTlVM TDsKKysKKysgIC8qIFRoaXMgY2hlY2sgYWxzbyBjb3ZlcnMgYWxsb2NhdGlvbiBmYWlsdXJlIGlu IGdldGFuc3dlcl9wdHIuICAqLworKyAgaWYgKGFsbG9jX2J1ZmZlcl9oYXNfZmFpbGVkICgmYWJ1 ZikpCisrICAgIHsKKysgICAgICAqZXJybm9wID0gRVJBTkdFOworKyAgICAgICpoX2Vycm5vcCA9 IE5FVERCX0lOVEVSTkFMOworKyAgICAgIHJldHVybiBOU1NfU1RBVFVTX1RSWUFHQUlOOworKyAg ICB9CisrICByZXN1bHQtPmhfYWRkcl9saXN0ID0gYWRkcmVzc19hcnJheTsKKysgIHJlc3VsdC0+ aF9hbGlhc2VzID0gJmFkZHJlc3NfYXJyYXlbMV07IC8qIFBvaW50cyB0byBOVUxMLiAgKi8KKysK KyAgICpoX2Vycm5vcCA9IE5FVERCX1NVQ0NFU1M7CistICBfX3Jlc29sdl9jb250ZXh0X3B1dCAo Y3R4KTsKKyAgIHJldHVybiBOU1NfU1RBVFVTX1NVQ0NFU1M7CisgfQorIGxpYmNfaGlkZGVuX2Rl ZiAoX25zc19kbnNfZ2V0aG9zdGJ5YWRkcjJfcikKK0BAIC05NjEsMjg3ICs5NjEsODYgQEAgZ2V0 YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorIH0KKyAKKyBzdGF0aWMgZW51 bSBuc3Nfc3RhdHVzCistZ2V0YW5zd2VyX3B0ciAoY29uc3QgcXVlcnlidWYgKmFuc3dlciwgaW50 IGFuc2xlbiwgY29uc3QgY2hhciAqcW5hbWUsCistCSAgICAgICBzdHJ1Y3QgaG9zdGVudCAqcmVz dWx0LCBjaGFyICpidWZmZXIsIHNpemVfdCBidWZsZW4sCisrZ2V0YW5zd2VyX3B0ciAodW5zaWdu ZWQgY2hhciAqcGFja2V0LCBzaXplX3QgcGFja2V0bGVuLAorKwkgICAgICAgc3RydWN0IGFsbG9j X2J1ZmZlciAqYWJ1ZiwgY2hhciAqKmhuYW1lcCwKKyAJICAgICAgIGludCAqZXJybm9wLCBpbnQg KmhfZXJybm9wLCBpbnQzMl90ICp0dGxwKQorIHsKKy0gIHN0cnVjdCBob3N0X2RhdGEKKy0gIHsK Ky0gICAgY2hhciAqYWxpYXNlc1tNQVhfTlJfQUxJQVNFU107CistICAgIHVuc2lnbmVkIGNoYXIg aG9zdF9hZGRyWzE2XTsJLyogSVB2NCBvciBJUHY2ICovCistICAgIGNoYXIgKmhfYWRkcl9wdHJz WzBdOworLSAgfSAqaG9zdF9kYXRhOworLSAgaW50IGxpbmVidWZsZW47CistICBjb25zdCBIRUFE RVIgKmhwOworLSAgY29uc3QgdV9jaGFyICplbmRfb2ZfbWVzc2FnZSwgKmNwOworLSAgaW50IG4s IGFuY291bnQsIHFkY291bnQ7CistICBpbnQgaGF2ZWFuc3dlciwgaGFkX2Vycm9yOworLSAgY2hh ciAqYnAsICoqYXAsICoqaGFwOworLSAgY2hhciB0YnVmW01BWEROQU1FXTsKKy0gIGNvbnN0IGNo YXIgKnRuYW1lOworLSAgdV9jaGFyIHBhY2t0bXBbTlNfTUFYQ0ROQU1FXTsKKy0gIHVpbnRwdHJf dCBwYWQgPSAtKHVpbnRwdHJfdCkgYnVmZmVyICUgX19hbGlnbm9mX18gKHN0cnVjdCBob3N0X2Rh dGEpOworLSAgYnVmZmVyICs9IHBhZDsKKy0gIGJ1ZmxlbiA9IGJ1ZmxlbiA+IHBhZCA/IGJ1Zmxl biAtIHBhZCA6IDA7CistICBpZiAoX19nbGliY191bmxpa2VseSAoYnVmbGVuIDwgc2l6ZW9mIChz dHJ1Y3QgaG9zdF9kYXRhKSkpCistICAgIHsKKy0gICAgICAvKiBUaGUgYnVmZmVyIGlzIHRvbyBz bWFsbC4gICovCistICAgIHRvb19zbWFsbDoKKy0gICAgICAqZXJybm9wID0gRVJBTkdFOworLSAg ICAgICpoX2Vycm5vcCA9IE5FVERCX0lOVEVSTkFMOworLSAgICAgIHJldHVybiBOU1NfU1RBVFVT X1RSWUFHQUlOOworLSAgICB9CistICBob3N0X2RhdGEgPSAoc3RydWN0IGhvc3RfZGF0YSAqKSBi dWZmZXI7CistICBsaW5lYnVmbGVuID0gYnVmbGVuIC0gc2l6ZW9mIChzdHJ1Y3QgaG9zdF9kYXRh KTsKKy0gIGlmIChidWZsZW4gLSBzaXplb2YgKHN0cnVjdCBob3N0X2RhdGEpICE9IGxpbmVidWZs ZW4pCistICAgIGxpbmVidWZsZW4gPSBJTlRfTUFYOworLQorLSAgdG5hbWUgPSBxbmFtZTsKKy0g IHJlc3VsdC0+aF9uYW1lID0gTlVMTDsKKy0gIGVuZF9vZl9tZXNzYWdlID0gYW5zd2VyLT5idWYg KyBhbnNsZW47CistCistICAvKgorLSAgICogZmluZCBmaXJzdCBzYXRpc2ZhY3RvcnkgYW5zd2Vy CistICAgKi8KKy0gIGhwID0gJmFuc3dlci0+aGRyOworLSAgYW5jb3VudCA9IG50b2hzIChocC0+ YW5jb3VudCk7CistICBxZGNvdW50ID0gbnRvaHMgKGhwLT5xZGNvdW50KTsKKy0gIGNwID0gYW5z d2VyLT5idWYgKyBIRklYRURTWjsKKy0gIGlmIChfX2dsaWJjX3VubGlrZWx5IChxZGNvdW50ICE9 IDEpKQorLSAgICB7CistICAgICAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7CistICAgICAgcmV0 dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKy0gICAgfQorLSAgaWYgKHNpemVvZiAoc3RydWN0IGhv c3RfZGF0YSkgKyAoYW5jb3VudCArIDEpICogc2l6ZW9mIChjaGFyICopID49IGJ1ZmxlbikKKy0g ICAgZ290byB0b29fc21hbGw7CistICBicCA9IChjaGFyICopICZob3N0X2RhdGEtPmhfYWRkcl9w dHJzW2FuY291bnQgKyAxXTsKKy0gIGxpbmVidWZsZW4gLT0gKGFuY291bnQgKyAxKSAqIHNpemVv ZiAoY2hhciAqKTsKKy0KKy0gIG4gPSBfX25zX25hbWVfdW5wYWNrIChhbnN3ZXItPmJ1ZiwgZW5k X29mX21lc3NhZ2UsIGNwLAorLQkJCXBhY2t0bXAsIHNpemVvZiBwYWNrdG1wKTsKKy0gIGlmIChu ICE9IC0xICYmIF9fbnNfbmFtZV9udG9wIChwYWNrdG1wLCBicCwgbGluZWJ1ZmxlbikgPT0gLTEp CisrICBzdHJ1Y3QgbnNfcnJfY3Vyc29yIGM7CisrICBpZiAoIV9fbnNfcnJfY3Vyc29yX2luaXQg KCZjLCBwYWNrZXQsIHBhY2tldGxlbikpCisgICAgIHsKKy0gICAgICBpZiAoX19nbGliY191bmxp a2VseSAoZXJybm8gPT0gRU1TR1NJWkUpKQorLQlnb3RvIHRvb19zbWFsbDsKKy0KKy0gICAgICBu ID0gLTE7CistICAgIH0KKy0KKy0gIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwgMCkpCistICAg IHsKKy0gICAgICAqZXJybm9wID0gZXJybm87CistICAgICAgKmhfZXJybm9wID0gTk9fUkVDT1ZF Ulk7CistICAgICAgcmV0dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKy0gICAgfQorLSAgaWYgKF9f Z2xpYmNfdW5saWtlbHkgKF9fbGliY19yZXNfZG5vayAoYnApID09IDApKQorLSAgICB7CistICAg ICAgZXJybm8gPSBFQkFETVNHOworLSAgICAgICplcnJub3AgPSBFQkFETVNHOworKyAgICAgIC8q IFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gYmVjYXVzZSBfX3Jlc19jb250ZXh0X3F1ZXJ5IGFscmVh ZHkKKysJIHBlcmZyb21zIHJlc3BvbnNlIHZhbGlkYXRpb24uICAqLworICAgICAgICpoX2Vycm5v cCA9IE5PX1JFQ09WRVJZOworICAgICAgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CisgICAg IH0KKy0gIGNwICs9IG4gKyBRRklYRURTWjsKKysgIGludCBhbmNvdW50ID0gbnNfcnJfY3Vyc29y X2FuY291bnQgKCZjKTsKKysgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmV4cGVjdGVkX25hbWUgPSBu c19ycl9jdXJzb3JfcW5hbWUgKCZjKTsKKysgIC8qIGV4cGVjdGVkX25hbWUgbWF5IGJlIHVwZGF0 ZWQgdG8gcG9pbnQgaW50byB0aGlzIGJ1ZmZlci4gICovCisrICB1bnNpZ25lZCBjaGFyIG5hbWVf YnVmZmVyW05TX01BWENETkFNRV07CisgCistICBhcCA9IGhvc3RfZGF0YS0+YWxpYXNlczsKKy0g ICphcCA9IE5VTEw7CistICByZXN1bHQtPmhfYWxpYXNlcyA9IGhvc3RfZGF0YS0+YWxpYXNlczsK Ky0gIGhhcCA9IGhvc3RfZGF0YS0+aF9hZGRyX3B0cnM7CistICAqaGFwID0gTlVMTDsKKy0gIHJl c3VsdC0+aF9hZGRyX2xpc3QgPSBob3N0X2RhdGEtPmhfYWRkcl9wdHJzOworLSAgaGF2ZWFuc3dl ciA9IDA7CistICBoYWRfZXJyb3IgPSAwOworLQorLSAgd2hpbGUgKGFuY291bnQtLSA+IDAgJiYg Y3AgPCBlbmRfb2ZfbWVzc2FnZSAmJiBoYWRfZXJyb3IgPT0gMCkKKysgIHdoaWxlIChhbmNvdW50 ID4gMCkKKyAgICAgeworLSAgICAgIGludCB0eXBlLCBjbGFzczsKKy0KKy0gICAgICBuID0gX19u c19uYW1lX3VucGFjayAoYW5zd2VyLT5idWYsIGVuZF9vZl9tZXNzYWdlLCBjcCwKKy0JCQkgICAg cGFja3RtcCwgc2l6ZW9mIHBhY2t0bXApOworLSAgICAgIGlmIChuICE9IC0xICYmIF9fbnNfbmFt ZV9udG9wIChwYWNrdG1wLCBicCwgbGluZWJ1ZmxlbikgPT0gLTEpCisrICAgICAgc3RydWN0IG5z X3JyX3dpcmUgcnI7CisrICAgICAgaWYgKCFfX25zX3JyX2N1cnNvcl9uZXh0ICgmYywgJnJyKSkK KyAJeworLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChlcnJubyA9PSBFTVNHU0laRSkpCistCSAg ICBnb3RvIHRvb19zbWFsbDsKKy0KKy0JICBuID0gLTE7CistCX0KKy0KKy0gICAgICBpZiAoX19n bGliY191bmxpa2VseSAobiA8IDAgfHwgX19saWJjX3Jlc19kbm9rIChicCkgPT0gMCkpCistCXsK Ky0JICArK2hhZF9lcnJvcjsKKy0JICBjb250aW51ZTsKKy0JfQorLSAgICAgIGNwICs9IG47CQkJ CS8qIG5hbWUgKi8KKy0KKy0gICAgICBpZiAoX19nbGliY191bmxpa2VseSAoY3AgKyAxMCA+IGVu ZF9vZl9tZXNzYWdlKSkKKy0JeworLQkgICsraGFkX2Vycm9yOworLQkgIGNvbnRpbnVlOworKwkg ICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOworKwkgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7 CisgCX0KKyAKKy0gICAgICBOU19HRVQxNiAodHlwZSwgY3ApOworLSAgICAgIE5TX0dFVDE2IChj bGFzcywgY3ApOworLSAgICAgIGludDMyX3QgdHRsOworLSAgICAgIE5TX0dFVDMyICh0dGwsIGNw KTsKKy0gICAgICBOU19HRVQxNiAobiwgY3ApOwkJLyogUkRBVEEgbGVuZ3RoLiAgKi8KKysgICAg ICAvKiBTa2lwIG92ZXIgcmVjb3JkcyB3aXRoIHRoZSB3cm9uZyBjbGFzcy4gICovCisrICAgICAg aWYgKHJyLnJjbGFzcyAhPSBDX0lOKQorKwljb250aW51ZTsKKyAKKy0gICAgICBpZiAoZW5kX29m X21lc3NhZ2UgLSBjcCA8IG4pCistCXsKKy0JICAvKiBSREFUQSBleHRlbmRzIGJleW9uZCB0aGUg ZW5kIG9mIHRoZSBwYWNrZXQuICAqLworLQkgICsraGFkX2Vycm9yOworLQkgIGNvbnRpbnVlOwor LQl9CistCistICAgICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGNsYXNzICE9IENfSU4pKQorLQl7 CistCSAgLyogWFhYIC0gZGVidWc/IHN5c2xvZz8gKi8KKy0JICBjcCArPSBuOworLQkgIGNvbnRp bnVlOwkJCS8qIFhYWCAtIGhhZF9lcnJvcisrID8gKi8KKy0JfQorKyAgICAgIC8qIFVwZGF0ZSBU VEwgZm9yIGtub3duIHJlY29yZCB0eXBlcy4gICovCisrICAgICAgaWYgKChyci5ydHlwZSA9PSBU X0NOQU1FIHx8IHJyLnJ0eXBlID09IFRfUFRSKQorKwkgICYmIHR0bHAgIT0gTlVMTCAmJiAqdHRs cCA+IHJyLnR0bCkKKysJKnR0bHAgPSByci50dGw7CisgCistICAgICAgaWYgKHR5cGUgPT0gVF9D TkFNRSkKKysgICAgICBpZiAocnIucnR5cGUgPT0gVF9DTkFNRSkKKyAJeworLQkgIC8qIEEgQ05B TUUgY291bGQgYWxzbyBoYXZlIGEgVFRMIGVudHJ5LiAgKi8KKy0JICBpZiAodHRscCAhPSBOVUxM ICYmIHR0bCA8ICp0dGxwKQorLQkgICAgICAqdHRscCA9IHR0bDsKKy0KKy0JICBuID0gX19saWJj X2RuX2V4cGFuZCAoYW5zd2VyLT5idWYsIGVuZF9vZl9tZXNzYWdlLCBjcCwKKy0JCQkJdGJ1Ziwg c2l6ZW9mIHRidWYpOworLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwgMCB8fCBfX2xpYmNf cmVzX2Rub2sgKHRidWYpID09IDApKQorLQkgICAgeworLQkgICAgICArK2hhZF9lcnJvcjsKKy0J ICAgICAgY29udGludWU7CistCSAgICB9CistCSAgY3AgKz0gbjsKKy0JICAvKiBHZXQgY2Fub25p Y2FsIG5hbWUuICAqLworLQkgIG4gPSBzdHJsZW4gKHRidWYpICsgMTsgICAvKiBGb3IgdGhlIFww LiAgKi8KKy0JICBpZiAoX19nbGliY191bmxpa2VseSAobiA+IGxpbmVidWZsZW4pKQorLQkgICAg Z290byB0b29fc21hbGw7CistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPj0gTUFYSE9TVE5B TUVMRU4pKQorKwkgIC8qIE5COiBObyBjaGVjayBmb3Igb3duZXIgbmFtZSBtYXRjaCwgYmFzZWQg b24gaGlzdG9yaWMKKysJICAgICBwcmVjZWRlbnQuICBSZWNvcmQgdGhlIENOQU1FIHRhcmdldCBh cyB0aGUgbmV3IGV4cGVjdGVkCisrCSAgICAgbmFtZS4gICovCisrCSAgaW50IG4gPSBfX25zX25h bWVfdW5wYWNrIChjLmJlZ2luLCBjLmVuZCwgcnIucmRhdGEsCisrCQkJCSAgICBuYW1lX2J1ZmZl ciwgc2l6ZW9mIChuYW1lX2J1ZmZlcikpOworKwkgIGlmIChuIDwgMCkKKyAJICAgIHsKKy0JICAg ICAgKytoYWRfZXJyb3I7CistCSAgICAgIGNvbnRpbnVlOworKwkgICAgICAqaF9lcnJub3AgPSBO T19SRUNPVkVSWTsKKysJICAgICAgcmV0dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKyAJICAgIH0K Ky0JICB0bmFtZSA9IGJwOworLQkgIGJwID0gX19tZW1wY3B5IChicCwgdGJ1Ziwgbik7CS8qIENh bm5vdCBvdmVyZmxvdy4gICovCistCSAgbGluZWJ1ZmxlbiAtPSBuOworLQkgIGNvbnRpbnVlOwor KwkgIGV4cGVjdGVkX25hbWUgPSBuYW1lX2J1ZmZlcjsKKyAJfQorLQorLSAgICAgIHN3aXRjaCAo dHlwZSkKKysgICAgICBlbHNlIGlmIChyci5ydHlwZSA9PSBUX1BUUgorKwkgICAgICAgJiYgX19u c19zYW1lYmluYXJ5bmFtZSAocnIucm5hbWUsIGV4cGVjdGVkX25hbWUpKQorIAl7CistCWNhc2Ug VF9QVFI6CistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKF9fc3RyY2FzZWNtcCAodG5hbWUsIGJw KSAhPSAwKSkKKy0JICAgIHsKKy0JICAgICAgY3AgKz0gbjsKKy0JICAgICAgY29udGludWU7CQkJ LyogWFhYIC0gaGFkX2Vycm9yKysgPyAqLworLQkgICAgfQorLQorLQkgIG4gPSBfX25zX25hbWVf dW5wYWNrIChhbnN3ZXItPmJ1ZiwgZW5kX29mX21lc3NhZ2UsIGNwLAorLQkJCQlwYWNrdG1wLCBz aXplb2YgcGFja3RtcCk7CistCSAgaWYgKG4gIT0gLTEgJiYgX19uc19uYW1lX250b3AgKHBhY2t0 bXAsIGJwLCBsaW5lYnVmbGVuKSA9PSAtMSkKKy0JICAgIHsKKy0JICAgICAgaWYgKF9fZ2xpYmNf dW5saWtlbHkgKGVycm5vID09IEVNU0dTSVpFKSkKKy0JCWdvdG8gdG9vX3NtYWxsOworLQorLQkg ICAgICBuID0gLTE7CistCSAgICB9CistCistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAw IHx8IF9fbGliY19yZXNfaG5vayAoYnApID09IDApKQorKwkgIC8qIERlY29tcHJlc3MgdGhlIHRh cmdldCBvZiB0aGUgUFRSIHJlY29yZC4gIFRoaXMgaXMgdGhlCisrCSAgICAgaG9zdCBuYW1lIHdl IGFyZSBsb29raW5nIGZvci4gIFdlIGNhbiBvbmx5IHVzZSBpdCBpZiBpdAorKwkgICAgIGlzIHN5 bnRhY3RpY2FsbHkgdmFsaWQuICBIaXN0b3JpY2FsbHksIG9ubHkgb25lIGhvc3QgbmFtZQorKwkg ICAgIGlzIHJldHVybmVkIGhlcmUuICBJZiB0aGUgcmVjdXJzaXZlIHJlc29sdmVyIHBlcmZvcm1z IEROUworKwkgICAgIHJlY29yZCByb3RhdGlvbiwgdGhlIHJldHVybmVkIGhvc3QgbmFtZSBpcyBl c3NlbnRpYWxseQorKwkgICAgIHJhbmRvbSwgd2hpY2ggaXMgd2h5IG11bHRpcGxlIFBUUiByZWNv cmRzIGFyZSByYXJlbHkKKysJICAgICB1c2VkLiAgVXNlIE1BWEhPU1ROQU1FTEVOIGluc3RlYWQg b2YgTlNfTUFYQ0ROQU1FIGZvcgorKwkgICAgIGFkZGl0aW9uYWwgbGVuZ3RoIGNoZWNraW5nLiAg Ki8KKysJICBjaGFyIGhuYW1lW01BWEhPU1ROQU1FTEVOICsgMV07CisrCSAgaWYgKF9fbnNfbmFt ZV91bnBhY2sgKGMuYmVnaW4sIGMuZW5kLCByci5yZGF0YSwKKysJCQkJbmFtZV9idWZmZXIsIHNp emVvZiAobmFtZV9idWZmZXIpKSA8IDAKKysJICAgICAgfHwgIV9fcmVzX2JpbmFyeV9obm9rIChl eHBlY3RlZF9uYW1lKQorKwkgICAgICB8fCBfX25zX25hbWVfbnRvcCAobmFtZV9idWZmZXIsIGhu YW1lLCBzaXplb2YgKGhuYW1lKSkgPCAwKQorIAkgICAgeworLQkgICAgICArK2hhZF9lcnJvcjsK Ky0JICAgICAgYnJlYWs7CisrCSAgICAgICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOworKwkgICAg ICByZXR1cm4gTlNTX1NUQVRVU19VTkFWQUlMOworIAkgICAgfQorLQkgIGlmICh0dGxwICE9IE5V TEwgJiYgdHRsIDwgKnR0bHApCistCSAgICAgICp0dGxwID0gdHRsOworLQkgIC8qIGJpbmQgd291 bGQgcHV0IG11bHRpcGxlIFBUUiByZWNvcmRzIGFzIGFsaWFzZXMsIGJ1dCB3ZSBkb24ndCBkbwor LQkgICAgIHRoYXQuICAqLworLQkgIHJlc3VsdC0+aF9uYW1lID0gYnA7CistCSAgKmhfZXJybm9w ID0gTkVUREJfU1VDQ0VTUzsKKysJICAvKiBTdWNjZXNzZnVsIGFsbG9jYXRpb24gaXMgY2hlY2tl ZCBieSB0aGUgY2FsbGVyLiAgKi8KKysJICAqaG5hbWVwID0gYWxsb2NfYnVmZmVyX2NvcHlfc3Ry aW5nIChhYnVmLCBobmFtZSk7CisgCSAgcmV0dXJuIE5TU19TVEFUVVNfU1VDQ0VTUzsKKy0JY2Fz ZSBUX0E6CistCWNhc2UgVF9BQUFBOgorLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChfX3N0cmNh c2VjbXAgKHJlc3VsdC0+aF9uYW1lLCBicCkgIT0gMCkpCistCSAgICB7CistCSAgICAgIGNwICs9 IG47CistCSAgICAgIGNvbnRpbnVlOwkJCS8qIFhYWCAtIGhhZF9lcnJvcisrID8gKi8KKy0JICAg IH0KKy0KKy0JICAvKiBTdG9wIHBhcnNpbmcgYXQgYSByZWNvcmQgd2hvc2UgbGVuZ3RoIGlzIGlu Y29ycmVjdC4gICovCistCSAgaWYgKG4gIT0gcnJ0eXBlX3RvX3JkYXRhX2xlbmd0aCAodHlwZSkp CistCSAgICB7CistCSAgICAgICsraGFkX2Vycm9yOworLQkgICAgICBicmVhazsKKy0JICAgIH0K Ky0KKy0JICAvKiBTa2lwIHJlY29yZHMgb2YgdGhlIHdyb25nIHR5cGUuICAqLworLQkgIGlmIChu ICE9IHJlc3VsdC0+aF9sZW5ndGgpCistCSAgICB7CistCSAgICAgIGNwICs9IG47CistCSAgICAg IGNvbnRpbnVlOworLQkgICAgfQorLQkgIGlmICghaGF2ZWFuc3dlcikKKy0JICAgIHsKKy0JICAg ICAgaW50IG5uOworLQorLQkgICAgICAvKiBXZSBjb21wb3NlIGEgc2luZ2xlIGhvc3RlbnQgb3V0 IG9mIHRoZSBlbnRpcmUgY2hhaW4gb2YKKy0JICAgICAgICAgZW50cmllcywgc28gdGhlIFRUTCBv ZiB0aGUgaG9zdGVudCBpcyBlc3NlbnRpYWxseSB0aGUgbG93ZXN0CistCQkgVFRMIGluIHRoZSBj aGFpbi4gICovCistCSAgICAgIGlmICh0dGxwICE9IE5VTEwgJiYgdHRsIDwgKnR0bHApCistCQkq dHRscCA9IHR0bDsKKy0JICAgICAgcmVzdWx0LT5oX25hbWUgPSBicDsKKy0JICAgICAgbm4gPSBz dHJsZW4gKGJwKSArIDE7CS8qIGZvciB0aGUgXDAgKi8KKy0JICAgICAgYnAgKz0gbm47CistCSAg ICAgIGxpbmVidWZsZW4gLT0gbm47CistCSAgICB9CistCistCSAgLyogUHJvdmlkZSBzdWZmaWNp ZW50IGFsaWdubWVudCBmb3IgYm90aCBhZGRyZXNzCistCSAgICAgZmFtaWxpZXMuICAqLworLQkg IGVudW0geyBhbGlnbiA9IDQgfTsKKy0JICBfU3RhdGljX2Fzc2VydCAoKGFsaWduICUgX19hbGln bm9mX18gKHN0cnVjdCBpbl9hZGRyKSkgPT0gMCwKKy0JCQkgICJzdHJ1Y3QgaW5fYWRkciBhbGln bm1lbnQiKTsKKy0JICBfU3RhdGljX2Fzc2VydCAoKGFsaWduICUgX19hbGlnbm9mX18gKHN0cnVj dCBpbjZfYWRkcikpID09IDAsCistCQkJICAic3RydWN0IGluNl9hZGRyIGFsaWdubWVudCIpOwor LQkgIHsKKy0JICAgIGNoYXIgKm5ld19icCA9IFBUUl9BTElHTl9VUCAoYnAsIGFsaWduKTsKKy0J ICAgIGxpbmVidWZsZW4gLT0gbmV3X2JwIC0gYnA7CistCSAgICBicCA9IG5ld19icDsKKy0JICB9 CistCistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPiBsaW5lYnVmbGVuKSkKKy0JICAgIGdv dG8gdG9vX3NtYWxsOworLQkgIGJwID0gX19tZW1wY3B5ICgqaGFwKysgPSBicCwgY3AsIG4pOwor LQkgIGNwICs9IG47CistCSAgbGluZWJ1ZmxlbiAtPSBuOworLQkgIGJyZWFrOworLQlkZWZhdWx0 OgorLQkgIGNwICs9IG47CistCSAgY29udGludWU7CQkJLyogWFhYIC0gaGFkX2Vycm9yKysgPyAq LworIAl9CistICAgICAgaWYgKGhhZF9lcnJvciA9PSAwKQorLQkrK2hhdmVhbnN3ZXI7CisgICAg IH0KKyAKKy0gIGlmIChoYXZlYW5zd2VyID4gMCkKKy0gICAgeworLSAgICAgICphcCA9IE5VTEw7 CistICAgICAgKmhhcCA9IE5VTEw7CistCistICAgICAgaWYgKHJlc3VsdC0+aF9uYW1lID09IE5V TEwpCistCXsKKy0JICBuID0gc3RybGVuIChxbmFtZSkgKyAxOwkvKiBGb3IgdGhlIFwwLiAgKi8K Ky0JICBpZiAobiA+IGxpbmVidWZsZW4pCistCSAgICBnb3RvIHRvb19zbWFsbDsKKy0JICBpZiAo biA+PSBNQVhIT1NUTkFNRUxFTikKKy0JICAgIGdvdG8gbm9fcmVjb3Zlcnk7CistCSAgcmVzdWx0 LT5oX25hbWUgPSBicDsKKy0JICBicCA9IF9fbWVtcGNweSAoYnAsIHFuYW1lLCBuKTsJLyogQ2Fu bm90IG92ZXJmbG93LiAgKi8KKy0JICBsaW5lYnVmbGVuIC09IG47CistCX0KKysgIC8qIE5vIFBU UiByZWNvcmQgZm91bmQuICAqLworKyAgaWYgKHR0bHAgIT0gTlVMTCkKKysgICAgLyogTm8gY2Fj aGluZyBvZiBuZWdhdGl2ZSByZXNwb25zZXMuICAqLworKyAgICAqdHRscCA9IDA7CisgCistICAg ICAgKmhfZXJybm9wID0gTkVUREJfU1VDQ0VTUzsKKy0gICAgICByZXR1cm4gTlNTX1NUQVRVU19T VUNDRVNTOworLSAgICB9CistIG5vX3JlY292ZXJ5OgorICAgKmhfZXJybm9wID0gTk9fUkVDT1ZF Ulk7CisgICAqZXJybm9wID0gRU5PRU5UOworICAgcmV0dXJuIE5TU19TVEFUVVNfVFJZQUdBSU47 CistLSAKKzIuMzguMQorCisKK0Zyb20gNTE2NTA4MGZlYzYzYTFmMDNhYTE5ODViNzdiY2EzMDA0 NjViZjU3MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxm d2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDMwIEF1ZyAyMDIyIDEwOjAyOjQ5ICswMjAw CitTdWJqZWN0OiBuc3NfZG5zOiBSZW1vdmUgcmVtbmFudHMgb2YgSVB2NiBhZGRyZXNzIG1hcHBp bmcKKworcmVzX3VzZV9pbmV0NiBhbHdheXMgcmV0dXJucyBmYWxzZSBzaW5jZSBjb21taXQgM2Y4 YjQ0YmUwYTY1ODI2NmFkZmY1CisoInJlc29sdjogUmVtb3ZlIHN1cHBvcnQgZm9yIFJFU19VU0Vf SU5FVDYgYW5kIHRoZSBpbmV0NiBvcHRpb24iKS4KKworUmV2aWV3ZWQtYnk6IFNpZGRoZXNoIFBv eWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNv bW1pdCBhN2ZjMzBiNTIyYTBjZDdjOGM1ZTdlMjg1Yjk1MzFiNzA0ZTAyZjA0KQorLS0tCisgcmVz b2x2L1JFQURNRSAgICAgICAgICAgICB8ICAzIC0tCisgcmVzb2x2L21hcHY0djZhZGRyLmggICAg ICB8IDY5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVzb2x2L21hcHY0djZo b3N0ZW50LmggICB8IDg0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHJlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMgfCA1NCArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t CisgNCBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDIwMSBkZWxldGlvbnMoLSkKKyBk ZWxldGUgbW9kZSAxMDA2NDQgcmVzb2x2L21hcHY0djZhZGRyLmgKKyBkZWxldGUgbW9kZSAxMDA2 NDQgcmVzb2x2L21hcHY0djZob3N0ZW50LmgKKworZGlmZiAtLWdpdCBhL3Jlc29sdi9SRUFETUUg Yi9yZXNvbHYvUkVBRE1FCitpbmRleCA1MTRlOWJiNjE3Li4yMTQ2YmMzYjI3IDEwMDY0NAorLS0t IGEvcmVzb2x2L1JFQURNRQorKysrIGIvcmVzb2x2L1JFQURNRQorQEAgLTE0Niw2ICsxNDYsMyBA QCByZXNfbGliYy5jIGlzIGhvbWUtYnJld24sIGFsdGhvdWdoIHBhcnRzIG9mIGl0IGFyZSB0YWtl biBmcm9tIHJlc19kYXRhLmMuCisgCisgcmVzX2hjb25mLmMgYW5kIHJlc19oY29uZi5oIHdlcmUg Y29udHJpYnV0ZWQgYnkgRGF2aWQgTW9zYmVyZ2VyLCBhbmQKKyBkbyBub3QgY29tZSBmcm9tIEJJ TkQuCistCistVGhlIGZpbGVzIGdldGhuYW1hZGRyLmMsIG1hcHY0djZhZGRyLmggYW5kIG1hcHY0 djZob3N0ZW50LmggYXJlCistbGVmdG92ZXJzIGZyb20gQklORCA0LjkuNy4KK2RpZmYgLS1naXQg YS9yZXNvbHYvbWFwdjR2NmFkZHIuaCBiL3Jlc29sdi9tYXB2NHY2YWRkci5oCitkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDdmODVmN2Q1ZTMuLjAwMDAwMDAwMDAKKy0tLSBhL3Jlc29s di9tYXB2NHY2YWRkci5oCisrKysgL2Rldi9udWxsCitAQCAtMSw2OSArMCwwIEBACistLyoKKy0g KiArK0NvcHlyaWdodCsrIDE5ODUsIDE5ODgsIDE5OTMKKy0gKiAtCistICogQ29weXJpZ2h0IChj KSAxOTg1LCAxOTg4LCAxOTkzCistICogICAgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkg b2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCistICoKKy0gKiBSZWRpc3RyaWJ1 dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK Ky0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnMKKy0gKiBhcmUgbWV0OgorLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CistICogICAgbm90aWNl LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg YWJvdmUgY29weXJpZ2h0CistICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLSAqICAgIGRvY3VtZW50YXRpb24g YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCist ICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9m IGl0cyBjb250cmlidXRvcnMKKy0gKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKy0gKiAgICB3aXRob3V0IHNw ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy0gKgorLSAqIFRISVMgU09GVFdBUkUg SVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E CistICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO T1QgTElNSVRFRCBUTywgVEhFCistICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKy0gKiBBUkUgRElTQ0xB SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENPTlRSSUJVVE9SUyBCRSBM SUFCTEUKKy0gKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorLSAqIERBTUFHRVMgKElOQ0xVRElORywgQlVU IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCistICogT1Ig U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF UlJVUFRJT04pCistICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKy0gKiBMSUFCSUxJVFksIE9SIFRPUlQg KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCist ICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI RSBQT1NTSUJJTElUWSBPRgorLSAqIFNVQ0ggREFNQUdFLgorLSAqIC0KKy0gKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTMgYnkgRGlnaXRhbCBFcXVpcG1lbnQgQ29ycG9yYXRpb24uCistICoK Ky0gKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlz IHNvZnR3YXJlIGZvciBhbnkKKy0gKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVy ZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCistICogY29weXJpZ2h0IG5vdGlj ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcywgYW5kIHRo YXQKKy0gKiB0aGUgbmFtZSBvZiBEaWdpdGFsIEVxdWlwbWVudCBDb3Jwb3JhdGlvbiBub3QgYmUg dXNlZCBpbiBhZHZlcnRpc2luZyBvcgorLSAqIHB1YmxpY2l0eSBwZXJ0YWluaW5nIHRvIGRpc3Ry aWJ1dGlvbiBvZiB0aGUgZG9jdW1lbnQgb3Igc29mdHdhcmUgd2l0aG91dAorLSAqIHNwZWNpZmlj LCB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uCistICoKKy0gKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiBBTkQgRElHSVRBTCBFUVVJUE1FTlQgQ09SUC4gRElTQ0xBSU1TIEFMTAor LSAqIFdBUlJBTlRJRVMgV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSwgSU5DTFVESU5HIEFM TCBJTVBMSUVEIFdBUlJBTlRJRVMKKy0gKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mu ICAgSU4gTk8gRVZFTlQgU0hBTEwgRElHSVRBTCBFUVVJUE1FTlQKKy0gKiBDT1JQT1JBVElPTiBC RSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5U SUFMCistICogREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9N IExPU1MgT0YgVVNFLCBEQVRBIE9SCistICogUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04g T0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMKKy0gKiBBQ1RJT04sIEFS SVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNF IE9GIFRISVMKKy0gKiBTT0ZUV0FSRS4KKy0gKiAtCistICogLS1Db3B5cmlnaHQtLQorLSAqLwor LQorLSNpbmNsdWRlIDxzdHJpbmcuaD4KKy0jaW5jbHVkZSA8YXJwYS9uYW1lc2VyLmg+CistCist c3RhdGljIHZvaWQKKy1tYXBfdjR2Nl9hZGRyZXNzIChjb25zdCBjaGFyICpzcmMsIGNoYXIgKmRz dCkKKy17CistICB1X2NoYXIgKnAgPSAodV9jaGFyICopIGRzdDsKKy0gIGludCBpOworLQorLSAg LyogTW92ZSB0aGUgSVB2NCBwYXJ0IHRvIHRoZSByaWdodCBwb3NpdGlvbi4gICovCistICBtZW1j cHkgKGRzdCArIDEyLCBzcmMsIElOQUREUlNaKTsKKy0KKy0gIC8qIE1hcmsgdGhpcyBpcHY2IGFk ZHIgYXMgYSBtYXBwZWQgaXB2NC4gKi8KKy0gIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKQorLSAg ICAqcCsrID0gMHgwMDsKKy0gICpwKysgPSAweGZmOworLSAgKnAgPSAweGZmOworLX0KK2RpZmYg LS1naXQgYS9yZXNvbHYvbWFwdjR2Nmhvc3RlbnQuaCBiL3Jlc29sdi9tYXB2NHY2aG9zdGVudC5o CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IGMxMTAzOGFkZjMuLjAwMDAwMDAwMDAK Ky0tLSBhL3Jlc29sdi9tYXB2NHY2aG9zdGVudC5oCisrKysgL2Rldi9udWxsCitAQCAtMSw4NCAr MCwwIEBACistLyoKKy0gKiArK0NvcHlyaWdodCsrIDE5ODUsIDE5ODgsIDE5OTMKKy0gKiAtCist ICogQ29weXJpZ2h0IChjKSAxOTg1LCAxOTg4LCAxOTkzCistICogICAgVGhlIFJlZ2VudHMgb2Yg dGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCistICoK Ky0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3 aXRoIG9yIHdpdGhvdXQKKy0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKy0gKiBhcmUgbWV0OgorLSAqIDEuIFJlZGlz dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0 CistICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu ZyBkaXNjbGFpbWVyLgorLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0 IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CistICogICAgbm90aWNlLCB0aGlzIGxpc3Qg b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorLSAqICAg IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk aXN0cmlidXRpb24uCistICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBu b3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKy0gKiAgICBtYXkgYmUgdXNlZCB0byBl bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKy0g KiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy0gKgorLSAq IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIFJFR0VOVFMgQU5EIENPTlRSSUJVVE9S UyBgYEFTIElTJycgQU5ECistICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCistICogSU1QTElFRCBXQVJSQU5USUVT IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UK Ky0gKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBSRUdFTlRTIE9SIENP TlRSSUJVVE9SUyBCRSBMSUFCTEUKKy0gKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorLSAqIERBTUFHRVMg KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF IEdPT0RTCistICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCistICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKy0gKiBMSUFC SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO RyBJTiBBTlkgV0FZCistICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorLSAqIFNVQ0ggREFNQUdFLgorLSAqIC0K Ky0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTMgYnkgRGlnaXRhbCBFcXVpcG1lbnQgQ29y cG9yYXRpb24uCistICoKKy0gKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQg ZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkKKy0gKiBwdXJwb3NlIHdpdGggb3Igd2l0 aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCistICog Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxs IGNvcGllcywgYW5kIHRoYXQKKy0gKiB0aGUgbmFtZSBvZiBEaWdpdGFsIEVxdWlwbWVudCBDb3Jw b3JhdGlvbiBub3QgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvcgorLSAqIHB1YmxpY2l0eSBwZXJ0 YWluaW5nIHRvIGRpc3RyaWJ1dGlvbiBvZiB0aGUgZG9jdW1lbnQgb3Igc29mdHdhcmUgd2l0aG91 dAorLSAqIHNwZWNpZmljLCB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uCistICoKKy0gKiBUSEUg U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgRElHSVRBTCBFUVVJUE1FTlQgQ09SUC4g RElTQ0xBSU1TIEFMTAorLSAqIFdBUlJBTlRJRVMgV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FS RSwgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMKKy0gKiBPRiBNRVJDSEFOVEFCSUxJ VFkgQU5EIEZJVE5FU1MuICAgSU4gTk8gRVZFTlQgU0hBTEwgRElHSVRBTCBFUVVJUE1FTlQKKy0g KiBDT1JQT1JBVElPTiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNU LCBPUiBDT05TRVFVRU5USUFMCistICogREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVS IFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNFLCBEQVRBIE9SCistICogUFJPRklUUywgV0hFVEhF UiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMK Ky0gKiBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNF IE9SIFBFUkZPUk1BTkNFIE9GIFRISVMKKy0gKiBTT0ZUV0FSRS4KKy0gKiAtCistICogLS1Db3B5 cmlnaHQtLQorLSAqLworLQorLSNpbmNsdWRlIDxhcnBhL25hbWVzZXIuaD4KKy0jaW5jbHVkZSA8 c3lzL3NvY2tldC5oPgorLQorLXR5cGVkZWYgdW5pb24geworLSAgICBpbnQzMl90IGFsOworLSAg ICBjaGFyIGFjOworLX0gYWxpZ247CistCistc3RhdGljIGludAorLW1hcF92NHY2X2hvc3RlbnQg KHN0cnVjdCBob3N0ZW50ICpocCwgY2hhciAqKmJwcCwgaW50ICpsZW5wKQorLXsKKy0gIGNoYXIg KiphcDsKKy0KKy0gIGlmIChocC0+aF9hZGRydHlwZSAhPSBBRl9JTkVUIHx8IGhwLT5oX2xlbmd0 aCAhPSBJTkFERFJTWikKKy0gICAgcmV0dXJuIDA7CistICBocC0+aF9hZGRydHlwZSA9IEFGX0lO RVQ2OworLSAgaHAtPmhfbGVuZ3RoID0gSU42QUREUlNaOworLSAgZm9yIChhcCA9IGhwLT5oX2Fk ZHJfbGlzdDsgKmFwOyBhcCsrKQorLSAgICB7CistICAgICAgaW50IGkgPSBzaXplb2YgKGFsaWdu KSAtICgodV9sb25nKSAqYnBwICUgc2l6ZW9mIChhbGlnbikpOworLQorLSAgICAgIGlmICgqbGVu cCA8IChpICsgSU42QUREUlNaKSkKKy0JLyogT3V0IG9mIG1lbW9yeS4gICovCistCXJldHVybiAx OworLSAgICAgICpicHAgKz0gaTsKKy0gICAgICAqbGVucCAtPSBpOworLSAgICAgIG1hcF92NHY2 X2FkZHJlc3MgKCphcCwgKmJwcCk7CistICAgICAgKmFwID0gKmJwcDsKKy0gICAgICAqYnBwICs9 IElONkFERFJTWjsKKy0gICAgICAqbGVucCAtPSBJTjZBRERSU1o7CistICAgIH0KKy0gIHJldHVy biAwOworLX0KK2RpZmYgLS1naXQgYS9yZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jIGIvcmVzb2x2 L25zc19kbnMvZG5zLWhvc3QuYworaW5kZXggY2QyNjM5OWI3ZS4uOGUzODU4M2UxNSAxMDA2NDQK Ky0tLSBhL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMKKysrKyBiL3Jlc29sdi9uc3NfZG5zL2Ru cy1ob3N0LmMKK0BAIC04NywxMCArODcsNiBAQAorICNpbmNsdWRlIDxyZXNvbHYvcmVzb2x2LWlu dGVybmFsLmg+CisgI2luY2x1ZGUgPHJlc29sdi9yZXNvbHZfY29udGV4dC5oPgorIAorLS8qIEdl dCBpbXBsZW1lbnRhdGlvbnMgb2Ygc29tZSBpbnRlcm5hbCBmdW5jdGlvbnMuICAqLworLSNpbmNs dWRlIDxyZXNvbHYvbWFwdjR2NmFkZHIuaD4KKy0jaW5jbHVkZSA8cmVzb2x2L21hcHY0djZob3N0 ZW50Lmg+CistCisgI2RlZmluZSBSRVNPTFZTT1JUCisgCisgI2lmIFBBQ0tFVFNaID4gNjU1MzYK K0BAIC0xMTYsNyArMTEyLDcgQEAgc3RhdGljIGVudW0gbnNzX3N0YXR1cyBnZXRhbnN3ZXJfciAo c3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsCisgCQkJCSAgICBjb25zdCBjaGFyICpxbmFtZSwg aW50IHF0eXBlLAorIAkJCQkgICAgc3RydWN0IGhvc3RlbnQgKnJlc3VsdCwgY2hhciAqYnVmZmVy LAorIAkJCQkgICAgc2l6ZV90IGJ1ZmxlbiwgaW50ICplcnJub3AsIGludCAqaF9lcnJub3AsCist CQkJCSAgICBpbnQgbWFwLCBpbnQzMl90ICp0dGxwLCBjaGFyICoqY2Fub25wKTsKKysJCQkJICAg IGludDMyX3QgKnR0bHAsIGNoYXIgKipjYW5vbnApOworIHN0YXRpYyBlbnVtIG5zc19zdGF0dXMg Z2V0YW5zd2VyX3B0ciAodW5zaWduZWQgY2hhciAqcGFja2V0LCBzaXplX3QgcGFja2V0bGVuLAor IAkJCQkgICAgICBzdHJ1Y3QgYWxsb2NfYnVmZmVyICphYnVmLAorIAkJCQkgICAgICBjaGFyICoq aG5hbWVwLCBpbnQgKmVycm5vcCwKK0BAIC0xOTcsNyArMTkzLDYgQEAgZ2V0aG9zdGJ5bmFtZTNf Y29udGV4dCAoc3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsCisgICBjaGFyIHRtcFtOU19NQVhE TkFNRV07CisgICBpbnQgc2l6ZSwgdHlwZSwgbjsKKyAgIGNvbnN0IGNoYXIgKmNwOworLSAgaW50 IG1hcCA9IDA7CisgICBpbnQgb2xkZXJyID0gZXJybm87CisgICBlbnVtIG5zc19zdGF0dXMgc3Rh dHVzOworIAorQEAgLTI1OCwzMiArMjUzLDEyIEBAIGdldGhvc3RieW5hbWUzX2NvbnRleHQgKHN0 cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorIAkqZXJybm9wID0gRUFHQUlOOworICAgICAgIGVs c2UKKyAJX19zZXRfZXJybm8gKG9sZGVycik7CistCistICAgICAgLyogSWYgd2UgYXJlIGxvb2tp bmcgZm9yIGFuIElQdjYgYWRkcmVzcyBhbmQgbWFwcGluZyBpcyBlbmFibGVkCistCSBieSBoYXZp bmcgdGhlIFJFU19VU0VfSU5FVDYgYml0IGluIF9yZXMub3B0aW9ucyBzZXQsIHdlIHRyeQorLQkg YW5vdGhlciBsb29rdXAuICAqLworLSAgICAgIGlmIChhZiA9PSBBRl9JTkVUNiAmJiByZXNfdXNl X2luZXQ2ICgpKQorLQluID0gX19yZXNfY29udGV4dF9zZWFyY2ggKGN0eCwgbmFtZSwgQ19JTiwg VF9BLCBob3N0X2J1ZmZlci5idWYtPmJ1ZiwKKy0JCQkJICBob3N0X2J1ZmZlci5idWYgIT0gb3Jp Z19ob3N0X2J1ZmZlcgorLQkJCQkgID8gTUFYUEFDS0VUIDogMTAyNCwgJmhvc3RfYnVmZmVyLnB0 ciwKKy0JCQkJICBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsKKy0KKy0gICAgICBpZiAobiA8IDAp CistCXsKKy0JICBpZiAoaG9zdF9idWZmZXIuYnVmICE9IG9yaWdfaG9zdF9idWZmZXIpCistCSAg ICBmcmVlIChob3N0X2J1ZmZlci5idWYpOworLQkgIHJldHVybiBzdGF0dXM7CistCX0KKy0KKy0g ICAgICBtYXAgPSAxOworLQorLSAgICAgIHJlc3VsdC0+aF9hZGRydHlwZSA9IEFGX0lORVQ7Cist ICAgICAgcmVzdWx0LT5oX2xlbmd0aCA9IElOQUREUlNaOworICAgICB9CisrICBlbHNlCisrICAg IHN0YXR1cyA9IGdldGFuc3dlcl9yCisrICAgICAgKGN0eCwgaG9zdF9idWZmZXIuYnVmLCBuLCBu YW1lLCB0eXBlLCByZXN1bHQsIGJ1ZmZlciwgYnVmbGVuLAorKyAgICAgICBlcnJub3AsIGhfZXJy bm9wLCB0dGxwLCBjYW5vbnApOworIAorLSAgc3RhdHVzID0gZ2V0YW5zd2VyX3IKKy0gICAgKGN0 eCwgaG9zdF9idWZmZXIuYnVmLCBuLCBuYW1lLCB0eXBlLCByZXN1bHQsIGJ1ZmZlciwgYnVmbGVu LAorLSAgICAgZXJybm9wLCBoX2Vycm5vcCwgbWFwLCB0dGxwLCBjYW5vbnApOworICAgaWYgKGhv c3RfYnVmZmVyLmJ1ZiAhPSBvcmlnX2hvc3RfYnVmZmVyKQorICAgICBmcmVlIChob3N0X2J1ZmZl ci5idWYpOworICAgcmV0dXJuIHN0YXR1czsKK0BAIC0zMjksMTMgKzMwNCw4IEBAIF9uc3NfZG5z X2dldGhvc3RieW5hbWVfciAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGhvc3RlbnQgKnJlc3Vs dCwKKyAgICAgICAqaF9lcnJub3AgPSBORVREQl9JTlRFUk5BTDsKKyAgICAgICByZXR1cm4gTlNT X1NUQVRVU19VTkFWQUlMOworICAgICB9CistICBzdGF0dXMgPSBOU1NfU1RBVFVTX05PVEZPVU5E OworLSAgaWYgKHJlc191c2VfaW5ldDYgKCkpCistICAgIHN0YXR1cyA9IGdldGhvc3RieW5hbWUz X2NvbnRleHQgKGN0eCwgbmFtZSwgQUZfSU5FVDYsIHJlc3VsdCwgYnVmZmVyLAorLQkJCQkgICAg IGJ1ZmxlbiwgZXJybm9wLCBoX2Vycm5vcCwgTlVMTCwgTlVMTCk7CistICBpZiAoc3RhdHVzID09 IE5TU19TVEFUVVNfTk9URk9VTkQpCistICAgIHN0YXR1cyA9IGdldGhvc3RieW5hbWUzX2NvbnRl eHQgKGN0eCwgbmFtZSwgQUZfSU5FVCwgcmVzdWx0LCBidWZmZXIsCistCQkJCSAgICAgYnVmbGVu LCBlcnJub3AsIGhfZXJybm9wLCBOVUxMLCBOVUxMKTsKKysgIHN0YXR1cyA9IGdldGhvc3RieW5h bWUzX2NvbnRleHQgKGN0eCwgbmFtZSwgQUZfSU5FVCwgcmVzdWx0LCBidWZmZXIsCisrCQkJCSAg IGJ1ZmxlbiwgZXJybm9wLCBoX2Vycm5vcCwgTlVMTCwgTlVMTCk7CisgICBfX3Jlc29sdl9jb250 ZXh0X3B1dCAoY3R4KTsKKyAgIHJldHVybiBzdGF0dXM7CisgfQorQEAgLTY0OCw3ICs2MTgsNyBA QCBzdGF0aWMgZW51bSBuc3Nfc3RhdHVzCisgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29u dGV4dCAqY3R4LAorIAkgICAgIGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIsIGludCBhbnNsZW4sIGNv bnN0IGNoYXIgKnFuYW1lLCBpbnQgcXR5cGUsCisgCSAgICAgc3RydWN0IGhvc3RlbnQgKnJlc3Vs dCwgY2hhciAqYnVmZmVyLCBzaXplX3QgYnVmbGVuLAorLQkgICAgIGludCAqZXJybm9wLCBpbnQg KmhfZXJybm9wLCBpbnQgbWFwLCBpbnQzMl90ICp0dGxwLCBjaGFyICoqY2Fub25wKQorKwkgICAg IGludCAqZXJybm9wLCBpbnQgKmhfZXJybm9wLCBpbnQzMl90ICp0dGxwLCBjaGFyICoqY2Fub25w KQorIHsKKyAgIHN0cnVjdCBob3N0X2RhdGEKKyAgIHsKK0BAIC02NjQsNyArNjM0LDYgQEAgZ2V0 YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorICAgY2hhciAqYnAsICoqYXAs ICoqaGFwOworICAgY2hhciB0YnVmW01BWEROQU1FXTsKKyAgIHVfY2hhciBwYWNrdG1wW05TX01B WENETkFNRV07CistICBpbnQgaGF2ZV90b19tYXAgPSAwOworICAgdWludHB0cl90IHBhZCA9IC0o dWludHB0cl90KSBidWZmZXIgJSBfX2FsaWdub2ZfXyAoc3RydWN0IGhvc3RfZGF0YSk7CisgICBi dWZmZXIgKz0gcGFkOworICAgYnVmbGVuID0gYnVmbGVuID4gcGFkID8gYnVmbGVuIC0gcGFkIDog MDsKK0BAIC04NDUsOSArODE0LDcgQEAgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4 dCAqY3R4LAorIAkgIGNvbnRpbnVlOworIAl9CisgCistICAgICAgaWYgKHR5cGUgPT0gVF9BICYm IHF0eXBlID09IFRfQUFBQSAmJiBtYXApCistCWhhdmVfdG9fbWFwID0gMTsKKy0gICAgICBlbHNl IGlmIChfX2dsaWJjX3VubGlrZWx5ICh0eXBlICE9IHF0eXBlKSkKKysgICAgICBpZiAoX19nbGli Y191bmxpa2VseSAodHlwZSAhPSBxdHlwZSkpCisgCXsKKyAJICBjcCArPSBuOworIAkgIGNvbnRp bnVlOwkJCS8qIFhYWCAtIGhhZF9lcnJvcisrID8gKi8KK0BAIC05NDQsOSArOTExLDYgQEAgZ2V0 YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorIAkgIGxpbmVidWZsZW4gLT0g bjsKKyAJfQorIAorLSAgICAgIGlmIChoYXZlX3RvX21hcCkKKy0JaWYgKG1hcF92NHY2X2hvc3Rl bnQgKHJlc3VsdCwgJmJwLCAmbGluZWJ1ZmxlbikpCistCSAgZ290byB0b29fc21hbGw7CisgICAg ICAgKmhfZXJybm9wID0gTkVUREJfU1VDQ0VTUzsKKyAgICAgICByZXR1cm4gTlNTX1NUQVRVU19T VUNDRVNTOworICAgICB9CistLSAKKzIuMzguMQorCisKK0Zyb20gNzhjOGVmMjFmYTU0ZTk5NDQ1 MWQ1YjQyZWFkNjA4MGQ5OWE4OGE0OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZs b3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDMwIEF1ZyAyMDIy IDEwOjAyOjQ5ICswMjAwCitTdWJqZWN0OiBuc3NfZG5zOiBSZXdyaXRlIGdldGFuc3dlcl9yIHRv IG1hdGNoIGdldGFuc3dlcl9wdHIgKGJ1ZyAxMjE1NCwgYnVnCisgMjkzMDUpCisKK0FsbG9jYXRl IHRoZSBwb2ludGVyIGFycmF5cyBvbmx5IGF0IHRoZSBlbmQsIHdoZW4gdGhlaXIgc2l6ZXMKK2Fy ZSBrbm93bi4gIFRoaXMgYWRkcmVzc2VzIGJ1ZyAyOTMwNS4KKworU2tpcCBvdmVyIGludmFsaWQg bmFtZXMgaW5zdGVhZCBvZiBmYWlsaW5nIGxvb2t1cHMuICBUaGlzIHBhcnRpYWxseQorZml4ZXMg YnVnIDEyMTU0IChmb3IgZ2V0aG9zdGJ5bmFtZSwgZml4aW5nIGdldGFkZHJpbmZvIHJlcXVpcmVz CitkaWZmZXJlbnQgY2hhbmdlcykuCisKK1Jldmlld2VkLWJ5OiBTaWRkaGVzaCBQb3lhcmVrYXIg PHNpZGRoZXNoQHNvdXJjZXdhcmUub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgZDEw MWQ4MzZlN2U0YmQxZDRlNDk3MmIwZTBiZDBhNTVjOWI2NTBmYSkKKy0tLQorIHJlc29sdi9uc3Nf ZG5zL2Rucy1ob3N0LmMgfCA0NzggKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAxIGZpbGUgY2hhbmdlZCwgMTgwIGluc2VydGlvbnMoKyksIDI5OCBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMgYi9yZXNvbHYvbnNzX2Ru cy9kbnMtaG9zdC5jCitpbmRleCA4ZTM4NTgzZTE1Li5iODg3ZTc3ZTljIDEwMDY0NAorLS0tIGEv cmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYworKysrIGIvcmVzb2x2L25zc19kbnMvZG5zLWhvc3Qu YworQEAgLTEwNywxMiArMTA3LDE5IEBAIHR5cGVkZWYgdW5pb24gcXVlcnlidWYKKyAgIHVfY2hh ciBidWZbTUFYUEFDS0VUXTsKKyB9IHF1ZXJ5YnVmOworIAorLXN0YXRpYyBlbnVtIG5zc19zdGF0 dXMgZ2V0YW5zd2VyX3IgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorLQkJCQkgICAgY29u c3QgcXVlcnlidWYgKmFuc3dlciwgaW50IGFuc2xlbiwKKy0JCQkJICAgIGNvbnN0IGNoYXIgKnFu YW1lLCBpbnQgcXR5cGUsCistCQkJCSAgICBzdHJ1Y3QgaG9zdGVudCAqcmVzdWx0LCBjaGFyICpi dWZmZXIsCistCQkJCSAgICBzaXplX3QgYnVmbGVuLCBpbnQgKmVycm5vcCwgaW50ICpoX2Vycm5v cCwKKy0JCQkJICAgIGludDMyX3QgKnR0bHAsIGNoYXIgKipjYW5vbnApOworKy8qIEZvciBoaXN0 b3JpYyByZWFzb25zLCBwb2ludGVycyB0byBJUCBhZGRyZXNzZXMgYXJlIGNoYXIgKiwgc28gdXNl IGEKKysgICBzaW5nbGUgbGlzdCB0eXBlIGZvciBhZGRyZXNzZXMgYW5kIGhvc3QgbmFtZXMuICAq LworKyNkZWZpbmUgRFlOQVJSQVlfU1RSVUNUIHB0cmxpc3QKKysjZGVmaW5lIERZTkFSUkFZX0VM RU1FTlQgY2hhciAqCisrI2RlZmluZSBEWU5BUlJBWV9QUkVGSVggcHRybGlzdF8KKysjaW5jbHVk ZSA8bWFsbG9jL2R5bmFycmF5LXNrZWxldG9uLmM+CisrCisrc3RhdGljIGVudW0gbnNzX3N0YXR1 cyBnZXRhbnN3ZXJfciAodW5zaWduZWQgY2hhciAqcGFja2V0LCBzaXplX3QgcGFja2V0bGVuLAor KwkJCQkgICAgdWludDE2X3QgcXR5cGUsIHN0cnVjdCBhbGxvY19idWZmZXIgKmFidWYsCisrCQkJ CSAgICBzdHJ1Y3QgcHRybGlzdCAqYWRkcmVzc2VzLAorKwkJCQkgICAgc3RydWN0IHB0cmxpc3Qg KmFsaWFzZXMsCisrCQkJCSAgICBpbnQgKmVycm5vcCwgaW50ICpoX2Vycm5vcCwgaW50MzJfdCAq dHRscCk7Cisrc3RhdGljIHZvaWQgYWRkcnNvcnQgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4 LCBjaGFyICoqYXAsIGludCBudW0pOworIHN0YXRpYyBlbnVtIG5zc19zdGF0dXMgZ2V0YW5zd2Vy X3B0ciAodW5zaWduZWQgY2hhciAqcGFja2V0LCBzaXplX3QgcGFja2V0bGVuLAorIAkJCQkgICAg ICBzdHJ1Y3QgYWxsb2NfYnVmZmVyICphYnVmLAorIAkJCQkgICAgICBjaGFyICoqaG5hbWVwLCBp bnQgKmVycm5vcCwKK0BAIC0xODQsMTIgKzE5MSw2IEBAIGdldGhvc3RieW5hbWUzX2NvbnRleHQg KHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAorIAkJCWNoYXIgKmJ1ZmZlciwgc2l6ZV90IGJ1 ZmxlbiwgaW50ICplcnJub3AsCisgCQkJaW50ICpoX2Vycm5vcCwgaW50MzJfdCAqdHRscCwgY2hh ciAqKmNhbm9ucCkKKyB7CistICB1bmlvbgorLSAgeworLSAgICBxdWVyeWJ1ZiAqYnVmOworLSAg ICB1X2NoYXIgKnB0cjsKKy0gIH0gaG9zdF9idWZmZXI7CistICBxdWVyeWJ1ZiAqb3JpZ19ob3N0 X2J1ZmZlcjsKKyAgIGNoYXIgdG1wW05TX01BWEROQU1FXTsKKyAgIGludCBzaXplLCB0eXBlLCBu OworICAgY29uc3QgY2hhciAqY3A7CitAQCAtMjIzLDEwICsyMjQsMTIgQEAgZ2V0aG9zdGJ5bmFt ZTNfY29udGV4dCAoc3RydWN0IHJlc29sdl9jb250ZXh0ICpjdHgsCisgICAgICAgJiYgKGNwID0g X19yZXNfY29udGV4dF9ob3N0YWxpYXMgKGN0eCwgbmFtZSwgdG1wLCBzaXplb2YgKHRtcCkpKSAh PSBOVUxMKQorICAgICBuYW1lID0gY3A7CisgCistICBob3N0X2J1ZmZlci5idWYgPSBvcmlnX2hv c3RfYnVmZmVyID0gKHF1ZXJ5YnVmICopIGFsbG9jYSAoMTAyNCk7CisrICB1bnNpZ25lZCBjaGFy IGRuc19wYWNrZXRfYnVmZmVyWzEwMjRdOworKyAgdW5zaWduZWQgY2hhciAqYWx0X2Ruc19wYWNr ZXRfYnVmZmVyID0gZG5zX3BhY2tldF9idWZmZXI7CisgCistICBuID0gX19yZXNfY29udGV4dF9z ZWFyY2ggKGN0eCwgbmFtZSwgQ19JTiwgdHlwZSwgaG9zdF9idWZmZXIuYnVmLT5idWYsCistCQkJ ICAgIDEwMjQsICZob3N0X2J1ZmZlci5wdHIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpOworKyAg biA9IF9fcmVzX2NvbnRleHRfc2VhcmNoIChjdHgsIG5hbWUsIENfSU4sIHR5cGUsCisrCQkJICAg IGRuc19wYWNrZXRfYnVmZmVyLCBzaXplb2YgKGRuc19wYWNrZXRfYnVmZmVyKSwKKysJCQkgICAg JmFsdF9kbnNfcGFja2V0X2J1ZmZlciwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7CisgICBpZiAo biA8IDApCisgICAgIHsKKyAgICAgICBzd2l0Y2ggKGVycm5vKQorQEAgLTI1NSwxMiArMjU4LDc3 IEBAIGdldGhvc3RieW5hbWUzX2NvbnRleHQgKHN0cnVjdCByZXNvbHZfY29udGV4dCAqY3R4LAor IAlfX3NldF9lcnJubyAob2xkZXJyKTsKKyAgICAgfQorICAgZWxzZQorLSAgICBzdGF0dXMgPSBn ZXRhbnN3ZXJfcgorLSAgICAgIChjdHgsIGhvc3RfYnVmZmVyLmJ1ZiwgbiwgbmFtZSwgdHlwZSwg cmVzdWx0LCBidWZmZXIsIGJ1ZmxlbiwKKy0gICAgICAgZXJybm9wLCBoX2Vycm5vcCwgdHRscCwg Y2Fub25wKTsKKysgICAgeworKyAgICAgIHN0cnVjdCBhbGxvY19idWZmZXIgYWJ1ZiA9IGFsbG9j X2J1ZmZlcl9jcmVhdGUgKGJ1ZmZlciwgYnVmbGVuKTsKKyAKKy0gIGlmIChob3N0X2J1ZmZlci5i dWYgIT0gb3JpZ19ob3N0X2J1ZmZlcikKKy0gICAgZnJlZSAoaG9zdF9idWZmZXIuYnVmKTsKKysg ICAgICBzdHJ1Y3QgcHRybGlzdCBhZGRyZXNzZXM7CisrICAgICAgcHRybGlzdF9pbml0ICgmYWRk cmVzc2VzKTsKKysgICAgICBzdHJ1Y3QgcHRybGlzdCBhbGlhc2VzOworKyAgICAgIHB0cmxpc3Rf aW5pdCAoJmFsaWFzZXMpOworKworKyAgICAgIHN0YXR1cyA9IGdldGFuc3dlcl9yIChhbHRfZG5z X3BhY2tldF9idWZmZXIsIG4sIHR5cGUsCisrCQkJICAgICZhYnVmLCAmYWRkcmVzc2VzLCAmYWxp YXNlcywKKysJCQkgICAgZXJybm9wLCBoX2Vycm5vcCwgdHRscCk7CisrICAgICAgaWYgKHN0YXR1 cyA9PSBOU1NfU1RBVFVTX1NVQ0NFU1MpCisrCXsKKysJICBpZiAocHRybGlzdF9oYXNfZmFpbGVk ICgmYWRkcmVzc2VzKQorKwkgICAgICB8fCBwdHJsaXN0X2hhc19mYWlsZWQgKCZhbGlhc2VzKSkK KysJICAgIHsKKysJICAgICAgLyogbWFsbG9jIGZhaWx1cmUuICBEbyBub3QgcmV0cnkgdXNpbmcg dGhlIEVSQU5HRSBwcm90b2NvbC4gICovCisrCSAgICAgICplcnJub3AgPSBFTk9NRU07CisrCSAg ICAgICpoX2Vycm5vcCA9IE5FVERCX0lOVEVSTkFMOworKwkgICAgICBzdGF0dXMgPSBOU1NfU1RB VFVTX1VOQVZBSUw7CisrCSAgICB9CisrCisrCSAgLyogUmVzZXJ2ZSB0aGUgYWRkcmVzcyBhbmQg YWxpYXMgYXJyYXlzIGluIHRoZSByZXN1bHQKKysJICAgICBidWZmZXIuICBCb3RoIGFyZSBOVUxM LXRlcm1pbmF0ZWQsIGJ1dCB0aGUgZmlyc3QgZWxlbWVudAorKwkgICAgIG9mIHRoZSBhbGlhcyBh cnJheSBpcyBzdG9yZWQgaW4gaF9uYW1lLCBzbyBubyBleHRyYSBzcGFjZQorKwkgICAgIGZvciB0 aGUgTlVMTCB0ZXJtaW5hdG9yIGlzIG5lZWRlZCB0aGVyZS4gICovCisrCSAgcmVzdWx0LT5oX2Fk ZHJfbGlzdAorKwkgICAgPSBhbGxvY19idWZmZXJfYWxsb2NfYXJyYXkgKCZhYnVmLCBjaGFyICos CisrCQkJCQlwdHJsaXN0X3NpemUgKCZhZGRyZXNzZXMpICsgMSk7CisrCSAgcmVzdWx0LT5oX2Fs aWFzZXMKKysJICAgID0gYWxsb2NfYnVmZmVyX2FsbG9jX2FycmF5ICgmYWJ1ZiwgY2hhciAqLAor KwkJCQkJcHRybGlzdF9zaXplICgmYWxpYXNlcykpOworKwkgIGlmIChhbGxvY19idWZmZXJfaGFz X2ZhaWxlZCAoJmFidWYpKQorKwkgICAgeworKwkgICAgICAvKiBSZXRyeSB1c2luZyB0aGUgRVJB TkdFIHByb3RvY29sLiAgKi8KKysJICAgICAgKmVycm5vcCA9IEVSQU5HRTsKKysJICAgICAgKmhf ZXJybm9wID0gTkVUREJfSU5URVJOQUw7CisrCSAgICAgIHN0YXR1cyA9IE5TU19TVEFUVVNfVFJZ QUdBSU47CisrCSAgICB9CisrCSAgZWxzZQorKwkgICAgeworKwkgICAgICAvKiBDb3B5IHRoZSBh ZGRyZXNzIGxpc3QgYW5kIE5VTEwtdGVybWluYXRlIGl0LiAgKi8KKysJICAgICAgbWVtY3B5IChy ZXN1bHQtPmhfYWRkcl9saXN0LCBwdHJsaXN0X2JlZ2luICgmYWRkcmVzc2VzKSwKKysJCSAgICAg IHB0cmxpc3Rfc2l6ZSAoJmFkZHJlc3NlcykgKiBzaXplb2YgKGNoYXIgKikpOworKwkgICAgICBy ZXN1bHQtPmhfYWRkcl9saXN0W3B0cmxpc3Rfc2l6ZSAoJmFkZHJlc3NlcyldID0gTlVMTDsKKysK KysJICAgICAgLyogU29ydCB0aGUgYWRkcmVzcyBsaXN0IGlmIHJlcXVlc3RlZC4gICovCisrCSAg ICAgIGlmICh0eXBlID09IFRfQSAmJiBfX3Jlc29sdl9jb250ZXh0X3NvcnRfY291bnQgKGN0eCkg PiAwKQorKwkJYWRkcnNvcnQgKGN0eCwgcmVzdWx0LT5oX2FkZHJfbGlzdCwgcHRybGlzdF9zaXpl ICgmYWRkcmVzc2VzKSk7CisrCisrCSAgICAgIC8qIENvcHkgdGhlIGFsaWFzZXMsICBleGNsdWRp bmcgdGhlIGxhc3Qgb25lLiAqLworKwkgICAgICBtZW1jcHkgKHJlc3VsdC0+aF9hbGlhc2VzLCBw dHJsaXN0X2JlZ2luICgmYWxpYXNlcyksCisrCQkgICAgICAocHRybGlzdF9zaXplICgmYWxpYXNl cykgLSAxKSAqIHNpemVvZiAoY2hhciAqKSk7CisrCSAgICAgIHJlc3VsdC0+aF9hbGlhc2VzW3B0 cmxpc3Rfc2l6ZSAoJmFsaWFzZXMpIC0gMV0gPSBOVUxMOworKworKwkgICAgICAvKiBUaGUgbGFz dCBhbGlhcyBnb2VzIGludG8gaF9uYW1lLiAgKi8KKysJICAgICAgYXNzZXJ0IChwdHJsaXN0X3Np emUgKCZhbGlhc2VzKSA+PSAxKTsKKysJICAgICAgcmVzdWx0LT5oX25hbWUgPSBwdHJsaXN0X2Vu ZCAoJmFsaWFzZXMpWy0xXTsKKysKKysJICAgICAgLyogVGhpcyBpcyBhbHNvIHRoZSBjYW5vbmlj YWwgbmFtZS4gICovCisrCSAgICAgIGlmIChjYW5vbnAgIT0gTlVMTCkKKysJCSpjYW5vbnAgPSBy ZXN1bHQtPmhfbmFtZTsKKysJICAgIH0KKysJfQorKworKyAgICAgIHB0cmxpc3RfZnJlZSAoJmFs aWFzZXMpOworKyAgICAgIHB0cmxpc3RfZnJlZSAoJmFkZHJlc3Nlcyk7CisrICAgIH0KKysKKysg IGlmIChhbHRfZG5zX3BhY2tldF9idWZmZXIgIT0gZG5zX3BhY2tldF9idWZmZXIpCisrICAgIGZy ZWUgKGFsdF9kbnNfcGFja2V0X2J1ZmZlcik7CisgICByZXR1cm4gc3RhdHVzOworIH0KKyAKK0BA IC02MTQsMzE0ICs2ODIsMTI4IEBAIGFkZHJzb3J0IChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0 eCwgY2hhciAqKmFwLCBpbnQgbnVtKQorIAlicmVhazsKKyB9CisgCistc3RhdGljIGVudW0gbnNz X3N0YXR1cworLWdldGFuc3dlcl9yIChzdHJ1Y3QgcmVzb2x2X2NvbnRleHQgKmN0eCwKKy0JICAg ICBjb25zdCBxdWVyeWJ1ZiAqYW5zd2VyLCBpbnQgYW5zbGVuLCBjb25zdCBjaGFyICpxbmFtZSwg aW50IHF0eXBlLAorLQkgICAgIHN0cnVjdCBob3N0ZW50ICpyZXN1bHQsIGNoYXIgKmJ1ZmZlciwg c2l6ZV90IGJ1ZmxlbiwKKy0JICAgICBpbnQgKmVycm5vcCwgaW50ICpoX2Vycm5vcCwgaW50MzJf dCAqdHRscCwgY2hhciAqKmNhbm9ucCkKKysvKiBDb252ZXJ0IHRoZSB1bmNvbXByZXNzZWQsIGJp bmFyeSBkb21haW4gbmFtZSBDRE5BTUUgaW50byBpdHMKKysgICB0ZXh0dWFsIHJlcHJlc2VudGF0 aW9uIGFuZCBhZGQgaXQgdG8gdGhlIGVuZCBvZiBBTElBU0VTLCBhbGxvY2F0aW5nCisrICAgc3Bh Y2UgZm9yIGEgY29weSBvZiB0aGUgbmFtZSBmcm9tIEFCVUYuICBTa2lwIGFkZGluZyB0aGUgbmFt ZSBpZiBpdAorKyAgIGlzIG5vdCBhIHZhbGlkIGhvc3QgbmFtZSwgYW5kIHJldHVybiBmYWxzZSBp biB0aGF0IGNhc2UsIG90aGVyd2lzZQorKyAgIHRydWUuICAqLworK3N0YXRpYyBib29sCisrZ2V0 YW5zd2VyX3Jfc3RvcmVfYWxpYXMgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmNkbmFtZSwKKysJCQkg c3RydWN0IGFsbG9jX2J1ZmZlciAqYWJ1ZiwKKysJCQkgc3RydWN0IHB0cmxpc3QgKmFsaWFzZXMp CisgeworLSAgc3RydWN0IGhvc3RfZGF0YQorLSAgeworLSAgICBjaGFyICphbGlhc2VzW01BWF9O Ul9BTElBU0VTXTsKKy0gICAgdW5zaWduZWQgY2hhciBob3N0X2FkZHJbMTZdOwkvKiBJUHY0IG9y IElQdjYgKi8KKy0gICAgY2hhciAqaF9hZGRyX3B0cnNbMF07CistICB9ICpob3N0X2RhdGE7Cist ICBpbnQgbGluZWJ1ZmxlbjsKKy0gIGNvbnN0IEhFQURFUiAqaHA7CistICBjb25zdCB1X2NoYXIg KmVuZF9vZl9tZXNzYWdlLCAqY3A7CistICBpbnQgbiwgYW5jb3VudCwgcWRjb3VudDsKKy0gIGlu dCBoYXZlYW5zd2VyLCBoYWRfZXJyb3I7CistICBjaGFyICpicCwgKiphcCwgKipoYXA7CistICBj aGFyIHRidWZbTUFYRE5BTUVdOworLSAgdV9jaGFyIHBhY2t0bXBbTlNfTUFYQ0ROQU1FXTsKKy0g IHVpbnRwdHJfdCBwYWQgPSAtKHVpbnRwdHJfdCkgYnVmZmVyICUgX19hbGlnbm9mX18gKHN0cnVj dCBob3N0X2RhdGEpOworLSAgYnVmZmVyICs9IHBhZDsKKy0gIGJ1ZmxlbiA9IGJ1ZmxlbiA+IHBh ZCA/IGJ1ZmxlbiAtIHBhZCA6IDA7CistICBpZiAoX19nbGliY191bmxpa2VseSAoYnVmbGVuIDwg c2l6ZW9mIChzdHJ1Y3QgaG9zdF9kYXRhKSkpCistICAgIHsKKy0gICAgICAvKiBUaGUgYnVmZmVy IGlzIHRvbyBzbWFsbC4gICovCistICAgIHRvb19zbWFsbDoKKy0gICAgICAqZXJybm9wID0gRVJB TkdFOworLSAgICAgICpoX2Vycm5vcCA9IE5FVERCX0lOVEVSTkFMOworLSAgICAgIHJldHVybiBO U1NfU1RBVFVTX1RSWUFHQUlOOworLSAgICB9CistICBob3N0X2RhdGEgPSAoc3RydWN0IGhvc3Rf ZGF0YSAqKSBidWZmZXI7CistICBsaW5lYnVmbGVuID0gYnVmbGVuIC0gc2l6ZW9mIChzdHJ1Y3Qg aG9zdF9kYXRhKTsKKy0gIGlmIChidWZsZW4gLSBzaXplb2YgKHN0cnVjdCBob3N0X2RhdGEpICE9 IGxpbmVidWZsZW4pCistICAgIGxpbmVidWZsZW4gPSBJTlRfTUFYOworLQorLSAgcmVzdWx0LT5o X25hbWUgPSBOVUxMOworLSAgZW5kX29mX21lc3NhZ2UgPSBhbnN3ZXItPmJ1ZiArIGFuc2xlbjsK Ky0KKy0gIC8qCistICAgKiBmaW5kIGZpcnN0IHNhdGlzZmFjdG9yeSBhbnN3ZXIKKy0gICAqLwor LSAgaHAgPSAmYW5zd2VyLT5oZHI7CistICBhbmNvdW50ID0gbnRvaHMgKGhwLT5hbmNvdW50KTsK Ky0gIHFkY291bnQgPSBudG9ocyAoaHAtPnFkY291bnQpOworLSAgY3AgPSBhbnN3ZXItPmJ1ZiAr IEhGSVhFRFNaOworLSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKHFkY291bnQgIT0gMSkpCistICAg IHsKKy0gICAgICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsKKy0gICAgICByZXR1cm4gTlNTX1NU QVRVU19VTkFWQUlMOworLSAgICB9CistICBpZiAoc2l6ZW9mIChzdHJ1Y3QgaG9zdF9kYXRhKSAr IChhbmNvdW50ICsgMSkgKiBzaXplb2YgKGNoYXIgKikgPj0gYnVmbGVuKQorLSAgICBnb3RvIHRv b19zbWFsbDsKKy0gIGJwID0gKGNoYXIgKikgJmhvc3RfZGF0YS0+aF9hZGRyX3B0cnNbYW5jb3Vu dCArIDFdOworLSAgbGluZWJ1ZmxlbiAtPSAoYW5jb3VudCArIDEpICogc2l6ZW9mIChjaGFyICop OworLQorLSAgbiA9IF9fbnNfbmFtZV91bnBhY2sgKGFuc3dlci0+YnVmLCBlbmRfb2ZfbWVzc2Fn ZSwgY3AsCistCQkJcGFja3RtcCwgc2l6ZW9mIHBhY2t0bXApOworLSAgaWYgKG4gIT0gLTEgJiYg X19uc19uYW1lX250b3AgKHBhY2t0bXAsIGJwLCBsaW5lYnVmbGVuKSA9PSAtMSkKKy0gICAgewor LSAgICAgIGlmIChfX2dsaWJjX3VubGlrZWx5IChlcnJubyA9PSBFTVNHU0laRSkpCistCWdvdG8g dG9vX3NtYWxsOworLQorLSAgICAgIG4gPSAtMTsKKy0gICAgfQorKyAgLyogRmlsdGVyIG91dCBk b21haW4gbmFtZXMgdGhhdCBhcmUgbm90IGhvc3QgbmFtZXMuICAqLworKyAgaWYgKCFfX3Jlc19i aW5hcnlfaG5vayAoY2RuYW1lKSkKKysgICAgcmV0dXJuIGZhbHNlOworKworKyAgLyogTm90ZTog Tm90IE5TX01BWENETkFNRSwgc28gdGhhdCBfX25zX25hbWVfbnRvcCBpbXBsaWNpdGx5IGNoZWNr cworKyAgICAgZm9yIGxlbmd0aC4gICovCisrICBjaGFyIGRuYW1lW01BWEhPU1ROQU1FTEVOICsg MV07CisrICBpZiAoX19uc19uYW1lX250b3AgKGNkbmFtZSwgZG5hbWUsIHNpemVvZiAoZG5hbWUp KSA8IDApCisrICAgIHJldHVybiBmYWxzZTsKKysgIC8qIERvIG5vdCByZXBvcnQgYW4gZXJyb3Ig b24gYWxsb2NhdGlvbiBmYWlsdXJlLCBpbnN0ZWFkIHN0b3JlIE5VTEwKKysgICAgIG9yIGRvIG5v dGhpbmcuICBnZXRhbnN3ZXJfcidzIGNhbGxlciB3aWxsIHNlZSBOU1NfU1RBVFVTX1NVQ0NFU1MK KysgICAgIGFuZCBkZXRlY3QgdGhlIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUgb3IgYnVmZmVy IHNwYWNlCisrICAgICBleGhhdXN0aW9uLCBhbmQgcmVwb3J0IGl0IGFjY29yZGluZ2x5LiAgKi8K KysgIHB0cmxpc3RfYWRkIChhbGlhc2VzLCBhbGxvY19idWZmZXJfY29weV9zdHJpbmcgKGFidWYs IGRuYW1lKSk7CisrICByZXR1cm4gdHJ1ZTsKKyt9CisgCistICBpZiAoX19nbGliY191bmxpa2Vs eSAobiA8IDApKQorLSAgICB7CistICAgICAgKmVycm5vcCA9IGVycm5vOworLSAgICAgICpoX2Vy cm5vcCA9IE5PX1JFQ09WRVJZOworLSAgICAgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7Cist ICAgIH0KKy0gIGlmIChfX2dsaWJjX3VubGlrZWx5IChfX2xpYmNfcmVzX2hub2sgKGJwKSA9PSAw KSkKKytzdGF0aWMgZW51bSBuc3Nfc3RhdHVzIF9fYXR0cmlidXRlX18gKChub2lubGluZSkpCisr Z2V0YW5zd2VyX3IgKHVuc2lnbmVkIGNoYXIgKnBhY2tldCwgc2l6ZV90IHBhY2tldGxlbiwgdWlu dDE2X3QgcXR5cGUsCisrCSAgICAgc3RydWN0IGFsbG9jX2J1ZmZlciAqYWJ1ZiwKKysJICAgICBz dHJ1Y3QgcHRybGlzdCAqYWRkcmVzc2VzLCBzdHJ1Y3QgcHRybGlzdCAqYWxpYXNlcywKKysJICAg ICBpbnQgKmVycm5vcCwgaW50ICpoX2Vycm5vcCwgaW50MzJfdCAqdHRscCkKKyt7CisrICBzdHJ1 Y3QgbnNfcnJfY3Vyc29yIGM7CisrICBpZiAoIV9fbnNfcnJfY3Vyc29yX2luaXQgKCZjLCBwYWNr ZXQsIHBhY2tldGxlbikpCisgICAgIHsKKy0gICAgICBlcnJubyA9IEVCQURNU0c7CistICAgICAg KmVycm5vcCA9IEVCQURNU0c7CisrICAgICAgLyogVGhpcyBzaG91bGQgbm90IGhhcHBlbiBiZWNh dXNlIF9fcmVzX2NvbnRleHRfcXVlcnkgYWxyZWFkeQorKwkgcGVyZnJvbXMgcmVzcG9uc2UgdmFs aWRhdGlvbi4gICovCisgICAgICAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7CisgICAgICAgcmV0 dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKyAgICAgfQorLSAgY3AgKz0gbiArIFFGSVhFRFNaOwor IAorLSAgaWYgKHF0eXBlID09IFRfQSB8fCBxdHlwZSA9PSBUX0FBQUEpCisrICAvKiBUcmVhdCB0 aGUgUU5BTUUganVzdCBsaWtlIGFuIGFsaWFzLiAgRXJyb3Igb3V0IGlmIGl0IGlzIG5vdCBhCisr ICAgICB2YWxpZCBob3N0IG5hbWUuICAqLworKyAgaWYgKG5zX3JyX2N1cnNvcl9yY29kZSAoJmMp ID09IE5YRE9NQUlOCisrICAgICAgfHwgIWdldGFuc3dlcl9yX3N0b3JlX2FsaWFzIChuc19ycl9j dXJzb3JfcW5hbWUgKCZjKSwgYWJ1ZiwgYWxpYXNlcykpCisgICAgIHsKKy0gICAgICAvKiByZXNf c2VuZCgpIGhhcyBhbHJlYWR5IHZlcmlmaWVkIHRoYXQgdGhlIHF1ZXJ5IG5hbWUgaXMgdGhlCist ICAgICAgICogc2FtZSBhcyB0aGUgb25lIHdlIHNlbnQ7IHRoaXMganVzdCBnZXRzIHRoZSBleHBh bmRlZCBuYW1lCistICAgICAgICogKGkuZS4sIHdpdGggdGhlIHN1Y2NlZWRpbmcgc2VhcmNoLWRv bWFpbiB0YWNrZWQgb24pLgorLSAgICAgICAqLworLSAgICAgIG4gPSBzdHJsZW4gKGJwKSArIDE7 ICAgICAgICAgICAgIC8qIGZvciB0aGUgXDAgKi8KKy0gICAgICBpZiAobiA+PSBNQVhIT1NUTkFN RUxFTikKKy0JeworLQkgICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOworLQkgICplcnJub3AgPSBF Tk9FTlQ7CistCSAgcmV0dXJuIE5TU19TVEFUVVNfVFJZQUdBSU47CistCX0KKy0gICAgICByZXN1 bHQtPmhfbmFtZSA9IGJwOworLSAgICAgIGJwICs9IG47CistICAgICAgbGluZWJ1ZmxlbiAtPSBu OworLSAgICAgIGlmIChsaW5lYnVmbGVuIDwgMCkKKy0JZ290byB0b29fc21hbGw7CistICAgICAg LyogVGhlIHFuYW1lIGNhbiBiZSBhYmJyZXZpYXRlZCwgYnV0IGhfbmFtZSBpcyBub3cgYWJzb2x1 dGUuICovCistICAgICAgcW5hbWUgPSByZXN1bHQtPmhfbmFtZTsKKysgICAgICBpZiAodHRscCAh PSBOVUxMKQorKwkvKiBObyBuZWdhdGl2ZSBjYWNoaW5nLiAgKi8KKysJKnR0bHAgPSAwOworKyAg ICAgICpoX2Vycm5vcCA9IEhPU1RfTk9UX0ZPVU5EOworKyAgICAgICplcnJub3AgPSBFTk9FTlQ7 CisrICAgICAgcmV0dXJuIE5TU19TVEFUVVNfTk9URk9VTkQ7CisgICAgIH0KKyAKKy0gIGFwID0g aG9zdF9kYXRhLT5hbGlhc2VzOworLSAgKmFwID0gTlVMTDsKKy0gIHJlc3VsdC0+aF9hbGlhc2Vz ID0gaG9zdF9kYXRhLT5hbGlhc2VzOworLSAgaGFwID0gaG9zdF9kYXRhLT5oX2FkZHJfcHRyczsK Ky0gICpoYXAgPSBOVUxMOworLSAgcmVzdWx0LT5oX2FkZHJfbGlzdCA9IGhvc3RfZGF0YS0+aF9h ZGRyX3B0cnM7CistICBoYXZlYW5zd2VyID0gMDsKKy0gIGhhZF9lcnJvciA9IDA7CisrICBpbnQg YW5jb3VudCA9IG5zX3JyX2N1cnNvcl9hbmNvdW50ICgmYyk7CisrICBjb25zdCB1bnNpZ25lZCBj aGFyICpleHBlY3RlZF9uYW1lID0gbnNfcnJfY3Vyc29yX3FuYW1lICgmYyk7CisrICAvKiBleHBl Y3RlZF9uYW1lIG1heSBiZSB1cGRhdGVkIHRvIHBvaW50IGludG8gdGhpcyBidWZmZXIuICAqLwor KyAgdW5zaWduZWQgY2hhciBuYW1lX2J1ZmZlcltOU19NQVhDRE5BTUVdOworIAorLSAgd2hpbGUg KGFuY291bnQtLSA+IDAgJiYgY3AgPCBlbmRfb2ZfbWVzc2FnZSAmJiBoYWRfZXJyb3IgPT0gMCkK KysgIGZvciAoOyBhbmNvdW50ID4gMDsgLS1hbmNvdW50KQorICAgICB7CistICAgICAgaW50IHR5 cGUsIGNsYXNzOworLQorLSAgICAgIG4gPSBfX25zX25hbWVfdW5wYWNrIChhbnN3ZXItPmJ1Ziwg ZW5kX29mX21lc3NhZ2UsIGNwLAorLQkJCSAgICBwYWNrdG1wLCBzaXplb2YgcGFja3RtcCk7Cist ICAgICAgaWYgKG4gIT0gLTEgJiYgX19uc19uYW1lX250b3AgKHBhY2t0bXAsIGJwLCBsaW5lYnVm bGVuKSA9PSAtMSkKKy0JeworLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChlcnJubyA9PSBFTVNH U0laRSkpCistCSAgICBnb3RvIHRvb19zbWFsbDsKKy0KKy0JICBuID0gLTE7CistCX0KKy0KKy0g ICAgICBpZiAoX19nbGliY191bmxpa2VseSAobiA8IDAgfHwgX19saWJjX3Jlc19obm9rIChicCkg PT0gMCkpCistCXsKKy0JICArK2hhZF9lcnJvcjsKKy0JICBjb250aW51ZTsKKy0JfQorLSAgICAg IGNwICs9IG47CQkJCS8qIG5hbWUgKi8KKy0KKy0gICAgICBpZiAoX19nbGliY191bmxpa2VseSAo Y3AgKyAxMCA+IGVuZF9vZl9tZXNzYWdlKSkKKysgICAgICBzdHJ1Y3QgbnNfcnJfd2lyZSBycjsK KysgICAgICBpZiAoIV9fbnNfcnJfY3Vyc29yX25leHQgKCZjLCAmcnIpKQorIAl7CistCSAgKyto YWRfZXJyb3I7CistCSAgY29udGludWU7CisrCSAgKmhfZXJybm9wID0gTk9fUkVDT1ZFUlk7Cisr CSAgcmV0dXJuIE5TU19TVEFUVVNfVU5BVkFJTDsKKyAJfQorIAorLSAgICAgIE5TX0dFVDE2ICh0 eXBlLCBjcCk7CistICAgICAgTlNfR0VUMTYgKGNsYXNzLCBjcCk7CistICAgICAgaW50MzJfdCB0 dGw7CistICAgICAgTlNfR0VUMzIgKHR0bCwgY3ApOworLSAgICAgIE5TX0dFVDE2IChuLCBjcCk7 CQkvKiBSREFUQSBsZW5ndGguICAqLworLQorLSAgICAgIGlmIChlbmRfb2ZfbWVzc2FnZSAtIGNw IDwgbikKKy0JeworLQkgIC8qIFJEQVRBIGV4dGVuZHMgYmV5b25kIHRoZSBlbmQgb2YgdGhlIHBh Y2tldC4gICovCistCSAgKytoYWRfZXJyb3I7CistCSAgY29udGludWU7CistCX0KKysgICAgICAv KiBTa2lwIG92ZXIgcmVjb3JkcyB3aXRoIHRoZSB3cm9uZyBjbGFzcy4gICovCisrICAgICAgaWYg KHJyLnJjbGFzcyAhPSBDX0lOKQorKwljb250aW51ZTsKKyAKKy0gICAgICBpZiAoX19nbGliY191 bmxpa2VseSAoY2xhc3MgIT0gQ19JTikpCistCXsKKy0JICAvKiBYWFggLSBkZWJ1Zz8gc3lzbG9n PyAqLworLQkgIGNwICs9IG47CistCSAgY29udGludWU7CQkJLyogWFhYIC0gaGFkX2Vycm9yKysg PyAqLworLQl9CisrICAgICAgLyogVXBkYXRlIFRUTCBmb3IgcmVjb2duaXplZCByZWNvcmQgdHlw ZXMuICAqLworKyAgICAgIGlmICgocnIucnR5cGUgPT0gVF9DTkFNRSB8fCByci5ydHlwZSA9PSBx dHlwZSkKKysJICAmJiB0dGxwICE9IE5VTEwgJiYgKnR0bHAgPiByci50dGwpCisrCSp0dGxwID0g cnIudHRsOworIAorLSAgICAgIGlmICh0eXBlID09IFRfQ05BTUUpCisrICAgICAgaWYgKHJyLnJ0 eXBlID09IFRfQ05BTUUpCisgCXsKKy0JICAvKiBBIENOQU1FIGNvdWxkIGFsc28gaGF2ZSBhIFRU TCBlbnRyeS4gICovCistCSAgaWYgKHR0bHAgIT0gTlVMTCAmJiB0dGwgPCAqdHRscCkKKy0JICAg ICAgKnR0bHAgPSB0dGw7CistCistCSAgaWYgKGFwID49ICZob3N0X2RhdGEtPmFsaWFzZXNbTUFY X05SX0FMSUFTRVMgLSAxXSkKKy0JICAgIGNvbnRpbnVlOworLQkgIG4gPSBfX2xpYmNfZG5fZXhw YW5kIChhbnN3ZXItPmJ1ZiwgZW5kX29mX21lc3NhZ2UsIGNwLAorLQkJCQl0YnVmLCBzaXplb2Yg dGJ1Zik7CistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAwIHx8IF9fbGliY19yZXNfaG5v ayAodGJ1ZikgPT0gMCkpCistCSAgICB7CistCSAgICAgICsraGFkX2Vycm9yOworLQkgICAgICBj b250aW51ZTsKKy0JICAgIH0KKy0JICBjcCArPSBuOworLQkgIC8qIFN0b3JlIGFsaWFzLiAgKi8K Ky0JICAqYXArKyA9IGJwOworLQkgIG4gPSBzdHJsZW4gKGJwKSArIDE7CQkvKiBGb3IgdGhlIFww LiAgKi8KKy0JICBpZiAoX19nbGliY191bmxpa2VseSAobiA+PSBNQVhIT1NUTkFNRUxFTikpCist CSAgICB7CistCSAgICAgICsraGFkX2Vycm9yOworLQkgICAgICBjb250aW51ZTsKKy0JICAgIH0K Ky0JICBicCArPSBuOworLQkgIGxpbmVidWZsZW4gLT0gbjsKKy0JICAvKiBHZXQgY2Fub25pY2Fs IG5hbWUuICAqLworLQkgIG4gPSBzdHJsZW4gKHRidWYpICsgMTsJLyogRm9yIHRoZSBcMC4gICov CistCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPiBsaW5lYnVmbGVuKSkKKy0JICAgIGdvdG8g dG9vX3NtYWxsOworLQkgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuID49IE1BWEhPU1ROQU1FTEVO KSkKKysJICAvKiBOQjogTm8gY2hlY2sgZm9yIG93bmVyIG5hbWUgbWF0Y2gsIGJhc2VkIG9uIGhp c3RvcmljCisrCSAgICAgcHJlY2VkZW50LiAgUmVjb3JkIHRoZSBDTkFNRSB0YXJnZXQgYXMgdGhl IG5ldyBleHBlY3RlZAorKwkgICAgIG5hbWUuICAqLworKwkgIGludCBuID0gX19uc19uYW1lX3Vu cGFjayAoYy5iZWdpbiwgYy5lbmQsIHJyLnJkYXRhLAorKwkJCQkgICAgbmFtZV9idWZmZXIsIHNp emVvZiAobmFtZV9idWZmZXIpKTsKKysJICBpZiAobiA8IDApCisgCSAgICB7CistCSAgICAgICsr aGFkX2Vycm9yOworLQkgICAgICBjb250aW51ZTsKKysJICAgICAgKmhfZXJybm9wID0gTk9fUkVD T1ZFUlk7CisrCSAgICAgIHJldHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CisgCSAgICB9CistCSAg cmVzdWx0LT5oX25hbWUgPSBicDsKKy0JICBicCA9IF9fbWVtcGNweSAoYnAsIHRidWYsIG4pOwkv KiBDYW5ub3Qgb3ZlcmZsb3cuICAqLworLQkgIGxpbmVidWZsZW4gLT0gbjsKKy0JICBjb250aW51 ZTsKKysJICAvKiBBbmQgc3RvcmUgdGhlIG5ldyBuYW1lIGFzIGFuIGFsaWFzLiAgKi8KKysJICBn ZXRhbnN3ZXJfcl9zdG9yZV9hbGlhcyAobmFtZV9idWZmZXIsIGFidWYsIGFsaWFzZXMpOworKwkg IGV4cGVjdGVkX25hbWUgPSBuYW1lX2J1ZmZlcjsKKyAJfQorLQorLSAgICAgIGlmIChfX2dsaWJj X3VubGlrZWx5ICh0eXBlICE9IHF0eXBlKSkKKysgICAgICBlbHNlIGlmIChyci5ydHlwZSA9PSBx dHlwZQorKwkgICAgICAgJiYgX19uc19zYW1lYmluYXJ5bmFtZSAocnIucm5hbWUsIGV4cGVjdGVk X25hbWUpCisrCSAgICAgICAmJiByci5yZGxlbmd0aCA9PSBycnR5cGVfdG9fcmRhdGFfbGVuZ3Ro IChxdHlwZSkpCisgCXsKKy0JICBjcCArPSBuOworLQkgIGNvbnRpbnVlOwkJCS8qIFhYWCAtIGhh ZF9lcnJvcisrID8gKi8KKysJICAvKiBNYWtlIGEgY29weSBvZiB0aGUgYWRkcmVzcyBhbmQgc3Rv cmUgaXQuICBJbmNyZWFzZSB0aGUKKysJICAgICBhbGlnbm1lbnQgdG8gNCwgaW4gY2FzZSB0aGVy ZSBhcmUgYXBwbGljYXRpb25zIG91dCB0aGVyZQorKwkgICAgIHRoYXQgZXhwZWN0IGF0IGxlYXN0 IHRoaXMgbGV2ZWwgb2YgYWRkcmVzcyBhbGlnbm1lbnQuICAqLworKwkgIHB0cmxpc3RfYWRkIChh ZGRyZXNzZXMsIChjaGFyICopIGFsbG9jX2J1ZmZlcl9uZXh0IChhYnVmLCB1aW50MzJfdCkpOwor KwkgIGFsbG9jX2J1ZmZlcl9jb3B5X2J5dGVzIChhYnVmLCByci5yZGF0YSwgcnIucmRsZW5ndGgp OworIAl9CistCistICAgICAgc3dpdGNoICh0eXBlKQorLQl7CistCWNhc2UgVF9BOgorLQljYXNl IFRfQUFBQToKKy0JICBpZiAoX19nbGliY191bmxpa2VseSAoX19zdHJjYXNlY21wIChyZXN1bHQt PmhfbmFtZSwgYnApICE9IDApKQorLQkgICAgeworLQkgICAgICBjcCArPSBuOworLQkgICAgICBj b250aW51ZTsJCQkvKiBYWFggLSBoYWRfZXJyb3IrKyA/ICovCistCSAgICB9CistCistCSAgLyog U3RvcCBwYXJzaW5nIGF0IGEgcmVjb3JkIHdob3NlIGxlbmd0aCBpcyBpbmNvcnJlY3QuICAqLwor LQkgIGlmIChuICE9IHJydHlwZV90b19yZGF0YV9sZW5ndGggKHR5cGUpKQorLQkgICAgeworLQkg ICAgICArK2hhZF9lcnJvcjsKKy0JICAgICAgYnJlYWs7CistCSAgICB9CistCistCSAgLyogU2tp cCByZWNvcmRzIG9mIHRoZSB3cm9uZyB0eXBlLiAgKi8KKy0JICBpZiAobiAhPSByZXN1bHQtPmhf bGVuZ3RoKQorLQkgICAgeworLQkgICAgICBjcCArPSBuOworLQkgICAgICBjb250aW51ZTsKKy0J ICAgIH0KKy0JICBpZiAoIWhhdmVhbnN3ZXIpCistCSAgICB7CistCSAgICAgIGludCBubjsKKy0K Ky0JICAgICAgLyogV2UgY29tcG9zZSBhIHNpbmdsZSBob3N0ZW50IG91dCBvZiB0aGUgZW50aXJl IGNoYWluIG9mCistCSAgICAgICAgIGVudHJpZXMsIHNvIHRoZSBUVEwgb2YgdGhlIGhvc3RlbnQg aXMgZXNzZW50aWFsbHkgdGhlIGxvd2VzdAorLQkJIFRUTCBpbiB0aGUgY2hhaW4uICAqLworLQkg ICAgICBpZiAodHRscCAhPSBOVUxMICYmIHR0bCA8ICp0dGxwKQorLQkJKnR0bHAgPSB0dGw7Cist CSAgICAgIGlmIChjYW5vbnAgIT0gTlVMTCkKKy0JCSpjYW5vbnAgPSBicDsKKy0JICAgICAgcmVz dWx0LT5oX25hbWUgPSBicDsKKy0JICAgICAgbm4gPSBzdHJsZW4gKGJwKSArIDE7CS8qIGZvciB0 aGUgXDAgKi8KKy0JICAgICAgYnAgKz0gbm47CistCSAgICAgIGxpbmVidWZsZW4gLT0gbm47Cist CSAgICB9CistCistCSAgLyogUHJvdmlkZSBzdWZmaWNpZW50IGFsaWdubWVudCBmb3IgYm90aCBh ZGRyZXNzCistCSAgICAgZmFtaWxpZXMuICAqLworLQkgIGVudW0geyBhbGlnbiA9IDQgfTsKKy0J ICBfU3RhdGljX2Fzc2VydCAoKGFsaWduICUgX19hbGlnbm9mX18gKHN0cnVjdCBpbl9hZGRyKSkg PT0gMCwKKy0JCQkgICJzdHJ1Y3QgaW5fYWRkciBhbGlnbm1lbnQiKTsKKy0JICBfU3RhdGljX2Fz c2VydCAoKGFsaWduICUgX19hbGlnbm9mX18gKHN0cnVjdCBpbjZfYWRkcikpID09IDAsCistCQkJ ICAic3RydWN0IGluNl9hZGRyIGFsaWdubWVudCIpOworLQkgIHsKKy0JICAgIGNoYXIgKm5ld19i cCA9IFBUUl9BTElHTl9VUCAoYnAsIGFsaWduKTsKKy0JICAgIGxpbmVidWZsZW4gLT0gbmV3X2Jw IC0gYnA7CistCSAgICBicCA9IG5ld19icDsKKy0JICB9CistCistCSAgaWYgKF9fZ2xpYmNfdW5s aWtlbHkgKG4gPiBsaW5lYnVmbGVuKSkKKy0JICAgIGdvdG8gdG9vX3NtYWxsOworLQkgIGJwID0g X19tZW1wY3B5ICgqaGFwKysgPSBicCwgY3AsIG4pOworLQkgIGNwICs9IG47CistCSAgbGluZWJ1 ZmxlbiAtPSBuOworLQkgIGJyZWFrOworLQlkZWZhdWx0OgorLQkgIGFib3J0ICgpOworLQl9Cist ICAgICAgaWYgKGhhZF9lcnJvciA9PSAwKQorLQkrK2hhdmVhbnN3ZXI7CisgICAgIH0KKyAKKy0g IGlmIChoYXZlYW5zd2VyID4gMCkKKysgIGlmIChwdHJsaXN0X3NpemUgKGFkZHJlc3NlcykgPT0g MCkKKyAgICAgeworLSAgICAgICphcCA9IE5VTEw7CistICAgICAgKmhhcCA9IE5VTEw7CistICAg ICAgLyoKKy0gICAgICAgKiBOb3RlOiB3ZSBzb3J0IGV2ZW4gaWYgaG9zdCBjYW4gdGFrZSBvbmx5 IG9uZSBhZGRyZXNzCistICAgICAgICogaW4gaXRzIHJldHVybiBzdHJ1Y3R1cmVzIC0gc2hvdWxk IGdpdmUgaXQgdGhlICJiZXN0IgorLSAgICAgICAqIGFkZHJlc3MgaW4gdGhhdCBjYXNlLCBub3Qg c29tZSByYW5kb20gb25lCistICAgICAgICovCistICAgICAgaWYgKGhhdmVhbnN3ZXIgPiAxICYm IHF0eXBlID09IFRfQQorLQkgICYmIF9fcmVzb2x2X2NvbnRleHRfc29ydF9jb3VudCAoY3R4KSA+ IDApCistCWFkZHJzb3J0IChjdHgsIGhvc3RfZGF0YS0+aF9hZGRyX3B0cnMsIGhhdmVhbnN3ZXIp OworLQorLSAgICAgIGlmIChyZXN1bHQtPmhfbmFtZSA9PSBOVUxMKQorLQl7CistCSAgbiA9IHN0 cmxlbiAocW5hbWUpICsgMTsJLyogRm9yIHRoZSBcMC4gICovCistCSAgaWYgKG4gPiBsaW5lYnVm bGVuKQorLQkgICAgZ290byB0b29fc21hbGw7CistCSAgaWYgKG4gPj0gTUFYSE9TVE5BTUVMRU4p CistCSAgICBnb3RvIG5vX3JlY292ZXJ5OworLQkgIHJlc3VsdC0+aF9uYW1lID0gYnA7CistCSAg YnAgPSBfX21lbXBjcHkgKGJwLCBxbmFtZSwgbik7CS8qIENhbm5vdCBvdmVyZmxvdy4gICovCist CSAgbGluZWJ1ZmxlbiAtPSBuOworLQl9CisrICAgICAgLyogTm8gYWRkcmVzcyByZWNvcmQgZm91 bmQuICAqLworKyAgICAgIGlmICh0dGxwICE9IE5VTEwpCisrCS8qIE5vIGNhY2hpbmcgb2YgbmVn YXRpdmUgcmVzcG9uc2VzLiAgKi8KKysJKnR0bHAgPSAwOworIAorKyAgICAgICpoX2Vycm5vcCA9 IE5PX1JFQ09WRVJZOworKyAgICAgICplcnJub3AgPSBFTk9FTlQ7CisrICAgICAgcmV0dXJuIE5T U19TVEFUVVNfVFJZQUdBSU47CisrICAgIH0KKysgIGVsc2UKKysgICAgeworICAgICAgICpoX2Vy cm5vcCA9IE5FVERCX1NVQ0NFU1M7CisgICAgICAgcmV0dXJuIE5TU19TVEFUVVNfU1VDQ0VTUzsK KyAgICAgfQorLSBub19yZWNvdmVyeToKKy0gICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOworLSAg KmVycm5vcCA9IEVOT0VOVDsKKy0gIC8qIFNwZWNpYWwgY2FzZSBoZXJlOiBpZiB0aGUgcmVzb2x2 ZXIgc2VudCBhIHJlc3VsdCBidXQgaXQgb25seQorLSAgICAgY29udGFpbnMgYSBDTkFNRSB3aGls ZSB3ZSBhcmUgbG9va2luZyBmb3IgYSBUX0Egb3IgVF9BQUFBIHJlY29yZCwKKy0gICAgIHdlIGZh aWwgd2l0aCBOT1RGT1VORCBpbnN0ZWFkIG9mIFRSWUFHQUlOLiAgKi8KKy0gIHJldHVybiAoKHF0 eXBlID09IFRfQSB8fCBxdHlwZSA9PSBUX0FBQUEpICYmIGFwICE9IGhvc3RfZGF0YS0+YWxpYXNl cworLQkgICA/IE5TU19TVEFUVVNfTk9URk9VTkQgOiBOU1NfU1RBVFVTX1RSWUFHQUlOKTsKKyB9 CisgCisgc3RhdGljIGVudW0gbnNzX3N0YXR1cworLS0gCisyLjM4LjEKKworCitGcm9tIDdhMjM2 ZGM0NGEyMmRjNDI1MmU4MDNkMWVlMWQzYjk3MGVjNDM4MDUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogVHVl LCAzMCBBdWcgMjAyMiAxMDowMjo0OSArMDIwMAorU3ViamVjdDogbnNzX2RuczogSW4gZ2FpaF9n ZXRhbnN3ZXJfc2xpY2UsIHNraXAgc3RyYW5nZSBhbGlhc2VzIChidWcgMTIxNTQpCisKK0lmIHRo ZSBuYW1lIGlzIG5vdCBhIGhvc3QgbmFtZSwgc2tpcCBhZGRpbmcgaXQgdG8gdGhlIHJlc3VsdCwg aW5zdGVhZAorb2YgcmVwb3J0aW5nIHF1ZXJ5IGZhaWx1cmUuICBUaGlzIGZpeGVzIGJ1ZyAxMjE1 NCBmb3IgZ2V0YWRkcmluZm8uCisKK1RoaXMgY29tbWl0IHN0aWxsIGtlZXBzIHRoZSBvbGQgcGFy c2luZyBjb2RlLCBhbmQgb25seSBhZGp1c3RzIHdoZW4KK2EgaG9zdCBuYW1lIGlzIGNvcGllZC4K KworUmV2aWV3ZWQtYnk6IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5v cmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAzMmI1OTlhYzhjMjFjNGMzMzJjYzM5MDBh NzkyYTEzOTViY2E3OWM3KQorLS0tCisgcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYyB8IDggKysr Ky0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQor CitkaWZmIC0tZ2l0IGEvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYyBiL3Jlc29sdi9uc3NfZG5z L2Rucy1ob3N0LmMKK2luZGV4IGI4ODdlNzdlOWMuLmJlYTUwNWQ2OTcgMTAwNjQ0CistLS0gYS9y ZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jCisrKysgYi9yZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5j CitAQCAtOTcwLDEyICs5NzAsMTIgQEAgZ2FpaF9nZXRhbnN3ZXJfc2xpY2UgKGNvbnN0IHF1ZXJ5 YnVmICphbnN3ZXIsIGludCBhbnNsZW4sIGNvbnN0IGNoYXIgKnFuYW1lLAorIAorIAkgIG4gPSAt MTsKKyAJfQorLSAgICAgIGlmIChfX2dsaWJjX3VubGlrZWx5IChuIDwgMCB8fCBfX2xpYmNfcmVz X2hub2sgKGJ1ZmZlcikgPT0gMCkpCisrICAgICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAw KSkKKyAJeworIAkgICsraGFkX2Vycm9yOworIAkgIGNvbnRpbnVlOworIAl9CistICAgICAgaWYg KCpmaXJzdHAgJiYgY2Fub24gPT0gTlVMTCkKKysgICAgICBpZiAoKmZpcnN0cCAmJiBjYW5vbiA9 PSBOVUxMICYmIF9fbGliY19yZXNfaG5vayAoYnVmZmVyKSkKKyAJeworIAkgIGhfbmFtZSA9IGJ1 ZmZlcjsKKyAJICBidWZmZXIgKz0gaF9uYW1lbGVuOworQEAgLTEwMjEsMTQgKzEwMjEsMTQgQEAg Z2FpaF9nZXRhbnN3ZXJfc2xpY2UgKGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIsIGludCBhbnNsZW4s IGNvbnN0IGNoYXIgKnFuYW1lLAorIAorIAkgIG4gPSBfX2xpYmNfZG5fZXhwYW5kIChhbnN3ZXIt PmJ1ZiwgZW5kX29mX21lc3NhZ2UsIGNwLAorIAkJCQl0YnVmLCBzaXplb2YgdGJ1Zik7CistCSAg aWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAwIHx8IF9fbGliY19yZXNfaG5vayAodGJ1ZikgPT0g MCkpCisrCSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAwKSkKKyAJICAgIHsKKyAJICAgICAg KytoYWRfZXJyb3I7CisgCSAgICAgIGNvbnRpbnVlOworIAkgICAgfQorIAkgIGNwICs9IG47Cisg CistCSAgaWYgKCpmaXJzdHApCisrCSAgaWYgKCpmaXJzdHAgJiYgX19saWJjX3Jlc19obm9rICh0 YnVmKSkKKyAJICAgIHsKKyAJICAgICAgLyogUmVjbGFpbSBidWZmZXIgc3BhY2UuICAqLworIAkg ICAgICBpZiAoaF9uYW1lICsgaF9uYW1lbGVuID09IGJ1ZmZlcikKKy0tIAorMi4zOC4xCisKKwor RnJvbSBlMmVjNmE4ZGIzOGE2YjczNGJiZGI0MWU0OThmZGM5NDYwZjc1NjZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4K K0RhdGU6IFR1ZSwgMzAgQXVnIDIwMjIgMTA6MDI6NDkgKzAyMDAKK1N1YmplY3Q6IHJlc29sdjog QWRkIG5ldyB0c3QtcmVzb2x2LWludmFsaWQtY25hbWUKKworVGhpcyB0ZXN0IGNoZWNrcyByZXNv bHV0aW9uIHRocm91Z2ggQ05BTUUgY2hhaW5zIHRoYXQgZG8gbm90IGNvbnRhaW4KK2hvc3QgbmFt ZXMgKGJ1ZyAxMjE1NCkuCisKK1Jldmlld2VkLWJ5OiBTaWRkaGVzaCBQb3lhcmVrYXIgPHNpZGRo ZXNoQHNvdXJjZXdhcmUub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgOWNhZjc4MjI3 NmVjZWE0YmM4NmZjOTRmYmI1Mjc3OTczNmYzMTA2ZCkKKy0tLQorIHJlc29sdi9NYWtlZmlsZSAg ICAgICAgICAgICAgICAgICB8ICAgMyArCisgcmVzb2x2L3RzdC1yZXNvbHYtaW52YWxpZC1jbmFt ZS5jIHwgNDA2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIDIgZmlsZXMgY2hhbmdl ZCwgNDA5IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgcmVzb2x2L3RzdC1yZXNv bHYtaW52YWxpZC1jbmFtZS5jCisKK2RpZmYgLS1naXQgYS9yZXNvbHYvTWFrZWZpbGUgYi9yZXNv bHYvTWFrZWZpbGUKK2luZGV4IDAxOGIxODA4ZDYuLmY4YTkyYzZjZmYgMTAwNjQ0CistLS0gYS9y ZXNvbHYvTWFrZWZpbGUKKysrKyBiL3Jlc29sdi9NYWtlZmlsZQorQEAgLTk4LDYgKzk4LDcgQEAg dGVzdHMgKz0gXAorICAgdHN0LXJlc29sdi1iaW5hcnkgXAorICAgdHN0LXJlc29sdi1ieWFkZHIg XAorICAgdHN0LXJlc29sdi1lZG5zIFwKKysgIHRzdC1yZXNvbHYtaW52YWxpZC1jbmFtZSBcCisg ICB0c3QtcmVzb2x2LW5ldHdvcmsgXAorICAgdHN0LXJlc29sdi1ub2FhYWEgXAorICAgdHN0LXJl c29sdi1ub25kZWNpbWFsIFwKK0BAIC0yODcsNiArMjg4LDggQEAgJChvYmpwZngpdHN0LXJlc29s di1yZXNfaW5pdC1tdWx0aTogJChvYmpwZngpbGlicmVzb2x2LnNvIFwKKyAgICQoc2hhcmVkLXRo cmVhZC1saWJyYXJ5KQorICQob2JqcGZ4KXRzdC1yZXNvbHYtcmVzX2luaXQtdGhyZWFkOiAkKG9i anBmeClsaWJyZXNvbHYuc28gXAorICAgJChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCisrJChvYmpw ZngpdHN0LXJlc29sdi1pbnZhbGlkLWNuYW1lOiAkKG9ianBmeClsaWJyZXNvbHYuc28gXAorKyAg JChzaGFyZWQtdGhyZWFkLWxpYnJhcnkpCisgJChvYmpwZngpdHN0LXJlc29sdi1ub2FhYWE6ICQo b2JqcGZ4KWxpYnJlc29sdi5zbyAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKKyAkKG9ianBmeCl0 c3QtcmVzb2x2LW5vbmRlY2ltYWw6ICQob2JqcGZ4KWxpYnJlc29sdi5zbyAkKHNoYXJlZC10aHJl YWQtbGlicmFyeSkKKyAkKG9ianBmeCl0c3QtcmVzb2x2LXF0eXBlczogJChvYmpwZngpbGlicmVz b2x2LnNvICQoc2hhcmVkLXRocmVhZC1saWJyYXJ5KQorZGlmZiAtLWdpdCBhL3Jlc29sdi90c3Qt cmVzb2x2LWludmFsaWQtY25hbWUuYyBiL3Jlc29sdi90c3QtcmVzb2x2LWludmFsaWQtY25hbWUu YworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAuLmFlMmQ0NDE5YjEKKy0t LSAvZGV2L251bGwKKysrKyBiL3Jlc29sdi90c3QtcmVzb2x2LWludmFsaWQtY25hbWUuYworQEAg LTAsMCArMSw0MDYgQEAKKysvKiBUZXN0IGhhbmRsaW5nIG9mIENOQU1FcyB3aXRoIG5vbi1ob3N0 IGRvbWFpbiBuYW1lcyAoYnVnIDEyMTU0KS4KKysgICBDb3B5cmlnaHQgKEMpIDIwMjIgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdO VSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNp b24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBz ZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5jbHVk ZSA8ZXJybm8uaD4KKysjaW5jbHVkZSA8bmV0ZGIuaD4KKysjaW5jbHVkZSA8cmVzb2x2Lmg+Cisr I2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysjaW5jbHVkZSA8c3Vw cG9ydC9jaGVjay5oPgorKyNpbmNsdWRlIDxzdXBwb3J0L2NoZWNrX25zcy5oPgorKyNpbmNsdWRl IDxzdXBwb3J0L3Jlc29sdl90ZXN0Lmg+CisrI2luY2x1ZGUgPHN1cHBvcnQvc3VwcG9ydC5oPgor KyNpbmNsdWRlIDxzdXBwb3J0L3htZW1zdHJlYW0uaD4KKysKKysvKiBRdWVyeSBzdHJpbmdzIGRl c2NyaWJlIHRoZSBDTkFNRSBjaGFpbiBpbiB0aGUgcmVzcG9uc2UuICBUaGV5IGhhdmUKKysgICB0 aGUgZm9ybWF0ICJiaXRzQklUUy5jb3VudENPVU5ULmV4YW1wbGUuIiwgd2hlcmUgQklUUyBhbmQg Q09VTlQgYXJlCisrICAgcmVwbGFjZWQgYnkgdW5zaWduZWQgZGVjaW1hbCBudW1iZXJzLiAgQ09V TlQgaXMgdGhlIG51bWJlciBvZiBDTkFNRQorKyAgIHJlY29yZHMgaW4gdGhlIHJlc3BvbnNlLiAg QklUUyBoYXMgdHdvIGJpdHMgZm9yIGVhY2ggQ05BTUUgcmVjb3JkLAorKyAgIGRlc2NyaWJpbmcg YSBzcGVjaWFsIHByZWZpeCB0aGF0IGlzIGFkZGVkIHRvIHRoYXQgQ05BTUUuCisrCisrICAgMDog Tm8gc3BlY2lhbCBsZWFkaW5nIGxhYmVsLgorKyAgIDE6IFN0YXJ0aW5nIHdpdGggIiouIi4KKysg ICAyOiBTdGFydGluZyB3aXRoICIteC4iLgorKyAgIDM6IFN0YXJ0aW5nIHdpdGggInN0YXIuKi4i LgorKworKyAgIFRoZSBmaXJzdCBDTkFNRSBpbiB0aGUgcmVzcG9uc2UgdXNpbmcgdGhlIHR3byBs ZWFzdCBzaWduaWZpY2FudAorKyAgIGJpdHMuCisrCisrICAgRm9yIFBUUiBxdWVyaWVzLCB0aGUg UU5BTUUgZm9ybWF0IGlzIGRpZmZlcmVudCwgaXQgaXMgZWl0aGVyCisrICAgQ09VTlQuQklUUy4x NjguMTkyLmluLWFkZHIuYXJwYS4gKHdpdGggQklUUyBhbmQgQ09VTlQgc3RpbGwKKysgICBkZWNp bWFsKSwgb3I6CisrCisrQ09VTlQuQklUUzAuQklUUzEuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAu MC4wLjAuMC4wLjAuMC4wLjAuOC5iLmQuMC4xLjAuMC4yLmlwNi5hcnBhLgorKworKyAgIHdoZXJl IEJJVFMgYW5kIENPVU5UIGFyZSBoZXhhZGVjaW1hbC4gICovCisrCisrc3RhdGljIHZvaWQKKyty ZXNwb25zZSAoY29uc3Qgc3RydWN0IHJlc29sdl9yZXNwb25zZV9jb250ZXh0ICpjdHgsCisrICAg ICAgICAgIHN0cnVjdCByZXNvbHZfcmVzcG9uc2VfYnVpbGRlciAqYiwKKysgICAgICAgICAgY29u c3QgY2hhciAqcW5hbWUsIHVpbnQxNl90IHFjbGFzcywgdWludDE2X3QgcXR5cGUpCisreworKyAg VEVTVF9DT01QQVJFIChxY2xhc3MsIENfSU4pOworKworKyAgLyogVGhlIG9ubHkgb3RoZXIgcXVl cnkgdHlwZSBiZXNpZGVzIEEgaXMgUFRSLiAgKi8KKysgIGlmIChxdHlwZSAhPSBUX0EgJiYgcXR5 cGUgIT0gVF9BQUFBKQorKyAgICBURVNUX0NPTVBBUkUgKHF0eXBlLCBUX1BUUik7CisrCisrICB1 bnNpZ25lZCBpbnQgYml0cywgYml0czEsIGNvdW50OworKyAgY2hhciAqdGFpbCA9IE5VTEw7Cisr ICBpZiAoc3NjYW5mIChxbmFtZSwgImJpdHMldS5jb3VudCV1LiVtcyIsICZiaXRzLCAmY291bnQs ICZ0YWlsKSA9PSAzKQorKyAgICBURVNUX0NPTVBBUkVfU1RSSU5HICh0YWlsLCAiZXhhbXBsZSIp OworKyAgZWxzZSBpZiAoc3Ryc3RyIChxbmFtZSwgImluLWFkZHIuYXJwYSIpICE9IE5VTEwKKysg ICAgICAgICAgICYmIHNzY2FuZiAocW5hbWUsICIldS4ldS4lbXMiLCAmYml0cywgJmNvdW50LCAm dGFpbCkgPT0gMykKKysgICAgVEVTVF9DT01QQVJFX1NUUklORyAodGFpbCwgIjE2OC4xOTIuaW4t YWRkci5hcnBhIik7CisrICBlbHNlIGlmIChzc2NhbmYgKHFuYW1lLCAiJXguJXguJXguJW1zIiwg JmJpdHMsICZiaXRzMSwgJmNvdW50LCAmdGFpbCkgPT0gNCkKKysgICAgeworKyAgICAgIFRFU1Rf Q09NUEFSRV9TVFJJTkcgKHRhaWwsICJcCisrMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAu MC4wLjAuMC4wLjAuOC5iLmQuMC4xLjAuMC4yLmlwNi5hcnBhIik7CisrICAgICAgYml0cyB8PSBi aXRzMSA8PCA0OworKyAgICB9CisrICBlbHNlCisrICAgIEZBSUxfRVhJVDEgKCJpbnZhbGlkIFFO QU1FOiAlc1xuIiwgcW5hbWUpOworKyAgZnJlZSAodGFpbCk7CisrCisrICBzdHJ1Y3QgcmVzb2x2 X3Jlc3BvbnNlX2ZsYWdzIGZsYWdzID0ge307CisrICByZXNvbHZfcmVzcG9uc2VfaW5pdCAoYiwg ZmxhZ3MpOworKyAgcmVzb2x2X3Jlc3BvbnNlX2FkZF9xdWVzdGlvbiAoYiwgcW5hbWUsIHFjbGFz cywgcXR5cGUpOworKyAgcmVzb2x2X3Jlc3BvbnNlX3NlY3Rpb24gKGIsIG5zX3NfYW4pOworKwor KyAgLyogUHJvdmlkZSB0aGUgcmVxdWVzdGVkIG51bWJlciBvZiBDTkFNRSByZWNvcmRzLiAgKi8K KysgIGNoYXIgKnByZXZpb3VzX25hbWUgPSAoY2hhciAqKSBxbmFtZTsKKysgIHVuc2lnbmVkIGlu dCBvcmlnaW5hbF9iaXRzID0gYml0czsKKysgIGZvciAoaW50IHVuaXF1ZSA9IDA7IHVuaXF1ZSA8 IGNvdW50OyArK3VuaXF1ZSkKKysgICAgeworKyAgICAgIHJlc29sdl9yZXNwb25zZV9vcGVuX3Jl Y29yZCAoYiwgcHJldmlvdXNfbmFtZSwgcWNsYXNzLCBUX0NOQU1FLCA2MCk7CisrCisrICAgICAg c3RhdGljIGNvbnN0IGNoYXIgYml0c190b19wcmVmaXhbNF1bOF0gPSB7ICIiLCAiKi4iLCAiLXgu IiwgInN0YXIuKi4iIH07CisrICAgICAgY2hhciAqbmV3X25hbWUgPSB4YXNwcmludGYgKCIlc3Vu aXF1ZSVkLmV4YW1wbGUiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRz X3RvX3ByZWZpeFtiaXRzICYgM10sIHVuaXF1ZSk7CisrICAgICAgYml0cyA+Pj0gMjsKKysgICAg ICByZXNvbHZfcmVzcG9uc2VfYWRkX25hbWUgKGIsIG5ld19uYW1lKTsKKysgICAgICByZXNvbHZf cmVzcG9uc2VfY2xvc2VfcmVjb3JkIChiKTsKKysKKysgICAgICBpZiAocHJldmlvdXNfbmFtZSAh PSBxbmFtZSkKKysgICAgICAgIGZyZWUgKHByZXZpb3VzX25hbWUpOworKyAgICAgIHByZXZpb3Vz X25hbWUgPSBuZXdfbmFtZTsKKysgICAgfQorKworKyAgLyogQWN0dWFsIGFuc3dlciByZWNvcmQu ICAqLworKyAgcmVzb2x2X3Jlc3BvbnNlX29wZW5fcmVjb3JkIChiLCBwcmV2aW91c19uYW1lLCBx Y2xhc3MsIHF0eXBlLCA2MCk7CisrICBzd2l0Y2ggKHF0eXBlKQorKyAgICB7CisrICAgIGNhc2Ug VF9BOgorKyAgICAgIHsKKysgICAgICAgIGNoYXIgaXB2NFs0XSA9IHsxOTIsIDE2OCwgY291bnQs IG9yaWdpbmFsX2JpdHN9OworKyAgICAgICAgcmVzb2x2X3Jlc3BvbnNlX2FkZF9kYXRhIChiLCAm aXB2NCwgc2l6ZW9mIChpcHY0KSk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKyAgICBjYXNl IFRfQUFBQToKKysgICAgICB7CisrICAgICAgICBjaGFyIGlwdjZbMTZdID0KKysgICAgICAgICAg eworKyAgICAgICAgICAgIDB4MjAsIDB4MDEsIDB4ZCwgMHhiOCwgMCwgMCwgMCwgMCwgMCwgMCwg MCwgMCwgMCwgMCwKKysgICAgICAgICAgICBjb3VudCwgb3JpZ2luYWxfYml0cworKyAgICAgICAg ICB9OworKyAgICAgICAgcmVzb2x2X3Jlc3BvbnNlX2FkZF9kYXRhIChiLCAmaXB2Niwgc2l6ZW9m IChpcHY2KSk7CisrICAgICAgfQorKyAgICAgIGJyZWFrOworKworKyAgICBjYXNlIFRfUFRSOgor KyAgICAgIHsKKysgICAgICAgIGNoYXIgKm5hbWUgPSB4YXNwcmludGYgKCJiaXRzJXUuY291bnQl dS5leGFtcGxlIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsX2Jp dHMsIGNvdW50KTsKKysgICAgICAgIHJlc29sdl9yZXNwb25zZV9hZGRfbmFtZSAoYiwgbmFtZSk7 CisrICAgICAgICBmcmVlIChuYW1lKTsKKysgICAgICB9CisrICAgICAgYnJlYWs7CisrICAgIH0K KysgIHJlc29sdl9yZXNwb25zZV9jbG9zZV9yZWNvcmQgKGIpOworKworKyAgaWYgKHByZXZpb3Vz X25hbWUgIT0gcW5hbWUpCisrICAgIGZyZWUgKHByZXZpb3VzX25hbWUpOworK30KKysKKysvKiBD b250cm9scyB3aGljaCBuYW1lIHJlc29sdXRpb24gZnVuY3Rpb24gaXMgaW52b2tlZC4gICovCisr ZW51bSB0ZXN0X21vZGUKKysgIHsKKysgICAgYnluYW1lLCAgICAgICAgICAgICAgICAgICAgIC8q IGdldGhvc3RieW5hbWUuICAqLworKyAgICBieW5hbWUyLCAgICAgICAgICAgICAgICAgICAgLyog Z2V0aG9zdGJ5bmFtZTIuICAqLworKyAgICBnYWksICAgICAgICAgICAgICAgICAgICAgICAgLyog Z2V0YWRkcmluZm8gd2l0aG91dCBBSV9DQU5PTk5BTUUuICAqLworKyAgICBnYWlfY2Fub24sICAg ICAgICAgICAgICAgICAgLyogZ2V0YWRkcmluZm8gd2l0aCBBSV9DQU5PTk5BTUUuICAqLworKwor KyAgICB0ZXN0X21vZGVfbnVtICAgICAgICAgICAgICAgLyogTnVtYmVyIG9mIGVudW0gdmFsdWVz LiAgKi8KKysgIH07CisrCisrc3RhdGljIGNvbnN0IGNoYXIgKgorK3Rlc3RfbW9kZV90b19zdHJp bmcgKGVudW0gdGVzdF9tb2RlIG1vZGUpCisreworKyAgc3dpdGNoIChtb2RlKQorKyAgICB7Cisr ICAgIGNhc2UgYnluYW1lOgorKyAgICAgIHJldHVybiAiYnluYW1lIjsKKysgICAgY2FzZSBieW5h bWUyOgorKyAgICAgIHJldHVybiAiYnluYW1lMiI7CisrICAgIGNhc2UgZ2FpOgorKyAgICAgIHJl dHVybiAiZ2FpIjsKKysgICAgY2FzZSBnYWlfY2Fub246CisrICAgICAgcmV0dXJuICJnYWlfY2Fu b24iOworKyAgICBjYXNlIHRlc3RfbW9kZV9udW06CisrICAgICAgLyogUmVwb3J0IGVycm9yIGJl bG93LiAgKi8KKysgICAgfQorKyAgRkFJTF9FWElUMSAoImludmFsaWQgdGVzdF9tb2RlOiAlZCIs IG1vZGUpOworK30KKysKKysvKiBBcHBlbmQgdGhlIG5hbWUgYW5kIGFsaWFzZXMgdG8gT1VULiAg Ki8KKytzdGF0aWMgdm9pZAorK2FwcGVuZF9uYW1lcyAoRklMRSAqb3V0LCBjb25zdCBjaGFyICpx bmFtZSwgaW50IGJpdHMsIGludCBjb3VudCwKKysgICAgICAgICAgICAgIGVudW0gdGVzdF9tb2Rl IG1vZGUpCisreworKyAgLyogTGFyZ2VzdCB2YWxpZCBpbmRleCB3aGljaCBoYXMgYSBjb3JyZXNw b25kaW5nIHplcm8gaW4gYml0cworKyAgICAgKG1lYW5pbmcgYSBzeW50YWN0aWNhbGx5IHZhbGlk IENOQU1FKS4gICovCisrICBpbnQgbGFzdF92YWxpZF9jbmFtZSA9IC0xOworKworKyAgZm9yIChp bnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQorKyAgICBpZiAoKGJpdHMgJiAoMyA8PCAoaSAqIDIp KSkgPT0gMCkKKysgICAgICBsYXN0X3ZhbGlkX2NuYW1lID0gaTsKKysKKysgIGlmIChtb2RlICE9 IGdhaSkKKysgICAgeworKyAgICAgIGNvbnN0IGNoYXIgKmxhYmVsOworKyAgICAgIGlmIChtb2Rl ID09IGdhaV9jYW5vbikKKysgICAgICAgIGxhYmVsID0gImNhbm9ubmFtZSI7CisrICAgICAgZWxz ZQorKyAgICAgICAgbGFiZWwgPSAibmFtZSI7CisrICAgICAgaWYgKGxhc3RfdmFsaWRfY25hbWUg Pj0gMCkKKysgICAgICAgIGZwcmludGYgKG91dCwgIiVzOiB1bmlxdWUlZC5leGFtcGxlXG4iLCBs YWJlbCwgbGFzdF92YWxpZF9jbmFtZSk7CisrICAgICAgZWxzZQorKyAgICAgICAgZnByaW50ZiAo b3V0LCAiJXM6ICVzXG4iLCBsYWJlbCwgcW5hbWUpOworKyAgICB9CisrCisrICBpZiAobW9kZSA9 PSBieW5hbWUgfHwgbW9kZSA9PSBieW5hbWUyKQorKyAgICB7CisrICAgICAgaWYgKGxhc3RfdmFs aWRfY25hbWUgPj0gMCkKKysgICAgICAgIGZwcmludGYgKG91dCwgImFsaWFzOiAlc1xuIiwgcW5h bWUpOworKyAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKysgICAgICAgIHsK KysgICAgICAgICAgaWYgKChiaXRzICYgKDMgPDwgKGkgKiAyKSkpID09IDAgJiYgaSAhPSBsYXN0 X3ZhbGlkX2NuYW1lKQorKyAgICAgICAgICAgIGZwcmludGYgKG91dCwgImFsaWFzOiB1bmlxdWUl ZC5leGFtcGxlXG4iLCBpKTsKKysgICAgICAgIH0KKysgICAgfQorK30KKysKKysvKiBBcHBlbmQg dGhlIGFkZHJlc3MgaW5mb3JtYXRpb24gdG8gT1VULiAgKi8KKytzdGF0aWMgdm9pZAorK2FwcGVu ZF9hZGRyZXNzZXMgKEZJTEUgKm91dCwgaW50IGFmLCBpbnQgYml0cywgaW50IGNvdW50LCBlbnVt IHRlc3RfbW9kZSBtb2RlKQorK3sKKysgIGludCBsYXN0ID0gY291bnQgKiAyNTYgKyBiaXRzOwor KyAgaWYgKG1vZGUgPT0gZ2FpIHx8IG1vZGUgPT0gZ2FpX2Nhbm9uKQorKyAgICB7CisrICAgICAg aWYgKGFmID09IEFGX0lORVQgfHwgYWYgPT0gQUZfVU5TUEVDKQorKyAgICAgICAgZnByaW50ZiAo b3V0LCAiYWRkcmVzczogU1RSRUFNL1RDUCAxOTIuMTY4LiVkLiVkIDgwXG4iLCBjb3VudCwgYml0 cyk7CisrICAgICAgaWYgKGFmID09IEFGX0lORVQ2IHx8IGFmID09IEFGX1VOU1BFQykKKysgICAg ICAgIHsKKysgICAgICAgICAgaWYgKGxhc3QgPT0gMCkKKysgICAgICAgICAgICBmcHJpbnRmIChv dXQsICJhZGRyZXNzOiBTVFJFQU0vVENQIDIwMDE6ZGI4OjogODBcbiIpOworKyAgICAgICAgICBl bHNlCisrICAgICAgICAgICAgZnByaW50ZiAob3V0LCAiYWRkcmVzczogU1RSRUFNL1RDUCAyMDAx OmRiODo6JXggODBcbiIsIGxhc3QpOworKyAgICAgICAgfQorKyAgICB9CisrICBlbHNlCisrICAg IHsKKysgICAgICBURVNUX1ZFUklGWSAoYWYgIT0gQUZfVU5TUEVDKTsKKysgICAgICBpZiAoYWYg PT0gQUZfSU5FVCkKKysgICAgICAgIGZwcmludGYgKG91dCwgImFkZHJlc3M6IDE5Mi4xNjguJWQu JWRcbiIsIGNvdW50LCBiaXRzKTsKKysgICAgICBpZiAoYWYgPT0gQUZfSU5FVDYpCisrICAgICAg ICB7CisrICAgICAgICAgIGlmIChsYXN0ID09IDApCisrICAgICAgICAgICAgZnByaW50ZiAob3V0 LCAiYWRkcmVzczogMjAwMTpkYjg6OlxuIik7CisrICAgICAgICAgIGVsc2UKKysgICAgICAgICAg ICBmcHJpbnRmIChvdXQsICJhZGRyZXNzOiAyMDAxOmRiODo6JXhcbiIsIGxhc3QpOworKyAgICAg ICAgfQorKyAgICB9CisrfQorKworKy8qIFBlcmZvcm0gb25lIHRlc3QgdXNpbmcgYSBmb3J3YXJk IGxvb2t1cC4gICovCisrc3RhdGljIHZvaWQKKytjaGVja19mb3J3YXJkIChpbnQgYWYsIGludCBi aXRzLCBpbnQgY291bnQsIGVudW0gdGVzdF9tb2RlIG1vZGUpCisreworKyAgY2hhciAqcW5hbWUg PSB4YXNwcmludGYgKCJiaXRzJWQuY291bnQlZC5leGFtcGxlIiwgYml0cywgY291bnQpOworKyAg Y2hhciAqbGFiZWwgPSB4YXNwcmludGYgKCJhZj0lZCBiaXRzPSVkIGNvdW50PSVkIG1vZGU9JXMg cW5hbWU9JXMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmLCBiaXRzLCBjb3VudCwg dGVzdF9tb2RlX3RvX3N0cmluZyAobW9kZSksIHFuYW1lKTsKKysKKysgIHN0cnVjdCB4bWVtc3Ry ZWFtIGV4cGVjdGVkOworKyAgeG9wZW5fbWVtc3RyZWFtICgmZXhwZWN0ZWQpOworKyAgaWYgKG1v ZGUgPT0gZ2FpX2Nhbm9uKQorKyAgICBmcHJpbnRmIChleHBlY3RlZC5vdXQsICJmbGFnczogQUlf Q0FOT05OQU1FXG4iKTsKKysgIGFwcGVuZF9uYW1lcyAoZXhwZWN0ZWQub3V0LCBxbmFtZSwgYml0 cywgY291bnQsIG1vZGUpOworKyAgYXBwZW5kX2FkZHJlc3NlcyAoZXhwZWN0ZWQub3V0LCBhZiwg Yml0cywgY291bnQsIG1vZGUpOworKyAgeGZjbG9zZV9tZW1zdHJlYW0gKCZleHBlY3RlZCk7Cisr CisrICBpZiAobW9kZSA9PSBnYWkgfHwgbW9kZSA9PSBnYWlfY2Fub24pCisrICAgIHsKKysgICAg ICBzdHJ1Y3QgYWRkcmluZm8gKmFpOworKyAgICAgIHN0cnVjdCBhZGRyaW5mbyBoaW50cyA9Cisr ICAgICAgICB7CisrICAgICAgICAgIC5haV9mYW1pbHkgPSBhZiwKKysgICAgICAgICAgLmFpX3Nv Y2t0eXBlID0gU09DS19TVFJFQU0sCisrICAgICAgICB9OworKyAgICAgIGlmIChtb2RlID09IGdh aV9jYW5vbikKKysgICAgICAgIGhpbnRzLmFpX2ZsYWdzIHw9IEFJX0NBTk9OTkFNRTsKKysgICAg ICBpbnQgcmV0ID0gZ2V0YWRkcmluZm8gKHFuYW1lLCAiODAiLCAmaGludHMsICZhaSk7CisrICAg ICAgY2hlY2tfYWRkcmluZm8gKGxhYmVsLCBhaSwgcmV0LCBleHBlY3RlZC5idWZmZXIpOworKyAg ICAgIGlmIChyZXQgPT0gMCkKKysgICAgICAgIGZyZWVhZGRyaW5mbyAoYWkpOworKyAgICB9Cisr ICBlbHNlCisrICAgIHsKKysgICAgICBzdHJ1Y3QgaG9zdGVudCAqZTsKKysgICAgICBpZiAobW9k ZSA9PSBnYWkpCisrICAgICAgICB7CisrICAgICAgICAgIFRFU1RfQ09NUEFSRSAoYWYsIEFGX0lO RVQpOworKyAgICAgICAgICBlID0gZ2V0aG9zdGJ5bmFtZSAocW5hbWUpOworKyAgICAgICAgfQor KyAgICAgIGVsc2UKKysgICAgICAgIHsKKysgICAgICAgICAgaWYgKGFmICE9IEFGX0lORVQpCisr ICAgICAgICAgICAgVEVTVF9DT01QQVJFIChhZiwgQUZfSU5FVDYpOworKyAgICAgICAgICBlID0g Z2V0aG9zdGJ5bmFtZTIgKHFuYW1lLCBhZik7CisrICAgICAgICB9CisrICAgICAgY2hlY2tfaG9z dGVudCAobGFiZWwsIGUsIGV4cGVjdGVkLmJ1ZmZlcik7CisrICAgIH0KKysKKysgIGZyZWUgKGV4 cGVjdGVkLmJ1ZmZlcik7CisrICBmcmVlIChsYWJlbCk7CisrICBmcmVlIChxbmFtZSk7CisrfQor KworKy8qIFBlcmZvcm0gb25lIGNoZWNrIHVzaW5nIGEgcmV2ZXJzZSBsb29rdXAuICAqLworKwor K3N0YXRpYyB2b2lkCisrY2hlY2tfcmV2ZXJzZSAoaW50IGFmLCBpbnQgYml0cywgaW50IGNvdW50 KQorK3sKKysgIFRFU1RfVkVSSUZZIChhZiA9PSBBRl9JTkVUIHx8IGFmID09IEFGX0lORVQ2KTsK KysKKysgIGNoYXIgKmxhYmVsID0geGFzcHJpbnRmICgiYWY9JWQgYml0cz0lZCBjb3VudD0lZCIs IGFmLCBiaXRzLCBjb3VudCk7CisrICBjaGFyICpmcWRuID0geGFzcHJpbnRmICgiYml0cyVkLmNv dW50JWQuZXhhbXBsZSIsIGJpdHMsIGNvdW50KTsKKysKKysgIHN0cnVjdCB4bWVtc3RyZWFtIGV4 cGVjdGVkOworKyAgeG9wZW5fbWVtc3RyZWFtICgmZXhwZWN0ZWQpOworKyAgZnByaW50ZiAoZXhw ZWN0ZWQub3V0LCAibmFtZTogJXNcbiIsIGZxZG4pOworKyAgYXBwZW5kX2FkZHJlc3NlcyAoZXhw ZWN0ZWQub3V0LCBhZiwgYml0cywgY291bnQsIGJ5bmFtZSk7CisrICB4ZmNsb3NlX21lbXN0cmVh bSAoJmV4cGVjdGVkKTsKKysKKysgIGNoYXIgYWRkclsxNl0gPSB7IDAgfTsKKysgIHNvY2tsZW5f dCBhZGRybGVuOworKyAgaWYgKGFmID09IEFGX0lORVQpCisrICAgIHsKKysgICAgICBhZGRyWzBd ID0gMTkyOworKyAgICAgIGFkZHJbMV0gPSAxNjg7CisrICAgICAgYWRkclsyXSA9IGNvdW50Owor KyAgICAgIGFkZHJbM10gPSBiaXRzOworKyAgICAgIGFkZHJsZW4gPSA0OworKyAgICB9CisrICBl bHNlCisrICAgIHsKKysgICAgICBhZGRyWzBdID0gMHgyMDsKKysgICAgICBhZGRyWzFdID0gMHgw MTsKKysgICAgICBhZGRyWzJdID0gMHgwZDsKKysgICAgICBhZGRyWzNdID0gMHhiODsKKysgICAg ICBhZGRyWzE0XSA9IGNvdW50OworKyAgICAgIGFkZHJbMTVdID0gYml0czsKKysgICAgICBhZGRy bGVuID0gMTY7CisrICAgIH0KKysKKysgIHN0cnVjdCBob3N0ZW50ICplID0gZ2V0aG9zdGJ5YWRk ciAoYWRkciwgYWRkcmxlbiwgYWYpOworKyAgY2hlY2tfaG9zdGVudCAobGFiZWwsIGUsIGV4cGVj dGVkLmJ1ZmZlcik7CisrCisrICAvKiBnZXRuYW1laW5mbyBjaGVjayBpcyBkaWZmZXJlbnQuICBU aGVyZSBpcyBubyBnZW5lcmljIGNoZWNrXyoKKysgICAgIGZ1bmN0aW9uIGZvciBpdC4gICovCisr ICB7CisrICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBzaW4gPSB7IH07CisrICAgIHN0cnVjdCBzb2Nr YWRkcl9pbjYgc2luNiA9IHsgfTsKKysgICAgdm9pZCAqc2E7CisrICAgIHNvY2tsZW5fdCBzYWxl bjsKKysgICAgaWYgKGFmID09IEFGX0lORVQpCisrICAgICAgeworKyAgICAgICAgc2luLnNpbl9m YW1pbHkgPSBBRl9JTkVUOworKyAgICAgICAgbWVtY3B5ICgmc2luLnNpbl9hZGRyLCBhZGRyLCBh ZGRybGVuKTsKKysgICAgICAgIHNpbi5zaW5fcG9ydCA9IGh0b25zICg4MCk7CisrICAgICAgICBz YSA9ICZzaW47CisrICAgICAgICBzYWxlbiA9IHNpemVvZiAoc2luKTsKKysgICAgICB9CisrICAg IGVsc2UKKysgICAgICB7CisrICAgICAgICBzaW42LnNpbjZfZmFtaWx5ID0gQUZfSU5FVDY7Cisr ICAgICAgICBtZW1jcHkgKCZzaW42LnNpbjZfYWRkciwgYWRkciwgYWRkcmxlbik7CisrICAgICAg ICBzaW42LnNpbjZfcG9ydCA9IGh0b25zICg4MCk7CisrICAgICAgICBzYSA9ICZzaW42OworKyAg ICAgICAgc2FsZW4gPSBzaXplb2YgKHNpbjYpOworKyAgICAgIH0KKysKKysgICAgY2hhciBob3N0 WzY0XTsKKysgICAgY2hhciBzZXJ2aWNlWzY0XTsKKysgICAgaW50IHJldCA9IGdldG5hbWVpbmZv IChzYSwgc2FsZW4sIGhvc3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mICho b3N0KSwgc2VydmljZSwgc2l6ZW9mIChzZXJ2aWNlKSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICBOSV9OQU1FUkVRRCB8IE5JX05VTUVSSUNTRVJWKTsKKysgICAgVEVTVF9DT01QQVJFIChy ZXQsIDApOworKyAgICBURVNUX0NPTVBBUkVfU1RSSU5HIChob3N0LCBmcWRuKTsKKysgICAgVEVT VF9DT01QQVJFX1NUUklORyAoc2VydmljZSwgIjgwIik7CisrICB9CisrCisrICBmcmVlIChleHBl Y3RlZC5idWZmZXIpOworKyAgZnJlZSAoZnFkbik7CisrICBmcmVlIChsYWJlbCk7CisrfQorKwor K3N0YXRpYyBpbnQKKytkb190ZXN0ICh2b2lkKQorK3sKKysgIHN0cnVjdCByZXNvbHZfdGVzdCAq b2JqID0gcmVzb2x2X3Rlc3Rfc3RhcnQKKysgICAgKChzdHJ1Y3QgcmVzb2x2X3JlZGlyZWN0X2Nv bmZpZykKKysgICAgIHsKKysgICAgICAgLnJlc3BvbnNlX2NhbGxiYWNrID0gcmVzcG9uc2UKKysg ICAgIH0pOworKworKyAgZm9yIChpbnQgY291bnQgPSAwOyBjb3VudCA8PSAzOyArK2NvdW50KQor KyAgICBmb3IgKGludCBiaXRzID0gMDsgYml0cyA8PSAxIDw8IChjb3VudCAqIDIpOyArK2JpdHMp CisrICAgICAgeworKyAgICAgICAgaWYgKGNvdW50ID4gMCAmJiBiaXRzID09IGNvdW50KQorKyAg ICAgICAgICAvKiBUaGUgbGFzdCBiaXRzIHZhbHVlIGlzIG9ubHkgY2hlY2tlZCBpZiBjb3VudCA9 PSAwLiAgKi8KKysgICAgICAgICAgY29udGludWU7CisrCisrICAgICAgICBmb3IgKGVudW0gdGVz dF9tb2RlIG1vZGUgPSAwOyBtb2RlIDwgdGVzdF9tb2RlX251bTsgKyttb2RlKQorKyAgICAgICAg ICB7CisrICAgICAgICAgICAgY2hlY2tfZm9yd2FyZCAoQUZfSU5FVCwgYml0cywgY291bnQsIG1v ZGUpOworKyAgICAgICAgICAgIGlmIChtb2RlICE9IGJ5bmFtZSkKKysgICAgICAgICAgICAgIGNo ZWNrX2ZvcndhcmQgKEFGX0lORVQ2LCBiaXRzLCBjb3VudCwgbW9kZSk7CisrICAgICAgICAgICAg aWYgKG1vZGUgPT0gZ2FpIHx8IG1vZGUgPT0gZ2FpX2Nhbm9uKQorKyAgICAgICAgICAgICAgY2hl Y2tfZm9yd2FyZCAoQUZfVU5TUEVDLCBiaXRzLCBjb3VudCwgbW9kZSk7CisrICAgICAgICAgIH0K KysKKysgICAgICAgIGNoZWNrX3JldmVyc2UgKEFGX0lORVQsIGJpdHMsIGNvdW50KTsKKysgICAg ICAgIGNoZWNrX3JldmVyc2UgKEFGX0lORVQ2LCBiaXRzLCBjb3VudCk7CisrICAgICAgfQorKwor KyAgcmVzb2x2X3Rlc3RfZW5kIChvYmopOworKworKyAgcmV0dXJuIDA7CisrfQorKworKyNpbmNs dWRlIDxzdXBwb3J0L3Rlc3QtZHJpdmVyLmM+CistLSAKKzIuMzguMQorCisKK0Zyb20gYzVjZGIz OWMyMGU5NmQ5YWMwZDQ2ZmM3Mjg0YjgyNzZhNTM3ZmQzNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUs IDMwIEF1ZyAyMDIyIDEwOjAyOjQ5ICswMjAwCitTdWJqZWN0OiBuc3NfZG5zOiBSZXdyaXRlIF9u c3NfZG5zX2dldGhvc3RieW5hbWU0X3IgdXNpbmcgY3VycmVudCBpbnRlcmZhY2VzCisKK0ludHJv ZHVjZSBzdHJ1Y3QgYWxsb2NfYnVmZmVyIHRvIHRoaXMgZnVuY3Rpb24sIGFuZCB1c2UgaXQgYW5k CitzdHJ1Y3QgbnNfcnJfY3Vyc29yIGluIGdhaWhfZ2V0YW5zd2VyX3NsaWNlLiAgQWRqdXN0IGdh aWhfZ2V0YW5zd2VyCithbmQgZ2FpaF9nZXRhbnN3ZXJfbm9hYWFhIGFjY29yZGluZ2x5LgorCitS ZXZpZXdlZC1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9yZz4K KyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDFkNDk1OTEyYTc0NmUyYTFmZmI3ODBjOWE4MWZk MjM0ZWMyNDY0ZTgpCistLS0KKyByZXNvbHYvbnNzX2Rucy9kbnMtaG9zdC5jIHwgNDQzICsrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDE2MiBp bnNlcnRpb25zKCspLCAyODEgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9yZXNvbHYvbnNz X2Rucy9kbnMtaG9zdC5jIGIvcmVzb2x2L25zc19kbnMvZG5zLWhvc3QuYworaW5kZXggYmVhNTA1 ZDY5Ny4uOWZhODFmMjNjOCAxMDA2NDQKKy0tLSBhL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMK KysrKyBiL3Jlc29sdi9uc3NfZG5zL2Rucy1ob3N0LmMKK0BAIC0xMDAsMTMgKzEwMCw2IEBACisg I2VuZGlmCisgI2RlZmluZSBNQVhIT1NUTkFNRUxFTiAyNTYKKyAKKy0vKiBXZSBuZWVkIHRoaXMg dGltZSBsYXRlci4gICovCistdHlwZWRlZiB1bmlvbiBxdWVyeWJ1ZgorLXsKKy0gIEhFQURFUiBo ZHI7CistICB1X2NoYXIgYnVmW01BWFBBQ0tFVF07CistfSBxdWVyeWJ1ZjsKKy0KKyAvKiBGb3Ig aGlzdG9yaWMgcmVhc29ucywgcG9pbnRlcnMgdG8gSVAgYWRkcmVzc2VzIGFyZSBjaGFyICosIHNv IHVzZSBhCisgICAgc2luZ2xlIGxpc3QgdHlwZSBmb3IgYWRkcmVzc2VzIGFuZCBob3N0IG5hbWVz LiAgKi8KKyAjZGVmaW5lIERZTkFSUkFZX1NUUlVDVCBwdHJsaXN0CitAQCAtMTI1LDE4ICsxMTgs MTggQEAgc3RhdGljIGVudW0gbnNzX3N0YXR1cyBnZXRhbnN3ZXJfcHRyICh1bnNpZ25lZCBjaGFy ICpwYWNrZXQsIHNpemVfdCBwYWNrZXRsZW4sCisgCQkJCSAgICAgIGNoYXIgKipobmFtZXAsIGlu dCAqZXJybm9wLAorIAkJCQkgICAgICBpbnQgKmhfZXJybm9wLCBpbnQzMl90ICp0dGxwKTsKKyAK Ky1zdGF0aWMgZW51bSBuc3Nfc3RhdHVzIGdhaWhfZ2V0YW5zd2VyIChjb25zdCBxdWVyeWJ1ZiAq YW5zd2VyMSwgaW50IGFuc2xlbjEsCistCQkJCSAgICAgICBjb25zdCBxdWVyeWJ1ZiAqYW5zd2Vy MiwgaW50IGFuc2xlbjIsCistCQkJCSAgICAgICBjb25zdCBjaGFyICpxbmFtZSwKKytzdGF0aWMg ZW51bSBuc3Nfc3RhdHVzIGdhaWhfZ2V0YW5zd2VyICh1bnNpZ25lZCBjaGFyICpwYWNrZXQxLAor KwkJCQkgICAgICAgc2l6ZV90IHBhY2tldDFsZW4sCisrCQkJCSAgICAgICB1bnNpZ25lZCBjaGFy ICpwYWNrZXQyLAorKwkJCQkgICAgICAgc2l6ZV90IHBhY2tldDJsZW4sCisrCQkJCSAgICAgICBz dHJ1Y3QgYWxsb2NfYnVmZmVyICphYnVmLAorIAkJCQkgICAgICAgc3RydWN0IGdhaWhfYWRkcnR1 cGxlICoqcGF0LAorLQkJCQkgICAgICAgY2hhciAqYnVmZmVyLCBzaXplX3QgYnVmbGVuLAorIAkJ CQkgICAgICAgaW50ICplcnJub3AsIGludCAqaF9lcnJub3AsCisgCQkJCSAgICAgICBpbnQzMl90 ICp0dGxwKTsKKy1zdGF0aWMgZW51bSBuc3Nfc3RhdHVzIGdhaWhfZ2V0YW5zd2VyX25vYWFhYSAo Y29uc3QgcXVlcnlidWYgKmFuc3dlcjEsCistCQkJCQkgICAgICBpbnQgYW5zbGVuMSwKKy0JCQkJ CSAgICAgIGNvbnN0IGNoYXIgKnFuYW1lLAorK3N0YXRpYyBlbnVtIG5zc19zdGF0dXMgZ2FpaF9n ZXRhbnN3ZXJfbm9hYWFhICh1bnNpZ25lZCBjaGFyICpwYWNrZXQsCisrCQkJCQkgICAgICBzaXpl X3QgcGFja2V0bGVuLAorKwkJCQkJICAgICAgc3RydWN0IGFsbG9jX2J1ZmZlciAqYWJ1ZiwKKyAJ CQkJCSAgICAgIHN0cnVjdCBnYWloX2FkZHJ0dXBsZSAqKnBhdCwKKy0JCQkJCSAgICAgIGNoYXIg KmJ1ZmZlciwgc2l6ZV90IGJ1ZmxlbiwKKyAJCQkJCSAgICAgIGludCAqZXJybm9wLCBpbnQgKmhf ZXJybm9wLAorIAkJCQkJICAgICAgaW50MzJfdCAqdHRscCk7CisgCitAQCAtNDA4LDE3ICs0MDEs MTMgQEAgX25zc19kbnNfZ2V0aG9zdGJ5bmFtZTRfciAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0 IGdhaWhfYWRkcnR1cGxlICoqcGF0LAorIAluYW1lID0gY3A7CisgICAgIH0KKyAKKy0gIHVuaW9u CistICB7CistICAgIHF1ZXJ5YnVmICpidWY7CistICAgIHVfY2hhciAqcHRyOworLSAgfSBob3N0 X2J1ZmZlcjsKKy0gIHF1ZXJ5YnVmICpvcmlnX2hvc3RfYnVmZmVyOworLSAgaG9zdF9idWZmZXIu YnVmID0gb3JpZ19ob3N0X2J1ZmZlciA9IChxdWVyeWJ1ZiAqKSBhbGxvY2EgKDIwNDgpOworKyAg dW5zaWduZWQgY2hhciBkbnNfcGFja2V0X2J1ZmZlclsyMDQ4XTsKKysgIHVuc2lnbmVkIGNoYXIg KmFsdF9kbnNfcGFja2V0X2J1ZmZlciA9IGRuc19wYWNrZXRfYnVmZmVyOworICAgdV9jaGFyICph bnMycCA9IE5VTEw7CisgICBpbnQgbmFuczJwID0gMDsKKyAgIGludCByZXNwbGVuMiA9IDA7Cisg ICBpbnQgYW5zMnBfbWFsbG9jZWQgPSAwOworKyAgc3RydWN0IGFsbG9jX2J1ZmZlciBhYnVmID0g YWxsb2NfYnVmZmVyX2NyZWF0ZSAoYnVmZmVyLCBidWZsZW4pOworIAorIAorICAgaW50IG9sZGVy ciA9IGVycm5vOworQEAgLTQyNywyMiArNDE2LDIxIEBAIF9uc3NfZG5zX2dldGhvc3RieW5hbWU0 X3IgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBnYWloX2FkZHJ0dXBsZSAqKnBhdCwKKyAgIGlm ICgoY3R4LT5yZXNwLT5vcHRpb25zICYgUkVTX05PQUFBQSkgPT0gMCkKKyAgICAgeworICAgICAg IG4gPSBfX3Jlc19jb250ZXh0X3NlYXJjaCAoY3R4LCBuYW1lLCBDX0lOLCBUX1FVRVJZX0FfQU5E X0FBQUEsCistCQkJCWhvc3RfYnVmZmVyLmJ1Zi0+YnVmLCAyMDQ4LCAmaG9zdF9idWZmZXIucHRy LAorLQkJCQkmYW5zMnAsICZuYW5zMnAsICZyZXNwbGVuMiwgJmFuczJwX21hbGxvY2VkKTsKKysJ CQkJZG5zX3BhY2tldF9idWZmZXIsIHNpemVvZiAoZG5zX3BhY2tldF9idWZmZXIpLAorKwkJCQkm YWx0X2Ruc19wYWNrZXRfYnVmZmVyLCAmYW5zMnAsICZuYW5zMnAsCisrCQkJCSZyZXNwbGVuMiwg JmFuczJwX21hbGxvY2VkKTsKKyAgICAgICBpZiAobiA+PSAwKQorLQlzdGF0dXMgPSBnYWloX2dl dGFuc3dlciAoaG9zdF9idWZmZXIuYnVmLCBuLCAoY29uc3QgcXVlcnlidWYgKikgYW5zMnAsCist CQkJCSByZXNwbGVuMiwgbmFtZSwgcGF0LCBidWZmZXIsIGJ1ZmxlbiwKKy0JCQkJIGVycm5vcCwg aGVycm5vcCwgdHRscCk7CisrCXN0YXR1cyA9IGdhaWhfZ2V0YW5zd2VyIChhbHRfZG5zX3BhY2tl dF9idWZmZXIsIG4sIGFuczJwLCByZXNwbGVuMiwKKysJCQkJICZhYnVmLCBwYXQsIGVycm5vcCwg aGVycm5vcCwgdHRscCk7CisgICAgIH0KKyAgIGVsc2UKKyAgICAgeworICAgICAgIG4gPSBfX3Jl c19jb250ZXh0X3NlYXJjaCAoY3R4LCBuYW1lLCBDX0lOLCBUX0EsCistCQkJCWhvc3RfYnVmZmVy LmJ1Zi0+YnVmLCAyMDQ4LCBOVUxMLAorLQkJCQlOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsKKysJ CQkJZG5zX3BhY2tldF9idWZmZXIsIHNpemVvZiAoZG5zX3BhY2tldF9idWZmZXIpLAorKwkJCQlO VUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKTsKKyAgICAgICBpZiAobiA+PSAwKQorLQlzdGF0 dXMgPSBnYWloX2dldGFuc3dlcl9ub2FhYWEgKGhvc3RfYnVmZmVyLmJ1ZiwgbiwKKy0JCQkJCW5h bWUsIHBhdCwgYnVmZmVyLCBidWZsZW4sCistCQkJCQllcnJub3AsIGhlcnJub3AsIHR0bHApOwor KwlzdGF0dXMgPSBnYWloX2dldGFuc3dlcl9ub2FhYWEgKGFsdF9kbnNfcGFja2V0X2J1ZmZlciwg biwKKysJCQkJCSZhYnVmLCBwYXQsIGVycm5vcCwgaGVycm5vcCwgdHRscCk7CisgICAgIH0KKyAg IGlmIChuIDwgMCkKKyAgICAgeworQEAgLTQ3MywxMiArNDYxLDIwIEBAIF9uc3NfZG5zX2dldGhv c3RieW5hbWU0X3IgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBnYWloX2FkZHJ0dXBsZSAqKnBh dCwKKyAJX19zZXRfZXJybm8gKG9sZGVycik7CisgICAgIH0KKyAKKysgIC8qIEltcGxlbWVudCB0 aGUgYnVmZmVyIHJlc2l6aW5nIHByb3RvY29sLiAgKi8KKysgIGlmIChhbGxvY19idWZmZXJfaGFz X2ZhaWxlZCAoJmFidWYpKQorKyAgICB7CisrICAgICAgKmVycm5vcCA9IEVSQU5HRTsKKysgICAg ICAqaGVycm5vcCA9IE5FVERCX0lOVEVSTkFMOworKyAgICAgIHN0YXR1cyA9IE5TU19TVEFUVVNf VFJZQUdBSU47CisrICAgIH0KKysKKyAgIC8qIENoZWNrIHdoZXRoZXIgYW5zMnAgd2FzIHNlcGFy YXRlbHkgYWxsb2NhdGVkLiAgKi8KKyAgIGlmIChhbnMycF9tYWxsb2NlZCkKKyAgICAgZnJlZSAo YW5zMnApOworIAorLSAgaWYgKGhvc3RfYnVmZmVyLmJ1ZiAhPSBvcmlnX2hvc3RfYnVmZmVyKQor LSAgICBmcmVlIChob3N0X2J1ZmZlci5idWYpOworKyAgaWYgKGFsdF9kbnNfcGFja2V0X2J1ZmZl ciAhPSBkbnNfcGFja2V0X2J1ZmZlcikKKysgICAgZnJlZSAoYWx0X2Ruc19wYWNrZXRfYnVmZmVy KTsKKyAKKyAgIF9fcmVzb2x2X2NvbnRleHRfcHV0IChjdHgpOworICAgcmV0dXJuIHN0YXR1czsK K0BAIC04OTIsMjU5ICs4ODgsMTUyIEBAIGdldGFuc3dlcl9wdHIgKHVuc2lnbmVkIGNoYXIgKnBh Y2tldCwgc2l6ZV90IHBhY2tldGxlbiwKKyAgIHJldHVybiBOU1NfU1RBVFVTX1RSWUFHQUlOOwor IH0KKyAKKysvKiBQYXJzZXMgRE5TIGRhdGEgZm91bmQgaW4gUEFDS0VUTEVOIGJ5dGVzIGF0IFBB Q0tFVCBpbiBzdHJ1Y3QKKysgICBnYWloX2FkZHJ0dXBsZSBhZGRyZXNzIHR1cGxlcy4gIFRoZSBu ZXcgYWRkcmVzcyB0dXBsZXMgYXJlIGxpbmtlZAorKyAgIGZyb20gKipUQUlMUCwgd2l0aCBiYWNr aW5nIHN0b3JlIGFsbG9jYXRlZCBmcm9tIEFCVUYsIGFuZCAqVEFJTFAgaXMKKysgICB1cGRhdGVk IHRvIHBvaW50IHdoZXJlIHRoZSBuZXh0IHR1cGxlIHBvaW50ZXIgc2hvdWxkIGJlIHN0b3JlZC4g IElmCisrICAgVFRMUCBpcyBub3QgbnVsbCwgKlRUTFAgaXMgdXBkYXRlZCB0byByZWZsZWN0IHRo ZSBtaW5pbXVtIFRUTC4gIElmCisrICAgU1RPUkVfQ0FOT04gaXMgdHJ1ZSwgdGhlIGNhbm9uaWNh bCBuYW1lIGlzIHN0b3JlZCBhcyBwYXJ0IG9mIHRoZQorKyAgIGZpcnN0IGFkZHJlc3MgdHVwbGUg YmVpbmcgd3JpdHRlbi4gICovCisgc3RhdGljIGVudW0gbnNzX3N0YXR1cworLWdhaWhfZ2V0YW5z d2VyX3NsaWNlIChjb25zdCBxdWVyeWJ1ZiAqYW5zd2VyLCBpbnQgYW5zbGVuLCBjb25zdCBjaGFy ICpxbmFtZSwKKy0JCSAgICAgIHN0cnVjdCBnYWloX2FkZHJ0dXBsZSAqKipwYXRwLAorLQkJICAg ICAgY2hhciAqKmJ1ZmZlcnAsIHNpemVfdCAqYnVmbGVucCwKKy0JCSAgICAgIGludCAqZXJybm9w LCBpbnQgKmhfZXJybm9wLCBpbnQzMl90ICp0dGxwLCBpbnQgKmZpcnN0cCkKKytnYWloX2dldGFu c3dlcl9zbGljZSAodW5zaWduZWQgY2hhciAqcGFja2V0LCBzaXplX3QgcGFja2V0bGVuLAorKwkJ ICAgICAgc3RydWN0IGFsbG9jX2J1ZmZlciAqYWJ1ZiwKKysJCSAgICAgIHN0cnVjdCBnYWloX2Fk ZHJ0dXBsZSAqKip0YWlscCwKKysJCSAgICAgIGludCAqZXJybm9wLCBpbnQgKmhfZXJybm9wLCBp bnQzMl90ICp0dGxwLAorKwkJICAgICAgYm9vbCBzdG9yZV9jYW5vbikKKyB7CistICBjaGFyICpi dWZmZXIgPSAqYnVmZmVycDsKKy0gIHNpemVfdCBidWZsZW4gPSAqYnVmbGVucDsKKy0KKy0gIHN0 cnVjdCBnYWloX2FkZHJ0dXBsZSAqKnBhdCA9ICpwYXRwOworLSAgY29uc3QgSEVBREVSICpocCA9 ICZhbnN3ZXItPmhkcjsKKy0gIGludCBhbmNvdW50ID0gbnRvaHMgKGhwLT5hbmNvdW50KTsKKy0g IGludCBxZGNvdW50ID0gbnRvaHMgKGhwLT5xZGNvdW50KTsKKy0gIGNvbnN0IHVfY2hhciAqY3Ag PSBhbnN3ZXItPmJ1ZiArIEhGSVhFRFNaOworLSAgY29uc3QgdV9jaGFyICplbmRfb2ZfbWVzc2Fn ZSA9IGFuc3dlci0+YnVmICsgYW5zbGVuOworLSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKHFkY291 bnQgIT0gMSkpCistICAgIHsKKy0gICAgICAqaF9lcnJub3AgPSBOT19SRUNPVkVSWTsKKy0gICAg ICByZXR1cm4gTlNTX1NUQVRVU19VTkFWQUlMOworLSAgICB9CistCistICB1X2NoYXIgcGFja3Rt cFtOU19NQVhDRE5BTUVdOworLSAgaW50IG4gPSBfX25zX25hbWVfdW5wYWNrIChhbnN3ZXItPmJ1 ZiwgZW5kX29mX21lc3NhZ2UsIGNwLAorLQkJCSAgICBwYWNrdG1wLCBzaXplb2YgcGFja3RtcCk7 CistICAvKiBXZSB1bnBhY2sgdGhlIG5hbWUgdG8gY2hlY2sgaXQgZm9yIHZhbGlkaXR5LiAgQnV0 IHdlIGRvIG5vdCBuZWVkCistICAgICBpdCBsYXRlci4gICovCistICBpZiAobiAhPSAtMSAmJiBf X25zX25hbWVfbnRvcCAocGFja3RtcCwgYnVmZmVyLCBidWZsZW4pID09IC0xKQorLSAgICB7Cist ICAgICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGVycm5vID09IEVNU0dTSVpFKSkKKy0JeworLQl0 b29fc21hbGw6CistCSAgKmVycm5vcCA9IEVSQU5HRTsKKy0JICAqaF9lcnJub3AgPSBORVREQl9J TlRFUk5BTDsKKy0JICByZXR1cm4gTlNTX1NUQVRVU19UUllBR0FJTjsKKy0JfQorLQorLSAgICAg IG4gPSAtMTsKKy0gICAgfQorLQorLSAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAwKSkKKy0g ICAgeworLSAgICAgICplcnJub3AgPSBlcnJubzsKKy0gICAgICAqaF9lcnJub3AgPSBOT19SRUNP VkVSWTsKKy0gICAgICByZXR1cm4gTlNTX1NUQVRVU19VTkFWQUlMOworLSAgICB9CistICBpZiAo X19nbGliY191bmxpa2VseSAoX19saWJjX3Jlc19obm9rIChidWZmZXIpID09IDApKQorKyAgc3Ry dWN0IG5zX3JyX2N1cnNvciBjOworKyAgaWYgKCFfX25zX3JyX2N1cnNvcl9pbml0ICgmYywgcGFj a2V0LCBwYWNrZXRsZW4pKQorICAgICB7CistICAgICAgZXJybm8gPSBFQkFETVNHOworLSAgICAg ICplcnJub3AgPSBFQkFETVNHOworKyAgICAgIC8qIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gYmVj YXVzZSBfX3Jlc19jb250ZXh0X3F1ZXJ5IGFscmVhZHkKKysJIHBlcmZyb21zIHJlc3BvbnNlIHZh bGlkYXRpb24uICAqLworICAgICAgICpoX2Vycm5vcCA9IE5PX1JFQ09WRVJZOworICAgICAgIHJl dHVybiBOU1NfU1RBVFVTX1VOQVZBSUw7CisgICAgIH0KKy0gIGNwICs9IG4gKyBRRklYRURTWjsK KysgIGJvb2wgaGF2ZWFuc3dlciA9IGZhbHNlOyAvKiBTZXQgdG8gdHJ1ZSBpZiBhdCBsZWFzdCBv bmUgYWRkcmVzcy4gICovCisrICB1aW50MTZfdCBxdHlwZSA9IG5zX3JyX2N1cnNvcl9xdHlwZSAo JmMpOworKyAgaW50IGFuY291bnQgPSBuc19ycl9jdXJzb3JfYW5jb3VudCAoJmMpOworKyAgY29u c3QgdW5zaWduZWQgY2hhciAqZXhwZWN0ZWRfbmFtZSA9IG5zX3JyX2N1cnNvcl9xbmFtZSAoJmMp OworKyAgLyogZXhwZWN0ZWRfbmFtZSBtYXkgYmUgdXBkYXRlZCB0byBwb2ludCBpbnRvIHRoaXMg YnVmZmVyLiAgKi8KKysgIHVuc2lnbmVkIGNoYXIgbmFtZV9idWZmZXJbTlNfTUFYQ0ROQU1FXTsK KyAKKy0gIGludCBoYXZlYW5zd2VyID0gMDsKKy0gIGludCBoYWRfZXJyb3IgPSAwOworLSAgY2hh ciAqY2Fub24gPSBOVUxMOworLSAgY2hhciAqaF9uYW1lID0gTlVMTDsKKy0gIGludCBoX25hbWVs ZW4gPSAwOworKyAgLyogVGhpcyBpcyBhIHBvaW50ZXIgdG8gYSBwb3NzaWJseS1jb21wcmVzc2Vk IG5hbWUgaW4gdGhlIHBhY2tldC4KKysgICAgIEV2ZW50dWFsbHkgaXQgaXMgZXF1aXZhbGVudCB0 byB0aGUgY2Fub25pY2FsIG5hbWUuICBJZiBuZWVkZWQsIGl0CisrICAgICBpcyB1bmNvbXByZXNz ZWQgYW5kIHRyYW5zbGF0ZWQgdG8gdGV4dCBmb3JtIHdoZW4gdGhlIGZpcnN0CisrICAgICBhZGRy ZXNzIHR1cGxlIGlzIGVuY291bnRlcmVkLiAgKi8KKysgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmNv bXByZXNzZWRfYWxpYXNfbmFtZSA9IGV4cGVjdGVkX25hbWU7CisgCistICBpZiAoYW5jb3VudCA9 PSAwKQorKyAgaWYgKGFuY291bnQgPT0gMCB8fCAhX19yZXNfYmluYXJ5X2hub2sgKGNvbXByZXNz ZWRfYWxpYXNfbmFtZSkpCisgICAgIHsKKyAgICAgICAqaF9lcnJub3AgPSBIT1NUX05PVF9GT1VO RDsKKyAgICAgICByZXR1cm4gTlNTX1NUQVRVU19OT1RGT1VORDsKKyAgICAgfQorIAorLSAgd2hp bGUgKGFuY291bnQtLSA+IDAgJiYgY3AgPCBlbmRfb2ZfbWVzc2FnZSAmJiBoYWRfZXJyb3IgPT0g MCkKKysgIGZvciAoOyBhbmNvdW50ID4gLTA7IC0tYW5jb3VudCkKKyAgICAgeworLSAgICAgIG4g PSBfX25zX25hbWVfdW5wYWNrIChhbnN3ZXItPmJ1ZiwgZW5kX29mX21lc3NhZ2UsIGNwLAorLQkJ CSAgICBwYWNrdG1wLCBzaXplb2YgcGFja3RtcCk7CistICAgICAgaWYgKG4gIT0gLTEgJiYKKy0J ICAoaF9uYW1lbGVuID0gX19uc19uYW1lX250b3AgKHBhY2t0bXAsIGJ1ZmZlciwgYnVmbGVuKSkg PT0gLTEpCistCXsKKy0JICBpZiAoX19nbGliY191bmxpa2VseSAoZXJybm8gPT0gRU1TR1NJWkUp KQorLQkgICAgZ290byB0b29fc21hbGw7CistCistCSAgbiA9IC0xOworLQl9CistICAgICAgaWYg KF9fZ2xpYmNfdW5saWtlbHkgKG4gPCAwKSkKKy0JeworLQkgICsraGFkX2Vycm9yOworLQkgIGNv bnRpbnVlOworLQl9CistICAgICAgaWYgKCpmaXJzdHAgJiYgY2Fub24gPT0gTlVMTCAmJiBfX2xp YmNfcmVzX2hub2sgKGJ1ZmZlcikpCistCXsKKy0JICBoX25hbWUgPSBidWZmZXI7CistCSAgYnVm ZmVyICs9IGhfbmFtZWxlbjsKKy0JICBidWZsZW4gLT0gaF9uYW1lbGVuOworLQl9CistCistICAg ICAgY3AgKz0gbjsJCQkJLyogbmFtZSAqLworLQorLSAgICAgIGlmIChfX2dsaWJjX3VubGlrZWx5 IChjcCArIDEwID4gZW5kX29mX21lc3NhZ2UpKQorLQl7CistCSAgKytoYWRfZXJyb3I7CistCSAg Y29udGludWU7CistCX0KKy0KKy0gICAgICB1aW50MTZfdCB0eXBlOworLSAgICAgIE5TX0dFVDE2 ICh0eXBlLCBjcCk7CistICAgICAgdWludDE2X3QgY2xhc3M7CistICAgICAgTlNfR0VUMTYgKGNs YXNzLCBjcCk7CistICAgICAgaW50MzJfdCB0dGw7CistICAgICAgTlNfR0VUMzIgKHR0bCwgY3Ap OworLSAgICAgIE5TX0dFVDE2IChuLCBjcCk7CQkvKiBSREFUQSBsZW5ndGguICAqLworLQorLSAg ICAgIGlmIChlbmRfb2ZfbWVzc2FnZSAtIGNwIDwgbikKKysgICAgICBzdHJ1Y3QgbnNfcnJfd2ly ZSBycjsKKysgICAgICBpZiAoIV9fbnNfcnJfY3Vyc29yX25leHQgKCZjLCAmcnIpKQorIAl7Cist CSAgLyogUkRBVEEgZXh0ZW5kcyBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgcGFja2V0LiAgKi8KKy0J ICArK2hhZF9lcnJvcjsKKy0JICBjb250aW51ZTsKKysJICAqaF9lcnJub3AgPSBOT19SRUNPVkVS WTsKKysJICByZXR1cm4gTlNTX1NUQVRVU19VTkFWQUlMOworIAl9CisgCistICAgICAgaWYgKGNs YXNzICE9IENfSU4pCistCXsKKy0JICBjcCArPSBuOworLQkgIGNvbnRpbnVlOworLQl9CisrICAg ICAgLyogVXBkYXRlIFRUTCBmb3Iga25vd24gcmVjb3JkIHR5cGVzLiAgKi8KKysgICAgICBpZiAo KHJyLnJ0eXBlID09IFRfQ05BTUUgfHwgcnIucnR5cGUgPT0gcXR5cGUpCisrCSAgJiYgdHRscCAh PSBOVUxMICYmICp0dGxwID4gcnIudHRsKQorKwkqdHRscCA9IHJyLnR0bDsKKyAKKy0gICAgICBp ZiAodHlwZSA9PSBUX0NOQU1FKQorKyAgICAgIGlmIChyci5ydHlwZSA9PSBUX0NOQU1FKQorIAl7 CistCSAgY2hhciB0YnVmW01BWEROQU1FXTsKKy0KKy0JICAvKiBBIENOQU1FIGNvdWxkIGFsc28g aGF2ZSBhIFRUTCBlbnRyeS4gICovCistCSAgaWYgKHR0bHAgIT0gTlVMTCAmJiB0dGwgPCAqdHRs cCkKKy0JICAgICAgKnR0bHAgPSB0dGw7CistCistCSAgbiA9IF9fbGliY19kbl9leHBhbmQgKGFu c3dlci0+YnVmLCBlbmRfb2ZfbWVzc2FnZSwgY3AsCistCQkJCXRidWYsIHNpemVvZiB0YnVmKTsK Ky0JICBpZiAoX19nbGliY191bmxpa2VseSAobiA8IDApKQorLQkgICAgeworLQkgICAgICArK2hh ZF9lcnJvcjsKKy0JICAgICAgY29udGludWU7CistCSAgICB9CistCSAgY3AgKz0gbjsKKy0KKy0J ICBpZiAoKmZpcnN0cCAmJiBfX2xpYmNfcmVzX2hub2sgKHRidWYpKQorKwkgIC8qIE5COiBObyBj aGVjayBmb3Igb3duZXIgbmFtZSBtYXRjaCwgYmFzZWQgb24gaGlzdG9yaWMKKysJICAgICBwcmVj ZWRlbnQuICBSZWNvcmQgdGhlIENOQU1FIHRhcmdldCBhcyB0aGUgbmV3IGV4cGVjdGVkCisrCSAg ICAgbmFtZS4gICovCisrCSAgaW50IG4gPSBfX25zX25hbWVfdW5wYWNrIChjLmJlZ2luLCBjLmVu ZCwgcnIucmRhdGEsCisrCQkJCSAgICBuYW1lX2J1ZmZlciwgc2l6ZW9mIChuYW1lX2J1ZmZlcikp OworKwkgIGlmIChuIDwgMCkKKyAJICAgIHsKKy0JICAgICAgLyogUmVjbGFpbSBidWZmZXIgc3Bh Y2UuICAqLworLQkgICAgICBpZiAoaF9uYW1lICsgaF9uYW1lbGVuID09IGJ1ZmZlcikKKy0JCXsK Ky0JCSAgYnVmZmVyID0gaF9uYW1lOworLQkJICBidWZsZW4gKz0gaF9uYW1lbGVuOworLQkJfQor LQorLQkgICAgICBuID0gc3RybGVuICh0YnVmKSArIDE7CistCSAgICAgIGlmIChfX2dsaWJjX3Vu bGlrZWx5IChuID4gYnVmbGVuKSkKKy0JCWdvdG8gdG9vX3NtYWxsOworLQkgICAgICBpZiAoX19n bGliY191bmxpa2VseSAobiA+PSBNQVhIT1NUTkFNRUxFTikpCistCQl7CistCQkgICsraGFkX2Vy cm9yOworLQkJICBjb250aW51ZTsKKy0JCX0KKy0KKy0JICAgICAgY2Fub24gPSBidWZmZXI7Cist CSAgICAgIGJ1ZmZlciA9IF9fbWVtcGNweSAoYnVmZmVyLCB0YnVmLCBuKTsKKy0JICAgICAgYnVm bGVuIC09IG47CistCSAgICAgIGhfbmFtZWxlbiA9IDA7CisrCSAgICAgICpoX2Vycm5vcCA9IE5P X1JFQ09WRVJZOworKwkgICAgICByZXR1cm4gTlNTX1NUQVRVU19VTkFWQUlMOworIAkgICAgfQor LQkgIGNvbnRpbnVlOworKwkgIGV4cGVjdGVkX25hbWUgPSBuYW1lX2J1ZmZlcjsKKysJICBpZiAo c3RvcmVfY2Fub24gJiYgX19yZXNfYmluYXJ5X2hub2sgKG5hbWVfYnVmZmVyKSkKKysJICAgIC8q IFRoaXMgbmFtZSBjYW4gYmUgdXNlZCBhcyBhIGNhbm9uaWNhbCBuYW1lLiAgRG8gbm90CisrCSAg ICAgICB0cmFuc2xhdGUgdG8gdGV4dCBmb3JtIGhlcmUgdG8gY29uc2VydmUgYnVmZmVyIHNwYWNl LgorKwkgICAgICAgUG9pbnQgdG8gdGhlIGNvbXByZXNzZWQgbmFtZSBiZWNhdXNlIG5hbWVfYnVm ZmVyIGNhbiBiZQorKwkgICAgICAgb3ZlcndyaXR0ZW4gd2l0aCBhbiB1bnVzYWJsZSBuYW1lIGxh dGVyLiAgKi8KKysJICAgIGNvbXByZXNzZWRfYWxpYXNfbmFtZSA9IHJyLnJkYXRhOworIAl9Cist CistICAgICAgLyogU3RvcCBwYXJzaW5nIGlmIHdlIGVuY291bnRlciBhIHJlY29yZCB3aXRoIGlu Y29ycmVjdCBSREFUQQorLQkgbGVuZ3RoLiAgKi8KKy0gICAgICBpZiAodHlwZSA9PSBUX0EgfHwg dHlwZSA9PSBUX0FBQUEpCisrICAgICAgZWxzZSBpZiAocnIucnR5cGUgPT0gcXR5cGUKKysJICAg ICAgICYmIF9fbnNfc2FtZWJpbmFyeW5hbWUgKHJyLnJuYW1lLCBleHBlY3RlZF9uYW1lKQorKwkg ICAgICAgJiYgcnIucmRsZW5ndGggPT0gcnJ0eXBlX3RvX3JkYXRhX2xlbmd0aCAocXR5cGUpKQor IAl7CistCSAgaWYgKG4gIT0gcnJ0eXBlX3RvX3JkYXRhX2xlbmd0aCAodHlwZSkpCisrCSAgc3Ry dWN0IGdhaWhfYWRkcnR1cGxlICpudHVwCisrCSAgICA9IGFsbG9jX2J1ZmZlcl9hbGxvYyAoYWJ1 Ziwgc3RydWN0IGdhaWhfYWRkcnR1cGxlKTsKKysJICAvKiBEZWxheSBlcnJvciByZXBvcnRpbmcg dG8gdGhlIGNhbGxlcnMgKHRoZXkgaW1wbGVtZW50IHRoZQorKwkgICAgIEVSQU5HRSBidWZmZXIg cmVzaXppbmcgaGFuZHNoYWtlKS4gICovCisrCSAgaWYgKG50dXAgIT0gTlVMTCkKKyAJICAgIHsK Ky0JICAgICAgKytoYWRfZXJyb3I7CistCSAgICAgIGNvbnRpbnVlOworKwkgICAgICBudHVwLT5u ZXh0ID0gTlVMTDsKKysJICAgICAgaWYgKHN0b3JlX2Nhbm9uICYmIGNvbXByZXNzZWRfYWxpYXNf bmFtZSAhPSBOVUxMKQorKwkJeworKwkJICAvKiBUaGlzIGFzc3VtZXMgdGhhdCBhbGwgdGhlIENO QU1FIHJlY29yZHMgY29tZQorKwkJICAgICBmaXJzdC4gIFVzZSBNQVhIT1NUTkFNRUxFTiBpbnN0 ZWFkIG9mCisrCQkgICAgIE5TX01BWENETkFNRSBmb3IgYWRkaXRpb25hbCBsZW5ndGggY2hlY2tp bmcuCisrCQkgICAgIEhvd2V2ZXIsIHRoZXNlIGNoZWNrcyBhcmUgbm90IGV4cGVjdGVkIHRvIGZh aWwKKysJCSAgICAgYmVjYXVzZSBhbGwgc2l6ZSBOU19NQVhDRE5BTUUgbmFtZXMgc2hvdWxkIGlu dG8KKysJCSAgICAgdGhlIGhuYW1lIGJ1ZmZlciBiZWNhdXNlIG5vIGVzY2FwaW5nIGlzCisrCQkg ICAgIG5lZWRlZC4gICovCisrCQkgIGNoYXIgdW5zaWduZWQgbmJ1ZltOU19NQVhDRE5BTUVdOwor KwkJICBjaGFyIGhuYW1lW01BWEhPU1ROQU1FTEVOICsgMV07CisrCQkgIGlmIChfX25zX25hbWVf dW5wYWNrIChjLmJlZ2luLCBjLmVuZCwKKysJCQkJCWNvbXByZXNzZWRfYWxpYXNfbmFtZSwKKysJ CQkJCW5idWYsIHNpemVvZiAobmJ1ZikpID49IDAKKysJCSAgICAgICYmIF9fbnNfbmFtZV9udG9w IChuYnVmLCBobmFtZSwgc2l6ZW9mIChobmFtZSkpID49IDApCisrCQkgICAgLyogU3BhY2UgY2hl Y2tpbmcgaXMgcGVyZm9ybWVkIGJ5IHRoZSBjYWxsZXJzLiAgKi8KKysJCSAgICBudHVwLT5uYW1l ID0gYWxsb2NfYnVmZmVyX2NvcHlfc3RyaW5nIChhYnVmLCBobmFtZSk7CisrCQkgIHN0b3JlX2Nh bm9uID0gZmFsc2U7CisrCQl9CisrCSAgICAgIGVsc2UKKysJCW50dXAtPm5hbWUgPSBOVUxMOwor KwkgICAgICBpZiAocnIucmRsZW5ndGggPT0gNCkKKysJCW50dXAtPmZhbWlseSA9IEFGX0lORVQ7 CisrCSAgICAgIGVsc2UKKysJCW50dXAtPmZhbWlseSA9IEFGX0lORVQ2OworKwkgICAgICBtZW1j cHkgKG50dXAtPmFkZHIsIHJyLnJkYXRhLCByci5yZGxlbmd0aCk7CisrCSAgICAgIG50dXAtPnNj b3BlaWQgPSAwOworKworKwkgICAgICAvKiBMaW5rIGluIHRoZSBuZXcgdHVwbGUsIGFuZCB1cGRh dGUgdGhlIHRhaWwgcG9pbnRlciB0bworKwkJIHBvaW50IHRvIGl0cyBuZXh0IGZpZWxkLiAgKi8K KysJICAgICAgKip0YWlscCA9IG50dXA7CisrCSAgICAgICp0YWlscCA9ICZudHVwLT5uZXh0Owor KworKwkgICAgICBoYXZlYW5zd2VyID0gdHJ1ZTsKKyAJICAgIH0KKyAJfQorLSAgICAgIGVsc2UK Ky0JeworLQkgIC8qIFNraXAgdW5rbm93biByZWNvcmRzLiAgKi8KKy0JICBjcCArPSBuOworLQkg IGNvbnRpbnVlOworLQl9CistCistICAgICAgYXNzZXJ0ICh0eXBlID09IFRfQSB8fCB0eXBlID09 IFRfQUFBQSk7CistICAgICAgaWYgKCpwYXQgPT0gTlVMTCkKKy0JeworLQkgIHVpbnRwdHJfdCBw YWQgPSAoLSh1aW50cHRyX3QpIGJ1ZmZlcgorLQkJCSAgICUgX19hbGlnbm9mX18gKHN0cnVjdCBn YWloX2FkZHJ0dXBsZSkpOworLQkgIGJ1ZmZlciArPSBwYWQ7CistCSAgYnVmbGVuID0gYnVmbGVu ID4gcGFkID8gYnVmbGVuIC0gcGFkIDogMDsKKy0KKy0JICBpZiAoX19nbGliY191bmxpa2VseSAo YnVmbGVuIDwgc2l6ZW9mIChzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUpKSkKKy0JICAgIGdvdG8gdG9v X3NtYWxsOworLQorLQkgICpwYXQgPSAoc3RydWN0IGdhaWhfYWRkcnR1cGxlICopIGJ1ZmZlcjsK Ky0JICBidWZmZXIgKz0gc2l6ZW9mIChzdHJ1Y3QgZ2FpaF9hZGRydHVwbGUpOworLQkgIGJ1Zmxl biAtPSBzaXplb2YgKHN0cnVjdCBnYWloX2FkZHJ0dXBsZSk7CistCX0KKy0KKy0gICAgICAoKnBh dCktPm5hbWUgPSBOVUxMOworLSAgICAgICgqcGF0KS0+bmV4dCA9IE5VTEw7CistCistICAgICAg aWYgKCpmaXJzdHApCistCXsKKy0JICAvKiBXZSBjb21wb3NlIGEgc2luZ2xlIGhvc3RlbnQgb3V0 IG9mIHRoZSBlbnRpcmUgY2hhaW4gb2YKKy0JICAgICBlbnRyaWVzLCBzbyB0aGUgVFRMIG9mIHRo ZSBob3N0ZW50IGlzIGVzc2VudGlhbGx5IHRoZSBsb3dlc3QKKy0JICAgICBUVEwgaW4gdGhlIGNo YWluLiAgKi8KKy0JICBpZiAodHRscCAhPSBOVUxMICYmIHR0bCA8ICp0dGxwKQorLQkgICAgKnR0 bHAgPSB0dGw7CistCistCSAgKCpwYXQpLT5uYW1lID0gY2Fub24gPzogaF9uYW1lOworLQorLQkg ICpmaXJzdHAgPSAwOworLQl9CistCistICAgICAgKCpwYXQpLT5mYW1pbHkgPSB0eXBlID09IFRf QSA/IEFGX0lORVQgOiBBRl9JTkVUNjsKKy0gICAgICBtZW1jcHkgKCgqcGF0KS0+YWRkciwgY3As IG4pOworLSAgICAgIGNwICs9IG47CistICAgICAgKCpwYXQpLT5zY29wZWlkID0gMDsKKy0KKy0g ICAgICBwYXQgPSAmKCgqcGF0KS0+bmV4dCk7CistCistICAgICAgaGF2ZWFuc3dlciA9IDE7Cisg ICAgIH0KKyAKKyAgIGlmIChoYXZlYW5zd2VyKQorICAgICB7CistICAgICAgKnBhdHAgPSBwYXQ7 CistICAgICAgKmJ1ZmZlcnAgPSBidWZmZXI7CistICAgICAgKmJ1ZmxlbnAgPSBidWZsZW47Cist CisgICAgICAgKmhfZXJybm9wID0gTkVUREJfU1VDQ0VTUzsKKyAgICAgICByZXR1cm4gTlNTX1NU QVRVU19TVUNDRVNTOworICAgICB9CistCistICAvKiBTcGVjaWFsIGNhc2UgaGVyZTogaWYgdGhl IHJlc29sdmVyIHNlbnQgYSByZXN1bHQgYnV0IGl0IG9ubHkKKy0gICAgIGNvbnRhaW5zIGEgQ05B TUUgd2hpbGUgd2UgYXJlIGxvb2tpbmcgZm9yIGEgVF9BIG9yIFRfQUFBQSByZWNvcmQsCistICAg ICB3ZSBmYWlsIHdpdGggTk9URk9VTkQgaW5zdGVhZCBvZiBUUllBR0FJTi4gICovCistICBpZiAo Y2Fub24gIT0gTlVMTCkKKysgIGVsc2UKKyAgICAgeworKyAgICAgIC8qIFNwZWNpYWwgY2FzZSBo ZXJlOiBpZiB0aGUgcmVzb2x2ZXIgc2VudCBhIHJlc3VsdCBidXQgaXQgb25seQorKwkgY29udGFp bnMgYSBDTkFNRSB3aGlsZSB3ZSBhcmUgbG9va2luZyBmb3IgYSBUX0Egb3IgVF9BQUFBCisrCSBy ZWNvcmQsIHdlIGZhaWwgd2l0aCBOT1RGT1VORC4gICovCisgICAgICAgKmhfZXJybm9wID0gSE9T VF9OT1RfRk9VTkQ7CisgICAgICAgcmV0dXJuIE5TU19TVEFUVVNfTk9URk9VTkQ7CisgICAgIH0K Ky0KKy0gICpoX2Vycm5vcCA9IE5FVERCX0lOVEVSTkFMOworLSAgcmV0dXJuIE5TU19TVEFUVVNf VFJZQUdBSU47CisgfQorIAorIAorIHN0YXRpYyBlbnVtIG5zc19zdGF0dXMKKy1nYWloX2dldGFu c3dlciAoY29uc3QgcXVlcnlidWYgKmFuc3dlcjEsIGludCBhbnNsZW4xLCBjb25zdCBxdWVyeWJ1 ZiAqYW5zd2VyMiwKKy0JCWludCBhbnNsZW4yLCBjb25zdCBjaGFyICpxbmFtZSwKKy0JCXN0cnVj dCBnYWloX2FkZHJ0dXBsZSAqKnBhdCwgY2hhciAqYnVmZmVyLCBzaXplX3QgYnVmbGVuLAorK2dh aWhfZ2V0YW5zd2VyICh1bnNpZ25lZCBjaGFyICpwYWNrZXQxLCBzaXplX3QgcGFja2V0MWxlbiwK KysJCXVuc2lnbmVkIGNoYXIgKnBhY2tldDIsIHNpemVfdCBwYWNrZXQybGVuLAorKwkJc3RydWN0 IGFsbG9jX2J1ZmZlciAqYWJ1Ziwgc3RydWN0IGdhaWhfYWRkcnR1cGxlICoqcGF0LAorIAkJaW50 ICplcnJub3AsIGludCAqaF9lcnJub3AsIGludDMyX3QgKnR0bHApCisgeworLSAgaW50IGZpcnN0 ID0gMTsKKy0KKyAgIGVudW0gbnNzX3N0YXR1cyBzdGF0dXMgPSBOU1NfU1RBVFVTX05PVEZPVU5E OworIAorICAgLyogQ29tYmluaW5nIHRoZSBOU1Mgc3RhdHVzIG9mIHR3byBkaXN0aW5jdCBxdWVy aWVzIHJlcXVpcmVzIHNvbWUKK0BAIC0xMTU2LDcgKzEwNDUsMTAgQEAgZ2FpaF9nZXRhbnN3ZXIg KGNvbnN0IHF1ZXJ5YnVmICphbnN3ZXIxLCBpbnQgYW5zbGVuMSwgY29uc3QgcXVlcnlidWYgKmFu c3dlcjIsCisgICAgICBiZXR3ZWVuIFRSWUFHQUlOIChyZWNvdmVyYWJsZSkgYW5kIFRSWUFHQUlO JyAobm90LXJlY292ZXJhYmxlKS4KKyAgICAgIEEgcmVjb3ZlcmFibGUgVFJZQUdBSU4gaXMgYWxt b3N0IGFsd2F5cyBkdWUgdG8gYnVmZmVyIHNpemUgaXNzdWVzCisgICAgICBhbmQgcmV0dXJucyBF UkFOR0UgaW4gZXJybm8gYW5kIHRoZSBjYWxsZXIgaXMgZXhwZWN0ZWQgdG8gcmV0cnkKKy0gICAg IHdpdGggYSBsYXJnZXIgYnVmZmVyLgorKyAgICAgd2l0aCBhIGxhcmdlciBidWZmZXIuICAoVGhl IGNhbGxlciwgX25zc19kbnNfZ2V0aG9zdGJ5bmFtZTRfciwKKysgICAgIGlnbm9yZXMgdGhlIHJl dHVybiBzdGF0dXMgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSByZXN1bHQgYnVmZmVyCisrICAgICBo YXMgYmVlbiBleGhhdXN0ZWQgYW5kIGdlbmVyYXRlcyBhIFRSWUFHQUlOIGZhaWx1cmUgd2l0aCBh bgorKyAgICAgRVJBTkdFIGNvZGUuKQorIAorICAgICAgTGFzdGx5LCB5b3UgbWF5IGJlIHRlbXB0 ZWQgdG8gbWFrZSBzaWduaWZpY2FudCBjaGFuZ2VzIHRvIHRoZQorICAgICAgY29uZGl0aW9ucyBp biB0aGlzIGNvZGUgdG8gYnJpbmcgYWJvdXQgc3ltbWV0cnkgYmV0d2VlbiByZXNwb25zZXMuCitA QCAtMTIzNiwzNiArMTEyOCwzMCBAQCBnYWloX2dldGFuc3dlciAoY29uc3QgcXVlcnlidWYgKmFu c3dlcjEsIGludCBhbnNsZW4xLCBjb25zdCBxdWVyeWJ1ZiAqYW5zd2VyMiwKKyAJIGlzIGEgcmVj b3ZlcmFibGUgZXJyb3Igd2Ugbm93IHJldHVybiBUUllBR0lOIGV2ZW4gaWYgdGhlIGZpcnN0Cisg CSByZXNwb25zZSB3YXMgU1VDQ0VTUy4gICovCisgCistICBpZiAoYW5zbGVuMSA+IDApCistICAg IHN0YXR1cyA9IGdhaWhfZ2V0YW5zd2VyX3NsaWNlKGFuc3dlcjEsIGFuc2xlbjEsIHFuYW1lLAor LQkJCQkgICZwYXQsICZidWZmZXIsICZidWZsZW4sCistCQkJCSAgZXJybm9wLCBoX2Vycm5vcCwg dHRscCwKKy0JCQkJICAmZmlyc3QpOworLQorLSAgaWYgKChzdGF0dXMgPT0gTlNTX1NUQVRVU19T VUNDRVNTIHx8IHN0YXR1cyA9PSBOU1NfU1RBVFVTX05PVEZPVU5ECistICAgICAgIHx8IChzdGF0 dXMgPT0gTlNTX1NUQVRVU19UUllBR0FJTgorLQkgICAvKiBXZSB3YW50IHRvIGxvb2sgYXQgdGhl IHNlY29uZCBhbnN3ZXIgaW4gY2FzZSBvZiBhbgorLQkgICAgICBOU1NfU1RBVFVTX1RSWUFHQUlO IG9ubHkgaWYgdGhlIGVycm9yIGlzIG5vbi1yZWNvdmVyYWJsZSwgaS5lLgorLQkgICAgICAqaF9l cnJub3AgaXMgTk9fUkVDT1ZFUlkuIElmIG5vdCwgYW5kIGlmIHRoZSBmYWlsdXJlIHdhcyBkdWUg dG8KKy0JICAgICAgYW4gaW5zdWZmaWNpZW50IGJ1ZmZlciAoRVJBTkdFKSwgdGhlbiB3ZSBuZWVk IHRvIGRyb3AgdGhlIHJlc3VsdHMKKy0JICAgICAgYW5kIHBhc3Mgb24gdGhlIE5TU19TVEFUVVNf VFJZQUdBSU4gdG8gdGhlIGNhbGxlciBzbyB0aGF0IGl0IGNhbgorLQkgICAgICByZXBlYXQgdGhl IHF1ZXJ5IHdpdGggYSBsYXJnZXIgYnVmZmVyLiAgKi8KKy0JICAgJiYgKCplcnJub3AgIT0gRVJB TkdFIHx8ICpoX2Vycm5vcCA9PSBOT19SRUNPVkVSWSkpKQorLSAgICAgICYmIGFuc3dlcjIgIT0g TlVMTCAmJiBhbnNsZW4yID4gMCkKKysgIGlmIChwYWNrZXQxbGVuID4gMCkKKyAgICAgeworLSAg ICAgIGVudW0gbnNzX3N0YXR1cyBzdGF0dXMyID0gZ2FpaF9nZXRhbnN3ZXJfc2xpY2UoYW5zd2Vy MiwgYW5zbGVuMiwgcW5hbWUsCistCQkJCQkJICAgICAmcGF0LCAmYnVmZmVyLCAmYnVmbGVuLAor LQkJCQkJCSAgICAgZXJybm9wLCBoX2Vycm5vcCwgdHRscCwKKy0JCQkJCQkgICAgICZmaXJzdCk7 CisrICAgICAgc3RhdHVzID0gZ2FpaF9nZXRhbnN3ZXJfc2xpY2UgKHBhY2tldDEsIHBhY2tldDFs ZW4sCisrCQkJCSAgICAgYWJ1ZiwgJnBhdCwgZXJybm9wLCBoX2Vycm5vcCwgdHRscCwgdHJ1ZSk7 CisrICAgICAgaWYgKGFsbG9jX2J1ZmZlcl9oYXNfZmFpbGVkIChhYnVmKSkKKysJLyogRG8gbm90 IHRyeSBwYXJzaW5nIHRoZSBzZWNvbmQgcGFja2V0IGlmIGEgbGFyZ2VyIHJlc3VsdAorKwkgICBi dWZmZXIgaXMgbmVlZGVkLiAgVGhlIGNhbGxlciBpbXBsZW1lbnRzIHRoZSByZXNpemluZworKwkg ICBwcm90b2NvbCBiZWNhdXNlICphYnVmIGhhcyBiZWVuIGV4aGF1c3RlZC4gICovCisrCXJldHVy biBOU1NfU1RBVFVTX1RSWUFHQUlOOyAvKiBJZ25vcmVkIGJ5IHRoZSBjYWxsZXIuICAqLworKyAg ICB9CisrCisrICBpZiAoKHN0YXR1cyA9PSBOU1NfU1RBVFVTX1NVQ0NFU1MgfHwgc3RhdHVzID09 IE5TU19TVEFUVVNfTk9URk9VTkQpCisrICAgICAgJiYgcGFja2V0MiAhPSBOVUxMICYmIHBhY2tl dDJsZW4gPiAwKQorKyAgICB7CisrICAgICAgZW51bSBuc3Nfc3RhdHVzIHN0YXR1czIKKysJPSBn YWloX2dldGFuc3dlcl9zbGljZSAocGFja2V0MiwgcGFja2V0MmxlbiwKKysJCQkJYWJ1ZiwgJnBh dCwgZXJybm9wLCBoX2Vycm5vcCwgdHRscCwKKysJCQkJLyogU3VjY2VzcyBtZWFucyB0aGF0IGRh dGEgd2l0aCBhCisrCQkJCSAgIGNhbm9uaWNhbCBuYW1lIGhhcyBhbHJlYWR5IGJlZW4KKysJCQkJ ICAgc3RvcmVkLiAgRG8gbm90IHN0b3JlIHRoZSBuYW1lIGFnYWluLiAgKi8KKysJCQkJc3RhdHVz ICE9IE5TU19TVEFUVVNfU1VDQ0VTUyk7CisgICAgICAgLyogVXNlIHRoZSBzZWNvbmQgcmVzcG9u c2Ugc3RhdHVzIGluIHNvbWUgY2FzZXMuICAqLworICAgICAgIGlmIChzdGF0dXMgIT0gTlNTX1NU QVRVU19TVUNDRVNTICYmIHN0YXR1czIgIT0gTlNTX1NUQVRVU19OT1RGT1VORCkKKyAJc3RhdHVz ID0gc3RhdHVzMjsKKy0gICAgICAvKiBEbyBub3QgcmV0dXJuIGEgdHJ1bmNhdGVkIHNlY29uZCBy ZXNwb25zZSAodW5sZXNzIGl0IHdhcworLQkgdW5hdm9pZGFibGUgZS5nLiB1bnJlY292ZXJhYmxl IFRSWUFHQUlOKS4gICovCistICAgICAgaWYgKHN0YXR1cyA9PSBOU1NfU1RBVFVTX1NVQ0NFU1MK Ky0JICAmJiAoc3RhdHVzMiA9PSBOU1NfU1RBVFVTX1RSWUFHQUlOCistCSAgICAgICYmICplcnJu b3AgPT0gRVJBTkdFICYmICpoX2Vycm5vcCAhPSBOT19SRUNPVkVSWSkpCistCXN0YXR1cyA9IE5T U19TVEFUVVNfVFJZQUdBSU47CisgICAgIH0KKyAKKyAgIHJldHVybiBzdGF0dXM7CitAQCAtMTI3 MywxOCArMTE1OSwxMyBAQCBnYWloX2dldGFuc3dlciAoY29uc3QgcXVlcnlidWYgKmFuc3dlcjEs IGludCBhbnNsZW4xLCBjb25zdCBxdWVyeWJ1ZiAqYW5zd2VyMiwKKyAKKyAvKiBWYXJpYW50IG9m IGdhaWhfZ2V0YW5zd2VyIHdpdGhvdXQgYSBzZWNvbmQgKEFBQUEpIHJlc3BvbnNlLiAgKi8KKyBz dGF0aWMgZW51bSBuc3Nfc3RhdHVzCistZ2FpaF9nZXRhbnN3ZXJfbm9hYWFhIChjb25zdCBxdWVy eWJ1ZiAqYW5zd2VyMSwgaW50IGFuc2xlbjEsIGNvbnN0IGNoYXIgKnFuYW1lLAorLQkJICAgICAg IHN0cnVjdCBnYWloX2FkZHJ0dXBsZSAqKnBhdCwKKy0JCSAgICAgICBjaGFyICpidWZmZXIsIHNp emVfdCBidWZsZW4sCisrZ2FpaF9nZXRhbnN3ZXJfbm9hYWFhICh1bnNpZ25lZCBjaGFyICpwYWNr ZXQsIHNpemVfdCBwYWNrZXRsZW4sCisrCQkgICAgICAgc3RydWN0IGFsbG9jX2J1ZmZlciAqYWJ1 Ziwgc3RydWN0IGdhaWhfYWRkcnR1cGxlICoqcGF0LAorIAkJICAgICAgIGludCAqZXJybm9wLCBp bnQgKmhfZXJybm9wLCBpbnQzMl90ICp0dGxwKQorIHsKKy0gIGludCBmaXJzdCA9IDE7CistCisg ICBlbnVtIG5zc19zdGF0dXMgc3RhdHVzID0gTlNTX1NUQVRVU19OT1RGT1VORDsKKy0gIGlmIChh bnNsZW4xID4gMCkKKy0gICAgc3RhdHVzID0gZ2FpaF9nZXRhbnN3ZXJfc2xpY2UgKGFuc3dlcjEs IGFuc2xlbjEsIHFuYW1lLAorLQkJCQkgICAmcGF0LCAmYnVmZmVyLCAmYnVmbGVuLAorLQkJCQkg ICBlcnJub3AsIGhfZXJybm9wLCB0dGxwLAorLQkJCQkgICAmZmlyc3QpOworKyAgaWYgKHBhY2tl dGxlbiA+IDApCisrICAgIHN0YXR1cyA9IGdhaWhfZ2V0YW5zd2VyX3NsaWNlIChwYWNrZXQsIHBh Y2tldGxlbiwKKysJCQkJICAgYWJ1ZiwgJnBhdCwgZXJybm9wLCBoX2Vycm5vcCwgdHRscCwgdHJ1 ZSk7CisgICByZXR1cm4gc3RhdHVzOworIH0KKy0tIAorMi4zOC4xCisKKworRnJvbSBhN2ZhNjA0 ZjMwNTBhMTAyNGRjOGVjMjhmZjI4YmFkODExZjYxNTFmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwg MzAgQXVnIDIwMjIgMTM6MzA6MDMgKzAyMDAKK1N1YmplY3Q6IHJlc29sdjogRml4IGJ1aWxkaW5n IHRzdC1yZXNvbHYtaW52YWxpZC1jbmFtZSBmb3IgZWFybGllciBDIHN0YW5kYXJkcworTUlNRS1W ZXJzaW9uOiAxLjAKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAorQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitUaGlzIGZpeGVzIHRoaXMgY29tcGlsZXIg ZXJyb3I6CisKK3RzdC1yZXNvbHYtaW52YWxpZC1jbmFtZS5jOiBJbiBmdW5jdGlvbiDigJh0ZXN0 X21vZGVfdG9fc3RyaW5n4oCZOgordHN0LXJlc29sdi1pbnZhbGlkLWNuYW1lLmM6MTY0OjEwOiBl cnJvcjogbGFiZWwgYXQgZW5kIG9mIGNvbXBvdW5kIHN0YXRlbWVudAorICAgICBjYXNlIHRlc3Rf bW9kZV9udW06CisgICAgICAgICAgXn5+fn5+fn5+fn5+fgorCitGaXhlcyBjb21taXQgOWNhZjc4 MjI3NmVjZWE0YmM4NmZjOTRmYmI1Mjc3OTczNmYzMTA2ZAorKCJyZXNvbHY6IEFkZCBuZXcgdHN0 LXJlc29sdi1pbnZhbGlkLWNuYW1lIikuCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGQw OWFhNGExNzIyOWJjYWEyZWM3NjQyMDA2YjEyNjEyNDk4NTgyZTcpCistLS0KKyByZXNvbHYvdHN0 LXJlc29sdi1pbnZhbGlkLWNuYW1lLmMgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9yZXNvbHYvdHN0LXJlc29sdi1p bnZhbGlkLWNuYW1lLmMgYi9yZXNvbHYvdHN0LXJlc29sdi1pbnZhbGlkLWNuYW1lLmMKK2luZGV4 IGFlMmQ0NDE5YjEuLjYzZGFjOTBlMDIgMTAwNjQ0CistLS0gYS9yZXNvbHYvdHN0LXJlc29sdi1p bnZhbGlkLWNuYW1lLmMKKysrKyBiL3Jlc29sdi90c3QtcmVzb2x2LWludmFsaWQtY25hbWUuYwor QEAgLTE2Miw3ICsxNjIsNyBAQCB0ZXN0X21vZGVfdG9fc3RyaW5nIChlbnVtIHRlc3RfbW9kZSBt b2RlKQorICAgICBjYXNlIGdhaV9jYW5vbjoKKyAgICAgICByZXR1cm4gImdhaV9jYW5vbiI7Cisg ICAgIGNhc2UgdGVzdF9tb2RlX251bToKKy0gICAgICAvKiBSZXBvcnQgZXJyb3IgYmVsb3cuICAq LworKyAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgLyogUmVwb3J0IGVycm9yIGJlbG93 LiAgKi8KKyAgICAgfQorICAgRkFJTF9FWElUMSAoImludmFsaWQgdGVzdF9tb2RlOiAlZCIsIG1v ZGUpOworIH0KKy0tIAorMi4zOC4xCisKKworRnJvbSA1ZDg4NTYxN2NlYzU3MTNmZGRlNDIxNzcz OThmZTk4YWNiNjZiN2EyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBX ZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMTMgU2VwIDIwMjIgMTM6MjI6 MjcgKzAyMDAKK1N1YmplY3Q6IE5FV1M6IE5vdGUgYnVnIDEyMTU0IGFuZCBidWcgMjkzMDUgYXMg Zml4ZWQKKworLS0tCisgTkVXUyB8IDIgKysKKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspCisKK2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXggOTM2MDU5NmZjYy4uMDMyODFl M2FiNCAxMDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BAIC0xNiw3ICsxNiw5IEBAIFNl Y3VyaXR5IHJlbGF0ZWQgY2hhbmdlczoKKyAKKyBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29s dmVkIHdpdGggdGhpcyByZWxlYXNlOgorIAorKyAgWzEyMTU0XSBEbyBub3QgZmFpbCBETlMgcmVz b2x1dGlvbiBmb3IgQ05BTUVzIHdoaWNoIGFyZSBub3QgaG9zdCBuYW1lcworICAgWzI4ODQ2XSBD TVNHX05YVEhEUiBtYXkgdHJpZ2dlciAtV3N0cmljdC1vdmVyZmxvdyB3YXJuaW5nCisrICBbMjkz MDVdIENvbnNlcnZlIE5TUyBidWZmZXIgc3BhY2UgZHVyaW5nIEROUyBwYWNrZXQgcGFyc2luZwor ICAgWzI5NDE1XSBuc2NkOiBGaXggbmV0bGluayBjYWNoZSBpbnZhbGlkYXRpb24gaWYgZXBvbGwg aXMgdXNlZAorICAgWzI5NDQ2XSBfZGxvcGVuIG5vdyBpZ25vcmVzIGRsX2NhbGxlciBhcmd1bWVu dCBpbiBzdGF0aWMgbW9kZQorICAgWzI5NDg1XSBMaW51eDogVGVybWluYXRlIHN1YnByb2Nlc3Mg b24gbGF0ZSBmYWlsdXJlIGluIHRzdC1waWRmZAorLS0gCisyLjM4LjEKKworCitGcm9tIGRmNTEz MzQ4MjhmMmFmMjE0MTA1YWFkODIwNDIxNDBlZTNhNmRlMGEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogVHVl LCAxMyBTZXAgMjAyMiAxOTo1Nzo0MyArMDIwMAorU3ViamVjdDogZWxmOiBSdW4gdHN0LWF1ZGl0 LXRsc2Rlc2MsIHRzdC1hdWRpdC10bHNkZXNjLWRsb3BlbiBldmVyeXdoZXJlCisKK1RoZSB0ZXN0 IGlzIHZhbGlkIGZvciBhbGwgVExTIG1vZGVscywgYnV0IHdlIHdhbnQgdG8gbWFrZSBhIHJlYXNv bmFibGUKK2VmZm9ydCB0byB0ZXN0IHRoZSBHTlUyIG1vZGVsIHNwZWNpZmljYWxseS4gIEZvciBl eGFtcGxlLCBhYXJjaDY0CitkZWZhdWx0cyB0byBHTlUyLCBidXQgZG9lcyBub3QgaGF2ZSAtbXRs cy1kaWFsZWN0PWdudTIsIGFuZCB0aGUgdGVzdAord2FzIG5vdCBydW4gdGhlcmUuCisKK1N1Z2dl c3RlZC1ieTogTWFydGluIENvdWZhbCA8bWNvdWZhbEByZWRoYXQuY29tPgorKGNoZXJyeSBwaWNr ZWQgZnJvbSBjb21taXQgZGQyMzE1YTg2NmE0YWMyYjgzOGVhMWNiMTBjNWVhMWMzNWQ1MWEyZikK KworRml4ZXMgZWFybHkgYmFja3BvcnQgY29tbWl0IDkyNGU0ZjNlYWE1MDJjZTgyZmNjZjg1Mzdm MDIxYTc5NmQxNTg3NzEKKygiZWxmOiBDYWxsIF9fbGliY19lYXJseV9pbml0IGZvciByZXVzZWQg bmFtZXNwYWNlcyAoYnVnIDI5NTI4KSIpOworaXQgaGFkIGEgd3JvbmcgY29uZmxpY3QgcmVzb2x1 dGlvbi4KKy0tLQorIGVsZi9NYWtlZmlsZSB8IDIyICsrKysrKy0tLS0tLS0tLS0tLS0tLS0KKyAx IGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKKworZGlmZiAt LWdpdCBhL2VsZi9NYWtlZmlsZSBiL2VsZi9NYWtlZmlsZQoraW5kZXggNDMzNTNhNGIwOC4uNzIx NzhkMzNmZiAxMDA2NDQKKy0tLSBhL2VsZi9NYWtlZmlsZQorKysrIGIvZWxmL01ha2VmaWxlCitA QCAtMzc0LDYgKzM3NCw4IEBAIHRlc3RzICs9IFwKKyAgIHRzdC1hbGlnbiBcCisgICB0c3QtYWxp Z24yIFwKKyAgIHRzdC1hbGlnbjMgXAorKyAgdHN0LWF1ZGl0LXRsc2Rlc2MgXAorKyAgdHN0LWF1 ZGl0LXRsc2Rlc2MtZGxvcGVuIFwKKyAgIHRzdC1hdWRpdDEgXAorICAgdHN0LWF1ZGl0MiBcCisg ICB0c3QtYXVkaXQ4IFwKK0BAIC03NjYsNiArNzY4LDggQEAgbW9kdWxlcy1uYW1lcyArPSBcCisg ICB0c3QtYWxpZ25tb2QzIFwKKyAgIHRzdC1hcnJheTJkZXAgXAorICAgdHN0LWFycmF5NWRlcCBc CisrICB0c3QtYXVkaXQtdGxzZGVzYy1tb2QxIFwKKysgIHRzdC1hdWRpdC10bHNkZXNjLW1vZDIg XAorICAgdHN0LWF1ZGl0MTFtb2QxIFwKKyAgIHRzdC1hdWRpdDExbW9kMiBcCisgICB0c3QtYXVk aXQxMm1vZDEgXAorQEAgLTc5OSw2ICs4MDMsNyBAQCBtb2R1bGVzLW5hbWVzICs9IFwKKyAgIHRz dC1hdWRpdG1hbnltb2Q3IFwKKyAgIHRzdC1hdWRpdG1hbnltb2Q4IFwKKyAgIHRzdC1hdWRpdG1h bnltb2Q5IFwKKysgIHRzdC1hdWRpdG1vZC10bHNkZXNjICBcCisgICB0c3QtYXVkaXRtb2QxIFwK KyAgIHRzdC1hdWRpdG1vZDlhIFwKKyAgIHRzdC1hdWRpdG1vZDliIFwKK0BAIC05OTMsMjMgKzk5 OCw4IEBAIG1vZHVsZXMtbmFtZXMgKz0gdHN0LWdudTItdGxzMW1vZAorICQob2JqcGZ4KXRzdC1n bnUyLXRsczE6ICQob2JqcGZ4KXRzdC1nbnUyLXRsczFtb2Quc28KKyB0c3QtZ251Mi10bHMxbW9k LnNvLW5vLXotZGVmcyA9IHllcworIENGTEFHUy10c3QtZ251Mi10bHMxbW9kLmMgKz0gLW10bHMt ZGlhbGVjdD1nbnUyCisrZW5kaWYgIyAkKGhhdmUtbXRscy1kaWFsZWN0LWdudTIpCisgCistdGVz dHMgKz0gdHN0LWF1ZGl0LXRsc2Rlc2MgdHN0LWF1ZGl0LXRsc2Rlc2MtZGxvcGVuCistbW9kdWxl cy1uYW1lcyArPSB0c3QtYXVkaXQtdGxzZGVzYy1tb2QxIHRzdC1hdWRpdC10bHNkZXNjLW1vZDIg dHN0LWF1ZGl0bW9kLXRsc2Rlc2MKKy0kKG9ianBmeCl0c3QtYXVkaXQtdGxzZGVzYzogJChvYmpw ZngpdHN0LWF1ZGl0LXRsc2Rlc2MtbW9kMS5zbyBcCistCQkJICAgICQob2JqcGZ4KXRzdC1hdWRp dC10bHNkZXNjLW1vZDIuc28gXAorLQkJCSAgICAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkKKy1D RkxBR1MtdHN0LWF1ZGl0LXRsc2Rlc2MtbW9kMS5jICs9IC1tdGxzLWRpYWxlY3Q9Z251MgorLUNG TEFHUy10c3QtYXVkaXQtdGxzZGVzYy1tb2QyLmMgKz0gLW10bHMtZGlhbGVjdD1nbnUyCistJChv YmpwZngpdHN0LWF1ZGl0LXRsc2Rlc2MtZGxvcGVuOiAkKHNoYXJlZC10aHJlYWQtbGlicmFyeSkK Ky0kKG9ianBmeCl0c3QtYXVkaXQtdGxzZGVzYy1kbG9wZW4ub3V0OiAkKG9ianBmeCl0c3QtYXVk aXQtdGxzZGVzYy1tb2QxLnNvIFwKKy0JCQkJICAgICAgICQob2JqcGZ4KXRzdC1hdWRpdC10bHNk ZXNjLW1vZDIuc28KKy0kKG9ianBmeCl0c3QtYXVkaXQtdGxzZGVzYy1tb2QxLnNvOiAkKG9ianBm eCl0c3QtYXVkaXQtdGxzZGVzYy1tb2QyLnNvCistJChvYmpwZngpdHN0LWF1ZGl0LXRsc2Rlc2Mu b3V0OiAkKG9ianBmeCl0c3QtYXVkaXRtb2QtdGxzZGVzYy5zbworLXRzdC1hdWRpdC10bHNkZXNj LUVOViA9IExEX0FVRElUPSQob2JqcGZ4KXRzdC1hdWRpdG1vZC10bHNkZXNjLnNvCistJChvYmpw ZngpdHN0LWF1ZGl0LXRsc2Rlc2MtZGxvcGVuLm91dDogJChvYmpwZngpdHN0LWF1ZGl0bW9kLXRs c2Rlc2Muc28KKy10c3QtYXVkaXQtdGxzZGVzYy1kbG9wZW4tRU5WID0gTERfQVVESVQ9JChvYmpw ZngpdHN0LWF1ZGl0bW9kLXRsc2Rlc2Muc28KKy1lbmRpZgorIGlmZXEgKHllcywkKGhhdmUtcHJv dGVjdGVkLWRhdGEpKQorIG1vZHVsZXMtbmFtZXMgKz0gdHN0LXByb3RlY3RlZDFtb2RhIHRzdC1w cm90ZWN0ZWQxbW9kYgorIHRlc3RzICs9IHRzdC1wcm90ZWN0ZWQxYSB0c3QtcHJvdGVjdGVkMWIK Ky0tIAorMi4zOC4xCisKKworRnJvbSA0Yjk1YjZlOGJiYjVhMmI2ODU2ZjcwN2JmM2JjMzMwOGVi ZWY1OTVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmF2aWVyIFBlbGxvIDxkZXZl bEBvdGhlby5ldT4KK0RhdGU6IE1vbiwgNSBTZXAgMjAyMiAyMDowOTowMSArMDIwMAorU3ViamVj dDogZWxmOiBGaXggaHdjYXBzIHN0cmluZyBzaXplIG92ZXJlc3RpbWF0aW9uCisKK0NvbW1pdCBk YWQ5MGQ1MjgyNTliNjY5MzQyNzU3YzM3ZGVkZWZhODU3N2UyNjM2IGFkZGVkIGdsaWJjLWh3Y2Fw cworc3VwcG9ydCBmb3IgTERfTElCUkFSWV9QQVRIIGFuZCwgZm9yIHRoaXMsIGl0IGFkanVzdGVk IHRoZSB0b3RhbAorc3RyaW5nIHNpemUgcmVxdWlyZWQgaW4gX2RsX2ltcG9ydGFudF9od2NhcHMu IEhvd2V2ZXIsIGluIGRvaW5nIHNvCitpdCBpbmFkdmVydGVudGx5IGFsdGVyZWQgdGhlIGNhbGN1 bGF0aW9uIG9mIHRoZSBzaXplIHJlcXVpcmVkIGZvcgordGhlIHBvd2VyIHNldCBzdHJpbmdzLCBh cyB0aGUgY29tcHV0YXRpb24gb2YgdGhlIHBvd2VyIHNldCBzdHJpbmcKK3NpemUgZGVwZW5kZWQg b24gdGhlIGZpcnN0IHZhbHVlIGFzc2lnbmVkIHRvIHRoZSB0b3RhbCB2YXJpYWJsZSwKK3doaWNo IGlzIGxhdGVyIHNoaWZ0ZWQsIHJlc3VsdGluZyBpbiBvdmVyYWxsb2NhdGlvbiBvZiBzdHJpbmcK K3NwYWNlLiBGaXggdGhpcyBub3cgYnkgdXNpbmcgYSBkaWZmZXJlbnQgdmFyaWFibGUgdG8gaG9s ZCB0aGUKK3N0cmluZyBzaXplIHJlcXVpcmVkIGZvciBnbGliYy1od2NhcHMuCisKK1NpZ25lZC1v ZmYtYnk6IEphdmllciBQZWxsbyA8ZGV2ZWxAb3RoZW8uZXU+CisoY2hlcnJ5IHBpY2tlZCBmcm9t IGNvbW1pdCBhMjM4MjBmNjA1MmE3NDAyNDZmZGM3ZGNkOWM0M2NlOGVlZDBjNDVhKQorLS0tCisg ZWxmL2RsLWh3Y2Fwcy5jIHwgOCArKysrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9lbGYvZGwtaHdjYXBzLmMgYi9l bGYvZGwtaHdjYXBzLmMKK2luZGV4IDZmMTYxZjZhZDUuLjkyZWI1Mzc5MGUgMTAwNjQ0CistLS0g YS9lbGYvZGwtaHdjYXBzLmMKKysrKyBiL2VsZi9kbC1od2NhcHMuYworQEAgLTE5Myw3ICsxOTMs NyBAQCBfZGxfaW1wb3J0YW50X2h3Y2FwcyAoY29uc3QgY2hhciAqZ2xpYmNfaHdjYXBzX3ByZXBl bmQsCisgICAvKiBFYWNoIGh3Y2FwcyBzdWJkaXJlY3RvcnkgaGFzIGEgR0xJQkNfSFdDQVBTX1BS RUZJWCBzdHJpbmcgcHJlZml4CisgICAgICBhbmQgYSAiLyIgc3VmZml4IG9uY2Ugc3RvcmVkIGlu IHRoZSByZXN1bHQuICAqLworICAgaHdjYXBzX2NvdW50cy5tYXhpbXVtX2xlbmd0aCArPSBzdHJs ZW4gKEdMSUJDX0hXQ0FQU19QUkVGSVgpICsgMTsKKy0gIHNpemVfdCB0b3RhbCA9IChod2NhcHNf Y291bnRzLmNvdW50ICogKHN0cmxlbiAoR0xJQkNfSFdDQVBTX1BSRUZJWCkgKyAxKQorKyAgc2l6 ZV90IGh3Y2Fwc19zeiA9IChod2NhcHNfY291bnRzLmNvdW50ICogKHN0cmxlbiAoR0xJQkNfSFdD QVBTX1BSRUZJWCkgKyAxKQorIAkJICArIGh3Y2Fwc19jb3VudHMudG90YWxfbGVuZ3RoKTsKKyAK KyAgIC8qIENvdW50IHRoZSBudW1iZXIgb2YgYml0cyBzZXQgaW4gdGhlIG1hc2tlZCB2YWx1ZS4g ICovCitAQCAtMjI5LDExICsyMjksMTIgQEAgX2RsX2ltcG9ydGFudF9od2NhcHMgKGNvbnN0IGNo YXIgKmdsaWJjX2h3Y2Fwc19wcmVwZW5kLAorICAgYXNzZXJ0IChtID09IGNudCk7CisgCisgICAv KiBEZXRlcm1pbmUgdGhlIHRvdGFsIHNpemUgb2YgYWxsIHN0cmluZ3MgdG9nZXRoZXIuICAqLwor KyAgc2l6ZV90IHRvdGFsOworICAgaWYgKGNudCA9PSAxKQorLSAgICB0b3RhbCArPSB0ZW1wWzBd LmxlbiArIDE7CisrICAgIHRvdGFsID0gdGVtcFswXS5sZW4gKyAxOworICAgZWxzZQorICAgICB7 CistICAgICAgdG90YWwgKz0gdGVtcFswXS5sZW4gKyB0ZW1wW2NudCAtIDFdLmxlbiArIDI7Cisr ICAgICAgdG90YWwgPSB0ZW1wWzBdLmxlbiArIHRlbXBbY250IC0gMV0ubGVuICsgMjsKKyAgICAg ICBpZiAoY250ID4gMikKKyAJeworIAkgIHRvdGFsIDw8PSAxOworQEAgLTI1NSw2ICsyNTYsNyBA QCBfZGxfaW1wb3J0YW50X2h3Y2FwcyAoY29uc3QgY2hhciAqZ2xpYmNfaHdjYXBzX3ByZXBlbmQs CisgICAvKiBUaGlzIGlzIHRoZSBvdmVyYWxsIHJlc3VsdCwgaW5jbHVkaW5nIGJvdGggZ2xpYmMt aHdjYXBzCisgICAgICBzdWJkaXJlY3RvcmllcyBhbmQgdGhlIGxlZ2FjeSBod2NhcHMgc3ViZGly ZWN0b3JpZXMgdXNpbmcgdGhlCisgICAgICBwb3dlciBzZXQgY29uc3RydWN0aW9uLiAgKi8KKysg IHRvdGFsICs9IGh3Y2Fwc19zejsKKyAgIHN0cnVjdCByX3N0cmxlbnBhaXIgKm92ZXJhbGxfcmVz dWx0CisgICAgID0gbWFsbG9jICgqc3ogKiBzaXplb2YgKCpyZXN1bHQpICsgdG90YWwpOworICAg aWYgKG92ZXJhbGxfcmVzdWx0ID09IE5VTEwpCistLSAKKzIuMzguMQorCisKK0Zyb20gN2EzZjhj OGE3YWViNDFkNGJiZmVlYzA3ZDBiZTFlOTJjMzAxOTkxOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUs IDYgU2VwIDIwMjIgMDc6Mzg6MTAgKzAyMDAKK1N1YmplY3Q6IHNjcmlwdHMvZHNvLW9yZGVyaW5n LXRlc3QucHk6IEdlbmVyYXRlIHByb2dyYW0gcnVuLXRpbWUgZGVwZW5kZW5jaWVzCisKK1RoZSBt YWluIHByb2dyYW0gbmVlZHMgdG8gZGVwZW5kIG9uIGFsbCBzaGFyZWQgb2JqZWN0cywgZXZlbiBv YmplY3RzCit0aGF0IGhhdmUgbGluay10aW1lIGRlcGVuZGVuY2llcyBhbW9uZyBzaGFyZWQgb2Jq ZWN0cy4gIEZpbHRlcmluZworb3V0IHNoYXJlZCBvYmplY3RzIHRoYXQgYWxyZWFkeSBoYXZlIGFu IGxpbmstdGltZSBkZXBlbmRlbmNpZXMgaXMgbm90CituZWNlc3NhcnkgaGVyZTsgbWFrZSB3aWxs IGRvIHRoaXMgYXV0b21hdGljYWxseS4KKworUmV2aWV3ZWQtYnk6IEFkaGVtZXJ2YWwgWmFuZWxs YSAgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBj b21taXQgMTgzZDk5NzM3Mjk4YmIzMjAwZjA2MTBmZGNkMWM3NTQ5YzhlZDU2MCkKKy0tLQorIHNj cmlwdHMvZHNvLW9yZGVyaW5nLXRlc3QucHkgfCAxMyArKysrKystLS0tLS0tCisgMSBmaWxlIGNo YW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3Nj cmlwdHMvZHNvLW9yZGVyaW5nLXRlc3QucHkgYi9zY3JpcHRzL2Rzby1vcmRlcmluZy10ZXN0LnB5 CitpbmRleCAyZGQ2YmZkYTE4Li5iODdjZjJmODA5IDEwMDY0NAorLS0tIGEvc2NyaXB0cy9kc28t b3JkZXJpbmctdGVzdC5weQorKysrIGIvc2NyaXB0cy9kc28tb3JkZXJpbmctdGVzdC5weQorQEAg LTcwNywxMyArNzA3LDEyIEBAIGRlZiBwcm9jZXNzX3Rlc3RjYXNlKHQpOgorICAgICAgICAgICAg ICAgICAiXHQkKGNvbXBpbGUuYykgJChPVVRQVVRfT1BUSU9OKVxuIikKKyAgICAgICAgIG1ha2Vm aWxlLndyaXRlIChydWxlKQorIAorLSAgICAgICAgbm90X2RlcGVuZGVkX29ianMgPSBmaW5kX29i anNfbm90X2RlcGVuZGVkX29uKHRlc3RfZGVzY3IpCistICAgICAgICBpZiBub3RfZGVwZW5kZWRf b2JqczoKKy0gICAgICAgICAgICBkZXBzdHIgPSAiIgorLSAgICAgICAgICAgIGZvciBkZXAgaW4g bm90X2RlcGVuZGVkX29ianM6CistICAgICAgICAgICAgICAgIGRlcHN0ciArPSAoIiAkKG9ianBm eCkiICsgdGVzdF9zdWJkaXIgKyAiLyIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICArIHRl c3RfbmFtZSArICItIiArIGRlcCArICIuc28iKQorLSAgICAgICAgICAgIG1ha2VmaWxlLndyaXRl KCIkKG9ianBmeCklcy5vdXQ6JXNcbiIgJSAoYmFzZV90ZXN0X25hbWUsIGRlcHN0cikpCisrICAg ICAgICAjIEVuc3VyZSB0aGF0IGFsbCBzaGFyZWQgb2JqZWN0cyBhcmUgYnVpbHQgYmVmb3JlIHJ1 bm5pbmcgdGhlCisrICAgICAgICAjIHRlc3QsIHdoZXRoZXIgdGhlcmUgbGluay10aW1lIGRlcGVu ZGVuY2llcyBvciBub3QuCisrICAgICAgICBkZXBvYmpzID0gWyIkKG9ianBmeCl7fS97fS17fS5z byIuZm9ybWF0KHRlc3Rfc3ViZGlyLCB0ZXN0X25hbWUsIGRlcCkKKysgICAgICAgICAgICAgICAg ICAgZm9yIGRlcCBpbiB0ZXN0X2Rlc2NyLm9ianNdCisrICAgICAgICBtYWtlZmlsZS53cml0ZSgi JChvYmpwZngpe30ub3V0OiB7fVxuIi5mb3JtYXQoCisrICAgICAgICAgICAgYmFzZV90ZXN0X25h bWUsICIgIi5qb2luKGRlcG9ianMpKSkKKyAKKyAgICAgICAgICMgQWRkIG1haW4gZXhlY3V0YWJs ZSB0byB0ZXN0LXNyY3MKKyAgICAgICAgIG1ha2VmaWxlLndyaXRlKCJ0ZXN0LXNyY3MgKz0gJXMv JXNcbiIgJSAodGVzdF9zdWJkaXIsIHRlc3RfbmFtZSkpCistLSAKKzIuMzguMQorCisKK0Zyb20g ZDEyNDFjZjAwMTM5NzMzZGUwNjljODQ5MzNjZDU3NmRjMWExZjQ1ZSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRl OiBUdWUsIDYgU2VwIDIwMjIgMDc6Mzg6MTAgKzAyMDAKK1N1YmplY3Q6IGVsZjogUmVuYW1lIF9k bF9zb3J0X21hcHMgcGFyYW1ldGVyIGZyb20gc2tpcCB0byBmb3JjZV9maXJzdAorCitUaGUgbmV3 IGltcGxlbWVudGF0aW9uIHdpbGwgbm90IGJlIGFibGUgdG8gc2tpcCBhbiBhcmJpdHJhcnkgbnVt YmVyCitvZiBvYmplY3RzLgorCitSZXZpZXdlZC1ieTogQWRoZW1lcnZhbCBaYW5lbGxhICA8YWRo ZW1lcnZhbC56YW5lbGxhQGxpbmFyby5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBk YmI3NTUxM2Y1Y2Y5Mjg1Yzc3YzllNTU3NzdjNWMzNWI2NTNmODkwKQorLS0tCisgZWxmL2RsLXNv cnQtbWFwcy5jICAgICAgICAgfCAxNCArKysrKysrLS0tLS0tLQorIHN5c2RlcHMvZ2VuZXJpYy9s ZHNvZGVmcy5oIHwgIDYgKysrKy0tCisgMiBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCsp LCA5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZWxmL2RsLXNvcnQtbWFwcy5jIGIvZWxm L2RsLXNvcnQtbWFwcy5jCitpbmRleCA5NjYzOGQ3ZWQxLi41YjU1MGIxZTk0IDEwMDY0NAorLS0t IGEvZWxmL2RsLXNvcnQtbWFwcy5jCisrKysgYi9lbGYvZGwtc29ydC1tYXBzLmMKK0BAIC0yNywx MiArMjcsMTIgQEAKKyAgICBJZiBGT1JfRklOSSBpcyB0cnVlLCB0aGlzIGlzIGNhbGxlZCBmb3Ig ZmluaXNoaW5nIGFuIG9iamVjdC4gICovCisgc3RhdGljIHZvaWQKKyBfZGxfc29ydF9tYXBzX29y aWdpbmFsIChzdHJ1Y3QgbGlua19tYXAgKiptYXBzLCB1bnNpZ25lZCBpbnQgbm1hcHMsCistCQkJ dW5zaWduZWQgaW50IHNraXAsIGJvb2wgZm9yX2ZpbmkpCisrCQkJYm9vbCBmb3JjZV9maXJzdCwg Ym9vbCBmb3JfZmluaSkKKyB7CisgICAvKiBBbGxvd3MgY2FsbGVyIHRvIGRvIHRoZSBjb21tb24g b3B0aW1pemF0aW9uIG9mIHNraXBwaW5nIHRoZSBmaXJzdCBtYXAsCisgICAgICB1c3VhbGx5IHRo ZSBtYWluIGJpbmFyeS4gICovCistICBtYXBzICs9IHNraXA7CistICBubWFwcyAtPSBza2lwOwor KyAgbWFwcyArPSBmb3JjZV9maXJzdDsKKysgIG5tYXBzIC09IGZvcmNlX2ZpcnN0OworIAorICAg LyogQSBsaXN0IG9mIG9uZSBlbGVtZW50IG5lZWQgbm90IGJlIHNvcnRlZC4gICovCisgICBpZiAo bm1hcHMgPD0gMSkKK0BAIC0xODIsNyArMTgyLDcgQEAgZGZzX3RyYXZlcnNhbCAoc3RydWN0IGxp bmtfbWFwICoqKnJwbywgc3RydWN0IGxpbmtfbWFwICptYXAsCisgCisgc3RhdGljIHZvaWQKKyBf ZGxfc29ydF9tYXBzX2RmcyAoc3RydWN0IGxpbmtfbWFwICoqbWFwcywgdW5zaWduZWQgaW50IG5t YXBzLAorLQkJICAgdW5zaWduZWQgaW50IHNraXAgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLCBi b29sIGZvcl9maW5pKQorKwkJICAgYm9vbCBmb3JjZV9maXJzdCBfX2F0dHJpYnV0ZV9fICgodW51 c2VkKSksIGJvb2wgZm9yX2ZpbmkpCisgeworICAgZm9yIChpbnQgaSA9IG5tYXBzIC0gMTsgaSA+ PSAwOyBpLS0pCisgICAgIG1hcHNbaV0tPmxfdmlzaXRlZCA9IDA7CitAQCAtMjg2LDcgKzI4Niw3 IEBAIF9kbF9zb3J0X21hcHNfaW5pdCAodm9pZCkKKyAKKyB2b2lkCisgX2RsX3NvcnRfbWFwcyAo c3RydWN0IGxpbmtfbWFwICoqbWFwcywgdW5zaWduZWQgaW50IG5tYXBzLAorLQkgICAgICAgdW5z aWduZWQgaW50IHNraXAsIGJvb2wgZm9yX2ZpbmkpCisrCSAgICAgICBib29sIGZvcmNlX2ZpcnN0 LCBib29sIGZvcl9maW5pKQorIHsKKyAgIC8qIEl0IGNhbiBiZSB0ZW1wdGluZyB0byB1c2UgYSBz dGF0aWMgZnVuY3Rpb24gcG9pbnRlciB0byBzdG9yZSBhbmQgY2FsbAorICAgICAgdGhlIGN1cnJl bnQgc2VsZWN0ZWQgc29ydGluZyBhbGdvcml0aG0gcm91dGluZSwgYnV0IGV4cGVyaW1lbnRhdGlv bgorQEAgLTI5Niw5ICsyOTYsOSBAQCBfZGxfc29ydF9tYXBzIChzdHJ1Y3QgbGlua19tYXAgKipt YXBzLCB1bnNpZ25lZCBpbnQgbm1hcHMsCisgICAgICBpbnB1dCBjYXNlcy4gQSBzaW1wbGUgaWYt Y2FzZSB3aXRoIGRpcmVjdCBmdW5jdGlvbiBjYWxscyBhcHBlYXJzIHRvCisgICAgICBiZSB0aGUg ZmFzdGVzdC4gICovCisgICBpZiAoX19nbGliY19saWtlbHkgKEdMUk8oZGxfZHNvX3NvcnRfYWxn bykgPT0gZHNvX3NvcnRfYWxnb3JpdGhtX29yaWdpbmFsKSkKKy0gICAgX2RsX3NvcnRfbWFwc19v cmlnaW5hbCAobWFwcywgbm1hcHMsIHNraXAsIGZvcl9maW5pKTsKKysgICAgX2RsX3NvcnRfbWFw c19vcmlnaW5hbCAobWFwcywgbm1hcHMsIGZvcmNlX2ZpcnN0LCBmb3JfZmluaSk7CisgICBlbHNl CistICAgIF9kbF9zb3J0X21hcHNfZGZzIChtYXBzLCBubWFwcywgc2tpcCwgZm9yX2ZpbmkpOwor KyAgICBfZGxfc29ydF9tYXBzX2RmcyAobWFwcywgbm1hcHMsIGZvcmNlX2ZpcnN0LCBmb3JfZmlu aSk7CisgfQorIAorICNlbmRpZiAvKiBIQVZFX1RVTkFCTEVTLiAgKi8KK2RpZmYgLS1naXQgYS9z eXNkZXBzL2dlbmVyaWMvbGRzb2RlZnMuaCBiL3N5c2RlcHMvZ2VuZXJpYy9sZHNvZGVmcy5oCitp bmRleCAwNTBhMzAzMmRlLi42YjI1NmI4Mzg4IDEwMDY0NAorLS0tIGEvc3lzZGVwcy9nZW5lcmlj L2xkc29kZWZzLmgKKysrKyBiL3N5c2RlcHMvZ2VuZXJpYy9sZHNvZGVmcy5oCitAQCAtMTA0OCw5 ICsxMDQ4LDExIEBAIGV4dGVybiB2b2lkIF9kbF9pbml0IChzdHJ1Y3QgbGlua19tYXAgKm1haW5f bWFwLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YsCisgICAgaW5pdGlhbGl6ZXIgZnVuY3Rpb25zIGhh dmUgY29tcGxldGVkLiAgKi8KKyBleHRlcm4gdm9pZCBfZGxfZmluaSAodm9pZCkgYXR0cmlidXRl X2hpZGRlbjsKKyAKKy0vKiBTb3J0IGFycmF5IE1BUFMgYWNjb3JkaW5nIHRvIGRlcGVuZGVuY2ll cyBvZiB0aGUgY29udGFpbmVkIG9iamVjdHMuICAqLworKy8qIFNvcnQgYXJyYXkgTUFQUyBhY2Nv cmRpbmcgdG8gZGVwZW5kZW5jaWVzIG9mIHRoZSBjb250YWluZWQgb2JqZWN0cy4KKysgICBJZiBG T1JDRV9GSVJTVCwgTUFQU1swXSBrZWVwcyBpdHMgcGxhY2UgZXZlbiBpZiB0aGUgZGVwZW5kZW5j aWVzCisrICAgc2F5IG90aGVyd2lzZS4gICovCisgZXh0ZXJuIHZvaWQgX2RsX3NvcnRfbWFwcyAo c3RydWN0IGxpbmtfbWFwICoqbWFwcywgdW5zaWduZWQgaW50IG5tYXBzLAorLQkJCSAgIHVuc2ln bmVkIGludCBza2lwLCBib29sIGZvcl9maW5pKSBhdHRyaWJ1dGVfaGlkZGVuOworKwkJCSAgIGJv b2wgZm9yY2VfZmlyc3QsIGJvb2wgZm9yX2ZpbmkpIGF0dHJpYnV0ZV9oaWRkZW47CisgCisgLyog VGhlIGR5bmFtaWMgbGlua2VyIGNhbGxzIHRoaXMgZnVuY3Rpb24gYmVmb3JlIGFuZCBoYXZpbmcg Y2hhbmdpbmcKKyAgICBhbnkgc2hhcmVkIG9iamVjdCBtYXBwaW5ncy4gIFRoZSBgcl9zdGF0ZScg bWVtYmVyIG9mIGBzdHJ1Y3Qgcl9kZWJ1ZycKKy0tIAorMi4zOC4xCisKKworRnJvbSBkYTVmMTM0 ZjZkNTk3MDFhM2E2MTE5MzA5YWU5MWM5M2MzZmE1YjUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwg MjAgU2VwIDIwMjIgMTE6MDA6NDIgKzAyMDAKK1N1YmplY3Q6IGVsZjogSW1wbGVtZW50IGZvcmNl X2ZpcnN0IGhhbmRsaW5nIGluIF9kbF9zb3J0X21hcHNfZGZzIChidWcgMjg5MzcpCitNSU1FLVZl cnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250 ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1RoZSBpbXBsZW1lbnRhdGlvbiBpbiBfZGxf Y2xvc2Vfd29ya2VyIHJlcXVpcmVzIHRoYXQgdGhlIGZpcnN0CitlbGVtZW50IG9mIGxfaW5pdGZp bmkgaXMgYWx3YXlzIHRoaXMgdmVyeSBtYXAgKOKAnFdlIGFyZSBhbHdheXMgdGhlCit6ZXJvdGgg ZW50cnksIGFuZCBzaW5jZSB3ZSBkb24ndCBpbmNsdWRlIG91cnNlbHZlcyBpbiB0aGUKK2RlcGVu ZGVuY3kgYW5hbHlzaXMgc3RhcnQgYXQgMS7igJ0pLiAgUmF0aGVyIHRoYW4gZml4aW5nIHRoYXQK K2Fzc3VtcHRpb24sIHRoaXMgY29tbWl0IGFkZHMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIGZv cmNlX2ZpcnN0Cithcmd1bWVudCB0byB0aGUgbmV3IGRlcGVuZGVuY3kgc29ydGluZyBhbGdvcml0 aG0uICBUaGlzIGFsc28gbWVhbnMKK3RoYXQgdGhlIGRpcmVjdGx5IGRsb3BlbidlZCBzaGFyZWQg b2JqZWN0IGlzIGFsd2F5cyBpbml0aWFsaXplZCBsYXN0LAord2hpY2ggaXMgdGhlIGxlYXN0IHN1 cnByaXNpbmcgYmVoYXZpb3IgaW4gdGhlIHByZXNlbmNlIG9mIGN5Y2xlcy4KKworUmV2aWV3ZWQt Ynk6IEFkaGVtZXJ2YWwgWmFuZWxsYSAgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgor KGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMWRmNzFkMzJmZTVmNTkwNWZmZDVkMTAwZTVlOWNh OGFkNjIxMDg5MSkKKy0tLQorIE5FV1MgICAgICAgICAgICAgICAgICAgICB8ICAxICsKKyBlbGYv ZGwtc29ydC1tYXBzLmMgICAgICAgfCAzMiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LQorIGVsZi9kc28tc29ydC10ZXN0cy0xLmRlZiB8ICA3ICsrKysrKysKKyAzIGZpbGVzIGNoYW5n ZWQsIDMxIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ORVdT IGIvTkVXUworaW5kZXggMDMyODFlM2FiNC4uNWI0NzUzNDE2ZiAxMDA2NDQKKy0tLSBhL05FV1MK KysrKyBiL05FV1MKK0BAIC0yMCw2ICsyMCw3IEBAIFRoZSBmb2xsb3dpbmcgYnVncyBhcmUgcmVz b2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6CisgICBbMjg4NDZdIENNU0dfTlhUSERSIG1heSB0cmln Z2VyIC1Xc3RyaWN0LW92ZXJmbG93IHdhcm5pbmcKKyAgIFsyOTMwNV0gQ29uc2VydmUgTlNTIGJ1 ZmZlciBzcGFjZSBkdXJpbmcgRE5TIHBhY2tldCBwYXJzaW5nCisgICBbMjk0MTVdIG5zY2Q6IEZp eCBuZXRsaW5rIGNhY2hlIGludmFsaWRhdGlvbiBpZiBlcG9sbCBpcyB1c2VkCisrICBbMjg5Mzdd IE5ldyBEU08gZGVwZW5kZW5jeSBzb3J0ZXIgZG9lcyBub3QgcHV0IG5ldyBtYXAgZmlyc3QgaWYg aW4gYSBjeWNsZQorICAgWzI5NDQ2XSBfZGxvcGVuIG5vdyBpZ25vcmVzIGRsX2NhbGxlciBhcmd1 bWVudCBpbiBzdGF0aWMgbW9kZQorICAgWzI5NDg1XSBMaW51eDogVGVybWluYXRlIHN1YnByb2Nl c3Mgb24gbGF0ZSBmYWlsdXJlIGluIHRzdC1waWRmZAorICAgWzI5NDkwXSBhbHBoYTogTmV3IF9f YnJrX2NhbGwgaW1wbGVtZW50YXRpb24gaXMgYnJva2VuCitkaWZmIC0tZ2l0IGEvZWxmL2RsLXNv cnQtbWFwcy5jIGIvZWxmL2RsLXNvcnQtbWFwcy5jCitpbmRleCA1YjU1MGIxZTk0Li4zZTJhNmE1 ODRlIDEwMDY0NAorLS0tIGEvZWxmL2RsLXNvcnQtbWFwcy5jCisrKysgYi9lbGYvZGwtc29ydC1t YXBzLmMKK0BAIC0xODIsOCArMTgyLDkgQEAgZGZzX3RyYXZlcnNhbCAoc3RydWN0IGxpbmtfbWFw ICoqKnJwbywgc3RydWN0IGxpbmtfbWFwICptYXAsCisgCisgc3RhdGljIHZvaWQKKyBfZGxfc29y dF9tYXBzX2RmcyAoc3RydWN0IGxpbmtfbWFwICoqbWFwcywgdW5zaWduZWQgaW50IG5tYXBzLAor LQkJICAgYm9vbCBmb3JjZV9maXJzdCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksIGJvb2wgZm9y X2ZpbmkpCisrCQkgICBib29sIGZvcmNlX2ZpcnN0LCBib29sIGZvcl9maW5pKQorIHsKKysgIHN0 cnVjdCBsaW5rX21hcCAqZmlyc3RfbWFwID0gbWFwc1swXTsKKyAgIGZvciAoaW50IGkgPSBubWFw cyAtIDE7IGkgPj0gMDsgaS0tKQorICAgICBtYXBzW2ldLT5sX3Zpc2l0ZWQgPSAwOworIAorQEAg LTIwOCwxNCArMjA5LDYgQEAgX2RsX3NvcnRfbWFwc19kZnMgKHN0cnVjdCBsaW5rX21hcCAqKm1h cHMsIHVuc2lnbmVkIGludCBubWFwcywKKyAgICAgIEFkanVzdGluZyB0aGUgb3JkZXIgc28gdGhh dCBtYXBzWzBdIGlzIGxhc3QgdHJhdmVyc2VkIG5hdHVyYWxseSBhdm9pZHMKKyAgICAgIHRoaXMg cHJvYmxlbS4KKyAKKy0gICAgIEZ1cnRoZXIsIHRoZSBvbGQgIm9wdGltaXphdGlvbiIgb2Ygc2tp cHBpbmcgdGhlIG1haW4gb2JqZWN0IGF0IG1hcHNbMF0KKy0gICAgIGZyb20gdGhlIGNhbGwtc2l0 ZSAoaS5lLiBfZGxfc29ydF9tYXBzKG1hcHMrMSxubWFwcy0xKSkgaXMgaW4gZ2VuZXJhbAorLSAg ICAgbm8gbG9uZ2VyIHZhbGlkLCBzaW5jZSB0cmF2ZXJzaW5nIGFsb25nIG9iamVjdCBkZXBlbmRl bmN5LWxpbmtzCistICAgICBtYXkgImZpbmQiIHRoZSBtYWluIG9iamVjdCBldmVuIHdoZW4gaXQg aXMgbm90IGluY2x1ZGVkIGluIHRoZSBpbml0aWFsCistICAgICBvcmRlciAoZS5nLiBhIGRsb3Bl bigpJ2VkIHNoYXJlZCBvYmplY3QgY2FuIGhhdmUgY2lyY3VsYXIgZGVwZW5kZW5jaWVzCistICAg ICBsaW5rZWQgYmFjayB0byBpdHNlbGYpLiBJbiBzdWNoIGEgY2FzZSwgdHJhdmVyc2luZyBOLTEg b2JqZWN0cyB3aWxsCistICAgICBjcmVhdGUgYSBOLW9iamVjdCByZXN1bHQsIGFuZCByYWlzZSBw cm9ibGVtcy4KKy0KKyAgICAgIFRvIHN1bW1hcml6ZSwganVzdCBwYXNzaW5nIGluIHRoZSBmdWxs IGxpc3QsIGFuZCBpdGVyYXRpbmcgZnJvbSBiYWNrCisgICAgICB0byBmcm9udCBtYWtlcyB0aGlu Z3MgbXVjaCBtb3JlIHN0cmFpZ2h0Zm9yd2FyZC4gICovCisgCitAQCAtMjc0LDYgKzI2NywyNyBA QCBfZGxfc29ydF9tYXBzX2RmcyAoc3RydWN0IGxpbmtfbWFwICoqbWFwcywgdW5zaWduZWQgaW50 IG5tYXBzLAorICAgICB9CisgCisgICBtZW1jcHkgKG1hcHMsIHJwbywgc2l6ZW9mIChzdHJ1Y3Qg bGlua19tYXAgKikgKiBubWFwcyk7CisrCisrICAvKiBTa2lwcGluZyB0aGUgZmlyc3Qgb2JqZWN0 IGF0IG1hcHNbMF0gaXMgbm90IHZhbGlkIGluIGdlbmVyYWwsCisrICAgICBzaW5jZSB0cmF2ZXJz aW5nIGFsb25nIG9iamVjdCBkZXBlbmRlbmN5LWxpbmtzIG1heSAiZmluZCIgdGhhdAorKyAgICAg Zmlyc3Qgb2JqZWN0IGV2ZW4gd2hlbiBpdCBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIGluaXRpYWwg b3JkZXIKKysgICAgIChlLmcuLCBhIGRsb3BlbidlZCBzaGFyZWQgb2JqZWN0IGNhbiBoYXZlIGNp cmN1bGFyIGRlcGVuZGVuY2llcworKyAgICAgbGlua2VkIGJhY2sgdG8gaXRzZWxmKS4gIEluIHN1 Y2ggYSBjYXNlLCB0cmF2ZXJzaW5nIE4tMSBvYmplY3RzCisrICAgICB3aWxsIGNyZWF0ZSBhIE4t b2JqZWN0IHJlc3VsdCwgYW5kIHJhaXNlIHByb2JsZW1zLiAgSW5zdGVhZCwKKysgICAgIGZvcmNl IHRoZSBvYmplY3QgYmFjayBpbnRvIGZpcnN0IHBsYWNlIGFmdGVyIHNvcnRpbmcuICBUaGlzIG5h aXZlCisrICAgICBhcHByb2FjaCBtYXkgaW50cm9kdWNlIGZ1cnRoZXIgZGVwZW5kZW5jeSBvcmRl cmluZyB2aW9sYXRpb25zCisrICAgICBjb21wYXJlZCB0byByb3RhdGluZyB0aGUgY3ljbGUgdW50 aWwgdGhlIGZpcnN0IG1hcCBpcyBhZ2FpbiBpbgorKyAgICAgdGhlIGZpcnN0IHBvc2l0aW9uLCBi dXQgYXMgdGhlcmUgaXMgYSBjeWNsZSwgYXQgbGVhc3Qgb25lCisrICAgICB2aW9sYXRpb24gaXMg YWxyZWFkeSBwcmVzZW50LiAgKi8KKysgIGlmIChmb3JjZV9maXJzdCAmJiBtYXBzWzBdICE9IGZp cnN0X21hcCkKKysgICAgeworKyAgICAgIGludCBpOworKyAgICAgIGZvciAoaSA9IDA7IG1hcHNb aV0gIT0gZmlyc3RfbWFwOyArK2kpCisrCTsKKysgICAgICBhc3NlcnQgKGkgPCBubWFwcyk7Cisr ICAgICAgbWVtbW92ZSAoJm1hcHNbMV0sIG1hcHMsIGkgKiBzaXplb2YgKG1hcHNbMF0pKTsKKysg ICAgICBtYXBzWzBdID0gZmlyc3RfbWFwOworKyAgICB9CisgfQorIAorIHZvaWQKK2RpZmYgLS1n aXQgYS9lbGYvZHNvLXNvcnQtdGVzdHMtMS5kZWYgYi9lbGYvZHNvLXNvcnQtdGVzdHMtMS5kZWYK K2luZGV4IDVmN2YxOGVmMjcuLjRiZjkwNTJkYjEgMTAwNjQ0CistLS0gYS9lbGYvZHNvLXNvcnQt dGVzdHMtMS5kZWYKKysrKyBiL2VsZi9kc28tc29ydC10ZXN0cy0xLmRlZgorQEAgLTY0LDMgKzY0 LDEwIEBAIG91dHB1dDogYj5hPnt9PGE8YgorIHRzdC1iejE1MzExOiB7K2E7K2U7K2Y7K2c7K2Q7 JWQ7LWQ7LWc7LWY7LWU7LWF9O2EtPmItPmMtPmQ7ZD0+W2JhXTtjPT5hO2I9PmU9PmE7Yz0+Zj0+ YjtkPT5nPT5jCisgb3V0cHV0KGdsaWJjLnJ0bGQuZHluYW1pY19zb3J0PTEpOiB7K2FbZD5jPmI+ YT5dOytlW2U+XTsrZltmPl07K2dbZz5dOytkW107JWQoYihlKGEoKSkpYSgpZyhjKGEoKWYoYihl KGEoKSkpKSkpKTstZFtdOy1nW107LWZbXTstZVtdOy1hWzxhPGM8ZDxnPGY8YjxlXTt9Cisgb3V0 cHV0KGdsaWJjLnJ0bGQuZHluYW1pY19zb3J0PTIpOiB7K2FbZD5jPmI+YT5dOytlW2U+XTsrZltm Pl07K2dbZz5dOytkW107JWQoYihlKGEoKSkpYSgpZyhjKGEoKWYoYihlKGEoKSkpKSkpKTstZFtd Oy1nW107LWZbXTstZVtdOy1hWzxnPGY8YTxiPGM8ZDxlXTt9CisrCisrIyBUZXN0IHRoYXQgZXZl biBpbiB0aGUgcHJlc2VuY2Ugb2YgZGVwZW5kZW5jeSBsb29wcyBpbnZvbHZpbmcgZGxvcGVuJ2Vk CisrIyBvYmplY3QsIHRoYXQgb2JqZWN0IGlzIGluaXRpYWxpemVkIGxhc3QgKGFuZCBub3QgdW5s b2FkZWQgcHJlbWF0dXJlbHkpLgorKyMgRmluYWwgZGVzdHJ1Y3RvciBvcmRlciBpcyBpbmRldGVy bWluYXRlIGR1ZSB0byB0aGUgY3ljbGUuCisrdHN0LWJ6Mjg5Mzc6IHsrYTsrYjstYjsrYzslY307 YS0+YTE7YS0+YTI7YTItPmE7Yi0+YjE7Yy0+YTE7Yz0+YTEKKytvdXRwdXQoZ2xpYmMucnRsZC5k eW5hbWljX3NvcnQ9MSk6IHsrYVthMj5hMT5hPl07K2JbYjE+Yj5dOy1iWzxiPGIxXTsrY1tjPl07 JWMoYTEoKSk7fTxhPGEyPGM8YTEKKytvdXRwdXQoZ2xpYmMucnRsZC5keW5hbWljX3NvcnQ9Mik6 IHsrYVthMj5hMT5hPl07K2JbYjE+Yj5dOy1iWzxiPGIxXTsrY1tjPl07JWMoYTEoKSk7fTxhMjxh PGM8YTEKKy0tIAorMi4zOC4xCisKKworRnJvbSA1MmMwMzdmMzU3NGViOTA2MmIxMTFkNzhhNGNi ZWI3OTY4MWQwN2QzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRmxvcmlhbiBXZWlt ZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KK0RhdGU6IFR1ZSwgMjAgU2VwIDIwMjIgMTI6MTI6NDMg KzAyMDAKK1N1YmplY3Q6IGdjb252OiBVc2UgNjQtYml0IGludGVyZmFjZXMgaW4gZ2NvbnZfcGFy c2Vjb25mZGlyIChidWcgMjk1ODMpCisKK0l0J3MgcG9zc2libGUgdGhhdCBpbm9kZSBudW1iZXJz IGFyZSBvdXRzaWRlIHRoZSAzMi1iaXQgcmFuZ2UuCitUaGUgZXhpc3RpbmcgY29kZSBvbmx5IGhh bmRsZXMgdGhlIGluLWxpYmMgY2FzZSBjb3JyZWN0bHksIGFuZAorc3RpbGwgdXNlcyB0aGUgbGVn YWN5IGludGVyZmFjZXMgd2hlbiBidWlsZGluZyBpY29udi4KKworU3VnZ2VzdGVkLWJ5OiBIZWxn ZSBEZWxsZXIgPGRlbGxlckBnbXguZGU+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBmOTc5 MDVmMjQ2MzEwOTdhZjMyNWQ2YTIzMTA5MzA3MWMzMDc3YTVmKQorLS0tCisgTkVXUyAgICAgICAg ICAgICAgICAgICAgICAgfCAgMSArCisgaWNvbnYvZ2NvbnZfcGFyc2Vjb25mZGlyLmggfCAxNiAr KysrKysrKy0tLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDggZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXggNWI0NzUzNDE2Zi4u ZWFiODgyOTg3YiAxMDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BAIC0yNiw2ICsyNiw3 IEBAIFRoZSBmb2xsb3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6Cisg ICBbMjk0OTBdIGFscGhhOiBOZXcgX19icmtfY2FsbCBpbXBsZW1lbnRhdGlvbiBpcyBicm9rZW4K KyAgIFsyOTUyOF0gZWxmOiBDYWxsIF9fbGliY19lYXJseV9pbml0IGZvciByZXVzZWQgbmFtZXNw YWNlcworICAgWzI5NTM5XSBsaWJjOiBMRF9UUkFDRV9MT0FERURfT0JKRUNUUyBjaGFuZ2VkIGhv dyB2RFNPIGxpYnJhcnkgYXJlCisrICBbMjk1ODNdIFVzZSA2NC1iaXQgaW50ZXJmYWNlcyBpbiBn Y29udl9wYXJzZWNvbmZkaXIKKyAMCisgVmVyc2lvbiAyLjM2CisgCitkaWZmIC0tZ2l0IGEvaWNv bnYvZ2NvbnZfcGFyc2Vjb25mZGlyLmggYi9pY29udi9nY29udl9wYXJzZWNvbmZkaXIuaAoraW5k ZXggZGViYjk2YjMyMi4uYjcyOTMzYjUyNiAxMDA2NDQKKy0tLSBhL2ljb252L2djb252X3BhcnNl Y29uZmRpci5oCisrKysgYi9pY29udi9nY29udl9wYXJzZWNvbmZkaXIuaAorQEAgLTI5LDE0ICsy OSwxNCBAQAorICMgZGVmaW5lIGlzc3BhY2UoX19jKSBfX2lzc3BhY2VfbCAoKF9fYyksIF9ubF9D X2xvY29ial9wdHIpCisgIyBkZWZpbmUgYXNwcmludGYgX19hc3ByaW50ZgorICMgZGVmaW5lIG9w ZW5kaXIgX19vcGVuZGlyCistIyBkZWZpbmUgcmVhZGRpciBfX3JlYWRkaXIKKysjIGRlZmluZSBy ZWFkZGlyNjQgX19yZWFkZGlyNjQKKyAjIGRlZmluZSBjbG9zZWRpciBfX2Nsb3NlZGlyCisgIyBk ZWZpbmUgbWVtcGNweSBfX21lbXBjcHkKKy0jIGRlZmluZSBzdHJ1Y3Rfc3RhdCBzdHJ1Y3QgX19z dGF0NjRfdDY0CistIyBkZWZpbmUgbHN0YXQgX19sc3RhdDY0X3RpbWU2NAorKyMgZGVmaW5lIHN0 cnVjdF9zdGF0NjQgc3RydWN0IF9fc3RhdDY0X3Q2NAorKyMgZGVmaW5lIGxzdGF0NjQgX19sc3Rh dDY0X3RpbWU2NAorICMgZGVmaW5lIGZlb2ZfdW5sb2NrZWQgX19mZW9mX3VubG9ja2VkCisgI2Vs c2UKKy0jIGRlZmluZSBzdHJ1Y3Rfc3RhdCBzdHJ1Y3Qgc3RhdAorKyMgZGVmaW5lIHN0cnVjdF9z dGF0NjQgc3RydWN0IHN0YXQ2NAorICNlbmRpZgorIAorIC8qIE5hbWUgb2YgdGhlIGZpbGUgY29u dGFpbmluZyB0aGUgbW9kdWxlIGluZm9ybWF0aW9uIGluIHRoZSBkaXJlY3RvcmllcworQEAgLTE0 OCw4ICsxNDgsOCBAQCBnY29udl9wYXJzZWNvbmZkaXIgKGNvbnN0IGNoYXIgKnByZWZpeCwgY29u c3QgY2hhciAqZGlyLCBzaXplX3QgZGlyX2xlbikKKyAgIERJUiAqY29uZmRpciA9IG9wZW5kaXIg KGJ1Zik7CisgICBpZiAoY29uZmRpciAhPSBOVUxMKQorICAgICB7CistICAgICAgc3RydWN0IGRp cmVudCAqZW50OworLSAgICAgIHdoaWxlICgoZW50ID0gcmVhZGRpciAoY29uZmRpcikpICE9IE5V TEwpCisrICAgICAgc3RydWN0IGRpcmVudDY0ICplbnQ7CisrICAgICAgd2hpbGUgKChlbnQgPSBy ZWFkZGlyNjQgKGNvbmZkaXIpKSAhPSBOVUxMKQorIAl7CisgCSAgaWYgKGVudC0+ZF90eXBlICE9 IERUX1JFRyAmJiBlbnQtPmRfdHlwZSAhPSBEVF9VTktOT1dOKQorIAkgICAgY29udGludWU7CitA QCAtMTYxLDEyICsxNjEsMTIgQEAgZ2NvbnZfcGFyc2Vjb25mZGlyIChjb25zdCBjaGFyICpwcmVm aXgsIGNvbnN0IGNoYXIgKmRpciwgc2l6ZV90IGRpcl9sZW4pCisgCSAgICAgICYmIHN0cmNtcCAo ZW50LT5kX25hbWUgKyBsZW4gLSBzdHJsZW4gKHN1ZmZpeCksIHN1ZmZpeCkgPT0gMCkKKyAJICAg IHsKKyAJICAgICAgY2hhciAqY29uZjsKKy0JICAgICAgc3RydWN0X3N0YXQgc3Q7CisrCSAgICAg IHN0cnVjdF9zdGF0NjQgc3Q7CisgCSAgICAgIGlmIChhc3ByaW50ZiAoJmNvbmYsICIlcy8lcyIs IGJ1ZiwgZW50LT5kX25hbWUpIDwgMCkKKyAJCWNvbnRpbnVlOworIAorIAkgICAgICBpZiAoZW50 LT5kX3R5cGUgIT0gRFRfVU5LTk9XTgorLQkJICB8fCAobHN0YXQgKGNvbmYsICZzdCkgIT0gLTEg JiYgU19JU1JFRyAoc3Quc3RfbW9kZSkpKQorKwkJICB8fCAobHN0YXQ2NCAoY29uZiwgJnN0KSAh PSAtMSAmJiBTX0lTUkVHIChzdC5zdF9tb2RlKSkpCisgCQlmb3VuZCB8PSByZWFkX2NvbmZfZmls ZSAoY29uZiwgZGlyLCBkaXJfbGVuKTsKKyAKKyAJICAgICAgZnJlZSAoY29uZik7CistLSAKKzIu MzguMQorCisKK0Zyb20gMjYyODUwMGY1ZGZmMWRkOTljNDlhMDliNDE4YjNiMWVhM2E2YjVkMyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFkaGVtZXJ2YWwgWmFuZWxsYSA8YWRoZW1l cnZhbC56YW5lbGxhQGxpbmFyby5vcmc+CitEYXRlOiBUdWUsIDMwIEF1ZyAyMDIyIDEwOjMzOjE1 IC0wMzAwCitTdWJqZWN0OiBtNjhrOiBFbmZvcmNlIDQtYnl0ZSBhbGlnbm1lbnQgb24gaW50ZXJu YWwgbG9ja3MgKEJaICMyOTUzNykKKworQSBuZXcgaW50ZXJuYWwgZGVmaW5pdGlvbiwgX19MSUJD X0xPQ0tfQUxJR05NRU5ULCBpcyB1c2VkIHRvIGZvcmNlCit0aGUgNC1ieXRlIGFsaWdubWVudCBv bmx5IGZvciBtNjhrLCBvdGhlciBhcmNoaXRlY3R1cmUga2VlcCB0aGUKK25hdHVyYWwgYWxpZ25t ZW50IG9mIHRoZSB0eXBlIHVzZWQgaW50ZXJuYWxseSAoYW5kIGhwcGEgZG9lcyBub3QKK3JlcXVp cmUgMTYtYnl0ZSBhbGlnbm1lbnQgZm9yIGtlcm5lbC1hc3Npc3RlZCBDQVMpLgorCitSZXZpZXdl ZC1ieTogRmxvcmlhbiBXZWltZXIgPGZ3ZWltZXJAcmVkaGF0LmNvbT4KKyhjaGVycnkgcGlja2Vk IGZyb20gY29tbWl0IGFlYjRkMmU5ODE1ZDQ1OWUyNjQwYTMxZjVhYmI4ZWY4MDM4MzAxMDcpCist LS0KKyBORVdTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSAr Cisgc3lzZGVwcy9nZW5lcmljL2xpYmMtbG9jay1hcmNoLmggICAgICAgICAgICAgIHwgMjUgKysr KysrKysrKysrKysrKysrKworIHN5c2RlcHMvbnB0bC9saWJjLWxvY2suaCAgICAgICAgICAgICAg ICAgICAgICB8ICA4ICsrKysrLQorIHN5c2RlcHMvbnB0bC9saWJjLWxvY2tQLmggICAgICAgICAg ICAgICAgICAgICB8ICAzICsrLQorIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvbGliYy1s b2NrLWFyY2guaCB8IDI1ICsrKysrKysrKysrKysrKysrKysKKyA1IGZpbGVzIGNoYW5nZWQsIDYw IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2Rl cHMvZ2VuZXJpYy9saWJjLWxvY2stYXJjaC5oCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMv dW5peC9zeXN2L2xpbnV4L202OGsvbGliYy1sb2NrLWFyY2guaAorCitkaWZmIC0tZ2l0IGEvTkVX UyBiL05FV1MKK2luZGV4IGVhYjg4Mjk4N2IuLjFjYzlhMTZiYmYgMTAwNjQ0CistLS0gYS9ORVdT CisrKysgYi9ORVdTCitAQCAtMjUsNiArMjUsNyBAQCBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJl c29sdmVkIHdpdGggdGhpcyByZWxlYXNlOgorICAgWzI5NDg1XSBMaW51eDogVGVybWluYXRlIHN1 YnByb2Nlc3Mgb24gbGF0ZSBmYWlsdXJlIGluIHRzdC1waWRmZAorICAgWzI5NDkwXSBhbHBoYTog TmV3IF9fYnJrX2NhbGwgaW1wbGVtZW50YXRpb24gaXMgYnJva2VuCisgICBbMjk1MjhdIGVsZjog Q2FsbCBfX2xpYmNfZWFybHlfaW5pdCBmb3IgcmV1c2VkIG5hbWVzcGFjZXMKKysgIFsyOTUzN10g bGliYzogWzIuMzQgcmVncmVzc2lvbl06IEFsaWdubWVudCBpc3N1ZSBvbiBtNjhrIHdoZW4gdXNp bmcKKyAgIFsyOTUzOV0gbGliYzogTERfVFJBQ0VfTE9BREVEX09CSkVDVFMgY2hhbmdlZCBob3cg dkRTTyBsaWJyYXJ5IGFyZQorICAgWzI5NTgzXSBVc2UgNjQtYml0IGludGVyZmFjZXMgaW4gZ2Nv bnZfcGFyc2Vjb25mZGlyCisgDAorZGlmZiAtLWdpdCBhL3N5c2RlcHMvZ2VuZXJpYy9saWJjLWxv Y2stYXJjaC5oIGIvc3lzZGVwcy9nZW5lcmljL2xpYmMtbG9jay1hcmNoLmgKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwLi40NzEzYjMwYThhCistLS0gL2Rldi9udWxsCisr KysgYi9zeXNkZXBzL2dlbmVyaWMvbGliYy1sb2NrLWFyY2guaAorQEAgLTAsMCArMSwyNSBAQAor Ky8qIFByaXZhdGUgbGliYy1pbnRlcm5hbCBhcmNoLXNwZWNpZmljIGRlZmluaXRpb25zLiAgR2Vu ZXJpYyB2ZXJzaW9uLgorKyAgIENvcHlyaWdodCAoQykgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4K KysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKysgICBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZQorKyAg IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGlj ZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M SUIuICBJZgorKyAgIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAq LworKworKyNpZm5kZWYgX0xJQkNfTE9DS19BUkNIX0gKKysjZGVmaW5lIF9MSUJDX0xPQ0tfQVJD SF9ICisrCisrLyogVGhlIGRlZmF1bHQgZGVmaW5pdGlvbiB1c2VzIHRoZSBuYXR1cmFsIGFsaWdu bWVudCBmcm9tIHRoZSBsb2NrIHR5cGUuICAqLworKyNkZWZpbmUgX19MSUJDX0xPQ0tfQUxJR05N RU5UCisrCisrI2VuZGlmCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy9ucHRsL2xpYmMtbG9jay5oIGIv c3lzZGVwcy9ucHRsL2xpYmMtbG9jay5oCitpbmRleCA1YWY0NzZjNDhiLi42M2IzZjNkNzVjIDEw MDY0NAorLS0tIGEvc3lzZGVwcy9ucHRsL2xpYmMtbG9jay5oCisrKysgYi9zeXNkZXBzL25wdGwv bGliYy1sb2NrLmgKK0BAIC0yMiw2ICsyMiw3IEBACisgI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyAj ZGVmaW5lIF9fbmVlZF9OVUxMCisgI2luY2x1ZGUgPHN0ZGRlZi5oPgorKyNpbmNsdWRlIDxsaWJj LWxvY2stYXJjaC5oPgorIAorIAorIC8qIE11dGV4IHR5cGUuICAqLworQEAgLTI5LDcgKzMwLDEy IEBACisgIyBpZiAoIUlTX0lOIChsaWJjKSAmJiAhSVNfSU4gKGxpYnB0aHJlYWQpKSB8fCAhZGVm aW5lZCBfTElCQworIHR5cGVkZWYgc3RydWN0IHsgcHRocmVhZF9tdXRleF90IG11dGV4OyB9IF9f bGliY19sb2NrX3JlY3Vyc2l2ZV90OworICMgZWxzZQorLXR5cGVkZWYgc3RydWN0IHsgaW50IGxv Y2s7IGludCBjbnQ7IHZvaWQgKm93bmVyOyB9IF9fbGliY19sb2NrX3JlY3Vyc2l2ZV90OworK3R5 cGVkZWYgc3RydWN0CisreworKyAgaW50IGxvY2sgX19MSUJDX0xPQ0tfQUxJR05NRU5UOworKyAg aW50IGNudDsKKysgIHZvaWQgKm93bmVyOworK30gX19saWJjX2xvY2tfcmVjdXJzaXZlX3Q7Cisg IyBlbmRpZgorICNlbHNlCisgdHlwZWRlZiBzdHJ1Y3QgX19saWJjX2xvY2tfcmVjdXJzaXZlX29w YXF1ZV9fIF9fbGliY19sb2NrX3JlY3Vyc2l2ZV90OworZGlmZiAtLWdpdCBhL3N5c2RlcHMvbnB0 bC9saWJjLWxvY2tQLmggYi9zeXNkZXBzL25wdGwvbGliYy1sb2NrUC5oCitpbmRleCBkM2E2ODM3 ZmQyLi40MjVmNTE0YzVjIDEwMDY0NAorLS0tIGEvc3lzZGVwcy9ucHRsL2xpYmMtbG9ja1AuaAor KysrIGIvc3lzZGVwcy9ucHRsL2xpYmMtbG9ja1AuaAorQEAgLTMyLDkgKzMyLDEwIEBACisgICAg bGQuc28gbWlnaHQgYmUgdXNlZCBvbiBvbGQga2VybmVscyB3aXRoIGEgZGlmZmVyZW50IGxpYmMu c28uICAqLworICNpbmNsdWRlIDxsb3dsZXZlbGxvY2suaD4KKyAjaW5jbHVkZSA8dGxzLmg+Cisr I2luY2x1ZGUgPGxpYmMtbG9jay1hcmNoLmg+CisgCisgLyogTXV0ZXggdHlwZS4gICovCistdHlw ZWRlZiBpbnQgX19saWJjX2xvY2tfdDsKKyt0eXBlZGVmIGludCBfX2xpYmNfbG9ja190IF9fTElC Q19MT0NLX0FMSUdOTUVOVDsKKyB0eXBlZGVmIHN0cnVjdCB7IHB0aHJlYWRfbXV0ZXhfdCBtdXRl eDsgfSBfX3J0bGRfbG9ja19yZWN1cnNpdmVfdDsKKyB0eXBlZGVmIHB0aHJlYWRfcndsb2NrX3Qg X19saWJjX3J3bG9ja190OworIAorZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4 L202OGsvbGliYy1sb2NrLWFyY2guaCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202OGsvbGli Yy1sb2NrLWFyY2guaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAuLjE4 NDRiYmFmNmYKKy0tLSAvZGV2L251bGwKKysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L202 OGsvbGliYy1sb2NrLWFyY2guaAorQEAgLTAsMCArMSwyNSBAQAorKy8qIFByaXZhdGUgbGliYy1p bnRlcm5hbCBhcmNoLXNwZWNpZmljIGRlZmluaXRpb25zLiAgbTY4ayB2ZXJzaW9uLgorKyAgIENv cHlyaWdodCAoQykgMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlz IGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysKKysgICBUaGUgR05VIEMgTGli cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysg ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMKKysgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZQorKyAgIExpY2Vuc2UsIG9yIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBH TlUgQyBMaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZgorKyAgIG5vdCwgc2Vl IDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgX0xJQkNf TE9DS19BUkNIX0gKKysjZGVmaW5lIF9MSUJDX0xPQ0tfQVJDSF9ICisrCisrLyogTGludXggZW5m b3JjZXMgNC1ieXRlcyBhbGlnbm1lbnQgb24gZnV0ZXggaW5wdXRzLiAgKi8KKysjZGVmaW5lIF9f TElCQ19MT0NLX0FMSUdOTUVOVCBfX2F0dHJpYnV0ZV9fICgoX19hbGlnbmVkX18gKDQpKSkKKysK KysjZW5kaWYKKy0tIAorMi4zOC4xCisKKworRnJvbSAyMjdjOTAzNTg3MmZjOWU5ZTJjZjU2ZWM4 Zjg5MjE5NzQ3ZWUxOWJjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9x P0o9QzM9QjZyZz0yMFNvbm5lbmJlcmdlcj89IDxqb2VyZ0BiZWMuZGU+CitEYXRlOiBNb24sIDI2 IFNlcCAyMDIyIDEzOjU5OjE2IC0wNDAwCitTdWJqZWN0OiBnZXRfbnNjZF9hZGRyZXNzZXM6IEZp eCBzdWJzY3JpcHQgdHlwb3MgW0JaICMyOTYwNV0KKworRml4IHRoZSBzdWJzY3JpcHQgb24gYWly LT5mYW1pbHksIHdoaWNoIHdhcyBhY2NpZGVudGFsbHkgc2V0IHRvIENPVU5UCit3aGVuIGl0IHNo b3VsZCBoYXZlIHJlbWFpbmVkIGFzIEkuCisKK1Jlc29sdmVzOiBCWiAjMjk2MDUKKworUmV2aWV3 ZWQtYnk6IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhlc2hAc291cmNld2FyZS5vcmc+CisoY2hl cnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBjOTIyNmMwM2RhMDI3NjU5M2EwOTE4ZWFhOWExNDgzNTE4 MzM0M2U4KQorLS0tCisgc3lzZGVwcy9wb3NpeC9nZXRhZGRyaW5mby5jIHwgNiArKystLS0KKyAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0t Z2l0IGEvc3lzZGVwcy9wb3NpeC9nZXRhZGRyaW5mby5jIGIvc3lzZGVwcy9wb3NpeC9nZXRhZGRy aW5mby5jCitpbmRleCBiY2ZmOTA5YjJmLi41Y2RhOWJiMDcyIDEwMDY0NAorLS0tIGEvc3lzZGVw cy9wb3NpeC9nZXRhZGRyaW5mby5jCisrKysgYi9zeXNkZXBzL3Bvc2l4L2dldGFkZHJpbmZvLmMK K0BAIC01NDAsMTEgKzU0MCwxMSBAQCBnZXRfbnNjZF9hZGRyZXNzZXMgKGNvbnN0IGNoYXIgKm5h bWUsIGNvbnN0IHN0cnVjdCBhZGRyaW5mbyAqcmVxLAorIAkgIGF0W2NvdW50XS5hZGRyWzJdID0g aHRvbmwgKDB4ZmZmZik7CisgCX0KKyAgICAgICBlbHNlIGlmIChyZXEtPmFpX2ZhbWlseSA9PSBB Rl9VTlNQRUMKKy0JICAgICAgIHx8IGFpci0+ZmFtaWx5W2NvdW50XSA9PSByZXEtPmFpX2ZhbWls eSkKKysJICAgICAgIHx8IGFpci0+ZmFtaWx5W2ldID09IHJlcS0+YWlfZmFtaWx5KQorIAl7Cist CSAgYXRbY291bnRdLmZhbWlseSA9IGFpci0+ZmFtaWx5W2NvdW50XTsKKysJICBhdFtjb3VudF0u ZmFtaWx5ID0gYWlyLT5mYW1pbHlbaV07CisgCSAgbWVtY3B5IChhdFtjb3VudF0uYWRkciwgYWRk cnMsIHNpemUpOworLQkgIGlmIChhaXItPmZhbWlseVtjb3VudF0gPT0gQUZfSU5FVDYpCisrCSAg aWYgKGFpci0+ZmFtaWx5W2ldID09IEFGX0lORVQ2KQorIAkgICAgcmVzLT5nb3RfaXB2NiA9IHRy dWU7CisgCX0KKyAgICAgICBhdFtjb3VudF0ubmV4dCA9IGF0ICsgY291bnQgKyAxOworLS0gCisy LjM4LjEKKworCitGcm9tIDc2ZTA1NjEzZWUyOGY0YWM0YTBhYjk3ZWZmYzMyZTBlNzhlMzdhNTYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBZGhlbWVydmFsIFphbmVsbGEgPGFkaGVt ZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorRGF0ZTogVGh1LCAyOSBTZXAgMjAyMiAxNjoxNToy MCAtMDMwMAorU3ViamVjdDogc3RkbGliOiBGaXggX19nZXRyYW5kb21fbm9jYW5jZWwgdHlwZSBh bmQgYXJjNHJhbmRvbSB1c2FnZSAoQloKKyAjMjk2MzgpCisKK1VzaW5nIGFuIHVuc2lnbmVkIHR5 cGUgcHJldmVudHMgdGhlIGZhbGxiYWNrIHRvIGJlIHVzZWQgaWYga2VybmVsCitkb2VzIG5vdCBz dXBwb3J0IGdldHJhbmRvbSBzeXNjYWxsLgorCitDaGVja2VkIG9uIHg4Nl82NC1saW51eC1nbnUu CisKK1Jldmlld2VkLWJ5OiBXaWxjbyBEaWprc3RyYSAgPFdpbGNvLkRpamtzdHJhQGFybS5jb20+ CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAxM2RiOWVlMmNiM2I3N2UyNWY4NTJiZTdkNjk1 Mjg4MmUxYmU2ZjAwKQorLS0tCisgTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMSArCisgc3RkbGliL2FyYzRyYW5kb20uYyAgICAgICAgICAgICAgICAgIHwgMiArLQorIHN5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L25vdC1jYW5jZWwuaCB8IDIgKy0KKyAzIGZpbGVzIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL05FV1Mg Yi9ORVdTCitpbmRleCAxY2M5YTE2YmJmLi45MWJjZmViN2E2IDEwMDY0NAorLS0tIGEvTkVXUwor KysrIGIvTkVXUworQEAgLTI4LDYgKzI4LDcgQEAgVGhlIGZvbGxvd2luZyBidWdzIGFyZSByZXNv bHZlZCB3aXRoIHRoaXMgcmVsZWFzZToKKyAgIFsyOTUzN10gbGliYzogWzIuMzQgcmVncmVzc2lv bl06IEFsaWdubWVudCBpc3N1ZSBvbiBtNjhrIHdoZW4gdXNpbmcKKyAgIFsyOTUzOV0gbGliYzog TERfVFJBQ0VfTE9BREVEX09CSkVDVFMgY2hhbmdlZCBob3cgdkRTTyBsaWJyYXJ5IGFyZQorICAg WzI5NTgzXSBVc2UgNjQtYml0IGludGVyZmFjZXMgaW4gZ2NvbnZfcGFyc2Vjb25mZGlyCisrICBb Mjk2MzhdIGxpYmM6IHN0ZGxpYjogYXJjNHJhbmRvbSBmYWxsYmFjayBpcyBuZXZlciB1c2VkCisg DAorIFZlcnNpb24gMi4zNgorIAorZGlmZiAtLWdpdCBhL3N0ZGxpYi9hcmM0cmFuZG9tLmMgYi9z dGRsaWIvYXJjNHJhbmRvbS5jCitpbmRleCBlNDE3ZWY2MjRkLi45NjBhMzhmMjk1IDEwMDY0NAor LS0tIGEvc3RkbGliL2FyYzRyYW5kb20uYworKysrIGIvc3RkbGliL2FyYzRyYW5kb20uYworQEAg LTM0LDcgKzM0LDcgQEAgdm9pZAorIF9fYXJjNHJhbmRvbV9idWYgKHZvaWQgKnAsIHNpemVfdCBu KQorIHsKKyAgIHN0YXRpYyBpbnQgc2Vlbl9pbml0aWFsaXplZDsKKy0gIHNpemVfdCBsOworKyAg c3NpemVfdCBsOworICAgaW50IGZkOworIAorICAgaWYgKG4gPT0gMCkKK2RpZmYgLS1naXQgYS9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9ub3QtY2FuY2VsLmggYi9zeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9ub3QtY2FuY2VsLmgKK2luZGV4IGEyNjNkMjk0YjEuLmNmMzVjOGJmYzkgMTAwNjQ0Cist LS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9ub3QtY2FuY2VsLmgKKysrKyBiL3N5c2RlcHMv dW5peC9zeXN2L2xpbnV4L25vdC1jYW5jZWwuaAorQEAgLTY4LDcgKzY4LDcgQEAgX193cml0ZXZf bm9jYW5jZWxfbm9zdGF0dXMgKGludCBmZCwgY29uc3Qgc3RydWN0IGlvdmVjICppb3YsIGludCBp b3ZjbnQpCisgICBJTlRFUk5BTF9TWVNDQUxMX0NBTEwgKHdyaXRldiwgZmQsIGlvdiwgaW92Y250 KTsKKyB9CisgCistc3RhdGljIGlubGluZSBpbnQKKytzdGF0aWMgaW5saW5lIHNzaXplX3QKKyBf X2dldHJhbmRvbV9ub2NhbmNlbCAodm9pZCAqYnVmLCBzaXplX3QgYnVmbGVuLCB1bnNpZ25lZCBp bnQgZmxhZ3MpCisgeworICAgcmV0dXJuIElOTElORV9TWVNDQUxMX0NBTEwgKGdldHJhbmRvbSwg YnVmLCBidWZsZW4sIGZsYWdzKTsKKy0tIAorMi4zOC4xCisKKworRnJvbSBkMWQ4Mzc5YmZmMzRm MDJmODZmODJkYjJjZWY1YmY2Njc0NmQzNTYwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogSm9obiBEYXZpZCBBbmdsaW4gPGRhbmdsaW5AZ2NjLmdudS5vcmc+CitEYXRlOiBTYXQsIDEg T2N0IDIwMjIgMTk6NDk6MjUgKzAwMDAKK1N1YmplY3Q6IGhwcGE6IEZpeCBpbml0aWFsaXphdGlv biBvZiBkcCByZWdpc3RlciBbQlogMjk2MzVdCisKK0FmdGVyIHVwZ3JhZGluZyBnbGliYyB0byBE ZWJpYW4gMi4zNS0xLCBnZGIgZmF1bHRlZCBvbgorc3RhcnR1cCBhbmQgZHJvcHBlZCBjb3JlIGlu IGEgZnVuY3Rpb24gY2FsbCBpbiB0aGUgbWFpbgorYXBwbGljYXRpb24uICBUaGlzIHdhcyBjYXVz ZWQgYnkgbm90IGluaXRpYWxpemluZyB0aGUKK2dsb2JhbCBkcCByZWdpc3RlciBmb3IgdGhlIG1h aW4gYXBwbGljYXRpb24gZWFybHkgZW5vdWdoLgorCitSZXN0b3JlIHRoZSBjb2RlIHRvIGluaXRp YWxpemUgZHAgaW4gX2RsX3N0YXJ0X3VzZXIuCitJdCB3YXMgcmVtb3ZlZCB3aGVuIGNvZGUgd2Fz IGFkZGVkIHRvIGluaXRpYWxpemUgZHAgaW4KK2VsZl9tYWNoaW5lX3J1bnRpbWVfc2V0dXAuCisK K1NpZ25lZC1vZmYtYnk6IEpvaG4gRGF2aWQgQW5nbGluIDxkYXZlLmFuZ2xpbkBiZWxsLm5ldD4K Ky0tLQorIHN5c2RlcHMvaHBwYS9kbC1tYWNoaW5lLmggfCAyNCArKysrKysrKysrKysrKysrKysr LS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL3N5c2RlcHMvaHBwYS9kbC1tYWNoaW5lLmggYi9zeXNkZXBzL2hwcGEv ZGwtbWFjaGluZS5oCitpbmRleCBjODY1NzEzYmUxLi4xZDUxOTQ4NTY2IDEwMDY0NAorLS0tIGEv c3lzZGVwcy9ocHBhL2RsLW1hY2hpbmUuaAorKysrIGIvc3lzZGVwcy9ocHBhL2RsLW1hY2hpbmUu aAorQEAgLTM0Nyw2ICszNDcsMTYgQEAgZWxmX21hY2hpbmVfcnVudGltZV9zZXR1cCAoc3RydWN0 IGxpbmtfbWFwICpsLCBzdHJ1Y3Qgcl9zY29wZV9lbGVtICpzY29wZVtdLAorICAgIGl0cyByZXR1 cm4gdmFsdWUgaXMgdGhlIHVzZXIgcHJvZ3JhbSdzIGVudHJ5IHBvaW50LiAgKi8KKyAKKyAjZGVm aW5lIFJUTERfU1RBUlQgXAorKy8qIFNldCB1cCBkcCBmb3IgYW55IG5vbi1QSUMgbGliIGNvbnN0 cnVjdG9ycyB0aGF0IG1heSBiZSBjYWxsZWQuICAqLwlcCisrc3RhdGljIHN0cnVjdCBsaW5rX21h cCAqIF9fYXR0cmlidXRlX18oKHVzZWQpKQkJCQlcCisrc2V0X2RwIChzdHJ1Y3QgbGlua19tYXAg Km1hcCkJCQkJCQlcCisrewkJCQkJCQkJCVwKKysgIHJlZ2lzdGVyIEVsZjMyX0FkZHIgZHAgYXNt ICgiJXIyNyIpOwkJCQkJXAorKyAgZHAgPSBEX1BUUiAobWFwLCBsX2luZm9bRFRfUExUR09UXSk7 CQkJCQlcCisrICBhc20gdm9sYXRpbGUgKCIiIDogOiAiciIgKGRwKSk7CQkJCQlcCisrICByZXR1 cm4gbWFwOwkJCQkJCQkJXAorK30JCQkJCQkJCQlcCisrCQkJCQkJCQkJXAorIGFzbSAoCQkJCQkJ CQkJXAorICIJLnRleHRcbiIJCQkJCQkJXAorICIJLmdsb2JsIF9zdGFydFxuIgkJCQkJCVwKK0BA IC00MjYsNiArNDM2LDEzIEBAIGFzbSAoCQkJCQkJCQkJXAorIAkgICBkaXJlY3QgbG9hZGVyIGlu dm9jYXRpb24uICBUaHVzLCBhcmdjIGFuZCBhcmd2IG11c3QgYmUJXAorIAkgICByZWxvYWRlZCBm cm9tIGZyb20gX2RsX2FyZ2MgYW5kIF9kbF9hcmd2LiAgKi8JCVwKKyAJCQkJCQkJCQlcCisrCS8q IExvYWQgbWFpbl9tYXAgZnJvbSBfcnRsZF9sb2NhbCBhbmQgc2V0dXAgZHAuICovCQlcCisrIglh ZGRpbAlMVCdfcnRsZF9sb2NhbCwlcjE5XG4iCQkJCQlcCisrIglsZHcJUlQnX3J0bGRfbG9jYWwo JXIxKSwlcjI2XG4iCQkJCVwKKysiCWJsCXNldF9kcCwgJXIyXG4iCQkJCQkJXAorKyIJbGR3CTAo JXIyNiksJXIyNlxuIgkJCQkJCVwKKysiCWNvcHkJJXJldDAsJXIyNlxuIgkJCQkJCVwKKysJCQkJ CQkJCQlcCisgCS8qIExvYWQgYXJnYyBmcm9tIF9kbF9hcmdjLiAgKi8JCQkJCVwKKyAiCWFkZGls CUxUJ19kbF9hcmdjLCVyMTlcbiIJCQkJCVwKKyAiCWxkdwlSVCdfZGxfYXJnYyglcjEpLCVyMjBc biIJCQkJXAorQEAgLTQzOCwxMyArNDU1LDEwIEBAIGFzbSAoCQkJCQkJCQkJXAorICIJbGR3CTAo JXIyMCksJXIyNFxuIgkJCQkJCVwKKyAiCXN0dwklcjI0LC00NCglc3ApXG4iCQkJCQlcCisgCQkJ CQkJCQkJXAorLQkvKiBDYWxsIF9kbF9pbml0KG1haW5fbWFwLCBhcmdjLCBhcmd2LCBlbnZwKS4g Ki8JCVwKKy0iCWFkZGlsCUxUJ19ydGxkX2xvY2FsLCVyMTlcbiIJCQkJCVwKKy0iCWxkdwlSVCdf cnRsZF9sb2NhbCglcjEpLCVyMjZcbiIJCQkJXAorLSIJbGR3CTAoJXIyNiksJXIyNlxuIgkJCQkJ CVwKKy0JCQkJCQkJCQlcCisgCS8qIGVudnAgPSBhcmd2ICsgYXJnYyArIDEgKi8JCQkJCVwKKyAi CXNoMmFkZAklcjI1LCVyMjQsJXIyM1xuIgkJCQkJXAorKwkJCQkJCQkJCVwKKysJLyogQ2FsbCBf ZGxfaW5pdChtYWluX21hcCwgYXJnYywgYXJndiwgZW52cCkuICovCQlcCisgIglibAlfZGxfaW5p dCwlcjJcbiIJCQkJCQlcCisgIglsZG8JNCglcjIzKSwlcjIzXG4iCS8qIGRlbGF5IHNsb3QgKi8J CQlcCisgCQkJCQkJCQkJXAorLS0gCisyLjM4LjEKKworCitGcm9tIGNkYzQ5NmViNTVlMzBmOGYy NDYxYmVkYjBhNzM4MWMwYTdhM2QzYWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBK b2huIERhdmlkIEFuZ2xpbiA8ZGFuZ2xpbkBnY2MuZ251Lm9yZz4KK0RhdGU6IFR1ZSwgMjAgU2Vw IDIwMjIgMjA6MTQ6MTQgKzAwMDAKK1N1YmplY3Q6IGhwcGE6IHVuZGVmIF9fQVNTVU1FX1NFVF9S T0JVU1RfTElTVAorCitRRU1VIGRvZXMgbm90IHN1cHBvcnQgc3VwcG9ydCBzZXRfcm9idXN0X2xp c3QuIFRodXMsIHdlIG5lZWQKK3RvIGVuYWJsZSBkZXRlY3Rpb24gb2Ygc2V0X3JvYnVzdF9saXN0 IHN5c3RlbSBjYWxsLgorCitTaWduZWQtb2ZmLWJ5OiBKb2huIERhdmlkIEFuZ2xpbiA8ZGF2ZS5h bmdsaW5AYmVsbC5uZXQ+CistLS0KKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9ocHBhL2tlcm5l bC1mZWF0dXJlcy5oIHwgMyArKysKKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCisK K2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9ocHBhL2tlcm5lbC1mZWF0dXJl cy5oIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvaHBwYS9rZXJuZWwtZmVhdHVyZXMuaAoraW5k ZXggMGNkMjFlZjBmYS4uMDc5NjEyZTRhYSAxMDA2NDQKKy0tLSBhL3N5c2RlcHMvdW5peC9zeXN2 L2xpbnV4L2hwcGEva2VybmVsLWZlYXR1cmVzLmgKKysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xp bnV4L2hwcGEva2VybmVsLWZlYXR1cmVzLmgKK0BAIC0zMCwzICszMCw2IEBACisgCisgI3VuZGVm IF9fQVNTVU1FX0NMT05FX0RFRkFVTFQKKyAjZGVmaW5lIF9fQVNTVU1FX0NMT05FX0JBQ0tXQVJE UyAxCisrCisrLyogUUVNVSBkb2VzIG5vdCBzdXBwb3J0IHNldF9yb2J1c3RfbGlzdC4gICovCisr I3VuZGVmIF9fQVNTVU1FX1NFVF9ST0JVU1RfTElTVAorLS0gCisyLjM4LjEKKworCitGcm9tIDE4 YmVjMjNjYmI0ZDUzMGEyYThjZTk1MzUzNzcwNjYxZmFiY2Q1NWYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+CitEYXRl OiBNb24sIDMgT2N0IDIwMjIgMjM6NDY6MTEgKzAyMDAKK1N1YmplY3Q6IHg4NjogaW5jbHVkZSBC TUkxIGFuZCBCTUkyIGluIHg4Ni02NC12MyBsZXZlbAorCitUaGUgIlN5c3RlbSBWIEFwcGxpY2F0 aW9uIEJpbmFyeSBJbnRlcmZhY2UgQU1ENjQgQXJjaGl0ZWN0dXJlIFByb2Nlc3NvcgorU3VwcGxl bWVudCIgbWFuZGF0ZXMgdGhlIEJNSTEgYW5kIEJNSTIgQ1BVIGZlYXR1cmVzIGZvciB0aGUgeDg2 LTY0LXYzCitsZXZlbC4KKworUmV2aWV3ZWQtYnk6IE5vYWggR29sZHN0ZWluICA8Z29sZHN0ZWlu LncubkBnbWFpbC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBiODBmMTZhZGJkOTc5 ODMxYmYyNWVhNDkxZTEyNjFlODE4ODVjMmI2KQorLS0tCisgc3lzZGVwcy94ODYvZ2V0LWlzYS1s ZXZlbC5oIHwgMiArKworIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKKworZGlmZiAt LWdpdCBhL3N5c2RlcHMveDg2L2dldC1pc2EtbGV2ZWwuaCBiL3N5c2RlcHMveDg2L2dldC1pc2Et bGV2ZWwuaAoraW5kZXggMWFkZTc4YWI3My4uNWI0ZGQ1ZjA2MiAxMDA2NDQKKy0tLSBhL3N5c2Rl cHMveDg2L2dldC1pc2EtbGV2ZWwuaAorKysrIGIvc3lzZGVwcy94ODYvZ2V0LWlzYS1sZXZlbC5o CitAQCAtNDcsNiArNDcsOCBAQCBnZXRfaXNhX2xldmVsIChjb25zdCBzdHJ1Y3QgY3B1X2ZlYXR1 cmVzICpjcHVfZmVhdHVyZXMpCisgCSAgaXNhX2xldmVsIHw9IEdOVV9QUk9QRVJUWV9YODZfSVNB XzFfVjI7CisgCSAgaWYgKENQVV9GRUFUVVJFX1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIEFWWCkK KyAJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgQVZYMikKKysJ ICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgQk1JMSkKKysJICAg ICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgQk1JMikKKyAJICAgICAg JiYgQ1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgRjE2QykKKyAJICAgICAgJiYg Q1BVX0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgRk1BKQorIAkgICAgICAmJiBDUFVf RkVBVFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBMWkNOVCkKKy0tIAorMi4zOC4xCisKKwor RnJvbSA0NjQ3OWU1ZDEwZWQ4NzgyNWFhMjc3ZGExNThkNmE2ODc5NzQ1MThiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogQXVyZWxpZW4gSmFybm8gPGF1cmVsaWVuQGF1cmVsMzIubmV0 PgorRGF0ZTogTW9uLCAzIE9jdCAyMDIyIDIzOjQ2OjExICswMjAwCitTdWJqZWN0OiB4ODYtNjQ6 IFJlcXVpcmUgQk1JMiBmb3IgQVZYMiBzdHIobiljYXNlY21wIGltcGxlbWVudGF0aW9ucworCitU aGUgQVZYMiBzdHIobiljYXNlY21wIGltcGxlbWVudGF0aW9ucyB1c2UgdGhlICdiemhpJyBpbnN0 cnVjdGlvbiwgd2hpY2gKK2JlbG9uZ3MgdG8gdGhlIEJNSTIgQ1BVIGZlYXR1cmUuCisKK05COiBJ dCBhbHNvIHVzZXMgdGhlICd0emNudCcgQk1JMSBpbnN0cnVjdGlvbiwgYnV0IGl0IGlzIGV4ZWN1 dGVkIGFzIEJTRgorYXMgQlNGIGlmIHRoZSBDUFUgZG9lc24ndCBzdXBwb3J0IFRaQ05ULCBhbmQg cHJvZHVjZXMgdGhlIHNhbWUgcmVzdWx0Citmb3Igbm9uLXplcm8gaW5wdXQuCisKK1BhcnRpYWxs eSBmaXhlczogYjc3YjA2ZTBlMjk2ICgieDg2OiBPcHRpbWl6ZSBzdHJjbXAtYXZ4Mi5TIikKK1Bh cnRpYWxseSByZXNvbHZlczogQlogIzI5NjExCisKK1Jldmlld2VkLWJ5OiBOb2FoIEdvbGRzdGVp biAgPGdvbGRzdGVpbi53Lm5AZ21haWwuY29tPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQg MTBmNzlkMzY3MGIwMzY5MjVkYTYzZGM1MzJiMTIyZDI3Y2U2NWZmOCkKKy0tLQorIHN5c2RlcHMv eDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyAgfCAyOCArKysrKysrKysrKysrKyst LS0tLS0KKyBzeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtc3RyY2FzZWNtcC5oIHwgIDEg KworIDIgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKKwor ZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyBi L3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYworaW5kZXggYTcxNDQ0 ZWNjYi4uZDIwOGZhZTRiZiAxMDA2NDQKKy0tLSBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9p ZnVuYy1pbXBsLWxpc3QuYworKysrIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWlt cGwtbGlzdC5jCitAQCAtNDQ4LDEzICs0NDgsMTYgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlzdCAo Y29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCisgICBJRlVO Q19JTVBMIChpLCBuYW1lLCBzdHJjYXNlY21wLAorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERf VjQgKGFycmF5LCBpLCBzdHJjYXNlY21wLAorIAkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUg KEFWWDUxMlZMKQorLQkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkJXKSks CisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYNTEyQlcpCisrCQkJCSAgICAg ICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fc3RyY2FzZWNtcF9l dmV4KQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBzdHJjYXNlY21w LAorLQkJCQkgICAgIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMiksCisrCQkJCSAgICAgKENQVV9G RUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChC TUkyKSksCisgCQkJCSAgICAgX19zdHJjYXNlY21wX2F2eDIpCisgCSAgICAgIFg4Nl9JRlVOQ19J TVBMX0FERF9WMyAoYXJyYXksIGksIHN0cmNhc2VjbXAsCisgCQkJCSAgICAgKENQVV9GRUFUVVJF X1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKQor IAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKFJUTSkpLAorIAkJCQkgICAgIF9fc3Ry Y2FzZWNtcF9hdngyX3J0bSkKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YyIChhcnJheSwg aSwgc3RyY2FzZWNtcCwKK0BAIC00NzAsMTMgKzQ3MywxNiBAQCBfX2xpYmNfaWZ1bmNfaW1wbF9s aXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19pZnVuY19pbXBsICphcnJheSwKKyAg IElGVU5DX0lNUEwgKGksIG5hbWUsIHN0cmNhc2VjbXBfbCwKKyAJICAgICAgWDg2X0lGVU5DX0lN UExfQUREX1Y0IChhcnJheSwgaSwgc3RyY2FzZWNtcCwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVf VVNBQkxFIChBVlg1MTJWTCkKKy0JCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1 MTJCVykpLAorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkJXKQorKwkJ CQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJICAgICBfX3N0cmNh c2VjbXBfbF9ldmV4KQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBz dHJjYXNlY21wLAorLQkJCQkgICAgIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMiksCisrCQkJCSAg ICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVf VVNBQkxFIChCTUkyKSksCisgCQkJCSAgICAgX19zdHJjYXNlY21wX2xfYXZ4MikKKyAJICAgICAg WDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwgc3RyY2FzZWNtcCwKKyAJCQkJICAgICAo Q1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FC TEUgKEJNSTIpCisgCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoUlRNKSksCisgCQkJ CSAgICAgX19zdHJjYXNlY21wX2xfYXZ4Ml9ydG0pCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FE RF9WMiAoYXJyYXksIGksIHN0cmNhc2VjbXBfbCwKK0BAIC02MzgsMTMgKzY0NCwxNiBAQCBfX2xp YmNfaWZ1bmNfaW1wbF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19pZnVuY19p bXBsICphcnJheSwKKyAgIElGVU5DX0lNUEwgKGksIG5hbWUsIHN0cm5jYXNlY21wLAorIAkgICAg ICBYODZfSUZVTkNfSU1QTF9BRERfVjQgKGFycmF5LCBpLCBzdHJuY2FzZWNtcCwKKyAJCQkJICAg ICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJWTCkKKy0JCQkJICAgICAgJiYgQ1BVX0ZFQVRV UkVfVVNBQkxFIChBVlg1MTJCVykpLAorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUg KEFWWDUxMkJXKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJ CQkJICAgICBfX3N0cm5jYXNlY21wX2V2ZXgpCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FERF9W MyAoYXJyYXksIGksIHN0cm5jYXNlY21wLAorLQkJCQkgICAgIENQVV9GRUFUVVJFX1VTQUJMRSAo QVZYMiksCisrCQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAg JiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKSksCisgCQkJCSAgICAgX19zdHJuY2FzZWNtcF9h dngyKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBzdHJuY2FzZWNt cCwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBD UFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpCisgCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJM RSAoUlRNKSksCisgCQkJCSAgICAgX19zdHJuY2FzZWNtcF9hdngyX3J0bSkKKyAJICAgICAgWDg2 X0lGVU5DX0lNUExfQUREX1YyIChhcnJheSwgaSwgc3RybmNhc2VjbXAsCitAQCAtNjYwLDEzICs2 NjksMTYgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlzdCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0 IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCisgICBJRlVOQ19JTVBMIChpLCBuYW1lLCBzdHJuY2Fz ZWNtcF9sLAorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjQgKGFycmF5LCBpLCBzdHJuY2Fz ZWNtcCwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJWTCkKKy0JCQkJICAg ICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJCVykpLAorKwkJCQkgICAgICAmIENQVV9G RUFUVVJFX1VTQUJMRSAoQVZYNTEyQlcpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJM RSAoQk1JMikpLAorIAkJCQkgICAgIF9fc3RybmNhc2VjbXBfbF9ldmV4KQorIAkgICAgICBYODZf SUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBzdHJuY2FzZWNtcCwKKy0JCQkJICAgICBDUFVf RkVBVFVSRV9VU0FCTEUgKEFWWDIpLAorKwkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFW WDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAg IF9fc3RybmNhc2VjbXBfbF9hdngyKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFy cmF5LCBpLCBzdHJuY2FzZWNtcCwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgy KQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpCisgCQkJCSAgICAgICYm IENQVV9GRUFUVVJFX1VTQUJMRSAoUlRNKSksCisgCQkJCSAgICAgX19zdHJuY2FzZWNtcF9sX2F2 eDJfcnRtKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjIgKGFycmF5LCBpLCBzdHJuY2Fz ZWNtcF9sLAorZGlmZiAtLWdpdCBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1zdHJj YXNlY21wLmggYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtc3RyY2FzZWNtcC5oCitp bmRleCA2ODY0NmVmMTk5Li43NjIyYWYyNTljIDEwMDY0NAorLS0tIGEvc3lzZGVwcy94ODZfNjQv bXVsdGlhcmNoL2lmdW5jLXN0cmNhc2VjbXAuaAorKysrIGIvc3lzZGVwcy94ODZfNjQvbXVsdGlh cmNoL2lmdW5jLXN0cmNhc2VjbXAuaAorQEAgLTM0LDYgKzM0LDcgQEAgSUZVTkNfU0VMRUNUT1Ig KHZvaWQpCisgICBjb25zdCBzdHJ1Y3QgY3B1X2ZlYXR1cmVzICpjcHVfZmVhdHVyZXMgPSBfX2dl dF9jcHVfZmVhdHVyZXMgKCk7CisgCisgICBpZiAoWDg2X0lTQV9DUFVfRkVBVFVSRV9VU0FCTEVf UCAoY3B1X2ZlYXR1cmVzLCBBVlgyKQorKyAgICAgICYmIFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNB QkxFX1AgKGNwdV9mZWF0dXJlcywgQk1JMikKKyAgICAgICAmJiBYODZfSVNBX0NQVV9GRUFUVVJF U19BUkNIX1AgKGNwdV9mZWF0dXJlcywKKyAJCQkJICAgICAgQVZYX0Zhc3RfVW5hbGlnbmVkX0xv YWQsICkpCisgICAgIHsKKy0tIAorMi4zOC4xCisKKworRnJvbSA3YWZiZDFlNTZhY2I3MjEwMzFi ZmZkODc2ZjI3NWRjYjFhZjdlNTMwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQXVy ZWxpZW4gSmFybm8gPGF1cmVsaWVuQGF1cmVsMzIubmV0PgorRGF0ZTogTW9uLCAzIE9jdCAyMDIy IDIzOjQ2OjExICswMjAwCitTdWJqZWN0OiB4ODYtNjQ6IFJlcXVpcmUgQk1JMiBmb3IgQVZYMiBz dHJjbXAgaW1wbGVtZW50YXRpb24KKworVGhlIEFWWDIgc3RyY21wIGltcGxlbWVudGF0aW9uIHVz ZXMgdGhlICdiemhpJyBpbnN0cnVjdGlvbiwgd2hpY2gKK2JlbG9uZ3MgdG8gdGhlIEJNSTIgQ1BV IGZlYXR1cmUuCisKK05COiBJdCBhbHNvIHVzZXMgdGhlICd0emNudCcgQk1JMSBpbnN0cnVjdGlv biwgYnV0IGl0IGlzIGV4ZWN1dGVkIGFzIEJTRgorYXMgQlNGIGlmIHRoZSBDUFUgZG9lc24ndCBz dXBwb3J0IFRaQ05ULCBhbmQgcHJvZHVjZXMgdGhlIHNhbWUgcmVzdWx0Citmb3Igbm9uLXplcm8g aW5wdXQuCisKK1BhcnRpYWxseSBmaXhlczogYjc3YjA2ZTBlMjk2ICgieDg2OiBPcHRpbWl6ZSBz dHJjbXAtYXZ4Mi5TIikKK1BhcnRpYWxseSByZXNvbHZlczogQlogIzI5NjExCisKK1Jldmlld2Vk LWJ5OiBOb2FoIEdvbGRzdGVpbiAgPGdvbGRzdGVpbi53Lm5AZ21haWwuY29tPgorKGNoZXJyeSBw aWNrZWQgZnJvbSBjb21taXQgNGQ2NGM2NDQ1NzM1ZTliMzRlMmFjOGUzNjkzMTJjYmZjMmY4OGUx NykKKy0tLQorIHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyB8IDQg KysrLQorIHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9zdHJjbXAuYyAgICAgICAgICB8IDQgKyst LQorIDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jIGIv c3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jCitpbmRleCBkMjA4ZmFl NGJmLi5hNDJiMGE0NjIwIDEwMDY0NAorLS0tIGEvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lm dW5jLWltcGwtbGlzdC5jCisrKysgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1w bC1saXN0LmMKK0BAIC01OTEsMTAgKzU5MSwxMiBAQCBfX2xpYmNfaWZ1bmNfaW1wbF9saXN0IChj b25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19pZnVuY19pbXBsICphcnJheSwKKyAJCQkJICAg ICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKSksCisgCQkJCSAgICAgX19zdHJjbXBfZXZl eCkKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwgc3RyY21wLAorLQkJ CQkgICAgIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMiksCisrCQkJCSAgICAgKENQVV9GRUFUVVJF X1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKSks CisgCQkJCSAgICAgX19zdHJjbXBfYXZ4MikKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1Yz IChhcnJheSwgaSwgc3RyY21wLAorIAkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIp CisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikKKyAJCQkJICAgICAgJiYg Q1BVX0ZFQVRVUkVfVVNBQkxFIChSVE0pKSwKKyAJCQkJICAgICBfX3N0cmNtcF9hdngyX3J0bSkK KyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YyIChhcnJheSwgaSwgc3RyY21wLAorZGlmZiAt LWdpdCBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9zdHJjbXAuYyBiL3N5c2RlcHMveDg2XzY0 L211bHRpYXJjaC9zdHJjbXAuYworaW5kZXggZmRkNWFmZTNhZi4uOWQ2YzlmNjZiYSAxMDA2NDQK Ky0tLSBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9zdHJjbXAuYworKysrIGIvc3lzZGVwcy94 ODZfNjQvbXVsdGlhcmNoL3N0cmNtcC5jCitAQCAtNDUsMTIgKzQ1LDEyIEBAIElGVU5DX1NFTEVD VE9SICh2b2lkKQorICAgY29uc3Qgc3RydWN0IGNwdV9mZWF0dXJlcyAqY3B1X2ZlYXR1cmVzID0g X19nZXRfY3B1X2ZlYXR1cmVzICgpOworIAorICAgaWYgKFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNB QkxFX1AgKGNwdV9mZWF0dXJlcywgQVZYMikKKysgICAgICAmJiBYODZfSVNBX0NQVV9GRUFUVVJF X1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIEJNSTIpCisgICAgICAgJiYgWDg2X0lTQV9DUFVfRkVB VFVSRVNfQVJDSF9QIChjcHVfZmVhdHVyZXMsCisgCQkJCSAgICAgIEFWWF9GYXN0X1VuYWxpZ25l ZF9Mb2FkLCApKQorICAgICB7CisgICAgICAgaWYgKFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNBQkxF X1AgKGNwdV9mZWF0dXJlcywgQVZYNTEyVkwpCistCSAgJiYgWDg2X0lTQV9DUFVfRkVBVFVSRV9V U0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBBVlg1MTJCVykKKy0JICAmJiBYODZfSVNBX0NQVV9GRUFU VVJFX1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIEJNSTIpKQorKwkgICYmIFg4Nl9JU0FfQ1BVX0ZF QVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgQVZYNTEyQlcpKQorIAlyZXR1cm4gT1BUSU1J WkUgKGV2ZXgpOworIAorICAgICAgIGlmIChDUFVfRkVBVFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1 cmVzLCBSVE0pKQorLS0gCisyLjM4LjEKKworCitGcm9tIDI5YzU3N2UwZjU0ZmU2ZTcwY2VhY2Iz NjU5MTc5NzgxYzU1Njk5MDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBdXJlbGll biBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+CitEYXRlOiBNb24sIDMgT2N0IDIwMjIgMjM6 NDY6MTEgKzAyMDAKK1N1YmplY3Q6IHg4Ni02NDogUmVxdWlyZSBCTUkyIGZvciBBVlgyIHN0cm5j bXAgaW1wbGVtZW50YXRpb24KKworVGhlIEFWWDIgc3RybmNtcCBpbXBsZW1lbnRhdGlvbnMgdXNl cyB0aGUgJ2J6aGknIGluc3RydWN0aW9uLCB3aGljaAorYmVsb25ncyB0byB0aGUgQk1JMiBDUFUg ZmVhdHVyZS4KKworTkI6IEl0IGFsc28gdXNlcyB0aGUgJ3R6Y250JyBCTUkxIGluc3RydWN0aW9u LCBidXQgaXQgaXMgZXhlY3V0ZWQgYXMgQlNGCithcyBCU0YgaWYgdGhlIENQVSBkb2Vzbid0IHN1 cHBvcnQgVFpDTlQsIGFuZCBwcm9kdWNlcyB0aGUgc2FtZSByZXN1bHQKK2ZvciBub24temVybyBp bnB1dC4KKworUGFydGlhbGx5IGZpeGVzOiBiNzdiMDZlMGUyOTYgKCJ4ODY6IE9wdGltaXplIHN0 cmNtcC1hdngyLlMiKQorUGFydGlhbGx5IHJlc29sdmVzOiBCWiAjMjk2MTEKKworUmV2aWV3ZWQt Ynk6IE5vYWggR29sZHN0ZWluICA8Z29sZHN0ZWluLncubkBnbWFpbC5jb20+CisoY2hlcnJ5IHBp Y2tlZCBmcm9tIGNvbW1pdCBmYzdkZTFkOWI5OWFlMTY3NmJjNjI2ZGRjYTQyMmQ3YWJlZTBlYjQ4 KQorLS0tCisgc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jIHwgNyAr KysrKy0tCisgc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL3N0cm5jbXAuYyAgICAgICAgIHwgNCAr Ky0tCisgMiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisK K2RpZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMg Yi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMKK2luZGV4IGE0MmIw YTQ2MjAuLmFlYmVmM2RhYWYgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gv aWZ1bmMtaW1wbC1saXN0LmMKKysrKyBiL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1p bXBsLWxpc3QuYworQEAgLTExNzYsMTMgKzExNzYsMTYgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlz dCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCisgICBJ RlVOQ19JTVBMIChpLCBuYW1lLCBzdHJuY21wLAorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERf VjQgKGFycmF5LCBpLCBzdHJuY21wLAorIAkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFW WDUxMlZMKQorLQkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkJXKSksCisr CQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYNTEyQlcpCisrCQkJCSAgICAgICYm IENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fc3RybmNtcF9ldmV4KQor IAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBzdHJuY21wLAorLQkJCQkg ICAgIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMiksCisrCQkJCSAgICAgKENQVV9GRUFUVVJFX1VT QUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKSksCisg CQkJCSAgICAgX19zdHJuY21wX2F2eDIpCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FERF9WMyAo YXJyYXksIGksIHN0cm5jbXAsCisgCQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikK KysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKQorIAkJCQkgICAgICAmJiBD UFVfRkVBVFVSRV9VU0FCTEUgKFJUTSkpLAorIAkJCQkgICAgIF9fc3RybmNtcF9hdngyX3J0bSkK KyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YyIChhcnJheSwgaSwgc3RybmNtcCwKK2RpZmYg LS1naXQgYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvc3RybmNtcC5jIGIvc3lzZGVwcy94ODZf NjQvbXVsdGlhcmNoL3N0cm5jbXAuYworaW5kZXggNGViZTRiZGUzMC4uYzRmOGI2YmJiNSAxMDA2 NDQKKy0tLSBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9zdHJuY21wLmMKKysrKyBiL3N5c2Rl cHMveDg2XzY0L211bHRpYXJjaC9zdHJuY21wLmMKK0BAIC00MSwxMiArNDEsMTIgQEAgSUZVTkNf U0VMRUNUT1IgKHZvaWQpCisgICBjb25zdCBzdHJ1Y3QgY3B1X2ZlYXR1cmVzICpjcHVfZmVhdHVy ZXMgPSBfX2dldF9jcHVfZmVhdHVyZXMgKCk7CisgCisgICBpZiAoWDg2X0lTQV9DUFVfRkVBVFVS RV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBBVlgyKQorKyAgICAgICYmIFg4Nl9JU0FfQ1BVX0ZF QVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgQk1JMikKKyAgICAgICAmJiBYODZfSVNBX0NQ VV9GRUFUVVJFU19BUkNIX1AgKGNwdV9mZWF0dXJlcywKKyAJCQkJICAgICAgQVZYX0Zhc3RfVW5h bGlnbmVkX0xvYWQsICkpCisgICAgIHsKKyAgICAgICBpZiAoWDg2X0lTQV9DUFVfRkVBVFVSRV9V U0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBBVlg1MTJWTCkKKy0JICAmJiBYODZfSVNBX0NQVV9GRUFU VVJFX1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIEFWWDUxMkJXKQorLQkgICYmIFg4Nl9JU0FfQ1BV X0ZFQVRVUkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgQk1JMikpCisrCSAgJiYgWDg2X0lTQV9D UFVfRkVBVFVSRV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBBVlg1MTJCVykpCisgCXJldHVybiBP UFRJTUlaRSAoZXZleCk7CisgCisgICAgICAgaWYgKENQVV9GRUFUVVJFX1VTQUJMRV9QIChjcHVf ZmVhdHVyZXMsIFJUTSkpCistLSAKKzIuMzguMQorCisKK0Zyb20gZDhiZjQzODhkZjY3OWZhNWEz YWU3ODg5YTY0OWU1NzNlMzEyNDUzMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEF1 cmVsaWVuIEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KK0RhdGU6IE1vbiwgMyBPY3QgMjAy MiAyMzo0NjoxMSArMDIwMAorU3ViamVjdDogeDg2LTY0OiBSZXF1aXJlIEJNSTIgZm9yIEFWWDIg d2NzKG4pY21wIGltcGxlbWVudGF0aW9ucworCitUaGUgQVZYMiB3Y3MobiljbXAgaW1wbGVtZW50 YXRpb25zIHVzZSB0aGUgJ2J6aGknIGluc3RydWN0aW9uLCB3aGljaAorYmVsb25ncyB0byB0aGUg Qk1JMiBDUFUgZmVhdHVyZS4KKworTkI6IEl0IGFsc28gdXNlcyB0aGUgJ3R6Y250JyBCTUkxIGlu c3RydWN0aW9uLCBidXQgaXQgaXMgZXhlY3V0ZWQgYXMgQlNGCithcyBCU0YgaWYgdGhlIENQVSBk b2Vzbid0IHN1cHBvcnQgVFpDTlQsIGFuZCBwcm9kdWNlcyB0aGUgc2FtZSByZXN1bHQKK2ZvciBu b24temVybyBpbnB1dC4KKworUGFydGlhbGx5IGZpeGVzOiBiNzdiMDZlMGUyOTYgKCJ4ODY6IE9w dGltaXplIHN0cmNtcC1hdngyLlMiKQorUGFydGlhbGx5IHJlc29sdmVzOiBCWiAjMjk2MTEKKwor UmV2aWV3ZWQtYnk6IE5vYWggR29sZHN0ZWluICA8Z29sZHN0ZWluLncubkBnbWFpbC5jb20+Ciso Y2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCBmMzFhNWE4ODRlZDg0YmQzNzAzMjcyOWQ0ZDFlYjlk MDZjOWYzYzI5KQorLS0tCisgc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlz dC5jIHwgOCArKysrKystLQorIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMt aW1wbC1saXN0LmMgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMK K2luZGV4IGFlYmVmM2RhYWYuLmZlYzg3OTBjMTEgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3g4Nl82 NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMKKysrKyBiL3N5c2RlcHMveDg2XzY0L211bHRp YXJjaC9pZnVuYy1pbXBsLWxpc3QuYworQEAgLTgxMCwxMCArODEwLDEyIEBAIF9fbGliY19pZnVu Y19pbXBsX2xpc3QgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBsaWJjX2lmdW5jX2ltcGwgKmFy cmF5LAorIAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJICAg ICBfX3djc2NtcF9ldmV4KQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBp LCB3Y3NjbXAsCistCQkJCSAgICAgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKSwKKysJCQkJICAg ICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9V U0FCTEUgKEJNSTIpKSwKKyAJCQkJICAgICBfX3djc2NtcF9hdngyKQorIAkgICAgICBYODZfSUZV TkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCB3Y3NjbXAsCisgCQkJCSAgICAgKENQVV9GRUFUVVJF X1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKQor IAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKFJUTSkpLAorIAkJCQkgICAgIF9fd2Nz Y21wX2F2eDJfcnRtKQorIAkgICAgICAvKiBJU0EgVjIgd3JhcHBlciBmb3IgU1NFMiBpbXBsZW1l bnRhdGlvbiBiZWNhdXNlIHRoZSBTU0UyCitAQCAtODMwLDEwICs4MzIsMTIgQEAgX19saWJjX2lm dW5jX2ltcGxfbGlzdCAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGxpYmNfaWZ1bmNfaW1wbCAq YXJyYXksCisgCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkg ICAgIF9fd2NzbmNtcF9ldmV4KQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5 LCBpLCB3Y3NuY21wLAorLQkJCQkgICAgIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMiksCisrCQkJ CSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRV UkVfVVNBQkxFIChCTUkyKSksCisgCQkJCSAgICAgX193Y3NuY21wX2F2eDIpCisgCSAgICAgIFg4 Nl9JRlVOQ19JTVBMX0FERF9WMyAoYXJyYXksIGksIHdjc25jbXAsCisgCQkJCSAgICAgKENQVV9G RUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChC TUkyKQorIAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKFJUTSkpLAorIAkJCQkgICAg IF9fd2NzbmNtcF9hdngyX3J0bSkKKyAJICAgICAgLyogSVNBIFYyIHdyYXBwZXIgZm9yIEdFTkVS SUMgaW1wbGVtZW50YXRpb24gYmVjYXVzZSB0aGUKKy0tIAorMi4zOC4xCisKKworRnJvbSBkOTE5 NmQ0ZjNmYTk5OTczODg2NTU4MTNkZGQyMzY0MjZhMTZkZDkyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogQXVyZWxpZW4gSmFybm8gPGF1cmVsaWVuQGF1cmVsMzIubmV0PgorRGF0ZTog TW9uLCAzIE9jdCAyMDIyIDIzOjQ2OjExICswMjAwCitTdWJqZWN0OiB4ODYtNjQ6IFJlcXVpcmUg Qk1JMiBmb3IgQVZYMiAocmF3fHcpbWVtY2hyIGltcGxlbWVudGF0aW9ucworCitUaGUgQVZYMiBt ZW1jaHIsIHJhd21lbWNociBhbmQgd21lbWNociBpbXBsZW1lbnRhdGlvbnMgdXNlIHRoZSAnYnpo aScKK2FuZCAnc2FyeCcgaW5zdHJ1Y3Rpb25zLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBCTUkyIENQ VSBmZWF0dXJlLgorCitGaXhlczogYWNmZDA4OGExOTYzICgieDg2OiBPcHRpbWl6ZSBtZW1jaHIt YXZ4Mi5TIikKK1BhcnRpYWxseSByZXNvbHZlczogQlogIzI5NjExCisKK1Jldmlld2VkLWJ5OiBO b2FoIEdvbGRzdGVpbiAgPGdvbGRzdGVpbi53Lm5AZ21haWwuY29tPgorKGNoZXJyeSBwaWNrZWQg ZnJvbSBjb21taXQgZTNlN2ZhYjdmZTUxODZkMThjYTIwNDZkOTliYTMyMWMyN2RiMzBhZCkKKy0t LQorIHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyB8IDEyICsrKysr KysrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0 LmMgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMKK2luZGV4IGZl Yzg3OTBjMTEuLjdjODQ5NjNkOTIgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFy Y2gvaWZ1bmMtaW1wbC1saXN0LmMKKysrKyBiL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVu Yy1pbXBsLWxpc3QuYworQEAgLTY5LDEwICs2OSwxMiBAQCBfX2xpYmNfaWZ1bmNfaW1wbF9saXN0 IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19pZnVuY19pbXBsICphcnJheSwKKyAJCQkJ ICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKSksCisgCQkJCSAgICAgX19tZW1jaHJf ZXZleF9ydG0pCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FERF9WMyAoYXJyYXksIGksIG1lbWNo ciwKKy0JCQkJICAgICBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpLAorKwkJCQkgICAgIChDUFVf RkVBVFVSRV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAo Qk1JMikpLAorIAkJCQkgICAgIF9fbWVtY2hyX2F2eDIpCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBM X0FERF9WMyAoYXJyYXksIGksIG1lbWNociwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxF IChBVlgyKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpCisgCQkJCSAg ICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoUlRNKSksCisgCQkJCSAgICAgX19tZW1jaHJfYXZ4 Ml9ydG0pCisgCSAgICAgIC8qIElTQSBWMiB3cmFwcGVyIGZvciBTU0UyIGltcGxlbWVudGF0aW9u IGJlY2F1c2UgdGhlIFNTRTIKK0BAIC0zMzUsMTAgKzMzNywxMiBAQCBfX2xpYmNfaWZ1bmNfaW1w bF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19pZnVuY19pbXBsICphcnJheSwK KyAJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKSksCisgCQkJCSAgICAgX19y YXdtZW1jaHJfZXZleF9ydG0pCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FERF9WMyAoYXJyYXks IGksIHJhd21lbWNociwKKy0JCQkJICAgICBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpLAorKwkJ CQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFU VVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fcmF3bWVtY2hyX2F2eDIpCisgCSAgICAg IFg4Nl9JRlVOQ19JTVBMX0FERF9WMyAoYXJyYXksIGksIHJhd21lbWNociwKKyAJCQkJICAgICAo Q1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FC TEUgKEJNSTIpCisgCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoUlRNKSksCisgCQkJ CSAgICAgX19yYXdtZW1jaHJfYXZ4Ml9ydG0pCisgCSAgICAgIC8qIElTQSBWMiB3cmFwcGVyIGZv ciBTU0UyIGltcGxlbWVudGF0aW9uIGJlY2F1c2UgdGhlIFNTRTIKK0BAIC05MjcsMTAgKzkzMSwx MiBAQCBfX2xpYmNfaWZ1bmNfaW1wbF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGli Y19pZnVuY19pbXBsICphcnJheSwKKyAJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChC TUkyKSksCisgCQkJCSAgICAgX193bWVtY2hyX2V2ZXhfcnRtKQorIAkgICAgICBYODZfSUZVTkNf SU1QTF9BRERfVjMgKGFycmF5LCBpLCB3bWVtY2hyLAorLQkJCQkgICAgIENQVV9GRUFUVVJFX1VT QUJMRSAoQVZYMiksCisrCQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJ ICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKSksCisgCQkJCSAgICAgX193bWVtY2hy X2F2eDIpCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FERF9WMyAoYXJyYXksIGksIHdtZW1jaHIs CisgCQkJCSAgICAgKENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BV X0ZFQVRVUkVfVVNBQkxFIChCTUkyKQorIAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUg KFJUTSkpLAorIAkJCQkgICAgIF9fd21lbWNocl9hdngyX3J0bSkKKyAJICAgICAgLyogSVNBIFYy IHdyYXBwZXIgZm9yIFNTRTIgaW1wbGVtZW50YXRpb24gYmVjYXVzZSB0aGUgU1NFMgorLS0gCisy LjM4LjEKKworCitGcm9tIDkyM2MzZjNjMzczZjQ5OWU2MjE2MGUwMDgzMWRkYTU3NjQ0MzMxN2Ig TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5A YXVyZWwzMi5uZXQ+CitEYXRlOiBNb24sIDMgT2N0IDIwMjIgMjM6NDY6MTEgKzAyMDAKK1N1Ympl Y3Q6IHg4Ni02NDogUmVxdWlyZSBCTUkyIGFuZCBMWkNOVCBmb3IgQVZYMiBtZW1yY2hyIGltcGxl bWVudGF0aW9uCisKK1RoZSBBVlgyIG1lbXJjaHIgaW1wbGVtZW50YXRpb24gdXNlcyB0aGUgJ3No bHhsJyBpbnN0cnVjdGlvbiwgd2hpY2gKK2JlbG9uZ3MgdG8gdGhlIEJNSTIgQ1BVIGZlYXR1cmUg YW5kIHVzZXMgdGhlICdsemNudCcgaW5zdHJ1Y3Rpb24sIHdoaWNoCitiZWxvbmdzIHRvIHRoZSBM WkNOVCBDUFUgZmVhdHVyZS4KKworRml4ZXM6IGFmNTMwNmE3MzVlYiAoIng4NjogT3B0aW1pemUg bWVtcmNoci1hdngyLlMiKQorUGFydGlhbGx5IHJlc29sdmVzOiBCWiAjMjk2MTEKKworUmV2aWV3 ZWQtYnk6IE5vYWggR29sZHN0ZWluICA8Z29sZHN0ZWluLncubkBnbWFpbC5jb20+CisoY2hlcnJ5 IHBpY2tlZCBmcm9tIGNvbW1pdCAzYzBjNzhhZmFiZmVkNGI2ZmMxNjFjMTU5ZTYyOGZiZjE0ZmYz NzBiKQorLS0tCisgc3lzZGVwcy94ODYvaXNhLWxldmVsLmggICAgICAgICAgICAgICAgICAgIHwg IDEgKworIHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1hdngyLmggICAgICB8ICAxICsK KyBzeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMgfCAxMCArKysrKysr Ky0tCisgMyBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQor CitkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODYvaXNhLWxldmVsLmggYi9zeXNkZXBzL3g4Ni9pc2Et bGV2ZWwuaAoraW5kZXggM2M0NDgwYWJhNy4uYmJiOTBmNWM1ZSAxMDA2NDQKKy0tLSBhL3N5c2Rl cHMveDg2L2lzYS1sZXZlbC5oCisrKysgYi9zeXNkZXBzL3g4Ni9pc2EtbGV2ZWwuaAorQEAgLTgw LDYgKzgwLDcgQEAKKyAjZGVmaW5lIEFWWF9YODZfSVNBX0xFVkVMIDMKKyAjZGVmaW5lIEFWWDJf WDg2X0lTQV9MRVZFTCAzCisgI2RlZmluZSBCTUkyX1g4Nl9JU0FfTEVWRUwgMworKyNkZWZpbmUg TFpDTlRfWDg2X0lTQV9MRVZFTCAzCisgI2RlZmluZSBNT1ZCRV9YODZfSVNBX0xFVkVMIDMKKyAK KyAvKiBJU0EgbGV2ZWwgPj0gMiBndWFyYW50ZWVkIGluY2x1ZGVzLiAgKi8KK2RpZmYgLS1naXQg YS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtYXZ4Mi5oIGIvc3lzZGVwcy94ODZfNjQv bXVsdGlhcmNoL2lmdW5jLWF2eDIuaAoraW5kZXggYTU3YTk5NTJmMy4uZjE3NDEwODNmZCAxMDA2 NDQKKy0tLSBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1hdngyLmgKKysrKyBiL3N5 c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1hdngyLmgKK0BAIC0zNyw2ICszNyw3IEBAIElG VU5DX1NFTEVDVE9SICh2b2lkKQorIAorICAgaWYgKFg4Nl9JU0FfQ1BVX0ZFQVRVUkVfVVNBQkxF X1AgKGNwdV9mZWF0dXJlcywgQVZYMikKKyAgICAgICAmJiBYODZfSVNBX0NQVV9GRUFUVVJFX1VT QUJMRV9QIChjcHVfZmVhdHVyZXMsIEJNSTIpCisrICAgICAgJiYgWDg2X0lTQV9DUFVfRkVBVFVS RV9VU0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBMWkNOVCkKKyAgICAgICAmJiBYODZfSVNBX0NQVV9G RUFUVVJFU19BUkNIX1AgKGNwdV9mZWF0dXJlcywKKyAJCQkJICAgICAgQVZYX0Zhc3RfVW5hbGln bmVkX0xvYWQsICkpCisgICAgIHsKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82NC9tdWx0aWFy Y2gvaWZ1bmMtaW1wbC1saXN0LmMgYi9zeXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1w bC1saXN0LmMKK2luZGV4IDdjODQ5NjNkOTIuLmVjMWM1YjU1ZmIgMTAwNjQ0CistLS0gYS9zeXNk ZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMKKysrKyBiL3N5c2RlcHMveDg2 XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYworQEAgLTIwOSwxMyArMjA5LDE5IEBAIF9f bGliY19pZnVuY19pbXBsX2xpc3QgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBsaWJjX2lmdW5j X2ltcGwgKmFycmF5LAorICAgSUZVTkNfSU1QTCAoaSwgbmFtZSwgbWVtcmNociwKKyAJICAgICAg WDg2X0lGVU5DX0lNUExfQUREX1Y0IChhcnJheSwgaSwgbWVtcmNociwKKyAJCQkJICAgICAoQ1BV X0ZFQVRVUkVfVVNBQkxFIChBVlg1MTJWTCkKKy0JCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNB QkxFIChBVlg1MTJCVykpLAorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUx MkJXKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpCisrCQkJCSAgICAg ICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoTFpDTlQpKSwKKyAJCQkJICAgICBfX21lbXJjaHJfZXZl eCkKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwgbWVtcmNociwKKy0J CQkJICAgICBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpLAorKwkJCQkgICAgIChDUFVfRkVBVFVS RV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikK KysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChMWkNOVCkpLAorIAkJCQkgICAgIF9f bWVtcmNocl9hdngyKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCBt ZW1yY2hyLAorIAkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIpCisrCQkJCSAgICAg ICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVf VVNBQkxFIChMWkNOVCkKKyAJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChSVE0pKSwK KyAJCQkJICAgICBfX21lbXJjaHJfYXZ4Ml9ydG0pCisgCSAgICAgIC8qIElTQSBWMiB3cmFwcGVy IGZvciBTU0UyIGltcGxlbWVudGF0aW9uIGJlY2F1c2UgdGhlIFNTRTIKKy0tIAorMi4zOC4xCisK KworRnJvbSAyZDhlZjc4NGJkNmE3ODQ0OTZhNmZkNDYwZGU2YjZmNTdjNzBhNTAxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQXVyZWxpZW4gSmFybm8gPGF1cmVsaWVuQGF1cmVsMzIu bmV0PgorRGF0ZTogTW9uLCAzIE9jdCAyMDIyIDIzOjQ2OjExICswMjAwCitTdWJqZWN0OiB4ODYt NjQ6IFJlcXVpcmUgQk1JMS9CTUkyIGZvciBBVlgyIHN0cnJjaHIgYW5kIHdjc3JjaHIKKyBpbXBs ZW1lbnRhdGlvbnMKKworVGhlIEFWWDIgc3RycmNociBhbmQgd2NzcmNociBpbXBsZW1lbnRhdGlv biB1c2VzIHRoZSAnYmxzbXNrJworaW5zdHJ1Y3Rpb24gd2hpY2ggYmVsb25ncyB0byB0aGUgQk1J MSBDUFUgZmVhdHVyZSBhbmQgdGhlICdzaHJ4JworaW5zdHJ1Y3Rpb24sIHdoaWNoIGJlbG9uZ3Mg dG8gdGhlIEJNSTIgQ1BVIGZlYXR1cmUuCisKK0ZpeGVzOiBkZjdlMjk1ZDE4ZmYgKCJ4ODY6IE9w dGltaXplIHtzdHJ8d2NzfXJjaHItYXZ4MiIpCitQYXJ0aWFsbHkgcmVzb2x2ZXM6IEJaICMyOTYx MQorCitSZXZpZXdlZC1ieTogTm9haCBHb2xkc3RlaW4gIDxnb2xkc3RlaW4udy5uQGdtYWlsLmNv bT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDdlODI4MzE3MGM1ZDY4MDViNjA5YTA0MDgw MWQ4MTllMzYyYTYyOTIpCistLS0KKyBzeXNkZXBzL3g4Ni9pc2EtbGV2ZWwuaCAgICAgICAgICAg ICAgICAgICAgfCAgMSArCisgc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWF2eDIuaCAg ICAgIHwgIDEgKworIHN5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyB8 IDE3ICsrKysrKysrKysrKysrLS0tCisgMyBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy94ODYvaXNhLWxldmVsLmgg Yi9zeXNkZXBzL3g4Ni9pc2EtbGV2ZWwuaAoraW5kZXggYmJiOTBmNWM1ZS4uMDZmNmM5NjYzZSAx MDA2NDQKKy0tLSBhL3N5c2RlcHMveDg2L2lzYS1sZXZlbC5oCisrKysgYi9zeXNkZXBzL3g4Ni9p c2EtbGV2ZWwuaAorQEAgLTc5LDYgKzc5LDcgQEAKKyAvKiBJU0EgbGV2ZWwgPj0gMyBndWFyYW50 ZWVkIGluY2x1ZGVzLiAgKi8KKyAjZGVmaW5lIEFWWF9YODZfSVNBX0xFVkVMIDMKKyAjZGVmaW5l IEFWWDJfWDg2X0lTQV9MRVZFTCAzCisrI2RlZmluZSBCTUkxX1g4Nl9JU0FfTEVWRUwgMworICNk ZWZpbmUgQk1JMl9YODZfSVNBX0xFVkVMIDMKKyAjZGVmaW5lIExaQ05UX1g4Nl9JU0FfTEVWRUwg MworICNkZWZpbmUgTU9WQkVfWDg2X0lTQV9MRVZFTCAzCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy94 ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWF2eDIuaCBiL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9p ZnVuYy1hdngyLmgKK2luZGV4IGYxNzQxMDgzZmQuLmYyZjVlOGEyMTEgMTAwNjQ0CistLS0gYS9z eXNkZXBzL3g4Nl82NC9tdWx0aWFyY2gvaWZ1bmMtYXZ4Mi5oCisrKysgYi9zeXNkZXBzL3g4Nl82 NC9tdWx0aWFyY2gvaWZ1bmMtYXZ4Mi5oCitAQCAtMzYsNiArMzYsNyBAQCBJRlVOQ19TRUxFQ1RP UiAodm9pZCkKKyAgIGNvbnN0IHN0cnVjdCBjcHVfZmVhdHVyZXMgKmNwdV9mZWF0dXJlcyA9IF9f Z2V0X2NwdV9mZWF0dXJlcyAoKTsKKyAKKyAgIGlmIChYODZfSVNBX0NQVV9GRUFUVVJFX1VTQUJM RV9QIChjcHVfZmVhdHVyZXMsIEFWWDIpCisrICAgICAgJiYgWDg2X0lTQV9DUFVfRkVBVFVSRV9V U0FCTEVfUCAoY3B1X2ZlYXR1cmVzLCBCTUkxKQorICAgICAgICYmIFg4Nl9JU0FfQ1BVX0ZFQVRV UkVfVVNBQkxFX1AgKGNwdV9mZWF0dXJlcywgQk1JMikKKyAgICAgICAmJiBYODZfSVNBX0NQVV9G RUFUVVJFX1VTQUJMRV9QIChjcHVfZmVhdHVyZXMsIExaQ05UKQorICAgICAgICYmIFg4Nl9JU0Ff Q1BVX0ZFQVRVUkVTX0FSQ0hfUCAoY3B1X2ZlYXR1cmVzLAorZGlmZiAtLWdpdCBhL3N5c2RlcHMv eDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyBiL3N5c2RlcHMveDg2XzY0L211bHRp YXJjaC9pZnVuYy1pbXBsLWxpc3QuYworaW5kZXggZWMxYzViNTVmYi4uMDBhOTExMjNkMyAxMDA2 NDQKKy0tLSBhL3N5c2RlcHMveDg2XzY0L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYworKysr IGIvc3lzZGVwcy94ODZfNjQvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jCitAQCAtNTc4LDEz ICs1NzgsMTkgQEAgX19saWJjX2lmdW5jX2ltcGxfbGlzdCAoY29uc3QgY2hhciAqbmFtZSwgc3Ry dWN0IGxpYmNfaWZ1bmNfaW1wbCAqYXJyYXksCisgICBJRlVOQ19JTVBMIChpLCBuYW1lLCBzdHJy Y2hyLAorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjQgKGFycmF5LCBpLCBzdHJyY2hyLAor IAkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMlZMKQorLQkJCQkgICAgICAmJiBD UFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkJXKSksCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJF X1VTQUJMRSAoQVZYNTEyQlcpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1J MSkKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKSksCisgCQkJCSAgICAg X19zdHJyY2hyX2V2ZXgpCisgCSAgICAgIFg4Nl9JRlVOQ19JTVBMX0FERF9WMyAoYXJyYXksIGks IHN0cnJjaHIsCistCQkJCSAgICAgQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKSwKKysJCQkJICAg ICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9V U0FCTEUgKEJNSTEpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAor IAkJCQkgICAgIF9fc3RycmNocl9hdngyKQorIAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMg KGFycmF5LCBpLCBzdHJyY2hyLAorIAkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDIp CisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMSkKKysJCQkJICAgICAgJiYg Q1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkyKQorIAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FC TEUgKFJUTSkpLAorIAkJCQkgICAgIF9fc3RycmNocl9hdngyX3J0bSkKKyAJICAgICAgLyogSVNB IFYyIHdyYXBwZXIgZm9yIFNTRTIgaW1wbGVtZW50YXRpb24gYmVjYXVzZSB0aGUgU1NFMgorQEAg LTc5NywxMyArODAzLDE4IEBAIF9fbGliY19pZnVuY19pbXBsX2xpc3QgKGNvbnN0IGNoYXIgKm5h bWUsIHN0cnVjdCBsaWJjX2lmdW5jX2ltcGwgKmFycmF5LAorIAkgICAgICBYODZfSUZVTkNfSU1Q TF9BRERfVjQgKGFycmF5LCBpLCB3Y3NyY2hyLAorIAkJCQkgICAgIChDUFVfRkVBVFVSRV9VU0FC TEUgKEFWWDUxMlZMKQorIAkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEFWWDUxMkJX KQorKwkJCQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTEpCisgCQkJCSAgICAgICYm IENQVV9GRUFUVVJFX1VTQUJMRSAoQk1JMikpLAorIAkJCQkgICAgIF9fd2NzcmNocl9ldmV4KQor IAkgICAgICBYODZfSUZVTkNfSU1QTF9BRERfVjMgKGFycmF5LCBpLCB3Y3NyY2hyLAorLQkJCQkg ICAgIENQVV9GRUFUVVJFX1VTQUJMRSAoQVZYMiksCisrCQkJCSAgICAgKENQVV9GRUFUVVJFX1VT QUJMRSAoQVZYMikKKysJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChCTUkxKQorKwkJ CQkgICAgICAmJiBDUFVfRkVBVFVSRV9VU0FCTEUgKEJNSTIpKSwKKyAJCQkJICAgICBfX3djc3Jj aHJfYXZ4MikKKyAJICAgICAgWDg2X0lGVU5DX0lNUExfQUREX1YzIChhcnJheSwgaSwgd2NzcmNo ciwKKyAJCQkJICAgICAoQ1BVX0ZFQVRVUkVfVVNBQkxFIChBVlgyKQorKwkJCQkgICAgICAmJiBD UFVfRkVBVFVSRV9VU0FCTEUgKEJNSTEpCisrCQkJCSAgICAgICYmIENQVV9GRUFUVVJFX1VTQUJM RSAoQk1JMikKKyAJCQkJICAgICAgJiYgQ1BVX0ZFQVRVUkVfVVNBQkxFIChSVE0pKSwKKyAJCQkJ ICAgICBfX3djc3JjaHJfYXZ4Ml9ydG0pCisgCSAgICAgIC8qIElTQSBWMiB3cmFwcGVyIGZvciBT U0UyIGltcGxlbWVudGF0aW9uIGJlY2F1c2UgdGhlIFNTRTIKKy0tIAorMi4zOC4xCisKKworRnJv bSAyYmQ4MTVkODM0Nzg1MTIxMmI5YTkxZGJkY2E4MDUzZjRkYmRhYzg3IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJl Lm9yZz4KK0RhdGU6IFR1ZSwgNCBPY3QgMjAyMiAxODo0Mzo1MCAtMDQwMAorU3ViamVjdDogbnNj ZDogRHJvcCBsb2NhbCBhZGRyZXNzIHR1cGxlIHZhcmlhYmxlIFtCWiAjMjk2MDddCitNSU1FLVZl cnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250 ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1doZW4gYSByZXF1ZXN0IG5lZWRzIHRvIGJl IHJlc2VudCAoZS5nLiBkdWUgdG8gaW5zdWZmaWNpZW50IGJ1ZmZlcgorc3BhY2UpLCB0aGUgcmVm ZXJlbmNlcyB0byBzdWJzZXF1ZW50IHR1cGxlcyBpbiB0aGUgbG9jYWwgdmFyaWFibGUgYXJlCitz dGFsZSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLiAgVGhpcyB1c2VkIHRvIHdvcmsgYnkgYWNjaWRl bnQgYmVmb3JlLCBidXQKK3NpbmNlIDFkNDk1OTEyYSBpdCBubyBsb25nZXIgZG9lcy4gIEluc3Rl YWQgb2YgdHJ5aW5nIHRvIHJlc2V0IGl0LCBqdXN0CitsZXQgZ2V0aG9zdGJ5bmFtZTRfciB3cml0 ZSBpbnRvIFRVTVBCVUY2IGZvciB1cywgdGh1cyBtYWludGFpbmluZyBhCitjb25zaXN0ZW50IHN0 YXRlIGF0IGFsbCB0aW1lcy4gIFRoaXMgaXMgbm93IGNvbnNpc3RlbnQgd2l0aCB3aGF0IGlzIGRv bmUKK2luIGdhaWhfaW5ldCBmb3IgZ2V0YWRkcmluZm8uCisKK1Jlc29sdmVzOiBCWiAjMjk2MDcK K1JlcG9ydGVkLWJ5OiBIb2xnZXIgSG9mZnN0w6R0dGUgPGhvbGdlckBhcHBsaWVkLWFzeW5jaHJv bnkuY29tPgorVGVzdGVkLWJ5OiBIb2xnZXIgSG9mZnN0w6R0dGUgPGhvbGdlckBhcHBsaWVkLWFz eW5jaHJvbnkuY29tPgorUmV2aWV3ZWQtYnk6IENhcmxvcyBPJ0RvbmVsbCA8Y2FybG9zQHJlZGhh dC5jb20+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA2ZTMzZTVjNGI3M2NlYTdiOGFhM2Rl MDk0NzEyM2RiMTYyMDBmYjY1KQorLS0tCisgTkVXUyAgICAgICAgICAgfCAyICsrCisgbnNjZC9h aWNhY2hlLmMgfCA1ICsrLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXggOTFiY2ZlYjdh Ni4uNjNlMjZkNzA2MiAxMDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BAIC0yOCw2ICsy OCw4IEBAIFRoZSBmb2xsb3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6 CisgICBbMjk1MzddIGxpYmM6IFsyLjM0IHJlZ3Jlc3Npb25dOiBBbGlnbm1lbnQgaXNzdWUgb24g bTY4ayB3aGVuIHVzaW5nCisgICBbMjk1MzldIGxpYmM6IExEX1RSQUNFX0xPQURFRF9PQkpFQ1RT IGNoYW5nZWQgaG93IHZEU08gbGlicmFyeSBhcmUKKyAgIFsyOTU4M10gVXNlIDY0LWJpdCBpbnRl cmZhY2VzIGluIGdjb252X3BhcnNlY29uZmRpcgorKyAgWzI5NjA3XSBuc2NkIHJlcGVhdGFibHkg Y3Jhc2hlcyBjYWxsaW5nIF9fc3RybGVuX2F2eDIgd2hlbiBob3N0cyBjYWNoZSBpcworKyAgICBl bmFibGVkCisgICBbMjk2MzhdIGxpYmM6IHN0ZGxpYjogYXJjNHJhbmRvbSBmYWxsYmFjayBpcyBu ZXZlciB1c2VkCisgDAorIFZlcnNpb24gMi4zNgorZGlmZiAtLWdpdCBhL25zY2QvYWljYWNoZS5j IGIvbnNjZC9haWNhY2hlLmMKK2luZGV4IDUxZTc5MzE5OWYuLmUwYmFlZDE3MGIgMTAwNjQ0Cist LS0gYS9uc2NkL2FpY2FjaGUuYworKysrIGIvbnNjZC9haWNhY2hlLmMKK0BAIC0xMTAsMTEgKzEx MCwxMCBAQCBhZGRoc3RhaVggKHN0cnVjdCBkYXRhYmFzZV9keW4gKmRiLCBpbnQgZmQsIHJlcXVl c3RfaGVhZGVyICpyZXEsCisgCQkJCQkJCSAgImdldGhvc3RieW5hbWU0X3IiKTsKKyAgICAgICBp ZiAoZmN0NCAhPSBOVUxMKQorIAl7CistCSAgc3RydWN0IGdhaWhfYWRkcnR1cGxlIGF0bWVtOwor IAkgIHN0cnVjdCBnYWloX2FkZHJ0dXBsZSAqYXQ7CisgCSAgd2hpbGUgKDEpCisgCSAgICB7Cist CSAgICAgIGF0ID0gJmF0bWVtOworKwkgICAgICBhdCA9IE5VTEw7CisgCSAgICAgIHJjNiA9IDA7 CisgCSAgICAgIGhlcnJubyA9IDA7CisgCSAgICAgIHN0YXR1c1sxXSA9IERMX0NBTExfRkNUIChm Y3Q0LCAoa2V5LCAmYXQsCitAQCAtMTM3LDcgKzEzNiw3IEBAIGFkZGhzdGFpWCAoc3RydWN0IGRh dGFiYXNlX2R5biAqZGIsIGludCBmZCwgcmVxdWVzdF9oZWFkZXIgKnJlcSwKKyAJICAgIGdvdG8g bmV4dF9uaXA7CisgCisgCSAgLyogV2UgZm91bmQgdGhlIGRhdGEuICBDb3VudCB0aGUgYWRkcmVz c2VzIGFuZCB0aGUgc2l6ZS4gICovCistCSAgZm9yIChjb25zdCBzdHJ1Y3QgZ2FpaF9hZGRydHVw bGUgKmF0MiA9IGF0ID0gJmF0bWVtOyBhdDIgIT0gTlVMTDsKKysJICBmb3IgKGNvbnN0IHN0cnVj dCBnYWloX2FkZHJ0dXBsZSAqYXQyID0gYXQ7IGF0MiAhPSBOVUxMOworIAkgICAgICAgYXQyID0g YXQyLT5uZXh0KQorIAkgICAgeworIAkgICAgICArK25hZGRyczsKKy0tIAorMi4zOC4xCisKKwor RnJvbSAzZTI3OTE5Mjc0OWNmY2FlNGNlZWJiMWYyMWEzMjc1ZTY3N2QwNTYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFlbCBIdWRzb24tRG95bGUgPG1pY2hhZWwuaHVkc29u QGNhbm9uaWNhbC5jb20+CitEYXRlOiBGcmksIDEyIEF1ZyAyMDIyIDExOjI5OjMxICsxMjAwCitT dWJqZWN0OiBFbnN1cmUgY2FsY3VsYXRpb25zIGhhcHBlbiB3aXRoIGRlc2lyZWQgcm91bmRpbmcg bW9kZSBpbiB5MWxmMTI4CisKK21hdGgvdGVzdC1mbG9hdDEyOC15MSBmYWlscyBvbiB4ODZfNjQg YW5kIHBwYzY0ZWwgd2l0aCBnY2MgMTIgYW5kIC1PMywKK2JlY2F1c2UgY29kZSBpbnNpZGUgYSBi bG9jayBndWFyZGVkIGJ5IFNFVF9SRVNUT1JFX1JPVU5ETCBpcyBiZWluZyBtb3ZlZAorYWZ0ZXIg dGhlIHJvdW5kaW5nIG1vZGUgaGFzIGJlZW4gcmVzdG9yZWQuIFVzZSBtYXRoX2ZvcmNlX2V2YWwg dG8KK3ByZXZlbnQgdGhpcyAoYW5kIGluc2VydCBzb21lIG1hdGhfb3B0X2JhcnJpZXIgY2FsbHMg dG8gcHJldmVudCBjb2RlCitmcm9tIGJlaW5nIG1vdmVkIGJlZm9yZSB0aGUgcm91bmRpbmcgbW9k ZSBpcyBzZXQpLgorCitGaXhlcyAjMjk0NjMKKworUmV2aWV3ZWQtQnk6IFdpbGNvIERpamtzdHJh IDxXaWxjby5EaWprc3RyYUBhcm0uY29tPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMmIy NzRmZDhjOWM3NzZjZjcwZmNkYjgzNTZlNjc4YWRhNTIyYTdiMCkKKy0tLQorIE5FV1MgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMSArCisgc3lzZGVwcy9pZWVlNzU0L2xkYmwtMTI4L2Vf ajFsLmMgfCAzICsrKworIDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2RpZmYg LS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXggNjNlMjZkNzA2Mi4uYmVhMWQ4YTExZiAxMDA2NDQK Ky0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BAIC0yNCw2ICsyNCw3IEBAIFRoZSBmb2xsb3dpbmcg YnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlzIHJlbGVhc2U6CisgICBbMjk0NDZdIF9kbG9wZW4g bm93IGlnbm9yZXMgZGxfY2FsbGVyIGFyZ3VtZW50IGluIHN0YXRpYyBtb2RlCisgICBbMjk0ODVd IExpbnV4OiBUZXJtaW5hdGUgc3VicHJvY2VzcyBvbiBsYXRlIGZhaWx1cmUgaW4gdHN0LXBpZGZk CisgICBbMjk0OTBdIGFscGhhOiBOZXcgX19icmtfY2FsbCBpbXBsZW1lbnRhdGlvbiBpcyBicm9r ZW4KKysgIFsyOTQ2M10gbWF0aC90ZXN0LWZsb2F0MTI4LXkxIGZhaWxzIG9uIHg4Nl82NAorICAg WzI5NTI4XSBlbGY6IENhbGwgX19saWJjX2Vhcmx5X2luaXQgZm9yIHJldXNlZCBuYW1lc3BhY2Vz CisgICBbMjk1MzddIGxpYmM6IFsyLjM0IHJlZ3Jlc3Npb25dOiBBbGlnbm1lbnQgaXNzdWUgb24g bTY4ayB3aGVuIHVzaW5nCisgICBbMjk1MzldIGxpYmM6IExEX1RSQUNFX0xPQURFRF9PQkpFQ1RT IGNoYW5nZWQgaG93IHZEU08gbGlicmFyeSBhcmUKK2RpZmYgLS1naXQgYS9zeXNkZXBzL2llZWU3 NTQvbGRibC0xMjgvZV9qMWwuYyBiL3N5c2RlcHMvaWVlZTc1NC9sZGJsLTEyOC9lX2oxbC5jCitp bmRleCA1NGM0NTc2ODFhLi45YTljNWM2ZjAwIDEwMDY0NAorLS0tIGEvc3lzZGVwcy9pZWVlNzU0 L2xkYmwtMTI4L2VfajFsLmMKKysrKyBiL3N5c2RlcHMvaWVlZTc1NC9sZGJsLTEyOC9lX2oxbC5j CitAQCAtODY5LDEwICs4NjksMTMgQEAgX19pZWVlNzU0X3kxbCAoX0Zsb2F0MTI4IHgpCisgICAg IHsKKyAgICAgICAvKiAwIDw9IHggPD0gMiAqLworICAgICAgIFNFVF9SRVNUT1JFX1JPVU5ETCAo RkVfVE9ORUFSRVNUKTsKKysgICAgICB4eCA9IG1hdGhfb3B0X2JhcnJpZXIgKHh4KTsKKysgICAg ICB4ID0gbWF0aF9vcHRfYmFycmllciAoeCk7CisgICAgICAgeiA9IHh4ICogeHg7CisgICAgICAg cCA9IHh4ICogbmV2YWwgKHosIFkwXzJOLCBOWTBfMk4pIC8gZGV2YWwgKHosIFkwXzJELCBOWTBf MkQpOworICAgICAgIHAgPSAtVFdPT1BJIC8geHggKyBwOworICAgICAgIHAgPSBUV09PUEkgKiBf X2llZWU3NTRfbG9nbCAoeCkgKiBfX2llZWU3NTRfajFsICh4KSArIHA7CisrICAgICAgbWF0aF9m b3JjZV9ldmFsIChwKTsKKyAgICAgICByZXR1cm4gcDsKKyAgICAgfQorIAorLS0gCisyLjM4LjEK KworCitGcm9tIDcwMGQzMjgxZjllNTdiNTNjMjdiYzk5MTM5NGIyMmQ0Njc0MzI2MjYgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQu Y29tPgorRGF0ZTogVHVlLCAxMyBTZXAgMjAyMiAxNjoxMDoyMCArMDIwMAorU3ViamVjdDogbnNz OiBJbXBsZW1lbnQgLS1uby1hZGRyY29uZmlnIG9wdGlvbiBmb3IgZ2V0ZW50CisKK1RoZSBhaG9z dHMsIGFob3N0c3Y0LCBhaG9zdHN2NiBjb21tYW5kcyB1bmNvbmRpdGlvbmFsbHkgcGFzcworQUlf QUREUkNPTkZJRyB0byBnZXRhZGRyaW5mbywgd2hpY2ggaXMgbm90IGFsd2F5cyBkZXNpcmVkLgor CitSZXZpZXdlZC1ieTogQ2FybG9zIE8nRG9uZWxsIDxjYXJsb3NAcmVkaGF0LmNvbT4KKyhjaGVy cnkgcGlja2VkIGZyb20gY29tbWl0IGE2MjNmMTNhZGZhYzQ3Yzg2MzRhNzI4OGUwOGY4MjFhODQ2 YmM2NTApCistLS0KKyBORVdTICAgICAgICAgfCAgNyArKysrKysrCisgbnNzL2dldGVudC5jIHwg MTEgKysrKysrKysrKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCitpbmRleCBiZWExZDhhMTFmLi40 NjJhMTIyNTNkIDEwMDY0NAorLS0tIGEvTkVXUworKysrIGIvTkVXUworQEAgLTcsNiArNywxMyBA QCB1c2luZyBgZ2xpYmMnIGluIHRoZSAicHJvZHVjdCIgZmllbGQuCisgDAorIFZlcnNpb24gMi4z Ni4xCisgCisrTWFqb3IgbmV3IGZlYXR1cmVzOgorKworKyogVGhlIGdldGVudCB0b29sIG5vdyBz dXBwb3J0cyB0aGUgLS1uby1hZGRyY29uZmlnIG9wdGlvbi4gVGhlIG91dHB1dCBvZgorKyAgZ2V0 ZW50IHdpdGggLS1uby1hZGRyY29uZmlnIG1heSBjb250YWluIGFkZHJlc3NlcyBvZiBmYW1pbGll cyBub3QKKysgIGNvbmZpZ3VyZWQgb24gdGhlIGN1cnJlbnQgaG9zdCBpLmUuIGFzLWlmIHlvdSBo YWQgbm90IHBhc3NlZAorKyAgQUlfQUREUkNPTkZJRyB0byBnZXRhZGRyaW5mbyBjYWxscy4KKysK KyBTZWN1cml0eSByZWxhdGVkIGNoYW5nZXM6CisgCisgICBDVkUtMjAyMi0zOTA0NjogV2hlbiB0 aGUgc3lzbG9nIGZ1bmN0aW9uIGlzIHBhc3NlZCBhIGNyYWZ0ZWQgaW5wdXQKK2RpZmYgLS1naXQg YS9uc3MvZ2V0ZW50LmMgYi9uc3MvZ2V0ZW50LmMKK2luZGV4IDgxNzhiNGI0NzAuLmQyZDI1MjRi MGMgMTAwNjQ0CistLS0gYS9uc3MvZ2V0ZW50LmMKKysrKyBiL25zcy9nZXRlbnQuYworQEAgLTU4 LDYgKzU4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhcmdwX29wdGlvbiBhcmdzX29wdGlvbnNb XSA9CisgICB7CisgICAgIHsgInNlcnZpY2UiLCAncycsIE5fKCJDT05GSUciKSwgMCwgTl8oIlNl cnZpY2UgY29uZmlndXJhdGlvbiB0byBiZSB1c2VkIikgfSwKKyAgICAgeyAibm8taWRuIiwgJ2kn LCBOVUxMLCAwLCBOXygiZGlzYWJsZSBJRE4gZW5jb2RpbmciKSB9LAorKyAgICB7ICJuby1hZGRy Y29uZmlnIiwgJ0EnLCBOVUxMLCAwLAorKyAgICAgIE5fKCJkbyBub3QgZmlsdGVyIG91dCB1bnN1 cHBvcnRlZCBJUHY0L0lQdjYgYWRkcmVzc2VzICh3aXRoIGFob3N0cyopIikgfSwKKyAgICAgeyBO VUxMLCAwLCBOVUxMLCAwLCBOVUxMIH0sCisgICB9OworIAorQEAgLTc5LDYgKzgxLDkgQEAgc3Rh dGljIHN0cnVjdCBhcmdwIGFyZ3AgPQorIC8qIEFkZGl0aW9uYWwgZ2V0YWRkcmluZm8gZmxhZ3Mg Zm9yIElETiBlbmNvZGluZy4gICovCisgc3RhdGljIGludCBpZG5fZmxhZ3MgPSBBSV9JRE4gfCBB SV9DQU5PTklETjsKKyAKKysvKiBTZXQgdG8gMCBieSAtLW5vLWFkZHJjb25maWcuICAqLworK3N0 YXRpYyBpbnQgYWRkcmNvbmZpZ19mbGFncyA9IEFJX0FERFJDT05GSUc7CisrCisgLyogUHJpbnQg dGhlIHZlcnNpb24gaW5mb3JtYXRpb24uICAqLworIHN0YXRpYyB2b2lkCisgcHJpbnRfdmVyc2lv biAoRklMRSAqc3RyZWFtLCBzdHJ1Y3QgYXJncF9zdGF0ZSAqc3RhdGUpCitAQCAtMzQ2LDcgKzM1 MSw3IEBAIGFob3N0c19rZXlzX2ludCAoaW50IGFmLCBpbnQgeGZsYWdzLCBpbnQgbnVtYmVyLCBj aGFyICprZXlbXSkKKyAKKyAgIHN0cnVjdCBhZGRyaW5mbyBoaW50OworICAgbWVtc2V0ICgmaGlu dCwgJ1wwJywgc2l6ZW9mIChoaW50KSk7CistICBoaW50LmFpX2ZsYWdzID0gKEFJX1Y0TUFQUEVE IHwgQUlfQUREUkNPTkZJRyB8IEFJX0NBTk9OTkFNRQorKyAgaGludC5haV9mbGFncyA9IChBSV9W NE1BUFBFRCB8IGFkZHJjb25maWdfZmxhZ3MgfCBBSV9DQU5PTk5BTUUKKyAJCSAgIHwgaWRuX2Zs YWdzIHwgeGZsYWdzKTsKKyAgIGhpbnQuYWlfZmFtaWx5ID0gYWY7CisgCitAQCAtOTA1LDYgKzkx MCwxMCBAQCBwYXJzZV9vcHRpb24gKGludCBrZXksIGNoYXIgKmFyZywgc3RydWN0IGFyZ3Bfc3Rh dGUgKnN0YXRlKQorICAgICAgIGlkbl9mbGFncyA9IDA7CisgICAgICAgYnJlYWs7CisgCisrICAg IGNhc2UgJ0EnOgorKyAgICAgIGFkZHJjb25maWdfZmxhZ3MgPSAwOworKyAgICAgIGJyZWFrOwor KworICAgICBkZWZhdWx0OgorICAgICAgIHJldHVybiBBUkdQX0VSUl9VTktOT1dOOworICAgICB9 CistLSAKKzIuMzguMQorCisKK0Zyb20gMjY4MWQzOGNhZmFjZWFmZWIzMzBiYzA1MzZmYTcxMGI3 NWVkNTk0NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEZsb3JpYW4gV2VpbWVyIDxm d2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDEzIFNlcCAyMDIyIDE2OjExOjQwICswMjAw CitTdWJqZWN0OiBuc3M6IEZpeCB0c3QtbnNzLWZpbGVzLWhvc3RzLWxvbmcgb24gc2luZ2xlLXN0 YWNrIGhvc3RzIChidWcgMjQ4MTYpCisKK2dldGVudCBpbXBsaWNpdGx5IHBhc3NlcyBBSV9BRERS Q09ORklHIHRvIGdldGFkZHJpbmZvIGJ5IGRlZmF1bHQuCitVc2UgLS1uby1hZGRyY29uZmlnIHRv IHN1cHByZXNzIHRoYXQsIHNvIHRoYXQgYm90aCBJUHY0IGFuZCBJUHY2Citsb29rdXBzIHN1Y2Nl ZWQgZXZlbiBpZiB0aGUgYWRkcmVzcyBmYW1pbHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUKK2hv c3QuCisKK1Jldmlld2VkLWJ5OiBDYXJsb3MgTydEb25lbGwgPGNhcmxvc0ByZWRoYXQuY29tPgor KGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgYzc1ZDIwYjViMjdiMGE2MGYwNjc4MjM2ZjUxYTRk M2IwYjA1OGMwMCkKKy0tLQorIE5FV1MgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEgKwor IG5zcy90c3QtbnNzLWZpbGVzLWhvc3RzLWxvbmcuYyB8IDkgKysrKystLS0tCisgMiBmaWxlcyBj aGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9O RVdTIGIvTkVXUworaW5kZXggNDYyYTEyMjUzZC4uZGU3NzVhYjExNiAxMDA2NDQKKy0tLSBhL05F V1MKKysrKyBiL05FV1MKK0BAIC0yNCw2ICsyNCw3IEBAIFNlY3VyaXR5IHJlbGF0ZWQgY2hhbmdl czoKKyBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhpcyByZWxlYXNlOgor IAorICAgWzEyMTU0XSBEbyBub3QgZmFpbCBETlMgcmVzb2x1dGlvbiBmb3IgQ05BTUVzIHdoaWNo IGFyZSBub3QgaG9zdCBuYW1lcworKyAgWzI0ODE2XSBGaXggdHN0LW5zcy1maWxlcy1ob3N0cy1s b25nIG9uIHNpbmdsZS1zdGFjayBob3N0cworICAgWzI4ODQ2XSBDTVNHX05YVEhEUiBtYXkgdHJp Z2dlciAtV3N0cmljdC1vdmVyZmxvdyB3YXJuaW5nCisgICBbMjkzMDVdIENvbnNlcnZlIE5TUyBi dWZmZXIgc3BhY2UgZHVyaW5nIEROUyBwYWNrZXQgcGFyc2luZworICAgWzI5NDE1XSBuc2NkOiBG aXggbmV0bGluayBjYWNoZSBpbnZhbGlkYXRpb24gaWYgZXBvbGwgaXMgdXNlZAorZGlmZiAtLWdp dCBhL25zcy90c3QtbnNzLWZpbGVzLWhvc3RzLWxvbmcuYyBiL25zcy90c3QtbnNzLWZpbGVzLWhv c3RzLWxvbmcuYworaW5kZXggMzk0MmNmNWZjYS4uYTc2OTdlMzE0MyAxMDA2NDQKKy0tLSBhL25z cy90c3QtbnNzLWZpbGVzLWhvc3RzLWxvbmcuYworKysrIGIvbnNzL3RzdC1uc3MtZmlsZXMtaG9z dHMtbG9uZy5jCitAQCAtMjgsMTQgKzI4LDE1IEBAIGRvX3Rlc3QgKHZvaWQpCisgeworICAgaW50 IHJldDsKKyAKKy0gIC8qIFJ1biBnZXRlbnQgdG8gZmV0Y2ggdGhlIElQdjQgYWRkcmVzcyBmb3Ig aG9zdCB0ZXN0NC4KKy0gICAgIFRoaXMgZm9yY2VzIC9ldGMvaG9zdHMgdG8gYmUgcGFyc2VkLiAg Ki8KKy0gIHJldCA9IHN5c3RlbSgiZ2V0ZW50IGFob3N0c3Y0IHRlc3Q0Iik7CisrICAvKiBSdW4g Z2V0ZW50IHRvIGZldGNoIHRoZSBJUHY0IGFkZHJlc3MgZm9yIGhvc3QgdGVzdDQuICBUaGlzIGZv cmNlcworKyAgICAgL2V0Yy9ob3N0cyB0byBiZSBwYXJzZWQuICBVc2UgLS1uby1hZGRyY29uZmln IHRvIHJldHVybiBhZGRyZXNzZXMKKysgICAgIGV2ZW4gaW4gYW4gSVB2Ni1vbmx5IGVudmlyb25t ZW50LiAgKi8KKysgIHJldCA9IHN5c3RlbSgiZ2V0ZW50IC0tbm8tYWRkcmNvbmZpZyBhaG9zdHN2 NCB0ZXN0NCIpOworICAgaWYgKHJldCAhPSAwKQorICAgICBGQUlMX0VYSVQxKCJhaG9zdHN2NCBm YWlsZWQiKTsKKyAKKyAgIC8qIExpa2V3aXNlIGZvciBJUHY2LiAgKi8KKy0gIHJldCA9IHN5c3Rl bSgiZ2V0ZW50IGFob3N0c3Y2IHRlc3Q2Iik7CisrICByZXQgPSBzeXN0ZW0oImdldGVudCAtLW5v LWFkZHJjb25maWcgIGFob3N0c3Y2IHRlc3Q2Iik7CisgICBpZiAocmV0ICE9IDApCisgICAgIEZB SUxfRVhJVDEoImFob3N0c3Y2IGZhaWxlZCIpOworIAorLS0gCisyLjM4LjEKKworCitGcm9tIDkw ODQ1NDEyOWQyMTEyNmJmN2ZjNThmMmE1MjBiMWYzMDRkYzVmMDIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBGbG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTog RnJpLCAyMyBTZXAgMjAyMiAxOTozMDo1NyArMDIwMAorU3ViamVjdDogbnNzOiBVc2Ugc2hhcmVk IHByZWZpeCBpbiBJUHY0IGFkZHJlc3MgaW4gdHN0LXJlbG9hZDEKKworT3RoZXJ3aXNlLCBzb3J0 aW5nIGJhc2VkIG9uIHRoZSBsb25nZXN0LW1hdGNoaW5nIHByZWZpeCBpbgorZ2V0YWRkcmluZm8g Y2FuIHJlb3JkZXIgdGhlIGFkZHJlc3NlcyBpbiB3YXlzIHRoZSB0ZXN0IGRvZXMgbm90CitleHBl Y3QsIGRlcGVuZGluZyBvbiB0aGUgSVB2NCBhZGRyZXNzIG9mIHRoZSBob3N0LgorCitSZXZpZXdl ZC1ieTogU2lkZGhlc2ggUG95YXJla2FyIDxzaWRkaGVzaEBzb3VyY2V3YXJlLm9yZz4KKyhjaGVy cnkgcGlja2VkIGZyb20gY29tbWl0IGMwMmUyOWEwYmE0N2Q2MzYyODFlMWEwMjY0NDRhMWEwYTI1 NGFhMTIpCistLS0KKyBuc3MvdHN0LXJlbG9hZDEuYyB8IDggKysrKy0tLS0KKyAxIGZpbGUgY2hh bmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbnNz L3RzdC1yZWxvYWQxLmMgYi9uc3MvdHN0LXJlbG9hZDEuYworaW5kZXggZmRjNWJkZDY1Yi4uYmMz MmJiMTMyYSAxMDA2NDQKKy0tLSBhL25zcy90c3QtcmVsb2FkMS5jCisrKysgYi9uc3MvdHN0LXJl bG9hZDEuYworQEAgLTQzLDEyICs0MywxMiBAQCBzdGF0aWMgc3RydWN0IHBhc3N3ZCBwd2RfdGFi bGVfMVtdID0geworIAorIHN0YXRpYyBjb25zdCBjaGFyICpob3N0YWRkcl81W10gPQorICAgewor LSAgICJBQkNEIiwgImFiY2QiLCAiMTIzNCIsIE5VTEwKKysgICAiQUJDZCIsICJBQkNEIiwgIkFC QzQiLCBOVUxMCisgICB9OworIAorIHN0YXRpYyBjb25zdCBjaGFyICpob3N0YWRkcl8xNVtdID0K KyAgIHsKKy0gICAiNDMyMSIsICJnaGlqIiwgTlVMTAorKyAgICI0MzIxIiwgIjQzMjIiLCBOVUxM CisgICB9OworIAorIHN0YXRpYyBjb25zdCBjaGFyICpob3N0YWRkcl8yNVtdID0KK0BAIC04Niwx MiArODYsMTIgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmhvc3RhZGRyXzZbXSA9CisgCisgc3RhdGlj IGNvbnN0IGNoYXIgKmhvc3RhZGRyXzE2W10gPQorICAgeworLSAgICI3ODkwIiwgImExYjIiLCBO VUxMCisrICAgIjc4OTAiLCAiNzg5MSIsIE5VTEwKKyAgIH07CisgCisgc3RhdGljIGNvbnN0IGNo YXIgKmhvc3RhZGRyXzI2W10gPQorICAgeworLSAgICJxd2VyIiwgInR5dWkiLCBOVUxMCisrICAg InF3ZXIiLCAicXdlUiIsIE5VTEwKKyAgIH07CisgCisgc3RhdGljIHN0cnVjdCBob3N0ZW50IGhv c3RfdGFibGVfMltdID0geworLS0gCisyLjM4LjEKKworCitGcm9tIDE5NTM1ZjNiNTczMDZlYTNl YzU1OWE2YzBiMTBkMmQ3YTg3NDE4YTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBG bG9yaWFuIFdlaW1lciA8ZndlaW1lckByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAxNCBPY3QgMjAy MiAxMTowMjoyNSArMDIwMAorU3ViamVjdDogZWxmOiBEbyBub3QgY29tcGxldGVseSBjbGVhciBy ZXVzZWQgbmFtZXNwYWNlIGluIGRsbW9wZW4gKGJ1ZyAyOTYwMCkKKworVGhlIGRhdGEgaW4gdGhl IF9uc19kZWJ1ZyBtZW1iZXIgbXVzdCBiZSBwcmVzZXJ2ZWQsIG90aGVyd2lzZQorX2RsX2RlYnVn X2luaXRpYWxpemUgZW50ZXJzIGFuIGluZmluaXRlIGxvb3AuICBUbyBiZSBjb25zZXJ2YXRpdmUs Citvbmx5IGNsZWFyIHRoZSBsaWJjX21hcCBtZW1iZXIgZm9yIG5vdywgdG8gZml4IGJ1ZyAyOTUy OC4KKworRml4ZXMgY29tbWl0IGQwZTM1N2ZmNDVhNzU1NTNkZWUzYjE3ZWQ3ZDMwM2JmYTU0NGY2 ZmUKKygiZWxmOiBDYWxsIF9fbGliY19lYXJseV9pbml0IGZvciByZXVzZWQgbmFtZXNwYWNlcyAo YnVnIDI5NTI4KSIpLAorYnkgcmV2ZXJ0aW5nIG1vc3Qgb2YgaXQuCisKK1Jldmlld2VkLWJ5OiBD YXJsb3MgTydEb25lbGwgPGNhcmxvc0ByZWRoYXQuY29tPgorVGVzdGVkLWJ5OiBDYXJsb3MgTydE b25lbGwgPGNhcmxvc0ByZWRoYXQuY29tPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgMmM0 MjI1NzMxNDUzNmI5NGNjOGQ1MmVkZWRlODZlOTRlOThjMTQzNikKKy0tLQorIE5FV1MgICAgICAg ICAgICAgICAgICAgIHwgIDEgKworIGVsZi9kbC1vcGVuLmMgICAgICAgICAgIHwgMTQgKysrKysr LS0tLS0tLS0KKyBlbGYvdHN0LWRsbW9wZW4tdHdpY2UuYyB8IDI4ICsrKysrKysrKysrKysrKysr KysrKysrKy0tLS0KKyAzIGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDEyIGRlbGV0 aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKK2luZGV4IGRlNzc1YWIxMTYuLmE2 ZGE1ODhjODUgMTAwNjQ0CistLS0gYS9ORVdTCisrKysgYi9ORVdTCitAQCAtMzcsNiArMzcsNyBA QCBUaGUgZm9sbG93aW5nIGJ1Z3MgYXJlIHJlc29sdmVkIHdpdGggdGhpcyByZWxlYXNlOgorICAg WzI5NTM3XSBsaWJjOiBbMi4zNCByZWdyZXNzaW9uXTogQWxpZ25tZW50IGlzc3VlIG9uIG02OGsg d2hlbiB1c2luZworICAgWzI5NTM5XSBsaWJjOiBMRF9UUkFDRV9MT0FERURfT0JKRUNUUyBjaGFu Z2VkIGhvdyB2RFNPIGxpYnJhcnkgYXJlCisgICBbMjk1ODNdIFVzZSA2NC1iaXQgaW50ZXJmYWNl cyBpbiBnY29udl9wYXJzZWNvbmZkaXIKKysgIFsyOTYwMF0gRG8gbm90IGNvbXBsZXRlbHkgY2xl YXIgcmV1c2VkIG5hbWVzcGFjZSBpbiBkbG1vcGVuCisgICBbMjk2MDddIG5zY2QgcmVwZWF0YWJs eSBjcmFzaGVzIGNhbGxpbmcgX19zdHJsZW5fYXZ4MiB3aGVuIGhvc3RzIGNhY2hlIGlzCisgICAg IGVuYWJsZWQKKyAgIFsyOTYzOF0gbGliYzogc3RkbGliOiBhcmM0cmFuZG9tIGZhbGxiYWNrIGlz IG5ldmVyIHVzZWQKK2RpZmYgLS1naXQgYS9lbGYvZGwtb3Blbi5jIGIvZWxmL2RsLW9wZW4uYwor aW5kZXggNDZlODA2NmZkOC4uZTdkYjVlOTY0MiAxMDA2NDQKKy0tLSBhL2VsZi9kbC1vcGVuLmMK KysrKyBiL2VsZi9kbC1vcGVuLmMKK0BAIC04NDQsMTUgKzg0NCwxMyBAQCBfZGxfb3BlbiAoY29u c3QgY2hhciAqZmlsZSwgaW50IG1vZGUsIGNvbnN0IHZvaWQgKmNhbGxlcl9kbG9wZW4sIExtaWRf dCBuc2lkLAorIAkgIF9kbF9zaWduYWxfZXJyb3IgKEVJTlZBTCwgZmlsZSwgTlVMTCwgTl8oIlwK KyBubyBtb3JlIG5hbWVzcGFjZXMgYXZhaWxhYmxlIGZvciBkbG1vcGVuKCkiKSk7CisgCX0KKysg ICAgICBlbHNlIGlmIChuc2lkID09IEdMKGRsX25ucykpCisrCXsKKysJICBfX3J0bGRfbG9ja19p bml0aWFsaXplIChHTChkbF9ucylbbnNpZF0uX25zX3VuaXF1ZV9zeW1fdGFibGUubG9jayk7Cisr CSAgKytHTChkbF9ubnMpOworKwl9CisgCistICAgICAgaWYgKG5zaWQgPT0gR0woZGxfbm5zKSkK Ky0JKytHTChkbF9ubnMpOworLQorLSAgICAgIC8qIEluaXRpYWxpemUgdGhlIG5ldyBuYW1lc3Bh Y2UuICBNb3N0IG1lbWJlcnMgYXJlCistCSB6ZXJvLWluaXRpYWxpemVkLCBvbmx5IHRoZSBsb2Nr IG5lZWRzIHNwZWNpYWwgdHJlYXRtZW50LiAgKi8KKy0gICAgICBtZW1zZXQgKCZHTChkbF9ucylb bnNpZF0sIDAsIHNpemVvZiAoR0woZGxfbnMpW25zaWRdKSk7CistICAgICAgX19ydGxkX2xvY2tf aW5pdGlhbGl6ZSAoR0woZGxfbnMpW25zaWRdLl9uc191bmlxdWVfc3ltX3RhYmxlLmxvY2spOwor LQorKyAgICAgIEdMKGRsX25zKVtuc2lkXS5saWJjX21hcCA9IE5VTEw7CisgICAgICAgX2RsX2Rl YnVnX3VwZGF0ZSAobnNpZCktPnJfc3RhdGUgPSBSVF9DT05TSVNURU5UOworICAgICB9CisgICAv KiBOZXZlciBhbGxvdyBsb2FkaW5nIGEgRFNPIGluIGEgbmFtZXNwYWNlIHdoaWNoIGlzIGVtcHR5 LiAgU3VjaAorZGlmZiAtLWdpdCBhL2VsZi90c3QtZGxtb3Blbi10d2ljZS5jIGIvZWxmL3RzdC1k bG1vcGVuLXR3aWNlLmMKK2luZGV4IDQ0OWYzYzhmYTkuLjcwYzcxZmUxOWMgMTAwNjQ0CistLS0g YS9lbGYvdHN0LWRsbW9wZW4tdHdpY2UuYworKysrIGIvZWxmL3RzdC1kbG1vcGVuLXR3aWNlLmMK K0BAIC0xNiwxOCArMTYsMzggQEAKKyAgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExp YnJhcnk7IGlmIG5vdCwgc2VlCisgICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICovCisgCistI2luY2x1ZGUgPHN1cHBvcnQveGRsZmNuLmg+CisrI2luY2x1ZGUgPHN0ZGlvLmg+ CisgI2luY2x1ZGUgPHN1cHBvcnQvY2hlY2suaD4KKysjaW5jbHVkZSA8c3VwcG9ydC94ZGxmY24u aD4KKyAKKy1zdGF0aWMgaW50CistZG9fdGVzdCAodm9pZCkKKysvKiBSdW4gdGhlIHRlc3QgbXVs dGlwbGUgdGltZXMsIHRvIGNoZWNrIGZpbmRpbmcgYSBuZXcgbmFtZXNwYWNlIHdoaWxlCisrICAg YW5vdGhlciBuYW1lc3BhY2UgaXMgYWxyZWFkeSBpbiB1c2UuICBUaGlzIHVzZWQgdG8gdHJpZ2dl ciBidWcgMjk2MDAuICAqLworK3N0YXRpYyB2b2lkCisrcmVjdXJzZSAoaW50IGRlcHRoKQorIHsK Ky0gIHZvaWQgKmhhbmRsZSA9IHhkbG1vcGVuIChMTV9JRF9ORVdMTSwgInRzdC1kbG1vcGVuLXR3 aWNlLW1vZDEuc28iLCBSVExEX05PVyk7CisrICBpZiAoZGVwdGggPT0gMCkKKysgICAgcmV0dXJu OworKworKyAgcHJpbnRmICgiaW5mbzogcnVubmluZyBhdCBkZXB0aCAlZFxuIiwgZGVwdGgpOwor KyAgdm9pZCAqaGFuZGxlID0geGRsbW9wZW4gKExNX0lEX05FV0xNLCAidHN0LWRsbW9wZW4tdHdp Y2UtbW9kMS5zbyIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRMRF9OT1cpOworICAg eGRsY2xvc2UgKGhhbmRsZSk7CisgICBoYW5kbGUgPSB4ZGxtb3BlbiAoTE1fSURfTkVXTE0sICJ0 c3QtZGxtb3Blbi10d2ljZS1tb2QyLnNvIiwgUlRMRF9OT1cpOworICAgaW50ICgqcnVuX2NoZWNr KSAodm9pZCkgPSB4ZGxzeW0gKGhhbmRsZSwgInJ1bl9jaGVjayIpOworICAgVEVTVF9DT01QQVJF IChydW5fY2hlY2sgKCksIDApOworKyAgcmVjdXJzZSAoZGVwdGggLSAxKTsKKyAgIHhkbGNsb3Nl IChoYW5kbGUpOworK30KKysKKytzdGF0aWMgaW50CisrZG9fdGVzdCAodm9pZCkKKyt7CisrICAv KiBGaXJzdCBydW4gdGhlIHRlc3Qgd2l0aG91dCBuZXN0aW5nLiAgKi8KKysgIHJlY3Vyc2UgKDEp OworKworKyAgLyogVGhlbiB3aXRoIG5lc3RpbmcuICBUaGUgY29uc3RhbnQgbmVlZHMgdG8gYmUg bGVzcyB0aGFuIHRoZQorKyAgICAgaW50ZXJuYWwgRExfTk5TIG5hbWVzcGFjZSBjb25zdGFudC4g ICovCisrICByZWN1cnNlICgxMCk7CisgICByZXR1cm4gMDsKKyB9CisgCistLSAKKzIuMzguMQor CisKK0Zyb20gYjM1NzE1NzM2MTExNzE4MmM3YTY4YzkwZmRhN2JhNDMxYjY0NDQyYyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pY2hhZWwgSHVkc29uLURveWxlIDxtaWNoYWVsLmh1 ZHNvbkBjYW5vbmljYWwuY29tPgorRGF0ZTogTW9uLCAyMiBBdWcgMjAyMiAxNDowNTowNCArMTIw MAorU3ViamVjdDogRml4IEJaICMyOTQ2MyBpbiB0aGUgaWJtMTI4IGltcGxlbWVudGF0aW9uIG9m IHkxbCB0b28KKworQXZvaWQgbW92aW5nIGNvZGUgYWNyb3NzIFNFVF9SRVNUT1JFX1JPVU5ETCBp biBvcmRlciB0byBmaXgKK1tCWiAjMjk0NjNdLgorCitUZXN0ZWQtYnk6IEF1cmVsaWVuIEphcm5v IDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KK1Jldmlld2VkLWJ5OiBBdXJlbGllbiBKYXJubyA8YXVy ZWxpZW5AYXVyZWwzMi5uZXQ+CitSZXZpZXdlZC1ieTogVHVsaW8gTWFnbm8gUXVpdGVzIE1hY2hh ZG8gRmlsaG8gPHR1bGlvbUBsaW51eC5pYm0uY29tPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21t aXQgYjZlMzdiNzgwNWIwMTgyYzNlMjVjZGFiMzllYmY1ZjAwMWMwNGQwNSkKKy0tLQorIHN5c2Rl cHMvaWVlZTc1NC9sZGJsLTEyOGlibS9lX2oxbC5jIHwgMyArKysKKyAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zeXNkZXBzL2llZWU3NTQvbGRibC0xMjhp Ym0vZV9qMWwuYyBiL3N5c2RlcHMvaWVlZTc1NC9sZGJsLTEyOGlibS9lX2oxbC5jCitpbmRleCBm ODViYTk0NDY2Li4wYTVmZTY4MzQyIDEwMDY0NAorLS0tIGEvc3lzZGVwcy9pZWVlNzU0L2xkYmwt MTI4aWJtL2VfajFsLmMKKysrKyBiL3N5c2RlcHMvaWVlZTc1NC9sZGJsLTEyOGlibS9lX2oxbC5j CitAQCAtNzkyLDEwICs3OTIsMTMgQEAgX19pZWVlNzU0X3kxbCAobG9uZyBkb3VibGUgeCkKKyAg ICAgeworICAgICAgIC8qIDAgPD0geCA8PSAyICovCisgICAgICAgU0VUX1JFU1RPUkVfUk9VTkRM IChGRV9UT05FQVJFU1QpOworKyAgICAgIHh4ID0gbWF0aF9vcHRfYmFycmllciAoeHgpOworKyAg ICAgIHggPSBtYXRoX29wdF9iYXJyaWVyICh4KTsKKyAgICAgICB6ID0geHggKiB4eDsKKyAgICAg ICBwID0geHggKiBuZXZhbCAoeiwgWTBfMk4sIE5ZMF8yTikgLyBkZXZhbCAoeiwgWTBfMkQsIE5Z MF8yRCk7CisgICAgICAgcCA9IC1UV09PUEkgLyB4eCArIHA7CisgICAgICAgcCA9IFRXT09QSSAq IF9faWVlZTc1NF9sb2dsICh4KSAqIF9faWVlZTc1NF9qMWwgKHgpICsgcDsKKysgICAgICBtYXRo X2ZvcmNlX2V2YWwgKHApOworICAgICAgIHJldHVybiBwOworICAgICB9CisgCistLSAKKzIuMzgu MQorCisKK0Zyb20gOTI3M2IyZDBlOTNlNzM1NTY1NmNhZDNiZTNhMWNhNzY0ODlkZjQ4MyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEF1cmVsaWVuIEphcm5vIDxhdXJlbGllbkBhdXJl bDMyLm5ldD4KK0RhdGU6IE1vbiwgMTAgT2N0IDIwMjIgMDA6Mzk6MzMgKzAyMDAKK1N1YmplY3Q6 IEF2b2lkIHVuZGVmaW5lZCBiZWhhdmlvdXIgaW4gaWJtMTI4IGltcGxlbWVudGF0aW9uIG9mIGxs cm91bmRsIChCWgorICMyOTQ4OCkKKworRGV0ZWN0aW5nIGFuIG92ZXJmbG93IGVkZ2UgY2FzZSBk ZXBlbmRlZCBvbiBzaWduZWQgb3ZlcmZsb3cgb2YgYSBsb25nCitsb25nLiBSZXBsYWNlIHRoZSBh ZGRpdGlvbnMgYW5kIHRoZSBvdmVyZmxvdyBjaGVja3MgYnkKK19fYnVpbHRpbl9hZGRfb3ZlcmZs b3coKS4KKworUmV2aWV3ZWQtYnk6IFR1bGlvIE1hZ25vIFF1aXRlcyBNYWNoYWRvIEZpbGhvIDx0 dWxpb21AbGludXguaWJtLmNvbT4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDJiNTQ3ODU2 OWU3MmVlNDgyMGE2ZTE2M2QzMDY2OTBjOWMwZWFmNWUpCistLS0KKyBORVdTICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKysKKyBzeXNkZXBzL2llZWU3NTQvbGRibC0x MjhpYm0vc19sbHJvdW5kbC5jIHwgMjEgKysrKysrKysrLS0tLS0tLS0tLS0tCisgMiBmaWxlcyBj aGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh L05FV1MgYi9ORVdTCitpbmRleCBhNmRhNTg4Yzg1Li44YzYwZDNkYzhkIDEwMDY0NAorLS0tIGEv TkVXUworKysrIGIvTkVXUworQEAgLTMzLDYgKzMzLDggQEAgVGhlIGZvbGxvd2luZyBidWdzIGFy ZSByZXNvbHZlZCB3aXRoIHRoaXMgcmVsZWFzZToKKyAgIFsyOTQ4NV0gTGludXg6IFRlcm1pbmF0 ZSBzdWJwcm9jZXNzIG9uIGxhdGUgZmFpbHVyZSBpbiB0c3QtcGlkZmQKKyAgIFsyOTQ5MF0gYWxw aGE6IE5ldyBfX2Jya19jYWxsIGltcGxlbWVudGF0aW9uIGlzIGJyb2tlbgorICAgWzI5NDYzXSBt YXRoL3Rlc3QtZmxvYXQxMjgteTEgZmFpbHMgb24geDg2XzY0CisrICBbMjk0ODhdIHRlc3QtaWJt MTI4LWxscm91bmQgZmFpbHMgb24gcHBjNjRlbCB3aGVuIGJ1aWx0IHdpdGggZ2NjLTEyIGFuZCAt TzIKKysgICAgb3IgaGlnaGVyCisgICBbMjk1MjhdIGVsZjogQ2FsbCBfX2xpYmNfZWFybHlfaW5p dCBmb3IgcmV1c2VkIG5hbWVzcGFjZXMKKyAgIFsyOTUzN10gbGliYzogWzIuMzQgcmVncmVzc2lv bl06IEFsaWdubWVudCBpc3N1ZSBvbiBtNjhrIHdoZW4gdXNpbmcKKyAgIFsyOTUzOV0gbGliYzog TERfVFJBQ0VfTE9BREVEX09CSkVDVFMgY2hhbmdlZCBob3cgdkRTTyBsaWJyYXJ5IGFyZQorZGlm ZiAtLWdpdCBhL3N5c2RlcHMvaWVlZTc1NC9sZGJsLTEyOGlibS9zX2xscm91bmRsLmMgYi9zeXNk ZXBzL2llZWU3NTQvbGRibC0xMjhpYm0vc19sbHJvdW5kbC5jCitpbmRleCBkODUxNTRlNzNhLi5k OGMwZGUxZmFmIDEwMDY0NAorLS0tIGEvc3lzZGVwcy9pZWVlNzU0L2xkYmwtMTI4aWJtL3NfbGxy b3VuZGwuYworKysrIGIvc3lzZGVwcy9pZWVlNzU0L2xkYmwtMTI4aWJtL3NfbGxyb3VuZGwuYwor QEAgLTY2LDM4ICs2NiwzNSBAQCBfX2xscm91bmRsIChsb25nIGRvdWJsZSB4KQorICAgICAgIC8q IFBlZyBhdCBtYXgvbWluIHZhbHVlcywgYXNzdW1pbmcgdGhhdCB0aGUgYWJvdmUgY29udmVyc2lv bnMgZG8gc28uCisgICAgICAgICAgU3RyaWN0bHkgc3BlYWtpbmcsIHdlIGNhbiByZXR1cm4gYW55 dGhpbmcgZm9yIHZhbHVlcyB0aGF0IG92ZXJmbG93LAorICAgICAgICAgIGJ1dCB0aGlzIGlzIG1v cmUgdXNlZnVsLiAgKi8KKy0gICAgICByZXMgPSBoaSArIGxvOworLQorLSAgICAgIC8qIFRoaXMg aXMganVzdCBzaWduKGhpKSA9PSBzaWduKGxvKSAmJiBzaWduKHJlcykgIT0gc2lnbihoaSkuICAq LworLSAgICAgIGlmIChfX2dsaWJjX3VubGlrZWx5ICgoKH4oaGkgXiBsbykgJiAocmVzIF4gaGkp KSA8IDApKSkKKysgICAgICBpZiAoX19nbGliY191bmxpa2VseSAoX19idWlsdGluX2FkZF9vdmVy ZmxvdyAoaGksIGxvLCAmcmVzKSkpCisgCWdvdG8gb3ZlcmZsb3c7CisgCisgICAgICAgeGggLT0g bG87CisgICAgICAgbGRibF9jYW5vbmljYWxpemUgKCZ4aCwgJnhsKTsKKyAKKy0gICAgICBoaSA9 IHJlczsKKyAgICAgICBpZiAoeGggPiAwLjUpCisgCXsKKy0JICByZXMgKz0gMTsKKysJICBpZiAo X19nbGliY191bmxpa2VseSAoX19idWlsdGluX2FkZF9vdmVyZmxvdyAocmVzLCAxLCAmcmVzKSkp CisrCSAgICBnb3RvIG92ZXJmbG93OworIAl9CisgICAgICAgZWxzZSBpZiAoeGggPT0gMC41KQor IAl7CisgCSAgaWYgKHhsID4gMC4wIHx8ICh4bCA9PSAwLjAgJiYgcmVzID49IDApKQorLQkgICAg cmVzICs9IDE7CisrCSAgICBpZiAoX19nbGliY191bmxpa2VseSAoX19idWlsdGluX2FkZF9vdmVy ZmxvdyAocmVzLCAxLCAmcmVzKSkpCisrCSAgICAgIGdvdG8gb3ZlcmZsb3c7CisgCX0KKyAgICAg ICBlbHNlIGlmICgteGggPiAwLjUpCisgCXsKKy0JICByZXMgLT0gMTsKKysJICBpZiAoX19nbGli Y191bmxpa2VseSAoX19idWlsdGluX2FkZF9vdmVyZmxvdyAocmVzLCAtMSwgJnJlcykpKQorKwkg ICAgZ290byBvdmVyZmxvdzsKKyAJfQorICAgICAgIGVsc2UgaWYgKC14aCA9PSAwLjUpCisgCXsK KyAJICBpZiAoeGwgPCAwLjAgfHwgKHhsID09IDAuMCAmJiByZXMgPD0gMCkpCistCSAgICByZXMg LT0gMTsKKysJICAgIGlmIChfX2dsaWJjX3VubGlrZWx5IChfX2J1aWx0aW5fYWRkX292ZXJmbG93 IChyZXMsIC0xLCAmcmVzKSkpCisrCSAgICAgIGdvdG8gb3ZlcmZsb3c7CisgCX0KKyAKKy0gICAg ICBpZiAoX19nbGliY191bmxpa2VseSAoKCh+KGhpIF4gKHJlcyAtIGhpKSkgJiAocmVzIF4gaGkp KSA8IDApKSkKKy0JZ290byBvdmVyZmxvdzsKKy0KKyAgICAgICByZXR1cm4gcmVzOworICAgICB9 CisgICBlbHNlCistLSAKKzIuMzguMQorCisKK0Zyb20gN2I3ZGZiYjBjYmRmZmViZjAyMzNjNjUw NjI3YTQ4NjEyMTJmYmI2MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFkaGVtZXJ2 YWwgWmFuZWxsYSA8YWRoZW1lcnZhbC56YW5lbGxhQGxpbmFyby5vcmc+CitEYXRlOiBXZWQsIDE5 IE9jdCAyMDIyIDE5OjE0OjA0IC0wMzAwCitTdWJqZWN0OiBsaW51eDogRml4IGdlbmVyaWMgc3Ry dWN0X3N0YXQgZm9yIDY0IGJpdCB0aW1lIChCWiMgMjk2NTcpCisKK1RoZSBnZW5lcmljIExpbnV4 IHN0cnVjdF9zdGF0IG1pc3NlcyB0aGUgY29uZGl0aW9uYWxzIHRvIHVzZQorYml0cy9zdHJ1Y3Rf c3RhdF90aW1lNjRfaGVscGVyLmggaW4gdGhlIF9fVVNFX1RJTUVfQklUUzY0IGZvcgorYXJjaGl0 ZWN0dXJlIHRoYXQgdXNlcyBfX1RJTUVTSVpFID09IDMyIChjdXJyZW50bHkgY3NreSBhbmQgbmlv czIpLgorCitTaW5jZSBuZXdlciBwb3J0cyBzaG91bGQgbm90IHN1cHBvcnQgMzIgYml0IHRpbWVf dCwgdGhlIGdlbmVyaWMKK2ltcGxlbWVudGF0aW9uIHNob3VsZCBiZSB1c2VkIGFzIGRlZmF1bHQu CisKK0ZvciBhcm0sIGhwcGEsIGFuZCBzaCBhIGNvcHkgb2YgZGVmYXVsdCBzdHJ1Y3Rfc3RhdCBp cyBhZGRlZCwKK3doaWxlIGZvciBjc2t5IGFuZCBuaW9zIGEgbmV3IG9uZSBiYXNlZCBvbiBnZW5l cmljIGlzIHVzZWQsIGFsb25nCit3aXRoIGNvbmRpdGlvbmFscyB0byB1c2UgYml0cy9zdHJ1Y3Rf c3RhdF90aW1lNjRfaGVscGVyLmguCisKK1RoZSBkZWZhdWx0IHN0cnVjdF9zdGF0IGlzIGFsc28g cmVwbGFjZWQgd2l0aCB0aGUgZ2VuZXJpYyBvbmUuCisKK0NoZWNrZWQgb24gYWFyY2g2NC1saW51 eC1nbnUgYW5kIGFybS1saW51eC1nbnVlYWJpaGYuCisKKyhjaGVycnkgcGlja2VkIGZyb20gY29t bWl0IDdhNmNhODJmODAwN2RkYmQ0M2UyYjhmY2U4MDZiYTcxMDFlZTQ3ZjUpCistLS0KKyBORVdT ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKworIC4uLi91 bml4L3N5c3YvbGludXgvYXJtL2JpdHMvc3RydWN0X3N0YXQuaCAgICB8IDEzOSArKysrKysrKysr KysrKysrKysKKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9iaXRzL3N0cnVjdF9zdGF0LmggICAg fCAxMTYgKysrKysrKy0tLS0tLS0tCisgLi4uL3tnZW5lcmljID0+IGNza3l9L2JpdHMvc3RydWN0 X3N0YXQuaCAgICAgIHwgIDI4ICsrLS0KKyAuLi4vdW5peC9zeXN2L2xpbnV4L2hwcGEvYml0cy9z dHJ1Y3Rfc3RhdC5oICAgfCAxMzkgKysrKysrKysrKysrKysrKysrCisgLi4uL3VuaXgvc3lzdi9s aW51eC9uaW9zMi9iaXRzL3N0cnVjdF9zdGF0LmggIHwgMTM1ICsrKysrKysrKysrKysrKysrCisg c3lzZGVwcy91bml4L3N5c3YvbGludXgvc2gvYml0cy9zdHJ1Y3Rfc3RhdC5oIHwgMTM5ICsrKysr KysrKysrKysrKysrKworIDcgZmlsZXMgY2hhbmdlZCwgNjI0IGluc2VydGlvbnMoKyksIDc0IGRl bGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9h cm0vYml0cy9zdHJ1Y3Rfc3RhdC5oCisgcmVuYW1lIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3tn ZW5lcmljID0+IGNza3l9L2JpdHMvc3RydWN0X3N0YXQuaCAoOTIlKQorIGNyZWF0ZSBtb2RlIDEw MDY0NCBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9ocHBhL2JpdHMvc3RydWN0X3N0YXQuaAorIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9uaW9zMi9iaXRzL3N0cnVj dF9zdGF0LmgKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2gv Yml0cy9zdHJ1Y3Rfc3RhdC5oCisKK2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXggOGM2 MGQzZGM4ZC4uODMzMDQ1NTg1ZiAxMDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BAIC00 Myw2ICs0Myw4IEBAIFRoZSBmb2xsb3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlzIHJl bGVhc2U6CisgICBbMjk2MDddIG5zY2QgcmVwZWF0YWJseSBjcmFzaGVzIGNhbGxpbmcgX19zdHJs ZW5fYXZ4MiB3aGVuIGhvc3RzIGNhY2hlIGlzCisgICAgIGVuYWJsZWQKKyAgIFsyOTYzOF0gbGli Yzogc3RkbGliOiBhcmM0cmFuZG9tIGZhbGxiYWNrIGlzIG5ldmVyIHVzZWQKKysgIFsyOTY1N10g bGliYzogSW5jb3JyZWN0IHN0cnVjdCBzdGF0IGZvciA2NC1iaXQgdGltZSBvbiBsaW51eC9nZW5l cmljCisrICAgIHBsYXRmb3JtcworIAwKKyBWZXJzaW9uIDIuMzYKKyAKK2RpZmYgLS1naXQgYS9z eXNkZXBzL3VuaXgvc3lzdi9saW51eC9hcm0vYml0cy9zdHJ1Y3Rfc3RhdC5oIGIvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvYXJtL2JpdHMvc3RydWN0X3N0YXQuaAorbmV3IGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDAwMDAwMDAwMDAuLjMwZWU2Mjc5ZDIKKy0tLSAvZGV2L251bGwKKysrKyBiL3N5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L2FybS9iaXRzL3N0cnVjdF9zdGF0LmgKK0BAIC0wLDAgKzEs MTM5IEBACisrLyogRGVmaW5pdGlvbiBmb3Igc3RydWN0IHN0YXQuICBMaW51eC9hcm0gdmVyc2lv bi4KKysgICBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysKKysg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vu c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdO VSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBh bG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5LiAgSWYgbm90LCBzZWUKKysgICA8aHR0cHM6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaWYgIWRlZmluZWQgX1NZU19TVEFUX0gg JiYgIWRlZmluZWQgX0ZDTlRMX0gKKysjIGVycm9yICJOZXZlciBpbmNsdWRlIDxiaXRzL3N0cnVj dF9zdGF0Lmg+IGRpcmVjdGx5OyB1c2UgPHN5cy9zdGF0Lmg+IGluc3RlYWQuIgorKyNlbmRpZgor KworKyNpZm5kZWYgX0JJVFNfU1RSVUNUX1NUQVRfSAorKyNkZWZpbmUgX0JJVFNfU1RSVUNUX1NU QVRfSAkxCisrCisrI2luY2x1ZGUgPGJpdHMvZW5kaWFuLmg+CisrI2luY2x1ZGUgPGJpdHMvd29y ZHNpemUuaD4KKysKKytzdHJ1Y3Qgc3RhdAorKyAgeworKyNpZmRlZiBfX1VTRV9USU1FX0JJVFM2 NAorKyMgaW5jbHVkZSA8Yml0cy9zdHJ1Y3Rfc3RhdF90aW1lNjRfaGVscGVyLmg+CisrI2Vsc2UK KysgICAgX19kZXZfdCBzdF9kZXY7CQkJLyogRGV2aWNlLiAgKi8KKysgICAgdW5zaWduZWQgc2hv cnQgaW50IF9fcGFkMTsKKysjIGlmbmRlZiBfX1VTRV9GSUxFX09GRlNFVDY0CisrICAgIF9faW5v X3Qgc3RfaW5vOwkJCS8qIEZpbGUgc2VyaWFsIG51bWJlci4JKi8KKysjIGVsc2UKKysgICAgX19p bm9fdCBfX3N0X2lubzsJCQkvKiAzMmJpdCBmaWxlIHNlcmlhbCBudW1iZXIuCSovCisrIyBlbmRp ZgorKyAgICBfX21vZGVfdCBzdF9tb2RlOwkJCS8qIEZpbGUgbW9kZS4gICovCisrICAgIF9fbmxp bmtfdCBzdF9ubGluazsJCQkvKiBMaW5rIGNvdW50LiAgKi8KKysgICAgX191aWRfdCBzdF91aWQ7 CQkJLyogVXNlciBJRCBvZiB0aGUgZmlsZSdzIG93bmVyLgkqLworKyAgICBfX2dpZF90IHN0X2dp ZDsJCQkvKiBHcm91cCBJRCBvZiB0aGUgZmlsZSdzIGdyb3VwLiovCisrICAgIF9fZGV2X3Qgc3Rf cmRldjsJCQkvKiBEZXZpY2UgbnVtYmVyLCBpZiBkZXZpY2UuICAqLworKyAgICB1bnNpZ25lZCBz aG9ydCBpbnQgX19wYWQyOworKyMgaWZuZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKysgICAgX19v ZmZfdCBzdF9zaXplOwkJCS8qIFNpemUgb2YgZmlsZSwgaW4gYnl0ZXMuICAqLworKyMgZWxzZQor KyAgICBfX29mZjY0X3Qgc3Rfc2l6ZTsJCQkvKiBTaXplIG9mIGZpbGUsIGluIGJ5dGVzLiAgKi8K KysjIGVuZGlmCisrICAgIF9fYmxrc2l6ZV90IHN0X2Jsa3NpemU7CQkvKiBPcHRpbWFsIGJsb2Nr IHNpemUgZm9yIEkvTy4gICovCisrCisrIyBpZm5kZWYgX19VU0VfRklMRV9PRkZTRVQ2NAorKyAg ICBfX2Jsa2NudF90IHN0X2Jsb2NrczsJCS8qIE51bWJlciA1MTItYnl0ZSBibG9ja3MgYWxsb2Nh dGVkLiAqLworKyMgZWxzZQorKyAgICBfX2Jsa2NudDY0X3Qgc3RfYmxvY2tzOwkJLyogTnVtYmVy IDUxMi1ieXRlIGJsb2NrcyBhbGxvY2F0ZWQuICovCisrIyBlbmRpZgorKyMgaWZkZWYgX19VU0Vf WE9QRU4ySzgKKysgICAgLyogTmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWVzdGFtcHMgYXJlIHN0 b3JlZCBpbiBhIGZvcm1hdAorKyAgICAgICBlcXVpdmFsZW50IHRvICdzdHJ1Y3QgdGltZXNwZWMn LiAgVGhpcyBpcyB0aGUgdHlwZSB1c2VkCisrICAgICAgIHdoZW5ldmVyIHBvc3NpYmxlIGJ1dCB0 aGUgVW5peCBuYW1lc3BhY2UgcnVsZXMgZG8gbm90IGFsbG93IHRoZQorKyAgICAgICBpZGVudGlm aWVyICd0aW1lc3BlYycgdG8gYXBwZWFyIGluIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyLgorKyAg ICAgICBUaGVyZWZvcmUgd2UgaGF2ZSB0byBoYW5kbGUgdGhlIHVzZSBvZiB0aGlzIGhlYWRlciBp biBzdHJpY3RseQorKyAgICAgICBzdGFuZGFyZC1jb21wbGlhbnQgc291cmNlcyBzcGVjaWFsLiAg Ki8KKysgICAgc3RydWN0IHRpbWVzcGVjIHN0X2F0aW07CQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNz LiAgKi8KKysgICAgc3RydWN0IHRpbWVzcGVjIHN0X210aW07CQkvKiBUaW1lIG9mIGxhc3QgbW9k aWZpY2F0aW9uLiAgKi8KKysgICAgc3RydWN0IHRpbWVzcGVjIHN0X2N0aW07CQkvKiBUaW1lIG9m IGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCisrIyAgZGVmaW5lIHN0X2F0aW1lIHN0X2F0aW0udHZf c2VjCS8qIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICAqLworKyMgIGRlZmluZSBzdF9tdGltZSBz dF9tdGltLnR2X3NlYworKyMgIGRlZmluZSBzdF9jdGltZSBzdF9jdGltLnR2X3NlYworKyMgZWxz ZQorKyAgICBfX3RpbWVfdCBzdF9hdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8K KysgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfYXRpbWVuc2VjOwkvKiBOc2NlY3Mgb2YgbGFzdCBh Y2Nlc3MuICAqLworKyAgICBfX3RpbWVfdCBzdF9tdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgbW9k aWZpY2F0aW9uLiAgKi8KKysgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfbXRpbWVuc2VjOwkvKiBO c2VjcyBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIF9fdGltZV90IHN0X2N0aW1lOwkJ CS8qIFRpbWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysgICAgdW5zaWduZWQgbG9uZyBp bnQgc3RfY3RpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyMg ZW5kaWYKKysjIGlmbmRlZiBfX1VTRV9GSUxFX09GRlNFVDY0CisrICAgIHVuc2lnbmVkIGxvbmcg aW50IF9fZ2xpYmNfcmVzZXJ2ZWQ0OworKyAgICB1bnNpZ25lZCBsb25nIGludCBfX2dsaWJjX3Jl c2VydmVkNTsKKysjIGVsc2UKKysgICAgX19pbm82NF90IHN0X2lubzsJCQkvKiBGaWxlIHNlcmlh bCBudW1iZXIuCSovCisrIyBlbmRpZgorKyNlbmRpZiAvKiBfX1VTRV9USU1FX0JJVFM2NCAgKi8K KysgIH07CisrCisrI2lmZGVmIF9fVVNFX0xBUkdFRklMRTY0Cisrc3RydWN0IHN0YXQ2NAorKyAg eworKyMgaWZkZWYgX19VU0VfVElNRV9CSVRTNjQKKysjICBpbmNsdWRlIDxiaXRzL3N0cnVjdF9z dGF0X3RpbWU2NF9oZWxwZXIuaD4KKysjIGVsc2UKKysgICAgX19kZXZfdCBzdF9kZXY7CQkJLyog RGV2aWNlLiAgKi8KKysgICAgdW5zaWduZWQgaW50IF9fcGFkMTsKKysKKysgICAgX19pbm9fdCBf X3N0X2lubzsJCQkvKiAzMmJpdCBmaWxlIHNlcmlhbCBudW1iZXIuCSovCisrICAgIF9fbW9kZV90 IHN0X21vZGU7CQkJLyogRmlsZSBtb2RlLiAgKi8KKysgICAgX19ubGlua190IHN0X25saW5rOwkJ CS8qIExpbmsgY291bnQuICAqLworKyAgICBfX3VpZF90IHN0X3VpZDsJCQkvKiBVc2VyIElEIG9m IHRoZSBmaWxlJ3Mgb3duZXIuCSovCisrICAgIF9fZ2lkX3Qgc3RfZ2lkOwkJCS8qIEdyb3VwIElE IG9mIHRoZSBmaWxlJ3MgZ3JvdXAuKi8KKysgICAgX19kZXZfdCBzdF9yZGV2OwkJCS8qIERldmlj ZSBudW1iZXIsIGlmIGRldmljZS4gICovCisrICAgIHVuc2lnbmVkIGludCBfX3BhZDI7CisrICAg IF9fb2ZmNjRfdCBzdF9zaXplOwkJCS8qIFNpemUgb2YgZmlsZSwgaW4gYnl0ZXMuICAqLworKyAg ICBfX2Jsa3NpemVfdCBzdF9ibGtzaXplOwkJLyogT3B0aW1hbCBibG9jayBzaXplIGZvciBJL08u ICAqLworKworKyAgICBfX2Jsa2NudDY0X3Qgc3RfYmxvY2tzOwkJLyogTnVtYmVyIDUxMi1ieXRl IGJsb2NrcyBhbGxvY2F0ZWQuICovCisrIyAgaWZkZWYgX19VU0VfWE9QRU4ySzgKKysgICAgLyog TmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWVzdGFtcHMgYXJlIHN0b3JlZCBpbiBhIGZvcm1hdAor KyAgICAgICBlcXVpdmFsZW50IHRvICdzdHJ1Y3QgdGltZXNwZWMnLiAgVGhpcyBpcyB0aGUgdHlw ZSB1c2VkCisrICAgICAgIHdoZW5ldmVyIHBvc3NpYmxlIGJ1dCB0aGUgVW5peCBuYW1lc3BhY2Ug cnVsZXMgZG8gbm90IGFsbG93IHRoZQorKyAgICAgICBpZGVudGlmaWVyICd0aW1lc3BlYycgdG8g YXBwZWFyIGluIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyLgorKyAgICAgICBUaGVyZWZvcmUgd2Ug aGF2ZSB0byBoYW5kbGUgdGhlIHVzZSBvZiB0aGlzIGhlYWRlciBpbiBzdHJpY3RseQorKyAgICAg ICBzdGFuZGFyZC1jb21wbGlhbnQgc291cmNlcyBzcGVjaWFsLiAgKi8KKysgICAgc3RydWN0IHRp bWVzcGVjIHN0X2F0aW07CQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8KKysgICAgc3RydWN0 IHRpbWVzcGVjIHN0X210aW07CQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKysg ICAgc3RydWN0IHRpbWVzcGVjIHN0X2N0aW07CQkvKiBUaW1lIG9mIGxhc3Qgc3RhdHVzIGNoYW5n ZS4gICovCisrIyAgZWxzZQorKyAgICBfX3RpbWVfdCBzdF9hdGltZTsJCQkvKiBUaW1lIG9mIGxh c3QgYWNjZXNzLiAgKi8KKysgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfYXRpbWVuc2VjOwkvKiBO c2NlY3Mgb2YgbGFzdCBhY2Nlc3MuICAqLworKyAgICBfX3RpbWVfdCBzdF9tdGltZTsJCQkvKiBU aW1lIG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKysgICAgdW5zaWduZWQgbG9uZyBpbnQgc3Rf bXRpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIF9fdGlt ZV90IHN0X2N0aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysgICAg dW5zaWduZWQgbG9uZyBpbnQgc3RfY3RpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IHN0YXR1cyBj aGFuZ2UuICAqLworKyMgIGVuZGlmCisrICAgIF9faW5vNjRfdCBzdF9pbm87CQkJLyogRmlsZSBz ZXJpYWwgbnVtYmVyLgkJKi8KKysjIGVuZGlmIC8qIF9fVVNFX1RJTUVfQklUUzY0ICAqLworKyAg fTsKKysjZW5kaWYKKysKKysvKiBUZWxsIGNvZGUgd2UgaGF2ZSB0aGVzZSBtZW1iZXJzLiAgKi8K KysjZGVmaW5lCV9TVEFUQlVGX1NUX0JMS1NJWkUKKysjZGVmaW5lIF9TVEFUQlVGX1NUX1JERVYK KysvKiBOYW5vc2Vjb25kIHJlc29sdXRpb24gdGltZSB2YWx1ZXMgYXJlIHN1cHBvcnRlZC4gICov CisrI2RlZmluZSBfU1RBVEJVRl9TVF9OU0VDCisrCisrCisrI2VuZGlmIC8qIF9CSVRTX1NUUlVD VF9TVEFUX0ggICovCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvYml0cy9z dHJ1Y3Rfc3RhdC5oIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvYml0cy9zdHJ1Y3Rfc3RhdC5o CitpbmRleCAyNWJkNmNiNjM4Li5mYjExYTNmYmE0IDEwMDY0NAorLS0tIGEvc3lzZGVwcy91bml4 L3N5c3YvbGludXgvYml0cy9zdHJ1Y3Rfc3RhdC5oCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9iaXRzL3N0cnVjdF9zdGF0LmgKK0BAIC0yNiwzNyArMjYsMzYgQEAKKyAjaW5jbHVkZSA8 Yml0cy9lbmRpYW4uaD4KKyAjaW5jbHVkZSA8Yml0cy93b3Jkc2l6ZS5oPgorIAorLXN0cnVjdCBz dGF0CistICB7CistI2lmZGVmIF9fVVNFX1RJTUVfQklUUzY0CistIyBpbmNsdWRlIDxiaXRzL3N0 cnVjdF9zdGF0X3RpbWU2NF9oZWxwZXIuaD4KKy0jZWxzZQorLSAgICBfX2Rldl90IHN0X2RldjsJ CQkvKiBEZXZpY2UuICAqLworLSAgICB1bnNpZ25lZCBzaG9ydCBpbnQgX19wYWQxOworLSMgaWZu ZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKy0gICAgX19pbm9fdCBzdF9pbm87CQkJLyogRmlsZSBz ZXJpYWwgbnVtYmVyLgkqLworLSMgZWxzZQorLSAgICBfX2lub190IF9fc3RfaW5vOwkJCS8qIDMy Yml0IGZpbGUgc2VyaWFsIG51bWJlci4JKi8KKysjaWYgZGVmaW5lZCBfX1VTRV9GSUxFX09GRlNF VDY0CisrIyBkZWZpbmUgX19maWVsZDY0KHR5cGUsIHR5cGU2NCwgbmFtZSkgdHlwZTY0IG5hbWUK KysjZWxpZiBfX1dPUkRTSVpFID09IDY0IHx8IGRlZmluZWQgX19JTk9fVF9NQVRDSEVTX0lOTzY0 X1QKKysjIGlmIGRlZmluZWQgX19JTk9fVF9NQVRDSEVTX0lOTzY0X1QgJiYgIWRlZmluZWQgX19P RkZfVF9NQVRDSEVTX09GRjY0X1QKKysjICBlcnJvciAiaW5vX3QgYW5kIG9mZl90IG11c3QgYm90 aCBiZSB0aGUgc2FtZSB0eXBlIgorICMgZW5kaWYKKy0gICAgX19tb2RlX3Qgc3RfbW9kZTsJCQkv KiBGaWxlIG1vZGUuICAqLworLSAgICBfX25saW5rX3Qgc3Rfbmxpbms7CQkJLyogTGluayBjb3Vu dC4gICovCistICAgIF9fdWlkX3Qgc3RfdWlkOwkJCS8qIFVzZXIgSUQgb2YgdGhlIGZpbGUncyBv d25lci4JKi8KKy0gICAgX19naWRfdCBzdF9naWQ7CQkJLyogR3JvdXAgSUQgb2YgdGhlIGZpbGUn cyBncm91cC4qLworLSAgICBfX2Rldl90IHN0X3JkZXY7CQkJLyogRGV2aWNlIG51bWJlciwgaWYg ZGV2aWNlLiAgKi8KKy0gICAgdW5zaWduZWQgc2hvcnQgaW50IF9fcGFkMjsKKy0jIGlmbmRlZiBf X1VTRV9GSUxFX09GRlNFVDY0CistICAgIF9fb2ZmX3Qgc3Rfc2l6ZTsJCQkvKiBTaXplIG9mIGZp bGUsIGluIGJ5dGVzLiAgKi8KKy0jIGVsc2UKKy0gICAgX19vZmY2NF90IHN0X3NpemU7CQkJLyog U2l6ZSBvZiBmaWxlLCBpbiBieXRlcy4gICovCistIyBlbmRpZgorLSAgICBfX2Jsa3NpemVfdCBz dF9ibGtzaXplOwkJLyogT3B0aW1hbCBibG9jayBzaXplIGZvciBJL08uICAqLworKyMgZGVmaW5l IF9fZmllbGQ2NCh0eXBlLCB0eXBlNjQsIG5hbWUpIHR5cGUgbmFtZQorKyNlbGlmIF9fQllURV9P UkRFUiA9PSBfX0xJVFRMRV9FTkRJQU4KKysjIGRlZmluZSBfX2ZpZWxkNjQodHlwZSwgdHlwZTY0 LCBuYW1lKSBcCisrICB0eXBlIG5hbWUgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18gKF9fYWxp Z25vZl9fICh0eXBlNjQpKSkpOyBpbnQgX18jI25hbWUjI19wYWQKKysjZWxzZQorKyMgZGVmaW5l IF9fZmllbGQ2NCh0eXBlLCB0eXBlNjQsIG5hbWUpIFwKKysgIGludCBfXyMjbmFtZSMjX3BhZCBf X2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyAoX19hbGlnbm9mX18gKHR5cGU2NCkpKSk7IHR5cGUg bmFtZQorKyNlbmRpZgorIAorLSMgaWZuZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKy0gICAgX19i bGtjbnRfdCBzdF9ibG9ja3M7CQkvKiBOdW1iZXIgNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4g Ki8KKy0jIGVsc2UKKy0gICAgX19ibGtjbnQ2NF90IHN0X2Jsb2NrczsJCS8qIE51bWJlciA1MTIt Ynl0ZSBibG9ja3MgYWxsb2NhdGVkLiAqLworLSMgZW5kaWYKKy0jIGlmZGVmIF9fVVNFX1hPUEVO Mks4Cisrc3RydWN0IHN0YXQKKysgIHsKKysgICAgX19kZXZfdCBzdF9kZXY7CQkvKiBEZXZpY2Uu ICAqLworKyAgICBfX2ZpZWxkNjQoX19pbm9fdCwgX19pbm82NF90LCBzdF9pbm8pOyAgLyogRmls ZSBzZXJpYWwgbnVtYmVyLiAqLworKyAgICBfX21vZGVfdCBzdF9tb2RlOwkJLyogRmlsZSBtb2Rl LiAgKi8KKysgICAgX19ubGlua190IHN0X25saW5rOwkJLyogTGluayBjb3VudC4gICovCisrICAg IF9fdWlkX3Qgc3RfdWlkOwkJLyogVXNlciBJRCBvZiB0aGUgZmlsZSdzIG93bmVyLgkqLworKyAg ICBfX2dpZF90IHN0X2dpZDsJCS8qIEdyb3VwIElEIG9mIHRoZSBmaWxlJ3MgZ3JvdXAuKi8KKysg ICAgX19kZXZfdCBzdF9yZGV2OwkJLyogRGV2aWNlIG51bWJlciwgaWYgZGV2aWNlLiAgKi8KKysg ICAgX19kZXZfdCBfX3BhZDE7CisrICAgIF9fZmllbGQ2NChfX29mZl90LCBfX29mZjY0X3QsIHN0 X3NpemUpOyAgLyogU2l6ZSBvZiBmaWxlLCBpbiBieXRlcy4gKi8KKysgICAgX19ibGtzaXplX3Qg c3RfYmxrc2l6ZTsJLyogT3B0aW1hbCBibG9jayBzaXplIGZvciBJL08uICAqLworKyAgICBpbnQg X19wYWQyOworKyAgICBfX2ZpZWxkNjQoX19ibGtjbnRfdCwgX19ibGtjbnQ2NF90LCBzdF9ibG9j a3MpOyAgLyogNTEyLWJ5dGUgYmxvY2tzICovCisrI2lmZGVmIF9fVVNFX1hPUEVOMks4CisgICAg IC8qIE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBzIGFyZSBzdG9yZWQgaW4gYSBmb3Jt YXQKKyAgICAgICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRpbWVzcGVjJy4gIFRoaXMgaXMgdGhl IHR5cGUgdXNlZAorICAgICAgICB3aGVuZXZlciBwb3NzaWJsZSBidXQgdGhlIFVuaXggbmFtZXNw YWNlIHJ1bGVzIGRvIG5vdCBhbGxvdyB0aGUKK0BAIC02Niw0NyArNjUsMzggQEAgc3RydWN0IHN0 YXQKKyAgICAgc3RydWN0IHRpbWVzcGVjIHN0X2F0aW07CQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNz LiAgKi8KKyAgICAgc3RydWN0IHRpbWVzcGVjIHN0X210aW07CQkvKiBUaW1lIG9mIGxhc3QgbW9k aWZpY2F0aW9uLiAgKi8KKyAgICAgc3RydWN0IHRpbWVzcGVjIHN0X2N0aW07CQkvKiBUaW1lIG9m IGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCistIyAgZGVmaW5lIHN0X2F0aW1lIHN0X2F0aW0udHZf c2VjCS8qIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICAqLworLSMgIGRlZmluZSBzdF9tdGltZSBz dF9tdGltLnR2X3NlYworLSMgIGRlZmluZSBzdF9jdGltZSBzdF9jdGltLnR2X3NlYworLSMgZWxz ZQorKyMgZGVmaW5lIHN0X2F0aW1lIHN0X2F0aW0udHZfc2VjCS8qIEJhY2t3YXJkIGNvbXBhdGli aWxpdHkuICAqLworKyMgZGVmaW5lIHN0X210aW1lIHN0X210aW0udHZfc2VjCisrIyBkZWZpbmUg c3RfY3RpbWUgc3RfY3RpbS50dl9zZWMKKysjZWxzZQorICAgICBfX3RpbWVfdCBzdF9hdGltZTsJ CQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8KKyAgICAgdW5zaWduZWQgbG9uZyBpbnQgc3Rf YXRpbWVuc2VjOwkvKiBOc2NlY3Mgb2YgbGFzdCBhY2Nlc3MuICAqLworICAgICBfX3RpbWVfdCBz dF9tdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKyAgICAgdW5zaWdu ZWQgbG9uZyBpbnQgc3RfbXRpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IG1vZGlmaWNhdGlvbi4g ICovCisgICAgIF9fdGltZV90IHN0X2N0aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBzdGF0dXMgY2hh bmdlLiAgKi8KKyAgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfY3RpbWVuc2VjOwkvKiBOc2VjcyBv ZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworLSMgZW5kaWYKKy0jIGlmbmRlZiBfX1VTRV9GSUxF X09GRlNFVDY0CistICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fZ2xpYmNfcmVzZXJ2ZWQ0OworLSAg ICB1bnNpZ25lZCBsb25nIGludCBfX2dsaWJjX3Jlc2VydmVkNTsKKy0jIGVsc2UKKy0gICAgX19p bm82NF90IHN0X2lubzsJCQkvKiBGaWxlIHNlcmlhbCBudW1iZXIuCSovCistIyBlbmRpZgorLSNl bmRpZiAvKiBfX1VTRV9USU1FX0JJVFM2NCAgKi8KKysjZW5kaWYKKysgICAgaW50IF9fZ2xpYmNf cmVzZXJ2ZWRbMl07CisgICB9OworIAorKyN1bmRlZiBfX2ZpZWxkNjQKKysKKyAjaWZkZWYgX19V U0VfTEFSR0VGSUxFNjQKKyBzdHJ1Y3Qgc3RhdDY0CisgICB7CistIyBpZmRlZiBfX1VTRV9USU1F X0JJVFM2NAorLSMgIGluY2x1ZGUgPGJpdHMvc3RydWN0X3N0YXRfdGltZTY0X2hlbHBlci5oPgor LSMgZWxzZQorLSAgICBfX2Rldl90IHN0X2RldjsJCQkvKiBEZXZpY2UuICAqLworLSAgICB1bnNp Z25lZCBpbnQgX19wYWQxOworLQorLSAgICBfX2lub190IF9fc3RfaW5vOwkJCS8qIDMyYml0IGZp bGUgc2VyaWFsIG51bWJlci4JKi8KKy0gICAgX19tb2RlX3Qgc3RfbW9kZTsJCQkvKiBGaWxlIG1v ZGUuICAqLworLSAgICBfX25saW5rX3Qgc3Rfbmxpbms7CQkJLyogTGluayBjb3VudC4gICovCist ICAgIF9fdWlkX3Qgc3RfdWlkOwkJCS8qIFVzZXIgSUQgb2YgdGhlIGZpbGUncyBvd25lci4JKi8K Ky0gICAgX19naWRfdCBzdF9naWQ7CQkJLyogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBncm91cC4q LworLSAgICBfX2Rldl90IHN0X3JkZXY7CQkJLyogRGV2aWNlIG51bWJlciwgaWYgZGV2aWNlLiAg Ki8KKy0gICAgdW5zaWduZWQgaW50IF9fcGFkMjsKKy0gICAgX19vZmY2NF90IHN0X3NpemU7CQkJ LyogU2l6ZSBvZiBmaWxlLCBpbiBieXRlcy4gICovCistICAgIF9fYmxrc2l6ZV90IHN0X2Jsa3Np emU7CQkvKiBPcHRpbWFsIGJsb2NrIHNpemUgZm9yIEkvTy4gICovCistCistICAgIF9fYmxrY250 NjRfdCBzdF9ibG9ja3M7CQkvKiBOdW1iZXIgNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gKi8K Ky0jICBpZmRlZiBfX1VTRV9YT1BFTjJLOAorKyAgICBfX2Rldl90IHN0X2RldjsJCS8qIERldmlj ZS4gICovCisrICAgIF9faW5vNjRfdCBzdF9pbm87CQkvKiBGaWxlIHNlcmlhbCBudW1iZXIuCSov CisrICAgIF9fbW9kZV90IHN0X21vZGU7CQkvKiBGaWxlIG1vZGUuICAqLworKyAgICBfX25saW5r X3Qgc3Rfbmxpbms7CQkvKiBMaW5rIGNvdW50LiAgKi8KKysgICAgX191aWRfdCBzdF91aWQ7CQkv KiBVc2VyIElEIG9mIHRoZSBmaWxlJ3Mgb3duZXIuCSovCisrICAgIF9fZ2lkX3Qgc3RfZ2lkOwkJ LyogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBncm91cC4qLworKyAgICBfX2Rldl90IHN0X3JkZXY7 CQkvKiBEZXZpY2UgbnVtYmVyLCBpZiBkZXZpY2UuICAqLworKyAgICBfX2Rldl90IF9fcGFkMTsK KysgICAgX19vZmY2NF90IHN0X3NpemU7CQkvKiBTaXplIG9mIGZpbGUsIGluIGJ5dGVzLiAgKi8K KysgICAgX19ibGtzaXplX3Qgc3RfYmxrc2l6ZTsJLyogT3B0aW1hbCBibG9jayBzaXplIGZvciBJ L08uICAqLworKyAgICBpbnQgX19wYWQyOworKyAgICBfX2Jsa2NudDY0X3Qgc3RfYmxvY2tzOwkv KiBOci4gNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gICovCisrI2lmZGVmIF9fVVNFX1hPUEVO Mks4CisgICAgIC8qIE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBzIGFyZSBzdG9yZWQg aW4gYSBmb3JtYXQKKyAgICAgICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRpbWVzcGVjJy4gIFRo aXMgaXMgdGhlIHR5cGUgdXNlZAorICAgICAgICB3aGVuZXZlciBwb3NzaWJsZSBidXQgdGhlIFVu aXggbmFtZXNwYWNlIHJ1bGVzIGRvIG5vdCBhbGxvdyB0aGUKK0BAIC0xMTYsMTYgKzEwNiwxNSBA QCBzdHJ1Y3Qgc3RhdDY0CisgICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9hdGltOwkJLyogVGltZSBv ZiBsYXN0IGFjY2Vzcy4gICovCisgICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9tdGltOwkJLyogVGlt ZSBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisgICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9jdGlt OwkJLyogVGltZSBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworLSMgIGVsc2UKKysjZWxzZQor ICAgICBfX3RpbWVfdCBzdF9hdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8KKyAg ICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfYXRpbWVuc2VjOwkvKiBOc2NlY3Mgb2YgbGFzdCBhY2Nl c3MuICAqLworICAgICBfX3RpbWVfdCBzdF9tdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZp Y2F0aW9uLiAgKi8KKyAgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfbXRpbWVuc2VjOwkvKiBOc2Vj cyBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisgICAgIF9fdGltZV90IHN0X2N0aW1lOwkJCS8q IFRpbWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKyAgICAgdW5zaWduZWQgbG9uZyBpbnQg c3RfY3RpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworLSMgIGVu ZGlmCistICAgIF9faW5vNjRfdCBzdF9pbm87CQkJLyogRmlsZSBzZXJpYWwgbnVtYmVyLgkJKi8K Ky0jIGVuZGlmIC8qIF9fVVNFX1RJTUVfQklUUzY0ICAqLworKyNlbmRpZgorKyAgICBpbnQgX19n bGliY19yZXNlcnZlZFsyXTsKKyAgIH07CisgI2VuZGlmCisgCitAQCAtMTM1LDUgKzEyNCw0IEBA IHN0cnVjdCBzdGF0NjQKKyAvKiBOYW5vc2Vjb25kIHJlc29sdXRpb24gdGltZSB2YWx1ZXMgYXJl IHN1cHBvcnRlZC4gICovCisgI2RlZmluZSBfU1RBVEJVRl9TVF9OU0VDCisgCistCisgI2VuZGlm IC8qIF9CSVRTX1NUUlVDVF9TVEFUX0ggICovCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5 c3YvbGludXgvZ2VuZXJpYy9iaXRzL3N0cnVjdF9zdGF0LmggYi9zeXNkZXBzL3VuaXgvc3lzdi9s aW51eC9jc2t5L2JpdHMvc3RydWN0X3N0YXQuaAorc2ltaWxhcml0eSBpbmRleCA5MiUKK3JlbmFt ZSBmcm9tIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2dlbmVyaWMvYml0cy9zdHJ1Y3Rfc3RhdC5o CityZW5hbWUgdG8gc3lzZGVwcy91bml4L3N5c3YvbGludXgvY3NreS9iaXRzL3N0cnVjdF9zdGF0 LmgKK2luZGV4IGZiMTFhM2ZiYTQuLmYwZWU0NTU3NDggMTAwNjQ0CistLS0gYS9zeXNkZXBzL3Vu aXgvc3lzdi9saW51eC9nZW5lcmljL2JpdHMvc3RydWN0X3N0YXQuaAorKysrIGIvc3lzZGVwcy91 bml4L3N5c3YvbGludXgvY3NreS9iaXRzL3N0cnVjdF9zdGF0LmgKK0BAIC0xLDQgKzEsNCBAQAor LS8qIERlZmluaXRpb24gZm9yIHN0cnVjdCBzdGF0LgorKy8qIERlZmluaXRpb24gZm9yIHN0cnVj dCBzdGF0LiAgTGludXgvY3NreSB2ZXJzaW9uLgorICAgIENvcHlyaWdodCAoQykgMjAyMC0yMDIy IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IHRoZSBHTlUgQyBMaWJyYXJ5LgorIAorQEAgLTQzLDYgKzQzLDkgQEAKKyAKKyBzdHJ1Y3Qgc3Rh dAorICAgeworKyNpZmRlZiBfX1VTRV9USU1FX0JJVFM2NAorKyMgaW5jbHVkZSA8Yml0cy9zdHJ1 Y3Rfc3RhdF90aW1lNjRfaGVscGVyLmg+CisrI2Vsc2UKKyAgICAgX19kZXZfdCBzdF9kZXY7CQkv KiBEZXZpY2UuICAqLworICAgICBfX2ZpZWxkNjQoX19pbm9fdCwgX19pbm82NF90LCBzdF9pbm8p OyAgLyogRmlsZSBzZXJpYWwgbnVtYmVyLiAqLworICAgICBfX21vZGVfdCBzdF9tb2RlOwkJLyog RmlsZSBtb2RlLiAgKi8KK0BAIC01NSw3ICs1OCw3IEBAIHN0cnVjdCBzdGF0CisgICAgIF9fYmxr c2l6ZV90IHN0X2Jsa3NpemU7CS8qIE9wdGltYWwgYmxvY2sgc2l6ZSBmb3IgSS9PLiAgKi8KKyAg ICAgaW50IF9fcGFkMjsKKyAgICAgX19maWVsZDY0KF9fYmxrY250X3QsIF9fYmxrY250NjRfdCwg c3RfYmxvY2tzKTsgIC8qIDUxMi1ieXRlIGJsb2NrcyAqLworLSNpZmRlZiBfX1VTRV9YT1BFTjJL OAorKyMgaWZkZWYgX19VU0VfWE9QRU4ySzgKKyAgICAgLyogTmFub3NlY29uZCByZXNvbHV0aW9u IHRpbWVzdGFtcHMgYXJlIHN0b3JlZCBpbiBhIGZvcm1hdAorICAgICAgICBlcXVpdmFsZW50IHRv ICdzdHJ1Y3QgdGltZXNwZWMnLiAgVGhpcyBpcyB0aGUgdHlwZSB1c2VkCisgICAgICAgIHdoZW5l dmVyIHBvc3NpYmxlIGJ1dCB0aGUgVW5peCBuYW1lc3BhY2UgcnVsZXMgZG8gbm90IGFsbG93IHRo ZQorQEAgLTY1LDE4ICs2OCwxOSBAQCBzdHJ1Y3Qgc3RhdAorICAgICBzdHJ1Y3QgdGltZXNwZWMg c3RfYXRpbTsJCS8qIFRpbWUgb2YgbGFzdCBhY2Nlc3MuICAqLworICAgICBzdHJ1Y3QgdGltZXNw ZWMgc3RfbXRpbTsJCS8qIFRpbWUgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLworICAgICBzdHJ1 Y3QgdGltZXNwZWMgc3RfY3RpbTsJCS8qIFRpbWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8K Ky0jIGRlZmluZSBzdF9hdGltZSBzdF9hdGltLnR2X3NlYwkvKiBCYWNrd2FyZCBjb21wYXRpYmls aXR5LiAgKi8KKy0jIGRlZmluZSBzdF9tdGltZSBzdF9tdGltLnR2X3NlYworLSMgZGVmaW5lIHN0 X2N0aW1lIHN0X2N0aW0udHZfc2VjCistI2Vsc2UKKysjICBkZWZpbmUgc3RfYXRpbWUgc3RfYXRp bS50dl9zZWMJLyogQmFja3dhcmQgY29tcGF0aWJpbGl0eS4gICovCisrIyAgZGVmaW5lIHN0X210 aW1lIHN0X210aW0udHZfc2VjCisrIyAgZGVmaW5lIHN0X2N0aW1lIHN0X2N0aW0udHZfc2VjCisr IyBlbHNlCisgICAgIF9fdGltZV90IHN0X2F0aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBhY2Nlc3Mu ICAqLworICAgICB1bnNpZ25lZCBsb25nIGludCBzdF9hdGltZW5zZWM7CS8qIE5zY2VjcyBvZiBs YXN0IGFjY2Vzcy4gICovCisgICAgIF9fdGltZV90IHN0X210aW1lOwkJCS8qIFRpbWUgb2YgbGFz dCBtb2RpZmljYXRpb24uICAqLworICAgICB1bnNpZ25lZCBsb25nIGludCBzdF9tdGltZW5zZWM7 CS8qIE5zZWNzIG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKyAgICAgX190aW1lX3Qgc3RfY3Rp bWU7CQkJLyogVGltZSBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworICAgICB1bnNpZ25lZCBs b25nIGludCBzdF9jdGltZW5zZWM7CS8qIE5zZWNzIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICov CistI2VuZGlmCisrIyBlbmRpZgorICAgICBpbnQgX19nbGliY19yZXNlcnZlZFsyXTsKKysjZW5k aWYKKyAgIH07CisgCisgI3VuZGVmIF9fZmllbGQ2NAorQEAgLTg0LDYgKzg4LDkgQEAgc3RydWN0 IHN0YXQKKyAjaWZkZWYgX19VU0VfTEFSR0VGSUxFNjQKKyBzdHJ1Y3Qgc3RhdDY0CisgICB7Cisr IyBpZmRlZiBfX1VTRV9USU1FX0JJVFM2NAorKyMgIGluY2x1ZGUgPGJpdHMvc3RydWN0X3N0YXRf dGltZTY0X2hlbHBlci5oPgorKyMgZWxzZQorICAgICBfX2Rldl90IHN0X2RldjsJCS8qIERldmlj ZS4gICovCisgICAgIF9faW5vNjRfdCBzdF9pbm87CQkvKiBGaWxlIHNlcmlhbCBudW1iZXIuCSov CisgICAgIF9fbW9kZV90IHN0X21vZGU7CQkvKiBGaWxlIG1vZGUuICAqLworQEAgLTk2LDcgKzEw Myw3IEBAIHN0cnVjdCBzdGF0NjQKKyAgICAgX19ibGtzaXplX3Qgc3RfYmxrc2l6ZTsJLyogT3B0 aW1hbCBibG9jayBzaXplIGZvciBJL08uICAqLworICAgICBpbnQgX19wYWQyOworICAgICBfX2Js a2NudDY0X3Qgc3RfYmxvY2tzOwkvKiBOci4gNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gICov CistI2lmZGVmIF9fVVNFX1hPUEVOMks4CisrIyAgaWZkZWYgX19VU0VfWE9QRU4ySzgKKyAgICAg LyogTmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWVzdGFtcHMgYXJlIHN0b3JlZCBpbiBhIGZvcm1h dAorICAgICAgICBlcXVpdmFsZW50IHRvICdzdHJ1Y3QgdGltZXNwZWMnLiAgVGhpcyBpcyB0aGUg dHlwZSB1c2VkCisgICAgICAgIHdoZW5ldmVyIHBvc3NpYmxlIGJ1dCB0aGUgVW5peCBuYW1lc3Bh Y2UgcnVsZXMgZG8gbm90IGFsbG93IHRoZQorQEAgLTEwNiwxNSArMTEzLDE2IEBAIHN0cnVjdCBz dGF0NjQKKyAgICAgc3RydWN0IHRpbWVzcGVjIHN0X2F0aW07CQkvKiBUaW1lIG9mIGxhc3QgYWNj ZXNzLiAgKi8KKyAgICAgc3RydWN0IHRpbWVzcGVjIHN0X210aW07CQkvKiBUaW1lIG9mIGxhc3Qg bW9kaWZpY2F0aW9uLiAgKi8KKyAgICAgc3RydWN0IHRpbWVzcGVjIHN0X2N0aW07CQkvKiBUaW1l IG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCistI2Vsc2UKKysjICBlbHNlCisgICAgIF9fdGlt ZV90IHN0X2F0aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBhY2Nlc3MuICAqLworICAgICB1bnNpZ25l ZCBsb25nIGludCBzdF9hdGltZW5zZWM7CS8qIE5zY2VjcyBvZiBsYXN0IGFjY2Vzcy4gICovCisg ICAgIF9fdGltZV90IHN0X210aW1lOwkJCS8qIFRpbWUgb2YgbGFzdCBtb2RpZmljYXRpb24uICAq LworICAgICB1bnNpZ25lZCBsb25nIGludCBzdF9tdGltZW5zZWM7CS8qIE5zZWNzIG9mIGxhc3Qg bW9kaWZpY2F0aW9uLiAgKi8KKyAgICAgX190aW1lX3Qgc3RfY3RpbWU7CQkJLyogVGltZSBvZiBs YXN0IHN0YXR1cyBjaGFuZ2UuICAqLworICAgICB1bnNpZ25lZCBsb25nIGludCBzdF9jdGltZW5z ZWM7CS8qIE5zZWNzIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCistI2VuZGlmCisrIyAgZW5k aWYKKyAgICAgaW50IF9fZ2xpYmNfcmVzZXJ2ZWRbMl07CisrIyBlbmRpZgorICAgfTsKKyAjZW5k aWYKKyAKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9ocHBhL2JpdHMvc3Ry dWN0X3N0YXQuaCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2hwcGEvYml0cy9zdHJ1Y3Rfc3Rh dC5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMC4uMzhiNmUxM2U2OAor LS0tIC9kZXYvbnVsbAorKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGludXgvaHBwYS9iaXRzL3N0 cnVjdF9zdGF0LmgKK0BAIC0wLDAgKzEsMTM5IEBACisrLyogRGVmaW5pdGlvbiBmb3Igc3RydWN0 IHN0YXQuICBMaW51eC9ocHBhIHZlcnNpb24uCisrICAgQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg dGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAg IHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor KyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisr ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeS4gIElm IG5vdCwgc2VlCisrICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisr I2lmICFkZWZpbmVkIF9TWVNfU1RBVF9IICYmICFkZWZpbmVkIF9GQ05UTF9ICisrIyBlcnJvciAi TmV2ZXIgaW5jbHVkZSA8Yml0cy9zdHJ1Y3Rfc3RhdC5oPiBkaXJlY3RseTsgdXNlIDxzeXMvc3Rh dC5oPiBpbnN0ZWFkLiIKKysjZW5kaWYKKysKKysjaWZuZGVmIF9CSVRTX1NUUlVDVF9TVEFUX0gK KysjZGVmaW5lIF9CSVRTX1NUUlVDVF9TVEFUX0gJMQorKworKyNpbmNsdWRlIDxiaXRzL2VuZGlh bi5oPgorKyNpbmNsdWRlIDxiaXRzL3dvcmRzaXplLmg+CisrCisrc3RydWN0IHN0YXQKKysgIHsK KysjaWZkZWYgX19VU0VfVElNRV9CSVRTNjQKKysjIGluY2x1ZGUgPGJpdHMvc3RydWN0X3N0YXRf dGltZTY0X2hlbHBlci5oPgorKyNlbHNlCisrICAgIF9fZGV2X3Qgc3RfZGV2OwkJCS8qIERldmlj ZS4gICovCisrICAgIHVuc2lnbmVkIHNob3J0IGludCBfX3BhZDE7CisrIyBpZm5kZWYgX19VU0Vf RklMRV9PRkZTRVQ2NAorKyAgICBfX2lub190IHN0X2lubzsJCQkvKiBGaWxlIHNlcmlhbCBudW1i ZXIuCSovCisrIyBlbHNlCisrICAgIF9faW5vX3QgX19zdF9pbm87CQkJLyogMzJiaXQgZmlsZSBz ZXJpYWwgbnVtYmVyLgkqLworKyMgZW5kaWYKKysgICAgX19tb2RlX3Qgc3RfbW9kZTsJCQkvKiBG aWxlIG1vZGUuICAqLworKyAgICBfX25saW5rX3Qgc3Rfbmxpbms7CQkJLyogTGluayBjb3VudC4g ICovCisrICAgIF9fdWlkX3Qgc3RfdWlkOwkJCS8qIFVzZXIgSUQgb2YgdGhlIGZpbGUncyBvd25l ci4JKi8KKysgICAgX19naWRfdCBzdF9naWQ7CQkJLyogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBn cm91cC4qLworKyAgICBfX2Rldl90IHN0X3JkZXY7CQkJLyogRGV2aWNlIG51bWJlciwgaWYgZGV2 aWNlLiAgKi8KKysgICAgdW5zaWduZWQgc2hvcnQgaW50IF9fcGFkMjsKKysjIGlmbmRlZiBfX1VT RV9GSUxFX09GRlNFVDY0CisrICAgIF9fb2ZmX3Qgc3Rfc2l6ZTsJCQkvKiBTaXplIG9mIGZpbGUs IGluIGJ5dGVzLiAgKi8KKysjIGVsc2UKKysgICAgX19vZmY2NF90IHN0X3NpemU7CQkJLyogU2l6 ZSBvZiBmaWxlLCBpbiBieXRlcy4gICovCisrIyBlbmRpZgorKyAgICBfX2Jsa3NpemVfdCBzdF9i bGtzaXplOwkJLyogT3B0aW1hbCBibG9jayBzaXplIGZvciBJL08uICAqLworKworKyMgaWZuZGVm IF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKysgICAgX19ibGtjbnRfdCBzdF9ibG9ja3M7CQkvKiBOdW1i ZXIgNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gKi8KKysjIGVsc2UKKysgICAgX19ibGtjbnQ2 NF90IHN0X2Jsb2NrczsJCS8qIE51bWJlciA1MTItYnl0ZSBibG9ja3MgYWxsb2NhdGVkLiAqLwor KyMgZW5kaWYKKysjIGlmZGVmIF9fVVNFX1hPUEVOMks4CisrICAgIC8qIE5hbm9zZWNvbmQgcmVz b2x1dGlvbiB0aW1lc3RhbXBzIGFyZSBzdG9yZWQgaW4gYSBmb3JtYXQKKysgICAgICAgZXF1aXZh bGVudCB0byAnc3RydWN0IHRpbWVzcGVjJy4gIFRoaXMgaXMgdGhlIHR5cGUgdXNlZAorKyAgICAg ICB3aGVuZXZlciBwb3NzaWJsZSBidXQgdGhlIFVuaXggbmFtZXNwYWNlIHJ1bGVzIGRvIG5vdCBh bGxvdyB0aGUKKysgICAgICAgaWRlbnRpZmllciAndGltZXNwZWMnIHRvIGFwcGVhciBpbiB0aGUg PHN5cy9zdGF0Lmg+IGhlYWRlci4KKysgICAgICAgVGhlcmVmb3JlIHdlIGhhdmUgdG8gaGFuZGxl IHRoZSB1c2Ugb2YgdGhpcyBoZWFkZXIgaW4gc3RyaWN0bHkKKysgICAgICAgc3RhbmRhcmQtY29t cGxpYW50IHNvdXJjZXMgc3BlY2lhbC4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9hdGlt OwkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9t dGltOwkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIHN0cnVjdCB0aW1l c3BlYyBzdF9jdGltOwkJLyogVGltZSBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyMgIGRl ZmluZSBzdF9hdGltZSBzdF9hdGltLnR2X3NlYwkvKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAg Ki8KKysjICBkZWZpbmUgc3RfbXRpbWUgc3RfbXRpbS50dl9zZWMKKysjICBkZWZpbmUgc3RfY3Rp bWUgc3RfY3RpbS50dl9zZWMKKysjIGVsc2UKKysgICAgX190aW1lX3Qgc3RfYXRpbWU7CQkJLyog VGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2F0aW1l bnNlYzsJLyogTnNjZWNzIG9mIGxhc3QgYWNjZXNzLiAgKi8KKysgICAgX190aW1lX3Qgc3RfbXRp bWU7CQkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIHVuc2lnbmVkIGxv bmcgaW50IHN0X210aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLwor KyAgICBfX3RpbWVfdCBzdF9jdGltZTsJCQkvKiBUaW1lIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4g ICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2N0aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFz dCBzdGF0dXMgY2hhbmdlLiAgKi8KKysjIGVuZGlmCisrIyBpZm5kZWYgX19VU0VfRklMRV9PRkZT RVQ2NAorKyAgICB1bnNpZ25lZCBsb25nIGludCBfX2dsaWJjX3Jlc2VydmVkNDsKKysgICAgdW5z aWduZWQgbG9uZyBpbnQgX19nbGliY19yZXNlcnZlZDU7CisrIyBlbHNlCisrICAgIF9faW5vNjRf dCBzdF9pbm87CQkJLyogRmlsZSBzZXJpYWwgbnVtYmVyLgkqLworKyMgZW5kaWYKKysjZW5kaWYg LyogX19VU0VfVElNRV9CSVRTNjQgICovCisrICB9OworKworKyNpZmRlZiBfX1VTRV9MQVJHRUZJ TEU2NAorK3N0cnVjdCBzdGF0NjQKKysgIHsKKysjIGlmZGVmIF9fVVNFX1RJTUVfQklUUzY0Cisr IyAgaW5jbHVkZSA8Yml0cy9zdHJ1Y3Rfc3RhdF90aW1lNjRfaGVscGVyLmg+CisrIyBlbHNlCisr ICAgIF9fZGV2X3Qgc3RfZGV2OwkJCS8qIERldmljZS4gICovCisrICAgIHVuc2lnbmVkIGludCBf X3BhZDE7CisrCisrICAgIF9faW5vX3QgX19zdF9pbm87CQkJLyogMzJiaXQgZmlsZSBzZXJpYWwg bnVtYmVyLgkqLworKyAgICBfX21vZGVfdCBzdF9tb2RlOwkJCS8qIEZpbGUgbW9kZS4gICovCisr ICAgIF9fbmxpbmtfdCBzdF9ubGluazsJCQkvKiBMaW5rIGNvdW50LiAgKi8KKysgICAgX191aWRf dCBzdF91aWQ7CQkJLyogVXNlciBJRCBvZiB0aGUgZmlsZSdzIG93bmVyLgkqLworKyAgICBfX2dp ZF90IHN0X2dpZDsJCQkvKiBHcm91cCBJRCBvZiB0aGUgZmlsZSdzIGdyb3VwLiovCisrICAgIF9f ZGV2X3Qgc3RfcmRldjsJCQkvKiBEZXZpY2UgbnVtYmVyLCBpZiBkZXZpY2UuICAqLworKyAgICB1 bnNpZ25lZCBpbnQgX19wYWQyOworKyAgICBfX29mZjY0X3Qgc3Rfc2l6ZTsJCQkvKiBTaXplIG9m IGZpbGUsIGluIGJ5dGVzLiAgKi8KKysgICAgX19ibGtzaXplX3Qgc3RfYmxrc2l6ZTsJCS8qIE9w dGltYWwgYmxvY2sgc2l6ZSBmb3IgSS9PLiAgKi8KKysKKysgICAgX19ibGtjbnQ2NF90IHN0X2Js b2NrczsJCS8qIE51bWJlciA1MTItYnl0ZSBibG9ja3MgYWxsb2NhdGVkLiAqLworKyMgIGlmZGVm IF9fVVNFX1hPUEVOMks4CisrICAgIC8qIE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBz IGFyZSBzdG9yZWQgaW4gYSBmb3JtYXQKKysgICAgICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRp bWVzcGVjJy4gIFRoaXMgaXMgdGhlIHR5cGUgdXNlZAorKyAgICAgICB3aGVuZXZlciBwb3NzaWJs ZSBidXQgdGhlIFVuaXggbmFtZXNwYWNlIHJ1bGVzIGRvIG5vdCBhbGxvdyB0aGUKKysgICAgICAg aWRlbnRpZmllciAndGltZXNwZWMnIHRvIGFwcGVhciBpbiB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRl ci4KKysgICAgICAgVGhlcmVmb3JlIHdlIGhhdmUgdG8gaGFuZGxlIHRoZSB1c2Ugb2YgdGhpcyBo ZWFkZXIgaW4gc3RyaWN0bHkKKysgICAgICAgc3RhbmRhcmQtY29tcGxpYW50IHNvdXJjZXMgc3Bl Y2lhbC4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9hdGltOwkJLyogVGltZSBvZiBsYXN0 IGFjY2Vzcy4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9tdGltOwkJLyogVGltZSBvZiBs YXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9jdGltOwkJLyog VGltZSBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyMgIGVsc2UKKysgICAgX190aW1lX3Qg c3RfYXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAgIHVuc2lnbmVkIGxv bmcgaW50IHN0X2F0aW1lbnNlYzsJLyogTnNjZWNzIG9mIGxhc3QgYWNjZXNzLiAgKi8KKysgICAg X190aW1lX3Qgc3RfbXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisr ICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X210aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBtb2Rp ZmljYXRpb24uICAqLworKyAgICBfX3RpbWVfdCBzdF9jdGltZTsJCQkvKiBUaW1lIG9mIGxhc3Qg c3RhdHVzIGNoYW5nZS4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2N0aW1lbnNlYzsJ LyogTnNlY3Mgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysjICBlbmRpZgorKyAgICBfX2lu bzY0X3Qgc3RfaW5vOwkJCS8qIEZpbGUgc2VyaWFsIG51bWJlci4JCSovCisrIyBlbmRpZiAvKiBf X1VTRV9USU1FX0JJVFM2NCAgKi8KKysgIH07CisrI2VuZGlmCisrCisrLyogVGVsbCBjb2RlIHdl IGhhdmUgdGhlc2UgbWVtYmVycy4gICovCisrI2RlZmluZQlfU1RBVEJVRl9TVF9CTEtTSVpFCisr I2RlZmluZSBfU1RBVEJVRl9TVF9SREVWCisrLyogTmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWUg dmFsdWVzIGFyZSBzdXBwb3J0ZWQuICAqLworKyNkZWZpbmUgX1NUQVRCVUZfU1RfTlNFQworKwor KworKyNlbmRpZiAvKiBfQklUU19TVFJVQ1RfU1RBVF9IICAqLworZGlmZiAtLWdpdCBhL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L25pb3MyL2JpdHMvc3RydWN0X3N0YXQuaCBiL3N5c2RlcHMvdW5p eC9zeXN2L2xpbnV4L25pb3MyL2JpdHMvc3RydWN0X3N0YXQuaAorbmV3IGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDAwMDAwMDAwMDAuLmUwMGU3MTE3M2UKKy0tLSAvZGV2L251bGwKKysrKyBiL3N5 c2RlcHMvdW5peC9zeXN2L2xpbnV4L25pb3MyL2JpdHMvc3RydWN0X3N0YXQuaAorQEAgLTAsMCAr MSwxMzUgQEAKKysvKiBEZWZpbml0aW9uIGZvciBzdHJ1Y3Qgc3RhdC4gIExpbnV4L25pb3MyIHZl cnNpb24uCisrICAgQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisr CisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBM aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRo ZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vu c2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeS4gIElmIG5vdCwgc2VlCisrICAgPGh0dHBz Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmICFkZWZpbmVkIF9TWVNfU1RB VF9IICYmICFkZWZpbmVkIF9GQ05UTF9ICisrIyBlcnJvciAiTmV2ZXIgaW5jbHVkZSA8Yml0cy9z dHJ1Y3Rfc3RhdC5oPiBkaXJlY3RseTsgdXNlIDxzeXMvc3RhdC5oPiBpbnN0ZWFkLiIKKysjZW5k aWYKKysKKysjaWZuZGVmIF9CSVRTX1NUUlVDVF9TVEFUX0gKKysjZGVmaW5lIF9CSVRTX1NUUlVD VF9TVEFUX0gJMQorKworKyNpbmNsdWRlIDxiaXRzL2VuZGlhbi5oPgorKyNpbmNsdWRlIDxiaXRz L3dvcmRzaXplLmg+CisrCisrI2lmIGRlZmluZWQgX19VU0VfRklMRV9PRkZTRVQ2NAorKyMgZGVm aW5lIF9fZmllbGQ2NCh0eXBlLCB0eXBlNjQsIG5hbWUpIHR5cGU2NCBuYW1lCisrI2VsaWYgX19X T1JEU0laRSA9PSA2NCB8fCBkZWZpbmVkIF9fSU5PX1RfTUFUQ0hFU19JTk82NF9UCisrIyBpZiBk ZWZpbmVkIF9fSU5PX1RfTUFUQ0hFU19JTk82NF9UICYmICFkZWZpbmVkIF9fT0ZGX1RfTUFUQ0hF U19PRkY2NF9UCisrIyAgZXJyb3IgImlub190IGFuZCBvZmZfdCBtdXN0IGJvdGggYmUgdGhlIHNh bWUgdHlwZSIKKysjIGVuZGlmCisrIyBkZWZpbmUgX19maWVsZDY0KHR5cGUsIHR5cGU2NCwgbmFt ZSkgdHlwZSBuYW1lCisrI2VsaWYgX19CWVRFX09SREVSID09IF9fTElUVExFX0VORElBTgorKyMg ZGVmaW5lIF9fZmllbGQ2NCh0eXBlLCB0eXBlNjQsIG5hbWUpIFwKKysgIHR5cGUgbmFtZSBfX2F0 dHJpYnV0ZV9fKChfX2FsaWduZWRfXyAoX19hbGlnbm9mX18gKHR5cGU2NCkpKSk7IGludCBfXyMj bmFtZSMjX3BhZAorKyNlbHNlCisrIyBkZWZpbmUgX19maWVsZDY0KHR5cGUsIHR5cGU2NCwgbmFt ZSkgXAorKyAgaW50IF9fIyNuYW1lIyNfcGFkIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fIChf X2FsaWdub2ZfXyAodHlwZTY0KSkpKTsgdHlwZSBuYW1lCisrI2VuZGlmCisrCisrc3RydWN0IHN0 YXQKKysgIHsKKysjaWZkZWYgX19VU0VfVElNRV9CSVRTNjQKKysjIGluY2x1ZGUgPGJpdHMvc3Ry dWN0X3N0YXRfdGltZTY0X2hlbHBlci5oPgorKyNlbHNlCisrICAgIF9fZGV2X3Qgc3RfZGV2OwkJ LyogRGV2aWNlLiAgKi8KKysgICAgX19maWVsZDY0KF9faW5vX3QsIF9faW5vNjRfdCwgc3RfaW5v KTsgIC8qIEZpbGUgc2VyaWFsIG51bWJlci4gKi8KKysgICAgX19tb2RlX3Qgc3RfbW9kZTsJCS8q IEZpbGUgbW9kZS4gICovCisrICAgIF9fbmxpbmtfdCBzdF9ubGluazsJCS8qIExpbmsgY291bnQu ICAqLworKyAgICBfX3VpZF90IHN0X3VpZDsJCS8qIFVzZXIgSUQgb2YgdGhlIGZpbGUncyBvd25l ci4JKi8KKysgICAgX19naWRfdCBzdF9naWQ7CQkvKiBHcm91cCBJRCBvZiB0aGUgZmlsZSdzIGdy b3VwLiovCisrICAgIF9fZGV2X3Qgc3RfcmRldjsJCS8qIERldmljZSBudW1iZXIsIGlmIGRldmlj ZS4gICovCisrICAgIF9fZGV2X3QgX19wYWQxOworKyAgICBfX2ZpZWxkNjQoX19vZmZfdCwgX19v ZmY2NF90LCBzdF9zaXplKTsgIC8qIFNpemUgb2YgZmlsZSwgaW4gYnl0ZXMuICovCisrICAgIF9f Ymxrc2l6ZV90IHN0X2Jsa3NpemU7CS8qIE9wdGltYWwgYmxvY2sgc2l6ZSBmb3IgSS9PLiAgKi8K KysgICAgaW50IF9fcGFkMjsKKysgICAgX19maWVsZDY0KF9fYmxrY250X3QsIF9fYmxrY250NjRf dCwgc3RfYmxvY2tzKTsgIC8qIDUxMi1ieXRlIGJsb2NrcyAqLworKyMgaWZkZWYgX19VU0VfWE9Q RU4ySzgKKysgICAgLyogTmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWVzdGFtcHMgYXJlIHN0b3Jl ZCBpbiBhIGZvcm1hdAorKyAgICAgICBlcXVpdmFsZW50IHRvICdzdHJ1Y3QgdGltZXNwZWMnLiAg VGhpcyBpcyB0aGUgdHlwZSB1c2VkCisrICAgICAgIHdoZW5ldmVyIHBvc3NpYmxlIGJ1dCB0aGUg VW5peCBuYW1lc3BhY2UgcnVsZXMgZG8gbm90IGFsbG93IHRoZQorKyAgICAgICBpZGVudGlmaWVy ICd0aW1lc3BlYycgdG8gYXBwZWFyIGluIHRoZSA8c3lzL3N0YXQuaD4gaGVhZGVyLgorKyAgICAg ICBUaGVyZWZvcmUgd2UgaGF2ZSB0byBoYW5kbGUgdGhlIHVzZSBvZiB0aGlzIGhlYWRlciBpbiBz dHJpY3RseQorKyAgICAgICBzdGFuZGFyZC1jb21wbGlhbnQgc291cmNlcyBzcGVjaWFsLiAgKi8K KysgICAgc3RydWN0IHRpbWVzcGVjIHN0X2F0aW07CQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAg Ki8KKysgICAgc3RydWN0IHRpbWVzcGVjIHN0X210aW07CQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZp Y2F0aW9uLiAgKi8KKysgICAgc3RydWN0IHRpbWVzcGVjIHN0X2N0aW07CQkvKiBUaW1lIG9mIGxh c3Qgc3RhdHVzIGNoYW5nZS4gICovCisrIyAgZGVmaW5lIHN0X2F0aW1lIHN0X2F0aW0udHZfc2Vj CS8qIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICAqLworKyMgIGRlZmluZSBzdF9tdGltZSBzdF9t dGltLnR2X3NlYworKyMgIGRlZmluZSBzdF9jdGltZSBzdF9jdGltLnR2X3NlYworKyMgZWxzZQor KyAgICBfX3RpbWVfdCBzdF9hdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8KKysg ICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfYXRpbWVuc2VjOwkvKiBOc2NlY3Mgb2YgbGFzdCBhY2Nl c3MuICAqLworKyAgICBfX3RpbWVfdCBzdF9tdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZp Y2F0aW9uLiAgKi8KKysgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfbXRpbWVuc2VjOwkvKiBOc2Vj cyBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIF9fdGltZV90IHN0X2N0aW1lOwkJCS8q IFRpbWUgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysgICAgdW5zaWduZWQgbG9uZyBpbnQg c3RfY3RpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyMgZW5k aWYKKysgICAgaW50IF9fZ2xpYmNfcmVzZXJ2ZWRbMl07CisrI2VuZGlmCisrICB9OworKworKyN1 bmRlZiBfX2ZpZWxkNjQKKysKKysjaWZkZWYgX19VU0VfTEFSR0VGSUxFNjQKKytzdHJ1Y3Qgc3Rh dDY0CisrICB7CisrIyBpZmRlZiBfX1VTRV9USU1FX0JJVFM2NAorKyMgIGluY2x1ZGUgPGJpdHMv c3RydWN0X3N0YXRfdGltZTY0X2hlbHBlci5oPgorKyMgZWxzZQorKyAgICBfX2Rldl90IHN0X2Rl djsJCS8qIERldmljZS4gICovCisrICAgIF9faW5vNjRfdCBzdF9pbm87CQkvKiBGaWxlIHNlcmlh bCBudW1iZXIuCSovCisrICAgIF9fbW9kZV90IHN0X21vZGU7CQkvKiBGaWxlIG1vZGUuICAqLwor KyAgICBfX25saW5rX3Qgc3Rfbmxpbms7CQkvKiBMaW5rIGNvdW50LiAgKi8KKysgICAgX191aWRf dCBzdF91aWQ7CQkvKiBVc2VyIElEIG9mIHRoZSBmaWxlJ3Mgb3duZXIuCSovCisrICAgIF9fZ2lk X3Qgc3RfZ2lkOwkJLyogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBncm91cC4qLworKyAgICBfX2Rl dl90IHN0X3JkZXY7CQkvKiBEZXZpY2UgbnVtYmVyLCBpZiBkZXZpY2UuICAqLworKyAgICBfX2Rl dl90IF9fcGFkMTsKKysgICAgX19vZmY2NF90IHN0X3NpemU7CQkvKiBTaXplIG9mIGZpbGUsIGlu IGJ5dGVzLiAgKi8KKysgICAgX19ibGtzaXplX3Qgc3RfYmxrc2l6ZTsJLyogT3B0aW1hbCBibG9j ayBzaXplIGZvciBJL08uICAqLworKyAgICBpbnQgX19wYWQyOworKyAgICBfX2Jsa2NudDY0X3Qg c3RfYmxvY2tzOwkvKiBOci4gNTEyLWJ5dGUgYmxvY2tzIGFsbG9jYXRlZC4gICovCisrIyAgaWZk ZWYgX19VU0VfWE9QRU4ySzgKKysgICAgLyogTmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWVzdGFt cHMgYXJlIHN0b3JlZCBpbiBhIGZvcm1hdAorKyAgICAgICBlcXVpdmFsZW50IHRvICdzdHJ1Y3Qg dGltZXNwZWMnLiAgVGhpcyBpcyB0aGUgdHlwZSB1c2VkCisrICAgICAgIHdoZW5ldmVyIHBvc3Np YmxlIGJ1dCB0aGUgVW5peCBuYW1lc3BhY2UgcnVsZXMgZG8gbm90IGFsbG93IHRoZQorKyAgICAg ICBpZGVudGlmaWVyICd0aW1lc3BlYycgdG8gYXBwZWFyIGluIHRoZSA8c3lzL3N0YXQuaD4gaGVh ZGVyLgorKyAgICAgICBUaGVyZWZvcmUgd2UgaGF2ZSB0byBoYW5kbGUgdGhlIHVzZSBvZiB0aGlz IGhlYWRlciBpbiBzdHJpY3RseQorKyAgICAgICBzdGFuZGFyZC1jb21wbGlhbnQgc291cmNlcyBz cGVjaWFsLiAgKi8KKysgICAgc3RydWN0IHRpbWVzcGVjIHN0X2F0aW07CQkvKiBUaW1lIG9mIGxh c3QgYWNjZXNzLiAgKi8KKysgICAgc3RydWN0IHRpbWVzcGVjIHN0X210aW07CQkvKiBUaW1lIG9m IGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8KKysgICAgc3RydWN0IHRpbWVzcGVjIHN0X2N0aW07CQkv KiBUaW1lIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCisrIyAgZWxzZQorKyAgICBfX3RpbWVf dCBzdF9hdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgYWNjZXNzLiAgKi8KKysgICAgdW5zaWduZWQg bG9uZyBpbnQgc3RfYXRpbWVuc2VjOwkvKiBOc2NlY3Mgb2YgbGFzdCBhY2Nlc3MuICAqLworKyAg ICBfX3RpbWVfdCBzdF9tdGltZTsJCQkvKiBUaW1lIG9mIGxhc3QgbW9kaWZpY2F0aW9uLiAgKi8K KysgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfbXRpbWVuc2VjOwkvKiBOc2VjcyBvZiBsYXN0IG1v ZGlmaWNhdGlvbi4gICovCisrICAgIF9fdGltZV90IHN0X2N0aW1lOwkJCS8qIFRpbWUgb2YgbGFz dCBzdGF0dXMgY2hhbmdlLiAgKi8KKysgICAgdW5zaWduZWQgbG9uZyBpbnQgc3RfY3RpbWVuc2Vj OwkvKiBOc2VjcyBvZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyMgIGVuZGlmCisrICAgIGlu dCBfX2dsaWJjX3Jlc2VydmVkWzJdOworKyMgZW5kaWYKKysgIH07CisrI2VuZGlmCisrCisrLyog VGVsbCBjb2RlIHdlIGhhdmUgdGhlc2UgbWVtYmVycy4gICovCisrI2RlZmluZQlfU1RBVEJVRl9T VF9CTEtTSVpFCisrI2RlZmluZSBfU1RBVEJVRl9TVF9SREVWCisrLyogTmFub3NlY29uZCByZXNv bHV0aW9uIHRpbWUgdmFsdWVzIGFyZSBzdXBwb3J0ZWQuICAqLworKyNkZWZpbmUgX1NUQVRCVUZf U1RfTlNFQworKworKyNlbmRpZiAvKiBfQklUU19TVFJVQ1RfU1RBVF9IICAqLworZGlmZiAtLWdp dCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NoL2JpdHMvc3RydWN0X3N0YXQuaCBiL3N5c2Rl cHMvdW5peC9zeXN2L2xpbnV4L3NoL2JpdHMvc3RydWN0X3N0YXQuaAorbmV3IGZpbGUgbW9kZSAx MDA2NDQKK2luZGV4IDAwMDAwMDAwMDAuLjBmN2M5Y2RjODkKKy0tLSAvZGV2L251bGwKKysrKyBi L3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NoL2JpdHMvc3RydWN0X3N0YXQuaAorQEAgLTAsMCAr MSwxMzkgQEAKKysvKiBEZWZpbml0aW9uIGZvciBzdHJ1Y3Qgc3RhdC4gIExpbnV4L3NoIHZlcnNp b24uCisrICAgQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisr ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNl bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBH TlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2Ug YWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeS4gIElmIG5vdCwgc2VlCisrICAgPGh0dHBzOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmICFkZWZpbmVkIF9TWVNfU1RBVF9I ICYmICFkZWZpbmVkIF9GQ05UTF9ICisrIyBlcnJvciAiTmV2ZXIgaW5jbHVkZSA8Yml0cy9zdHJ1 Y3Rfc3RhdC5oPiBkaXJlY3RseTsgdXNlIDxzeXMvc3RhdC5oPiBpbnN0ZWFkLiIKKysjZW5kaWYK KysKKysjaWZuZGVmIF9CSVRTX1NUUlVDVF9TVEFUX0gKKysjZGVmaW5lIF9CSVRTX1NUUlVDVF9T VEFUX0gJMQorKworKyNpbmNsdWRlIDxiaXRzL2VuZGlhbi5oPgorKyNpbmNsdWRlIDxiaXRzL3dv cmRzaXplLmg+CisrCisrc3RydWN0IHN0YXQKKysgIHsKKysjaWZkZWYgX19VU0VfVElNRV9CSVRT NjQKKysjIGluY2x1ZGUgPGJpdHMvc3RydWN0X3N0YXRfdGltZTY0X2hlbHBlci5oPgorKyNlbHNl CisrICAgIF9fZGV2X3Qgc3RfZGV2OwkJCS8qIERldmljZS4gICovCisrICAgIHVuc2lnbmVkIHNo b3J0IGludCBfX3BhZDE7CisrIyBpZm5kZWYgX19VU0VfRklMRV9PRkZTRVQ2NAorKyAgICBfX2lu b190IHN0X2lubzsJCQkvKiBGaWxlIHNlcmlhbCBudW1iZXIuCSovCisrIyBlbHNlCisrICAgIF9f aW5vX3QgX19zdF9pbm87CQkJLyogMzJiaXQgZmlsZSBzZXJpYWwgbnVtYmVyLgkqLworKyMgZW5k aWYKKysgICAgX19tb2RlX3Qgc3RfbW9kZTsJCQkvKiBGaWxlIG1vZGUuICAqLworKyAgICBfX25s aW5rX3Qgc3Rfbmxpbms7CQkJLyogTGluayBjb3VudC4gICovCisrICAgIF9fdWlkX3Qgc3RfdWlk OwkJCS8qIFVzZXIgSUQgb2YgdGhlIGZpbGUncyBvd25lci4JKi8KKysgICAgX19naWRfdCBzdF9n aWQ7CQkJLyogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBncm91cC4qLworKyAgICBfX2Rldl90IHN0 X3JkZXY7CQkJLyogRGV2aWNlIG51bWJlciwgaWYgZGV2aWNlLiAgKi8KKysgICAgdW5zaWduZWQg c2hvcnQgaW50IF9fcGFkMjsKKysjIGlmbmRlZiBfX1VTRV9GSUxFX09GRlNFVDY0CisrICAgIF9f b2ZmX3Qgc3Rfc2l6ZTsJCQkvKiBTaXplIG9mIGZpbGUsIGluIGJ5dGVzLiAgKi8KKysjIGVsc2UK KysgICAgX19vZmY2NF90IHN0X3NpemU7CQkJLyogU2l6ZSBvZiBmaWxlLCBpbiBieXRlcy4gICov CisrIyBlbmRpZgorKyAgICBfX2Jsa3NpemVfdCBzdF9ibGtzaXplOwkJLyogT3B0aW1hbCBibG9j ayBzaXplIGZvciBJL08uICAqLworKworKyMgaWZuZGVmIF9fVVNFX0ZJTEVfT0ZGU0VUNjQKKysg ICAgX19ibGtjbnRfdCBzdF9ibG9ja3M7CQkvKiBOdW1iZXIgNTEyLWJ5dGUgYmxvY2tzIGFsbG9j YXRlZC4gKi8KKysjIGVsc2UKKysgICAgX19ibGtjbnQ2NF90IHN0X2Jsb2NrczsJCS8qIE51bWJl ciA1MTItYnl0ZSBibG9ja3MgYWxsb2NhdGVkLiAqLworKyMgZW5kaWYKKysjIGlmZGVmIF9fVVNF X1hPUEVOMks4CisrICAgIC8qIE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBzIGFyZSBz dG9yZWQgaW4gYSBmb3JtYXQKKysgICAgICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRpbWVzcGVj Jy4gIFRoaXMgaXMgdGhlIHR5cGUgdXNlZAorKyAgICAgICB3aGVuZXZlciBwb3NzaWJsZSBidXQg dGhlIFVuaXggbmFtZXNwYWNlIHJ1bGVzIGRvIG5vdCBhbGxvdyB0aGUKKysgICAgICAgaWRlbnRp ZmllciAndGltZXNwZWMnIHRvIGFwcGVhciBpbiB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlci4KKysg ICAgICAgVGhlcmVmb3JlIHdlIGhhdmUgdG8gaGFuZGxlIHRoZSB1c2Ugb2YgdGhpcyBoZWFkZXIg aW4gc3RyaWN0bHkKKysgICAgICAgc3RhbmRhcmQtY29tcGxpYW50IHNvdXJjZXMgc3BlY2lhbC4g ICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9hdGltOwkJLyogVGltZSBvZiBsYXN0IGFjY2Vz cy4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9tdGltOwkJLyogVGltZSBvZiBsYXN0IG1v ZGlmaWNhdGlvbi4gICovCisrICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9jdGltOwkJLyogVGltZSBv ZiBsYXN0IHN0YXR1cyBjaGFuZ2UuICAqLworKyMgIGRlZmluZSBzdF9hdGltZSBzdF9hdGltLnR2 X3NlYwkvKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAgKi8KKysjICBkZWZpbmUgc3RfbXRpbWUg c3RfbXRpbS50dl9zZWMKKysjICBkZWZpbmUgc3RfY3RpbWUgc3RfY3RpbS50dl9zZWMKKysjIGVs c2UKKysgICAgX190aW1lX3Qgc3RfYXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICov CisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2F0aW1lbnNlYzsJLyogTnNjZWNzIG9mIGxhc3Qg YWNjZXNzLiAgKi8KKysgICAgX190aW1lX3Qgc3RfbXRpbWU7CQkJLyogVGltZSBvZiBsYXN0IG1v ZGlmaWNhdGlvbi4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X210aW1lbnNlYzsJLyog TnNlY3Mgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLworKyAgICBfX3RpbWVfdCBzdF9jdGltZTsJ CQkvKiBUaW1lIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCisrICAgIHVuc2lnbmVkIGxvbmcg aW50IHN0X2N0aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBzdGF0dXMgY2hhbmdlLiAgKi8KKysj IGVuZGlmCisrIyBpZm5kZWYgX19VU0VfRklMRV9PRkZTRVQ2NAorKyAgICB1bnNpZ25lZCBsb25n IGludCBfX2dsaWJjX3Jlc2VydmVkNDsKKysgICAgdW5zaWduZWQgbG9uZyBpbnQgX19nbGliY19y ZXNlcnZlZDU7CisrIyBlbHNlCisrICAgIF9faW5vNjRfdCBzdF9pbm87CQkJLyogRmlsZSBzZXJp YWwgbnVtYmVyLgkqLworKyMgZW5kaWYKKysjZW5kaWYgLyogX19VU0VfVElNRV9CSVRTNjQgICov CisrICB9OworKworKyNpZmRlZiBfX1VTRV9MQVJHRUZJTEU2NAorK3N0cnVjdCBzdGF0NjQKKysg IHsKKysjIGlmZGVmIF9fVVNFX1RJTUVfQklUUzY0CisrIyAgaW5jbHVkZSA8Yml0cy9zdHJ1Y3Rf c3RhdF90aW1lNjRfaGVscGVyLmg+CisrIyBlbHNlCisrICAgIF9fZGV2X3Qgc3RfZGV2OwkJCS8q IERldmljZS4gICovCisrICAgIHVuc2lnbmVkIGludCBfX3BhZDE7CisrCisrICAgIF9faW5vX3Qg X19zdF9pbm87CQkJLyogMzJiaXQgZmlsZSBzZXJpYWwgbnVtYmVyLgkqLworKyAgICBfX21vZGVf dCBzdF9tb2RlOwkJCS8qIEZpbGUgbW9kZS4gICovCisrICAgIF9fbmxpbmtfdCBzdF9ubGluazsJ CQkvKiBMaW5rIGNvdW50LiAgKi8KKysgICAgX191aWRfdCBzdF91aWQ7CQkJLyogVXNlciBJRCBv ZiB0aGUgZmlsZSdzIG93bmVyLgkqLworKyAgICBfX2dpZF90IHN0X2dpZDsJCQkvKiBHcm91cCBJ RCBvZiB0aGUgZmlsZSdzIGdyb3VwLiovCisrICAgIF9fZGV2X3Qgc3RfcmRldjsJCQkvKiBEZXZp Y2UgbnVtYmVyLCBpZiBkZXZpY2UuICAqLworKyAgICB1bnNpZ25lZCBpbnQgX19wYWQyOworKyAg ICBfX29mZjY0X3Qgc3Rfc2l6ZTsJCQkvKiBTaXplIG9mIGZpbGUsIGluIGJ5dGVzLiAgKi8KKysg ICAgX19ibGtzaXplX3Qgc3RfYmxrc2l6ZTsJCS8qIE9wdGltYWwgYmxvY2sgc2l6ZSBmb3IgSS9P LiAgKi8KKysKKysgICAgX19ibGtjbnQ2NF90IHN0X2Jsb2NrczsJCS8qIE51bWJlciA1MTItYnl0 ZSBibG9ja3MgYWxsb2NhdGVkLiAqLworKyMgIGlmZGVmIF9fVVNFX1hPUEVOMks4CisrICAgIC8q IE5hbm9zZWNvbmQgcmVzb2x1dGlvbiB0aW1lc3RhbXBzIGFyZSBzdG9yZWQgaW4gYSBmb3JtYXQK KysgICAgICAgZXF1aXZhbGVudCB0byAnc3RydWN0IHRpbWVzcGVjJy4gIFRoaXMgaXMgdGhlIHR5 cGUgdXNlZAorKyAgICAgICB3aGVuZXZlciBwb3NzaWJsZSBidXQgdGhlIFVuaXggbmFtZXNwYWNl IHJ1bGVzIGRvIG5vdCBhbGxvdyB0aGUKKysgICAgICAgaWRlbnRpZmllciAndGltZXNwZWMnIHRv IGFwcGVhciBpbiB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlci4KKysgICAgICAgVGhlcmVmb3JlIHdl IGhhdmUgdG8gaGFuZGxlIHRoZSB1c2Ugb2YgdGhpcyBoZWFkZXIgaW4gc3RyaWN0bHkKKysgICAg ICAgc3RhbmRhcmQtY29tcGxpYW50IHNvdXJjZXMgc3BlY2lhbC4gICovCisrICAgIHN0cnVjdCB0 aW1lc3BlYyBzdF9hdGltOwkJLyogVGltZSBvZiBsYXN0IGFjY2Vzcy4gICovCisrICAgIHN0cnVj dCB0aW1lc3BlYyBzdF9tdGltOwkJLyogVGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisr ICAgIHN0cnVjdCB0aW1lc3BlYyBzdF9jdGltOwkJLyogVGltZSBvZiBsYXN0IHN0YXR1cyBjaGFu Z2UuICAqLworKyMgIGVsc2UKKysgICAgX190aW1lX3Qgc3RfYXRpbWU7CQkJLyogVGltZSBvZiBs YXN0IGFjY2Vzcy4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0X2F0aW1lbnNlYzsJLyog TnNjZWNzIG9mIGxhc3QgYWNjZXNzLiAgKi8KKysgICAgX190aW1lX3Qgc3RfbXRpbWU7CQkJLyog VGltZSBvZiBsYXN0IG1vZGlmaWNhdGlvbi4gICovCisrICAgIHVuc2lnbmVkIGxvbmcgaW50IHN0 X210aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBtb2RpZmljYXRpb24uICAqLworKyAgICBfX3Rp bWVfdCBzdF9jdGltZTsJCQkvKiBUaW1lIG9mIGxhc3Qgc3RhdHVzIGNoYW5nZS4gICovCisrICAg IHVuc2lnbmVkIGxvbmcgaW50IHN0X2N0aW1lbnNlYzsJLyogTnNlY3Mgb2YgbGFzdCBzdGF0dXMg Y2hhbmdlLiAgKi8KKysjICBlbmRpZgorKyAgICBfX2lubzY0X3Qgc3RfaW5vOwkJCS8qIEZpbGUg c2VyaWFsIG51bWJlci4JCSovCisrIyBlbmRpZiAvKiBfX1VTRV9USU1FX0JJVFM2NCAgKi8KKysg IH07CisrI2VuZGlmCisrCisrLyogVGVsbCBjb2RlIHdlIGhhdmUgdGhlc2UgbWVtYmVycy4gICov CisrI2RlZmluZQlfU1RBVEJVRl9TVF9CTEtTSVpFCisrI2RlZmluZSBfU1RBVEJVRl9TVF9SREVW CisrLyogTmFub3NlY29uZCByZXNvbHV0aW9uIHRpbWUgdmFsdWVzIGFyZSBzdXBwb3J0ZWQuICAq LworKyNkZWZpbmUgX1NUQVRCVUZfU1RfTlNFQworKworKworKyNlbmRpZiAvKiBfQklUU19TVFJV Q1RfU1RBVF9IICAqLworLS0gCisyLjM4LjEKKworCitGcm9tIGExZGMwYmUwM2M5ZGQ4NTBiODY0 YmQ3YTljMDNjZjhlMzk2ZWI3Y2EgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBZGhl bWVydmFsIFphbmVsbGEgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8ub3JnPgorRGF0ZTogVHVl LCAyNSBPY3QgMjAyMiAxMzoxOToxNiAtMDMwMAorU3ViamVjdDogZWxmOiBSZWluc3RhdGUgb24g RExfREVCVUdfQklORElOR1MgX2RsX2xvb2t1cF9zeW1ib2xfeAorCitUaGUgcHJlbGluayByZW1v dmFsIGRvbmUgYnkgNjYyOGM3NDJiMmMxNmUgd3JvbmdseSByZW1vdmVkIHRoZSBkZWJ1Zworc3Vw cG9ydC4KKworQ2hlY2tlZCBvbiB4ODZfNjQtbGludXgtZ251LgorCisoY2hlcnJ5IHBpY2tlZCBm cm9tIGNvbW1pdCA4OTFhNzk1OGEyOGVhYzZkNGFmMTUxN2RkMjg5NmZlZjVlNDk1MWQ0KQorLS0t CisgZWxmL2RsLWxvb2t1cC5jIHwgMTcgKysrKysrKysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdl ZCwgMTcgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvZWxmL2RsLWxvb2t1cC5jIGIvZWxm L2RsLWxvb2t1cC5jCitpbmRleCA0Yzg2ZGM2OTRlLi42N2ZiMmUzMWUyIDEwMDY0NAorLS0tIGEv ZWxmL2RsLWxvb2t1cC5jCisrKysgYi9lbGYvZGwtbG9va3VwLmMKK0BAIC04NTQsNiArODU0LDIz IEBAIF9kbF9sb29rdXBfc3ltYm9sX3ggKGNvbnN0IGNoYXIgKnVuZGVmX25hbWUsIHN0cnVjdCBs aW5rX21hcCAqdW5kZWZfbWFwLAorICAgaWYgKF9fZ2xpYmNfdW5saWtlbHkgKGN1cnJlbnRfdmFs dWUubS0+bF91c2VkID09IDApKQorICAgICBjdXJyZW50X3ZhbHVlLm0tPmxfdXNlZCA9IDE7Cisg CisrIGlmIChfX2dsaWJjX3VubGlrZWx5IChHTFJPKGRsX2RlYnVnX21hc2spICYgRExfREVCVUdf QklORElOR1MpKQorKyAgIHsKKysgICAgICBjb25zdCBjaGFyICpyZWZlcmVuY2VfbmFtZSA9IHVu ZGVmX21hcC0+bF9uYW1lOworKworKyAgICAgIF9kbF9kZWJ1Z19wcmludGYgKCJiaW5kaW5nIGZp bGUgJXMgWyVsdV0gdG8gJXMgWyVsdV06ICVzIHN5bWJvbCBgJXMnIiwKKysJCQlEU09fRklMRU5B TUUgKHJlZmVyZW5jZV9uYW1lKSwKKysJCQl1bmRlZl9tYXAtPmxfbnMsCisrCQkJRFNPX0ZJTEVO QU1FIChjdXJyZW50X3ZhbHVlLm0tPmxfbmFtZSksCisrCQkJY3VycmVudF92YWx1ZS5tLT5sX25z LAorKwkJCXByb3RlY3RlZCA/ICJwcm90ZWN0ZWQiIDogIm5vcm1hbCIsIHVuZGVmX25hbWUpOwor KyAgICAgIGlmICh2ZXJzaW9uKQorKwlfZGxfZGVidWdfcHJpbnRmX2MgKCIgWyVzXVxuIiwgdmVy c2lvbi0+bmFtZSk7CisrICAgICAgZWxzZQorKwlfZGxfZGVidWdfcHJpbnRmX2MgKCJcbiIpOwor KyAgIH0KKysKKysKKyAgICpyZWYgPSBjdXJyZW50X3ZhbHVlLnM7CisgICByZXR1cm4gTE9PS1VQ X1ZBTFVFIChjdXJyZW50X3ZhbHVlLm0pOworIH0KKy0tIAorMi4zOC4xCisKKworRnJvbSA0YzZh NzhhZGRhYmJkNmUxYjY5NzYzZTI4Njc2ODkxOWU1NmRmZTBhIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogWGkgUnVveWFvIDx4cnkxMTFAeHJ5MTExLnNpdGU+CitEYXRlOiBTYXQsIDE1 IE9jdCAyMDIyIDE0OjEyOjEzICswODAwCitTdWJqZWN0OiBsb25nbG9uZy5oOiB1cGRhdGUgZnJv bSBHQ0MgZm9yIExvb25nQXJjaCBjbHovY3R6IHN1cHBvcnQKKworVXBkYXRlIGxvbmdsb25nLmgg dG8gR0NDIHIxMy0zMjY5LiAgS2VlcCBvdXIgbG9jYWwgY2hhbmdlIChwcmVmZXIgaHR0cHMKK2Zv ciBnbnUub3JnIFVSTCkuCistLS0KKyBzdGRsaWIvbG9uZ2xvbmcuaCB8IDEyICsrKysrKysrKysr KworIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9zdGRs aWIvbG9uZ2xvbmcuaCBiL3N0ZGxpYi9sb25nbG9uZy5oCitpbmRleCA5Yjg5NDY5YWMyLi5kOGY3 NmE0M2I1IDEwMDY0NAorLS0tIGEvc3RkbGliL2xvbmdsb25nLmgKKysrKyBiL3N0ZGxpYi9sb25n bG9uZy5oCitAQCAtNTkzLDYgKzU5MywxOCBAQCBleHRlcm4gVURJdHlwZSBfX3VtdWxzaWRpMyAo VVNJdHlwZSwgVVNJdHlwZSk7CisgI2RlZmluZSBVTVVMX1RJTUUgMTQKKyAjZW5kaWYKKyAKKysj aWZkZWYgX19sb29uZ2FyY2hfXworKyMgaWYgV19UWVBFX1NJWkUgPT0gMzIKKysjICBkZWZpbmUg Y291bnRfbGVhZGluZ196ZXJvcyhjb3VudCwgeCkgICgoY291bnQpID0gX19idWlsdGluX2NseiAo eCkpCisrIyAgZGVmaW5lIGNvdW50X3RyYWlsaW5nX3plcm9zKGNvdW50LCB4KSAoKGNvdW50KSA9 IF9fYnVpbHRpbl9jdHogKHgpKQorKyMgIGRlZmluZSBDT1VOVF9MRUFESU5HX1pFUk9TXzAgMzIK KysjIGVsaWYgV19UWVBFX1NJWkUgPT0gNjQKKysjICBkZWZpbmUgY291bnRfbGVhZGluZ196ZXJv cyhjb3VudCwgeCkgICgoY291bnQpID0gX19idWlsdGluX2NsemxsICh4KSkKKysjICBkZWZpbmUg Y291bnRfdHJhaWxpbmdfemVyb3MoY291bnQsIHgpICgoY291bnQpID0gX19idWlsdGluX2N0emxs ICh4KSkKKysjICBkZWZpbmUgQ09VTlRfTEVBRElOR19aRVJPU18wIDY0CisrIyBlbmRpZgorKyNl bmRpZgorKworICNpZiBkZWZpbmVkIChfX00zMlJfXykgJiYgV19UWVBFX1NJWkUgPT0gMzIKKyAj ZGVmaW5lIGFkZF9zc2FhYWEoc2gsIHNsLCBhaCwgYWwsIGJoLCBibCkgXAorICAgLyogVGhlIGNt cCBjbGVhcnMgdGhlIGNvbmRpdGlvbiBiaXQuICAqLyBcCistLSAKKzIuMzguMQorCisKK0Zyb20g ZGQ0MTMxYzgzMjI4OTFhMGFkN2NmYjY2MWVmYTQxYWVjYzAyYjU4MSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEF1cmVsaWVuIEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KK0Rh dGU6IFR1ZSwgMSBOb3YgMjAyMiAyMDo0Mzo1NSArMDEwMAorU3ViamVjdDogbGludXg6IEZpeCBm c3RhdGF0IG9uIE1JUFNuNjQgKEJaICMyOTczMCkKKworQ29tbWl0IDZlOGEwYWFjMmY4ODMgKCJ0 aW1lOiBGaXggb3ZlcmZsb3cgaXRpbWVyIHRlc3RzIG9uIDMyLWJpdAorc3lzdGVtcyIpIGNoYW5n ZWQgaW5fdGltZV90X3JhbmdlIHRvIGFzc3VtZSBhIDMyLWJpdCB0aW1lX3QuIFRoaXMgYnJva2UK K2ZzdGF0YXQgb24gTUlQU242NCB0aGF0IHdhcyB1c2luZyBpdCB3aXRoIGEgNjQtYml0IHRpbWVf dCBkdWUgdG8KK2RpZmZlcmVuY2UgYmV0d2VlbiBzdGF0IGFuZCBzdGF0NjQuIFRoaXMgY29tbWl0 IGZpeCB0aGF0IGJ5IGFkZGluZyBhCitNSVBTbjY0IHNwZWNpZmljIHZlcnNpb24sIHdoaWNoIGJ5 cGFzc2VzIHRoZSBFT1ZFUkZMT1cgdGVzdHMuCisKK1Jlc29sdmVzOiBCWiAjMjk3MzAKKworUmV2 aWV3ZWQtYnk6IEFkaGVtZXJ2YWwgWmFuZWxsYSAgPGFkaGVtZXJ2YWwuemFuZWxsYUBsaW5hcm8u b3JnPgorKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNzQ1N2I3ZWVmOGRmZThjYzQ4ZTU1Yjlm OTgzN2RmNmRkMzk3YjgwZCkKKy0tLQorIE5FV1MgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAxICsKKyAuLi4vdW5peC9zeXN2L2xpbnV4L21pcHMvbWlwczY0L242 NC9mc3RhdGF0LmMgfCA1MSArKysrKysrKysrKysrKysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA1 MiBpbnNlcnRpb25zKCspCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvdW5peC9zeXN2L2xp bnV4L21pcHMvbWlwczY0L242NC9mc3RhdGF0LmMKKworZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdT CitpbmRleCA4MzMwNDU1ODVmLi5lOTJkNTQ3ZTJjIDEwMDY0NAorLS0tIGEvTkVXUworKysrIGIv TkVXUworQEAgLTQ1LDYgKzQ1LDcgQEAgVGhlIGZvbGxvd2luZyBidWdzIGFyZSByZXNvbHZlZCB3 aXRoIHRoaXMgcmVsZWFzZToKKyAgIFsyOTYzOF0gbGliYzogc3RkbGliOiBhcmM0cmFuZG9tIGZh bGxiYWNrIGlzIG5ldmVyIHVzZWQKKyAgIFsyOTY1N10gbGliYzogSW5jb3JyZWN0IHN0cnVjdCBz dGF0IGZvciA2NC1iaXQgdGltZSBvbiBsaW51eC9nZW5lcmljCisgICAgIHBsYXRmb3JtcworKyAg WzI5NzMwXSBicm9rZW4geTIwMzggc3VwcG9ydCBpbiBmc3RhdGF0IG9uIE1JUFMgTjY0CisgDAor IFZlcnNpb24gMi4zNgorIAorZGlmZiAtLWdpdCBhL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21p cHMvbWlwczY0L242NC9mc3RhdGF0LmMgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9taXBzL21p cHM2NC9uNjQvZnN0YXRhdC5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAw MC4uZmU2YzNhMGRkYQorLS0tIC9kZXYvbnVsbAorKysrIGIvc3lzZGVwcy91bml4L3N5c3YvbGlu dXgvbWlwcy9taXBzNjQvbjY0L2ZzdGF0YXQuYworQEAgLTAsMCArMSw1MSBAQAorKy8qIEdldCBm aWxlIHN0YXR1cy4gIExpbnV4L01JUFNuNjQgdmVyc2lvbi4KKysgICBDb3B5cmlnaHQgKEMpIDIw MjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQg b2YgdGhlIEdOVSBDIExpYnJhcnkuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor KyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO VQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisr CisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsg aWYgbm90LCBzZWUKKysgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysK KysjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKysjaW5jbHVkZSA8c3lzZGVwLmg+CisrCisrLyogRGlm ZmVyZW50IHRoYW4gb3RoZXIgQUJJcywgbWlwczY0IGhhcyBkaWZmZXJlbnQgbGF5b3V0cyBmb3Ig bm9uLUxGUworKyAgIGFuZCBMRlMgc3RydWN0IHN0YXQuICAqLworK2ludAorK19fZnN0YXRhdCAo aW50IGZkLCBjb25zdCBjaGFyICpmaWxlLCBzdHJ1Y3Qgc3RhdCAqYnVmLCBpbnQgZmxhZykKKyt7 CisrICBzdHJ1Y3QgX19zdGF0NjRfdDY0IHN0NjQ7CisrICBpbnQgciA9IF9fZnN0YXRhdDY0X3Rp bWU2NCAoZmQsIGZpbGUsICZzdDY0LCBmbGFnKTsKKysgIGlmIChyID09IDApCisrICAgIHsKKysg ICAgICAvKiBDbGVhciBpbnRlcm5hbCBwYWQgYW5kIHJlc2VydmVkIGZpZWxkcy4gICovCisrICAg ICAgbWVtc2V0IChidWYsIDAsIHNpemVvZiAoKmJ1ZikpOworKworKyAgICAgIGJ1Zi0+c3RfZGV2 ID0gc3Q2NC5zdF9kZXY7CisrICAgICAgYnVmLT5zdF9pbm8gPSBzdDY0LnN0X2lubzsKKysgICAg ICBidWYtPnN0X21vZGUgPSBzdDY0LnN0X21vZGU7CisrICAgICAgYnVmLT5zdF9ubGluayA9IHN0 NjQuc3Rfbmxpbms7CisrICAgICAgYnVmLT5zdF91aWQgPSBzdDY0LnN0X3VpZDsKKysgICAgICBi dWYtPnN0X2dpZCA9IHN0NjQuc3RfZ2lkOworKyAgICAgIGJ1Zi0+c3RfcmRldiA9IHN0NjQuc3Rf cmRldjsKKysgICAgICBidWYtPnN0X3NpemUgPSBzdDY0LnN0X3NpemU7CisrICAgICAgYnVmLT5z dF9ibGtzaXplID0gc3Q2NC5zdF9ibGtzaXplOworKyAgICAgIGJ1Zi0+c3RfYmxvY2tzICA9IHN0 NjQuc3RfYmxvY2tzOworKyAgICAgIGJ1Zi0+c3RfYXRpbSA9IHN0NjQuc3RfYXRpbTsKKysgICAg ICBidWYtPnN0X210aW0gPSBzdDY0LnN0X210aW07CisrICAgICAgYnVmLT5zdF9jdGltID0gc3Q2 NC5zdF9jdGltOworKyAgICB9CisrICByZXR1cm4gcjsKKyt9CisrCisrd2Vha19hbGlhcyAoX19m c3RhdGF0LCBmc3RhdGF0KQorLS0gCisyLjM4LjEKKworCitGcm9tIDJmY2U4NWY2N2M1NmU0Njg2 M2RiNDBiOGNhNzViYmYwZmE5OTMwNTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBj YWl5aW55dSA8Y2FpeWlueXVAbG9vbmdzb24uY24+CitEYXRlOiBXZWQsIDEyIE9jdCAyMDIyIDIw OjI4OjQyICswODAwCitTdWJqZWN0OiBMb29uZ0FyY2g6IEZpeCBBQkkgcmVsYXRlZCBtYWNyb3Mg aW4gZWxmLmggdG8ga2VlcCBjb25zaXN0ZW50IHdpdGgKKyBiaW51dGlsc1sxXS4KKworWzFdOgor aHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9YmludXRpbHMtZ2RiLmdpdDthPWNvbW1pdGRp ZmY7aD1jNGE3ZTZiNTYyMThlMWQ1YTg1ODY4MjE4NmI1NDJlMmVhZTAxYTRhO2hwPTBkOTRhODcz NTA1NTQzMjAyOTIzNzYxMmE2ZWI5MTY1ZGIxZWM5ZGQKK1syXToKK1JlZmVyZW5jZTogaHR0cHM6 Ly9sb29uZ3Nvbi5naXRodWIuaW8vTG9vbmdBcmNoLURvY3VtZW50YXRpb24vTG9vbmdBcmNoLUVM Ri1BQkktRU4uaHRtbCNfZV9mbGFnc19pZGVudGlmaWVzX2FiaV90eXBlX2FuZF92ZXJzaW9uCist LS0KKyBlbGYvZWxmLmggfCA3ICsrKysrLS0KKyAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZWxmL2VsZi5oIGIvZWxmL2VsZi5o CitpbmRleCAwMmExYjNmNTJmLi4wMTQzOTNmM2NjIDEwMDY0NAorLS0tIGEvZWxmL2VsZi5oCisr KysgYi9lbGYvZWxmLmgKK0BAIC00MDg1LDggKzQwODUsMTEgQEAgZW51bQorICNkZWZpbmUgUl9O RFMzMl9UTFNfREVTQwkxMTkKKyAKKyAvKiBMb29uZ0FyY2ggRUxGIEZsYWdzICovCistI2RlZmlu ZSBFRl9MQVJDSF9BQkkgICAgCTB4MDcKKy0jZGVmaW5lIEVGX0xBUkNIX0FCSV9MUDY0RAkweDAz CisrI2RlZmluZSBFRl9MQVJDSF9BQklfTU9ESUZJRVJfTUFTSyAgMHgwNworKyNkZWZpbmUgRUZf TEFSQ0hfQUJJX1NPRlRfRkxPQVQgICAgIDB4MDEKKysjZGVmaW5lIEVGX0xBUkNIX0FCSV9TSU5H TEVfRkxPQVQgICAweDAyCisrI2RlZmluZSBFRl9MQVJDSF9BQklfRE9VQkxFX0ZMT0FUICAgMHgw MworKyNkZWZpbmUgRUZfTEFSQ0hfT0JKQUJJX1YxICAgICAgICAgIDB4NDAKKyAKKyAvKiBMb29u Z0FyY2ggc3BlY2lmaWMgZHluYW1pYyByZWxvY2F0aW9ucyAqLworICNkZWZpbmUgUl9MQVJDSF9O T05FCQkwCistLSAKKzIuMzguMQorCisKK0Zyb20gMzZjYzA2MzQxYTBjNTAyOWY0OWVmYWVlZjc0 NGRjM2U5NzU4ZTY2OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNlcmdlaSBUcm9m aW1vdmljaCA8c2x5aWNoQGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgMTMgU2VwIDIwMjIgMTM6Mzk6 MTMgLTA0MDAKK1N1YmplY3Q6IE1ha2VydWxlczogZml4IE1BS0VGTEFHUyBhc3NpZ25tZW50IGZv ciB1cGNvbWluZyBtYWtlLTQuNCBbQlojIDI5NTY0XQorCittYWtlLTQuNCB3aWxsIGFkZCBsb25n IGZsYWdzIHRvIE1BS0VGTEFHUyB2YXJpYWJsZToKKworICAgICogV0FSTklORzogQmFja3dhcmQt aW5jb21wYXRpYmlsaXR5IQorICAgICAgUHJldmlvdXNseSBvbmx5IHNpbXBsZSAob25lLWxldHRl cikgb3B0aW9ucyB3ZXJlIGFkZGVkIHRvIHRoZSBNQUtFRkxBR1MKKyAgICAgIHZhcmlhYmxlIHRo YXQgd2FzIHZpc2libGUgd2hpbGUgcGFyc2luZyBtYWtlZmlsZXMuICBOb3csIGFsbCBvcHRpb25z CisgICAgICBhcmUgYXZhaWxhYmxlIGluIE1BS0VGTEFHUy4KKworVGhpcyBjYXVzZXMgbG9jYWxl IGJ1aWxkcyB0byBmYWlsIHdoZW4gbG9uZyBvcHRpb25zIGFyZSB1c2VkOgorCisgICAgJCBtYWtl IC0tc2h1ZmZsZQorICAgIC4uLgorICAgIG1ha2UgIC1DIGxvY2FsZWRhdGEgaW5zdGFsbC1sb2Nh bGVzCisgICAgbWFrZTogaW52YWxpZCBzaHVmZmxlIG1vZGU6ICcxNjYyNzI0NDI2cicKKworVGhl IGNoYW5nZSBmaXhlcyBpdCBieSBwYXNzaW5nIGVhc2ggb3B0aW9uIHZpYSB3aGl0ZXNwYWNlIGFu ZCBkYXNoZXMuCitUaGF0IHdheSBvcHRpb24gaXMgYXBwZW5kZWQgdG8gYm90aCBzaW5nbGUtd29y ZCBmb3JtIGFuZCB3aGl0ZXNwYWNlCitzZXBhcmF0ZWQgZm9ybS4KKworV2hpbGUgYXQgaXQgZml4 ZWQgLS1zaWxlbnQgbW9kZSBkZXRlY3Rpb24gaW4gJChNQUtFRkxBR1MpIGJ5IGZpbHRlcmluZwor b3V0IC0tbG9uZy1vcHRpb25zLiBPdGhlcndpc2Ugb3B0aW9ucyBsaWtlIC0tc2h1ZmZsZSBmbGFn IGVuYWJsZSBzaWxlbnQKK21vZGUgdW5pbnRlbnRpb25hbGx5LiAkKHNpbGVudC1tYWtlKSB2YXJp YWJsZSBjb25zb2xpZGF0ZXMgdGhlIGNoZWNrcy4KKworUmVzb2x2ZXM6IEJaIyAyOTU2NAorCitD QzogUGF1bCBTbWl0aCA8cHNtaXRoQGdudS5vcmc+CitDQzogU2lkZGhlc2ggUG95YXJla2FyIDxz aWRkaGVzaEBnb3RwbHQub3JnPgorU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFRyb2ZpbW92aWNoIDxz bHlpY2hAZ21haWwuY29tPgorUmV2aWV3ZWQtYnk6IFNpZGRoZXNoIFBveWFyZWthciA8c2lkZGhl c2hAc291cmNld2FyZS5vcmc+CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCAyZDdlZDk4YWRk MTRmNzUwNDE0OTlhYzE4OTY5NmM5YmQzZDc1N2ZlKQorLS0tCisgTWFrZWNvbmZpZyAgICAgfCAx OCArKysrKysrKysrKysrKysrKy0KKyBNYWtlcnVsZXMgICAgICB8ICA0ICsrLS0KKyBlbGYvcnRs ZC1SdWxlcyB8ICAyICstCisgMyBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvTWFrZWNvbmZpZyBiL01ha2Vjb25maWcKK2luZGV4 IGJhNzAzMjFhZjEuLjJiYmNhYmQ4ZjkgMTAwNjQ0CistLS0gYS9NYWtlY29uZmlnCisrKysgYi9N YWtlY29uZmlnCitAQCAtNDMsNiArNDMsMjIgQEAgZWxzZQorICQoZXJyb3Igb2JqZGlyIG11c3Qg YmUgZGVmaW5lZCBieSB0aGUgYnVpbGQtZGlyZWN0b3J5IE1ha2VmaWxlKQorIGVuZGlmCisgCisr IyBEaWQgd2UgcmVxdWVzdCAnbWFrZSAtcycgcnVuPyAieWVzIiBvciAibm8iLgorKyMgU3RhcnRp bmcgZnJvbSBtYWtlLTQuNCBNQUtFRkxBR1Mgbm93IGNvbnRhaW5zIGxvbmcKKysjIG9wdGlvbnMg bGlrZSAnLS1zaHVmZmxlJy4gVG8gZGV0ZWN0IHByZXNlbmNlIG9mICdzJworKyMgd2UgcGljayBm aXJzdCB3b3JkIHdpdGggc2hvcnQgb3B0aW9ucy4gTG9uZyBvcHRpb25zCisrIyBhcmUgZ3VhcmFu dGVlZCB0byBjb21lIGFmdGVyIHdoaXRlc3BhY2UuIFdlIHVzZSAnLScKKysjIHByZWZpeCB0byBh bHdheXMgaGF2ZSBhIHdvcmQgYmVmb3JlIGxvbmcgb3B0aW9ucworKyMgZXZlbiBpZiBubyBzaG9y dCBvcHRpb25zIHdlcmUgcGFzc2VkLgorKyMgVHlwaWNhbCBNQUtFRkxBR1MgdmFsdWVzIHRvIHdh dGNoIGZvcjoKKysjICAgInJzIC0tc2h1ZmZsZT00MiIgKHNpbGVudCkKKysjICAgIiAtLXNodWZm bGUiIChub3Qgc2lsZW50KQorK2lmZXEgKCQoZmluZHN0cmluZyBzLCAkKGZpcnN0d29yZCAtJChN QUtFRkxBR1MpKSksKQorK3NpbGVudC1tYWtlIDo9IG5vCisrZWxzZQorK3NpbGVudC1tYWtlIDo9 IHllcworK2VuZGlmCisrCisgIyBSb290IG9mIHRoZSBzeXNkZXBzIHRyZWUuCisgc3lzZGVwX2Rp ciA6PSAkKC4uKXN5c2RlcHMKKyBleHBvcnQgc3lzZGVwX2RpciA6PSAkKHN5c2RlcF9kaXIpCitA QCAtOTE3LDcgKzkzMyw3IEBAIGVuZGlmCisgIyB1bXB0ZWVuIHppbGxpb24gZmlsZW5hbWVzIGFs b25nIHdpdGggaXQgKHdlIHVzZSBgLi4uJyBpbnN0ZWFkKQorICMgYnV0IHdlIGRvbid0IHdhbnQg dGhpcyBlY2hvaW5nIGRvbmUgd2hlbiB0aGUgdXNlciBoYXMgc2FpZAorICMgaGUgZG9lc24ndCB3 YW50IHRvIHNlZSBjb21tYW5kcyBlY2hvZWQgYnkgdXNpbmcgLXMuCistaWZuZXEJIiQoZmluZHN0 cmluZyBzLCQoTUFLRUZMQUdTKSkiICIiCSMgaWYgLXMKKytpZmVxICgkKHNpbGVudC1tYWtlKSx5 ZXMpCQkJIyBpZiAtcworICtjbWRlY2hvCTo9IGVjaG8gPi9kZXYvbnVsbAorIGVsc2UJCQkJCQkj IG5vdCAtcworICtjbWRlY2hvCTo9IGVjaG8KK2RpZmYgLS1naXQgYS9NYWtlcnVsZXMgYi9NYWtl cnVsZXMKK2luZGV4IGQxZTEzOWQwM2MuLjA5YzBjZjgzNTcgMTAwNjQ0CistLS0gYS9NYWtlcnVs ZXMKKysrKyBiL01ha2VydWxlcworQEAgLTc5NCw3ICs3OTQsNyBAQCBlbmRpZgorICMgTWF4aW1p emUgZWZmaWNpZW5jeSBieSBtaW5pbWl6aW5nIHRoZSBudW1iZXIgb2YgcnVsZXMuCisgLlNVRkZJ WEVTOgkjIENsZWFyIHRoZSBzdWZmaXggbGlzdC4gIFdlIGRvbid0IHVzZSBzdWZmaXggcnVsZXMu CisgIyBEb24ndCBkZWZpbmUgYW55IGJ1aWx0aW4gcnVsZXMuCistTUFLRUZMQUdTIDo9ICQoTUFL RUZMQUdTKXIKKytNQUtFRkxBR1MgOj0gJChNQUtFRkxBR1MpIC1yCisgCisgIyBHZW5lcmljIHJ1 bGUgZm9yIG1ha2luZyBkaXJlY3Rvcmllcy4KKyAlLzoKK0BAIC04MTEsNyArODExLDcgQEAgTUFL RUZMQUdTIDo9ICQoTUFLRUZMQUdTKXIKKyAuUFJFQ0lPVVM6ICQoZm9yZWFjaCBsLCQobGlidHlw ZXMpLCQocGF0c3Vic3QgJSwkKGNvbW1vbi1vYmpwZngpJGwsYykpCisgDAorICMgVXNlIHRoZSB2 ZXJib3NlIG9wdGlvbiBvZiBhciBhbmQgdGFyIHdoZW4gbm90IHJ1bm5pbmcgc2lsZW50bHkuCist aWZlcQkiJChmaW5kc3RyaW5nIHMsJChNQUtFRkxBR1MpKSIgIiIJIyBpZiBub3QgLXMKKytpZmVx ICgkKHNpbGVudC1tYWtlKSxubykJCQkjIGlmIG5vdCAtcworIHZlcmJvc2UgOj0gdgorIGVsc2UJ ICAgCQkJCQkjIC1zCisgdmVyYm9zZQk6PQorZGlmZiAtLWdpdCBhL2VsZi9ydGxkLVJ1bGVzIGIv ZWxmL3J0bGQtUnVsZXMKK2luZGV4IGNhMDBkZDFmZTIuLjNjNWUyNzNmMmIgMTAwNjQ0CistLS0g YS9lbGYvcnRsZC1SdWxlcworKysrIGIvZWxmL3J0bGQtUnVsZXMKK0BAIC01Miw3ICs1Miw3IEBA ICQob2JqcGZ4KXJ0bGQtbGliYy5hOiAkKGZvcmVhY2ggZGlyLCQocnRsZC1zdWJkaXJzKSxcCisg CW12IC1mICRAVCAkQAorIAorICMgVXNlIHRoZSB2ZXJib3NlIG9wdGlvbiBvZiBhciBhbmQgdGFy IHdoZW4gbm90IHJ1bm5pbmcgc2lsZW50bHkuCistaWZlcQkiJChmaW5kc3RyaW5nIHMsJChNQUtF RkxBR1MpKSIgIiIJIyBpZiBub3QgLXMKKytpZmVxICgkKHNpbGVudC1tYWtlKSxubykJCQkjIGlm IG5vdCAtcworIHZlcmJvc2UgOj0gdgorIGVsc2UJCQkJCQkjIC1zCisgdmVyYm9zZQk6PQorLS0g CisyLjM4LjEKKworCitGcm9tIDcwNDEwZjIyODZjYzM2YzljY2IxMzM4Nzg4MTFjNzI4YWU1MTcy NWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNz LnVjbGEuZWR1PgorRGF0ZTogVGh1LCA4IFNlcCAyMDIyIDIwOjA4OjMyIC0wNTAwCitTdWJqZWN0 OiBta3RpbWU6IGltcHJvdmUgaGV1cmlzdGljIGZvciBjYS0xOTg2IEluZGlhbmEgRFNUCisKK1Ro aXMgcGF0Y2ggc3luY3MgbWt0aW1lLmMgZnJvbSBHbnVsaWIsIGZpeGluZyBhCitwcm9ibGVtIHJl cG9ydGVkIGJ5IE1hcmsgS3JlbnogPGh0dHBzOi8vYnVncy5nbnUub3JnLzQ4MDg1PiwKK2FuZCBp dCBzaG91bGQgZml4IEJaIzI5MDM1IHRvby4KKyogdGltZS9ta3RpbWUuYyAoX19ta3RpbWVfaW50 ZXJuYWwpOiBCZSBtb3JlIGdlbmVyb3VzIGFib3V0CithY2NlcHRpbmcgYXJndW1lbnRzIHdpdGgg dGhlIHdyb25nIHZhbHVlIG9mIHRtX2lzZHN0LCBieSBmYWxsaW5nCitiYWNrIHRvIGEgb25lLWhv dXIgRFNUIGRpZmZlcmVuY2UgaWYgd2UgZmluZCBubyBuZWFyYnkgRFNUIHRoYXQgaXMKK3VudXN1 YWwuICBUaGlzIGZpeGVzIGEgcHJvYmxlbSB3aGVyZSAiMTk4Ni0wNC0yOCAwMDowMCBFRFQiIHdh cworcmVqZWN0ZWQgd2hlbiBUWj0iQW1lcmljYS9JbmRpYW5hcG9saXMiIGJlY2F1c2UgdGhlIG5l YXJlc3QgRFNUCit0aW1lc3RhbXAgb2NjdXJyZWQgaW4gMTk3MCwgYSB0ZW1wb3JhbCBkaXN0YW5j ZSB0b28gZ3JlYXQgZm9yIHRoZQorb2xkIGhldXJpc3RpYy4gIFRoaXMgYWxzbyBhbHNvIG5hcnJv d3MgdGhlIHNlYXJjaCBhIGJpdCwgd2hpY2gKK2lzIGEgbWlub3IgcGVyZm9ybWFuY2Ugd2luLgor CisoY2hlcnJ5IHBpY2tlZCBmcm9tIGNvbW1pdCA4Mzg1OWUxMTE1MjY5Y2Y1NmQyMTY2OTM2MWQ0 ZGRiZTI2ODc4MzFjKQorLS0tCisgdGltZS9ta3RpbWUuYyB8IDI4ICsrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlv bnMoLSkKKworZGlmZiAtLWdpdCBhL3RpbWUvbWt0aW1lLmMgYi90aW1lL21rdGltZS5jCitpbmRl eCA0OTRjODliZjU0Li5lOWE2MDA2NzEwIDEwMDY0NAorLS0tIGEvdGltZS9ta3RpbWUuYworKysr IGIvdGltZS9ta3RpbWUuYworQEAgLTQyOSw4ICs0MjksMTMgQEAgX19ta3RpbWVfaW50ZXJuYWwg KHN0cnVjdCB0bSAqdHAsCisgCSB0aW1lIHdpdGggdGhlIHJpZ2h0IHZhbHVlLCBhbmQgdXNlIGl0 cyBVVEMgb2Zmc2V0LgorIAorIAkgSGV1cmlzdGljOiBwcm9iZSB0aGUgYWRqYWNlbnQgdGltZXN0 YW1wcyBpbiBib3RoIGRpcmVjdGlvbnMsCistCSBsb29raW5nIGZvciB0aGUgZGVzaXJlZCBpc2Rz dC4gIFRoaXMgc2hvdWxkIHdvcmsgZm9yIGFsbCByZWFsCistCSB0aW1lIHpvbmUgaGlzdG9yaWVz IGluIHRoZSB0eiBkYXRhYmFzZS4gICovCisrCSBsb29raW5nIGZvciB0aGUgZGVzaXJlZCBpc2Rz dC4gIElmIG5vbmUgaXMgZm91bmQgd2l0aGluIGEKKysJIHJlYXNvbmFibGUgZHVyYXRpb24gYm91 bmQsIGFzc3VtZSBhIG9uZS1ob3VyIERTVCBkaWZmZXJlbmNlLgorKwkgVGhpcyBzaG91bGQgd29y ayBmb3IgYWxsIHJlYWwgdGltZSB6b25lIGhpc3RvcmllcyBpbiB0aGUgdHoKKysJIGRhdGFiYXNl LiAgKi8KKysKKysgICAgICAvKiArMSBpZiB3ZSB3YW50ZWQgc3RhbmRhcmQgdGltZSBidXQgZ290 IERTVCwgLTEgaWYgdGhlIHJldmVyc2UuICAqLworKyAgICAgIGludCBkc3RfZGlmZmVyZW5jZSA9 IChpc2RzdCA9PSAwKSAtICh0bS50bV9pc2RzdCA9PSAwKTsKKyAKKyAgICAgICAvKiBEaXN0YW5j ZSBiZXR3ZWVuIHByb2JlcyB3aGVuIGxvb2tpbmcgZm9yIGEgRFNUIGJvdW5kYXJ5LiAgSW4KKyAJ IHR6ZGF0YTIwMDNhLCB0aGUgc2hvcnRlc3QgcGVyaW9kIG9mIERTVCBpcyA2MDEyMDAgc2Vjb25k cworQEAgLTQ0MSwxMiArNDQ2LDE0IEBAIF9fbWt0aW1lX2ludGVybmFsIChzdHJ1Y3QgdG0gKnRw LAorIAkgcGVyaW9kcyB3aGVuIHByb2JpbmcuICAqLworICAgICAgIGludCBzdHJpZGUgPSA2MDEy MDA7CisgCistICAgICAgLyogVGhlIGxvbmdlc3QgcGVyaW9kIG9mIERTVCBpbiB0emRhdGEyMDAz YSBpcyA1MzY0NTQwMDAgc2Vjb25kcworLQkgKGUuZy4sIEFtZXJpY2EvSnVqdXkgc3RhcnRpbmcg MTk0Ni0xMC0wMSAwMTowMCkuICBUaGUgbG9uZ2VzdAorLQkgcGVyaW9kIG9mIG5vbi1EU1QgaXMg bXVjaCBsb25nZXIsIGJ1dCBpdCBtYWtlcyBubyByZWFsIHNlbnNlCistCSB0byBzZWFyY2ggZm9y IG1vcmUgdGhhbiBhIHllYXIgb2Ygbm9uLURTVCwgc28gdXNlIHRoZSBEU1QKKy0JIG1heC4gICov CistICAgICAgaW50IGR1cmF0aW9uX21heCA9IDUzNjQ1NDAwMDsKKysgICAgICAvKiBJbiBUWkRC IDIwMjFlLCB0aGUgbG9uZ2VzdCBwZXJpb2Qgb2YgRFNUIChvciBvZiBub24tRFNUKSwgaW4KKysJ IHdoaWNoIHRoZSBEU1QgKG9yIGFkamFjZW50IERTVCkgZGlmZmVyZW5jZSBpcyBub3Qgb25lIGhv dXIsCisrCSBpcyA0NTcyNDMyMDkgc2Vjb25kczogZS5nLiwgQW1lcmljYS9DYW1icmlkZ2VfQmF5 IHdpdGggbGVhcAorKwkgc2Vjb25kcywgc3RhcnRpbmcgMTk2NS0xMC0zMSAwMDowMCBpbiBhIHN3 aXRjaCBmcm9tCisrCSBkb3VibGUtZGF5bGlnaHQgdGltZSAoLTA1KSB0byBzdGFuZGFyZCB0aW1l ICgtMDcpLCBhbmQKKysJIGNvbnRpbnVpbmcgdG8gMTk4MC0wNC0yNyAwMjowMCBpbiBhIHN3aXRj aCBmcm9tIHN0YW5kYXJkIHRpbWUKKysJICgtMDcpIHRvIGRheWxpZ2h0IHRpbWUgKC0wNikuICAq LworKyAgICAgIGludCBkdXJhdGlvbl9tYXggPSA0NTcyNDMyMDk7CisgCisgICAgICAgLyogU2Vh cmNoIGluIGJvdGggZGlyZWN0aW9ucywgc28gdGhlIG1heGltdW0gZGlzdGFuY2UgaXMgaGFsZgor IAkgdGhlIGR1cmF0aW9uOyBhZGQgdGhlIHN0cmlkZSB0byBhdm9pZCBvZmYtYnktMSBwcm9ibGVt cy4gICovCitAQCAtNDgzLDYgKzQ5MCwxMSBAQCBfX21rdGltZV9pbnRlcm5hbCAoc3RydWN0IHRt ICp0cCwKKyAJICAgICAgfQorIAkgIH0KKyAKKysgICAgICAvKiBObyB1bnVzdWFsIERTVCBvZmZz ZXQgd2FzIGZvdW5kIG5lYXJieS4gIEFzc3VtZSBvbmUtaG91ciBEU1QuICAqLworKyAgICAgIHQg Kz0gNjAgKiA2MCAqIGRzdF9kaWZmZXJlbmNlOworKyAgICAgIGlmIChta3RpbWVfbWluIDw9IHQg JiYgdCA8PSBta3RpbWVfbWF4ICYmIGNvbnZlcnRfdGltZSAoY29udmVydCwgdCwgJnRtKSkKKysJ Z290byBvZmZzZXRfZm91bmQ7CisrCisgICAgICAgX19zZXRfZXJybm8gKEVPVkVSRkxPVyk7Cisg ICAgICAgcmV0dXJuIC0xOworICAgICB9CistLSAKKzIuMzguMQorCisKK0Zyb20gMGY5MGQ2MjA0 ZDc5MjIzZmQzMjI0OGM3NzRkZjBjYjdmMGU2MDRkZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IEZsb3JpYW4gV2VpbWVyIDxmd2VpbWVyQHJlZGhhdC5jb20+CitEYXRlOiBUdWUsIDgg Tm92IDIwMjIgMTQ6MTU6MDIgKzAxMDAKK1N1YmplY3Q6IExpbnV4OiBTdXBwb3J0IF9fSVBDXzY0 IGluIHN5c3ZjdGwgKmN0bCBjb21tYW5kIGFyZ3VtZW50cyAoYnVnIDI5NzcxKQorCitPbGQgYXBw bGljYXRpb25zIHBhc3MgX19JUENfNjQgYXMgcGFydCBvZiB0aGUgY29tbWFuZCBhcmd1bWVudCBi ZWNhdXNlCitvbGQgZ2xpYmMgZGlkIG5vdCBjaGVjayBmb3IgdW5rbm93biBjb21tYW5kcywgYW5k IHBhc3NlZCB0aHJvdWdoIHRoZQorYXJndW1lbnRzIGRpcmVjdGx5IHRvIHRoZSBrZXJuZWwsIHdp dGhvdXQgYWRkaW5nIF9fSVBDXzY0LgorQXBwbGljYXRpb25zIG5lZWQgdG8gY29udGludWUgZG9p bmcgdGhhdCBmb3Igb2xkIGdsaWJjIGNvbXBhdGliaWxpdHksCitzbyB0aGlzIGNvbW1pdCBlbmFi bGVzIHRoaXMgYXBwcm9hY2ggaW4gY3VycmVudCBnbGliYy4KKworRm9yIG1zZ2N0bCBhbmQgc2ht Y3RsLCBpZiBubyB0cmFuc2xhdGlvbiBpcyByZXF1aXJlZCwgbWFrZQorZGlyZWN0IHN5c3RlbSBj YWxscywgYXMgd2UgZGlkIGJlZm9yZSB0aGUgdGltZTY0IGNoYW5nZXMuICBJZgordHJhbnNsYXRp b24gaXMgcmVxdWlyZWQsIG1hc2sgX19JUENfNjQgZnJvbSB0aGUgY29tbWFuZCBhcmd1bWVudC4K KworRm9yIHNlbWN0bCwgdGhlIHVuaW9uLWluLXZhcmFyZyBhcmd1bWVudCBoYW5kbGluZyBtZWFu cyB0aGF0Cit0cmFuc2xhdGlvbiBpcyBuZWVkZWQgb24gYWxsIGFyY2hpdGVjdHVyZXMuCisKK1Jl dmlld2VkLWJ5OiBBZGhlbWVydmFsIFphbmVsbGEgIDxhZGhlbWVydmFsLnphbmVsbGFAbGluYXJv Lm9yZz4KKyhjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDIyYTQ2ZGVlMjQzNTFmZDVmNGYxODhh ZDgwNTU0Y2FkNzljODI1MjQpCistLS0KKyBORVdTICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDEgKworIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2lwY19wcml2LmggfCAgNiArKysr KworIHN5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21zZ2N0bC5jICAgfCAzOCArKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0KKyBzeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zZW1jdGwuYyAgIHwg IDcgKysrKysrCisgc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2htY3RsLmMgICB8IDM4ICsrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLQorIDUgZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0aW9u cygrKSwgMjYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9ORVdTIGIvTkVXUworaW5kZXgg ZTkyZDU0N2UyYy4uOWY4ZWRlYTVkYiAxMDA2NDQKKy0tLSBhL05FV1MKKysrKyBiL05FV1MKK0BA IC00Niw2ICs0Niw3IEBAIFRoZSBmb2xsb3dpbmcgYnVncyBhcmUgcmVzb2x2ZWQgd2l0aCB0aGlz IHJlbGVhc2U6CisgICBbMjk2NTddIGxpYmM6IEluY29ycmVjdCBzdHJ1Y3Qgc3RhdCBmb3IgNjQt Yml0IHRpbWUgb24gbGludXgvZ2VuZXJpYworICAgICBwbGF0Zm9ybXMKKyAgIFsyOTczMF0gYnJv a2VuIHkyMDM4IHN1cHBvcnQgaW4gZnN0YXRhdCBvbiBNSVBTIE42NAorKyAgWzI5NzcxXSBSZXN0 b3JlIElQQ182NCBzdXBwb3J0IGluIHN5c3ZpcGMgKmN0bCBmdW5jdGlvbnMKKyAMCisgVmVyc2lv biAyLjM2CisgCitkaWZmIC0tZ2l0IGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvaXBjX3ByaXYu aCBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2lwY19wcml2LmgKK2luZGV4IDg3ODkzYTY3NTcu LjJmNTBjMzFhOGUgMTAwNjQ0CistLS0gYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pcGNfcHJp di5oCisrKysgYi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pcGNfcHJpdi5oCitAQCAtNjMsNCAr NjMsMTAgQEAgc3RydWN0IF9fb2xkX2lwY19wZXJtCisgIyBkZWZpbmUgX19JUENfVElNRTY0IDAK KyAjZW5kaWYKKyAKKysjaWYgX19JUENfVElNRTY0IHx8IGRlZmluZWQgX19BU1NVTUVfU1lTVklQ Q19CUk9LRU5fTU9ERV9UCisrIyBkZWZpbmUgSVBDX0NUTF9ORUVEX1RSQU5TTEFUSU9OIDEKKysj ZWxzZQorKyMgZGVmaW5lIElQQ19DVExfTkVFRF9UUkFOU0xBVElPTiAwCisrI2VuZGlmCisrCisg I2luY2x1ZGUgPGlwY19vcHMuaD4KK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51 eC9tc2djdGwuYyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21zZ2N0bC5jCitpbmRleCBlODI0 ZWJiMDk1Li4yMDcyMjA1MjUyIDEwMDY0NAorLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgv bXNnY3RsLmMKKysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L21zZ2N0bC5jCitAQCAtODUs MTEgKzg1LDE5IEBAIG1zZ2N0bF9zeXNjYWxsIChpbnQgbXNxaWQsIGludCBjbWQsIG1zZ2N0bF9h cmdfdCAqYnVmKQorIGludAorIF9fbXNnY3RsNjQgKGludCBtc3FpZCwgaW50IGNtZCwgc3RydWN0 IF9fbXNxaWQ2NF9kcyAqYnVmKQorIHsKKy0jaWYgX19JUENfVElNRTY0CisrI2lmIElQQ19DVExf TkVFRF9UUkFOU0xBVElPTgorKyMgaWYgX19JUENfVElNRTY0CisgICBzdHJ1Y3Qga2VybmVsX21z cWlkNjRfZHMga3NlbWlkLCAqYXJnID0gTlVMTDsKKy0jZWxzZQorKyMgZWxzZQorICAgbXNnY3Rs X2FyZ190ICphcmc7CistI2VuZGlmCisrIyBlbmRpZgorKworKyAgLyogU29tZSBhcHBsaWNhdGlv bnMgcGFzcyB0aGUgX19JUENfNjQgZmxhZyBpbiBjbWQsIHRvIGludm9rZQorKyAgICAgcHJldmlv dXNseSB1bnN1cHBvcnRlZCBjb21tYW5kcyBiYWNrIHdoZW4gdGhlcmUgd2FzIG5vIEVJTlZBTAor KyAgICAgZXJyb3IgY2hlY2tpbmcgaW4gZ2xpYmMuICBNYXNrIHRoZSBmbGFnIGZvciB0aGUgc3dp dGNoIHN0YXRlbWVudHMKKysgICAgIGJlbG93LiAgbXNnY3RsX3N5c2NhbGwgYWRkcyBiYWNrIHRo ZSBfX0lQQ182NCBmbGFnIGZvciB0aGUgYWN0dWFsCisrICAgICBzeXN0ZW0gY2FsbC4gICovCisr ICBjbWQgJj0gfl9fSVBDXzY0OworIAorICAgc3dpdGNoIChjbWQpCisgICAgIHsKK0BAIC0xMDEs MTkgKzEwOSwxOSBAQCBfX21zZ2N0bDY0IChpbnQgbXNxaWQsIGludCBjbWQsIHN0cnVjdCBfX21z cWlkNjRfZHMgKmJ1ZikKKyAgICAgY2FzZSBJUENfU1RBVDoKKyAgICAgY2FzZSBNU0dfU1RBVDoK KyAgICAgY2FzZSBNU0dfU1RBVF9BTlk6CistI2lmIF9fSVBDX1RJTUU2NAorKyMgaWYgX19JUENf VElNRTY0CisgICAgICAgaWYgKGJ1ZiAhPSBOVUxMKQorIAl7CisgCSAgbXNxaWQ2NF90b19rbXNx aWQ2NCAoYnVmLCAma3NlbWlkKTsKKyAJICBhcmcgPSAma3NlbWlkOworIAl9CistIyBpZmRlZiBf X0FTU1VNRV9TWVNWSVBDX0JST0tFTl9NT0RFX1QKKysjICBpZmRlZiBfX0FTU1VNRV9TWVNWSVBD X0JST0tFTl9NT0RFX1QKKyAgICAgICBpZiAoY21kID09IElQQ19TRVQpCisgCWFyZy0+bXNnX3Bl cm0ubW9kZSAqPSAweDEwMDAwVTsKKy0jIGVuZGlmCistI2Vsc2UKKysjICBlbmRpZgorKyMgZWxz ZQorICAgICAgIGFyZyA9IGJ1ZjsKKy0jZW5kaWYKKysjIGVuZGlmCisgICAgICAgYnJlYWs7Cisg CisgICAgIGNhc2UgSVBDX0lORk86CitAQCAtMTM3LDIxICsxNDUsMjUgQEAgX19tc2djdGw2NCAo aW50IG1zcWlkLCBpbnQgY21kLCBzdHJ1Y3QgX19tc3FpZDY0X2RzICpidWYpCisgICAgIGNhc2Ug SVBDX1NUQVQ6CisgICAgIGNhc2UgTVNHX1NUQVQ6CisgICAgIGNhc2UgTVNHX1NUQVRfQU5ZOgor LSNpZmRlZiBfX0FTU1VNRV9TWVNWSVBDX0JST0tFTl9NT0RFX1QKKysjIGlmZGVmIF9fQVNTVU1F X1NZU1ZJUENfQlJPS0VOX01PREVfVAorICAgICAgIGFyZy0+bXNnX3Blcm0ubW9kZSA+Pj0gMTY7 CistI2Vsc2UKKysjIGVsc2UKKyAgICAgICAvKiBPbGQgTGludXgga2VybmVsIHZlcnNpb25zIG1p Z2h0IG5vdCBjbGVhciB0aGUgbW9kZSBwYWRkaW5nLiAgKi8KKyAgICAgICBpZiAoc2l6ZW9mICgo c3RydWN0IG1zcWlkX2RzKXswfS5tc2dfcGVybS5tb2RlKQorICAgICAgICAgICAhPSBzaXplb2Yg KF9fa2VybmVsX21vZGVfdCkpCisgCWFyZy0+bXNnX3Blcm0ubW9kZSAmPSAweEZGRkY7CistI2Vu ZGlmCisrIyBlbmRpZgorIAorLSNpZiBfX0lQQ19USU1FNjQKKysjIGlmIF9fSVBDX1RJTUU2NAor ICAgICAgIGttc3FpZDY0X3RvX21zcWlkNjQgKGFyZywgYnVmKTsKKy0jZW5kaWYKKysjIGVuZGlm CisgICAgIH0KKyAKKyAgIHJldHVybiByZXQ7CisrCisrI2Vsc2UgLyogIUlQQ19DVExfTkVFRF9U UkFOU0xBVElPTiAqLworKyAgcmV0dXJuIG1zZ2N0bF9zeXNjYWxsIChtc3FpZCwgY21kLCBidWYp OworKyNlbmRpZgorIH0KKyAjaWYgX19USU1FU0laRSAhPSA2NAorIGxpYmNfaGlkZGVuX2RlZiAo X19tc2djdGw2NCkKK2RpZmYgLS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zZW1jdGwu YyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NlbWN0bC5jCitpbmRleCA3N2E4MTMwYzE4Li4z NDU4YjAxOGJjIDEwMDY0NAorLS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2VtY3RsLmMK KysrKyBiL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3NlbWN0bC5jCitAQCAtMTQwLDYgKzE0MCwx MyBAQCBfX3NlbWN0bDY0IChpbnQgc2VtaWQsIGludCBzZW1udW0sIGludCBjbWQsIC4uLikKKyAg IHVuaW9uIHNlbXVuNjQgYXJnNjQgPSB7IDAgfTsKKyAgIHZhX2xpc3QgYXA7CisgCisrICAvKiBT b21lIGFwcGxpY2F0aW9ucyBwYXNzIHRoZSBfX0lQQ182NCBmbGFnIGluIGNtZCwgdG8gaW52b2tl CisrICAgICBwcmV2aW91c2x5IHVuc3VwcG9ydGVkIGNvbW1hbmRzIGJhY2sgd2hlbiB0aGVyZSB3 YXMgbm8gRUlOVkFMCisrICAgICBlcnJvciBjaGVja2luZyBpbiBnbGliYy4gIE1hc2sgdGhlIGZs YWcgZm9yIHRoZSBzd2l0Y2ggc3RhdGVtZW50cworKyAgICAgYmVsb3cuICBzZW1jdGxfc3lzY2Fs bCBhZGRzIGJhY2sgdGhlIF9fSVBDXzY0IGZsYWcgZm9yIHRoZSBhY3R1YWwKKysgICAgIHN5c3Rl bSBjYWxsLiAgKi8KKysgIGNtZCAmPSB+X19JUENfNjQ7CisrCisgICAvKiBHZXQgdGhlIGFyZ3Vt ZW50IG9ubHkgaWYgcmVxdWlyZWQuICAqLworICAgc3dpdGNoIChjbWQpCisgICAgIHsKK2RpZmYg LS1naXQgYS9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9zaG1jdGwuYyBiL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L3NobWN0bC5jCitpbmRleCBlYTM4OTM1NDk3Li5mMDA4MTdhNmY2IDEwMDY0NAor LS0tIGEvc3lzZGVwcy91bml4L3N5c3YvbGludXgvc2htY3RsLmMKKysrKyBiL3N5c2RlcHMvdW5p eC9zeXN2L2xpbnV4L3NobWN0bC5jCitAQCAtODUsMTEgKzg1LDE5IEBAIHNobWN0bF9zeXNjYWxs IChpbnQgc2htaWQsIGludCBjbWQsIHNobWN0bF9hcmdfdCAqYnVmKQorIGludAorIF9fc2htY3Rs NjQgKGludCBzaG1pZCwgaW50IGNtZCwgc3RydWN0IF9fc2htaWQ2NF9kcyAqYnVmKQorIHsKKy0j aWYgX19JUENfVElNRTY0CisrI2lmIElQQ19DVExfTkVFRF9UUkFOU0xBVElPTgorKyMgaWYgX19J UENfVElNRTY0CisgICBzdHJ1Y3Qga2VybmVsX3NobWlkNjRfZHMga3NobWlkLCAqYXJnID0gTlVM TDsKKy0jZWxzZQorKyMgZWxzZQorICAgc2htY3RsX2FyZ190ICphcmc7CistI2VuZGlmCisrIyBl bmRpZgorKworKyAgLyogU29tZSBhcHBsaWNhdGlvbnMgcGFzcyB0aGUgX19JUENfNjQgZmxhZyBp biBjbWQsIHRvIGludm9rZQorKyAgICAgcHJldmlvdXNseSB1bnN1cHBvcnRlZCBjb21tYW5kcyBi YWNrIHdoZW4gdGhlcmUgd2FzIG5vIEVJTlZBTAorKyAgICAgZXJyb3IgY2hlY2tpbmcgaW4gZ2xp YmMuICBNYXNrIHRoZSBmbGFnIGZvciB0aGUgc3dpdGNoIHN0YXRlbWVudHMKKysgICAgIGJlbG93 LiAgc2htY3RsX3N5c2NhbGwgYWRkcyBiYWNrIHRoZSBfX0lQQ182NCBmbGFnIGZvciB0aGUgYWN0 dWFsCisrICAgICBzeXN0ZW0gY2FsbC4gICovCisrICBjbWQgJj0gfl9fSVBDXzY0OworIAorICAg c3dpdGNoIChjbWQpCisgICAgIHsKK0BAIC0xMDMsMTkgKzExMSwxOSBAQCBfX3NobWN0bDY0IChp bnQgc2htaWQsIGludCBjbWQsIHN0cnVjdCBfX3NobWlkNjRfZHMgKmJ1ZikKKyAgICAgY2FzZSBJ UENfU1RBVDoKKyAgICAgY2FzZSBTSE1fU1RBVDoKKyAgICAgY2FzZSBTSE1fU1RBVF9BTlk6Cist I2lmIF9fSVBDX1RJTUU2NAorKyMgaWYgX19JUENfVElNRTY0CisgICAgICAgaWYgKGJ1ZiAhPSBO VUxMKQorIAl7CisgCSAgc2htaWQ2NF90b19rc2htaWQ2NCAoYnVmLCAma3NobWlkKTsKKyAJICBh cmcgPSAma3NobWlkOworIAl9CistIyBpZmRlZiBfX0FTU1VNRV9TWVNWSVBDX0JST0tFTl9NT0RF X1QKKysjICBpZmRlZiBfX0FTU1VNRV9TWVNWSVBDX0JST0tFTl9NT0RFX1QKKyAgICAgICBpZiAo Y21kID09IElQQ19TRVQpCisgICAgICAgICBhcmctPnNobV9wZXJtLm1vZGUgKj0gMHgxMDAwMFU7 CistIyBlbmRpZgorLSNlbHNlCisrIyAgZW5kaWYKKysjIGVsc2UKKyAgICAgICBhcmcgPSBidWY7 CistI2VuZGlmCisrIyBlbmRpZgorICAgICAgIGJyZWFrOworIAorICAgICBjYXNlIElQQ19JTkZP OgorQEAgLTE0MCwyMSArMTQ4LDI1IEBAIF9fc2htY3RsNjQgKGludCBzaG1pZCwgaW50IGNtZCwg c3RydWN0IF9fc2htaWQ2NF9kcyAqYnVmKQorICAgICAgIGNhc2UgSVBDX1NUQVQ6CisgICAgICAg Y2FzZSBTSE1fU1RBVDoKKyAgICAgICBjYXNlIFNITV9TVEFUX0FOWToKKy0jaWZkZWYgX19BU1NV TUVfU1lTVklQQ19CUk9LRU5fTU9ERV9UCisrIyBpZmRlZiBfX0FTU1VNRV9TWVNWSVBDX0JST0tF Tl9NT0RFX1QKKyAgICAgICAgIGFyZy0+c2htX3Blcm0ubW9kZSA+Pj0gMTY7CistI2Vsc2UKKysj IGVsc2UKKyAgICAgICAvKiBPbGQgTGludXgga2VybmVsIHZlcnNpb25zIG1pZ2h0IG5vdCBjbGVh ciB0aGUgbW9kZSBwYWRkaW5nLiAgKi8KKyAgICAgICBpZiAoc2l6ZW9mICgoc3RydWN0IHNobWlk X2RzKXswfS5zaG1fcGVybS5tb2RlKQorIAkgICE9IHNpemVvZiAoX19rZXJuZWxfbW9kZV90KSkK KyAJYXJnLT5zaG1fcGVybS5tb2RlICY9IDB4RkZGRjsKKy0jZW5kaWYKKysjIGVuZGlmCisgCist I2lmIF9fSVBDX1RJTUU2NAorKyMgaWYgX19JUENfVElNRTY0CisgICAgICAga3NobWlkNjRfdG9f c2htaWQ2NCAoYXJnLCBidWYpOworLSNlbmRpZgorKyMgZW5kaWYKKyAgICAgfQorIAorICAgcmV0 dXJuIHJldDsKKysKKysjZWxzZSAvKiAhSVBDX0NUTF9ORUVEX1RSQU5TTEFUSU9OICovCisrICBy ZXR1cm4gc2htY3RsX3N5c2NhbGwgKHNobWlkLCBjbWQsIGJ1Zik7CisrI2VuZGlmCisgfQorICNp ZiBfX1RJTUVTSVpFICE9IDY0CisgbGliY19oaWRkZW5fZGVmIChfX3NobWN0bDY0KQorLS0gCisy LjM4LjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliYy9wYXRjaGVzL2dsaWJjLWMtdXRmOC1s b2NhbGUucGF0Y2ggYi9zcmNwa2dzL2dsaWJjL3BhdGNoZXMvZ2xpYmMtYy11dGY4LWxvY2FsZS5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzIxNWUxNTU4YjYyLi4wMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9nbGliYy9wYXRjaGVzL2dsaWJjLWMtdXRmOC1sb2NhbGUucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyODYgKzAsMCBAQAotU2hvcnQgZGVzY3JpcHRpb246IEFk ZCBDLlVURi04IHN1cHBvcnQuCi1BdXRob3Iocyk6IEZlZG9yYSBnbGliYyB0ZWFtIDxnbGliY0Bs aXN0cy5mZWRvcmFwcm9qZWN0Lm9yZz4KLU9yaWdpbjogUEFUQ0gKLVVwc3RyZWFtIHN0YXR1czog bm90LXN1Ym1pdHRlZAotCi1UaGlzIHBhdGNoIG5lZWRzIHRvIHVwc3RyZWFtIGFzIHBhcnQgb2Yg Q2FybG9zIE8nRG9uZWxsCi08Y2FybG9zQHJlZGhhdC5jb20+J3Mgd29yayBvbiBlbmFibGluZyB1 cHN0cmVhbSBDLlVURi04IHN1cHBvcnQuIFRoaXMKLXdvcmsgaXMgY3VycmVudGx5IGJsb2NrZWQg b24gY2xlYW5pbmcgdXAgdGhlIHRlc3QgcmVzdWx0cyB0byBwcm92ZSB0aGF0Ci1mdWxsIGNvZGUt cG9pbnQgc29ydGluZyBpcyB3b3JraW5nIGFzIGludGVuZGVkLgotCi1Ob3RlIHRoYXQgdGhpcyBw YXRjaCBkb2VzIG5vdCBwcm92aWRlIGZ1bGwgY29kZS1wb2ludCBzb3J0aW5nIGFzCi1leHBlY3Rl ZC4KLQotVGhpcyBwYXRjaCBuZWVkcyB0byB1cHN0cmVhbSBhcyBzb29uIGFzIHBvc3NpYmxlIHNp bmNlIGl0IHdvdWxkIGJlIG5pY2UKLXRvIGhhdmUgdGhpcyBpbiBGMjkgYW5kIGZpeGVkLgotCi1G cm9tIDJlZGE3YjQ2MmI0MTUxMDVmNWEwNWMxMzIzMzcyZDRlMzlkNDY0MzkgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBNaWtlIEZBQklBTiA8bWZhYmlhbkByZWRoYXQuY29tPgotRGF0 ZTogTW9uLCAxMCBBdWcgMjAxNSAxNTo1ODoxMiArMDIwMAotU3ViamVjdDogW1BBVENIXSBBZGQg YSBDLlVURi04IGxvY2FsZQotCi0tLS0KLSBsb2NhbGVkYXRhL1NVUFBPUlRFRCB8ICAgMSArCi0g bG9jYWxlZGF0YS9sb2NhbGVzL0MgfCAyMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCAyMzkgaW5zZXJ0aW9ucygr KQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBsb2NhbGVkYXRhL2xvY2FsZXMvQwotCi1kaWZmIC0tZ2l0 IGEvbG9jYWxlZGF0YS9TVVBQT1JURUQgYi9sb2NhbGVkYXRhL1NVUFBPUlRFRAotaW5kZXggOGNh MDIzZS4uMmE3ODM5MSAxMDA2NDQKLS0tLSBhL2xvY2FsZWRhdGEvU1VQUE9SVEVECi0rKysgYi9s b2NhbGVkYXRhL1NVUFBPUlRFRAotQEAgLTEsNiArMSw3IEBACi0gIyBUaGlzIGZpbGUgbmFtZXMg dGhlIGN1cnJlbnRseSBzdXBwb3J0ZWQgYW5kIHNvbWV3aGF0IHRlc3RlZCBsb2NhbGVzLgotICMg SWYgeW91IGhhdmUgYW55IGFkZGl0aW9ucyBwbGVhc2UgZmlsZSBhIGdsaWJjIGJ1ZyByZXBvcnQu Ci0gU1VQUE9SVEVELUxPQ0FMRVM9XAotK0MuVVRGLTgvVVRGLTggXAotIGFhX0RKLlVURi04L1VU Ri04IFwKLSBhYV9ESi9JU08tODg1OS0xIFwKLSBhYV9FUi9VVEYtOCBcCi1kaWZmIC0tZ2l0IGEv bG9jYWxlZGF0YS9sb2NhbGVzL0MgYi9sb2NhbGVkYXRhL2xvY2FsZXMvQwotbmV3IGZpbGUgbW9k ZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmZkZjQ2MGUKLS0tLSAvZGV2L251bGwKLSsrKyBiL2xv Y2FsZWRhdGEvbG9jYWxlcy9DCi1AQCAtMCwwICsxLDIzOCBAQAotK2VzY2FwZV9jaGFyIC8KLStj b21tZW50X2NoYXIgJQotKyUgTG9jYWxlIGZvciBDIGxvY2FsZSBpbiBVVEYtOAotKwotK0xDX0lE RU5USUZJQ0FUSU9OCi0rdGl0bGUgICAgICAiQyBsb2NhbGUiCi0rc291cmNlICAgICAiIgotK2Fk ZHJlc3MgICAgIiIKLStjb250YWN0ICAgICIiCi0rZW1haWwgICAgICAibWZhYmlhbkByZWRoYXQu Y29tIgotK3RlbCAgICAgICAgIiIKLStmYXggICAgICAgICIiCi0rbGFuZ3VhZ2UgICAiQyIKLSt0 ZXJyaXRvcnkgICIiCi0rcmV2aXNpb24gICAiMS4wIgotK2RhdGUgICAgICAgIjIwMTUtMDgtMTAi Ci0rJQotK2NhdGVnb3J5ICAiaTE4bjoyMDEyIjtMQ19JREVOVElGSUNBVElPTgotK2NhdGVnb3J5 ICAiaTE4bjoyMDEyIjtMQ19DVFlQRQotK2NhdGVnb3J5ICAiaTE4bjoyMDEyIjtMQ19DT0xMQVRF Ci0rY2F0ZWdvcnkgICJpMThuOjIwMTIiO0xDX1RJTUUKLStjYXRlZ29yeSAgImkxOG46MjAxMiI7 TENfTlVNRVJJQwotK2NhdGVnb3J5ICAiaTE4bjoyMDEyIjtMQ19NT05FVEFSWQotK2NhdGVnb3J5 ICAiaTE4bjoyMDEyIjtMQ19NRVNTQUdFUwotK2NhdGVnb3J5ICAiaTE4bjoyMDEyIjtMQ19QQVBF UgotK2NhdGVnb3J5ICAiaTE4bjoyMDEyIjtMQ19OQU1FCi0rY2F0ZWdvcnkgICJpMThuOjIwMTIi O0xDX0FERFJFU1MKLStjYXRlZ29yeSAgImkxOG46MjAxMiI7TENfVEVMRVBIT05FCi0rY2F0ZWdv cnkgICJpMThuOjIwMTIiO0xDX01FQVNVUkVNRU5UCi0rRU5EIExDX0lERU5USUZJQ0FUSU9OCi0r Ci0rTENfQ1RZUEUKLStjb3B5ICJpMThuIgotKwotK3RyYW5zbGl0X3N0YXJ0Ci0raW5jbHVkZSAi dHJhbnNsaXRfY29tYmluaW5nIjsiIgotK3RyYW5zbGl0X2VuZAotKwotK0VORCBMQ19DVFlQRQot KwotK0xDX0NPTExBVEUKLStvcmRlcl9zdGFydCBmb3J3YXJkCi0rPFUwMDAwPgotKy4uCi0rPFVG RkZGPgotKzxVMTAwMDA+Ci0rLi4KLSs8VTFGRkZGPgotKzxVMjAwMDA+Ci0rLi4KLSs8VTJGRkZG PgotKzxVRTAwMDA+Ci0rLi4KLSs8VUVGRkZGPgotKzxVRjAwMDA+Ci0rLi4KLSs8VUZGRkZGPgot KzxVMTAwMDAwPgotKy4uCi0rPFUxMEZGRkY+Ci0rVU5ERUZJTkVECi0rb3JkZXJfZW5kCi0rRU5E IExDX0NPTExBVEUKLSsKLStMQ19NT05FVEFSWQotKyUgVGhpcyBpcyB0aGUgMTQ2NTIgaTE4biBm ZGNjLXNldCBkZWZpbml0aW9uIGZvcgotKyUgdGhlIExDX01PTkVUQVJZIGNhdGVnb3J5Ci0rJSAo ZXhjZXB0IGZvciB0aGUgaW50X2N1cnJfc3ltYm9sIGFuZCBjdXJyZW5jeV9zeW1ib2wsIHRoZXkg YXJlIGVtcHR5IGluCi0rJSB0aGUgMTQ2NTIgaTE4biBmZGNjLXNldCBkZWZpbml0aW9uIGFuZCBh bHNvIGVtcHR5IGluCi0rJSBnbGliYy9sb2NhbGUvQy1tb25ldGFyeS5jLiBCdXQgbG9jYWxlZGVm IGNvbXBsYWlucyBpbiB0aGF0IGNhc2UpLgotKyUKLSslIFVzaW5nICJVU0QiIGZvciBpbnRfY3Vy cl9zeW1ib2wuIEJ1dCBtYXliZSAiWFhYIiB3b3VsZCBiZSBiZXR0ZXI/Ci0rJSBYWFggaXMgIk5v IGN1cnJlbmN5IiAoaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzQyMTcpCi0raW50 X2N1cnJfc3ltYm9sICAgICAiPFUwMDU1PjxVMDA1Mz48VTAwNDQ+PFUwMDIwPiIKLSslIFVzaW5n ICIkIiBmb3IgY3VycmVuY3lfc3ltYm9sLiBCdXQgbWF5YmUgPFUwMEE0PiB3b3VsZCBiZSBiZXR0 ZXI/Ci0rJSBVKzAwQTQgaXMgdGhlICJnZW5lcmljIGN1cnJlbmN5IHN5bWJvbCIKLSslIChodHRw czovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9DdXJyZW5jeV9zaWduXyUyOHR5cG9ncmFwaHklMjkp Ci0rY3VycmVuY3lfc3ltYm9sICAgICAiPFUwMDI0PiIKLSttb25fZGVjaW1hbF9wb2ludCAgICI8 VTAwMkU+IgotK21vbl90aG91c2FuZHNfc2VwICAgIiIKLSttb25fZ3JvdXBpbmcgICAgICAgIC0x Ci0rcG9zaXRpdmVfc2lnbiAgICAgICAiIgotK25lZ2F0aXZlX3NpZ24gICAgICAgIjxVMDAyRD4i Ci0raW50X2ZyYWNfZGlnaXRzICAgICAtMQotK2ZyYWNfZGlnaXRzICAgICAgICAgLTEKLStwX2Nz X3ByZWNlZGVzICAgICAgIC0xCi0raW50X3Bfc2VwX2J5X3NwYWNlICAtMQotK3Bfc2VwX2J5X3Nw YWNlICAgICAgLTEKLStuX2NzX3ByZWNlZGVzICAgICAgIC0xCi0raW50X25fc2VwX2J5X3NwYWNl ICAtMQotK25fc2VwX2J5X3NwYWNlICAgICAgLTEKLStwX3NpZ25fcG9zbiAgICAgICAgIC0xCi0r bl9zaWduX3Bvc24gICAgICAgICAtMQotKyUKLStFTkQgTENfTU9ORVRBUlkKLSsKLStMQ19OVU1F UklDCi0rJSBUaGlzIGlzIHRoZSBQT1NJWCBMb2NhbGUgZGVmaW5pdGlvbiBmb3IKLSslIHRoZSBM Q19OVU1FUklDIGNhdGVnb3J5LgotKyUKLStkZWNpbWFsX3BvaW50ICAgIjxVMDAyRT4iCi0rdGhv dXNhbmRzX3NlcCAgICIiCi0rZ3JvdXBpbmcgICAgICAgIC0xCi0rRU5EIExDX05VTUVSSUMKLSsK LStMQ19USU1FCi0rJSBUaGlzIGlzIHRoZSBQT1NJWCBMb2NhbGUgZGVmaW5pdGlvbiBmb3IKLSsl IHRoZSBMQ19USU1FIGNhdGVnb3J5LgotKyUKLSslIEFiYnJldmlhdGVkIHdlZWtkYXkgbmFtZXMg KCVhKQotK2FiZGF5ICAgICAgICI8VTAwNTM+PFUwMDc1PjxVMDA2RT4iOyI8VTAwNEQ+PFUwMDZG PjxVMDA2RT4iOy8KLSsgICAgICAgICAgICAiPFUwMDU0PjxVMDA3NT48VTAwNjU+IjsiPFUwMDU3 PjxVMDA2NT48VTAwNjQ+IjsvCi0rICAgICAgICAgICAgIjxVMDA1ND48VTAwNjg+PFUwMDc1PiI7 IjxVMDA0Nj48VTAwNzI+PFUwMDY5PiI7LwotKyAgICAgICAgICAgICI8VTAwNTM+PFUwMDYxPjxV MDA3ND4iCi0rCi0rJSBGdWxsIHdlZWtkYXkgbmFtZXMgKCVBKQotK2RheSAgICAgICAgICI8VTAw NTM+PFUwMDc1PjxVMDA2RT48VTAwNjQ+PFUwMDYxPjxVMDA3OT4iOy8KLSsgICAgICAgICAgICAi PFUwMDREPjxVMDA2Rj48VTAwNkU+PFUwMDY0PjxVMDA2MT48VTAwNzk+IjsvCi0rICAgICAgICAg ICAgIjxVMDA1ND48VTAwNzU+PFUwMDY1PjxVMDA3Mz48VTAwNjQ+PFUwMDYxPjxVMDA3OT4iOy8K LSsgICAgICAgICAgICAiPFUwMDU3PjxVMDA2NT48VTAwNjQ+PFUwMDZFPjxVMDA2NT48VTAwNzM+ PFUwMDY0PjxVMDA2MT48VTAwNzk+IjsvCi0rICAgICAgICAgICAgIjxVMDA1ND48VTAwNjg+PFUw MDc1PjxVMDA3Mj48VTAwNzM+PFUwMDY0PjxVMDA2MT48VTAwNzk+IjsvCi0rICAgICAgICAgICAg IjxVMDA0Nj48VTAwNzI+PFUwMDY5PjxVMDA2ND48VTAwNjE+PFUwMDc5PiI7LwotKyAgICAgICAg ICAgICI8VTAwNTM+PFUwMDYxPjxVMDA3ND48VTAwNzU+PFUwMDcyPjxVMDA2ND48VTAwNjE+PFUw MDc5PiIKLSsKLSslIEFiYnJldmlhdGVkIG1vbnRoIG5hbWVzICglYikKLSthYm1vbiAgICAgICAi PFUwMDRBPjxVMDA2MT48VTAwNkU+IjsiPFUwMDQ2PjxVMDA2NT48VTAwNjI+IjsvCi0rICAgICAg ICAgICAgIjxVMDA0RD48VTAwNjE+PFUwMDcyPiI7IjxVMDA0MT48VTAwNzA+PFUwMDcyPiI7Lwot KyAgICAgICAgICAgICI8VTAwNEQ+PFUwMDYxPjxVMDA3OT4iOyI8VTAwNEE+PFUwMDc1PjxVMDA2 RT4iOy8KLSsgICAgICAgICAgICAiPFUwMDRBPjxVMDA3NT48VTAwNkM+IjsiPFUwMDQxPjxVMDA3 NT48VTAwNjc+IjsvCi0rICAgICAgICAgICAgIjxVMDA1Mz48VTAwNjU+PFUwMDcwPiI7IjxVMDA0 Rj48VTAwNjM+PFUwMDc0PiI7LwotKyAgICAgICAgICAgICI8VTAwNEU+PFUwMDZGPjxVMDA3Nj4i OyI8VTAwNDQ+PFUwMDY1PjxVMDA2Mz4iCi0rCi0rJSBGdWxsIG1vbnRoIG5hbWVzICglQikKLStt b24gICAgICAgICAiPFUwMDRBPjxVMDA2MT48VTAwNkU+PFUwMDc1PjxVMDA2MT48VTAwNzI+PFUw MDc5PiI7LwotKyAgICAgICAgICAgICI8VTAwNDY+PFUwMDY1PjxVMDA2Mj48VTAwNzI+PFUwMDc1 PjxVMDA2MT48VTAwNzI+PFUwMDc5PiI7LwotKyAgICAgICAgICAgICI8VTAwNEQ+PFUwMDYxPjxV MDA3Mj48VTAwNjM+PFUwMDY4PiI7LwotKyAgICAgICAgICAgICI8VTAwNDE+PFUwMDcwPjxVMDA3 Mj48VTAwNjk+PFUwMDZDPiI7LwotKyAgICAgICAgICAgICI8VTAwNEQ+PFUwMDYxPjxVMDA3OT4i Oy8KLSsgICAgICAgICAgICAiPFUwMDRBPjxVMDA3NT48VTAwNkU+PFUwMDY1PiI7LwotKyAgICAg ICAgICAgICI8VTAwNEE+PFUwMDc1PjxVMDA2Qz48VTAwNzk+IjsvCi0rICAgICAgICAgICAgIjxV MDA0MT48VTAwNzU+PFUwMDY3PjxVMDA3NT48VTAwNzM+PFUwMDc0PiI7LwotKyAgICAgICAgICAg ICI8VTAwNTM+PFUwMDY1PjxVMDA3MD48VTAwNzQ+PFUwMDY1PjxVMDA2RD48VTAwNjI+PFUwMDY1 PjxVMDA3Mj4iOy8KLSsgICAgICAgICAgICAiPFUwMDRGPjxVMDA2Mz48VTAwNzQ+PFUwMDZGPjxV MDA2Mj48VTAwNjU+PFUwMDcyPiI7LwotKyAgICAgICAgICAgICI8VTAwNEU+PFUwMDZGPjxVMDA3 Nj48VTAwNjU+PFUwMDZEPjxVMDA2Mj48VTAwNjU+PFUwMDcyPiI7LwotKyAgICAgICAgICAgICI8 VTAwNDQ+PFUwMDY1PjxVMDA2Mz48VTAwNjU+PFUwMDZEPjxVMDA2Mj48VTAwNjU+PFUwMDcyPiIK LSsKLSslIFdlZWsgZGVzY3JpcHRpb24sIGNvbnNpc3RzIG9mIHRocmVlIGZpZWxkczoKLSslIDEu IE51bWJlciBvZiBkYXlzIGluIGEgd2Vlay4KLSslIDIuIEdyZWdvcmlhbiBkYXRlIHRoYXQgaXMg YSBmaXJzdCB3ZWVrZGF5ICgxOTk3MTEzMCBmb3IgU3VuZGF5LCAxOTk3MTIwMSBmb3IgTW9uZGF5 KS4KLSslIDMuIFRoZSB3ZWVrZGF5IG51bWJlciB0byBiZSBjb250YWluZWQgaW4gdGhlIGZpcnN0 IHdlZWsgb2YgdGhlIHllYXIuCi0rJQotKyUgSVNPIDg2MDEgY29uZm9ybWluZyBhcHBsaWNhdGlv bnMgc2hvdWxkIHVzZSB0aGUgdmFsdWVzIDcsIDE5OTcxMjAxIChhCi0rJSBNb25kYXkpLCBhbmQg NCAoVGh1cnNkYXkpLCByZXNwZWN0aXZlbHkuCi0rd2VlayAgICA3OzE5OTcxMjAxOzQKLStmaXJz dF93ZWVrZGF5CTEKLStmaXJzdF93b3JrZGF5CTEKLSsKLSslIEFwcHJvcHJpYXRlIGRhdGUgYW5k IHRpbWUgcmVwcmVzZW50YXRpb24gKCVjKQotKyUJIiVhICViICVlICVIOiVNOiVTICVZIgotK2Rf dF9mbXQgIjxVMDAyNT48VTAwNjE+PFUwMDIwPjxVMDAyNT48VTAwNjI+PFUwMDIwPjxVMDAyNT48 VTAwNjU+PFUwMDIwPjxVMDAyNT48VTAwNDg+PFUwMDNBPjxVMDAyNT48VTAwNEQ+PFUwMDNBPjxV MDAyNT48VTAwNTM+PFUwMDIwPjxVMDAyNT48VTAwNTk+IgotKwotKyUgQXBwcm9wcmlhdGUgZGF0 ZSByZXByZXNlbnRhdGlvbiAoJXgpCi0rJQkiJW0vJWQvJXkiCi0rZF9mbXQgICAiPFUwMDI1PjxV MDA2RD48VTAwMkY+PFUwMDI1PjxVMDA2ND48VTAwMkY+PFUwMDI1PjxVMDA3OT4iCi0rCi0rJSBB cHByb3ByaWF0ZSB0aW1lIHJlcHJlc2VudGF0aW9uICglWCkKLSslCSIlSDolTTolUyIKLSt0X2Zt dCAgICI8VTAwMjU+PFUwMDQ4PjxVMDAzQT48VTAwMjU+PFUwMDREPjxVMDAzQT48VTAwMjU+PFUw MDUzPiIKLSsKLSslIEFwcHJvcHJpYXRlIEFNL1BNIHRpbWUgcmVwcmVzZW50YXRpb24gKCVyKQot KyUJIiVJOiVNOiVTICVwIgotK3RfZm10X2FtcG0gIjxVMDAyNT48VTAwNDk+PFUwMDNBPjxVMDAy NT48VTAwNEQ+PFUwMDNBPjxVMDAyNT48VTAwNTM+PFUwMDIwPjxVMDAyNT48VTAwNzA+IgotKwot KyUgRXF1aXZhbGVudCBvZiBBTS9QTSAoJXApICAgICAgIkFNIi8iUE0iCi0rJQotK2FtX3BtCSI8 VTAwNDE+PFUwMDREPiI7IjxVMDA1MD48VTAwNEQ+IgotKwotKyUgQXBwcm9wcmlhdGUgZGF0ZSBy ZXByZXNlbnRhdGlvbiAoZGF0ZSgxKSkgICAiJWEgJWIgJWUgJUg6JU06JVMgJVogJVkiCi0rZGF0 ZV9mbXQJIjxVMDAyNT48VTAwNjE+PFUwMDIwPjxVMDAyNT48VTAwNjI+PFUwMDIwPjxVMDAyNT48 VTAwNjU+PFUwMDIwPjxVMDAyNT48VTAwNDg+PFUwMDNBPjxVMDAyNT48VTAwNEQ+PFUwMDNBPjxV MDAyNT48VTAwNTM+PFUwMDIwPjxVMDAyNT48VTAwNUE+PFUwMDIwPjxVMDAyNT48VTAwNTk+Igot K0VORCBMQ19USU1FCi0rCi0rTENfTUVTU0FHRVMKLSslIFRoaXMgaXMgdGhlIFBPU0lYIExvY2Fs ZSBkZWZpbml0aW9uIGZvcgotKyUgdGhlIExDX05VTUVSSUMgY2F0ZWdvcnkuCi0rJQotK3llc2V4 cHIgIjxVMDA1RT48VTAwNUI+PFUwMDc5PjxVMDA1OT48VTAwNUQ+IgotK25vZXhwciAgIjxVMDA1 RT48VTAwNUI+PFUwMDZFPjxVMDA0RT48VTAwNUQ+IgotK3llc3N0ciAgIjxVMDA1OT48VTAwNjU+ PFUwMDczPiIKLStub3N0ciAgICI8VTAwNEU+PFUwMDZGPiIKLStFTkQgTENfTUVTU0FHRVMKLSsK LStMQ19QQVBFUgotKyUgVGhpcyBpcyB0aGUgSVNPL0lFQyAxNDY1MiAiaTE4biIgZGVmaW5pdGlv biBmb3IKLSslIHRoZSBMQ19QQVBFUiBjYXRlZ29yeS4KLSslIChBNCBwYXBlciwgdGhpcyBpcyBh bHNvIHVzZWQgaW4gdGhlIGJ1aWx0IGluIEMvUE9TSVgKLSslIGxvY2FsZSBpbiBnbGliYy9sb2Nh bGUvQy1wYXBlci5jKQotK2hlaWdodCAgIDI5NwotK3dpZHRoICAgIDIxMAotK0VORCBMQ19QQVBF UgotKwotK0xDX05BTUUKLSslIFRoaXMgaXMgdGhlIElTTy9JRUMgMTQ2NTIgImkxOG4iIGRlZmlu aXRpb24gZm9yCi0rJSB0aGUgTENfTkFNRSBjYXRlZ29yeS4KLSslICIlcCV0JWcldCVtJXQlZiIK LSslIChhbHNvIHVzZWQgaW4gdGhlIGJ1aWx0IGluIEMvUE9TSVggbG9jYWxlIGluIGdsaWJjL2xv Y2FsZS9DLW5hbWUuYykKLStuYW1lX2ZtdCAgICAiPFUwMDI1PjxVMDA3MD48VTAwMjU+PFUwMDc0 PjxVMDAyNT48VTAwNjc+PFUwMDI1PjxVMDA3ND4vCi0rPFUwMDI1PjxVMDA2RD48VTAwMjU+PFUw MDc0PjxVMDAyNT48VTAwNjY+IgotK0VORCBMQ19OQU1FCi0rCi0rTENfQUREUkVTUwotKyUgVGhp cyBpcyB0aGUgSVNPL0lFQyAxNDY1MiAiaTE4biIgZGVmaW5pdGlvbiBmb3IKLSslIHRoZSBMQ19B RERSRVNTIGNhdGVnb3J5LgotKyUgIiVhJU4lZiVOJWQlTiViJU4lcyAlaCAlZSAlciVOJUMtJXog JVQlTiVjJU4iCi0rJSAoYWxzbyB1c2VkIGluIHRoZSBidWlsdCBpbiBDL1BPU0lYIGxvY2FsZSBp biBnbGliYy9sb2NhbGUvQy1hZGRyZXNzLmMpCi0rcG9zdGFsX2ZtdCAgICAiPFUwMDI1PjxVMDA2 MT48VTAwMjU+PFUwMDRFPjxVMDAyNT48VTAwNjY+PFUwMDI1PjxVMDA0RT4vCi0rPFUwMDI1PjxV MDA2ND48VTAwMjU+PFUwMDRFPjxVMDAyNT48VTAwNjI+PFUwMDI1PjxVMDA0RT48VTAwMjU+PFUw MDczPi8KLSs8VTAwMjA+PFUwMDI1PjxVMDA2OD48VTAwMjA+PFUwMDI1PjxVMDA2NT48VTAwMjA+ PFUwMDI1PjxVMDA3Mj48VTAwMjU+LwotKzxVMDA0RT48VTAwMjU+PFUwMDQzPjxVMDAyRD48VTAw MjU+PFUwMDdBPjxVMDAyMD48VTAwMjU+PFUwMDU0PjxVMDAyNT4vCi0rPFUwMDRFPjxVMDAyNT48 VTAwNjM+PFUwMDI1PjxVMDA0RT4iCi0rRU5EIExDX0FERFJFU1MKLSsKLStMQ19URUxFUEhPTkUK LSslIFRoaXMgaXMgdGhlIElTTy9JRUMgMTQ2NTIgImkxOG4iIGRlZmluaXRpb24gZm9yCi0rJSB0 aGUgTENfVEVMRVBIT05FIGNhdGVnb3J5LgotKyUgIislYyAlYSAlbCIKLSt0ZWxfaW50X2ZtdCAg ICAiPFUwMDJCPjxVMDAyNT48VTAwNjM+PFUwMDIwPjxVMDAyNT48VTAwNjE+PFUwMDIwPjxVMDAy NT4vCi0rPFUwMDZDPiIKLSslIChhbHNvIHVzZWQgaW4gdGhlIGJ1aWx0IGluIEMvUE9TSVggbG9j YWxlIGluIGdsaWJjL2xvY2FsZS9DLXRlbGVwaG9uZS5jKQotK0VORCBMQ19URUxFUEhPTkUKLSsK LStMQ19NRUFTVVJFTUVOVAotKyUgVGhpcyBpcyB0aGUgSVNPL0lFQyAxNDY1MiAiaTE4biIgZGVm aW5pdGlvbiBmb3IKLSslIHRoZSBMQ19NRUFTVVJFTUVOVCBjYXRlZ29yeS4KLSslIChzYW1lIGFz IGluIHRoZSBidWlsdCBpbiBDL1BPU0lYIGxvY2FsZSBpbiBnbGliYy9sb2NhbGUvQy1tZWFzdXJl bWVudC5jKQotKyVtZXRyaWMKLSttZWFzdXJlbWVudCAgICAxCi0rRU5EIExDX01FQVNVUkVNRU5U Ci0rCi0tLSAKLTIuNC4zCi0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ2xpYmMvdGVtcGxhdGUgYi9z cmNwa2dzL2dsaWJjL3RlbXBsYXRlCmluZGV4IGM2MmE0ZDJhZWRmMS4uMGQxOWNjMjA4MmI1IDEw MDY0NAotLS0gYS9zcmNwa2dzL2dsaWJjL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xpYmMvdGVt cGxhdGUKQEAgLTEsMTQgKzEsMTggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dsaWJjJworIwor IyBUaGUgbGF0ZXN0IGdsaWJjIHN0YWJsZSBwYXRjaGVzIGNhbiBiZSBvYnRhaW5lZCBieSBjaGVj a2luZyBvdXQgcmVsZWFzZS8ke3ZlcnNpb259L21hc3RlciBhbmQgZG9pbmc6CisjIGdpdCBmb3Jt YXQtcGF0Y2ggLWsgJChnaXQgZGVzY3JpYmUgLS1hYmJyZXY9MCAtLW1hdGNoICdnbGliYy0qJykg LS1zdGRvdXQgPiBnaXQtdXBkYXRlcy5wYXRjaAorIwogcGtnbmFtZT1nbGliYwotdmVyc2lvbj0y LjMyCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTIuMzYKK3JldmlzaW9uPTEKIGJvb3RzdHJhcD15ZXMK IHNob3J0X2Rlc2M9IkdOVSBDIGxpYnJhcnkiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290 dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjEt b3ItbGF0ZXIsIEJTRC0zLUNsYXVzZSIKIGhvbWVwYWdlPSJodHRwOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvbGliYyIKIGRpc3RmaWxlcz0iJHtHTlVfU0lURX0vZ2xpYmMvZ2xpYmMtJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT0xNjI3ZWE1NGY1YTFhODQ2NzAzMjU2MzM5M2UwOTAxMDc3NjI2 ZGM2NmYzN2YxMGVlNjM2M2JiNzIyMjIyODM2CitjaGVja3N1bT0xYzk1OWZlYTI0MDkwNjIyNjA2 MmNiNGIxZTdlYmNlNzFhOWYwZTNjMDgzNmMwOWU3ZTM0MjNkNDM0ZmNmZTc1CiAjIERvIG5vdCBz dHJpcCB0aGVzZSBmaWxlcywgb2JqY29weSBlcnJvcnMgb3V0Lgogbm9zdHJpcF9maWxlcz0iCiAJ WEJTNV9JTFAzMl9PRkZCSUcKQEAgLTIwLDI3ICsyNCwyOCBAQCBub3N0cmlwX2ZpbGVzPSIKIAlQ T1NJWF9WNl9MUDY0X09GRjY0CiAJUE9TSVhfVjdfTFA2NF9PRkY2NAogCVhCUzVfTFA2NF9PRkY2 NAotCWxkLSR7dmVyc2lvbn0uc28KLQlsaWJkbC0ke3ZlcnNpb259LnNvCi0JbGliYW5sLSR7dmVy c2lvbn0uc28KLQlsaWJjaWRuLSR7dmVyc2lvbn0uc28KLQlsaWJyZXNvbHYtJHt2ZXJzaW9ufS5z bwotCWxpYmNyeXB0LSR7dmVyc2lvbn0uc28KLQlsaWJwdGhyZWFkLSR7dmVyc2lvbn0uc28KLQls aWJtLSR7dmVyc2lvbn0uc28KLQlsaWJ1dGlsLSR7dmVyc2lvbn0uc28KLQlsaWJ0aHJlYWRfZGIt MS4wLnNvCi0JbGlicnQtJHt2ZXJzaW9ufS5zbwotCWxpYm5zbC0ke3ZlcnNpb259LnNvCi0JbGli Yy0ke3ZlcnNpb259LnNvCi0JbGliQnJva2VuTG9jYWxlLSR7dmVyc2lvbn0uc28KLQlsaWJuc3Nf Y29tcGF0LSR7dmVyc2lvbn0uc28KLQlsaWJuc3NfZGItJHt2ZXJzaW9ufS5zbwotCWxpYm5zc19k bnMtJHt2ZXJzaW9ufS5zbwotCWxpYm5zc19maWxlcy0ke3ZlcnNpb259LnNvCi0JbGlibnNzX2hl c2lvZC0ke3ZlcnNpb259LnNvCi0JbGlibnNzX25pc3BsdXMtJHt2ZXJzaW9ufS5zbwotCWxpYm5z c19uaXMtJHt2ZXJzaW9ufS5zbyIKKwlsZC1saW51eC14ODYtNjQuc28uMgorCWxkLWxpbnV4LnNv LjIKKwlsZC1saW51eC5zby4zCisJbGQtbGludXgtYWFyY2g2NC5zby4xCisJbGQ2NC5zby4yCisJ bGQuc28uMQorCWxkLWxpbnV4LWFybWhmLnNvLjMKKwlsaWJyZXNvbHYuc28uMgorCWxpYmNyeXB0 LnNvLjEKKwlsaWJtLnNvLjYKKwlsaWJ0aHJlYWRfZGIuc28uMQorCWxpYm5zbC5zby4xCisJbGli Yy5zby42CisJbGliY19tYWxsb2NfZGVidWcuc28uMAorCWxpYm1lbXVzYWdlLnNvCisJbGlibXZl Yy5zby4xCisJbGliQnJva2VuTG9jYWxlLnNvLjEKKwlsaWJuc3NfY29tcGF0LnNvLjIKKwlsaWJu c3NfZGIuc28uMgorCWxpYm5zc19kbnMuc28uMgorCWxpYm5zc19maWxlcy5zby4yCisJbGlibnNz X2hlc2lvZC5zby4yIgogCiBjb25mX2ZpbGVzPSIKIAkvZXRjL3JwYwpAQCAtNTQsNyArNTksNiBA QCBsaWIzMmZpbGVzPSIvdXNyL2xpYi9nY29udi9nY29udi1tb2R1bGVzIgogbGliMzJzeW1saW5r cz0ibGQtbGludXguc28uMiIKICMgVGhlcmUncyBubyBwb2ludCBpbiBidWlsZGluZyB0aGlzIGZv ciBtdXNsLgogYXJjaHM9In4qLW11c2wiCi1ub3BpZT15ZXMKIAogZG9fY29uZmlndXJlKCkgewog CW1rZGlyIGJ1aWxkCkBAIC0xNjMsMTggKzE2Nyw2IEBAIGRvX2luc3RhbGwoKSB7CiAJcm0gLWYg JHtERVNURElSfS91c3IvYmluL3p7ZHVtcCxpY30KIAogCW12ICR7REVTVERJUn0vdXNyL3NiaW4v KiAke0RFU1RESVJ9L3Vzci9iaW4KLQotCSMgQ3JlYXRlIHhicHMuZCg1KSBhcmNoIG92ZXJyaWRl IGZpbGUgZm9yIDMyLWJpdCBhcmNoaXRlY3R1cmVzCi0JIyAzMi1iaXQgdXNlcmxhbmRzIG1heSBi ZSB1c2VkIHdpdGggNjQtYml0IGtlcm5lbHMgYW5kIHRoZW4KLQkjIHhicHMgd2lsbCByZXBvcnQg YW4gaW5jb3JyZWN0IGFyY2hpdGVjdHVyZSBieSBkZWZhdWx0Ci0JY2FzZSAiJFhCUFNfVEFSR0VU X01BQ0hJTkUiIGluCi0JCWk2ODZ8cHBjfHBwY2xlfGFybXYqKQotCQkJdm1rZGlyIHVzci9zaGFy ZS94YnBzLmQKLQkJCWVjaG8gImFyY2hpdGVjdHVyZT0ke1hCUFNfVEFSR0VUX01BQ0hJTkV9IiA+ IFwKLQkJCQkke0RFU1RESVJ9L3Vzci9zaGFyZS94YnBzLmQvYXJjaC0zMmJpdC5jb25mCi0JCQk7 OwotCQkqKSA7OwotCWVzYWMKIH0KIAogZ2xpYmMtZGV2ZWxfcGFja2FnZSgpIHsKCkZyb20gMmZi Y2NhZjg2MzRhM2QzZjVkNjAwZWU2YjNhMGYyNTQzYTYxNjZhMSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTYXQsIDUgTm92 IDIwMjIgMTE6MzM6MTIgLTA3MDAKU3ViamVjdDogW1BBVENIIDA3LzM3XSBtdXNsOiBhZGQgc3Vw cG9ydCBmb3IgU0lHRVZfVEhSRUFEX0lEIHRpbWVycwoKaHR0cHM6Ly9naXQubXVzbC1saWJjLm9y Zy9jZ2l0L211c2wvY29tbWl0Lz9pZD03YzcxNzkyZTg3NjkxNDUxZjJhNmI3NjM0OGU4M2FkMTg4 OWYxZGNiCi0tLQogLi4uZC1zdXBwb3J0LWZvci1TSUdFVl9USFJFQURfSUQtdGltZXJzLnBhdGNo IHwgNzQgKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9tdXNsL3RlbXBsYXRlICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbXVzbC9wYXRjaGVz L2FkZC1zdXBwb3J0LWZvci1TSUdFVl9USFJFQURfSUQtdGltZXJzLnBhdGNoCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9tdXNsL3BhdGNoZXMvYWRkLXN1cHBvcnQtZm9yLVNJR0VWX1RIUkVBRF9JRC10 aW1lcnMucGF0Y2ggYi9zcmNwa2dzL211c2wvcGF0Y2hlcy9hZGQtc3VwcG9ydC1mb3ItU0lHRVZf VEhSRUFEX0lELXRpbWVycy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLmUyMGRmZjViYTBkNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbXVzbC9wYXRj aGVzL2FkZC1zdXBwb3J0LWZvci1TSUdFVl9USFJFQURfSUQtdGltZXJzLnBhdGNoCkBAIC0wLDAg KzEsNzQgQEAKK0Zyb20gN2M3MTc5MmU4NzY5MTQ1MWYyYTZiNzYzNDhlODNhZDE4ODlmMWRjYiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEphbWVzIFkgS25pZ2h0IDxqeWtuaWdodEBn b29nbGUuY29tPgorRGF0ZTogU3VuLCAzMCBKdW4gMjAxOSAyMTo1NToyMCAtMDQwMAorU3ViamVj dDogW1BBVENIXSBhZGQgc3VwcG9ydCBmb3IgU0lHRVZfVEhSRUFEX0lEIHRpbWVycworCitUaGlz IGlzIGxpa2UgU0lHRVZfU0lHTkFMLCBidXQgdGFyZ2V0ZWQgdG8gYSBwYXJ0aWN1bGFyIHRocmVh ZCdzCit0aWQsIHJhdGhlciB0aGFuIHRoZSBwcm9jZXNzLgorLS0tCisgaW5jbHVkZS9zaWduYWwu aCAgICAgICAgfCAxNiArKysrKysrKysrKysrLS0tCisgc3JjL3RpbWUvdGltZXJfY3JlYXRlLmMg fCAgOCArKysrKystLQorIDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvc2lnbmFsLmggYi9pbmNsdWRlL3NpZ25h bC5oCitpbmRleCBmYmRmNjY3YjIuLjllZDkyOWU0ZiAxMDA2NDQKKy0tLSBhL2luY2x1ZGUvc2ln bmFsLmgKKysrKyBiL2luY2x1ZGUvc2lnbmFsLmgKK0BAIC0xODAsMTQgKzE4MCwyNCBAQCBzdHJ1 Y3Qgc2lnZXZlbnQgeworIAl1bmlvbiBzaWd2YWwgc2lnZXZfdmFsdWU7CisgCWludCBzaWdldl9z aWdubzsKKyAJaW50IHNpZ2V2X25vdGlmeTsKKy0Jdm9pZCAoKnNpZ2V2X25vdGlmeV9mdW5jdGlv bikodW5pb24gc2lndmFsKTsKKy0JcHRocmVhZF9hdHRyX3QgKnNpZ2V2X25vdGlmeV9hdHRyaWJ1 dGVzOworLQljaGFyIF9fcGFkWzU2LTMqc2l6ZW9mKGxvbmcpXTsKKysJdW5pb24geworKwkJY2hh ciBfX3BhZFs2NCAtIDIqc2l6ZW9mKGludCkgLSBzaXplb2YodW5pb24gc2lndmFsKV07CisrCQlw aWRfdCBzaWdldl9ub3RpZnlfdGhyZWFkX2lkOworKwkJc3RydWN0IHsKKysJCQl2b2lkICgqc2ln ZXZfbm90aWZ5X2Z1bmN0aW9uKSh1bmlvbiBzaWd2YWwpOworKwkJCXB0aHJlYWRfYXR0cl90ICpz aWdldl9ub3RpZnlfYXR0cmlidXRlczsKKysJCX0gX19zZXZfdGhyZWFkOworKwl9IF9fc2V2X2Zp ZWxkczsKKyB9OworIAorKyNkZWZpbmUgc2lnZXZfbm90aWZ5X3RocmVhZF9pZCBfX3Nldl9maWVs ZHMuc2lnZXZfbm90aWZ5X3RocmVhZF9pZAorKyNkZWZpbmUgc2lnZXZfbm90aWZ5X2Z1bmN0aW9u IF9fc2V2X2ZpZWxkcy5fX3Nldl90aHJlYWQuc2lnZXZfbm90aWZ5X2Z1bmN0aW9uCisrI2RlZmlu ZSBzaWdldl9ub3RpZnlfYXR0cmlidXRlcyBfX3Nldl9maWVsZHMuX19zZXZfdGhyZWFkLnNpZ2V2 X25vdGlmeV9hdHRyaWJ1dGVzCisrCisgI2RlZmluZSBTSUdFVl9TSUdOQUwgMAorICNkZWZpbmUg U0lHRVZfTk9ORSAxCisgI2RlZmluZSBTSUdFVl9USFJFQUQgMgorKyNkZWZpbmUgU0lHRVZfVEhS RUFEX0lEIDQKKyAKKyBpbnQgX19saWJjX2N1cnJlbnRfc2lncnRtaW4odm9pZCk7CisgaW50IF9f bGliY19jdXJyZW50X3NpZ3J0bWF4KHZvaWQpOworZGlmZiAtLWdpdCBhL3NyYy90aW1lL3RpbWVy X2NyZWF0ZS5jIGIvc3JjL3RpbWUvdGltZXJfY3JlYXRlLmMKK2luZGV4IDVkZGZkYTI3OC4uNGJl ZjIzOTA1IDEwMDY0NAorLS0tIGEvc3JjL3RpbWUvdGltZXJfY3JlYXRlLmMKKysrKyBiL3NyYy90 aW1lL3RpbWVyX2NyZWF0ZS5jCitAQCAtNzEsMTEgKzcxLDE1IEBAIGludCB0aW1lcl9jcmVhdGUo Y2xvY2tpZF90IGNsaywgc3RydWN0IHNpZ2V2ZW50ICpyZXN0cmljdCBldnAsIHRpbWVyX3QgKnJl c3RyaWN0CisgCXN3aXRjaCAoZXZwID8gZXZwLT5zaWdldl9ub3RpZnkgOiBTSUdFVl9TSUdOQUwp IHsKKyAJY2FzZSBTSUdFVl9OT05FOgorIAljYXNlIFNJR0VWX1NJR05BTDoKKysJY2FzZSBTSUdF Vl9USFJFQURfSUQ6CisgCQlpZiAoZXZwKSB7CisgCQkJa3Nldi5zaWdldl92YWx1ZSA9IGV2cC0+ c2lnZXZfdmFsdWU7CisgCQkJa3Nldi5zaWdldl9zaWdubyA9IGV2cC0+c2lnZXZfc2lnbm87Cisg CQkJa3Nldi5zaWdldl9ub3RpZnkgPSBldnAtPnNpZ2V2X25vdGlmeTsKKy0JCQlrc2V2LnNpZ2V2 X3RpZCA9IDA7CisrCQkJaWYgKGV2cC0+c2lnZXZfbm90aWZ5ID09IFNJR0VWX1RIUkVBRF9JRCkK KysJCQkJa3Nldi5zaWdldl90aWQgPSBldnAtPnNpZ2V2X25vdGlmeV90aHJlYWRfaWQ7CisrCQkJ ZWxzZQorKwkJCQlrc2V2LnNpZ2V2X3RpZCA9IDA7CisgCQkJa3NldnAgPSAma3NldjsKKyAJCX0K KyAJCWlmIChzeXNjYWxsKFNZU190aW1lcl9jcmVhdGUsIGNsaywga3NldnAsICZ0aW1lcmlkKSA8 IDApCitAQCAtMTA3LDcgKzExMSw3IEBAIGludCB0aW1lcl9jcmVhdGUoY2xvY2tpZF90IGNsaywg c3RydWN0IHNpZ2V2ZW50ICpyZXN0cmljdCBldnAsIHRpbWVyX3QgKnJlc3RyaWN0CisgCisgCQlr c2V2LnNpZ2V2X3ZhbHVlLnNpdmFsX3B0ciA9IDA7CisgCQlrc2V2LnNpZ2V2X3NpZ25vID0gU0lH VElNRVI7CistCQlrc2V2LnNpZ2V2X25vdGlmeSA9IDQ7IC8qIFNJR0VWX1RIUkVBRF9JRCAqLwor KwkJa3Nldi5zaWdldl9ub3RpZnkgPSBTSUdFVl9USFJFQURfSUQ7CisgCQlrc2V2LnNpZ2V2X3Rp ZCA9IHRkLT50aWQ7CisgCQlpZiAoc3lzY2FsbChTWVNfdGltZXJfY3JlYXRlLCBjbGssICZrc2V2 LCAmdGltZXJpZCkgPCAwKQorIAkJCXRpbWVyaWQgPSAtMTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbXVzbC90ZW1wbGF0ZQppbmRleCAzNGU2ZWQ0ZmJhNmUu LmFmYjMzY2Q4NjhiNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9tdXNsL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvbXVzbC90ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAKIHBrZ25hbWU9bXVzbAogcmV2ZXJ0 cz0iMS4yLjBfMSIKIHZlcnNpb249MS4xLjI0Ci1yZXZpc2lvbj0xMQorcmV2aXNpb249MTIKIGFy Y2hzPSIqLW11c2wiCiBib290c3RyYXA9eWVzCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCgpG cm9tIGI0YzYxMTA2MmZmMTU2OWI2ZTMyM2E3MTk1M2Y3NDk1NDdiMTg5OGMgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU2F0 LCA1IE5vdiAyMDIyIDExOjMzOjEyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwOC8zN10gZ2NjLW11 bHRpbGliOiB1cGRhdGUgdG8gMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2djYy1tdWx0aWxpYi90ZW1w bGF0ZSB8IDEyICsrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwg NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2djYy1tdWx0aWxpYi90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ2NjLW11bHRpbGliL3RlbXBsYXRlCmluZGV4IGYyOGViMjM3YzI4Ny4uYmE5 YmFmY2FkZmQ2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2djYy1tdWx0aWxpYi90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2djYy1tdWx0aWxpYi90ZW1wbGF0ZQpAQCAtMywxNSArMywxNSBAQCBhcmNocz0i eDg2XzY0IgogX3RyaXBsZXQ9Ing4Nl82NC11bmtub3duLWxpbnV4LWdudSIKIAogcGtnbmFtZT1n Y2MtbXVsdGlsaWIKLXZlcnNpb249MTAuMi4xcHJlMQordmVyc2lvbj0xMi4yLjAKIHJldmlzaW9u PTEKIF9tYWpvcnZlcj0iJHt2ZXJzaW9uJS4qfSIKIHNob3J0X2Rlc2M9IkdOVSBDb21waWxlciBD b2xsZWN0aW9uIChtdWx0aWxpYiBmaWxlcykiCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFu QHZvaWRsaW51eC5vcmc+IgogaG9tZXBhZ2U9Imh0dHA6Ly9nY2MuZ251Lm9yZyIKIGxpY2Vuc2U9 IkdGREwtMS4yLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIK LWRpc3RmaWxlcz0iaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke3Zl cnNpb24vcHJlL19wcmV9LnRhci54eiIKLWNoZWNrc3VtPTc3MmNmZDVkMzBlYjljYzVhOTk2ZmVj OWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKK2Rpc3RmaWxlcz0iJHtH TlVfU0lURX0vZ2NjL2djYy0ke3ZlcnNpb259L2djYy0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNr c3VtPWU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgx ZTA2OTI2MjMwZmYKIAogaG9zdG1ha2VkZXBlbmRzPSJwZXJsIGZsZXggdGFyIHppcCB1bnppcCIK IG1ha2VkZXBlbmRzPSJ6bGliLWRldmVsIGxpYm1wYy1kZXZlbCBpc2wxNS1kZXZlbCBsaWJmbC1k ZXZlbApAQCAtNzAsNyArNzAsNyBAQCBkb19idWlsZCgpIHsKIAltYWtlICR7bWFrZWpvYnN9CiB9 CiBkb19pbnN0YWxsKCkgewotCWxvY2FsIF9wY190cmlwbGV0PXg4Nl82NC1wYy1saW51eC1nbnUg X3ZlcnNpb249JHt2ZXJzaW9uJXByZTF9CisJbG9jYWwgX3BjX3RyaXBsZXQ9eDg2XzY0LXBjLWxp bnV4LWdudQogCSMgSW5zdGFsbCB0byBhIHRlbXBkaXIgYW5kIHRoZW4gb25seSBjb3B5IHJlbGV2 YW50IGZpbGVzLgogCWNkICR7d3Jrc3JjfQogCW1ha2UgREVTVERJUj0ke3dya3NyY30vJHtwa2du YW1lfS1idWlsZCBpbnN0YWxsCkBAIC04MCw5ICs4MCw5IEBAIGRvX2luc3RhbGwoKSB7CiAJdm1r ZGlyIHVzci9pbmNsdWRlL2MrKy8ke19tYWpvcnZlcn0vJHtfdHJpcGxldH0KIAl2bWtkaXIgdXNy L2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfbWFqb3J2ZXJ9CiAKLQljcCAtYSAke3dya3NyY30vJHtw a2duYW1lfS1idWlsZC91c3IvbGliL2djYy8ke19wY190cmlwbGV0fS8ke192ZXJzaW9ufS8zMiBc CisJY3AgLWEgJHt3cmtzcmN9LyR7cGtnbmFtZX0tYnVpbGQvdXNyL2xpYi9nY2MvJHtfcGNfdHJp cGxldH0vJHt2ZXJzaW9ufS8zMiBcCiAJCSR7REVTVERJUn0vdXNyL2xpYi9nY2MvJHtfdHJpcGxl dH0vJHtfbWFqb3J2ZXJ9LwotCWNwIC1hICR7d3Jrc3JjfS8ke3BrZ25hbWV9LWJ1aWxkL3Vzci9p bmNsdWRlL2MrKy8ke192ZXJzaW9ufS8ke19wY190cmlwbGV0fS8zMiBcCisJY3AgLWEgJHt3cmtz cmN9LyR7cGtnbmFtZX0tYnVpbGQvdXNyL2luY2x1ZGUvYysrLyR7dmVyc2lvbn0vJHtfcGNfdHJp cGxldH0vMzIgXAogCQkke0RFU1RESVJ9L3Vzci9pbmNsdWRlL2MrKy8ke19tYWpvcnZlcn0vJHtf dHJpcGxldH0KIAogCXZpbnN0YWxsICR7d3Jrc3JjfS9ob3N0LSR7X3BjX3RyaXBsZXR9L2djYy9z cGVjcyA2NDQgdXNyL2xpYi9nY2MvJHtfdHJpcGxldH0vJHtfbWFqb3J2ZXJ9CgpGcm9tIGQwYjY5 YjdmNDVlMGQ2MTRmMmIwYzIzZjI4MzhiMzM3MTE2MGI2NzggTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCA1IE5vdiAy MDIyIDExOjMzOjEyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwOS8zN10gbGliZ2Njaml0OiB1cGRh dGUgdG8gMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2xpYmdjY2ppdC9maWxlcy9saWJnY2NqaXQtbXVz bC5wYXRjaCB8IDYzIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2xpYmdjY2ppdC90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICB8IDI0ICsrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDkg aW5zZXJ0aW9ucygrKSwgNzggZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9saWJnY2NqaXQvZmlsZXMvbGliZ2Njaml0LW11c2wucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2xpYmdjY2ppdC9maWxlcy9saWJnY2NqaXQtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvbGliZ2Nj aml0L2ZpbGVzL2xpYmdjY2ppdC1tdXNsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBkMmVkMTY5MjhjODIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xpYmdjY2ppdC9m aWxlcy9saWJnY2NqaXQtbXVzbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAK LWRpZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1wbGF5YmFjay5jIGIvZ2NjL2ppdC9qaXQtcGxheWJh Y2suYwotaW5kZXggNWJjY2Y1OTFhLi4zNWY1ZTM1ZWYgMTAwNjQ0Ci0tLS0gYS9nY2Mvaml0L2pp dC1wbGF5YmFjay5jCi0rKysgYi9nY2Mvaml0L2ppdC1wbGF5YmFjay5jCi1AQCAtMTgsNiArMTgs OCBAQCBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQotIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJ ZiBub3Qgc2VlCi0gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSAKLSsjaW5j bHVkZSA8cHRocmVhZC5oPgotKwotICNpbmNsdWRlICJjb25maWcuaCIKLSAjaW5jbHVkZSAic3lz dGVtLmgiCi0gI2luY2x1ZGUgImNvcmV0eXBlcy5oIgotQEAgLTQxLDggKzQzLDYgQEAgYWxvbmcg d2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKLSAjaW5jbHVkZSAi ZGlhZ25vc3RpYy5oIgotICNpbmNsdWRlICJzdG10LmgiCi0gCi0tI2luY2x1ZGUgPHB0aHJlYWQu aD4KLS0KLSAjaW5jbHVkZSAiaml0LXBsYXliYWNrLmgiCi0gI2luY2x1ZGUgImppdC1yZXN1bHQu aCIKLSAjaW5jbHVkZSAiaml0LWJ1aWx0aW5zLmgiCi1kaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQt cmVjb3JkaW5nLmMgYi9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuYwotaW5kZXggYTIzN2Q1NzRmLi41 Nzg1ZTMyNjkgMTAwNjQ0Ci0tLS0gYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuYwotKysrIGIvZ2Nj L2ppdC9qaXQtcmVjb3JkaW5nLmMKLUBAIC0xOCw2ICsxOCw4IEBAIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gYWxvbmcg d2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKLSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotIAotKyNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0rCi0g I2luY2x1ZGUgImNvbmZpZy5oIgotICNpbmNsdWRlICJzeXN0ZW0uaCIKLSAjaW5jbHVkZSAiY29y ZXR5cGVzLmgiCi1AQCAtMjUsOCArMjcsNiBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxl IENPUFlJTkczLiAgSWYgbm90IHNlZQotICNpbmNsdWRlICJwcmV0dHktcHJpbnQuaCIKLSAjaW5j bHVkZSAidG9wbGV2LmgiCi0gCi0tI2luY2x1ZGUgPHB0aHJlYWQuaD4KLS0KLSAjaW5jbHVkZSAi aml0LWJ1aWx0aW5zLmgiCi0gI2luY2x1ZGUgImppdC1yZWNvcmRpbmcuaCIKLSAjaW5jbHVkZSAi aml0LXBsYXliYWNrLmgiCi1kaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2NqaXQuYyBiL2djYy9q aXQvbGliZ2Njaml0LmMKLWluZGV4IGY5YzMzYzYzYy4uNzVmMjFkMjc1IDEwMDY0NAotLS0tIGEv Z2NjL2ppdC9saWJnY2NqaXQuYwotKysrIGIvZ2NjL2ppdC9saWJnY2NqaXQuYwotQEAgLTE4LDEz ICsxOCwxMyBAQCBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQotIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlO RzMuICBJZiBub3Qgc2VlCi0gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSAK LSsjaW5jbHVkZSA8cHRocmVhZC5oPgotICNpbmNsdWRlICJjb25maWcuaCIKLSAjaW5jbHVkZSAi c3lzdGVtLmgiCi0gI2luY2x1ZGUgImNvcmV0eXBlcy5oIgotICNpbmNsdWRlICJ0aW1ldmFyLmgi Ci0gI2luY2x1ZGUgInR5cGVkLXNwbGF5LXRyZWUuaCIKLSAjaW5jbHVkZSAiY3BwYnVpbHRpbi5o IgotLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0gCi0gI2luY2x1ZGUgImxpYmdjY2ppdC5oIgotICNp bmNsdWRlICJqaXQtcmVjb3JkaW5nLmgiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmdjY2ppdC90 ZW1wbGF0ZSBiL3NyY3BrZ3MvbGliZ2Njaml0L3RlbXBsYXRlCmluZGV4IDBiMzdjM2VlOWY4Yi4u ZmRlMWFmZmQ1NGI3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYmdjY2ppdC90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2xpYmdjY2ppdC90ZW1wbGF0ZQpAQCAtMywxOCArMywxMiBAQAogIyB3aGljaCB1 c2UgdGhlIHZlcnNpb24gbnVtYmVyLgogCiBwa2duYW1lPWxpYmdjY2ppdAotIyB3ZSBhcmUgdXNp bmcgYSAxMC1zdGFibGUgZ2l0IHNuYXBzaG90IGFscGluZSBpcyB1c2luZyBpbiBvcmRlcgotIyB0 byBnZXQgcmVncmVzc2lvbiBmaXhlcyBub3QgeWV0IGluY29ycG9yYXRlIGludG8gYSBzdGFibGUg cmVsZWFzZQotIyBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gc3dpdGNoIGJhY2sgdG8gc3RhYmxl IHdpdGggMTAuMyBvciAxMQotdmVyc2lvbj0xMC4yLjFwcmUxCit2ZXJzaW9uPTEyLjIuMAogcmV2 aXNpb249MQotX3BhdGNodmVyPSIke3ZlcnNpb24lcHJlKn0iCi1fbWlub3J2ZXI9IiR7X3BhdGNo dmVyJS4qfSIKLV9tYWpvcnZlcj0iJHtfbWlub3J2ZXIlLip9IgotX2dtcF92ZXJzaW9uPTYuMi4w CitfZ21wX3ZlcnNpb249Ni4yLjEKIF9tcGZyX3ZlcnNpb249NC4xLjAKLV9tcGNfdmVyc2lvbj0x LjEuMAotX2lzbF92ZXJzaW9uPTAuMjEKK19tcGNfdmVyc2lvbj0xLjIuMQorX2lzbF92ZXJzaW9u PTAuMjQKIGNyZWF0ZV93cmtzcmM9eWVzCiBzaG9ydF9kZXNjPSJKdXN0LUluLVRpbWUgQ29tcGls YXRpb24gbGlicmFyeSBmb3IgR0NDIgogbWFpbnRhaW5lcj0iTGFuZSBCaW9jaW5pIDxsYW5lQG1h aWxib3gub3JnPiIKQEAgLTIyLDE2ICsxNiwxNiBAQCBob21lcGFnZT0iaHR0cHM6Ly9nY2MuZ251 Lm9yZyIKIGxpY2Vuc2U9IkdGREwtMS4yLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BM LTIuMS1vci1sYXRlciIKICMgKi1tdXNsIGJ1aWxkZXJzIGhhdmUgaXNzdWVzIGZldGNoaW5nIGh0 dHBzOi8vZnRwLmdudS5vcmcvZ251L21wYy9tcGMtMS4xLjAudGFyLmd6CiBkaXN0ZmlsZXM9Igot IGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHt2ZXJzaW9uL3ByZS9f cHJlfS50YXIueHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7dmVyc2lvbn0vZ2NjLSR7dmVyc2lv bn0udGFyLnh6CiAgaHR0cHM6Ly9nbXBsaWIub3JnL2Rvd25sb2FkL2dtcC9nbXAtJHtfZ21wX3Zl cnNpb259LnRhci54egogICR7R05VX1NJVEV9L21wZnIvbXBmci0ke19tcGZyX3ZlcnNpb259LnRh ci54egogICR7R05VX1NJVEV9L21wYy9tcGMtJHtfbXBjX3ZlcnNpb259LnRhci5negogICR7U09V UkNFRk9SR0VfU0lURX0vbGliaXNsL2lzbC0ke19pc2xfdmVyc2lvbn0udGFyLmJ6MiIKLWNoZWNr c3VtPSI3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAz YjgxNGI3MzJjNTkwCi0gMjU4ZTZjZDUxYjNmYmRmYzE4NWM3MTZkNTVmODJjMDhhZmY1N2RmMGM2 ZmJkMTQzY2Y2ZWQ1NjEyNjdhMTUyNgorY2hlY2tzdW09ImU1NDljZjljZjM1OTRhMDBlMjdiNjU4 OWQ0MzIyZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKKyBmZDQ4Mjk5MTJjZGRk MTJmODQxODFjMzQ1MWNjNzUyYmUyMjQ2NDNlODdmYWM0OTdiNjllZGRkYWRjNDliNGYyCiAgMGM5 OGEzZjE3MzJmZjZjYTRlYTY5MDU1MjA3OWRhOWM1OTc4NzJkMzBlOTZlYzI4NDE0ZWUyM2M5NTU1 OGE3ZgotIDY5ODVjNTM4MTQzYzEyMDhkY2IxYWM0MmNlZGFkNmZmNTJlMjY3YjQ3ZTVmOTcwMTgz YTNlNzUxMjViNDNjMmUKLSBkMThjYTExZjhhZDFhMzlhYjZkMDNkM2RjYjMzNjVhYjQxNjcyMGZj YjY1YjQyZDY5ZjM0ZjUxYmYwYTBlODU5IgorIDE3NTAzZDJjMzk1ZGZjZjEwNmI2MjJkYzE0MjY4 M2MxMTk5NDMxZDA5NTM2N2M2YWFjYmE2ZWVjMzAzNDA0NTkKKyBmY2Y3OGRkOTY1NmMxMGViOGNm OWZiZDVmNTlhMGI2YjAxMzg2MjA1ZmUxOTM0YjNiMjg3YTBhMTg5ODE0NWMwIgogbm9waWU9eWVz CiBsaWIzMmRpc2FibGVkPXllcwogbWFrZWRlcGVuZHM9InpsaWItZGV2ZWwiCgpGcm9tIDRhNDc0 YzFhMThmZDQ0ZjUyNmE2ZDVjODlhMjZmNjkzMmY5MTAwMDYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCA1IE5vdiAy MDIyIDExOjMzOjEyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMC8zN10gYnVpbGQtc3R5bGUvdm9p ZC1jcm9zczogVXBkYXRlIGZsYWdzIGZvciBnY2MxMiBhbmQKIGdsaWJjIDIuMzYKCmdjb3YgY2Fu J3QgYmUgYnVpbHQgd2l0aG91dCBsaWJjOgpodHRwczovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3No b3dfYnVnLmNnaT9pZD0xMDAyODkKClJlbW92ZSAtbm8tcGllIGZyb20gYnVpbGQuIGdsaWJjIDIu MzUgYW5kIG5ld2VyIHVzZXMgLXN0YXRpYy1waWUgYnkgZGVmYXVsdDoKaHR0cHM6Ly9zb3VyY2V3 YXJlLm9yZy9waXBlcm1haWwvZ2xpYmMtY3ZzLzIwMjFxNC8wNzU5MTYuaHRtbAotLS0KIGNvbW1v bi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoIHwgMTkgKysrKysrKysrKysrKysrKysrKwogMSBm aWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9jb21tb24vYnVpbGQt c3R5bGUvdm9pZC1jcm9zcy5zaCBiL2NvbW1vbi9idWlsZC1zdHlsZS92b2lkLWNyb3NzLnNoCmlu ZGV4IDkyZjAzZjgxMzBmNS4uZjdlMDJkYmM0OGNiIDEwMDY0NAotLS0gYS9jb21tb24vYnVpbGQt c3R5bGUvdm9pZC1jcm9zcy5zaAorKysgYi9jb21tb24vYnVpbGQtc3R5bGUvdm9pZC1jcm9zcy5z aApAQCAtNTMsNiArNTMsNyBAQCBfdm9pZF9jcm9zc19idWlsZF9iaW51dGlscygpIHsKIAkJLS1z YmluZGlyPS91c3IvYmluIFwKIAkJLS1saWJkaXI9L3Vzci9saWIgXAogCQktLWxpYmV4ZWNkaXI9 L3Vzci9saWIgXAorCQktLXN5c2NvbmZkaXI9L2V0YyBcCiAJCS0tdGFyZ2V0PSR7dGd0fSBcCiAJ CS0td2l0aC1zeXNyb290PS91c3IvJHt0Z3R9IFwKIAkJLS1kaXNhYmxlLW5scyBcCkBAIC02MCw3 ICs2MSw5IEBAIF92b2lkX2Nyb3NzX2J1aWxkX2JpbnV0aWxzKCkgewogCQktLWRpc2FibGUtbXVs dGlsaWIgXAogCQktLWRpc2FibGUtd2Vycm9yIFwKIAkJLS1kaXNhYmxlLWdvbGQgXAorCQktLWRp c2FibGUtZ3Byb2ZuZyBcCiAJCS0tZW5hYmxlLXJlbHJvIFwKKwkJLS1lbmFibGUtbmV3LWR0YWdz IFwKIAkJLS1lbmFibGUtcGx1Z2lucyBcCiAJCS0tZW5hYmxlLTY0LWJpdC1iZmQgXAogCQktLWVu YWJsZS1kZXRlcm1pbmlzdGljLWFyY2hpdmVzIFwKQEAgLTkxLDYgKzk0LDkgQEAgX3ZvaWRfY3Jv c3NfYnVpbGRfYm9vdHN0cmFwX2djYygpIHsKIAkjIERvIG5vdCBydW4gZml4aW5jbHVkZXMKIAlz ZWQgLWkgJ3NALi9maXhpbmMuc2hALWMgdHJ1ZUAnIE1ha2VmaWxlLmluCiAKKwkjIERvIG5vdCB1 c2Ugc3lzdGVtIGhlYWRlcnMgdG8gZGV0ZXJtaW5lIGNsb2NhbGUgaW1wbGVtZW50YXRpb24KKwlz ZWQgLWkgJ3MvI2lmIChfX0dMSUJDX18gPiAyIHx8IChfX0dMSUJDX18gPT0gMiAmJiBfX0dMSUJD X01JTk9SX18gPj0gMykpICYmICFkZWZpbmVkKF9fVUNMSUJDX18pLyNpZiAxL2cnIGxpYnN0ZGMr Ky12My9jb25maWd1cmUKKwogCWZvciBmIGluICR7WEJQU19TUkNQS0dESVJ9L2djYy9wYXRjaGVz LyoucGF0Y2g7IGRvCiAJCV92b2lkX2Nyb3NzX2FwcGx5X3BhdGNoICIkZiIKIAlkb25lCkBAIC0x MzIsNiArMTM4LDcgQEAgX3ZvaWRfY3Jvc3NfYnVpbGRfYm9vdHN0cmFwX2djYygpIHsKIAkJLS1k aXNhYmxlLWxpYnNzcCBcCiAJCS0tZGlzYWJsZS1saWJpdG0gXAogCQktLWRpc2FibGUtbGliYXRv bWljIFwKKwkJLS1kaXNhYmxlLWdjb3YgXAogCQktLWRpc2FibGUtdGhyZWFkcyBcCiAJCS0tZGlz YWJsZS1zamxqLWV4Y2VwdGlvbnMgXAogCQktLWVuYWJsZS1sYW5ndWFnZXM9YyBcCkBAIC0zODEs NiArMzg4LDcgQEAgX3ZvaWRfY3Jvc3NfYnVpbGRfZ2NjKCkgewogCQlleHRyYV9hcmdzKz0iIC0t ZGlzYWJsZS1nbnUtdW5pcXVlLW9iamVjdCIKIAkJZXh0cmFfYXJncys9IiBsaWJhdF9jdl9oYXZl X2lmdW5jPW5vIgogCWVsc2UKKwkJZXh0cmFfYXJncys9IiAtLWVuYWJsZS1jbG9jYWxlPWdudSIK IAkJZXh0cmFfYXJncys9IiAtLWVuYWJsZS1nbnUtdW5pcXVlLW9iamVjdCIKIAlmaQogCkBAIC00 NjAsNiArNDY4LDE0IEBAIGRvX2J1aWxkKCkgewogCWxvY2FsIGJpbnV0aWxzX3ZlciBsaW51eF92 ZXIgZ2NjX3ZlciBsaWJjX3ZlciBsaWJ1Y29udGV4dF92ZXIKIAlsb2NhbCB0Z3Q9JHtzb3VyY2Vw a2cvY3Jvc3MtfQogCisJZXhwb3J0IENGTEFHUz0iJHtDRkxBR1MvLURfRk9SVElGWV9TT1VSQ0U9 Mi99IgorCWV4cG9ydCBDWFhGTEFHUz0iJHtDWFhGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30i CisKKwkjIERpc2FibGUgZXhwbGljaXQgLWZuby1QSUUsIGdjYy9iaW51dGlscy9saWJjIHdpbGwg ZmlndXJlIHRoaXMgb3V0IGl0c2VsZi4KKwlleHBvcnQgQ0ZMQUdTPSIke0NGTEFHUy8vLWZuby1Q SUUvfSIKKwlleHBvcnQgQ1hYRkxBR1M9IiR7Q1hYRkxBR1MvLy1mbm8tUElFL30iCisJZXhwb3J0 IExERkxBR1M9IiR7TERGTEFHUy8vLW5vLXBpZS99IgorCiAJX3ZvaWRfY3Jvc3NfdGVzdF92ZXIg YmludXRpbHMKIAlfdm9pZF9jcm9zc190ZXN0X3ZlciBsaW51eAogCV92b2lkX2Nyb3NzX3Rlc3Rf dmVyIGdjYwpAQCAtNjI1LDYgKzY0MSw5IEBAIGRvX2luc3RhbGwoKSB7CiAJIyB0aGVuIHJlbW92 ZSBpdCBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoIGxpYnF1YWRtYXRoIHBhY2thZ2UKIAlybSAt cmYgJHtERVNURElSfS8ke3N5c3Jvb3R9L3Vzci9saWIvbGlicXVhZG1hdGguKgogCisJIyBSZW1v dmUgbGliZGVwIGxpbmtlciBwbHVnaW4gYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCBzeXN0ZW0g YmludXRpbHMKKwlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIvYmZkLXBsdWdpbnMvbGliZGVwKgor CiAJIyBSZW1vdmUgbGVmdG92ZXIgc3ltbGlua3MKIAlybSAtZiAke0RFU1RESVJ9L3Vzci9saWIk e1hCUFNfVEFSR0VUX1dPUkRTSVpFfQogCXJtIC1mICR7REVTVERJUn0vbGliKgoKRnJvbSA0OGQ4 YWFmNmRjMTEzZWIzYmRiY2FkZDBjZDgxNzNlMTliODc5MDg0IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgNSBOb3Yg MjAyMiAxMTozMzoxMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMzddIHFlbXU6IHJlbW92ZSBi cm9rZW4gcGF0Y2gKClRoZSBuZWNlc3NhcnkgcGF0Y2ggaGFzIGJlZW4gaW1wb3J0ZWQgaW50byBt dXNsIHNvIG5vIG5lZWQKdG8gY2FzdCB0aGUgc2lnZXZlbnQgc3RydWN0IHRvIGEgbW9yZSBnbGli Yy1saWtlIG9uZS4KLS0tCiAuLi4vbXVzbC1maXgtc2lnZXZlbnQtYW5kLXNpZ3ZhbF90LnBhdGNo ICAgICAgfCAyNyAtLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjcgZGVsZXRp b25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xZW11L3BhdGNoZXMvbXVzbC1maXgt c2lnZXZlbnQtYW5kLXNpZ3ZhbF90LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xZW11L3Bh dGNoZXMvbXVzbC1maXgtc2lnZXZlbnQtYW5kLXNpZ3ZhbF90LnBhdGNoIGIvc3JjcGtncy9xZW11 L3BhdGNoZXMvbXVzbC1maXgtc2lnZXZlbnQtYW5kLXNpZ3ZhbF90LnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA0YjRmMTExN2MxNWYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL3FlbXUvcGF0Y2hlcy9tdXNsLWZpeC1zaWdldmVudC1hbmQtc2lndmFsX3QucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1Ob3RlOiBSZW1vdmUgdGhpcyBwYXRjaCB3aXRo IG11c2wgMS4yLjIKLQotLS0tIGEvbGludXgtdXNlci9zeXNjYWxsLmMKLSsrKyBiL2xpbnV4LXVz ZXIvc3lzY2FsbC5jCi1AQCAtNTAyMCwxMCArNTAyMCwyMSBAQAotICNpZm5kZWYgSEFWRV9TSUdF Vl9OT1RJRllfVEhSRUFEX0lECi0gI2RlZmluZSBzaWdldl9ub3RpZnlfdGhyZWFkX2lkIF9zaWdl dl91bi5fdGlkCi0gI2VuZGlmCi0gCi0tc3RhdGljIGlubGluZSBhYmlfbG9uZyB0YXJnZXRfdG9f aG9zdF9zaWdldmVudChzdHJ1Y3Qgc2lnZXZlbnQgKmhvc3Rfc2V2cCwKLStzdHJ1Y3QgaG9zdF9z aWdldmVudCB7Ci0rICAgIHVuaW9uIHNpZ3ZhbCBzaWdldl92YWx1ZTsKLSsgICAgaW50IHNpZ2V2 X3NpZ25vOwotKyAgICBpbnQgc2lnZXZfbm90aWZ5OwotKyAgICB1bmlvbiB7Ci0rICAgICAgIGNo YXIgX3BhZFs2NCAtIHNpemVvZihpbnQpICogMiAtIHNpemVvZih1bmlvbiBzaWd2YWwpXTsKLSsg ICAgICAgaW50IF90aWQ7Ci0rICAgIH0gX3NpZ2V2X3VuOwotK307Ci0rCi0rc3RhdGljIGlubGlu ZSBhYmlfbG9uZyB0YXJnZXRfdG9faG9zdF9zaWdldmVudChzdHJ1Y3Qgc2lnZXZlbnQgKnNldnAs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYmlfdWxv bmcgdGFyZ2V0X2FkZHIpCi0gewotKyAgICBzdHJ1Y3QgaG9zdF9zaWdldmVudCAqaG9zdF9zZXZw ID0gKHN0cnVjdCBob3N0X3NpZ2V2ZW50ICopIHNldnA7Ci0gICAgIHN0cnVjdCB0YXJnZXRfc2ln ZXZlbnQgKnRhcmdldF9zZXZwOwotIAotICAgICBpZiAoIWxvY2tfdXNlcl9zdHJ1Y3QoVkVSSUZZ X1JFQUQsIHRhcmdldF9zZXZwLCB0YXJnZXRfYWRkciwgMSkpIHsKCkZyb20gZWE2ZjBiYzIyNzU4 OGYxNmM3NDczMTdiNjIwNGJkM2ZmNGNmNjA5MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTYXQsIDE5IE5vdiAyMDIyIDEz OjI2OjI0IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxMi8zN10gbWstY29uZmlndXJlOiByZWJ1aWxk IGZvciBnY2MgMTIKCi0tLQogc3JjcGtncy9tay1jb25maWd1cmUvdGVtcGxhdGUgfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL21rLWNvbmZpZ3VyZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbWstY29uZmlndXJlL3Rl bXBsYXRlCmluZGV4IDlkMTJmMTFhOTc5OS4uYzUwZDhhZGYyMTNmIDEwMDY0NAotLS0gYS9zcmNw a2dzL21rLWNvbmZpZ3VyZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21rLWNvbmZpZ3VyZS90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ21rLWNvbmZpZ3VyZScK IHBrZ25hbWU9bWstY29uZmlndXJlCiB2ZXJzaW9uPTAuMzcuMAotcmV2aXNpb249MQorcmV2aXNp b249MgogYnVpbGRfc3R5bGU9Z251LW1ha2VmaWxlCiBtYWtlX2NtZD1ibWFrZQogbWFrZV9pbnN0 YWxsX2FyZ3M9Ik1BTkRJUj0vdXNyL3NoYXJlL21hbiIKCkZyb20gMmRhMzg2NDBkMTgwNmMwMmEy MmIxY2ZhNDM2ZGVmMzViY2VkMmZmZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3Jl bzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6Mjgg LTA4MDAKU3ViamVjdDogW1BBVENIIDEzLzM3XSBjcm9zcy1hYXJjaDY0LWxpbnV4LWdudTogdXBk YXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1nbnUv dGVtcGxhdGUgfCAxOSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5z ZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFh cmNoNjQtbGludXgtZ251L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdu dS90ZW1wbGF0ZQppbmRleCAxOGRlMjFhYTNjY2QuLjllNmZiNzVjMTk4ZCAxMDA2NDQKLS0tIGEv c3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LWdudS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Ny b3NzLWFhcmNoNjQtbGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDE1ICsxLDE2IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdjcm9zcy1hYXJjaDY0LWxpbnV4LWdudScKLV9iaW51dGlsc192ZXJzaW9u PTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCi1fZ2xpYmNfdmVyc2lvbj0yLjMyCitf YmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCitfZ2xpYmNfdmVyc2lv bj0yLjM2CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25hbWU9Y3Jvc3MtYWFyY2g2NC1saW51 eC1nbnUKLXZlcnNpb249MC4zNAordmVyc2lvbj0wLjM1CiByZXZpc2lvbj0xCiBidWlsZF9zdHls ZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9YXJtdjgtYSIKIGhvc3Rt YWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24z IgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1k ZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCBn bXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZlbCIKIGRlcGVuZHM9 IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hvcnRfZGVzYz0iVm9p ZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFpbnRhaW5lcj0iTGVh aCBOZXVraXJjaGVuIDxsZWFoQHZ1eHUub3JnPiIKQEAgLTE3LDEyICsxOCwxMiBAQCBsaWNlbnNl PSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtH TlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0g aHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke19nY2NfdmVyc2lvbn0u dGFyLnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192 ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nbGliYy9nbGliYy0ke19nbGliY192ZXJzaW9u fS50YXIueHoKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0ke19saW51eF92ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5ZjIw ODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2ZmVj OWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKLSAxNjI3ZWE1NGY1YTFh ODQ2NzAzMjU2MzM5M2UwOTAxMDc3NjI2ZGM2NmYzN2YxMGVlNjM2M2JiNzIyMjIyODM2CitjaGVj a3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2Rm NGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQy MTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKKyAxYzk1OWZlYTI0MDkwNjIyNjA2MmNiNGIxZTdlYmNl NzFhOWYwZTNjMDgzNmMwOWU3ZTM0MjNkNDM0ZmNmZTc1CiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2Qx Y2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYyIKIG5vY3Jvc3M9eWVz CiAKCkZyb20gM2I2NjVjODU3NGFiOTM4MzdmYjNkZTk0YTE4OTU1YjljZDJmM2MyOSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRl OiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6MjggLTA4MDAKU3ViamVjdDogW1BBVENIIDE0LzM3XSBj cm9zcy1hYXJjaDY0LWxpbnV4LW11c2w6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0tCiBzcmNw a2dzL2Nyb3NzLWFhcmNoNjQtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDE5ICsrKysrKysrKystLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsL3RlbXBsYXRlIGIv c3JjcGtncy9jcm9zcy1hYXJjaDY0LWxpbnV4LW11c2wvdGVtcGxhdGUKaW5kZXggYmI2YTc3MGFm Yjc5Li5iYTE0Yzk2YmNjZWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51 eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtYWFyY2g2NC1saW51eC1tdXNsL3Rl bXBsYXRlCkBAIC0xLDI5ICsxLDMwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hYXJj aDY0LWxpbnV4LW11c2wnCi1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0x MC4yLjFfcHJlMQorX2JpbnV0aWxzX3ZlcnNpb249Mi4zOQorX2djY192ZXJzaW9uPTEyLjIuMAog X211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTUuMTAuNAogX2xpYnVjb250ZXh0 X3ZlcnNpb249MS4wCiBwa2duYW1lPWNyb3NzLWFhcmNoNjQtbGludXgtbXVzbAotdmVyc2lvbj0w LjM0Ci1yZXZpc2lvbj00Cit2ZXJzaW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZv aWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12OC1hIgogaG9zdG1ha2Vk ZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1t YWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVs IG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIGdtcC1k ZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgogZGVwZW5kcz0iJHtw a2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9kZXNjPSJWb2lkIGNy b3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFpbmVyPSJPcnBoYW5l ZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51 eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTUlU IgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAk e0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoK LSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2djY192ZXJzaW9u fS50YXIueHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2Nj X3ZlcnNpb259LnRhci54egogIGh0dHBzOi8vbXVzbC5saWJjLm9yZy9yZWxlYXNlcy9tdXNsLSR7 X211c2xfdmVyc2lvbn0udGFyLmd6CiAgJHtLRVJORUxfU0lURX0va2VybmVsL3Y1LngvbGludXgt JHtfbGludXhfdmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9naXRodWIuY29tL2thbmlpbmkvbGli dWNvbnRleHQvYXJjaGl2ZS9saWJ1Y29udGV4dC0ke19saWJ1Y29udGV4dF92ZXJzaW9ufS50YXIu Z3oiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5ZjIwODNhZWQwYTIx NGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2ZmVjOWJhOGNkY2I0 NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKK2NoZWNrc3VtPSI2NDVjMjVmNTYzYjhh ZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1YzA5NTE2ZDAwCisgZTU0 OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJlYjQxODFlMDY5MjYy MzBmZgogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1 MWYwYTM0MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4OTQ2MDE3MTUzNmJlZDc3 MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjCiAgMjM3MTRlOTlhODdmNmRlYTgyZThhMDczYzUyNjMy NTE2MWRkNjU0NjI0NTk4MjBiMTZhNjE2MmJlOTE5NTViYiIKCkZyb20gZWQ0MjhkZGJmZTliZTgz MTA1ODI2ZTZmYmQxZmMwNDc1MDAzMzZhZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog b3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6 MjggLTA4MDAKU3ViamVjdDogW1BBVENIIDE1LzM3XSBjcm9zcy1hcm0tbGludXgtZ251ZWFiaTog dXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LWdudWVh YmkvdGVtcGxhdGUgfCAxOSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAg aW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3Nz LWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251 ZWFiaS90ZW1wbGF0ZQppbmRleCBhM2FiYTcyYWE5M2EuLjVjNzc0ZTE2ZjQzMCAxMDA2NDQKLS0t IGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaS90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2Nyb3NzLWFybS1saW51eC1nbnVlYWJpL3RlbXBsYXRlCkBAIC0xLDE1ICsxLDE2IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hcm0tbGludXgtZ251ZWFiaScKLV9iaW51dGlsc192ZXJz aW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCi1fZ2xpYmNfdmVyc2lvbj0yLjMy CitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCitfZ2xpYmNfdmVy c2lvbj0yLjM2CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25hbWU9Y3Jvc3MtYXJtLWxpbnV4 LWdudWVhYmkKLXZlcnNpb249MC4zNAordmVyc2lvbj0wLjM1CiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS13aXRoLWFyY2g9YXJtdjV0ZSAtLXdp dGgtZmxvYXQ9c29mdCIKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2Nj LWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1k ZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1 LWRldmVsIGxpYm1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGli enN0ZC1kZXZlbCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNp b259Igogc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9z cy19IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKQEAgLTE3 LDEyICsxOCwxMiBAQCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVy LCBMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3Jn LyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRp bHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9k L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2Nf dmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKICAke0dOVV9TSVRFfS9nbGliYy9n bGliYy0ke19nbGliY192ZXJzaW9ufS50YXIueHoKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUu eC9saW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYw MTE4MmI3ZTQyMGVhYjY4MDM5ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3 MmNmZDVkMzBlYjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0Yjcz MmM1OTAKLSAxNjI3ZWE1NGY1YTFhODQ2NzAzMjU2MzM5M2UwOTAxMDc3NjI2ZGM2NmYzN2YxMGVl NjM2M2JiNzIyMjIyODM2CitjaGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZi ZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdi NjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKKyAxYzk1OWZlYTI0 MDkwNjIyNjA2MmNiNGIxZTdlYmNlNzFhOWYwZTNjMDgzNmMwOWU3ZTM0MjNkNDM0ZmNmZTc1CiAg OTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBl ZTVkNTZlYyIKIG5vY3Jvc3M9eWVzCiAKCkZyb20gMjE5NDRhNzc1YWU5MDlhNmM0OTJjNWRhYzA1 YTE0MGEwNTkzNTNmMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3Jl bzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6MjggLTA4MDAKU3Vi amVjdDogW1BBVENIIDE2LzM3XSBjcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmOiB1cGRhdGUgdG8g Z2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmL3RlbXBs YXRlIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlv bnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1hcm0tbGlu dXgtZ251ZWFiaWhmL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtZ251ZWFiaWhm L3RlbXBsYXRlCmluZGV4IGQ5YWI4NmNmMmVjYy4uZDYyOThhYjYzOWE0IDEwMDY0NAotLS0gYS9z cmNwa2dzL2Nyb3NzLWFybS1saW51eC1nbnVlYWJpaGYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9j cm9zcy1hcm0tbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlCkBAIC0xLDE1ICsxLDE2IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdjcm9zcy1hcm0tbGludXgtZ251ZWFiaWhmJwotX2JpbnV0aWxzX3Zl cnNpb249Mi4zNS4xCi1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEKLV9nbGliY192ZXJzaW9uPTIu MzIKK19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19nY2NfdmVyc2lvbj0xMi4yLjAKK19nbGliY192 ZXJzaW9uPTIuMzYKIF9saW51eF92ZXJzaW9uPTUuMTAuNAogcGtnbmFtZT1jcm9zcy1hcm0tbGlu dXgtZ251ZWFiaWhmCi12ZXJzaW9uPTAuMzQKK3ZlcnNpb249MC4zNQogcmV2aXNpb249MQogYnVp bGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY2IC0t d2l0aC1mcHU9dmZwIC0td2l0aC1mbG9hdD1oYXJkIgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZv IHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtlZGVwZW5kcz0iaXNs MTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwiCitt YWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVs CisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgogZGVwZW5kcz0iJHtwa2duYW1lfS1saWJjLSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9kZXNjPSJWb2lkIGNyb3NzIHRvb2xjaGFpbiBm b3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRs aW51eC5vcmc+IgpAQCAtMTcsMTIgKzE4LDEyIEBAIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIs IEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v d3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9i aW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKLSBodHRwczovL2Rldi5hbHBpbmVs aW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKKyAke0dOVV9TSVRF fS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egogICR7 R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259LnRhci54egogICR7S0VSTkVM X1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4M2FlZDBhMjE0YzA0MjRlMjU3 ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZmZWM5YmE4Y2RjYjQ1ZDM3ZGYxYzli NTc3MDYxMDEwM2I4MTRiNzMyYzU5MAotIDE2MjdlYTU0ZjVhMWE4NDY3MDMyNTYzMzkzZTA5MDEw Nzc2MjZkYzY2ZjM3ZjEwZWU2MzYzYmI3MjIyMjI4MzYKK2NoZWNrc3VtPSI2NDVjMjVmNTYzYjhh ZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1YzA5NTE2ZDAwCisgZTU0 OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJlYjQxODFlMDY5MjYy MzBmZgorIDFjOTU5ZmVhMjQwOTA2MjI2MDYyY2I0YjFlN2ViY2U3MWE5ZjBlM2MwODM2YzA5ZTdl MzQyM2Q0MzRmY2ZlNzUKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4OTQ2MDE3MTUzNmJlZDc3 MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9jcm9zcz15ZXMKIAoKRnJvbSAzNzU3NDY2NGVl MGU1NGFlMmQzYThjYzQ3NmJjODg0ZTJiNTA1ZDBlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1biwgNiBOb3YgMjAyMiAx MTozMzoyOCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMzddIGNyb3NzLWFybS1saW51eC1tdXNs ZWFiaTogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4 LW11c2xlYWJpL3RlbXBsYXRlIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmkvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFybS1s aW51eC1tdXNsZWFiaS90ZW1wbGF0ZQppbmRleCA2NjkyZDg5MWUxYmQuLjI0ZGY3OGU4ZmQ4ZSAx MDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmkvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVzbGVhYmkvdGVtcGxhdGUKQEAgLTEsMjkgKzEs MzAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaScKLV9i aW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCitfYmludXRp bHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCiBfbXVzbF92ZXJzaW9uPTEuMS4y NAogX2xpbnV4X3ZlcnNpb249NS4xMC40CiBfbGlidWNvbnRleHRfdmVyc2lvbj0xLjAKIHBrZ25h bWU9Y3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpCi12ZXJzaW9uPTAuMzQKLXJldmlzaW9uPTQKK3Zl cnNpb249MC4zNQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmlndXJl X2FyZ3M9Ii0td2l0aC1hcmNoPWFybXY1dGUgLS13aXRoLWZsb2F0PXNvZnQiCiBob3N0bWFrZWRl cGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1h a2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwg bXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRl dmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3Br Z25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jv c3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9Ik9ycGhhbmVk IDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4 Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQi Citob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7 R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egot IGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259 LnRhci54egorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2Nf dmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9tdXNsLmxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtf bXVzbF92ZXJzaW9ufS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0k e19saW51eF92ZXJzaW9ufS50YXIueHoKICBodHRwczovL2dpdGh1Yi5jb20va2FuaWluaS9saWJ1 Y29udGV4dC9hcmNoaXZlL2xpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNpb259LnRhci5n eiIKLWNoZWNrc3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4M2FlZDBhMjE0 YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZmZWM5YmE4Y2RjYjQ1 ZDM3ZGYxYzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAorY2hlY2tzdW09IjY0NWMyNWY1NjNiOGFk YzBhODFkYmQ2YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRmNjVjMDk1MTZkMDAKKyBlNTQ5 Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmViNDE4MWUwNjkyNjIz MGZmCiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2NmE3YmVkZDcwMDUx ZjBhMzQwMTUwMjJhMwogIDkwNGUzOTZjMjZlOTk5MmExNmNkMWNjOTg5NDYwMTcxNTM2YmVkNzcz OWJmMzYwNDlmNmViMDIwZWU1ZDU2ZWMKICAyMzcxNGU5OWE4N2Y2ZGVhODJlOGEwNzNjNTI2MzI1 MTYxZGQ2NTQ2MjQ1OTgyMGIxNmE2MTYyYmU5MTk1NWJiIgoKRnJvbSAxYTVhYjExZWUyNWE0Zjhl ODQ5ZmM2YTM5NTM3MzE4MzUyNTY0OWM2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBv cmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1biwgNiBOb3YgMjAyMiAxMTozMzoy OCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTgvMzddIGNyb3NzLWFybS1saW51eC1tdXNsZWFiaWhm OiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9zcy1hcm0tbGludXgtbXVz bGVhYmloZi90ZW1wbGF0ZSB8IDE5ICsrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3NzLWFybS1s aW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlCmluZGV4IGJiNjJiZDVlYmM1NS4uODA5MzcwMGY5MDlj IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLWFybS1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvY3Jvc3MtYXJtLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUKQEAgLTEs MjkgKzEsMzAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLWFybS1saW51eC1tdXNsZWFi aWhmJwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4xCi1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEK K19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19nY2NfdmVyc2lvbj0xMi4yLjAKIF9tdXNsX3ZlcnNp b249MS4xLjI0CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTEu MAogcGtnbmFtZT1jcm9zcy1hcm0tbGludXgtbXVzbGVhYmloZgotdmVyc2lvbj0wLjM0Ci1yZXZp c2lvbj00Cit2ZXJzaW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MK IGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12NiAtLXdpdGgtZnB1PXZmcCAtLXdpdGgt ZmxvYXQ9aGFyZCIKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdv IGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZl bCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRl dmVsIGxpYm1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0 ZC1kZXZlbCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259 Igogc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19 IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKLWhvbWVwYWdl PSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIs IEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgu b3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmlu dXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5v bG9kL2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19n Y2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKICBodHRwczovL211c2wubGli Yy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negogICR7S0VSTkVMX1NJ VEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54egogIGh0dHBzOi8v Z2l0aHViLmNvbS9rYW5paW5pL2xpYnVjb250ZXh0L2FyY2hpdmUvbGlidWNvbnRleHQtJHtfbGli dWNvbnRleHRfdmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0 MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMw ZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCitj aGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVk M2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBj ZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKICAxMzcwYzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNj YTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgOTA0ZTM5NmMyNmU5OTkyYTE2 Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYwogIDIzNzE0ZTk5 YTg3ZjZkZWE4MmU4YTA3M2M1MjYzMjUxNjFkZDY1NDYyNDU5ODIwYjE2YTYxNjJiZTkxOTU1YmIi CgpGcm9tIDE5ODI2MWJmMjgwYzgyYzVjMzc1NDliMTc2NmFmYTVjNjVhYzAzZDYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTog U3VuLCA2IE5vdiAyMDIyIDExOjMzOjI4IC0wODAwClN1YmplY3Q6IFtQQVRDSCAxOS8zN10gY3Jv c3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZjogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNy Y3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZSB8IDE5ICsrKysrKysr KystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZi90 ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZQpp bmRleCAzMGM4OWI2Mjk0ZWYuLjkyNjY1MzI2NDI4YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9z cy1hcm12N2wtbGludXgtZ251ZWFiaWhmL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtYXJt djdsLWxpbnV4LWdudWVhYmloZi90ZW1wbGF0ZQpAQCAtMSwxNSArMSwxNiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnY3Jvc3MtYXJtdjdsLWxpbnV4LWdudWVhYmloZicKLV9iaW51dGlsc192ZXJz aW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCi1fZ2xpYmNfdmVyc2lvbj0yLjMy CitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCitfZ2xpYmNfdmVy c2lvbj0yLjM2CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25hbWU9Y3Jvc3MtYXJtdjdsLWxp bnV4LWdudWVhYmloZgotdmVyc2lvbj0wLjM0Cit2ZXJzaW9uPTAuMzUKIHJldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1hcm12Ny1h IC0td2l0aC1mcHU9dmZwdjMgLS13aXRoLWZsb2F0PWhhcmQiCiBob3N0bWFrZWRlcGVuZHM9InRl eGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRz PSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZl bCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnIt ZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9LWxp YmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNo YWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5A dm9pZGxpbnV4Lm9yZz4iCkBAIC0xNywxMiArMTgsMTIgQEAgbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0 aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0dHBzOi8vZGV2LmFs cGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egorICR7R05V X1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6 CiAgJHtHTlVfU0lURX0vZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6CiAgJHtL RVJORUxfU0lURX0va2VybmVsL3Y1LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQy NGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdk ZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCi0gMTYyN2VhNTRmNWExYTg0NjcwMzI1NjMzOTNl MDkwMTA3NzYyNmRjNjZmMzdmMTBlZTYzNjNiYjcyMjIyMjgzNgorY2hlY2tzdW09IjY0NWMyNWY1 NjNiOGFkYzBhODFkYmQ2YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRmNjVjMDk1MTZkMDAK KyBlNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmViNDE4MWUw NjkyNjIzMGZmCisgMWM5NTlmZWEyNDA5MDYyMjYwNjJjYjRiMWU3ZWJjZTcxYTlmMGUzYzA4MzZj MDllN2UzNDIzZDQzNGZjZmU3NQogIDkwNGUzOTZjMjZlOTk5MmExNmNkMWNjOTg5NDYwMTcxNTM2 YmVkNzczOWJmMzYwNDlmNmViMDIwZWU1ZDU2ZWMiCiBub2Nyb3NzPXllcwogCgpGcm9tIGE3ZjBm ODIyMjQxMDU2NGFjYjM3MDEyZGEwODFmODEwZjRlODIwMTkgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA2IE5vdiAy MDIyIDExOjMzOjI4IC0wODAwClN1YmplY3Q6IFtQQVRDSCAyMC8zN10gY3Jvc3MtYXJtdjdsLWxp bnV4LW11c2xlYWJpaGY6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0tCiAuLi4vY3Jvc3MtYXJt djdsLWxpbnV4LW11c2xlYWJpaGYvdGVtcGxhdGUgICAgfCAxOSArKysrKysrKysrLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51eC1tdXNsZWFiaWhmL3RlbXBsYXRlIGIv c3JjcGtncy9jcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZQppbmRleCAwYTU4 OGNkZjFhNTguLmU1YWYyYzljY2JmMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1hcm12N2wt bGludXgtbXVzbGVhYmloZi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLWFybXY3bC1saW51 eC1tdXNsZWFiaWhmL3RlbXBsYXRlCkBAIC0xLDI5ICsxLDMwIEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdjcm9zcy1hcm12N2wtbGludXgtbXVzbGVhYmloZicKLV9iaW51dGlsc192ZXJzaW9uPTIu MzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCitfYmludXRpbHNfdmVyc2lvbj0yLjM5Citf Z2NjX3ZlcnNpb249MTIuMi4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249 NS4xMC40CiBfbGlidWNvbnRleHRfdmVyc2lvbj0xLjAKIHBrZ25hbWU9Y3Jvc3MtYXJtdjdsLWxp bnV4LW11c2xlYWJpaGYKLXZlcnNpb249MC4zNAotcmV2aXNpb249NAordmVyc2lvbj0wLjM1City ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS13aXRo LWFyY2g9YXJtdjctYSAtLXdpdGgtZnB1PXZmcHYzIC0td2l0aC1mbG9hdD1oYXJkIgogaG9zdG1h a2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMi Ci1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRl dmVsIG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIGdt cC1kZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgogZGVwZW5kcz0i JHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9kZXNjPSJWb2lk IGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFpbmVyPSJPcnBo YW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRs aW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwg TUlUIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIK ICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIu eHoKLSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2djY192ZXJz aW9ufS50YXIueHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtf Z2NjX3ZlcnNpb259LnRhci54egogIGh0dHBzOi8vbXVzbC5saWJjLm9yZy9yZWxlYXNlcy9tdXNs LSR7X211c2xfdmVyc2lvbn0udGFyLmd6CiAgJHtLRVJORUxfU0lURX0va2VybmVsL3Y1LngvbGlu dXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9naXRodWIuY29tL2thbmlpbmkv bGlidWNvbnRleHQvYXJjaGl2ZS9saWJ1Y29udGV4dC0ke19saWJ1Y29udGV4dF92ZXJzaW9ufS50 YXIuZ3oiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5ZjIwODNhZWQw YTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2ZmVjOWJhOGNk Y2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKK2NoZWNrc3VtPSI2NDVjMjVmNTYz YjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1YzA5NTE2ZDAwCisg ZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJlYjQxODFlMDY5 MjYyMzBmZgogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3 MDA1MWYwYTM0MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4OTQ2MDE3MTUzNmJl ZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjCiAgMjM3MTRlOTlhODdmNmRlYTgyZThhMDczYzUy NjMyNTE2MWRkNjU0NjI0NTk4MjBiMTZhNjE2MmJlOTE5NTViYiIKCkZyb20gYzYyNGRmNDA5NjQ2 ODI5YWRlZDM4MWYzZmE4NDZmNGM4NTM4ZTM3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDYgTm92IDIwMjIgMTE6 MzM6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIIDIxLzM3XSBjcm9zcy1pNjg2LWxpbnV4LW11c2w6 IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2Nyb3NzLWk2ODYtbGludXgtbXVz bC90ZW1wbGF0ZSB8IDE5ICsrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBp bnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3Mt aTY4Ni1saW51eC1tdXNsL3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1pNjg2LWxpbnV4LW11c2wv dGVtcGxhdGUKaW5kZXggOGJlMTZhMjMwZDhkLi5kNjI0YmI3YTMyNTQgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvY3Jvc3MtaTY4Ni1saW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3Mt aTY4Ni1saW51eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDI4ICsxLDI5IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdjcm9zcy1pNjg2LWxpbnV4LW11c2wnCi1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEK LV9nY2NfdmVyc2lvbj0xMC4yLjFfcHJlMQorX2JpbnV0aWxzX3ZlcnNpb249Mi4zOQorX2djY192 ZXJzaW9uPTEyLjIuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTUuMTAu NAogX2xpYnVjb250ZXh0X3ZlcnNpb249MS4wCiBwa2duYW1lPWNyb3NzLWk2ODYtbGludXgtbXVz bAotdmVyc2lvbj0wLjM0Ci1yZXZpc2lvbj00Cit2ZXJzaW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGhvc3RtYWtlZGVwZW5kcz0idGV4aW5mbyB0YXIgZ2NjLW9i amMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxp Ym1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9 ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2 ZWwgbGlienN0ZC1kZXZlbCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7 cmV2aXNpb259Igogc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFt ZS9jcm9zcy19IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIK LWhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52 b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRp bHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgu b3JnL35uZW5vbG9kL2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CisgJHtHTlVfU0lURX0vZ2Nj L2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKICBodHRwczov L211c2wubGliYy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negogICR7 S0VSTkVMX1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54egog IGh0dHBzOi8vZ2l0aHViLmNvbS9rYW5paW5pL2xpYnVjb250ZXh0L2FyY2hpdmUvbGlidWNvbnRl eHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJm MDExODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3 NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3 MzJjNTkwCitjaGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNh MzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIy ZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKICAxMzcwYzlhODEyYjJjZjJhN2Q5 MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAxNTAyMmEzCiAgOTA0ZTM5NmMy NmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYwog IDIzNzE0ZTk5YTg3ZjZkZWE4MmU4YTA3M2M1MjYzMjUxNjFkZDY1NDYyNDU5ODIwYjE2YTYxNjJi ZTkxOTU1YmIiCgpGcm9tIDQ2NjA3NDZjNTA3ZmMzZDk3ODZlNDNlMTQ5YmQxM2UyYWNmNGRlNGYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNv bT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIyIDExOjMzOjI5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAy Mi8zN10gY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnU6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0t CiBzcmNwa2dzL2Nyb3NzLWk2ODYtcGMtbGludXgtZ251L3RlbXBsYXRlIHwgMTkgKysrKysrKysr Ky0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1pNjg2LXBjLWxpbnV4LWdudS90ZW1wbGF0 ZSBiL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1wYy1saW51eC1nbnUvdGVtcGxhdGUKaW5kZXggMjYzYTQz ZjdhN2I4Li42YTllNTRkYjgwN2EgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MtaTY4Ni1wYy1s aW51eC1nbnUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1pNjg2LXBjLWxpbnV4LWdudS90 ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtaTY4 Ni1wYy1saW51eC1nbnUnCi1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0x MC4yLjFfcHJlMQotX2dsaWJjX3ZlcnNpb249Mi4zMgorX2JpbnV0aWxzX3ZlcnNpb249Mi4zOQor X2djY192ZXJzaW9uPTEyLjIuMAorX2dsaWJjX3ZlcnNpb249Mi4zNgogX2xpbnV4X3ZlcnNpb249 NS4xMC40CiBwa2duYW1lPWNyb3NzLWk2ODYtcGMtbGludXgtZ251Ci12ZXJzaW9uPTAuMzQKK3Zl cnNpb249MC4zNQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogaG9zdG1ha2Vk ZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1t YWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVs IG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIGdtcC1k ZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgogZGVwZW5kcz0iJHtw a2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9kZXNjPSJWb2lkIGNy b3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFpbmVyPSJPcnBoYW5l ZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgpAQCAtMTYsMTIgKzE3LDEyIEBAIGxpY2Vuc2U9IkdQ TC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9T SVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKLSBodHRw czovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2djY192ZXJzaW9ufS50YXIu eHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNp b259LnRhci54egogICR7R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259LnRh ci54egogICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4M2Fl ZDBhMjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZmZWM5YmE4 Y2RjYjQ1ZDM3ZGYxYzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAotIDE2MjdlYTU0ZjVhMWE4NDY3 MDMyNTYzMzkzZTA5MDEwNzc2MjZkYzY2ZjM3ZjEwZWU2MzYzYmI3MjIyMjI4MzYKK2NoZWNrc3Vt PSI2NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1 YzA5NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2Yz OWJlYjQxODFlMDY5MjYyMzBmZgorIDFjOTU5ZmVhMjQwOTA2MjI2MDYyY2I0YjFlN2ViY2U3MWE5 ZjBlM2MwODM2YzA5ZTdlMzQyM2Q0MzRmY2ZlNzUKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4 OTQ2MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9jcm9zcz15ZXMKIAoK RnJvbSA0YjViZDNiZTE5ODk2YjI3Yzk1ZDY2Nzc1MDA4OTlhYjkxYWZiYzBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1 biwgNiBOb3YgMjAyMiAxMTozMzoyOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjMvMzddIGNyb3Nz LW1pcHMtbGludXgtbXVzbDogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNyY3BrZ3MvY3Jv c3MtbWlwcy1saW51eC1tdXNsL3RlbXBsYXRlIHwgMjEgKysrKysrKysrKystLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2wvdGVtcGxhdGUgYi9zcmNwa2dzL2Ny b3NzLW1pcHMtbGludXgtbXVzbC90ZW1wbGF0ZQppbmRleCA5YjVkNTgxOWIxYTAuLjY3YTVjNDEz Mzk2YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2wvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2wvdGVtcGxhdGUKQEAgLTEsMjggKzEs MjkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLW1pcHMtbGludXgtbXVzbCcKLV9iaW51 dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCitfYmludXRpbHNf dmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCiBfbXVzbF92ZXJzaW9uPTEuMS4yNAog X2xpbnV4X3ZlcnNpb249NS4xMC40CiBwa2duYW1lPWNyb3NzLW1pcHMtbGludXgtbXVzbAotdmVy c2lvbj0wLjM0Ci1yZXZpc2lvbj0zCit2ZXJzaW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1taXBzMzJyMiAtLXdp dGgtZmxvYXQ9c29mdAogIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1zeXN2IgogaG9zdG1ha2Vk ZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBl bmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1k ZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1w ZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9 LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9v bGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBo YW5Adm9pZGxpbnV4Lm9yZz4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8i CiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCitob21l cGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJ VEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0dHBz Oi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54 egotIGh0dHBzOi8vd3d3Lm11c2wtbGliYy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNp b259LnRhci5negorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19n Y2NfdmVyc2lvbn0udGFyLnh6CisgaHR0cHM6Ly9tdXNsLmxpYmMub3JnL3JlbGVhc2VzL211c2wt JHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51 eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3 ZTQyMGVhYjY4MDM5ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVk MzBlYjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAK K2NoZWNrc3VtPSI2NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJk NWQzZGY0ZjY1YzA5NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcy MGNkZDIxM2YzOWJlYjQxODFlMDY5MjYyMzBmZgogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEw Y2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5OTJh MTZjZDFjYzk4OTQ2MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9jcm9z cz15ZXMKCkZyb20gYTRiYmUxMGQwYmQyOWNhOGI1YTNiYTAxZDAxNzU0YzViYWIwY2RhNiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpE YXRlOiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIIDI0LzM3 XSBjcm9zcy1taXBzLWxpbnV4LW11c2xoZjogdXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNy Y3BrZ3MvY3Jvc3MtbWlwcy1saW51eC1tdXNsaGYvdGVtcGxhdGUgfCAyMSArKysrKysrKysrKy0t LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbGhmL3RlbXBsYXRl IGIvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4LW11c2xoZi90ZW1wbGF0ZQppbmRleCBkNzU5MGFm OWVjMDMuLmJkZjg2MDBjZTk1YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1taXBzLWxpbnV4 LW11c2xoZi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLW1pcHMtbGludXgtbXVzbGhmL3Rl bXBsYXRlCkBAIC0xLDI4ICsxLDI5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1taXBz LWxpbnV4LW11c2xoZicKLV9iaW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEw LjIuMV9wcmUxCitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCiBf bXVzbF92ZXJzaW9uPTEuMS4yNAogX2xpbnV4X3ZlcnNpb249NS4xMC40CiBwa2duYW1lPWNyb3Nz LW1pcHMtbGludXgtbXVzbGhmCi12ZXJzaW9uPTAuMzQKLXJldmlzaW9uPTMKK3ZlcnNpb249MC4z NQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmlndXJlX2FyZ3M9Ii0t d2l0aC1hcmNoPW1pcHMzMnIyIC0td2l0aC1mbG9hdD1oYXJkCiAgLS13aXRoLWxpbmtlci1oYXNo LXN0eWxlPXN5c3YiCiBob3N0bWFrZWRlcGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGZsZXgg cGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGli LWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxp Ym1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZl bCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hv cnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFp bnRhaW5lcj0iaGlwcGVyc29uMCA8aGlwcGVyc29uMEBnbWFpbC5jb20+IgotaG9tZXBhZ2U9Imh0 dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BM LTMuMC1vci1sYXRlciwgTUlUIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcv IgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGls c192ZXJzaW9ufS50YXIueHoKLSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2Qv Z2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKLSBodHRwczovL3d3dy5tdXNsLWxpYmMub3JnL3Jl bGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKKyAke0dOVV9TSVRFfS9nY2MvZ2Nj LSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egorIGh0dHBzOi8vbXVz bC5saWJjLm9yZy9yZWxlYXNlcy9tdXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CiAgJHtLRVJO RUxfU0lURX0va2VybmVsL3Y1LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUy NTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFj OWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCitjaGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRi ZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1 OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKICAx MzcwYzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAx NTAyMmEzCiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0 OWY2ZWIwMjBlZTVkNTZlYyIKIG5vY3Jvc3M9eWVzCgpGcm9tIDc4N2I3ZDA1Nzc4MzE4Y2I5MjNj MDcyOWM1NmRmZWFmNzE5OWI2NWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82 MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIyIDExOjMzOjI5IC0w ODAwClN1YmplY3Q6IFtQQVRDSCAyNS8zN10gY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2w6IHVwZGF0 ZSB0byBnY2MgMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51eC1tdXNsL3Rl bXBsYXRlIHwgMjEgKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5z ZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1t aXBzZWwtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxpbnV4LW11 c2wvdGVtcGxhdGUKaW5kZXggMWFjYmE3MDE2ZGJjLi5kZTQ5Mzg3ZDUxN2IgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2wvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9j cm9zcy1taXBzZWwtbGludXgtbXVzbC90ZW1wbGF0ZQpAQCAtMSwyOCArMSwyOSBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnY3Jvc3MtbWlwc2VsLWxpbnV4LW11c2wnCi1fYmludXRpbHNfdmVyc2lv bj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0xMC4yLjFfcHJlMQorX2JpbnV0aWxzX3ZlcnNpb249Mi4z OQorX2djY192ZXJzaW9uPTEyLjIuMAogX211c2xfdmVyc2lvbj0xLjEuMjQKIF9saW51eF92ZXJz aW9uPTUuMTAuNAogcGtnbmFtZT1jcm9zcy1taXBzZWwtbGludXgtbXVzbAotdmVyc2lvbj0wLjM0 Ci1yZXZpc2lvbj0zCit2ZXJzaW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQt Y3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtYXJjaD1taXBzMzJyMiAtLXdpdGgtZmxvYXQ9 c29mdAogIC0td2l0aC1saW5rZXItaGFzaC1zdHlsZT1zeXN2IgogaG9zdG1ha2VkZXBlbmRzPSJ0 ZXhpbmZvIHRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wx NS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK21h a2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwK KyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZv ciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxp bnV4Lm9yZz4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNl PSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCitob21lcGFnZT0iaHR0 cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0 aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0dHBzOi8vZGV2LmFs cGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egotIGh0dHBz Oi8vd3d3Lm11c2wtbGliYy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5n egorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lv bn0udGFyLnh6CisgaHR0cHM6Ly9tdXNsLmxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92 ZXJzaW9ufS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0ke19saW51 eF92ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4 MDM5ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVh OTk2ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKK2NoZWNrc3Vt PSI2NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1 YzA5NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2Yz OWJlYjQxODFlMDY5MjYyMzBmZgogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNj MzdlNjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4 OTQ2MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9jcm9zcz15ZXMKCkZy b20gMDc5MzE3MDA4MzBlYTUwOGJmNjY3ZjUxNGYxNzgyZTAwZGI0NTVhNSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4s IDYgTm92IDIwMjIgMTE6MzM6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIIDI2LzM3XSBjcm9zcy1t aXBzZWwtbGludXgtbXVzbGhmOiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9j cm9zcy1taXBzZWwtbGludXgtbXVzbGhmL3RlbXBsYXRlIHwgMjEgKysrKysrKysrKystLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbGhmL3RlbXBsYXRlIGIv c3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbGhmL3RlbXBsYXRlCmluZGV4IGU0YTU1ZjAy OGJjNC4uYjI3Y2U2NDc1YTM4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLW1pcHNlbC1saW51 eC1tdXNsaGYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1taXBzZWwtbGludXgtbXVzbGhm L3RlbXBsYXRlCkBAIC0xLDI4ICsxLDI5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1t aXBzZWwtbGludXgtbXVzbGhmJwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4xCi1fZ2NjX3ZlcnNp b249MTAuMi4xX3ByZTEKK19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19nY2NfdmVyc2lvbj0xMi4y LjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25hbWU9 Y3Jvc3MtbWlwc2VsLWxpbnV4LW11c2xoZgotdmVyc2lvbj0wLjM0Ci1yZXZpc2lvbj0zCit2ZXJz aW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9h cmdzPSItLXdpdGgtYXJjaD1taXBzMzJyMiAtLXdpdGgtZmxvYXQ9aGFyZAogIC0td2l0aC1saW5r ZXItaGFzaC1zdHlsZT1zeXN2IgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2Jq YyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2 ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1k ZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpz dGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3Mt fSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1ob21lcGFn ZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy LCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4 Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2Jp bnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVu b2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egotIGh0dHBzOi8vd3d3Lm11c2wtbGliYy5v cmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negorICR7R05VX1NJVEV9L2dj Yy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CisgaHR0cHM6 Ly9tdXNsLmxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKICAk e0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5ZjIwODNhZWQwYTIxNGMw NDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQz N2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKK2NoZWNrc3VtPSI2NDVjMjVmNTYzYjhhZGMw YTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1YzA5NTE2ZDAwCisgZTU0OWNm OWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJlYjQxODFlMDY5MjYyMzBm ZgogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2JlZGQ3MDA1MWYw YTM0MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4OTQ2MDE3MTUzNmJlZDc3Mzli ZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9jcm9zcz15ZXMKCkZyb20gZTRmNjYzMmRlYjdmMGRl YWM4MmU5ZTQyNGI4NGIyZDJlNWRlZTUzOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog b3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDYgTm92IDIwMjIgMTE6MzM6 MjkgLTA4MDAKU3ViamVjdDogW1BBVENIIDI3LzM3XSBjcm9zcy1wb3dlcnBjLWxpbnV4LWdudTog dXBkYXRlIHRvIGdjYyAxMi4yLjAuCgotLS0KIHNyY3BrZ3MvY3Jvc3MtcG93ZXJwYy1saW51eC1n bnUvdGVtcGxhdGUgfCAxOSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAg aW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3Nz LXBvd2VycGMtbGludXgtZ251L3RlbXBsYXRlIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4 LWdudS90ZW1wbGF0ZQppbmRleCBiOTdhMjFkMGQ3MmUuLjc5NTc5ZTA5M2IxMiAxMDA2NDQKLS0t IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LWdudS90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2Nyb3NzLXBvd2VycGMtbGludXgtZ251L3RlbXBsYXRlCkBAIC0xLDE1ICsxLDE2IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdjcm9zcy1wb3dlcnBjLWxpbnV4LWdudScKLV9iaW51dGlsc192ZXJz aW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUxCi1fZ2xpYmNfdmVyc2lvbj0yLjMy CitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNpb249MTIuMi4wCitfZ2xpYmNfdmVy c2lvbj0yLjM2CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25hbWU9Y3Jvc3MtcG93ZXJwYy1s aW51eC1nbnUKLXZlcnNpb249MC4zNAordmVyc2lvbj0wLjM1CiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS1lbmFibGUtc2VjdXJlcGx0IC0tZGlz YWJsZS12dGFibGUtdmVyaWZ5IgogaG9zdG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2Jq YyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2 ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1k ZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpz dGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3Mt fSIKIG1haW50YWluZXI9IlRob21hcyBCYXR0ZW4gPHN0ZW5zdG9ycG1jQGdtYWlsLmNvbT4iCkBA IC0xNywxMiArMTgsMTIgQEAgbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1s YXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4 Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2Jp bnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVu b2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egorICR7R05VX1NJVEV9L2djYy9nY2MtJHtf Z2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2xp YmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFyLnh6CiAgJHtLRVJORUxfU0lURX0va2VybmVs L3Y1LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09IjNjZWQ5MWRi OWJmMDExODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcK LSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgx NGI3MzJjNTkwCi0gMTYyN2VhNTRmNWExYTg0NjcwMzI1NjMzOTNlMDkwMTA3NzYyNmRjNjZmMzdm MTBlZTYzNjNiYjcyMjIyMjgzNgorY2hlY2tzdW09IjY0NWMyNWY1NjNiOGFkYzBhODFkYmQ2YTQx Y2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRmNjVjMDk1MTZkMDAKKyBlNTQ5Y2Y5Y2YzNTk0YTAw ZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmViNDE4MWUwNjkyNjIzMGZmCisgMWM5NTlm ZWEyNDA5MDYyMjYwNjJjYjRiMWU3ZWJjZTcxYTlmMGUzYzA4MzZjMDllN2UzNDIzZDQzNGZjZmU3 NQogIDkwNGUzOTZjMjZlOTk5MmExNmNkMWNjOTg5NDYwMTcxNTM2YmVkNzczOWJmMzYwNDlmNmVi MDIwZWU1ZDU2ZWMiCiBub2Nyb3NzPXllcwogCgpGcm9tIGYzYTkxZjg4OWMxZDIzODZlZTlkOTIy NzU5MDIyYTVmZmEzYzgwYTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82Mzkg PG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIyIDExOjMzOjI5IC0wODAw ClN1YmplY3Q6IFtQQVRDSCAyOC8zN10gY3Jvc3MtcG93ZXJwYy1saW51eC1tdXNsOiB1cGRhdGUg dG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9zcy1wb3dlcnBjLWxpbnV4LW11c2wvdGVt cGxhdGUgfCAxOSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0 aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLXBvd2Vy cGMtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYy1saW51eC1tdXNs L3RlbXBsYXRlCmluZGV4IGY5YjIyZjA2MTBkMy4uOWJiNmFjZDM1OWI2IDEwMDY0NAotLS0gYS9z cmNwa2dzL2Nyb3NzLXBvd2VycGMtbGludXgtbXVzbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Ny b3NzLXBvd2VycGMtbGludXgtbXVzbC90ZW1wbGF0ZQpAQCAtMSwyOCArMSwyOSBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJwYy1saW51eC1tdXNsJwotX2JpbnV0aWxzX3ZlcnNp b249Mi4zNS4xCi1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEKK19iaW51dGlsc192ZXJzaW9uPTIu MzkKK19nY2NfdmVyc2lvbj0xMi4yLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVy c2lvbj01LjEwLjQKIHBrZ25hbWU9Y3Jvc3MtcG93ZXJwYy1saW51eC1tdXNsCi12ZXJzaW9uPTAu MzQKLXJldmlzaW9uPTMKK3ZlcnNpb249MC4zNQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9p ZC1jcm9zcwogY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCAtLWRpc2FibGUtdnRh YmxlLXZlcmlmeQogIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0IgogaG9zdG1ha2VkZXBlbmRzPSJ0 ZXhpbmZvIHRhciBnY2Mtb2JqYyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJpc2wx NS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbCIKK21h a2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRldmVsIG1wZnItZGV2ZWwK KyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3BrZ25hbWV9LWxpYmMtJHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jvc3MgdG9vbGNoYWluIGZv ciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9IlRob21hcyBCYXR0ZW4gPHN0ZW5zdG9y cG1jQGdtYWlsLmNvbT4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBNSVQiCitob21lcGFn ZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJVEV9 L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0dHBzOi8v ZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54egor ICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lvbn0u dGFyLnh6CiAgaHR0cHM6Ly9tdXNsLmxpYmMub3JnL3JlbGVhc2VzL211c2wtJHtfbXVzbF92ZXJz aW9ufS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0ke19saW51eF92 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5 ZjIwODNhZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2 ZmVjOWJhOGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKK2NoZWNrc3VtPSI2 NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1YzA5 NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJl YjQxODFlMDY5MjYyMzBmZgogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdl NjZhN2JlZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4OTQ2 MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9jcm9zcz15ZXMKCkZyb20g MWMxZGQ2YTM0MGFiYTBmYTE5Y2E1ZDZhMGRjMWMwMjgyYmY2YTkzNSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDYg Tm92IDIwMjIgMTE6MzM6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIIDI5LzM3XSBjcm9zcy1wb3dl cnBjNjQtbGludXgtZ251OiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9z cy1wb3dlcnBjNjQtbGludXgtZ251L3RlbXBsYXRlIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251L3RlbXBsYXRlIGIvc3JjcGtn cy9jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251L3RlbXBsYXRlCmluZGV4IDM1Y2ZjYWE2ZjAyZS4u MmQxNTNkMDBhZGQ2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NC1saW51eC1n bnUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251L3RlbXBs YXRlCkBAIC0xLDE2ICsxLDE3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjcm9zcy1wb3dlcnBj NjQtbGludXgtZ251JwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4xCi1fZ2NjX3ZlcnNpb249MTAu Mi4xX3ByZTEKLV9nbGliY192ZXJzaW9uPTIuMzIKK19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19n Y2NfdmVyc2lvbj0xMi4yLjAKK19nbGliY192ZXJzaW9uPTIuMzYKIF9saW51eF92ZXJzaW9uPTUu MTAuNAogcGtnbmFtZT1jcm9zcy1wb3dlcnBjNjQtbGludXgtZ251Ci12ZXJzaW9uPTAuMzQKK3Zl cnNpb249MC4zNQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmlndXJl X2FyZ3M9Ii0tZW5hYmxlLXNlY3VyZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeSAtLXdpdGgt YWJpPWVsZnYyCiAgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBjLWxpbnV4IgogaG9zdG1ha2VkZXBl bmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhvbjMiCi1tYWtl ZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21wLWRldmVsIG1w ZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIGdtcC1kZXZl bCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgogZGVwZW5kcz0iJHtwa2du YW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9kZXNjPSJWb2lkIGNyb3Nz IHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8 b3JwaGFuQHZvaWRsaW51eC5vcmc+IgpAQCAtMTgsMTIgKzE5LDEyIEBAIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVzPSIKICAke0dOVV9TSVRF fS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50YXIueHoKLSBodHRwczov L2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoK KyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2MtJHtfZ2NjX3ZlcnNpb259 LnRhci54egogICR7R05VX1NJVEV9L2dsaWJjL2dsaWJjLSR7X2dsaWJjX3ZlcnNpb259LnRhci54 egogICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4M2FlZDBh MjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZmZWM5YmE4Y2Rj YjQ1ZDM3ZGYxYzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAotIDE2MjdlYTU0ZjVhMWE4NDY3MDMy NTYzMzkzZTA5MDEwNzc2MjZkYzY2ZjM3ZjEwZWU2MzYzYmI3MjIyMjI4MzYKK2NoZWNrc3VtPSI2 NDVjMjVmNTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1YzA5 NTE2ZDAwCisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJl YjQxODFlMDY5MjYyMzBmZgorIDFjOTU5ZmVhMjQwOTA2MjI2MDYyY2I0YjFlN2ViY2U3MWE5ZjBl M2MwODM2YzA5ZTdlMzQyM2Q0MzRmY2ZlNzUKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4OTQ2 MDE3MTUzNmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjIgogbm9jcm9zcz15ZXMKIAoKRnJv bSA4OWM5NWM3YzQzNTZiNTcxN2ZiODI3NDVlYmMxMzNiZWZjZGUwZTYzIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1biwg NiBOb3YgMjAyMiAxMTozMzoyOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzAvMzddIGNyb3NzLXBv d2VycGM2NC1saW51eC1tdXNsOiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9j cm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDE5ICsrKysrKysrKystLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LW11c2wvdGVtcGxhdGUgYi9z cmNwa2dzL2Nyb3NzLXBvd2VycGM2NC1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IDAxNmYxODc3 NmE2ZC4uZTA4NDhmZTBiZmY3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NC1s aW51eC1tdXNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0LWxpbnV4LW11 c2wvdGVtcGxhdGUKQEAgLTEsMzAgKzEsMzEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3Nz LXBvd2VycGM2NC1saW51eC1tdXNsJwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4xCi1fZ2NjX3Zl cnNpb249MTAuMi4xX3ByZTEKK19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19nY2NfdmVyc2lvbj0x Mi4yLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIF9saWJ1 Y29udGV4dF92ZXJzaW9uPTEuMAogcGtnbmFtZT1jcm9zcy1wb3dlcnBjNjQtbGludXgtbXVzbAot dmVyc2lvbj0wLjM0Ci1yZXZpc2lvbj00Cit2ZXJzaW9uPTAuMzUKK3JldmlzaW9uPTEKIGJ1aWxk X3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1zZWN1cmVwbHQgLS1k aXNhYmxlLXZ0YWJsZS12ZXJpZnkKICAtLWRpc2FibGUtZGVjaW1hbC1mbG9hdCAtLXdpdGgtYWJp PWVsZnYyIC0tZW5hYmxlLXRhcmdldHM9cG93ZXJwYy1saW51eCIKIGhvc3RtYWtlZGVwZW5kcz0i dGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVu ZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRl dmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBm ci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZlbCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0t bGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29s Y2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhh bkB2b2lkbGludXgub3JnPiIKLWhvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIsIE1JVCIKK2hvbWVw YWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lU RX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6 Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6 CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9u fS50YXIueHoKICBodHRwczovL211c2wubGliYy5vcmcvcmVsZWFzZXMvbXVzbC0ke19tdXNsX3Zl cnNpb259LnRhci5negogICR7S0VSTkVMX1NJVEV9L2tlcm5lbC92NS54L2xpbnV4LSR7X2xpbnV4 X3ZlcnNpb259LnRhci54egogIGh0dHBzOi8vZ2l0aHViLmNvbS9rYW5paW5pL2xpYnVjb250ZXh0 L2FyY2hpdmUvbGlidWNvbnRleHQtJHtfbGlidWNvbnRleHRfdmVyc2lvbn0udGFyLmd6IgotY2hl Y2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVkMGEyMTRjMDQyNGUy NTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThjZGNiNDVkMzdkZjFj OWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCitjaGVja3N1bT0iNjQ1YzI1ZjU2M2I4YWRjMGE4MWRi ZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAorIGU1NDljZjljZjM1 OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2OTI2MjMwZmYKICAx MzcwYzlhODEyYjJjZjJhN2Q5MjgwMjUxMGNjYTAwNThjYzM3ZTY2YTdiZWRkNzAwNTFmMGEzNDAx NTAyMmEzCiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZiZWQ3NzM5YmYzNjA0 OWY2ZWIwMjBlZTVkNTZlYwogIDIzNzE0ZTk5YTg3ZjZkZWE4MmU4YTA3M2M1MjYzMjUxNjFkZDY1 NDYyNDU5ODIwYjE2YTYxNjJiZTkxOTU1YmIiCgpGcm9tIDU5NTBiN2I0MTRkOTYzZDA2NzJlMzE2 MmRhZTFiZmE3NzAxZjE3NTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IG9yZW82Mzkg PG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA2IE5vdiAyMDIyIDExOjMzOjI5IC0wODAw ClN1YmplY3Q6IFtQQVRDSCAzMS8zN10gY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgtZ251OiB1cGRh dGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1n bnUvdGVtcGxhdGUgfCAxOSArKysrKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAg aW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3Nz LXBvd2VycGM2NGxlLWxpbnV4LWdudS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwYzY0 bGUtbGludXgtZ251L3RlbXBsYXRlCmluZGV4IDQ2M2Q3ZTkyZDIwZC4uOGQ4ZTAxMGUxNWMwIDEw MDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LWdudS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2NGxlLWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAtMSwx NiArMSwxNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJwYzY0bGUtbGludXgt Z251JwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4xCi1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEK LV9nbGliY192ZXJzaW9uPTIuMzIKK19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19nY2NfdmVyc2lv bj0xMi4yLjAKK19nbGliY192ZXJzaW9uPTIuMzYKIF9saW51eF92ZXJzaW9uPTUuMTAuNAogcGtn bmFtZT1jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1nbnUKLXZlcnNpb249MC4zNAordmVyc2lvbj0w LjM1CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0i LS1lbmFibGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5IC0td2l0aC1hYmk9ZWxm djIKICAtLWVuYWJsZS10YXJnZXRzPXBvd2VycGNsZS1saW51eCIKIGhvc3RtYWtlZGVwZW5kcz0i dGV4aW5mbyB0YXIgZ2NjLW9iamMgZ2NjLWdvIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVu ZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRl dmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBm ci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZlbCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0t bGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29s Y2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhh bkB2b2lkbGludXgub3JnPiIKQEAgLTE4LDEyICsxOSwxMiBAQCBsaWNlbnNlPSJHUEwtMi4wLW9y LWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmlu dXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYu YWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CisgJHtH TlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIu eHoKICAke0dOVV9TSVRFfS9nbGliYy9nbGliYy0ke19nbGliY192ZXJzaW9ufS50YXIueHoKICAk e0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5ZjIwODNhZWQwYTIxNGMw NDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQz N2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKLSAxNjI3ZWE1NGY1YTFhODQ2NzAzMjU2MzM5 M2UwOTAxMDc3NjI2ZGM2NmYzN2YxMGVlNjM2M2JiNzIyMjIyODM2CitjaGVja3N1bT0iNjQ1YzI1 ZjU2M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQw MAorIGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgx ZTA2OTI2MjMwZmYKKyAxYzk1OWZlYTI0MDkwNjIyNjA2MmNiNGIxZTdlYmNlNzFhOWYwZTNjMDgz NmMwOWU3ZTM0MjNkNDM0ZmNmZTc1CiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1 MzZiZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYyIKIG5vY3Jvc3M9eWVzCiAKCkZyb20gZWMx MWE5MDhlNmY0Nzc3ZDA5NWE5ZTY4NDAxZGYzZGI0YTUyZGI5ZSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBTdW4sIDYgTm92 IDIwMjIgMTE6MzM6MjkgLTA4MDAKU3ViamVjdDogW1BBVENIIDMyLzM3XSBjcm9zcy1wb3dlcnBj NjRsZS1saW51eC1tdXNsOiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9z cy1wb3dlcnBjNjRsZS1saW51eC1tdXNsL3RlbXBsYXRlIHwgMTkgKysrKysrKysrKy0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1tdXNsL3RlbXBsYXRlIGIv c3JjcGtncy9jcm9zcy1wb3dlcnBjNjRsZS1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IGMxN2Ez Y2NjZmUyOS4uMDkxNWU1MjQ1NDVmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGM2 NGxlLWxpbnV4LW11c2wvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy1wb3dlcnBjNjRsZS1s aW51eC1tdXNsL3RlbXBsYXRlCkBAIC0xLDMwICsxLDMxIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdjcm9zcy1wb3dlcnBjNjRsZS1saW51eC1tdXNsJwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4x Ci1fZ2NjX3ZlcnNpb249MTAuMi4xX3ByZTEKK19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19nY2Nf dmVyc2lvbj0xMi4yLjAKIF9tdXNsX3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj01LjEw LjQKIF9saWJ1Y29udGV4dF92ZXJzaW9uPTEuMAogcGtnbmFtZT1jcm9zcy1wb3dlcnBjNjRsZS1s aW51eC1tdXNsCi12ZXJzaW9uPTAuMzQKLXJldmlzaW9uPTQKK3ZlcnNpb249MC4zNQorcmV2aXNp b249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLXNl Y3VyZXBsdCAtLWRpc2FibGUtdnRhYmxlLXZlcmlmeQogIC0tZGlzYWJsZS1kZWNpbWFsLWZsb2F0 IC0td2l0aC1hYmk9ZWxmdjIgLS1lbmFibGUtdGFyZ2V0cz1wb3dlcnBjbGUtbGludXgiCiBob3N0 bWFrZWRlcGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9u MyIKLW1ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAt ZGV2ZWwgbXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwg Z21wLWRldmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRz PSIke3BrZ25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZv aWQgY3Jvc3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9Ik9y cGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1ob21lcGFnZT0iaHR0cHM6Ly93d3cudm9p ZGxpbnV4Lm9yZy8iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHUEwtMy4wLW9yLWxhdGVy LCBNSVQiCitob21lcGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9 IgogICR7R05VX1NJVEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRh ci54egotIGh0dHBzOi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3Zl cnNpb259LnRhci54egorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0k e19nY2NfdmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9tdXNsLmxpYmMub3JnL3JlbGVhc2VzL211 c2wtJHtfbXVzbF92ZXJzaW9ufS50YXIuZ3oKICAke0tFUk5FTF9TSVRFfS9rZXJuZWwvdjUueC9s aW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoKICBodHRwczovL2dpdGh1Yi5jb20va2FuaWlu aS9saWJ1Y29udGV4dC9hcmNoaXZlL2xpYnVjb250ZXh0LSR7X2xpYnVjb250ZXh0X3ZlcnNpb259 LnRhci5neiIKLWNoZWNrc3VtPSIzY2VkOTFkYjliZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4M2Fl ZDBhMjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZmZWM5YmE4 Y2RjYjQ1ZDM3ZGYxYzliNTc3MDYxMDEwM2I4MTRiNzMyYzU5MAorY2hlY2tzdW09IjY0NWMyNWY1 NjNiOGFkYzBhODFkYmQ2YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRmNjVjMDk1MTZkMDAK KyBlNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmViNDE4MWUw NjkyNjIzMGZmCiAgMTM3MGM5YTgxMmIyY2YyYTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2NmE3YmVk ZDcwMDUxZjBhMzQwMTUwMjJhMwogIDkwNGUzOTZjMjZlOTk5MmExNmNkMWNjOTg5NDYwMTcxNTM2 YmVkNzczOWJmMzYwNDlmNmViMDIwZWU1ZDU2ZWMKICAyMzcxNGU5OWE4N2Y2ZGVhODJlOGEwNzNj NTI2MzI1MTYxZGQ2NTQ2MjQ1OTgyMGIxNmE2MTYyYmU5MTk1NWJiIgoKRnJvbSA0OGI5MDg0NjJk Mjk3NWY0NWM1OWQ0ZGU3ZWJiZjczN2Q2NTZlMWJhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1biwgNiBOb3YgMjAyMiAx MTozMzoyOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzMvMzddIGNyb3NzLXBvd2VycGNsZS1saW51 eC1nbnU6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2Nyb3NzLXBvd2VycGNs ZS1saW51eC1nbnUvdGVtcGxhdGUgfCAyMSArKysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY3Jvc3Mt cG93ZXJwY2xlLWxpbnV4LWdudS90ZW1wbGF0ZQppbmRleCA5YWVkZTNjNDY1Y2UuLjY4N2JlOGE0 NGM2YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy1wb3dlcnBjbGUtbGludXgtZ251L3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudS90ZW1wbGF0ZQpAQCAt MSwxNSArMSwxNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MtcG93ZXJwY2xlLWxpbnV4 LWdudScKLV9iaW51dGlsc192ZXJzaW9uPTIuMzUuMQotX2djY192ZXJzaW9uPTEwLjIuMV9wcmUx Ci1fZ2xpYmNfdmVyc2lvbj0yLjMyCitfYmludXRpbHNfdmVyc2lvbj0yLjM5CitfZ2NjX3ZlcnNp b249MTIuMi4wCitfZ2xpYmNfdmVyc2lvbj0yLjM2CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBr Z25hbWU9Y3Jvc3MtcG93ZXJwY2xlLWxpbnV4LWdudQotdmVyc2lvbj0wLjM0Cit2ZXJzaW9uPTAu MzUKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPXZvaWQtY3Jvc3MKIGNvbmZpZ3VyZV9hcmdzPSIt LWVuYWJsZS1zZWN1cmVwbHQgLS1kaXNhYmxlLXZ0YWJsZS12ZXJpZnkiCiBob3N0bWFrZWRlcGVu ZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGZsZXggcGVybCBweXRob24zIgotbWFrZWRlcGVuZHM9 ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRldmVsIGdtcC1kZXZlbCBtcGZyLWRldmVs IgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1k ZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZlbCIKIGRlcGVuZHM9IiR7cGtnbmFtZX0tbGli Yy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hvcnRfZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hh aW4gZm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2 b2lkbGludXgub3JnPiIKQEAgLTE3LDEyICsxOCwxMiBAQCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxh dGVyLCBHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL3d3dy52b2lkbGludXgub3JnLyIKIGRpc3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRp bHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVyc2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxw aW5lbGludXgub3JnL35uZW5vbG9kL2djYy0ke19nY2NfdmVyc2lvbn0udGFyLnh6CisgJHtHTlVf U0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lvbn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoK ICAke0dOVV9TSVRFfS9nbGliYy9nbGliYy0ke19nbGliY192ZXJzaW9ufS50YXIueHoKICAke0tF Uk5FTF9TSVRFfS9rZXJuZWwvdjUueC9saW51eC0ke19saW51eF92ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5ZjIwODNhZWQwYTIxNGMwNDI0 ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2ZmVjOWJhOGNkY2I0NWQzN2Rm MWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKLSAxNjI3ZWE1NGY1YTFhODQ2NzAzMjU2MzM5M2Uw OTAxMDc3NjI2ZGM2NmYzN2YxMGVlNjM2M2JiNzIyMjIyODM2CitjaGVja3N1bT0iNjQ1YzI1ZjU2 M2I4YWRjMGE4MWRiZDZhNDFjZmZiZjRkMzcwODNhMzgyZTAyZDVkM2RmNGY2NWMwOTUxNmQwMAor IGU1NDljZjljZjM1OTRhMDBlMjdiNjU4OWQ0MzIyZDcwZTA3MjBjZGQyMTNmMzliZWI0MTgxZTA2 OTI2MjMwZmYKKyAxYzk1OWZlYTI0MDkwNjIyNjA2MmNiNGIxZTdlYmNlNzFhOWYwZTNjMDgzNmMw OWU3ZTM0MjNkNDM0ZmNmZTc1CiAgOTA0ZTM5NmMyNmU5OTkyYTE2Y2QxY2M5ODk0NjAxNzE1MzZi ZWQ3NzM5YmYzNjA0OWY2ZWIwMjBlZTVkNTZlYyIKIG5vY3Jvc3M9eWVzCiAKQEAgLTM1LDYgKzM2 LDggQEAgaWYgWyAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gInBwY2xlIiBdOyB0aGVuCiAJYnJv a2VuPSJDYW4ndCBidWlsZCBjcm9zc3Rvb2xjaGFpbiB0byBpdHNlbGYiCiBmaQogCiticm9rZW49 ImdsaWJjIHVzZXMgYmlnLWVuZGlhbiBzcGVjaWZpYyBpbnN0cnVjdGlvbnMgb24gMzItYml0IHBv d2VycGMiCisKIGNyb3NzLXBvd2VycGNsZS1saW51eC1nbnUtbGliY19wYWNrYWdlKCkgewogCXNo b3J0X2Rlc2MrPSIgLSBnbGliYyBmaWxlcyIKIAlub3N0cmlwPXllcwoKRnJvbSBlZTVlNmE2MWJm NjNlYjM4M2M0ZDIzYmU5ZWU3NDE4MTU4Y2E5Y2ZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBnbWFpbC5jb20+CkRhdGU6IFN1biwgNiBOb3YgMjAyMiAx MTozMzoyOSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzQvMzddIGNyb3NzLXBvd2VycGNsZS1saW51 eC1tdXNsOiB1cGRhdGUgdG8gZ2NjIDEyLjIuMC4KCi0tLQogc3JjcGtncy9jcm9zcy1wb3dlcnBj bGUtbGludXgtbXVzbC90ZW1wbGF0ZSB8IDE5ICsrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2wvdGVtcGxhdGUgYi9zcmNwa2dzL2Nyb3Nz LXBvd2VycGNsZS1saW51eC1tdXNsL3RlbXBsYXRlCmluZGV4IDA0NWNmZGE5ODdmZS4uYmI5ODRi OWM0MmViIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nyb3NzLXBvd2VycGNsZS1saW51eC1tdXNsL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvY3Jvc3MtcG93ZXJwY2xlLWxpbnV4LW11c2wvdGVtcGxhdGUK QEAgLTEsMjggKzEsMjkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXBvd2VycGNsZS1s aW51eC1tdXNsJwotX2JpbnV0aWxzX3ZlcnNpb249Mi4zNS4xCi1fZ2NjX3ZlcnNpb249MTAuMi4x X3ByZTEKK19iaW51dGlsc192ZXJzaW9uPTIuMzkKK19nY2NfdmVyc2lvbj0xMi4yLjAKIF9tdXNs X3ZlcnNpb249MS4xLjI0CiBfbGludXhfdmVyc2lvbj01LjEwLjQKIHBrZ25hbWU9Y3Jvc3MtcG93 ZXJwY2xlLWxpbnV4LW11c2wKLXZlcnNpb249MC4zNAotcmV2aXNpb249MwordmVyc2lvbj0wLjM1 CityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBjb25maWd1cmVfYXJncz0iLS1l bmFibGUtc2VjdXJlcGx0IC0tZGlzYWJsZS12dGFibGUtdmVyaWZ5CiAgLS1kaXNhYmxlLWRlY2lt YWwtZmxvYXQiCiBob3N0bWFrZWRlcGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGZsZXggcGVy bCBweXRob24zIgotbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1wYy1kZXZlbCB6bGliLWRl dmVsIGdtcC1kZXZlbCBtcGZyLWRldmVsIgorbWFrZWRlcGVuZHM9ImlzbDE1LWRldmVsIGxpYm1w Yy1kZXZlbCBnbXAtZGV2ZWwgbXBmci1kZXZlbAorIHpsaWItZGV2ZWwgbGlienN0ZC1kZXZlbCIK IGRlcGVuZHM9IiR7cGtnbmFtZX0tbGliYy0ke3ZlcnNpb259XyR7cmV2aXNpb259Igogc2hvcnRf ZGVzYz0iVm9pZCBjcm9zcyB0b29sY2hhaW4gZm9yICR7cGtnbmFtZS9jcm9zcy19IgogbWFpbnRh aW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKLWhvbWVwYWdlPSJodHRwczov L3d3dy52b2lkbGludXgub3JnLyIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAt b3ItbGF0ZXIsIE1JVCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy52b2lkbGludXgub3JnLyIKIGRp c3RmaWxlcz0iCiAgJHtHTlVfU0lURX0vYmludXRpbHMvYmludXRpbHMtJHtfYmludXRpbHNfdmVy c2lvbn0udGFyLnh6Ci0gaHR0cHM6Ly9kZXYuYWxwaW5lbGludXgub3JnL35uZW5vbG9kL2djYy0k e19nY2NfdmVyc2lvbn0udGFyLnh6CisgJHtHTlVfU0lURX0vZ2NjL2djYy0ke19nY2NfdmVyc2lv bn0vZ2NjLSR7X2djY192ZXJzaW9ufS50YXIueHoKICBodHRwczovL211c2wubGliYy5vcmcvcmVs ZWFzZXMvbXVzbC0ke19tdXNsX3ZlcnNpb259LnRhci5negogICR7S0VSTkVMX1NJVEV9L2tlcm5l bC92NS54L2xpbnV4LSR7X2xpbnV4X3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPSIzY2VkOTFk YjliZjAxMTgyYjdlNDIwZWFiNjgwMzlmMjA4M2FlZDBhMjE0YzA0MjRlMjU3ZWFlM2RkZWU4NjA3 Ci0gNzcyY2ZkNWQzMGViOWNjNWE5OTZmZWM5YmE4Y2RjYjQ1ZDM3ZGYxYzliNTc3MDYxMDEwM2I4 MTRiNzMyYzU5MAorY2hlY2tzdW09IjY0NWMyNWY1NjNiOGFkYzBhODFkYmQ2YTQxY2ZmYmY0ZDM3 MDgzYTM4MmUwMmQ1ZDNkZjRmNjVjMDk1MTZkMDAKKyBlNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlk NDMyMmQ3MGUwNzIwY2RkMjEzZjM5YmViNDE4MWUwNjkyNjIzMGZmCiAgMTM3MGM5YTgxMmIyY2Yy YTdkOTI4MDI1MTBjY2EwMDU4Y2MzN2U2NmE3YmVkZDcwMDUxZjBhMzQwMTUwMjJhMwogIDkwNGUz OTZjMjZlOTk5MmExNmNkMWNjOTg5NDYwMTcxNTM2YmVkNzczOWJmMzYwNDlmNmViMDIwZWU1ZDU2 ZWMiCiBub2Nyb3NzPXllcwoKRnJvbSA2NmIzM2VmOTA2NmZkZTc5ZGQ2Yzg1ZjVkYTlkNzhjZWNk MDFjZTNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBvcmVvNjM5IDxvcmVvNjM5MUBn bWFpbC5jb20+CkRhdGU6IFN1biwgNiBOb3YgMjAyMiAxMTozMzozMCAtMDgwMApTdWJqZWN0OiBb UEFUQ0ggMzUvMzddIGNyb3NzLXg4Nl82NC1saW51eC1nbnU6IHVwZGF0ZSB0byBnY2MgMTIuMi4w LgoKLS0tCiBzcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1nbnUvdGVtcGxhdGUgfCAxOSArKysr KysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1nbnUvdGVt cGxhdGUgYi9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1nbnUvdGVtcGxhdGUKaW5kZXggODkx OGYzYzIyYTFjLi45MzBhYWYyYTUwOGIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MteDg2XzY0 LWxpbnV4LWdudS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nyb3NzLXg4Nl82NC1saW51eC1nbnUv dGVtcGxhdGUKQEAgLTEsMTQgKzEsMTUgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXg4 Nl82NC1saW51eC1nbnUnCi1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0x MC4yLjFfcHJlMQotX2dsaWJjX3ZlcnNpb249Mi4zMgorX2JpbnV0aWxzX3ZlcnNpb249Mi4zOQor X2djY192ZXJzaW9uPTEyLjIuMAorX2dsaWJjX3ZlcnNpb249Mi4zNgogX2xpbnV4X3ZlcnNpb249 NS4xMC40CiBwa2duYW1lPWNyb3NzLXg4Nl82NC1saW51eC1nbnUKLXZlcnNpb249MC4zNAordmVy c2lvbj0wLjM1CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT12b2lkLWNyb3NzCiBob3N0bWFrZWRl cGVuZHM9InRleGluZm8gdGFyIGdjYy1vYmpjIGdjYy1nbyBmbGV4IHBlcmwgcHl0aG9uMyIKLW1h a2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgemxpYi1kZXZlbCBnbXAtZGV2ZWwg bXBmci1kZXZlbCIKK21ha2VkZXBlbmRzPSJpc2wxNS1kZXZlbCBsaWJtcGMtZGV2ZWwgZ21wLWRl dmVsIG1wZnItZGV2ZWwKKyB6bGliLWRldmVsIGxpYnpzdGQtZGV2ZWwiCiBkZXBlbmRzPSIke3Br Z25hbWV9LWxpYmMtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIHNob3J0X2Rlc2M9IlZvaWQgY3Jv c3MgdG9vbGNoYWluIGZvciAke3BrZ25hbWUvY3Jvc3MtfSIKIG1haW50YWluZXI9Ik9ycGhhbmVk IDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCkBAIC0xNiwxMiArMTcsMTIgQEAgbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93d3cudm9pZGxpbnV4Lm9yZy8iCiBkaXN0ZmlsZXM9IgogICR7R05VX1NJ VEV9L2JpbnV0aWxzL2JpbnV0aWxzLSR7X2JpbnV0aWxzX3ZlcnNpb259LnRhci54egotIGh0dHBz Oi8vZGV2LmFscGluZWxpbnV4Lm9yZy9+bmVub2xvZC9nY2MtJHtfZ2NjX3ZlcnNpb259LnRhci54 egorICR7R05VX1NJVEV9L2djYy9nY2MtJHtfZ2NjX3ZlcnNpb259L2djYy0ke19nY2NfdmVyc2lv bn0udGFyLnh6CiAgJHtHTlVfU0lURX0vZ2xpYmMvZ2xpYmMtJHtfZ2xpYmNfdmVyc2lvbn0udGFy Lnh6CiAgJHtLRVJORUxfU0lURX0va2VybmVsL3Y1LngvbGludXgtJHtfbGludXhfdmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09IjNjZWQ5MWRiOWJmMDExODJiN2U0MjBlYWI2ODAzOWYyMDgzYWVk MGEyMTRjMDQyNGUyNTdlYWUzZGRlZTg2MDcKLSA3NzJjZmQ1ZDMwZWI5Y2M1YTk5NmZlYzliYThj ZGNiNDVkMzdkZjFjOWI1NzcwNjEwMTAzYjgxNGI3MzJjNTkwCi0gMTYyN2VhNTRmNWExYTg0Njcw MzI1NjMzOTNlMDkwMTA3NzYyNmRjNjZmMzdmMTBlZTYzNjNiYjcyMjIyMjgzNgorY2hlY2tzdW09 IjY0NWMyNWY1NjNiOGFkYzBhODFkYmQ2YTQxY2ZmYmY0ZDM3MDgzYTM4MmUwMmQ1ZDNkZjRmNjVj MDk1MTZkMDAKKyBlNTQ5Y2Y5Y2YzNTk0YTAwZTI3YjY1ODlkNDMyMmQ3MGUwNzIwY2RkMjEzZjM5 YmViNDE4MWUwNjkyNjIzMGZmCisgMWM5NTlmZWEyNDA5MDYyMjYwNjJjYjRiMWU3ZWJjZTcxYTlm MGUzYzA4MzZjMDllN2UzNDIzZDQzNGZjZmU3NQogIDkwNGUzOTZjMjZlOTk5MmExNmNkMWNjOTg5 NDYwMTcxNTM2YmVkNzczOWJmMzYwNDlmNmViMDIwZWU1ZDU2ZWMiCiBub2Nyb3NzPXllcwogCgpG cm9tIDQ5ODc5OWUyOWE4ZWIxMDMyMDFkMGZiMWI0ZDk0ZjUzY2Y0MDQ4MDkgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IG9yZW82MzkgPG9yZW82MzkxQGdtYWlsLmNvbT4KRGF0ZTogU3Vu LCA2IE5vdiAyMDIyIDExOjMzOjMwIC0wODAwClN1YmplY3Q6IFtQQVRDSCAzNi8zN10gY3Jvc3Mt eDg2XzY0LWxpbnV4LW11c2w6IHVwZGF0ZSB0byBnY2MgMTIuMi4wLgoKLS0tCiBzcmNwa2dzL2Ny b3NzLXg4Nl82NC1saW51eC1tdXNsL3RlbXBsYXRlIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtbXVzbC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Y3Jvc3MteDg2XzY0LWxpbnV4LW11c2wvdGVtcGxhdGUKaW5kZXggYTk0MWU3ZTAyZjZmLi5hYzVi MWM0NmFiODIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY3Jvc3MteDg2XzY0LWxpbnV4LW11c2wvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9jcm9zcy14ODZfNjQtbGludXgtbXVzbC90ZW1wbGF0ZQpAQCAt MSwyOCArMSwyOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3Jvc3MteDg2XzY0LWxpbnV4LW11 c2wnCi1fYmludXRpbHNfdmVyc2lvbj0yLjM1LjEKLV9nY2NfdmVyc2lvbj0xMC4yLjFfcHJlMQor X2JpbnV0aWxzX3ZlcnNpb249Mi4zOQorX2djY192ZXJzaW9uPTEyLjIuMAogX211c2xfdmVyc2lv bj0xLjEuMjQKIF9saW51eF92ZXJzaW9uPTUuMTAuNAogX2xpYnVjb250ZXh0X3ZlcnNpb249MS4w CiBwa2duYW1lPWNyb3NzLXg4Nl82NC1saW51eC1tdXNsCi12ZXJzaW9uPTAuMzQKLXJldmlzaW9u PTMKK3ZlcnNpb249MC4zNQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9dm9pZC1jcm9zcwogaG9z dG1ha2VkZXBlbmRzPSJ0ZXhpbmZvIHRhciBnY2Mtb2JqYyBnY2MtZ28gZmxleCBwZXJsIHB5dGhv bjMiCi1tYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVsIHpsaWItZGV2ZWwgZ21w LWRldmVsIG1wZnItZGV2ZWwiCittYWtlZGVwZW5kcz0iaXNsMTUtZGV2ZWwgbGlibXBjLWRldmVs IGdtcC1kZXZlbCBtcGZyLWRldmVsCisgemxpYi1kZXZlbCBsaWJ6c3RkLWRldmVsIgogZGVwZW5k cz0iJHtwa2duYW1lfS1saWJjLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiBzaG9ydF9kZXNjPSJW b2lkIGNyb3NzIHRvb2xjaGFpbiBmb3IgJHtwa2duYW1lL2Nyb3NzLX0iCiBtYWludGFpbmVyPSJP cnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgotaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZv aWRsaW51eC5vcmcvIgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR1BMLTMuMC1vci1sYXRl ciwgTUlUIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnZvaWRsaW51eC5vcmcvIgogZGlzdGZpbGVz PSIKICAke0dOVV9TSVRFfS9iaW51dGlscy9iaW51dGlscy0ke19iaW51dGlsc192ZXJzaW9ufS50 YXIueHoKLSBodHRwczovL2Rldi5hbHBpbmVsaW51eC5vcmcvfm5lbm9sb2QvZ2NjLSR7X2djY192 ZXJzaW9ufS50YXIueHoKKyAke0dOVV9TSVRFfS9nY2MvZ2NjLSR7X2djY192ZXJzaW9ufS9nY2Mt JHtfZ2NjX3ZlcnNpb259LnRhci54egogIGh0dHBzOi8vbXVzbC5saWJjLm9yZy9yZWxlYXNlcy9t dXNsLSR7X211c2xfdmVyc2lvbn0udGFyLmd6CiAgJHtLRVJORUxfU0lURX0va2VybmVsL3Y1Lngv bGludXgtJHtfbGludXhfdmVyc2lvbn0udGFyLnh6CiAgaHR0cHM6Ly9naXRodWIuY29tL2thbmlp bmkvbGlidWNvbnRleHQvYXJjaGl2ZS9saWJ1Y29udGV4dC0ke19saWJ1Y29udGV4dF92ZXJzaW9u fS50YXIuZ3oiCi1jaGVja3N1bT0iM2NlZDkxZGI5YmYwMTE4MmI3ZTQyMGVhYjY4MDM5ZjIwODNh ZWQwYTIxNGMwNDI0ZTI1N2VhZTNkZGVlODYwNwotIDc3MmNmZDVkMzBlYjljYzVhOTk2ZmVjOWJh OGNkY2I0NWQzN2RmMWM5YjU3NzA2MTAxMDNiODE0YjczMmM1OTAKK2NoZWNrc3VtPSI2NDVjMjVm NTYzYjhhZGMwYTgxZGJkNmE0MWNmZmJmNGQzNzA4M2EzODJlMDJkNWQzZGY0ZjY1YzA5NTE2ZDAw CisgZTU0OWNmOWNmMzU5NGEwMGUyN2I2NTg5ZDQzMjJkNzBlMDcyMGNkZDIxM2YzOWJlYjQxODFl MDY5MjYyMzBmZgogIDEzNzBjOWE4MTJiMmNmMmE3ZDkyODAyNTEwY2NhMDA1OGNjMzdlNjZhN2Jl ZGQ3MDA1MWYwYTM0MDE1MDIyYTMKICA5MDRlMzk2YzI2ZTk5OTJhMTZjZDFjYzk4OTQ2MDE3MTUz NmJlZDc3MzliZjM2MDQ5ZjZlYjAyMGVlNWQ1NmVjCiAgMjM3MTRlOTlhODdmNmRlYTgyZThhMDcz YzUyNjMyNTE2MWRkNjU0NjI0NTk4MjBiMTZhNjE2MmJlOTE5NTViYiIKCkZyb20gYzdhNWNjYmZl NDQ0YmI4NWMyZGViMzRlYWNjYmU3ZmU2MWM0Y2EzNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogb3JlbzYzOSA8b3JlbzYzOTFAZ21haWwuY29tPgpEYXRlOiBGcmksIDE4IE5vdiAyMDIy IDAyOjAxOjE5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAzNy8zN10gY3Jvc3MtdnBrZy1kdW1teTog dXBkYXRlIHRvIDAuMzkuCgotLS0KIHNyY3BrZ3MvY3Jvc3MtdnBrZy1kdW1teS90ZW1wbGF0ZSB8 IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY3Jvc3MtdnBrZy1kdW1teS90ZW1wbGF0ZSBiL3NyY3Br Z3MvY3Jvc3MtdnBrZy1kdW1teS90ZW1wbGF0ZQppbmRleCBkODNlMzhkYzYzYWMuLmFlYWZiNzQ5 ZGQ1ZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jcm9zcy12cGtnLWR1bW15L3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvY3Jvc3MtdnBrZy1kdW1teS90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2Nyb3NzLXZwa2ctZHVtbXknCiBwa2duYW1lPWNyb3NzLXZwa2ctZHVt bXkKLXZlcnNpb249MC4zOAordmVyc2lvbj0wLjM5CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1t ZXRhCiBzaG9ydF9kZXNjPSJEdW1teSBtZXRhLXBrZyBmb3IgY3Jvc3MgYnVpbGRpbmcgcGFja2Fn ZXMgd2l0aCB4YnBzLXNyYyIKQEAgLTU0LDggKzU0LDggQEAgY29uZmxpY3RzPSIKIAlnY2Mtb2Jq YysrPj0wIgogc2hsaWJfcHJvdmlkZXM9IgogCWxpYmdjY19zLnNvLjEKLQlsaWJnbmF0LTEwLnNv Ci0JbGliZ25hcmwtMTAuc28KKwlsaWJnbmF0LTEyLnNvCisJbGliZ25hcmwtMTIuc28KIAlsaWJz dGRjKysuc28uNgogCWxpYmdmb3J0cmFuLnNvLjUiCiAK --===============8729196744103386578==--